Главная > cmd > CMD «Живее всех живых», пакет утилит Pstools.

CMD «Живее всех живых», пакет утилит Pstools.

Привет всем, наконец-то нашёл время для написания статьи, в нашем городе Челябинске закрыли все учебные заведения в связи с эпидемией гриппа и ОРВИ так что в моём распоряжении целая неделя на творческую работу и на обдумывание, реализацию моих планов в IT бизнесе. Сегодня я создам рубрику «CMD» стандартный интерпретатор команд Windows, в этом разделе я буду описывать интересные команды, программы, создавать Bat файлы.
С командной строкой я встречаюсь практически каждый день на парах в институте, 70% пар у нас проходят в компьютерных классах. Каждую пару чтобы не умереть со скуки, я изучаю, исследую ресурсы нашей локальной сети, самое занятное дело посмотреть чем там админчики занимаются и что они прячут на своих жёстких дисках).
Если умело использовать связки команд можно добиться многого.
Сегодня я расскажу о замечательном наборе программ PStools.

pstools

Я обычно работаю в telnet’e но когда он выключен на удалённой машине и желательно его не включать чтобы не выдать себя, я использую пакет утилит Pstools конечно он не идеал, телнет по круче всё же но тоже не плохая альтернатива.

Утилиты пакета PStools (Mark Russinovich).

Описание утилит пакета:

PsExec
PsFile
PsGetSID
PsInfo
PsKill
PsList
PsLoggedOn
PsLogList
PsPasswd
PsService
PsShutdown
PsSuspend

PsExec
ВВедение
Программа PsExec — это облегченный вариант Telnet. Она позволяет выполнять процессы в удаленных системах, используя для этого все возможности интерактивного интерфейса консольных приложений, и при этом нет необходимости вручную устанавливать клиентское программное обеспечение. Основное достоинство PsExec — это возможность вызывать в интерактивном режиме интерфейс командной строки в удаленных системах и удаленно запускать программы (в фоновом режиме так и в интерактивном) выполнять какие либо команды.

Установка
Просто скопируйте программу PsExec в папку для исполняемых файлов (system32) либо перейдите в текущую папку с программой и запускайте от туда. При вводе команды psexec на экран выводится справка о синтаксисе команды.
Программа PsExec работает в операционных системах Windows Vista, NT 4.0, Win2000, Windows XP и Server 2003, в том числе в 64-разрядных версиях ОС

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

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

При обращении к локальной системе эту версию программы PsExec можно использовать вместо программы Runas, поскольку для программы PsExec не требуются права администратора.

Примеры
psexec \\ip cmd
Вызывает интерактивный интерфейс командной строки в удалённой системе \\ip:

psexec \\ip ipconfig /all
Запускает в удаленной системе программу IpConfig с параметром /all и выводит полученные данные на экран локальной системы:

psexec \\ip -c test.exe
PsExec с ключом -c копирует программу (test.exe) на удаленную машину далее выполняет её в интерактивном режиме и удаляет её с удаленной системы после завершения работы.

psexec \\ip c:\bin\test.exe
Если не указан путь к программе, которую надлежит выполнить, то PsExec обращается в каталог \windows\system32 на удаленной системе. Если известно, что программа находится не в этом каталоге, следует ввести полный путь на удаленной машине.

psexec -i -d -s c:\windows\regedit.exe
Запускает в интерактивном режиме из системной учетной записи программу Regedit для просмотра данных разделов реестра SAM и SECURITY:

psexec -l -d «c:\program files\internet explorer\iexplore.exe»
Используется для вызова программы Internet Explorer от имени пользователя с ограниченными правами:

psexec \\ip -u login -p pass cmd
Запуск cmd от определённого пользователя.

psexec \\ip -u Mydomain\MyUsername -p mypass net view
Посмотрим сетевое окружение с удалённого пк, доменный вариант

psexec \\PC1 -u Mydomain\MyUsername -p mypass net use X: \\PK2\C$
Подключить скрытый ресурс диск «C$» удаленного компьютера PK2 к удаленному компьютеру PC1

