1000++ способ запуска команд на удаленном компьютере
В наше время даже для собак придумали удаленное управление.
Возвращаясь к циклу «Конспект Админа», мне хотелось бы рассказать о вариантах запуска исполняемых программ на удаленных компьютерах. Эта статья будет интересна тем, у кого еще нет систем централизованного управления, но уже есть понимание утомительности ручного обхода рабочих станций и серверов. Либо тем, кому решения «под ключ» не интересны ввиду неспортивности.
В качестве того, зачем нужен такой запуск программ, можно привести недавнюю истерию с Петей\Не-Петей, когда все бросились проверять\отключать SMBv1 и загружать обновления. Да и провести инвентаризацию или установить срочный патч таким методом тоже можно.
Если в операционных системах *nix для удаленного запуска, как правило, используется SSH, то у Windows способов запуска программ и скриптов воистину как песка в пустыне. Я разберу основные варианты, как общеизвестные, так и экзотические. Таких очевидных вещей как telnet-сервер касаться не буду, тем более Microsoft уже убрала его из современных ОС.
Способы старые, временем проверенные
Psexec
Пожалуй, это первое, что приходит на ум, когда идет речь об удаленном запуске программ. Утилита от Марка Руссиновича используется еще со времен Windows NT и до сих пор применяется. Помимо основной функции, можно использовать ее и как Runas, и для запуска программ в пользовательской сессии терминального сервера. Psexec также позволяет задавать ядра процессора, на которых будет запускаться программа, и ее приоритет в системе.
В качестве примера посмотрим, установлено ли обновление, закрывающее нашумевшую уязвимость SMB на списке компьютеров:
В файле computers.txt находится список компьютеров. Для запуска по всему домену можно использовать \\*. В файле \\server\share\log.txt будут появляться имена рабочих станций или серверов без обновления. Если в домене существуют компьютеры с *nix на борту или нет доступа к административному сетевому ресурсу Admin$ ― команда на этой машине не выполнится, но обработка продолжится. Чтобы скрипт не зависал при каждой попытке подключения, можно задать тайм-аут с помощью ключа -n.
Если компьютер выключен ― мы об этом не узнаем. Поэтому лучше предварительно проверять доступность машин или собирать в файле информацию об успешном или неудачном выполнении.
К минусам Psexec можно отнести то, что она из-за своего удобства и популярности часто используется вирусописателями. Поэтому антивирусные системы могут обнаруживать утилиту как опасность вида remote admin.
По умолчанию процесс на удаленной машине выполняется от имени пользователя, запустившего Psexec. При необходимости логин и пароль можно задать явно или же использовать аккаунт SYSTEM.
Для управления системами Windows с помощью разных графических утилит часто используется WMI (Windows Management Instrumentation) ― реализация объектно-ориентированного стандарта управления WBEM. В качестве утилиты с графическим интерфейсом для работы с WMI можно использовать wbemtest.exe.
Для работы с WMI из консоли создана wmic.exe. Например, для проверки установленных обновлений вместо жутковатой конструкции из предыдущего примера можно использовать простую команду:
Использовать список компьютеров также можно командой /node:»@computers.txt».
Еще при помощи WMI можно запускать программы – синтаксис предельно прост:
К сожалению, в отличие от Psexec, получить вывод в консоли не получится ― придется выводить результаты команды в файл.
По умолчанию процесс на удаленной машине выполняется от имени пользователя, запустившего wmic. При необходимости логин и пароль можно задать явно.
Групповые политики и скрипты
Если предыдущие варианты не требовали доменной среды, то в этом случае потребуется домен. Поддерживаются скрипты при входе и выходе пользователя из системы, а также при ее включении и выключении. Поскольку каждый администратор Windows сталкивался с ними, я не буду подробно расписывать как ими пользоваться ― лишь напомню, где их искать.
Скрипты, выполняющиеся при старте и завершении системы.
Скрипты, выполняющиеся при входе и выходе пользователя из системы.
Скрипты, настраиваемые в пользовательском разделе, выполняются от имени пользователя, а в разделе компьютера ― под аккаунтом SYSTEM.
Назначенные задания
Довольно интересный способ, заслуживающий право на жизнь. Назначенные задания можно создавать из командной строки при помощи утилиты schtasks.exe, выполнять их, затем удалять. Подробнее с синтаксисом можно ознакомиться в документации, я же разберу пример использования назначенных заданий в доменной среде. Предположим, нам нужно выполнить команду как можно быстрее вне зависимости от того, выключен компьютер или нет. Для этого используются так называемые предпочтения групповых политик (Group Policy Preference).
Искать установку назначенных заданий следует в конфигурации компьютера или пользователя ― «Настройка ― Параметры панели управления ― Назначенные задания».
Создание нового назначенного задания.
Для выполнения команды или скрипта ASAP понадобится создать «Немедленную задачу (Windows 7 и выше)». Если вдруг в инфраструктуре остались машины под управлением Windows XP, то подойдет «Очередное задание (Windows XP)».
Стоит сделать несколько политик с соответствующими WMI-фильтрами или создать два разных назначенных задания в одной политике с нацеливанием ― например, при помощи того же WMI-фильтра. Это поможет избежать конфликтов в разнородной среде со старыми и новыми Windows.
Пример WMI-фильтра для применения политики только на компьютерах с Windows XP:
В остальном процедура создания назначенного задания тривиальна. Единственное, не забывайте отметить пункт «Применить один раз и не применять повторно», если задача не требует повторного запуска.
Запускаем немедленную задачу только один раз.
При использовании таких назначенных заданий программа запустится, как только компьютер получит обновление групповой политики. Это удобно: не нужно проверять доступность компьютеров в случае Psexec и wmic и заставлять пользователей перезагружать машины, как в случае скриптов групповых политик. При необходимости можно скопировать файл скрипта локально в разделе «Настройка ― Конфигурация Windows ― Файлы».
Назначенные задания позволяют явно задать имя пользователя для запуска программы, в том числе и для SYSTEM.
Через реестр
Модификация реестра на пользовательских машинах ― странный вариант, лишь на случай крайней необходимости. Можно использовать ветки Run или RunOnce. Подробнее о них ― в документации. Сама модификация реестра может проводиться через групповые политики или из командной строки ― например, такой командой:
В зависимости от ветки реестра, процесс будет выполняться или под пользователем, выполнившим вход в систему, или под аккаунтом SYSTEM.
Есть и другие способы, такие как правка ярлыков в папке «Автозагрузка» или добавление в ярлык к популярной программе && script.cmd, но эти методы уже из серии «можно, но не нужно».
Теперь перейдем к новым инструментам.
Способы новые или куда же без PowerShell
PowerShell, оправдывая свое название, может подключаться к удаленным компьютерам при помощи WMI, RPC и WS-Management (WSMan). Использование последнего метода требует предварительной настройки.
Командлеты, не требующие предварительной настройки, как правило, имеют параметр ComputerName, но не имеют параметра Session. Посмотреть список таких командлетов можно командой:
Для настройки WSMan в общем случае достаточно выполнить команду Enable-PSRemoting-Force. Она запустит службу удаленного управления WinRM и пропишет исключения в фаерволе ― в принципе, это можно сделать для всего домена при помощи групповых политик. Подробнее настройка описана в документации.
После того как все компьютеры будут готовы принимать запросы, мы сможем подключаться при помощи соответствующих командлетов PowerShell. Для проверки возможности подключения используется командлет Test-WSMan.
Проверка возможности подключения.
Для того чтобы выполнить определенную команду или скрипт, используется командлет Invoke-Command со следующим синтаксисом:
Где COMPUTER ― имя компьютера, COMMAND ―– имя команды, а USERNAME ― имя пользователя, если оно нужно.
Смотрим содержимое диска С удаленного компьютера.
Если же нам нужно получить полноценную консоль ― не автоматизации ради, а ради управления конкретным компьютером, ― то можно использовать командлет Enter-PSSession.
Работаем в консоли удаленного компьютера.
Напомню, что с помощью JEA можно ограничить доступные подобной сессии командлеты или дать доступ нужным без прав администратора.
Конечно, кроме встроенных средств и небольших утилит, существует множество программ для управления структурой. Помимо взрослых решений, для управления конфигурациями вроде Chef, Ansible и MS SCCM можно использовать и средства мониторинга вроде Zabbix, и даже консоль управления антивирусом Касперского.
В период гетерогенных структур хорошо бы иметь возможность унифицированного управления Windows и Linux. Это можно сделать и с помощью PowerShell, что само по себе достойно отдельной статьи ― стоит такую сделать или уже лишнее?
Кстати, поделитесь вашими способами скрытого и не очень запуска программ на удаленных компьютерах. Ну, за исключением эксплойтов.
Набор утилит PsTools
PsTools — это набор утилит, которые можно использовать для выполнения ряда административных функций, а также для поиска и устранения неисправностей, в системах Windows. Устанавливать утилиты не нужно. Просто сохраните на своем локальном компьютере и запускайте из окна командной строки.
Вывод сведений о процессах
PsList выводит CPU-ориентированную информацию, относящуюся ко активным, в данный момент, процессам целевой системы. Информацию, которую выводит PsList, можно также получить, используя утилиты pmon и из набора Windows Resource Kit. Тем не менее, PsList является более мощной утилитой, поскольку она позволяет получать информацию о процессах на удаленных систем.
Останов процесса
Одним из самых популярных инструментальных средств в наборе PsTools является PsKill. PsKill получилась очень удобной для работы с плохо управляемыми или плохо написанными программами, а также для искоренения из Системы вредителей. Проще говоря, PsKill используется для завершения (kill), или немедленного останова, активного процесса.
Blog Information Technology
CMD «Живее всех живых», пакет утилит Pstools.
Привет всем, наконец-то нашёл время для написания статьи, в нашем городе Челябинске закрыли все учебные заведения в связи с эпидемией гриппа и ОРВИ так что в моём распоряжении целая неделя на творческую работу и на обдумывание, реализацию моих планов в IT бизнесе. Сегодня я создам рубрику «CMD» стандартный интерпретатор команд Windows, в этом разделе я буду описывать интересные команды, программы, создавать Bat файлы.
С командной строкой я встречаюсь практически каждый день на парах в институте, 70% пар у нас проходят в компьютерных классах. Каждую пару чтобы не умереть со скуки, я изучаю, исследую ресурсы нашей локальной сети, самое занятное дело посмотреть чем там админчики занимаются и что они прячут на своих жёстких дисках).
Если умело использовать связки команд можно добиться многого.
Сегодня я расскажу о замечательном наборе программ 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
установить на локальном компьютере тип запуска службы в «авто". Возможные варианты — demand — «вручную» и disabled — «отключено".
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