Запуск PsExec и примеры использования на удаленном компьютере | Soft Setup

Чтоб выполнить команду на удалённом компьютере  нам потребуется windows management instrumentation (wmi)

Следующий способ реализации этой популярной задачи, о котором я хочу поведать – использование Windows Management Instrumentation. WMI присутствует во всех операционных системах Microsoft, начиная с Windows 2000, и даже на Windows 9x его можно установить из отдельного пакета.

WMI включён по умолчанию, и не требует дополнительной настройки. Для его использования достаточно административных прав, и разрешенного на брандмауэре протокола DCOM. WMI предоставляет огромные возможности для управления системами, но нас сейчас интересует лишь одна из них.

Для запуска процессов нам потребуется метод Create класса Win32_Process. Использовать его достаточно несложно. В PowerShell это делается следующим образом:

$Computer = «main»
$Command = «cmd.exe /c systeminfo.exe > \servershare%computername%.txt»
([wmiclass]»\$Computerrootcimv2:Win32_Process»).create($Command)

Здесь в качестве запускаемого процесса я указал cmd.exe, а уже ему, в качестве аргументов передал нужную команду. Это необходимо в случае если вам нужно использовать переменные окружения удалённого компьютера или встроенные операторы cmd.exe, такие как «>» для перенаправления вывода в файл.

Если вы используете компьютер, на котором пока не установлен PowerShell, вы можете вызвать этот метод WMI и из сценария на VBScript. Например вот так:

Windows powershell 2.0 remoting

Хотя вторая версия Windows PowerShell на момент написания статьи находится еще в состоянии бета тестирования, о её возможностях в области удалённого выполнения команд определённо стоит рассказать уже сейчас. Попробовать его своими руками вы можете либо загрузив предварительную версию (см. ссылки) либо в составе бета-версии Windows 7 или Windows Server 2008 R2.

Windows remote management

Изначально это была серверная технология для удаленного управления оборудованием, которая появилась в Windows Server 2003 R2 как часть компонента Hardware Management, но недавно Microsoft выпустили пакет Windows Management Framework, который включает в себя PowerShell 2.0 и WinRM 2.0 и устанавливается на клиентские ОС как обновление. Подробности можно прочитать в статье KB968929.

Прелесть WinRM заключается в простоте развертывания в доменной среде через WSUS в качестве факультативного обновления ОС и мощи, которую даёт совместное с PowerShell применение.

Использование WinRM происходит через 2 команды.

winrm.cmd служит для конфигурирования настроек и диагностики клиента и сервера WinRM.

Для того, чтобы сервер WinRM начал принимать команды, должна быть запущена служба Windows Remote Management и произведена её начальная конфигурация. Используйте команду

winrm quickconfig на локальной машине, либо финт ушамиpsexec -s \servername winrm quickconfig по сети, используя PsExec от имени системной учетной записи.

Будет предложено автоматически запускать службу WinRM и разрешить уделенные подключения, соглашайтесь 😉

Чтобы успешно подключаться к WinRM серверу (имеется в виду серверная часть, принимающая команды), не входящему в тот же домен, что и ваш клиентский компьютер, необходимо на клиенте этот целевой сервер добавить в «доверенный список» следующей командой:

winrm set winrm/config/client @{TrustedHosts=”servername”}, где вместо servername можно указать IP-адрес, либо * (звёздочку).

Для пользователей Windows Vista и Windows 7, работающим не от имени встроенного администратора (обычно так и бывает), нужно выполнить следующую команду

reg add HKLMSOFTWAREMicrosoftWindowsCurrentVersionPoliciesSystem /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f

По умолчанию, установлено ограничение на 5 одновременных соединений WinRM от клиента, для увеличения этого числа выполните команду

Wsh remote scripting

Да, как ни странно у Windows Script Host тоже есть возможность запуска сценариев на других компьютерах. Правда эта функция не получила большой популярности, и скорее всего из-за того что требует слишком много подготовительных мероприятий, а взамен предоставляет совсем немного возможностей. Но я все равно расскажу об этом методе, так как и он может пригодиться.

:/>  Экран блокировки windows 10 — как включить или отключить, убрать совсем и произвести другие действия

Итак, для запуска сценария на другом компьютере с помощью WSH нам понадобится сделать следующее:

Как запустить командную строку на другом/ удаленном компьютере. утилита psexec v2.0

Возникла задача выполнить кое-какую операцию с помощью командной строки на другом компьютере, само собой идти к пользователю запускать командную строку и вбивать команды- не наш метод, нам надо не вставая с кресла запустить командную строку удаленного компьютера и выполнить необходимые действия в командной строке. Конечно, подобное действие можно выполнить с помощью программ удаленного подключения, но это не всегда удобно и требует наличия подобной программы у вас и у пользователя (клиент- сервер). Процедуру по подключению к командной строки другого компьютера, можно выполнить значительно просто, с помощью команды PSEXEC.

PsExec — это утилита командной строки, с возможность вызывать в интерактивном режиме интерфейс командной строки в удаленных системах Windows и удаленно запускать различные команды.

Эта утилита ставиться на только на компьютер администратора. Для установки необходимо ее скачать, вот ссылка на официальный сайт Microsoft. После скачивания архива его необходимо разархивировать, в разархивированной папке найти файл PsExec.exe. Нажмите на нем два раза, появиться окно с лицензионным соглашением, нажимаем “Agree“.

Запуск PsExec и примеры использования на удаленном компьютере | Soft Setup

На этом установка PSEXEC можно считать оконченной.

Разберем синтаксис команды:

 psexec [\компьютер[,компьютер2[,…] | @файл][-u пользователь [-p пароль]][-n s][-l][-s|-e][-x][-i [сеанс]][-c [-f|-v]][-w каталог][-d][-<приоритет>][-a n,n,… ] программа [аргументы]

компьютер   Указывает программе PsExec, что нужно запустить приложение на заданном компьютере или компьютерах. Если имя компьютера не указано, то программа PsExec запустит приложение в локальной системе, если же вместо имени компьютера задан символ «звездочка» (\*), то программа PsExec запустит приложение на всех компьютерах текущего домена.

@файл  Указывает программе PsExec, что нужно запустить приложение на всех компьютерах, перечисленных в заданном текстовом файле.

-a    Процессоры, на которых можно запустить приложение, отделяются запятыми, при этом процессоры нумеруются, начиная с 1. Например, чтобы запустить приложение на процессорах втором и четвертом, введите «-a 2,4»

-c   Указанная программа копируется в удаленную систему для выполнения. Если этот параметр не задан, то приложение должно находиться в системной папке удаленной системы.

-d   Указывает, что не нужно ждать завершения приложения. Этот параметр следует использовать только при запуске неинтерактивных приложений.

-e   Указанный профиль учетной записи не загружается.

-f   Указанная программа копируется в удаленную систему, даже если такой файл в удаленной системе уже есть.

-i   Запускаемая программа получает доступ к рабочему столу указанного сеанса в удаленной системе. Если сеанс не задан, то процесс выполняется в консольном сеансе.

-l   При запуске процесса пользователю предоставляются ограниченные права (права группы администраторов отменяются, и пользователю предоставляются только права, назначенные группе «пользователи»). В ОС Windows Vista процесс запускается с низким уровнем благонадежности.

-n   Позволяет задать задержку подключения к удаленным компьютерам (в секундах).

-p   Позволяет указать необязательный пароль для имени пользователя. Если этот параметр опущен, то будет выдан запрос на ввод пароля, при этом пароль не будет отображаться на экране.

-s   Удаленный процесс запускается из системной учетной записи.

-u   Позволяет указать необязательное имя пользователя для входа в удаленную систему.

-v   Указанный файл копируется в удаленную систему вместо уже имеющегося только при условии, что номер его версии выше или он более новый.

-w   Позволяет указать для процесса рабочий каталог (путь внутри удаленной системы).

-x   Отображает интерфейс пользователя на рабочем столе Winlogon (только в локальной системе).

:/>  Смарт хдд программа

-приоритет (приоритет)   Позволяет задавать для процесса различные приоритеты: -low (низкий), -belownormal (ниже среднего), -abovenormal (выше среднего), -high (высокий) или -realtime (реального времени).

программа   Имя запускаемой программы.

аргументы  Передаваемые аргументы (обратите внимание, что пути файлов должны указываться как локальные пути в целевой системе).

Примеры работы команды PSEXEC:

1) Для того чтобы запустить командную строку другого компьютера, необходимо ввести
psexec \<имя компьюетра> cmd

