通过在PowerShell中编写脚本,我想确定Windows服务是否正在运行。为此,我构建了以下脚本:
#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语句,它应该检查服务是否正在运行,所以我在这里说的是,如果服务没有运行,启动服务,创建一个文本文件并输出一条确认消息。
点击上面的脚本后,似乎没有任何事情发生。难道我做错了什么?我错过了什么吗?任何帮助将不胜感激!
答案 0 :(得分:1)
您正在使用服务显示名称而不是服务名称。
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