PowerShell a heslá

PowerShell a heslá

Keď pracujem s PowerShell-om, veľakrát potrebujem aby sa skript autentikoval pomocou hesla. Keďže ale PS skripty obsahujú nezakryptovaný text, toto môže byť problém. Našiel som však elegantné riešenie.


 

Kedže sú PS skripty obyčajný text, bolo by vhodné nejakým spôsobom tento text zaheslovať alebo zakryptovať. Alebo by stačilo zakryptovať súbor obsahujúci heslo. No a toto je veľmi jednoduchá procedúra:

$credential = Get-Credential
$credential.Password | ConvertFrom-SecureString | Set-Content c:\zakryptovaneHeslo.txt

Tento mini skript po spustení požiada o zadanie mena a hesla, ktoré chceme zakryptovať:

Po zadaní mena a hesla sa tieto uložia do zahešovaného súboru, špecifikovaného v Set-Content. V našom prípade do c:\zakryptovaneHeslo.txt.
Kľúčom k dekrypcii hesla je účet, ktorý bol použitý na vytvorenie zakryptovaného súboru. Čiže ak som si súbor vytvoril pomocou účtu domain\userName, tak ten istý účet musím použiť na dekrypciu hesla. No a na to nám poslúži
nasledujúci skript:

$encrypted = Get-Content c:\zakryptovaneHeslo.txt | ConvertTo-SecureString
$BSTR = [System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($encrypted)
$UnsecurePassword = [System.Runtime.InteropServices.Marshal]::PtrToStringAuto($BSTR)

Tento skript nám odkóduje pomocou mena a hesla účtu použitého pri zaheslovaní (v našom prípade pomocou domain\userName) heslo obsiahnuté v súbore a dodá nám ho v textovej podobe v premennej $UnsecurePassword.

Leave a Reply

Vaša e-mailová adresa nebude zverejnená.

Táto webová stránka používa Akismet na redukciu spamu. Získajte viac informácií o tom, ako sú vaše údaje z komentárov spracovávané.