например:
psexec \WIN782 cmd

Запуск PsExec и примеры использования на удаленном компьютере | Soft Setup

после этого можете вводить необходимые вам команды.

2) Для того чтобы запустить какою либо программу (в данном примере test.exe) на удаленном компьютере необходимо выполнить команду, (эта команда копирует программу test.exe в удаленную систему и выполняет ее в интерактивном режиме).

psexec \<имя компьютера> -c test.exe

например:
psexec \WIN782 -c test.exe

3) Если в удаленной системе такая программа уже установлена и находится не в системном каталоге, укажите полный путь к этой программе

psexec \WIN782 c:temptest.exe

Команды windows для запуска оснасток

«Серверные» оснастки:

Команды windows для настройки сети

netsh interface ip set address name=»Local Area Connection» static 192.168.1.100 255.255.255.0 192.168.1.1 1

  • netsh -c interface dump > c:conf.txt — экспорт настроек интерфейсов
  • netsh -f c:conf.txt — импорт настроек интерфейсов
  • netsh exec c:conf.txt — импорт настроек интерфейсов
  • netsh interface ip set address «Ethernet» dhcp — включить dhcp
  • netsh interface ip set dns «Ethernet» static 8.8.8.8 — переключаем DNS на статику и указываем основной DNS-сервер
  • netsh interface ip set wins «Ethernet» static 8.8.8.8 — указываем Wins сервер
  • netsh interface ip add dns «Ethernet» 8.8.8.8 index=1 — задаем первичный dns
  • netsh interface ip add dns «Ethernet» 8.8.4.4 index=2 — задаем вторичный dns
  • netsh interface ip set dns «Ethernet» dhcp — получаем DNS по DHCP

Команды в powershell

Понравилось? =) Поделись с друзьями:

Команды для запуска элементов управления:

  • Сетевые подключения: ncpa.cpl
  • Свойства системы: sysdm.cpl
  • Установка и удаление программ: appwiz.cpl
  • Учетные записи пользователей: nusrmgr.cpl
  • Дата и время: timedate.cpl
  • Свойства экрана: desk.cpl
  • Брэндмауэр Windows: firewall.cpl
  • Мастер установки оборудования: hdwwiz.cpl
  • Свойства Интернет: inetcpl.cpl

Запускать из окружения пользователя, от другого имени, можно запускать большинство элементов управления, кроме тех, которые используют explorer. Например Панель «Сетевые подключения» использует explorer.

Листинг №1 – запуск процесса используя wmi (vbscript)

Computer = «PC3»
Command = «cmd.exe /c systeminfo.exe > \servershare%computername%.txt»
Set objWMIService = GetObject(«winmgmts:\» & Computer & «rootcimv2:Win32_Process»)
Result = objWMIService.Create(«calc.exe», Null, Null, intProcessID)

Но гораздо проще воспользоваться утилитой командной строки wmic.exe которая предоставляет достаточно удобный интерфейс для работы с WMI и входит в состав операционных систем, начиная с Windows XP. В ней чтобы запустить, например калькулятор на компьютере main достаточно выполнить следующую команду:

wmic /node:main process call create calc.exe

Разумеется, возможности WMI не ограничиваются только запуском процессов. Если вам интересно дальнейшее изучение этой технологии, я рекомендую ознакомиться со статьями Константина Леонтьева, посвященными WMI, ссылки на которые вы можете найти в конце статьи.

Листинг №3 – установка программы с последующим удалением задания (windows batch)

msiexec /qn /package \serversharesubinacl.msi
if exist «c:program filesWindows Resource KitsToolssubinacl.exe» (
subinacl /tn Install_Subinacl /f
)

Листинг №5 – action.cmd (windows batch)

for /f «skip=4 tokens=1» %%a in (‘net files’) do net files %%a /close
exit

Server.cmd будет ждать знака от пользователя, и получив его, запускать файл с командами – Action.cmd. Разумеется, в эту папку пользователи не должны иметь никакого доступа. Автоматический запуск Server.cmd при запуске компьютера можно организовать, просто создав соответствующую задачу в планировщике:

:/>  Завершение процесса программы с помощью командной строки

Остальные команды windows:

  • calc — Калькулятор
  • charmap — Таблица символов
  • chkdsk — Утилита для проверки дисков
  • cleanmgr — Утилита для очистки дисков
  • cmd — Командная строка
  • dfrgui — Дефрагментация дисков
  • dxdiag — Средства диагностики DirectX
  • explorer — Проводник Windows
  • logoff — Выйти из учетной записи пользователя Windows
  • magnify — Лупа (увеличительное стекло)
  • msconfig — Конфигурация системы
  • msinfo32 — Сведения о системе
  • mspaint — Графический редактор Paint
  • notepad — Блокнот
  • osk — Экранная клавиатура
  • perfmon — Системный монитор
  • regedit — Редактор реестра
  • shutdown — Завершение работы Windows
  • syskey — Защита БД учетных записей Windows
  • taskmgr — Диспетчер задач
  • utilman — Центр специальных возможностей
  • verifier — Диспетчер проверки драйверов
  • winver — Версия Windows
  • write — Редактор Wordpad
  • whoami — отобразит имя текущего пользователя
  • powercfg /requests — команда сообщит какие процессы, сервисы или драйверы не дают уходить системе в спящий режим. Начиная с windows 7
  • wuauclt /detectnow — проверить наличие обновлений
  • wuauclt /reportnow — отправить на сервер информацию о установленных обновлениях
  • gpupdate /force — обновление политик
  • gpresult — просмотр того, какие политики применились на компьютере
    • gpresult /H GPReport.html — в виде детального html отчета
    • gpresult /R — отобразить сводную информации в командной строке
    • gpresult /R /V — Отображение подробной информации. Подробная информация содержит сведения о параметрах, примененных с приоритетом 1.
  • mountvol — список подключенных томов
  • mstsc /v:198.162.0.1 — подключение к удаленному рабочему столу компьютера 198.162.0.1
  • wmic — команда упрощающая использование инструментария управления Windows (WMI) и систем, управляемых с помощью WMI (как на локальных, так и на удаленных компьютерах). Пример:
    • wmic logicaldisk where drivetype=2 get deviceid, volumename, description — список логических томов типа 2 (Removable Disk)
    • wmic process where (name LIKE ‘c%’) get name, processid — выводим имя и id процессов, которые начинаются с символа «c»
    • wmic process get /? или wmic process /? или wmic /? — справка
    • wmic process where (name LIKE ‘x%’) call terminate(0) — завершили процессы начинающиеся на букву «x»
  • msra.exe /offerra — удаленный помощник
  • slui 4 — вызов активации по телефону. Мне помогло, когда при попытке активации Windows Server 2008 SP2 я получал ошибку «activation error code 0×8004FE92» и при этом не было доступного варианта «активация по телефону»
  • MdSched.exe — диагностика оперативной памяти в Windows, аля memtest
  • 25 самых больших папок на диске C: (работает начиная с windows 8): dfp /b /top 25 /elapsed /study {largest} C:
  • 25 самых больших файлов в папке c:temp — Powershell «Get-ChildItem c:temp -recurse | Sort-Object length -descending | select-object -first 32 | ft name,length -wrap –auto»
  • Отключение сообщения в журнале Windows — Безопасность: «Платформа фильтрации IP-пакетов Windows разрешила подключение»:
auditpol /set /subcategory:""{0CCE9226-69AE-11D9-BED3-505054503030}"" /success:disable /failure:enable
  • Просмотр текущей политики аудита системы:
auditpol /get /subcategory:{0CCE9226-69AE-11D9-BED3-505054503030}

Примеры использования psexec.

Общий синтаксис запуска программы PsExec выглядит так:

psexec \компьютер [-u пользователь [-p пароль]] программа [аргументы]

Рассмотрим несколько примеров для понимания работы утилиты PsExec.

1. Узнаем  конфигурацию сетевого интерфейса компьютера в сети.

Запускаем программу psexec с указанием ip-адреса удаленного компьютера и командой, которую нужно выполнить.

psexec \192.168.2.100 ipconfig

Оставьте комментарий