首先,我要停止服务,然后手动将其打开
$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
答案 0 :(得分:1)
您的问题是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
答案 1 :(得分:0)
尝试一下:更改
Set-Service -Name $servicename -ComputerName $server -Status Stopped
到
Invoke-Command -ComputerName $server -ScriptBlock {Stop-Service -Name $servicename -Force}