Konseptet bak sikre passord er at vi i produksjonsskript ikke skal sende viktige passord som vanlig visning. Dette er en alvorlig mangel på sikkerhet. Så ved hjelp av PowerShell kan vi sikre et passord eller i det minste redusere passordsynligheten. Vi diskuterer først generelle aspekter ved sikker streng, og deretter diskuterer vi hvordan Dell Command PowerShell Provider (DCPP) bruker den medfødte funksjonen i PowerShell for å sikre passord.
Tenk på at vi vil lese brukernavnet og passordet fra brukeren på konsollen. Vi vet at brukernavnet generelt ikke krever noen sikkerhet, og det kan være synlig for alle. Men for passord bør vi ikke la fremmede få vite brukerens passord. Vi kan legge til rette for dette kravet med kommandoene nedenfor:
$user = Read-Host "Enter Username" $pass = Read-Host "Enter Password" -AsSecureString
Ovennevnte er en oversikt over hvordan vi kan legge til mer sikkerhet når vi må sikre kritisk informasjon som et passord. I eksemplet ovenfor er variabelen $pass av typen System.Security.SecureString
. Vi får en introduksjon til to andre mye brukte cmdleter PowerShell gir for å lette sikre felt før vi berører aspekter ved DCPP.
De to kommandoene er: ConvertTo-SecureString
og ConvertFrom-SecureString
. ConvertTo-SecureString
Konverterer en ren tekst til type System.Security.SecureString
. Det vises et eksempel nedenfor:
"P@ssword1" | ConvertTo-SecureString -AsPlainText -Force
I eksemplet ovenfor er ren tekst P@assword1
konverteres til type System.Security.SecureString
. Dette er mer en informasjon og kan eller ikke kan bli mye brukt.
Neste cmdlet ConvertFrom-SecureString
er en mer utbredt cmdlet som brukes til å konvertere sikre strenger til krypterte standardstrenger. Hovedbegrensningen av ConvertTo-SecureString
er at utdataene ikke kan skrives direkte inn i en fil for fremtidig bruk. Vi må bruke ConvertFrom-SecureString
som konverterer System.Security.SecureString
i en kryptert standardstreng som enkelt kan lagres i en fil for å overvinne denne begrensningen.
Vi konverterer ren tekst P@ssword1
for å sikre strengen og deretter føre utdataene til ConvertFrom-SecureString
for å få en kryptert streng som trygt og praktisk kan lagres i en fil.
La oss som et eksempel si på en datamaskin om administratorpassordet er angitt, og vi må lagre dette i en fil. Vi kan gjøre dette ved å bruke:
Read-Host "Enter Admin Password" -AsSecureString | ConvertFrom-SecureString | Out-File "C:\Scripts\AdminPassword.txt"
Vi kan hente tilbake dette administratorpassordet til en variabel som et sikkert objekt som:
$pass = Get-Content "C:\Scripts\AdminPassword.txt" | ConvertTo-SecureString
Nå for å vurdere hvordan du kan utnytte et sikkert passord for DCPP. Hvis brukerens datamaskin har enten System- eller administratorpassord angitt i DCPP, så for alle set
Kommandoer vi må sende det respektive passordet. Så å oppgi dette passordet som ren tekst bryter sikkerheten. Vi må sende passordet som System.Security.SecureString
. Også når vi passerer en SecureString
passord vi må passere den med en -PasswordSecure
bryter og ikke normal –Password
bryter. Et eksempel vises nedenfor der brukeren prøver å angi AdvancedBatteryChargeCfg
til Disabled
og pasninger SecureString
passord:
Set-item AdvancedBatteryChargeCfg disabled –PasswordSecure $pass
Her har $pass system- og adminpassordet og er av typen System.Security.SecureString
. I likhet med diskusjonen ovenfor kan vi lese $pass
som:
$pass = Read-Host "Enter system/admin password" –AsSecureString
Vi kan spare $pass
til en fil, om nødvendig, som:
$pass| ConvertFrom-SecureString | Out-File "C:\Scripts\AdminPassword.txt
Relaterte artikler: