CmdLets/Restart-OnPending.ps1
|
Function Restart-OnPending { [CmdletBinding()] Param( [Parameter()][Int32]$Delay=15 ) $ControlSets = Get-ChildItem "hklm:\system\*control*" $Properties = @( "PendingFileRenameOperations", "FileRenameOperations" ) foreach ($ControlSet in $ControlSets) { $Path = (join-path $ControlSet "Control\Session Manager").Replace("HKEY_LOCAL_MACHINE","HKLM:") $Manager = Get-Item $Path $Properties | ForEach-Object { If ($Manager.Property -Contains $_) { Write-Host "Pending operations detected, Rebooting in $Delay seconds" Write-Verbose "`t$($Manager.PSPath)" Write-Verbose "`t$_" Start-Sleep -Seconds $Delay Restart-Computer } } } } |