Использование PsTools для управления другими ПК из командной строки
На сегодняшнем уроке из серии Geek School, посвященной SysInternals, мы покажем вам, как использовать набор утилит PsTools для выполнения всех видов задач администрирования как локально, так и на удаленных компьютерах..
ШКОЛЬНАЯ НАВИГАЦИЯ- Что такое инструменты SysInternals и как вы ими пользуетесь?
- Понимание Process Explorer
- Использование Process Explorer для устранения неполадок и диагностики
- Понимание Process Monitor
- Использование Process Monitor для устранения неполадок и поиска взлома реестра
- Использование автозапуска для работы с процессами запуска и вредоносными программами
- Использование BgInfo для отображения системной информации на рабочем столе
- Использование PsTools для управления другими ПК из командной строки
- Анализ и управление вашими файлами, папками и дисками
- Заключение и совместное использование инструментов
Если вы когда-нибудь хотели подключиться к другому компьютеру и запустить команду, быстро получить информацию о запущенных процессах и, возможно, завершить их, или даже остановить службу на другом ПК, вы можете использовать утилиты PsTools для выполнения всех этих задач и даже Больше.
Очевидно, что вы можете использовать удаленный рабочий стол или аналогичную службу для подключения к любому компьютеру с ОС Windows и фактически видеть рабочий стол и делать все, что вы будете делать локально, но утилиты PsTools позволяют выполнять множество задач из командной строки - или, что еще лучше, из скрипт, который вы можете использовать позже.
Это тип утилит, которые лучше всего работают в корпоративной среде, и освоение этих инструментов определенно сделает вас намного лучше в работе по администрированию системы, сэкономит ваше время и позволит вам делать вещи намного умнее. Делать вещи умнее и быстрее - это важный навык для того, чтобы быть великим сисадмином.
В наборе PsTools есть двенадцать инструментов, и хотя некоторые из них чрезвычайно полезны, другие были заменены инструментами, встроенными в более поздние версии Windows, и есть несколько других, которые бесполезны для большинства людей. Мы рассмотрим все из них, чтобы вы поняли, как они работают и почему вы можете использовать каждый из них..
- PsExec - выполняет процессы на удаленном компьютере
- PsFile - показывает файлы, которые открываются на удаленном компьютере через сеть
- PsGetSid - отображает идентификатор безопасности для компьютера или пользователя
- PsInfo - выводит информацию о системе
- PsKill - убивает процессы по имени или идентификатору
- PsList - выводит информацию о процессах в командной строке
- PsLoggedOn - список учетных записей, которые вошли в систему либо на компьютере или удаленного подключения
- PsLogList - вытащить журнал событий из командной строки
- PsPasswd - изменить пароль для пользователей
- PsPing - довольно простая утилита ping с некоторыми дополнительными функциями
- PsService - перечислять и вносить изменения в службы Windows
- PsShutdown - выключить, выйти из системы или приостановить работу компьютера
- PsSuspend - приостанавливать и возобновлять процессы (а не убивать их)
Стоит отметить, что вы можете использовать такой инструмент, как PsExec, для запуска всех видов утилит командной строки на удаленных компьютерах, включая действительно полезные, такие как инструмент командной строки Autoruns и многие другие. Возможности безграничны, когда вы освоите мощь PsTools.
Все эти инструменты можно использовать на локальных компьютерах, но они в основном полезны для подключения к удаленным компьютерам и выполнения команд на них.
Подключение к удаленным компьютерам (синтаксис для всех утилит)
Все утилиты могут быть запущены как на локальном, так и на удаленном компьютере, поэтому все они имеют один и тот же первый аргумент для имени компьютера, если это необходимо. Обратите внимание, что вы можете использовать IP-адрес, если хотите вместо этого. Если вы пропустите этот аргумент, команда будет работать на вашем локальном компьютере.
psinfo \\ имя_компьютера
Вы также можете перечислить несколько компьютеров, таких как psinfo \\ computer1, computer2, computer3, или вы можете поместить все имена в файл и ссылку, например psinfo @ computerlist.txt. Последний синтаксис - psinfo \\ *, который работает на всех компьютерах в домене, который, вероятно, не будет использоваться каждый день..
Если вам нужно подключиться с альтернативными учетными данными, поскольку учетная запись вашего локального компьютера имеет другое имя пользователя и пароль, чем у другого компьютера, вы можете использовать параметры -u и -p, хотя мы заметим, что вы можете не использовать -p для командная строка с паролем в команде по соображениям безопасности. Обновление: начиная с последней версии PsExec, ни один инструмент больше не передает пароли в виде открытого текста, поэтому единственное беспокойство - если кто-нибудь сможет прочитать ваши файлы скриптов и увидеть там пароль.
psinfo \\ имя_компьютера -u «пользователь» -p «пароль»
Часть «user» команды изменится на «DOMAIN \ user», если вы находитесь в доменной среде и вам нужно перейти от текущего работающего пользователя.
Замечания: как правило, вам нужно подключиться к удаленным компьютерам с учетной записью администратора.
Настройка доступа к удаленному администрированию
Если вы находитесь в доменной среде, которой будет пользоваться большинство людей, которым нужно использовать PsTools, вы можете полностью игнорировать этот раздел, поскольку все должно работать нормально. Для тех, кто работает под управлением Windows 7, 8 или Vista в домашней среде или использует несколько компьютеров в офисе без домена, вам потребуется настроить контроль учетных записей на удаленном компьютере, чтобы PsTools работал правильно.
Проблема хорошо описана Microsoft:
Когда пользователь, являющийся членом группы локальных администраторов на целевом удаленном компьютере, устанавливает удаленное административное соединение, например, с помощью команды net use * \\ remotecomputer \ Share $, он не будет подключаться как полный администратор. У пользователя нет возможности повышения прав на удаленном компьютере, и пользователь не может выполнять административные задачи.
Чтобы объяснить это по-другому, при попытке подключиться к другому компьютеру и запустить что-то, требующее доступа администратора, нет способа вызвать приглашение UAC и принять его с вашего компьютера, поэтому он не будет подключаться как администратор.
И это не плохо. Вы не должны изменять этот параметр, не понимая полностью, что вы разрешите распространению вредоносного ПО с одного компьютера на другой - при условии, что у вредоносного ПО есть ваше локальное имя пользователя и пароль, и этот пароль совпадает с другим компьютером, и Вредоносные программы - это хитрость, а большинство - нет. Но это еще не то, что нужно воспринимать легкомысленно.
И снова, если вы находитесь в доменной среде, эта проблема не существует и не нуждается в изменении. И если вы просто тестируете с кучей виртуальных машин, вам не о чем беспокоиться.
Чтобы настроить UAC для запуска PsTools, вам нужно открыть редактор реестра и перейти к следующему ключу:
HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \
Windows \ CurrentVersion \ Policies \ System
Когда вы окажетесь там, создайте новый 32-битный DWORD с правой стороны, присвойте ему имя LocalAccountTokenFilterPolicy и значение 1. Вам не нужно перезагружать компьютер, чтобы настройки вступили в силу.
Замечания: просто чтобы уточнить, этот параметр должен происходить на удаленном компьютере, к которому вы подключаетесь.
PsExec
PsExec, вероятно, является самым мощным инструментом в наборе, так как вы можете выполнить любую команду в локальной командной строке так же, как и на удаленном компьютере. Это включает в себя все, что можно запустить из командной строки - вы можете изменить параметры реестра, запустить сценарии и утилиты или подключиться с этого компьютера к другому. Вывод команд будет показан на вашем локальном ПК, а не на удаленном.
Синтаксис прост:
psexec \\ computername apptorun.exe
Реально, однако, вы бы хотели также включить имя пользователя и пароль в командной строке. Например, чтобы подключиться к другому компьютеру и проверить список сетевых подключений, вы должны использовать что-то вроде этого:
psexec \\ имя_компьютера -u Пользователь -p Пароль ipconfig
Эта команда выдаст вывод, подобный следующему:
Следующая страница: Использование PsExec для запуска удаленных команд