Restart-ServiceEx.psm1
2014-01-02 16:12
489 查看
[align=left]详细描述[/align]
[align=left]利用WMI的Win32_Service类重启指定计算机上的服务.[/align]
[align=left]Restart-ServiceEx cmdlet 通过WMI的Win32_Service类向指定计算机(ComputerName)的Windows服务控制器, 为每个指定的服务发送一个停止消息, 再接着发送一个启动消息. 如果服务已经停, 那么将会被直接启动. 你可以通过服务名称(Name)或显示名称(DisplayName)来指定需要重新启动的服务.[/align]
[align=left] [/align]
[align=left]语法[/align]
[align=left] Restart-ServiceEx { [-Name] <string[]> | [-DisplayName] <string[]> } [-ComputerName] <string[]>[/align]
[align=left] [/align]
示例
Restart-ServiceEx.psm1
[align=left]利用WMI的Win32_Service类重启指定计算机上的服务.[/align]
[align=left]Restart-ServiceEx cmdlet 通过WMI的Win32_Service类向指定计算机(ComputerName)的Windows服务控制器, 为每个指定的服务发送一个停止消息, 再接着发送一个启动消息. 如果服务已经停, 那么将会被直接启动. 你可以通过服务名称(Name)或显示名称(DisplayName)来指定需要重新启动的服务.[/align]
[align=left] [/align]
[align=left]语法[/align]
[align=left] Restart-ServiceEx { [-Name] <string[]> | [-DisplayName] <string[]> } [-ComputerName] <string[]>[/align]
[align=left] [/align]
示例
C:PS> import-module c:\ps\modules\Restart-ServiceEx.psm1 C:PS> Restart-ServiceEx AdobeARMservice,DcomLaunch -ComputerName server01 Stopping 'Adobe Acrobat Update Service' on SERVER01. 'Adobe Acrobat Update Service' on SERVER01 was stopped successfully! Starting 'Adobe Acrobat Update Service' on server01. 'Adobe Acrobat Update Service' on SERVER01 was started successfully! Stopping 'DCOM Server Process Launcher' on SERVER01 WARNING: Service Cannot Accept Control
Restart-ServiceEx.psm1
function Restart-ServiceEx { [CmdletBinding(DefaultParameterSetName="Name")] param( [Parameter(ParameterSetName="Name",Position=0,ValueFromPipeline=$true)] [string[]]$Name, [Parameter(ParameterSetName="DisplayName",Position=0,ValueFromPipeline=$true)] [string[]]$DisplayName, [string[]]$ComputerName=$env:COMPUTERNAME ) # create list of clear text error messages $ErrorCode = 'Success,Not Supported,Access Denied,Dependent Services Running,Invalid Service Control' $ErrorCode += ',Service Cannot Accept Control, Service Not Active, Service Request Timeout' $ErrorCode += ',Unknown Failure, Path Not Found, Service Already Running, Service Database Locked' $ErrorCode += ',Service Dependency Deleted, Service Dependency Failure, Service Disabled' $ErrorCode += ',Service Logon Failure, Service Marked for Deletion, Service No Thread' $ErrorCode += ',Status Circular Dependency, Status Duplicate Name, Status Invalid Name' $ErrorCode += ',Status Invalid Parameter, Status Invalid Service Account, Status Service Exists' $ErrorCode += ',Service Already Paused' $Services = @() switch($PSCmdlet.ParameterSetName) { "Name" { $Name | % { $s = Get-WmiObject win32_service -ComputerName $ComputerName -Filter "Name=`"$_`"" if($s) { $Services += $s } } if(!$Services) { return "Can not found any service of the name '{0}'" -f $($Name -join "','") } } "DisplayName" { $DisplayName | % { $s = Get-WmiObject win32_service -ComputerName $ComputerName -Filter "DisplayName=`"$_`"" if($s) { $Services += $s } } if(!$Services) { return "Can not found any service of the displayname '{0}'" -f $($DisplayName -join "','") } } } for($i=0; $i -lt $Services.length; $i++) { if($Services[$i].Started) { Write-Host $("Stopping '{0}' on {1}" -f $Services[$i].DisplayName,$Services[$i].__SERVER) -NoNewline $rv = $Services[$i].StopService().ReturnValue if ($rv) { Write-Host "";Write-Warning $("{0}`n" -f $ErrorCode.Split(',')[$rv]);continue } do { Write-Host "." -NoNewline Start-Sleep -s 10 $service = Get-WmiObject win32_service -ComputerName $Services[$i].__SERVER -Filter "DisplayName=`"$($Services[$i].DisplayName)`"" }while($service.State -ne "Stopped") Write-Host $("`n'{0}' on {1} was stopped successfully!" -f $Services[$i].DisplayName,$Services[$i].__SERVER) Write-Host $("Starting '{0}' on {1}" -f $Services[$i].DisplayName,$Services[$i].__SERVER) -NoNewline $rv = $Services[$i].StartService().ReturnValue if ($rv) { Write-Host "";Write-Warning $("{0}`n" -f $ErrorCode.Split(',')[$rv]);continue } do { Write-Host "." -NoNewline Start-Sleep -s 10 $service = Get-WmiObject win32_service -ComputerName $Services[$i].__SERVER -Filter "DisplayName=`"$($Services[$i].DisplayName)`"" }while($service.State -ne "Running") Write-Host $("`n'{0}' on {1} was started successfully!`n" -f $Services[$i].DisplayName,$Services[$i].__SERVER) } else { Write-Host $("Starting '{0}' on {1}" -f $Services[$i].DisplayName,$Services[$i].__SERVER) -NoNewline $rv = $Services[$i].StartService().ReturnValue if ($rv) { Write-Host "";Write-Warning $("{0}`n" -f $ErrorCode.Split(',')[$rv]);continue } do { Write-Host "." -NoNewline Start-Sleep -s 10 $service = Get-WmiObject win32_service -ComputerName $Services[$i].__SERVER -Filter "DisplayName=`"$($Services[$i].DisplayName)`"" }while($service.State -ne "Running") Write-Host $("`n'{0}' on {1} was started successfully!`n" -f $Services[$i].DisplayName,$Services[$i].__SERVER) } } } Export-ModuleMember -function Restart-ServiceEx
相关文章推荐
- (转)MySQL提示“too many connections”的解决办法
- 定义input type=file 样式的方法,使用一个text和一个button模拟
- 学习技术的三部曲:WHAT、HOW、WHY
- iOS中ScrollView的属性和方法详解
- Android Hardware Abstraction Layer
- eventlet.backdoor 的使用
- python 发送http post请求
- WEB服务器之——Nginx支持CGI
- SGEN全编译过程中ST22中出现dump:GEN_FRAGVIEW_EMPTY
- 空间分析之邻域分析
- 谈谈微信公众平台开发
- 网站建设怎么样才能选择到最好的
- AnyChat platform Core SDK V4.9 preview版本正式发布啦
- Heat安装及使用
- Hadoop集群环境搭建
- Jquery-zTree的基本用法-java版本(转)
- 虚拟机桥接方式上网
- LOG4J.PROPERTIES配置详解
- RedHat 5.5使用Centos的网络yum源
- 如何制作出一个完美的网站