Credentials in PowerShell

Credentials in PowerShell
Credentials in PowerShell

Er zijn verschillende manieren waarmee u op een veilige manier met credentials in een scripted omgeving zoals PowerShell kunt omgaan. Tijdens een demo is het altijd vereist om geen wachtwoorden of gebruikersnamen te laten zien. Het is niet professioneel en het staat niet professioneel.

Het PSCredential-object vertegenwoordigt een set beveiligingsreferenties, zoals een gebruikersnaam en wachtwoord. Het object kan worden doorgegeven als een parameter aan een functie die wordt uitgevoerd als het gebruikersaccount in dat referentieobject. Er zijn een aantal manieren waarop u een referentieobject kunt maken. De eerste manier om een referentieobject te maken, is door de PowerShell-cmdlet Get-Credentialte gebruiken. Wanneer u zonder parameters uitvoert, wordt u gevraagd om een gebruikersnaam en wachtwoord. U kunt de cmdlet ook aanroepen met enkele optionele parameters.

Als u de domeinnaam en gebruikersnaam van tevoren wilt opgeven, kunt u de parameters Referentie of Gebruikersnaam gebruiken. Wanneer u de parameter UserName gebruikt, moet u ook een berichtwaarde opgeven

De gemakkelijkste manier is om Get-Credential te gebruiken zodat u gedurende runtime de juiste gebruiker / wachtwoord kunt gebruiken.

$MyCredential = Get-Credential
$UserName = $MyCredential.username
$Password = $MyCredential.password

Een andere manier is om credentials via PowerShell op te halen is door dat via Read-Host te doen.

$UserName = Read-Host "Enter Username"
$Password = Read-Host "Enter Password" -AsSecureString

Tijdens demo’s is dat dan weer niet zo handig. U kunt dan gebruik maken van een password bestand die in een tijdelijke folder staat. Voor de demo begint, kunt u via bovenstaande methode de credentials invoeren en dan deze exporteren naar een encrypted bestand in een tijdelijke folder.

$TEMP = "$env:TEMP"
$File = "$Temp\Password.txt"
$Password | ConvertTo-SecureString -AsPlainText -Force | ConvertFrom-SecureString | Out-File $File
$Password = Get-Content $File | ConvertTo-SecureString

Als u een credentials object nodig heeft, bijvoorbeeld om een service met een gebruiker laten starten, dan moet u een credentials object aanmaken in runtime.

$User = $UserName
$MyCredential=New-Object -TypeName System.Management.Automation.PSCredential `
 -ArgumentList $User, (Get-Content $File | ConvertTo-SecureString)
PS C:\Windows\system32> $MyCredential

UserName Password
——– ——–
mmels System.Security.SecureString

Als u toch snel een tijdelijk wachtwoord nodig hebt, dan kunt u dit als volgt doen.

$password = "$OoJzasZ8M#6kbEh" | ConvertTo-SecureString -AsPlainText -Force

Meer informatie over dit onderwerp, vind je hier.

Wil je contact met mij opnemen, dan kan dat via het contact formulier.

0 Shares:
You May Also Like