Im Löschen von Profilen mit dem Befehl get-wmi. Da der Code jeden Löschbefehl in der Schleife durchläuft, möchte ich anzeigen, welches Profil gelöscht wird. Ich versuchte dies:Windows Powershell zeigt die aktuelle Variable in der Pipeline während einer Schleife für jede Schleife an
$total = 0
$count = 1
foreach ($localpath in $dispaths)
{$total = $total + 1}
Foreach ($localpath in $dispaths)
{cls
write-host "Deleting Profile: $_.localpath ($count of $total)"
$count = $count + 1
get-wmiobject -class win32_userprofile -computername $cname | where
{$_.localpath -eq $localpath.localpath} | foreach {$_.Delete()}
}
aber während der Zählung richtig funktioniert, zeigt die Anzeigezeile wörtlich:
löschen Profil: ./localpath (1 von 135)
statt Anzeige unabhängig von der aktuellen Zeichenkette innerhalb der localpath-Variable ist. Ich habe versucht, das zu entfernen. von ._ localpath $ aber, dass nur angezeigt etwas wie folgt aus:
löschen Profil: (1 von 135)
es tut nichts anzuzeigen, in dem die Variable Zeichenfolge sein sollte. Wo gehe ich falsch?
Danke nochmal BenH, dass du dir die Zeit genommen hast, mir zu zeigen, wie das geht. Ich habe Powershell-Skripte nie wirklich von Grund auf gelernt. Ich brauche es nur, um bestimmte Probleme zu lösen, so dass viele der logischen Konstrukte und die Syntax dahinter in meiner Erfahrung fehlen. Wenn ich das Skript mit Ihren Änderungen ausführen, bekomme ich mehr als nur den lokalen Pfad. Es zeigt die gesamte Zeile für jeden Lauf und nicht nur die lokale Pfadzelle für jeden. Es sieht so aus: Profil löschen: @ {samaccountanme = rbobo; aktiviert = FALSCH; Localpath = C: \ Benutzer \ rbobo} .localpath (19 von 135) keine Idee warum? – soltkr
@soltkr Antwort aktualisiert, um das Problem zu beheben. Das liegt daran, dass beim Erweitern von Variablen innerhalb von Anführungszeichen die Variable expandiert, wobei '.property' als Zeichenfolge angehängt wird. Setzen Sie also die '$ variable.property' in einen Teilausdruck' $() 'und es wird die Eigenschaft ausgewertet. – BenH
Sie sind absolut richtig. neuer Code hat perfekt funktioniert! – soltkr