Function Remove-WUOfflineSync { <# .SYNOPSIS Unregister offline scaner service. .DESCRIPTION Use Remove-WUOfflineSync to unregister Windows Update offline scan file (wsusscan.cab or wsusscn2.cab) from current machine. .EXAMPLE Check if Offline Sync Service is registered and try unregister it. PS C:\> Remove-WUOfflineSync Confirm Are you sure you want to perform this action? Performing operation "Unregister Windows Update offline scan file" on Target "G1". [Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"): Y ServiceID IsManaged IsDefault Name --------- --------- --------- ---- 9482f4b4-e343-43b6-b170-9a65bc822c77 False False Windows Update 7971f918-a847-4430-9279-4a52d1efe18d False False Microsoft Update 3da21691-e39d-4da6-8a4b-b43877bcb1b7 True True Windows Server Update Service .NOTES Author: Michal Gajda Blog : http://commandlinegeeks.com/ .LINK http://gallery.technet.microsoft.com/scriptcenter/2d191bcd-3308-4edd-9de2-88dff796b0bc .LINK Get-WUServiceManager Add-WUOfflineSync #> [CmdletBinding( SupportsShouldProcess=$True, ConfirmImpact="High" )] Param() Begin { $User = [Security.Principal.WindowsIdentity]::GetCurrent() $Role = (New-Object Security.Principal.WindowsPrincipal $user).IsInRole([Security.Principal.WindowsBuiltinRole]::Administrator) if(!$Role) { Write-Warning "To perform some operations you must run an elevated Windows PowerShell console." } #End If !$Role } Process { $objServiceManager = New-Object -ComObject "Microsoft.Update.ServiceManager" $State = 1 Foreach ($objService in $objServiceManager.Services) { If($objService.Name -eq "Offline Sync Service") { If ($pscmdlet.ShouldProcess($Env:COMPUTERNAME,"Unregister Windows Update offline scan file")) { Try { $objServiceManager.RemoveService($objService.ServiceID) } #End Try Catch { If($_ -match "HRESULT: 0x80070005") { Write-Warning "Your security policy don't allow a non-administator identity to perform this task" } #End If $_ -match "HRESULT: 0x80070005" Else { Write-Error $_ } #End Else $_ -match "HRESULT: 0x80070005" Return } #End Catch } #End If $pscmdlet.ShouldProcess($Env:COMPUTERNAME,"Unregister Windows Update offline scan file") Get-WUServiceManager $State = 0; } #End If $objService.Name -eq "Offline Sync Service" } #End Foreach $objService in $objServiceManager.Services If($State) { Write-Warning "Offline Sync Service don't exist on current machine." } #End If $State } #End Process End{} } #In The End :)