Skip to content

Instantly share code, notes, and snippets.

@MarcoGriep88
Created January 27, 2022 16:41
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save MarcoGriep88/d774059598ffb87acf24067ffe26799b to your computer and use it in GitHub Desktop.
Save MarcoGriep88/d774059598ffb87acf24067ffe26799b to your computer and use it in GitHub Desktop.
Ivanti DSM - Patch Pakete löschen
# =====================================================
# Author: Griep Marco
# Last Change: 2018-02-16
#
# Release Notes: Initial Commit
# Contributors: -
# =====================================================
import-module psx7 -DisableNameChecking
Write-Host "Please insert Servername and Port (mybls.intranet.int:8090):"
#BLS Hardcoded - Kommt variabel ins EA
$HostAddr = "yourbls:8090"
$Server = "\\" + $HostAddr
Write-Host "Please insert privileged Username (mydomain\MyUser):"
$Username = "domain\user"
$global:path = "emdb:\rootdse\Managed Users & Computers\2\. Computers\"
new-psdrive -name emdb -root $Server -scope script -psprovider blsemdb -Credential $Username
cd $global:path;
$packages = Get-EmdbSoftwarePackage "emdb:\rootDSE\Global Software Library\Patch Library\*" -Recurse
$deletablePackages = New-Object System.Collections.ArrayList
foreach ($package in $packages)
{
if ($package.IsSuperseded)
{
Write-Host $package.Name " is Superseded"
$patchPolicies = $package.GetPolicies()
$foundPolicyInstances = $false;
foreach ($patchPolicy in $patchPolicies)
{
if ($patchPolicy.GetPolicyInstanceCount() -gt 0)
{
$foundPolicyInstances = $true;
break;
}
}
if ($foundPolicyInstances -eq $false)
{
Write-Host "Found possible deletable Package: "$package.Name
if ($package.CreationDate.Year -lt 2017)
{
Write-Host "Package is older than allowed: "$package.Name ". Package will be marked to delete"
$deletablePackages.Add($package);
}
}
}
}
Write-Host "Found " $deletablePackages.Count". Do you want to delete them all? (y/n)"
$answer = Read-Host
if ($answer -eq "y")
{
foreach ($deletePackage in $deletablePackages)
{
$patchPolicies = $deletePackage.GetPolicies()
foreach ($patchPolicy in $patchPolicies)
{
Write-Host $patchPolicy.AssignedObjectID
$patchPolicy.Delete($True);
}
$deletePackage.Delete($True);
}
}
Read-Host
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment