使用 PowerShell 检查 Windows 服务状态

Check Windows Services status using PowerShell

通过在 PowerShell 中编写脚本,我想确定 Windows 服务是否 运行ning 或 运行ning。为此,我构建了以下脚本:

#Variables

$winupdate = 'Windows Update'
$running = 'Running'

#Function

function CheckServiceStatus {
param($winupdate)
$getservice = Get-Service -Name $winupdate
if($getservice.Status -ne $running){
    Start-Service $winupdate 
    Write-host "Starting" $winupdate "service"|out-file "C:\Users\ArifSohM\Desktop\Stuff for PowerShell\results.txt"
    }
}

为了解释,我在这里尝试做的只是创建一个名为 "CheckServiceStatus" 的函数。在该函数中,我创建了一个参数并将 Windows 服务名称的变量放在该参数中。然后,我将 "Get-Service" cmdlet 放入另一个名为“$getservice”的变量中。然后我继续启动一个 IF 语句,该语句应该检查服务是否为 运行ning,所以我在这里所说的是,如果服务不是 运行ning,则启动服务,创建一个文本文件并向其中输出一条确认消息。

在上面的脚本上点击 运行 后,似乎什么也没有发生。难道我做错了什么?我错过了什么吗?任何帮助将不胜感激!

您正在使用服务显示名称而不是服务名称。

windows更新的服务名称"wuauserv" 更改 winupdate 变量部分,你应该没问题

$winupdate = 'wuauserv'

函数定义应该在调用该函数之前 和函数调用语句

完整代码:

function CheckServiceStatus {
param($winupdate)
$getservice = Get-Service -Name $winupdate
if($getservice.Status -ne $running){
    Start-Service $winupdate 
    Write-output "Starting" $winupdate "service"|out-file "C:\Users\ArifSohM\Desktop\Stuff for PowerShell\results.txt"
    }
}

#Variables

$winupdate = 'wuauserv'
$running = 'Running'
CheckServiceStatus $winupdate