Article Number: 000146459
Ei sovellettavissa
Suojattujen salasanojen käsite on, että tuotantokomentosarjojen yhteydessä tärkeitä salasanoja ei saa välittää yhtä näkyvästi. Tämä on vakava tietoturvan puute. PowerShellin avulla voidaan suojata salasana tai vähintään vähentää salasanan näkyvyyttä. Ensin käsitellään suojatun merkkijonon yleisiä puolia ja sen jälkeen sitä, miten Dell Command PowerShell Provider (DCPP) hyödyntää PowerShellin luontaista ominaisuutta salasanan suojaamiseksi.
Käyttäjä voi lukea käyttäjätunnuksen ja salasanan konsolissa. Käyttäjätunnus ei yleensä edellytä suojausta, ja se näkyy kaikille. Salasanan vuoksi ei kuitenkaan pidä ilmoittaa tuntemattomille käyttäjille käyttäjän salasanaa. Voimme helpottaa tätä vaatimusta seuraavilla komennoilla:
$user = Read-Host "Enter Username" $pass = Read-Host "Enter Password" -AsSecureString
Edellä on yleiskatsaus siitä, miten voimme lisätä suojausta, kun tarvitaan tärkeitä tietoja, kuten salasanaa. Edellä olevassa esimerkissä muuttujan $pass on tyyppi System.Security.SecureString
. Seuraavassa esitellään kaksi muuta laajasti käytettyä cmdlet-komentoa, joilla PowerShell helpottaa suojattuja kenttiä ennen DCPP-piireihin tutustumista.
Komennot ovat seuraavat ConvertTo-SecureString
ConvertFrom-SecureString
: ConvertTo-SecureString
Muuntaa vain tekstin muotoon System.Security.SecureString
. Seuraavassa on esimerkki:
"P@ssword1" | ConvertTo-SecureString -AsPlainText -Force
Yllä olevassa esimerkissä vain teksti P@assword1
muunnetaan tyypiksi System.Security.SecureString
. Nämä tiedot ovat yleisimpiä, ja niitä saatetaan käyttää laajasti.
Seuraava cmdlet-komento ConvertFrom-SecureString
on laajemmin käytetty cmdlet-komento, jolla suojatut merkkijonot muunnetaan salatuiksi vakiomerkkijoneiksi. Keskeisin ConvertTo-SecureString
rajoitus on, että sen tuloksia ei voi kirjoittaa suoraan tiedostoon tulevaa käyttöä varten. Ongelman voi korjata käyttämällä ConvertFrom-SecureString
System.Security.SecureString
salattua vakiomerkkijonoa, jonka voi kätevästi tallentaa tiedostoon.
Muunnamme vain tekstin P@ssword1
suojatuksi merkkijonoksi ja viemme sen tuloksen, jotta ConvertFrom-SecureString
saadaan salattu merkkijono, joka voidaan tallentaa turvallisesti ja kätevästi tiedostoon.
Esimerkissä voidaan todeta tietokoneella, onko järjestelmänvalvojan salasana asetettu ja se on tallennettava tiedostoon. Tämän voi tehdä seuraavalla komennolla:
Read-Host "Enter Admin Password" -AsSecureString | ConvertFrom-SecureString | Out-File "C:\Scripts\AdminPassword.txt"
Tämän järjestelmänvalvojan salasanan voi palauttaa muuttujaan suojatuna objektina seuraavasti:
$pass = Get-Content "C:\Scripts\AdminPassword.txt" | ConvertTo-SecureString
Nyt voit harkita, miten DCPP:n suojattua salasanaa voidaan hyödyntää. Jos DCPP-ohjelmistossa on asetettu joko järjestelmän tai järjestelmänvalvojan salasana, kaikkien set
komentojen yhteydessä on annettava vastaava salasana. Joten salasanan antaminen vain tekstin tietomurtojen suojauksena. Salasana on siis välitettävä nimellä System.Security.SecureString
. Lisäksi salasana on SecureString
annettava kytkimellä -PasswordSecure
, ei normaalilla –Password
kytkimellä. Alla on esimerkki, jossa käyttäjä yrittää määrittää AdvancedBatteryChargeCfg
Disabled
ja välittää SecureString
salasanan:
Set-item AdvancedBatteryChargeCfg disabled –PasswordSecure $pass
Tässä $pass sisältää järjestelmän ja järjestelmänvalvojan salasanan ja on tyyppiä System.Security.SecureString
. Edellä olevan keskustelun tavoin voimme lukea $pass
seuraavaa:
$pass = Read-Host "Enter system/admin password" –AsSecureString
Voit tallentaa $pass
tiedostoon tarvittaessa seuraavasti:
$pass| ConvertFrom-SecureString | Out-File "C:\Scripts\AdminPassword.txt
Aiheeseen liittyvät artikkelit:
Dell Command | Powershell Provider
11 Sept 2023
7
Solution