System Center 2012 R2 Virtual Machine Manager – Update Baseline neue Updates hinzufügen

Einer meiner Cloud & Datacenter Management MVP Kollegen hat mich durch eine E-Mail auf unserer DL zu diesem Blogartikel inspiriert.

Der VMM bietet im Zusammenhang mit dem WSUS ein Update Management für die Fabric Infrastructure an. Allerdings hat dieses Update Management einen kleinen kosmetischen Fehler. Möchte man neue Updates einer bestehenden Update Baseline hinzufügen, bekommt man nicht angezeigt welche Updates die Update Baseline bereits enthält. Das macht das Hinzufügen teilweise zu einem Glücksspiel. Auch hier habe ich ein kleines PowerShell Skript geschrieben, welches einem ein bisschen unter die Arme greift.

Add-SCBaselineUpdates –VMMServer vmmserver –Filter ‘Windows Server 2012 R2’

Nach dem Aufruf des Skripts wählt man die entsprechende Update Baseline aus.

Baseline

Im zweiten Schritt den WSUS Server, so dass eine Synchronisierung angestoßen wird, um die neusten Updates zu erhalten.

Baseline2

Danach vergleicht das Skript alle verfügbaren Updates mit schon vorhandenen Updates in der Update Baseline anhand der Update ID und zeigt anschließend nur die neuen Updates zur Auswahl an.

Baseline3

Dort wählt man die entsprechenden Updates aus und fügt Sie dann der Update Baseline hinzu.

-> Add-SCBaselineUpdates.zip

PowerShell Skript Add-SCBaselineUpdates:

function Add-SCBaselineUpdates
{
param
(
[Parameter(Mandatory=$true, HelpMessage=’VMM Server’)]
[String]
$VMMServer,
[Parameter(Mandatory=$false, HelpMessage=’Filtering for Updates. i.e. Windows Server 2012 R2′)]
[String]
$Filter=’Windows Server 2012 R2′
)

$Baseline=Get-SCBaseline -VMMServer $VMMServer|Out-GridView -PassThru -Title “VMM Update Baselines”
$UpdateServer=Get-SCUpdateServer -VMMServer $VMMServer|Out-GridView -PassThru -Title “VMM Update Server”
Start-SCUpdateServerSynchronization -VMMServer $VMMServer -UpdateServer $UpdateServer
$Updates=Get-SCUpdate -VMMServer $VMMServer|Where-Object {$_.Name -like “*$Filter*”}
$BaselineUpdates=$Baseline.Updates|Where-Object {$_.Name -like “*$Filter*”}
$NewUpdates=$Updates
foreach($Update in $Updates)
{
foreach($BaselineUpdate in $BaselineUpdates)
{
if($Update.ID -eq $BaselineUpdate.ID){
$NewUpdates=$NewUpdates|Where-Object {$_.ID -ne $Update.ID}
}
}
}
$AddUpdates=$NewUpdates|Out-GridView -PassThru -Title “New Updates”
Set-SCBaseline -VMMServer $VMMServer -Baseline $Baseline -AddUpdates $AddUpdates
}

Facebooktwittergoogle_pluslinkedinmail