Ivanti DSM – Mit PSX alle Patch Policies aktivieren

Ivanti DSM lässt sich sehr flexibel mit den Patch Rollout Verwaltungsregeln konfigurieren. Die wichtigsten Einstellungen (Verzögerung des Freigabe Zeitpunkts, eingeschlossene Patch Kategorien) sind sehr einfach über die DSM-Konsole umzusetzen. Solange man als Administrator die Patch Policies automatisch aktivieren lässt ist dies auch sehr einfach zu verwalten. Kompliziert wird es, wenn:

Werbung
  • mehrere Rollout-Wellen existieren.
  • Diverse Standorte oder Kunden welche alle unterschiedliche Freigabezeiträume benötigen.

Hier sollte die DSM keine Policies mehr automatisch aktiv anlegen, sondern der Administrator tut dies manuell. Je nach Anzahl der Policies lässt sich das nur noch umständlich bewerkstelligen.

Auf Basis dieser Ausgangslage, habe ich in der Vergangenheit mit Powershell die Patch Policies aktivieren lassen und den Aktivierungs-Zeitraum gesetzt auf ein gewünschtes Datum gesetzt.

Dies lässt sich für jede Gruppe individuell machen. Ebenso kann leicht das Verhalten des Scripts angepasst werden.

Für die Umsetzung des Powershell Scripts habe ich die PSX Powershell Extension der Firma NWC-Services verwendet.

Passen Sie im Powershell Script lediglich den Servernamen von Ihrem BLS, den Benutzernamen und die ID der Gruppe auf der die Patch Policies liegen an. Diese Zeilen müssen angepasst werden:

 Zeile 5: $HostAddr = "meinBLS.intranet.int:8090"  Zeile 9: $Username = "domain\username"  Zeile 19: $group = Get-EmdbGroup -Id  

Das Powershell Script – Patch Policies aktivieren

# PSX Add-ins Importieren und EMDB Connecten
import-module psx7 -DisableNameChecking

Write-Host "Please insert Servername and Port (mybls.intranet.int:8090):"
$HostAddr = "meinBLS.intranet.int:8090"
$Server = "\\" + $HostAddr

Write-Host "Please insert privileged Username (mydomain\MyUser):"
$Username = "domain\username"

$global:path = "emdb:\rootdse\Managed Users & Computers\2. Computers\"

new-psdrive -name emdb -root $Server -scope script -psprovider blsemdb -Credential $Username

cd $global:path;

$policyCount = 0;

	$group = Get-EmdbGroup -Id 
	
	$GroupPolicies = $group.getPolicies()
		
	foreach ($policy in $GroupPolicies)
	{
		Write-Host "Searching for Patch Policies"
		if ($policy.getType().Name.ToString() -eq "EmdbPatchPolicy")
		{
			if ($policy.IsActive)
			{
				# Do Something
			}
			else
			{
				$policy.AssignedObjectName
				$d = Get-Date "19/02/2018 7:00 AM";
				$policy.ActivationStartDate = $d;
				$policy.Update();
				$policy.ActivateAllInstances;
				$policy.IsActive = $true;
				$policy.Update();
				$policyCount++;
			}
		}
	}
	


Write-Host $policyCount + " Policies activated";
Read-Host

Individuelles Powershell Script für Ivanti DSM gewünscht?

Sie brauchen ein individuelles Powershell Script für Ihre DSM Umgebung? Schauen Sie doch mal in meinen Services-Bereich vorbei. Neben meinem Blog biete ich diverse Dienstleistungen rund ums Programmieren und Consulting an. Gerne können Sie mich auch einfach per E-Mail kontaktieren: griepmarco@protonmail.com oder über das Kontaktformular

Kommentar verfassen