Запуск и остановка службы Windows удаленно с помощью PSEXEC

Как запустить и остановить службу windows удаленно с помощью PSEXEC Предпочтительный синтаксис для записи я попробовал командлет, приведенный ниже

psexec Server-U администратор - P Somepassword ServiceName

пожалуйста, может любой орган помочь мне в этом Заранее спасибо

4 ответов


Я не могу проверить это прямо сейчас, но это должно быть:

psexec \server -u username -p password net start ArgusCommunityWorkerService

и

psexec \server -u username -p password net stop ArgusCommunityWorkerService

PSService на SysInternals специально для служб удаленного управления::'

psservice [\computer [-u username] [-p password]] <command> <options>

где:

запрос отображает состояние сервиса.

config отображает конфигурацию службы.

методу setconfig задает тип запуска (отключено, авто, требование) службы.

старт запуск службы.

остановка останавливает службу.

перезагрузка остановка и перезапуск сервиса.

пауза приостанавливает службу

прод возобновляет приостановленную службу.

depend перечисляет службы, зависящие от указанного.

безопасность сбрасывает дескриптор безопасности Службы.

найти Выполняет поиск указанной службы в сети.

\\компьютер предназначен для указанной системы NT / Win2K.

включите переключатель-u с именем пользователя и паролем для входа в удаленную систему, если ваши учетные данные безопасности не позволяют получить информацию о счетчике производительности из удаленной системы. Если вы укажете параметр-u, но не пароль с параметром-p, PsService предложит вам ввести пароль и не будет повторять его к экрану.


Другой альтернативой psexec является sc. Вы можете использовать sc для запуска или остановки служб удаленно:

sc \server start ServiceName

sc \server stop ServiceName

нет информации "вход", поэтому, возможно, вам нужно выполнить

net use \server password /USER:user

перед выполнением команды sc.

одно преимущество перед psexec заключается в том, что на удаленной машине не отображается окно консоли.


использование PSEXEC

ниже пакетный файл позволит вам остановить и запустить службы на нескольких удаленных машинах. Создание Компьютеров.txt-файл в том же каталоге, из которого запускается пакетный файл, и список имен хостов ПК по одному в строке.

@echo off
TITLE Manage Services v1.0
SET suffix=%date:~-4,4%%date:~-10,2%%date:~-7,2%_%time:~0,2%%time:~3,2%%time:~6,2%
SET /P username=Enter your admin username: 
set "psCommand=powershell -Command "$pword = read-host 'Enter Password' -AsSecureString ; ^
    $BSTR=[System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($pword); ^
        [System.Runtime.InteropServices.Marshal]::PtrToStringAuto($BSTR)""
for /f "usebackq delims=" %%p in (`%psCommand%`) do set password=%%p
:service
SET /P servicename=Enter service name:
:begin
echo ========================================
echo 1) Start
echo 2) Stop
echo 3) Choose another service
echo ========================================
ECHO.
set /p op=Select an option:
if "%op%"=="1" SET action=start
if "%op%"=="2" SET action=stop
if "%op%"=="3" goto service

psexec "\@%~dp0Computers.txt" -u %username% -p %password% -h net %action% %servicename% >>%suffix%.log 2>&1

pause
cls
goto begin

Использование PowerShell

# Point the script to the text file with remote computers
$RemoteComputers = Get-Content "$PSScriptRoot\Computers.txt"

# sets service name
$Service = "uvnc_service"

# Counter for progress bar
$counter = 0

ForEach ($Computer in $RemoteComputers) {
    $counter++
     Try
         {
          Write-Progress -Activity 'Processing computers' -CurrentOperation $Computer -PercentComplete (($counter / $RemoteComputers.count) * 100)
          Start-Sleep -Milliseconds 200
          Get-Service -Name $Service -ComputerName $Computer | Restart-Service -Force -ErrorAction Stop
          Write-Output "$(Get-Date -format "yyyy-MM-dd hh:mm:ss"),$computer" | out-file -append -filepath "$PSScriptRoot\success.log"
         }
     Catch
         {
          Write-Output "$(Get-Date -format "yyyy-MM-dd hh:mm:ss"),$computer" | out-file -append -filepath "$PSScriptRoot\failed.log"
         }
}