Hallo, ich habe ein Powershell Skript welches per WMI alle Drucker ausliest und löscht. Bestimmte Drucker dürfen nicht gelöscht werden. Das wird aktuell so realisiert: "Anzahl der Ausnahmen sind für diesen Beitrag reduziert."
printer_del = @(Get-WMIObject Win32_Printer | where-object {$_.name -notlike "*OneNote 2013*" -and $_.name -notlike "*OneNote 2016*" -and $_.name -notlike "client/"+$env:clientname+"#/LP*" | select name-object -ExpandProperty name)
Soweit so gut.. Das funktioniert so.
Problem: Die Ausnahmen sind im "hart codiert" und können so nur direkt im Skript geändert werden. Aus diesem Grund werden die Ausnahmen nun aus einer SQL-Tabelle eingelesen.
PS C:\> $Ausnahmen *OneNote 2016* *OneNote 2013* client/"+$env:clientname+"#/LP*
Die Abfrage um $printer_del zu füllen habe ich wir folgt umgebaut
$printer_del = @(Get-WMIObject Win32_Printer | where-object {$Ausnahmen -notcontains $_.Name} | select Name -ExpandProperty Name)
Leider funktioniert das nicht. Die Drucker die eigentlich ausgenommen werden sollen sind trotzdem in der Variable enthalten. Ich vermute es liegt an den Wildcards. Wenn ich im Array $Ausnahmen den "*" weg nehme klappt es.
Hat jemand eine Idee?
mfg Marcel