我编写了一个脚本,旨在快速管理
WSUS进程,我有一些我硬编码的东西,但宁愿使用PowerShell.特别是,Approve-WsusUpdate的“目标”组.
目前我正在做这样的事情:
#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]
是否有’get-targets’命令可以创建一系列可用的目标组?这样我就可以删除$TargetComputerGroups的手动声明.
另外,我想让$UserPrompt成为更好的代码集(再次避免手动声明).我觉得做’$i for $i for $TargetComputerGroups’写主机’按1给我’
话虽如此,我对此非常陌生,所以我不知道最好的方法(理想情况下将他们的选择映射到该语句中的正确组!).
您可以使用PowerShell执行此操作,但您还需要在计算机上安装WSUS管理控制台.
然后,您可以执行以下操作.
[void][reflection.assembly]::LoadWithPartialName("Microsoft.UpdateServices.Administration") $wsus = [Microsoft.UpdateServices.Administration.AdminProxy]::getUpdateServer(“wsus_server”,$False) $wsus
然后,您可以获得目标组列表
$wsus.GetComputerTargetGroups()
或者选择一个组
$targetgroup = $wsus.GetComputerTargetGroups() | ? {$_.Name -eq "some target name"}
在Use PowerShell to Perform Basic Administrative Tasks on WSUS中有更多信息,但上述信息将为您提供有关组的信息.