• Restart IIS With Powershell


     
    [system.Reflection.Assembly]
    ::LoadWithPartialName("System.ServiceProcess"| out-Null
     
    function Get-ServiceStartupMode
     {
         
    param([string]$servicename,[string]$serverName)
         
    $startMode= gwmi win32_service -filter "NAME = '$servicename'" -computername $serverName  | Select -Property StartMode
         
    $startMode
     }

    function Get-DependentServices{
         
    Param([System.ServiceProcess.ServiceController]$MasterService)
         
    foreach($dependent in $MasterService.DependentServices)
         {
             
    $dependent
             Get
    -DependentServices $dependent
         }
     }
     
     
     
    function Restart-MainServices
     {
        
    Param($ServiceName = $(throw ‘$ServiceName is Required’))
         
    process
         {
             
    $Service = New-Object System.ServiceProcess.ServiceController($ServiceName,$_)
             
    $DependentServices = Get-DependentServices $Service
             
             
    if($Service.CanStop)
             {
                
    $Service.Stop()
                
    $Service.WaitForStatus("Stopped",(new-object system.TimeSpan(0,0,20)))
             }
             
             
    if($Service.status -eq "Stopped")
             { 
                 Write
    -Host "===Main Service:$($Service.name) start==="
                 
    $Service.Start()
                 
    $Service.WaitForStatus("Running",(new-object system.TimeSpan(0,0,30)))
             }
             
             
    foreach($dependent in $DependentServices )
             {
                 
    $dependent.Refresh()
                 
    $startMode= Get-ServiceStartupMode -servicename $dependent.name -serverName $_
                 
    if($startMode.StartMode -eq "Auto")
                 {
                     Write
    -Host "===dependent Service:$($dependent.name) start==="+ $startMode.StartMode
                     
    if($dependent.status -ne "Running")
                     {
                         
    $dependent.Start()
                         
    $dependent.WaitForStatus("Running",(new-object system.TimeSpan(0,0,30)))
                     }
                 }
                 
             }
             
    $Service.Refresh()
             
    $Service
             
    $Service.DependentServices
          }
       
     }
     
  • 相关阅读:
    P2154 [SDOI2009]虔诚的墓主人 树状数组
    P2564 [SCOI2009]生日礼物 贪心
    P2053 [SCOI2007]修车 费用流
    P1963 [NOI2009]变换序列 倒叙跑匈牙利算法
    P3705 [SDOI2017]新生舞会 分数规划 费用流
    gym/102091
    P2698 [USACO12MAR]花盆Flowerpot 单调队列
    乌龟棋
    旅行家的预算
    组合数问题
  • 原文地址:https://www.cnblogs.com/shineqiujuan/p/1995774.html
Copyright © 2020-2023  润新知