Restart IIS With Powershell

 

 
[system.Reflection.Assembly]
::LoadWithPartialName(System.ServiceProcess| outNull
 
function GetServiceStartupMode
 {
     
param([string]$servicename,[string]$serverName)
     
$startMode= gwmi win32_service filter NAME = ‘$servicename’ computername $serverName  | Select Property StartMode
     
$startMode
 }

function GetDependentServices{
     
Param([System.ServiceProcess.ServiceController]$MasterService)
     
foreach($dependent in $MasterService.DependentServices)
     {
         
$dependent
         Get
DependentServices $dependent
     }
 }
 
 
 
function RestartMainServices
 {
    
Param($ServiceName = $(throw ‘$ServiceName is Required’))
     
process
     {
         
$Service = NewObject System.ServiceProcess.ServiceController($ServiceName,$_)
         
$DependentServices = GetDependentServices $Service
         
         
if($Service.CanStop)
         {
            
$Service.Stop()
            
$Service.WaitForStatus(Stopped,(newobject system.TimeSpan(0,0,20)))
         }
         
         
if($Service.status -eq Stopped)
         { 
             Write
Host ===Main Service:$($Service.name) start===
             
$Service.Start()
             
$Service.WaitForStatus(Running,(newobject system.TimeSpan(0,0,30)))
         }
         
         
foreach($dependent in $DependentServices )
         {
             
$dependent.Refresh()
             
$startMode= GetServiceStartupMode 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,(newobject system.TimeSpan(0,0,30)))
                 }
             }
             
         }
         
$Service.Refresh()
         
$Service
         
$Service.DependentServices
      }
   
 }
 

 

Related Posts

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注