Powershell - "Clear-Item-Variable:" vs "Remove-Variable"

Was ist die effizienteste Methode zum Entfernen von Variableninhalten aus dem Speicher, wenn Text zur Laufzeit vorübergehend in Powershell-Variablen gespeichert wird, wenn er nicht mehr benötigt wird?

Ich habe beides benutztClear-Item variable: undRemove-Variable aber wie schnell wird mit letzterem etwas aus dem speicher entfernt, während mit erstem der speicherinhalt auf null gesetzt wird?

EDIT: Ich hätte es ein wenig klarer machen sollen, warum ich frage.

Ich automatisiere die RDP-Anmeldung für eine Reihe von Anwendungs-VMs (Anwendung wird nicht als Dienst ausgeführt, Entwickler wurden ausgelagert, lange Geschichte).

Daher entwickle ich ein Skript (weitgehend fertiggestellt), um Startsitzungen für jede der VMs zu gruppieren.

Die Idee ist, dass die Skriptfunktion, die Anmeldeinformationen speichert, verwendet wirdread-host um dann nach dem Hostnamen zu fragenget-credentials Domain / Benutzer / Passwort abholen.

Der Durchlauf wird dann mithilfe eines 256-Bit-Schlüssels (Laufzeitschlüssel, der für den Computer / Benutzer eindeutig ist, der die creds gespeichert hat und den Gruppenstart ausführt) von einer sicheren Zeichenfolge konvertiert.

Der Name, die Domäne, der Benutzer und der verschlüsselte Pass der VMs werden in einer Datei gespeichert. Beim Starten einer Sitzung werden die Details eingelesen, das Passwort entschlüsselt und die Details an übergebencmdkey.exe lagern\generic:TERMSRV Anmeldeinformationen für diese VM, Klartext-Pass-Variable löschen, mstsc auf diesem Host starten und einige Sekunden später die Anmeldeinformationen aus dem Windows-Anmeldeinformationsspeicher entfernen. (Wenn ich das Kennwort nicht als Klartext an cmdkey.exe übergeben würde, würde die RDP-Sitzung entweder falsche oder keine Anmeldeinformationen erhalten.)

Daher die Frage: Ich brauche das Passwort im Klartext, um so kurz wie möglich im Speicher zu bleiben.

Um die Sicherheit zu gewährleisten, ist das Skript selbst aes256-verschlüsselt, und ein C # -Wrapper mit einem eigenen ps-Host liest, entschlüsselt und führt das Skript aus. Es gibt also keine Klartextquelle auf dem Computer, auf dem dies ausgeführt wird. (Verschlüsselte Quelle auf einer Dateifreigabe, so effektiv, dass ich einen Kill-Schalter habe, kann einfach verschlüsseltes Skript durch ein anderes ersetzen, das eine Meldung anzeigt, dass diese App deaktiviert wurde.)

Antworten auf die Frage(5)

Ihre Antwort auf die Frage