Function Get-WUServiceManager { <# .SYNOPSIS Show Service Manager configuration. .DESCRIPTION Use Get-WUServiceManager to get available configuration of update services. .EXAMPLE Show currently available Windows Update Services on machine. PS C:\> Get-WUServiceManager 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 13df3d8f-78d7-4eb8-bb9c-2a101870d350 False False Offline Sync Service2 a8f3b5e6-fb1f-4814-a047-2257d39c2460 False False Offline Sync Service .NOTES Author: Michal Gajda Blog : http://commandlinegeeks.com/ .LINK http://gallery.technet.microsoft.com/scriptcenter/2d191bcd-3308-4edd-9de2-88dff796b0bc .LINK Add-WUOfflineSync Remove-WUOfflineSync #> [OutputType('PSWindowsUpdate.WUServiceManager')] [CmdletBinding( SupportsShouldProcess=$True, ConfirmImpact="Low" )] 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 { If ($pscmdlet.ShouldProcess($Env:COMPUTERNAME,"Get Windows Update ServiceManager")) { $objServiceManager = New-Object -ComObject "Microsoft.Update.ServiceManager" $ServiceManagerCollection = @() Foreach ($objService in $objServiceManager.Services) { $objService.PSTypeNames.Clear() $objService.PSTypeNames.Add('PSWindowsUpdate.WUServiceManager') $ServiceManagerCollection += $objService } #End Foreach $objService in $objServiceManager.Services Return $ServiceManagerCollection } #End If $pscmdlet.ShouldProcess($Env:COMPUTERNAME,"Get Windows Update ServiceManager") } #End Process End{} } #In The End :)