Automating WSUS via PowerShell

J’ai written a script with the intention of quickly managing the WSUS process, and J’ai quelques things I hard coded in, but would rather get with PowerShell. In particular, the ‘Target’ groups for Approve-WsusUpdate.

Currently I’m doing something like this:

#Select Target Group for Update Approval:

$TargetComputerGroups = "All Computers", "Unassigned Computers", "Clients", "Servers", "Test", "View Templates"

$UserPrompt = @"

Please select a Computer Group from the below options:

1) All Computers (Selects all of the below)
2) Unassigned Computers
3) Clients
4) Servers
5) Test
6) View Templates

Enter selection
"@

###Record user selection to varirable
$TargetComputerGroupTemp = Read-Host -Prompt $UserPrompt

###Convert their choice to the correct 0-index array value.
$TargetComputerIndex = $TargetComputerGroupTemp -1

$ComputerTarget = $TargetComputerGroups[$TargetComputerIndex]

Is there a ‘get-targets’ command which will create an array of available target groups? This way I could remove the manual declaration of $TargetComputerGroups.

De plus, J’aimerais to make the $UserPrompt a better set of code (again avoiding manual declarations). Je pense doing something like '$i for $i in $TargetComputerGroups' write-host 'Press 1 for i'

That being said, I am VERY new to this, so Je ne sais pas the best way to do that (ideally mapping their selection to the correct group in that statement!).

Vous pouvez do it with PowerShell, but you need to have the WSUS administration console installed on the machine too.

Vous pouvez then do le suivant.

[void][reflection.assembly]::LoadWithPartialName("Microsoft.UpdateServices.Administration")

$wsus = [Microsoft.UpdateServices.Administration.AdminProxy]::getUpdateServer(“wsus_server”,$False)

$wsus

Vous pouvez then get a list of target groups with

$wsus.GetComputerTargetGroups()

Or select a group with

$targetgroup = $wsus.GetComputerTargetGroups() | ? {$_.Name -eq "some target name"}

TVoici much more information in Use PowerShell to Perform Basic Administrative Tasks on WSUS, but ce qui précède information will get you information on the groups.