Как установить режим запуска службы на ручной или автоматический для различных серверов? - PullRequest
0 голосов
/ 22 октября 2018

Сначала я хочу остановить службы, а затем включить их вручную

$getservicestatus = (Get-Service -DisplayName $servicename -ComputerName $server).status

if ($getservicestatus -eq "Running") {
    Set-Service -Name $servicename -ComputerName $server -Status Stopped            
else
{
    Write-Host "$server $servicename var redan Running!" -ForegroundColor Yellow
    Stop-Service spooler
    Set-Service spooler Manual

Ответы [ 2 ]

0 голосов
/ 22 октября 2018

Ваша проблема: Set-Service не имеет параметра ComputerName, поэтому он не может действовать против удаленных служб.

Get-Service может действовать против удаленного компьютера (у него естьпараметр ComputerName), эта команда возвращает объект службы, который может быть передан на Set-Service для удаленного действия.

Предполагается, что вы хотите остановить удаленную службу и установить для нее значение Вручную.при запуске это будет код:

$servicename = 'spooler'
$server = 'server2'

$service = Get-Service -Name $servicename -ComputerName $server

if ($service.Status -eq 'Running') {
    $service | Set-Service -Status Stopped
}

if ($service.StartType -eq 'Automatic') {
    $service | Set-Service -StartupType Manual
}

# If you need to start the service again
# $service | Set-Service -Status Running
0 голосов
/ 22 октября 2018

попробуйте это: измените

Set-Service -Name $servicename -ComputerName $server -Status Stopped

на

Invoke-Command -ComputerName $server -ScriptBlock {Stop-Service -Name $servicename -Force}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...