Avatar billede SorenMollerDK Nybegynder
11. juni 2014 - 11:15 Der er 1 kommentar og
1 løsning

Hjælp til Powershell og Wsus Approve Updates By Computer Group

Hej

Jeg har funde dette script til ApproveUpdatesByComputerGroup som virker, mit problem er nu, jeg kun vil godkende -Classification Critical, fordi jeg ikke bare vil godkende Service Packs til OS/SQL osv.

Men lige meget hvad jeg har prøvet, kan jeg ikke rigtig få det til at virker, så derfor..

HLÆLP HLÆLP HLÆLP HLÆLP HLÆLP HLÆLP


# ApproveUpdatesByComputerGroup.ps1

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

$wsus = [Microsoft.UpdateServices.Administration.AdminProxy]::getUpdateServer()

$ComputerTargetGroups = $wsus.GetComputerTargetGroups()
Write-Host "Warning: This will approve all NotApproved updates for a Computer Group" -ForegroundColor Red
Write-Host "Computer Groups"
$Count = 0
foreach ($ComputerTargetGroup in $ComputerTargetGroups) {
    Write-Host $Count - $ComputerTargetGroup.Name
    $Count++
}
$ComputerGroupToUpdate = Read-Host "Select Computer Group to update. [0 - $($Count-1)]"
Write-Host "Finding all updates needing approval and approving them"

$ComputerGroupName = $ComputerTargetGroups[$ComputerGroupToUpdate].Name
$ComputerGroupId = $ComputerTargetGroups[$ComputerGroupToUpdate].Id

$ComputersToScan = $wsus.GetComputerTargetGroup($ComputerGroupId).GetComputerTargets()
foreach ($ComputerToScan in $ComputersToScan) {

    $ComputerTargetToUpdate = $wsus.GetComputerTargetByName($ComputerToScan.FullDomainName)
    # Get all Not Installed updates available to the computer
    $NeededAndNotInstalled = $ComputerTargetToUpdate.GetUpdateInstallationInfoPerUpdate() | where {
                                                                                                    ($_.UpdateInstallationState -eq "NotInstalled") `
                                                                                                    -and ($_.UpdateApprovalAction -eq "NotApproved")}
    foreach ($UpdateToApprove in $NeededAndNotInstalled)
    {
        Approve-WsusUpdate -Action Install -TargetGroupName $ComputerGroupName -Update $(Get-WsusUpdate -UpdateId $UpdateToApprove.UpdateId) -Verbose
    }

}
Write-Host "Done approving updates"
sleep -Seconds 5
Avatar billede conz Juniormester
11. juni 2014 - 17:33 #1
Har du prøvet at indsætte det i where pipen når du sætter $NeededAndNotInstalled, i den næst-sidste foreach?

Der ville jeg umiddelbart sætte den. Sidder på mobilen lige nu, så har ikke mulighed for at teste.
Avatar billede SorenMollerDK Nybegynder
12. juni 2014 - 12:45 #2
Betalyte

Det kan jeg ikke rigtig få til at virke?????

Oversag til jeg skal bruge dette script, er fordi jeg kører SCCM og skal bruge wsus Windows Cluster-Aware Updating.

Jeg bruger et script i forvejen til Maintenance Mode til scom og ville så køre dette mod wsus.

men men men jeg mangle sgu bare lige -Classification Critical  :-) :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester