Powershell - „Clear-Item variable:” vs „Remove-Variable”

Podczas tymczasowego przechowywania tekstu w zmiennych PowerShell w czasie wykonywania, jaki jest najbardziej skuteczny sposób usuwania zawartości zmiennych z pamięci, gdy nie są już potrzebne?

Użyłem obuClear-Item variable: iRemove-Variable ale jak szybko coś jest usuwane z pamięci, a drugie w porównaniu z poprzednią?

EDYCJA: Powinienem był to trochę wyjaśnić, dlaczego pytam.

Automatyzuję logowanie RDP do wielu maszyn wirtualnych aplikacji (aplikacja nie działa jako usługa, zewnętrzni programiści, długa historia).

Dlatego opracowuję (w dużej mierze ukończony) skrypt do grupowania sesji uruchamiania do każdej z maszyn wirtualnych.

Pomysł polega na tym, że używana jest funkcja skryptu przechowująca poświadczeniaread-host aby zapytać o nazwę hostaget-credentials odebrać domenę / użytkownika / hasło.

Przebieg jest następnie konwertowany z bezpiecznego łańcucha przy użyciu 256-bitowego klucza (klucz wykonawczy unikalny dla maszyny / użytkownika, który przechował kredyty i uruchamia uruchomienie grupy).

Nazwa maszyny wirtualnej, domena, użytkownik i zaszyfrowane hasło są przechowywane w pliku. Podczas uruchamiania sesji szczegóły są odczytywane, odszyfrowane hasłem, przekazywane są szczegółycmdkey.exe do przechowywania\generic:TERMSRV poświadczenie dla tej maszyny wirtualnej, wyczyść zmienną przekazującą tekst jawny, uruchom mstsc na tym hoście, kilka sekund później usuń poświadczenie z magazynu danych uwierzytelniających systemu Windows. (Jeśli przekażę hasło do cmdkey.exe jako coś innego niż zwykły tekst, sesja RDP otrzyma niepoprawne lub brak poświadczeń).

Stąd pytanie, potrzebuję hasła w postaci zwykłego tekstu, aby istniało w pamięci tak krótko, jak to możliwe.

Aby ludzie z bezpieczeństwa byli zadowoleni, sam skrypt jest zaszyfrowany aes256, a opakowanie c # z własnym hostem ps odczytuje, odszyfrowuje i uruchamia skrypt, więc nie ma źródła tekstu jawnego na komputerze, na którym to działa. (Zaszyfrowane źródło w udziale plików tak efektywnie, że mam przełącznik „zabij”, można po prostu zastąpić zaszyfrowany skrypt innym, wyświetlając komunikat, że ta aplikacja została wyłączona)

questionAnswers(5)

yourAnswerToTheQuestion