Категории раздела

CMD [13]
Реестр [13]

Форма входа

Каталог статей

Главная » Статьи » CMD

PsExec
PsExec - Позволяет выполнить приложение на локальном и удаленном компьютере. Естественно, при наличии соответствующих прав доступа. Большинство ключей командной строки, используемые для PSexec, используются и для других утилит пакета, поэтому будут рассмотрены подробно.
Использование:
psexec.exe [\\computer[,computer2[,...] | @file][-u user [-p psswd]][-s|-e][-i][-c [-f|-v]][-w directory][-d][-priority][-a n,n,...] cmd [arguments] computer - имя или IP-адрес компьютера. Если пропущено - то приложение запускается на локальном компьютере. Если используется шаблон (\\*), PsExec выполнит приложение на всех компьютерах текущего домена.
@file - имя файла со списком компьютеров для выполнения.
-u - имя пользователя. Если опущено - то будет использовано имя текущего пользователя.
-p - пароль. Если опущен, то будет запрошен программой.
-s - выполнить приложение с локальными системными правами (Local system account).
-e - использовать указанный профиль пользователя.
-i - разрешить удаленной программе взаимодействовать с рабочим столом на удаленном компьютере. Если ключ не задан, то выполнение удаленной программы происходит незаметно для пользователя удаленного компьютера.
-c - копировать указанную программу на удаленный компьютер перед выполнением.Если ключ опущен, то программа для выполнения должна присутствовать на удаленном компьютере в путях поиска, задаваемых переменной окружения path.
-f - выполнять копирование даже при наличии исполняемого файла на удаленном компьютере.
-v - выполнять копирование только в случае, если исполняемый файл имеет более позднюю версию.
-d - не ждать завершения удаленного процесса.
-w - установить рабочий каталог для удаленного процесса.
-priority - приоритет для удаленного процесса. Может принимать значения (в порядке возрастания) -low, -belownormal, -abovenormal, -high, -realtime.
-a - указание процессоров (для мультипроцессорных систем) на котором будет выполняться приложение. Например - для CPU 1, CPU 4, ключ: "-a 1,4"
program - имя приложения для выполнения на удаленной системе.
arguments - аргументы для удаленного приложеня. Пути файлов должны задаваться относительно удаленного компьютера и имена файлов или каталогов, содержащие пробелы должны заключаться в двойные кавычки, например - "C:\Program Files\User Folder\Programm.exe"

Ввод с клавиатуры направляется на удаленный компьютер, нажатие Ctrl-C завершит удаленный процесс. Если не задано имя пользователя, то удаленный процесс будет выполнен на удаленной системе с правами локальной системной учетной записи, т.е. без доступа к сетевым ресурсам, даже если ваша учетная запись на удаленной системе дает вам такой доступ. Поэтому, если удаленному приложению требуется доступ к сетевым ресурсам, задавать имя пользователя в формате "Domain\User" обязательно. Код возврата (ERRORLEVEL) по завершению Psexec определяется удаленным приложением, что позволяет анализировать результаты выполнения удаленного приложения в командных файлах.
Примеры:
- запустить командный процессор cmd.exe на удаленном компьютере
Psexec.exe \\192.168.0.1 cmd.exe
Psexec.exe \\Comp1 cmd.exe
Psexec.exe \\192.168.0.1 -u vasya -p mypass cmd.exe
Psexec.exe \\192.168.0.1 -u vasya -p mypass -c -f -w C:\ cmd.exe

В результате вы получаете доступ к командной строке на удаленном компьютере и увидите приглашение:

Microsoft Windows 2000 [Версия 5.00.2195] (С) Корпорация Майкрософт, 1985-2000. С:\WINNT\system32>

Теперь команды, вводимые с консоли этого окна будут выполняться на удаленном компьютере. Однако, не стоит запускать на выполнение программы, использующие графический интерфейс, взаимодействие с ними будет невозможно.
Вы можете выполнить любую консольную команду на удаленном компьютере. Примеры:

- получить информацию о настройке TCP/IP
Psexec.exe \\REMOTEPC -u Mydomain\MyUsername -p mypass ipconfig /all

- получить информацию о сетевом окружении на REMOTEPC:
Psexec.exe \\REMOTEPC -u Mydomain\MyUsername -p mypass net view

- послать сообщение от REMOTEPC на другой компьютер (REMOTE2):
Psexec.exe \\REMOTEPC -u Mydomain\MyUsername -p mypass net send REMOTE2 TEXT OF MESSAGE

- подключить диск &quotC" удаленного компьютера REMOTE2 к удаленному компьютеру REMOTEPC:
Psexec.exe \\REMOTEPC -u Mydomain\MyUsername -p mypass net use X: \\REMOTE2\C

- скопировать каталог C:\TEST с удаленного компьютера REMOTEPC на удаленный компьютер REMOTE2:
Psexec.exe \\REMOTEPC -u Mydomain\MyUsername -p mypass xcopy C:\test\*.* X:\TEST\*.*

- архивировать данные каталога &quotC:\TEST" удаленного компьютера REMOTEPC на удаленный компьютер REMOTE2:
Psexec.exe \\REMOTEPC -u Mydomain\MyUsername -p mypass arj a X:\ARHIV\test.arj C:\TEST\*.*

Для того, чтобы выполнить командный файл (.bat или .cmd), нужно сначала cкопировать его на удаленный компьютер, т.е. обязательно использовать ключ -c. Если в командном файле используются сетевые диски или команды, требующие доступ к сети (например, NET.EXE ), то нужно задать имя пользователя:
Psexec.exe \\192.168.0.1 -u vasya -p mypass -c mycmd.cmd

Иногда необходимо запустить приложение на удаленном компьютере, видимое для его пользователя. Используйте ключ -i:
Psexec.exe \\192.168.0.1 -u vasya -p mypass -i notepad.exe

После запуска блокнота (notepad.exe) PsExec будет ждать его завершения удаленным пользователем. Если в этом ожидании нет необходимости, то нужно использовать ключ -d.

Особеннсоть запуска приложения от имени локальной учетной записи позволяет получить в редакторе реестра (REGEDIT.EXE) доступ к разделам SAM и SECURITY. Для этого нужно запустить удаленно regedit без указания имени пользователя и пароля и использовать "-i":
psexec.exe \\REMOTE -i regedit.exe

После чего на компьютере \\REMOTE запустится редактор реестра с доступными разделами SAM и SECURITY. Или локально с ключами -s и -i:
psexec.exe -s -i regedit.exe

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

С точки зрения системного администрирования PSexec удобно использовать для запуска приложений на всех компьютерах домена (вместо имени компьютера задать - \\*) с правами администратора или под локальной системной учетной записью (ключ -s).
Psexec.exe \\* -s install.exe - запустить install.exe на всех компьютерах домена под системной учетной записью

Ну и последнее - Psexec можно использовать для обхода ошибки типа "Negative delta time", возникающей на многоядерных системах из-за несовпадения счетчиков RTSC (Real Time Stamp Counter) у разных ядер. Для чего приложение запускается с помощью psexec только для одного ядра (ключ -a):
psexec.exe -a 1 -i -w "папка приложения" "приложение"
Категория: CMD | Добавил: Chrome (25.07.2010)
Просмотров: 10000 | Теги: PsLis, PsKill, PsLoggedOn, PsLogList, Psexec, PsGetSid, psfile, pslist, PsInfo, PStools | Рейтинг: 0.0/0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]

Поиск

Друзья сайта

  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz