Article Number: 000146459
Non applicabile
Il concetto alla base delle password sicure è che negli script di produzione non dobbiamo passare password importanti come una visione semplice. Si tratta di una grave mancanza di sicurezza. Quindi, utilizzando PowerShell possiamo proteggere una password o almeno ridurre la visibilità della password. Per prima cosa, parliamo di aspetti generali della stringa sicura, quindi parliamo di come Dell Command PowerShell Provider (DCPP) sfrutta la funzione innate di PowerShell per proteggere la password.
Si consideri che si desidera leggere nome utente e password dall'utente sulla console. Siamo consapevoli che il nome utente in genere non richiede alcuna sicurezza e può essere visibile a tutti. Ma per la password non dobbiamo far sapere ai estranei la password dell'utente. È possibile facilitare questo requisito con i comandi come indicato di seguito:
$user = Read-Host "Enter Username" $pass = Read-Host "Enter Password" -AsSecureString
Quanto riportato sopra offre una panoramica su come aggiungere maggiore sicurezza quando dobbiamo proteggere le informazioni critiche come una password. Nell'esempio precedente, la variabile $pass è di tipo System.Security.SecureString
. Viene fornita un'introduzione a due altri cmdlet ampiamente utilizzati forniti da PowerShell per facilitare i campi sicuri prima di toccare gli aspetti del DCPP.
I due comandi sono ConvertTo-SecureString
e ConvertFrom-SecureString
. ConvertTo-SecureString
converte un testo normale nel tipo System.Security.SecureString
. Di seguito viene mostrato un esempio:
"P@ssword1" | ConvertTo-SecureString -AsPlainText -Force
Nell'esempio precedente, il testo P@assword1
normale viene convertito nel tipo System.Security.SecureString
. Si tratta di una maggiore quantità di informazioni e può essere ampiamente utilizzata o meno.
Il cmdlet ConvertFrom-SecureString
successivo è un cmdlet più utilizzato che viene utilizzato per convertire stringhe protette in stringhe standard crittografate. La limitazione principale di ConvertTo-SecureString
è che il relativo output non può essere scritto direttamente in un file per un utilizzo futuro. Per superare questa limitazione, è necessario utilizzare ConvertFrom-SecureString
un metodo che si converte System.Security.SecureString
in una stringa standard crittografata che può essere salvata comodamente in un file.
Stiamo convertendo il testo P@ssword1
normale in una stringa sicura e quindi eseguendo il piping del relativo output per ConvertFrom-SecureString
ottenere una stringa crittografata che può essere salvata in modo sicuro e pratico in un file.
Ad esempio, se è stata impostata la password amministratore su un computer, è necessario salvarla in un file. È possibile eseguire questa operazione utilizzando:
Read-Host "Enter Admin Password" -AsSecureString | ConvertFrom-SecureString | Out-File "C:\Scripts\AdminPassword.txt"
È possibile recuperare la password amministratore in una variabile come oggetto sicuro come:
$pass = Get-Content "C:\Scripts\AdminPassword.txt" | ConvertTo-SecureString
Ora è possibile prendere in considerazione come utilizzare una password sicura per DCPP. In DCPP, se il computer dell'utente ha una password di sistema o amministratore impostata, per tutti i set
comandi è necessario passare la rispettiva password. Fornendo questa password come sicurezza per violazioni di testo normale. Quindi, dobbiamo passare la password come System.Security.SecureString
. Inoltre, quando si passa una SecureString
password, è necessario passarla con uno -PasswordSecure
switch e non con lo switch normale –Password
. Di seguito viene mostrato un esempio in cui l'utente sta tentando di impostare AdvancedBatteryChargeCfg
Disabled
e superare la SecureString
password:
Set-item AdvancedBatteryChargeCfg disabled –PasswordSecure $pass
Qui $pass contiene la password di sistema e amministratore ed è di tipo System.Security.SecureString
. Analogamente alla discussione di cui sopra, possiamo leggere $pass
come:
$pass = Read-Host "Enter system/admin password" –AsSecureString
Possiamo salvare $pass
in un file, se necessario, come:
$pass| ConvertFrom-SecureString | Out-File "C:\Scripts\AdminPassword.txt
Dell Command | Powershell Provider
11 Sep 2023
7
Solution