PsExec, запуск процесса на удалённом компьютере

Случилось так, что в один прекрасный день появилась необходимость снести во всех офисах на всех компьютерах ISA Client, вот здесь мне и пригодилася замечательная програмка PsExec. С помощью нее можно выполнить любую программу на удаленном компьютере, естественно вы должны входить в группу локальных админов, иначе ничего не выйдет.

Для начала краткое описание 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 \\marklap «c:\длинное имя\app.exe». Введенные данные передаются в удаленную систему при нажатии клавиши «Ввод», для завершения удаленного процесса нужно нажать сочетание клавиш Ctrl-C.

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

Запустив MsiExec.exe с ключем /no restart /q/x{ключь реестра ISA Client} REMOVE=ALL  на всех компьютерах домена, ISA Client был благополучно удален. Полная команда выглядела так —

PsExec.exe \\* MsiExec.exe /norestart /q/x{199B7F78-69B7-47C5-8D4B-A3ED1391FB6B} REMOVE=ALL

Ключи можно найти в реестре  HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\

И в заключении, в комплект программ PsTools входит не только PsExec, но и масса других утилит, вот краткое их описание

PsFile — показывает удаленно открытые файлы;

PsGetSid — выводит идентификатор безопасности (SID) компьютера или пользователя;

PsInfo — выводит информацию о системе;

PsKill — позволяет завершать процессы по имени или идентификатору процесса;

PsList — выводит подробную информацию о процессах;

PsLoggedOn — позволяет просматривать данные о том, кто зарегистрирован в системе локально или в результате использования общих ресурсов (в комплект загрузки входит полный исходный текст программы);

PsLogList — позволяет выгрузить записи из журнала регистрации событий;

PsPasswd — позволяет менять пароли учетных записей;

PsService — позволяет просматривать информацию о службах и управлять ими;

PsShutdown — позволяет выключить и при необходимости перезагрузить компьютер;

PsSuspend — позволяет приостанавливать процессы;

Более подробно об этих программах можно почитать в help файле который идет в пакете

Качаем PsTools здесь

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>