在Powershell中停止服务时是否有绕过依赖服务的功能?

时间:2019-01-02 12:54:02

标签: powershell

我的Powershell代码有问题

我需要使用此脚本停止和禁用某些服务,但是有一些问题,这是:

Get-Content -path $PWD\servicestop1.txt | ForEach-Object 
{
    $service = $_

    (Set-Service -Name $service -Status Stopped -StartupType Disabled -PassThru )
}

1-我想停止某些服务时遇到一些依赖问题

2-我无法在同一脚本中禁用和停止它们

你有什么主意吗? 非常感谢!

PS:我尝试使用参数“ -force”,但没有用

1 个答案:

答案 0 :(得分:0)

在不知道servicestop1.txt实际上拥有有效的服务名称的情况下,您可以尝试以下操作:

Get-Content -Path "$PWD\servicestop1.txt" | ForEach-Object {
    $service = Get-Service -Name $_ -ErrorAction SilentlyContinue
    if ($service) {
        if ($service.Status -eq 'Running') {
            # stop the service and wait for it
            $service | Stop-Service -Force
        }
        if ($service.StartType -ne 'Disabled') {
            $service | Set-Service -StartupType Disabled
        }
    }
    else {
        Write-Warning "Could not find service with name '$_'"
    }
}