psexec \\ip -u login -p pass -c mycmd.cmd
Выполнение командного файл (.bat или .cmd), нужно сначала скопировать его на удаленный компьютер, используем ключ -c. Если в командном файле используются сетевые диски или команды, требующие доступ к сети (например, NET.EXE ), то нужно задать имя пользователя.

psexec \\ip -u login -p pass -i notepad.exe
Пример ключа -i иногда необходимо запустить приложение на удаленном компьютере, видимое для его пользователя.

psexec \\* -s install.exe
Запуск приложений на всех компьютерах домена (вместо имени компьютера задать — \\*) с правами администратора или под локальной системной учетной записью (ключ -s).

psexec.exe -a 1 -i -w «папка приложения» «приложение»
Psexec можно использовать для обхода ошибки типа «Negative delta time», возникающей на многоядерных системах из-за несовпадения счетчиков RTSC (Real Time Stamp Counter) у разных ядер. Для чего приложение запускается с помощью psexec только для одного ядра (ключ -a):

psexec \\remote cmd /c ver
Если на удаленной системе нужно выполнить одну консольную команду, следует использовать ключ /c, указав вслед за ним выполняемую команду.

Наверно всё на этом оставим программу Psexec переходим к остальным программам.


PsFile
Введение
Служебная программа PsFile с интерфейсом командной строки выводит на экран список файлов системы, которые открыты удаленно, а также позволяет закрывать открытые файлы по имени или по идентификатору файла.
PsFile похожа на команду net.exe file.
Команда «net file» выводит на экран список файлов, открытых другими компьютерами в системе, в которой выполняется данная команда, однако она усекает длинные имена путей и не позволяет просматривать эти данные для удаленных систем.

Применение
По умолчанию программа PsFile выводит список файлов локальной системы, которые открыты удаленными системами. Если после команды ввести символ «- », на экран выводится информация о синтаксисе этой команды.

psfile [\\удаленный_компьютер [-u имя_пользователя [-p пароль]]] [[Id | путь] [-c]]
-u Позволяет указать необязательное имя пользователя для входа в систему удаленного компьютера.
-p Позволяет указать пароль для имени пользователя. Если этот параметр опущен, то появится подсказка, предлагающая ввести пароль, при этом он не будет отображаться на экране.
Id Идентификатор файла (присвоенный программой PsFile), для которого необходимо вывести информацию или который нужно закрыть.
путь Полный или частичный путь к файлам, для которых необходимо вывести информацию или которые нужно закрыть.
-c Позволяет закрыть файлы, определенные с помощью идентификатора или пути.
Пример PsFile \\computer -u username -p password


PsGetSid
Введение
Выводит на экран уникальный номер, идентифицирующий учетную запись пользователя, группы или компьютера. Он присваивается учетной записи при ее создании (код безопасности). Внутренние процессы Windows обращаются к учетным записям по их кодам безопасности, а не по именам пользователей или групп. Если удалить, а затем снова создать учетную запись с тем же именем пользователя, то предоставленные прежней учетной записи права и разрешения не сохранятся для новой учетной записи, так как их коды безопасности будут разными. Аббревиатура SID образована от Security ID.

Применение
psgetsid [\\computer[,computer[,…] | @file] [-u username [-p password]]] [account|SID]

Пример
PsGetSid \\computer -u username -p password account


PsInfo
Введение
Выдает системную информацию об удаленной или локальной системе (версия ОС, тип процессора, видеоадаптера, объем ОЗУ, установленное ПО и т.п.).

Применение
psinfo [-h] [-s] [-d] [-c [-t delimiter]] [\\computer[,computer[,..]]|@file [-u Username [-p Password]]]

Ключи (кроме рассмотренных выше для PSExec):
-h включить в выдаваемый отчет информацию об установленных обновлениях (hotfixes).

-s отображать список установленных программ.
-d отображать информацию о дисках (тип, файловая система, метка тома, размер, объем свободного пространства.
-c выдавать данные в формате CSV (текстовый файл с данными, разделенными по полям с помощью символа-разделителя — запятой). Вы можете импортировать данные из такого файла в другие приложения, например, в Excel.
-t позволяет задать символ разделитель в файлах формата CSV, если он должен отличаться от запятой


PsKill
Введение
Принудительно завершить удаленный процесс.

Использование
pskill [- ] [-t] [\\компьютер [-u имя_пользователя] [-p пароль]]

Выводится перечень допустимых параметров.
-t Завершает процесс и все процессы — его потомки.
\\компьютер Имя компьютера, где выполняется процесс, который нужно завершить. Удаленный компьютер должен быть виден в сетевом окружении ОС NT.
-u имя_пользователя
Если нужно завершить процесс, выполняемый в удаленной системе, но ваши учетные данные не содержат прав администратора для этой системы, то для входа в удаленную систему с правами администратора следует использовать этот параметр. Если пароль не задан с помощью параметра -p, то программа PsKill выдаст запрос на ввод пароля, при этом вводимый пароль не будет отображаться на экране.
-p пароль
Этот параметр позволяет задать пароль в командной строке, что дает возможность вызывать программу PsKill из пакетного файла. Если указать имя учетной записи без параметра -p, то программа PsKill в процессе работы выдаст запрос на ввод пароля.
идентификатор_процесса Идентификатор процесса, который нужно завершить.
имя_процесса Имя одного или нескольких процессов, которые нужно завершить.

Применение
pskill [\\computer [-u username [-p password]]]

process Id or name имя или идентификатор удаленного процесса (его можно получить с помощью PsList.exe).

С помощью PsKill можно принудительно перезагрузить или даже вызвать «синий экран смерти» (BSOD- Blue Screen Of Death), если завершать системные процессы (lsass, winlogon и т.п.)


PsList
Введение
Получить подробную информацию о запущенных процессах на локальной или удаленной системе.

pslist.exe [-d][-m][-x][-t][-s [n] [-r n] [\\computer [-u username][-p password][name|pid]

-d Выводятся сведения о потоке
-m Выводятся сведения о памяти.
-x Выводится список процессов, сведения о памяти и потоках.
-t Выводится дерево процесса.
-s [n] Запускается режим диспетчера задач, дополнительно можно указать продолжительность использования режима в секундах. Для отмены режима нажмите клавишу Esc.
-r n Периодичность обновления сведений в окне диспетчера задача (значение по умолчанию — 1).
\\компьютер Вместо вывода информации о процессах на локальном компьютере программа PsList выводит сведения об указанной операционной системе Windows NT или 2000. Задайте параметр -u, указав имя и пароль пользователя, от имени которого следует войти в удаленную систему, если ваших прав недостаточно для получения информации о счетчиках производительности этой системы.
-u Имя пользователя. Если нужно прекратить процесс, выполняемый в удаленной системе, но ваша учетная запись не имеет прав администратора для этой системы, то для входа в удаленную систему с правами администратора следует использовать этот параметр. Если пароль не задан с помощью параметра -p, то программа PsList выдаст запрос на ввод пароля, при этом вводимый пароль не будет отображаться на экране.
-p Пароль. Этот параметр позволяет задать пароль в командной строке, что дает возможность вызывать программу PsList из пакетного файла. Если указать имя учетной записи без параметра -p, то программа PsList в процессе работы выдаст запрос на ввод пароля.
имя Выводятся сведения о процессах, имена которых начинаются с заданной строки.
-e Выводятся сведения о процессе, имя которого точно соответствует введенной строке.
pid При указании этого параметра программа PsList вместо вывода списка всех выполняющихся в системе процессов производит поиск процесса с указанным идентификатором PID. Таким образом, если ввести команду
pslist 53, то будут выведены статистические данные процесса, PID которого равен 53.

PsList \\computer -u username -p password account


PsLoggedOn
Введение
Это приложение, выводящее список пользователей, вошедших в систему как в локальном режиме, так и через ресурсы локального или удаленного компьютера. Если указать вместо имени компьютера имя пользователя, программа PsLoggedOn проведет поиск среди компьютеров в сетевом окружении и сообщит, вошел ли данный пользователь в одну из этих систем. В комплекте загружаемых файлов имеется полная версия исходного кода.

Вошедшим в локальную систему программа PsLoggedOn считает пользователя, профиль которого загружен в реестр; при составлении списка таких пользователей она проводит поиск среди элементов раздела реестра HKEY_USERS. Обнаружив раздел, имя которого совпадает с идентификатором безопасности того или иного пользователя, программа PsLoggedOn определяет имя этого пользователя и выводит его. Для составления списка пользователей, вошедших в систему через общие ресурсы, программа PsLoggedOn обращается к прикладному программному интерфейсу NetSessionEnum. Следует иметь в виду, что среди пользователей, вошедших через общие ресурсы на искомые удаленные компьютеры, программа PsLoggedOn укажет и ваше собственное имя — дело в том, что для доступа к реестру удаленной системы вы должны выполнить вход.

Применение
psloggedon [- ] [-l] [-x] [\\имя_компьютера | имя_пользователя]

Вывод списка поддерживаемых параметров и единиц измерения, применяемых при выводе данных.
-l Вывод списка пользователей, вошедших только в локальную систему (без сеансов через сетевые ресурсы).
-x Запрет на вывод временных параметров входа в систему.
\\имя_компьютера Позволяет указать имя компьютера, к которому должен относиться список вошедших пользователей.
имя_пользователя При указании имени пользователя программа PsLoggedOn проводит в сети поиск систем, в которые этот пользователь вошел. Эта возможность позволяет, в частности, убедиться в том, что тот или иной пользователь не числится среди вошедших в системы, перед изменением настроек его профиля.

Пример
psloggedon.exe -l \\server

Выдать имя локального пользователя компьютера server.

psloggedon.exe \\server
Выдать список всех пользователей, подключенных к компьютеру server.

psloggedon.exe admin -d mydomain.com
Найти в домене mydomain.com компьютер с залогиненым пользователем «admin».


PsLogList
Введение
В состав комплекта Resource Kit входит программа elogdump, которая позволяет сохранить содержимое журнала событий локального или удаленного компьютера. Программа PsLogList является аналогом этой программы, с той лишь разницей, что PsLogList позволяет выполнить вход на удаленную систему и получить строки сообщений с компьютера, на котором расположен просматриваемый журнал, в случаях, если текущий набор учетных сведений не позволяет получить доступ к журналу событий.

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

psloglist [- ] [\\имя_компьютера[,имя_компьютера[,…] | @файл [-u имя_пользователя [-p пароль]]] [-s [-t разделитель]] [-m #|-n #|-h #|-d #|-w][-c][-x][-r][-a мм/дд/гг][-b мм/дд/гг][-f фильтр] [-i ID[,ID[,…] | -e ID[,ID[,…]]] [-o источник[,источник][,..]]] [-q источник[,источник][,..]]] [-l файл_журнала]

@файл Выполнить команду для каждого из компьютеров, перечисленных в указанном текстовом файле.
-a Вывести записи, созданные после указанной даты.
-b Вывести записи, созданные до указанной даты.
-c Очистить журнал после вывода содержимого.
-d Вывести записи за предыдущие n дней.
-e Исключить события с указанными кодом ID (до 10 шт).
-f Применить к типам событий фильтр (например “-f w” для вывода только предупреждений).
-h Вывести записи за предыдущие n часов.
-i Вывести только события с указанными кодом ID (до 10 шт).
-l Вывести записи, содержащиеся в указанном файле журнала событий.
-m Вывести записи за предыдущие n минут.
-n Вывести только указанное количество последних событий.
-o Вывести записи только от указанных источников (например “-o cdrom”).
-p Необязательный параметр, указывает пароль для пользователя. Если этот параметр опустить, то будет выдан запрос на ввод пароля, при этом пароль не будет отображаться на экране.
-q Исключить из вывода записи от указанных источников (например “-o cdrom”).
-r Выводить события в порядке от наиболее давних к наиболее свежим.
-s Указывает программе PsLogList выводить записи журнала событий по одной на строчку, разделяя поля запятыми. Этот формат удобен для текстового поиска, например можно выполнить команду psloglist | findstr /i текст_для_поиска. Также этот формат удобен для импортирования результатов в электронные таблицы.
-t По умолчанию разделителем полей является запятая, но с помощью этого параметра можно указать другой символ в качестве разделителя.
-u Необязательный параметр. Указывает имя пользователя для выполнения входа на удаленную систему.
-w Ожидать новых сообщений и выводить их по мере их появления в журнале (доступно только для локальной системы).
-x Выводить расширенные данные.
имя_журнала По умолчанию программа PsLogList выводит содержимое системного журнала событий. Можно указать другой журнал. Для этого достаточно ввести первые несколько букв имени журнала (приложение, система или безопасность).


PsPasswd
Введение
Cменить пароль на локальной или удаленной системе.

Использование:
pspasswd [\\[computer[,computer,[,…]|Domain]|@file] [-u Username [-p Password]]] Username [NewPassword]

Username — имя пользователя, для которого будет изменен пароль.
NewPassword — новый пароль.


PsService
Введение
Управление службами на локальной или удаленной системе.

Использование
psservice.exe [\\Computer [-u Username [-p Password]]]

Cmd может принимать значения:
query -запрос о состоянии службы.
config — запрос о конфигурациии службы
setconfig — изменение типа запуска службы
start — запустить службу
stop — остановить службу
restart — перезапустить службу
pause — приостановить службу
cont — продолжить работу приостановленной службы
depend — показать список служб, зависящих от указанной
find -найти службу в локальной сети

Примеры
psservice \\gamerPC -u admin -p admpass query nncron
опросить состояние службы nncron на компьютере gamerPC

psservice -u admin -p admpass setconfig nncron auto
установить на локальном компьютере тип запуска службы в «авто&quot. Возможные варианты — demand — «вручную» и disabled — «отключено&quot.

psservice -u admin -p admpass find «DHCP клиент»
найти службу «DHCP клиент» в локальной сети. Результат — список компьютеров с работающей службой. Если после имени службы задать ключ all — то в список попадут и компьютеры, где служба установлена, но не запущена. И учтите, что имена служб содержащих русские символы должны задаваться в ДОС-кодировке и, при наличии пробелов — заключаться в двойные кавычки.

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

Использование
psshutdown -s|-r|-h|-d|-k|-a|-l|-o [-f] [-c] [-t [nn|h:m]] [-m «message»] [-u Username [-p password]] [\\computer[,computer[,…]|@file]

-a — отменить запланированные перезагрузку или отключение.
-c — разрешить локальному пользователю отменять перезагрузку или выключение.
-d — перевести компьютер в спящий режим.
-f — принудительно закрывать запущенные приложения.
-h — перевод в режим спящий режим (если поддерживается) с выгрузкой содержимого оперативной памяти на диск с последующим восстановлением после включения.
-k — выключить питание (перезагрузка, если выключение питания не поддерживается )
-l — блокировка компьютера.
-m — текст сообщения, которое будет выдано пользователю останавливаемого компьютера.
-o — завершение сеанса текущего пользователя.
-r — перезагрузить (Reboot) компьютер.
-s — завершение работы без выключения питания.
-t -счетчик времени в секундах до начала завершения работы (если не задан — 20 секунд) или время в 24-часовом формате, когда будет выполнено завершение работы системы.


PsSuspend
Введение
Приостановка и продолжение служб на удаленной или локальной системе.

Использование
pssuspend [-r] [\\RemoteComputer [-u Username [-p Password]]]

-r продолжить работу ранее приостановленной службы.
process Id or name имя или идентификатор процесса.
Можно получить с помощью ранее рассмотренной утилиты PsList

На сегодня это всё, всем удачи.




Источники:
microsoft.com
white55.narod.ru

  1. Yera
    Январь 29, 2010 в 03:48

    Спасибо очень полезная информация! Но у меня не получаеться, пишет: (unable to access servise control manager on), может у меня какие то службы не запущены? кто знает подскажите пожалуйста, заранее блогодарен!

  1. No trackbacks yet.

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

%d такие блоггеры, как: