Quantcast
Channel: Windows PowerShell Forum
Viewing all articles
Browse latest Browse all 2314

Variable mit platzhalter in Get-WMIObject filter übergeben

$
0
0

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?




Viewing all articles
Browse latest Browse all 2314


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>