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
            }
        }
    } 

}