Использование pstools для управления другими пк из командной строки

Введение

Вы бережете собственное время и нервы? Хотите научиться блокировать, перезагружать или выключать компьютер посредством одного нажатия клавиш? Тогда эта статья для Вас.

Перейдя с Windows XP на Windows 7, столкнулся с тем, что процедура завершения работы существенно поменялась. Для окончания сеанса надо нажать кнопку «Пуск», подвести курсор к «Завершение работы» и выбрать из выпадающего меню нужный пункт. Причем очень легко промахнуться и вместо перевода компьютера в спящий режим нажать кнопку «Завершение работы». Как результат — несохраненные документы, потерянные данные и испорченное настроение.

Managing Services on a Remote System Using PsService

The PsService command is used to view, start, stop services on a remote system.

We can list remote services with the query option.

.\psservice \\HACKWARE-SERVER -u Администратор -p Aa1 query

How to start the service remotely

A remote service can be started with the start option. In this example, we will start the service named mysql.

.\psservice \\HACKWARE-MIAL -u Администратор -p 1234 start mysql

After starting the service, information about it will be displayed.

How to stop the service remotely

In the following example, we will stop the mysql service:

.\psservice \\HACKWARE-MIAL -u Администратор -p 1234 stop mysql

Usando PsShutdown

Consulte a edição de fevereiro de 2005 do artigo da Revista Windows IT Pro para Mark (https://www.windowsitpro.com/article/articleid/44973/44973.html) que aborda o uso avançado de PsKill.

Você pode usar o PsShutdown para iniciar um desligamento do computador local ou remoto, fazer logoff de um usuário, bloquear um sistema ou anular um desligamento iminente.

Uso: psshutdown | @file ]] -s|-r|-h|-d|-k|-a|-l|-o :xx:yy]

Parâmetro Descrição
Exibe as opções com suporte.
Computador Execute o comando no computador remoto ou computadores especificados. Se você omitir o nome do computador, o comando será executado no sistema local e, se você especificar um curinga (\\*), o comando será executado em todos os computadores no domínio atual.
@file Execute o comando em cada computador listado no arquivo de texto especificado.
-u Especifica o nome de usuário opcional para logon no computador remoto.
-p Especifica a senha opcional para o nome de usuário. Se você omitir isso, será solicitado que você insira uma senha oculta.
-a Anula um desligamento (só é possível enquanto uma contagem regressiva está em andamento).
-c Permite que o desligamento seja anulado pelo usuário interativo.
-d Suspender o computador.
-e Código de motivo de desligamento.
Especifique ‘u’ para códigos de motivo do usuário e ‘p’ para códigos de motivo de desligamento planejados.
xx é o principal código de motivo (deve ser menor que 256).
yy é o código de motivo menor (deve ser menor que 65536).
-f Força todos os aplicativos em execução a sair durante o desligamento, em vez de dar a eles a chance de salvar seus dados normalmente.
-h Hibernar o computador.
-k Poweroff the computer (reboot if poweroff is not supported).
-l Bloqueie o computador.
-m Essa opção permite que você especifique uma mensagem a ser exibida para usuários conectados quando uma contagem regressiva de desligamento for iniciada.
-n Especifica o tempo limite em segundos de conexão a computadores remotos.
-o Logoff do usuário do console.
-r Reinicialize após o desligamento.
-s Desligar sem desligar.
-t Especifica a contagem regressiva em segundos até o desligamento (padrão: 20 segundos) ou o tempo de desligamento (em 24 horas de notação).
-v Exibir mensagem para o número especificado de segundos antes do desligamento. Se você omitir esse parâmetro, a caixa de diálogo de notificação de desligamento será exibida e especificar um valor de 0 resultará em nenhuma caixa de diálogo.

o PsTools(2,7 MB)

PsToolsO PsShutdown faz parte de um kit crescente de ferramentas de linha de comando do Sysinternals que ajudam na administração de sistemas locais e remotos chamados PsTools.

Executa em:

Uso de PsShutdown

Consulta el problema de febrero de 2005 de Windows IT Pro Magazine para el artículo de Mark (https://www.windowsitpro.com/article/articleid/44973/44973.html) que cubre el uso avanzado de PsKill.

Puede usar PsShutdown para iniciar un apagado del equipo local o remoto, cerrar sesión de un usuario, bloquear un sistema o anular un apagado inminente.

Uso: psshutdown | @file ]] -s|-r|-h|-d|-k|-a|-l|-o :xx:yy]

Parámetro Descripción
Muestra las opciones admitidas.
Computadora Realice el comando en el equipo remoto o en los equipos especificados. Si omite el nombre del equipo, el comando se ejecuta en el sistema local y, si especifica un carácter comodín (\\*), el comando se ejecuta en todos los equipos del dominio actual.
@file Ejecute el comando en cada equipo que aparece en el archivo de texto especificado.
-u Especifica el nombre de usuario opcional para el inicio de sesión en el equipo remoto.
-p Especifica la contraseña opcional para el nombre de usuario. Si omite esto, se le pedirá que escriba una contraseña oculta.
-a Anula un apagado (solo es posible mientras una cuenta atrás está en curso).
-c Permite que el usuario interactivo anule el apagado.
-d Suspenda el equipo.
-e Código de motivo del apagado.
Especifique «u» para los códigos de motivo del usuario y «p» para los códigos de motivo de apagado planeado.
xx es el código de motivo principal (debe ser menor que 256).
yy es el código de motivo menor (debe ser menor que 65536).
-f Obliga a todas las aplicaciones en ejecución a salir durante el apagado en lugar de darles la oportunidad de guardar sus datos correctamente.
-h Hibernar el equipo.
-k Apague el equipo (reinicie si no se admite el apagado).
-l Bloquee el equipo.
-m Esta opción le permite especificar un mensaje que se mostrará a los usuarios que han iniciado sesión cuando comienza una cuenta atrás de apagado.
-n Especifica el tiempo de espera en segundos que se conecta a equipos remotos.
-o Cierre el inicio de sesión del usuario de la consola.
-r Reiniciar después del apagado.
-s Apagar sin apagar.
-t Especifica la cuenta atrás en segundos hasta el apagado (valor predeterminado: 20 segundos) o el tiempo de apagado (en notación de 24 horas).
-v Muestra el mensaje para el número de segundos especificado antes del apagado. Si omite este parámetro, se muestra el cuadro de diálogo de notificación de apagado y se especifica un valor de 0, no se producirá ningún cuadro de diálogo.

PsTools(2,7 MB)

PsToolsPsShutdown forma parte de un creciente kit de herramientas de línea de comandos de Sysinternals que ayudan en la administración de sistemas locales y remotos denominados PsTools.

Se ejecuta en:

Использование утилиты psshutdown для планирования отключения компьютера

Скачаем архив с утилитой, запустим и дождёмся окончания установки. После этого в командной строке будет возможно запускать команду psshutdown. Просмотр всех ключей, как и её аналога, выполняется с параметром /? При первом запуске нужно подтвердить согласие на использование, нажав кнопку . Вот основные ключи команды psshutdown:-k — выключить компьютер-n — количество секунд до выполнения команды (максимум 20 секунд)-r — перезагрузить компьютер-t — указать время выключения в формате часы: минуты-a — прервать операцию по выключению

Обратим внимание, буквы ключей для этой команды отличаются от рассмотренных ранее для shutdown. Для выключения компьютера в определенное время, например, в два часа ночи, вводимpsshutdown -k -t 02:00
В результате будет запущен обратный отсчёт до выключения, отображающийся в отдельном окошке поверх всех окон

Uso di PsShutdown

Vedi il numero di febbraio 2005 di Windows IT Pro Magazine per Mark (https://www.windowsitpro.com/article/articleid/44973/44973.html) che illustra l’utilizzo avanzato di PsKill.

È possibile usare PsShutdown per avviare un arresto del computer locale o remoto, disconnettere un utente, bloccare un sistema o interrompere un arresto imminente.

Utilizzo: psshutdown | @file ]] -s|-r|-h|-d|-k|-a|-l|-o :xx:yy]

Parametro Descrizione
Visualizza le opzioni supportate.
Computer Eseguire il comando nel computer remoto o nei computer specificati. Se si omette il nome del computer, il comando viene eseguito nel sistema locale e, se si specifica un carattere jolly (\\*), il comando viene eseguito in tutti i computer del dominio corrente.
@file Eseguire il comando in ogni computer elencato nel file di testo specificato.
-u Specifica il nome utente facoltativo per l’accesso al computer remoto.
-p Specifica la password facoltativa per il nome utente. Se si omette, verrà richiesto di immettere una password nascosta.
-a Interrompe un arresto (solo se è in corso un conto alla rovescia).
-c Consente all’utente interattivo di arrestare l’arresto.
-d Sospendere il computer.
-e Codice motivo di arresto.
Specificare ‘u’ per i codici motivo utente e ‘p’ per i codici motivo di arresto pianificati.
xx è il codice motivo principale (deve essere minore di 256).
yy è il codice motivo secondario (deve essere minore di 65536).
-f Forza l’uscita di tutte le applicazioni in esecuzione durante l’arresto invece di concedere loro la possibilità di salvare normalmente i dati.
-h Ibernare il computer.
-k Spegnere il computer (riavviare se il risparmio di energia non è supportato).
-l Bloccare il computer.
-m Questa opzione consente di specificare un messaggio da visualizzare agli utenti connessi quando inizia un conto alla rovescia dell’arresto.
-n Specifica il timeout in secondi di connessione ai computer remoti.
-o Disconnettere l’utente della console.
-r Riavviare dopo l’arresto.
-s Arresto senza spegnimento.
-t Specifica il conto alla rovescia in secondi fino all’arresto (impostazione predefinita: 20 secondi) o all’ora di arresto (in notazione di 24 ore).
-v Visualizza il messaggio per il numero specificato di secondi prima dell’arresto. Se si omette questo parametro, viene visualizzata la finestra di dialogo di notifica di arresto e se si specifica un valore pari a 0, non viene visualizzata alcuna finestra di dialogo.

Scaricare PsTools(2,7 MB)

PsToolsPsShutdown fa parte di un kit in continua crescita di strumenti da riga di comando Sysinternals che consentono l’amministrazione di sistemi locali e remoti denominati PsTools.

Viene eseguito in:

PsLogList

This utility displays a local or remote event log on the command line, and there are a number of options that can be used for filtering the data.

There are also the -h, -d, and -m options, which let you narrow down the list of events to just the last x hours, days, or minutes. The -n option displays the list x records, while the -r switch reverses the order so the latest records will be at the bottom of the output. The last option, which we set to “System” in this example, is not actually necessary — if you omit it, the System log will always be pulled, but you could change it to Application or Security to pull those logs instead.

It’s worth noting that if you have administrator access to the other computer, you can simply open Event Viewer and choose Connect from the Action menu. Enter the computer name in the list, change the credentials if you need to, and access the event logs that way.

The only scenario where we can really see PsLogList being really useful is if you wanted to script out something to perform an action in case of certain messages in the event log.

Что нужно для PsExec

Для работы PsExec на удалённом компьютере не требуется никакого программного обеспечения — то есть на компьютере, которым вы будете управлять, не нужно устанавливать никакую клиентскую часть. Но нужно соблюдение некоторых условий, чтобы PsExec работала, поэтому если первая попытка не удалась, то проверьте следующие требования.

1. На обеих машинах, т.е. удалённом компьютере (которым будем управлять) и локальном компьютере (с которого будем управлять), должен быть включён общий доступ к файлам и принтерам. Для их включения смотрите статью «SMB: настройка общей сетевой папки в Windows».

2. В современных Windows 10 у меня PsExec работала только с учётной записью «Администратор», видимой по той причине, что необходимы административные общие ресурсы (подробнее о них смотрите в статье «Как включить административные общие ресурсы в ОС Windows 10, 8 или 7 (C$, D$, $admin и другие)»).

На серверах Windows учётная запись «Администратор» включена по умолчанию.

В более старых версиях Windows, видимо, достаточно включения общего сетевого ресурса $admin для предоставления доступа к папке \Windows\. В Windows 10 папки $admin как сетевого ресурса нет вовсе.

3. Проверьте, что сетевой доступ к файлам и принтерам включён в файерволе. Для этого нажмите Win+r, введите там firewall.cpl.

Во вкладке «Разрешение взаимодействия с приложениями или компонентами в брандауэре защитника Windows»

найдите «Общий доступ к файлам и принтерам» и убедитесь, что стоит галочка в столбце «Частная» — если его там нет, то нажмите кнопку «Изменить параметры», поставьте галочку и нажмите ОК.

4. Убедитесь, что оба компьютера принадлежат к одной и той же рабочей группе (Workgroup).

5. Убедитесь, что вы правильно вводите пароль администратора удалённого компьютера.

Are You Looking for Something Else?

Both Windows shutdown command and PsShutdown utility allow to shut down, hibernate, reboot, log off users on remote PCs. But they don’t offer features to turn PCs on. If you plan to organize effective PC power management in your organization, you have to care not only about turning off PCs at night, but also about turning them on at morning. You can find this functionality together with advanced operations scheduling, easy troubleshooting and other features in professional PC power management tools from EMCO, 1E, Verdiem and other vendors. EMCO Remote Shutdown is one of the most robust and cost-effective solutions now on market. Try it if you are looking for ready-to-use power management solution.

Why PsShutdown is Better Than Windows Shutdown Utility?

In corporate networks standard shutdown.exe command can’t be seriously considered as a basis for PC power management solution due to its limitations. PsShutdown utility addresses some of them and it can be a good choice for administrators who would like to build a basic custom solution for turning off remote PCs.

Shutdown Cancellation by Interactive User

One of the most important flaws of the standard Windows utility, that is addressed by PsShutdown is a special option that allows remote user to cancel shutdown operation. In this case user gets a dialog box with a message, countdown timer and a button to cancel operation. To allow interactive user to cancel a shutdown you have to use -c option:

psshutdown.exe -s -f -c -t 60 -m "regular shutdown" \\pc-name

Execution Operation at Specific Time

If you like to execute operation not right now, but at specific time, you can set value for -t parameter as hours and minutes in 24-hour notation. It helps to emulate simple scheduling for remote operations. For example, to shutdown pc at 20:15 execute following command:

psshutdown.exe -s -f -c -t 20:15 -m "regular shutdown" \\pc-name

Operating with Multiple PCs

PsShutdown has more flexible syntax to specify remote PCs than the standard utility. As demonstrated on examples above, you can specify the name of remote PCs using double-slash and computer name. You can also list multiple PCs, separated by comma:

psshutdown.exe -s -f -c -t 60 \\pc-name-1,pc-name-2,pc-name-3

If you need to target all PCs in the domain you can use asterisk:

psshutdown.exe -s -f -c -t 60 \\*

With the standard utility if you need to execute operation on a particular group of computers which names are stored in the text file, you need to use Windows scripting. PsShutdown allows you to execute operation with multiple PCs by specifying path to a text file that stores computer names without leading double-slash on every line:

psshutdown.exe -s -f -c -t 60 @list-of-computers.txt

Specifying Administrative Credentials

In order to manage remote PC with PsShutown you should have administrative privileges. If your account doesn’t have administrative permissions on remote PC, you can specify username and password to be used:

psshutdown.exe -s -f -c -t 60 -u username -p password @list-of-computers.txt

Limitations of PsShutdown

PsShutdown, as well as standard Windows shutdown command doesn’t need to be installed on remote PCs. But it works like a distributed systems, so has specific requirements for network environment. Every time when you execute remote operation with PsShutdown, it installs and starts service on target PCs though an access to their Admin$ shares. Then PsShutdown sends command to service and once operation is complete, it stops and uninstall service. Therefore to use PsShutdown you have to enable file sharing on computers that should be managed remotely and provide an access to Admin$ share through the Common Internet File System (CIFS)/Server Message Block (SMB) and Remote Procedure Call (RPC) TCP/IP ports.

Requirements to run PsExec

To run PsExec, on a remote computer no software is required – that is, on the computer you will be managing, you do not need to install any client part. But some conditions must be met for PsExec to work, so if the first attempt failed, then check the following requirements.

1. On both machines, i.e. the remote computer (which we will manage) and the local computer (from which we will manage), file and printer sharing must be enabled. To enable them, click on the ‘Network Internet access’ icon near the clock, than click on ‘Open Network & Internet settings’:

Then click ‘Sharing options’:

Then Turn on network discovery and Turn on file and printer sharing and Save changes:

2. In modern Windows 10, my PsExec worked only with the Administrator account, I guess because administrative shares are required.

On Windows servers, the Administrator account is enabled by default.

In older versions of Windows, apparently, turning on the $admin is enough to provide access to the \Windows\ folder. In Windows 10, there is no $admin folder as a network share at all.

3. Verify that network access to files and printers is enabled in the firewall. To do this, press Win+r, enter firewall.cpl there.

In the tab ‘Allow an app or feature through Windows Defender Firewall’

search for “Files and Printers Sharing” and make sure that the checkbox in the “Private” column is checked – if it is not there, then click the “Change settings” button, check the box and click OK.

4. Verify that both computers belong to the same Workgroup.

5. Make sure that you enter the administrator password of the remote computer correctly.

How to enable an administrator account

In my tests on the latest Windows 10 and Windows Server 2019, the PsExec command only works with the Administrator account. Therefore, this section describes how to activate the Administrator user, which is by default present in Windows, but in normal non-server versions, this user is disabled.

User Administrator should be active only on a remote computer, where commands will be executed using PsExec. An administrator account is not required on the local computer.

1. Press the Win+r keys to open the command launch window.

2. Type lusrmgr.msc and press Enter.

3. Open Users.

4. Right-click Administrator and select Properties.

5. Uncheck the “Disable account” checkbox and click OK.

6. Right-click the Administrator account again and select “Set Password”.

7. Specify the password for the administrator account and click OK.

Что такое PsExec и PsTools

На самом деле, PsExec это всего лишь один из инструментов из пакета PsTools. Программа PsExec используется чаще всего, поэтому обычно упоминается она, но в данной инструкции будут рассмотрены как примеры использования PsExec, так и примеры использования других инструментов из пакета PsTools.

Состав PsTools:

  • PsExec используется для удалённого выполнения команд или получения шелла (оболочки) на удалённой системе
  • PsFile используется для вывода списка удалённо открытых файлов
  • PsGetSid используется для отображения идентификатора безопасности для удалённого компьютера или пользователя
  • PsInfo используется для получения подробной информации об удалённой системе
  • PsKill используется для остановки процесса в удалённой системе по имени или идентификатору
  • PsList используется для детального отображения процессов в удалённой системе
  • PsLoggedOn используется для вывода списка зарегистрированных пользователей в удалённых системах
  • PsLogList, используемый для отображения журналов событий на удалённых системах
  • PsPasswd используется для изменения заданного пароля пользователя в удалённой системе
  • PsPing используется для пинга из удалённой системы
  • PsServervice используется для перечисления и управления службами Windows в удалённой системе
  • PsShutdown используется для выключения, выхода из системы, приостановки и перезапуска удалённой системы Windows
  • PsSuspend используется для приостановки и возобновления процессов в удалённой системе Windows
  • PsUptime используется для отображения времени работы удалённой системы

Usando PsShutdown

Consulte a edição de fevereiro de 2005 do artigo da Revista Windows IT Pro para Mark (https://www.windowsitpro.com/article/articleid/44973/44973.html) que aborda o uso avançado de PsKill.

Você pode usar o PsShutdown para iniciar um desligamento do computador local ou remoto, fazer logoff de um usuário, bloquear um sistema ou anular um desligamento iminente.

Uso: psshutdown | @file ]] -s|-r|-h|-d|-k|-a|-l|-o :xx:yy]

Parâmetro Descrição
Exibe as opções com suporte.
Computador Execute o comando no computador remoto ou computadores especificados. Se você omitir o nome do computador, o comando será executado no sistema local e, se você especificar um curinga (\\*), o comando será executado em todos os computadores no domínio atual.
@file Execute o comando em cada computador listado no arquivo de texto especificado.
-u Especifica o nome de usuário opcional para logon no computador remoto.
-p Especifica a senha opcional para o nome de usuário. Se você omitir isso, será solicitado que você insira uma senha oculta.
-a Anula um desligamento (só é possível enquanto uma contagem regressiva está em andamento).
-c Permite que o desligamento seja anulado pelo usuário interativo.
-d Suspender o computador.
-e Código de motivo de desligamento.
Especifique ‘u’ para códigos de motivo do usuário e ‘p’ para códigos de motivo de desligamento planejados.
xx é o principal código de motivo (deve ser menor que 256).
yy é o código de motivo menor (deve ser menor que 65536).
-f Força todos os aplicativos em execução a sair durante o desligamento, em vez de dar a eles a chance de salvar seus dados normalmente.
-h Hibernar o computador.
-k Poweroff the computer (reboot if poweroff is not supported).
-l Bloqueie o computador.
-m Essa opção permite que você especifique uma mensagem a ser exibida para usuários conectados quando uma contagem regressiva de desligamento for iniciada.
-n Especifica o tempo limite em segundos de conexão a computadores remotos.
-o Logoff do usuário do console.
-r Reinicialize após o desligamento.
-s Desligar sem desligar.
-t Especifica a contagem regressiva em segundos até o desligamento (padrão: 20 segundos) ou o tempo de desligamento (em 24 horas de notação).
-v Exibir mensagem para o número especificado de segundos antes do desligamento. Se você omitir esse parâmetro, a caixa de diálogo de notificação de desligamento será exibida e especificar um valor de 0 resultará em nenhuma caixa de diálogo.

o PsTools(2,7 MB)

PsToolsO PsShutdown faz parte de um kit crescente de ferramentas de linha de comando do Sysinternals que ajudam na administração de sistemas locais e remotos chamados PsTools.

Executa em:

How to run a GUI application on a remote system

Windows operating systems provide a graphical interface by default. PsExec can be used to open a GUI application on a remote system in a specified user console. The user console simply means the user’s desktop.

In this example, we will run notepad.exe on the remote system. The user of the remote system administrator can interact with this notepad. That is, the program will open on the remote system, and we cannot interact with it on the local system in any way.

.\psexec \\HACKWARE-SERVER -u Администратор -p Aa1 -i notepad.exe

Since the -i option is used, the program will open in interactive mode, which means that it will actually run on the screen of the remote computer. If -i were omitted in the above command, the command would be executed in stealth mode, which means not showing any dialog boxes or other windows.

We will get our local shell after the remote user closes the notepad. After closing, the exit code will be printed in the psexec console.

Как запустить команду на удалённой системе

Основное использование команды PsExec — это просто запуск команды в удалённой системе. Чтобы запустить команду в удалённой системе, мы должны указать имя пользователя и пароль вместе с командой для запуска на удалённом компьютере.

Общий вид команды для запуска на удалённой системе:

.\psexec \\КОМПЬЮТЕР -u Администратор -p ПАРОЛЬ КОМАНДА АРГУМЕНТЫ КОМАНДЫ

В этой команде:

  • \\КОМПЬЮТЕР — имя компьютера Windows или его IP адрес в локальной сети
  • -u Администратор — если операционная система на ином языке, то имя пользователя также будет другим, например, на английском это Administrator
  • -p ПАРОЛЬ — пароль пользователя Администратор. Эту опцию можно пропустить, тогда  команда запросит пароль для ввода
  • КОМАНДА — программа, которую нужно выполнить на удалённой системе. После команды могут идти её опции.

Пример выполнения команды ipconfig на удалённом компьютере \\hackware-server от имени пользователя Администратор с паролем Aa1:

.\psexec \\HACKWARE-SERVER -u Администратор -p Aa1 ipconfig

Как мы видим, команда выполняется в удалённой системе без проблем.

У удалённого компьютера HACKWARE-SERVER IP адресом является 192.168.0.53, поэтому следующая команда эквивалентна предыдущей:

.\psexec \\192.168.0.53 -u Администратор -p Aa1 ipconfig

Обратите внимание, что в Windows (в противоположность Linux), регистр букв в именах компьютеров, командах и путях не имеет значения — можно использовать буквы любого регистра в любых местах.

Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
Работатека
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: