【发布时间】:2015-09-12 14:32:02
【问题描述】:
在编写 PowerShell 脚本以检查服务状态并在服务停止时启动时需要帮助。服务包括:NomadBranch、BITS、Ccmexec。
【问题讨论】:
标签: powershell windows-services windows-server-2008 configurationmanager sccm
在编写 PowerShell 脚本以检查服务状态并在服务停止时启动时需要帮助。服务包括:NomadBranch、BITS、Ccmexec。
【问题讨论】:
标签: powershell windows-services windows-server-2008 configurationmanager sccm
SO 不是人们为您编写代码的地方,也不是教程的替代品(或查找教程的地方)。但是,由于您的问题很简单,我还是会回答。不过,不要指望这种情况会经常发生。
使用*-Service cmdlet 管理服务。 Get-Service -Name 'foo' 获取名为“foo”的服务的属性。 Start-Service -Name 'foo' 启动该服务,Stop-Service -Name 'foo' 停止它。
您可以通过过滤Get-Service 的输出来查找状态为Stopped 的服务,并通过将过滤后的结果传送到Start-Service 来启动停止的服务:
$services = 'NomadBranch', 'BITS', 'Ccmexec'
Get-Service | Where-Object {
$services -contains $_.Name -and $_.Status -eq 'Stopped'
} | Start-Service
使用Get-Command cmdlet 列出特定名词(此处为“服务”)的 cmdlet:
Get-Command -Noun 'Service'
并使用 Get-Help cmdlet 获取有关特定 cmdlet 的更多信息,例如:
Get-Help Get-Service -Full
【讨论】:
下面是一个启动服务的函数
Function Start-ServicesNotRunning(){
param
(
[string[]]$ServerNames =$(throw "Parameter missing: -ServerNames ServerName1,ServerName2") #get multiple services
)
Write-Host -ForegroundColor Yellow "Get Services State..."
Get-Service -Name $ServerNames | Sort-Object Status,Displayname |
ForEach-Object {
$Displayname = $_.Displayname
If($_.Status -eq "Running")
{
Write-Host $Displayname $_.Status -ForegroundColor Green
} Else
{
Write-Host $Displayname $_.Status $_.StartType -ForegroundColor Red
Try
{
#server startup status is disabled.
If($_.StartType -eq "Disabled")
{
Write-Host -ForegroundColor Yellow $Displayname "Startup Status To Manual..."
Set-Service -Name $_.Name -StartupType Manual -ErrorAction Stop
}
#start it if not running
Write-Host -ForegroundColor Yellow $Displayname "Starting..."
Start-Service -InputObject $_ -PassThru -ErrorAction Stop
$_.Refresh()
Write-Host $Displayname $_.Status -ForegroundColor Green
}
Catch
{
Write-Host -ForegroundColor Red $Displayname $_.Exception.Message
}
}
}
}
我从这个示例中挑选它,https://gallery.technet.microsoft.com/How-to-get-state-and-start-b54c3b9c 希望它可以提供帮助。
【讨论】: