Hallo!
Vorweg ich bin neu in PowerShell, also bitte möglichst einfach erklären :D. ich habe einige Erfahrung in AutoIT, bin also kein absoluter scripting noob.
Folgende Zielsetzung: Für eine RMM Software möchte ich die Anzahl der Schattenkopien und das Datum der ältesten Schattenkopie auslesen und in 2 Variablen schreiben die mein RMM dann übernimmt und mit den Schwellwerten vergleicht. Das script bekommt als Input auch eine Variable, den Laufweksbuchstaben.
momentan sieht das so aus:
erst fragt das script nach der DeviceID zu dem betreffenden LW buchstaben.
$LWletter="c:"
$Device1 = Get-WmiObject win32_volume -filter "DriveLetter='$LWletter'" | select DeviceID | out-string #leist deviceID eines bestimmten Laufwerksbuchstaben aus
$device2 = $Device1.replace("DeviceID",$null).replace("--------",$null).trim()
Bis hier her klappt es.
jetzt würde ich gerne nach den Schattenkopien auf dem laufwerk suchen mit:
$sc_count = Get-WmiObject win32_shadowcopy -filter "VolumeName='$device2'" | select count
und hier scheitere ich. für jeden anderen filter den ich versucht habe bekomme ich einen wert, für den Filter "VolumeName" aber nicht (fehler: Die Anfrage ist ungültig.)
ich vermute es liegt an dem String selbst mit seinen vielen Sonderzeichen (devicID zB: "\\?\Volume{4d5588ab-2cfe-11e4-9498-806e6f6e6963}\" )
Nur die Zahlen/Buchstabenwurst bringt aber auch kein ergebniss, platzhalter wie * und ? hab ich auch versucht.
Get-WmiObject win32_shadowcopy -filter "VolumeName='*11e4-9498-806e6f6e696*'"bringt zb gar kein Ergebnis aber auch keinen Fehler
wie kann ich das realisieren?