Article Number: 000146459
Niet van toepassing
Het concept achter veilige wachtwoorden is dat we in productiescripts belangrijke wachtwoorden niet als normaal moeten doorgeven. Dit is een ernstig gebrek aan beveiliging. Met Behulp van PowerShell kunnen we dus een wachtwoord beveiligen of ten minste de zichtbaarheid van wachtwoorden verminderen. We bespreken eerst algemene aspecten van een beveiligde tekenreeks en bespreken vervolgens hoe Dell Command PowerShell Provider (DCPP) de geïntegreerde functie van PowerShell gebruikt om het wachtwoord te beveiligen.
Houd er rekening mee dat we de gebruikersnaam en het wachtwoord van de gebruiker op de console willen lezen. We zijn ons ervan bewust dat de gebruikersnaam over het algemeen geen beveiliging vereist en dat deze voor iedereen zichtbaar kan zijn. Maar voor het wachtwoord mogen we niet vreemden het wachtwoord van de gebruiker laten weten. We kunnen dit vereiste vergemakkelijken met de onderstaande opdrachten:
$user = Read-Host "Enter Username" $pass = Read-Host "Enter Password" -AsSecureString
Het bovenstaande geeft een overzicht van hoe we meer beveiliging kunnen toevoegen wanneer we kritieke informatie zoals een wachtwoord moeten beveiligen. In het bovenstaande voorbeeld is de variabele $pass van het type System.Security.SecureString
. We krijgen een inleiding tot twee andere veelgebruikte cmdlets die PowerShell biedt om veilige velden te vergemakkelijken voordat we aspecten van DCPP aanraken.
De twee opdrachten zijn ConvertTo-SecureString
en ConvertFrom-SecureString
. ConvertTo-SecureString
converteert een tekst zonder opmaak naar type System.Security.SecureString
. Hieronder ziet u een voorbeeld:
"P@ssword1" | ConvertTo-SecureString -AsPlainText -Force
In het bovenstaande voorbeeld wordt de tekst zonder opmaak P@assword1
geconverteerd naar typ System.Security.SecureString
. Dit is meer een informatie en kan al dan niet op grote schaal worden gebruikt.
De volgende cmdlet ConvertFrom-SecureString
is een meer gebruikte cmdlet die wordt gebruikt om beveiligde tekenreeksen om te zetten in versleutelde standaardstrings. De belangrijkste beperking is ConvertTo-SecureString
dat de uitvoer ervan niet rechtstreeks in een bestand kan worden geschreven voor toekomstig gebruik. We moeten deze tekenreeks gebruiken ConvertFrom-SecureString
om deze beperking te verhelpen System.Security.SecureString
.
We converteren tekst zonder opmaak P@ssword1
naar beveiligde tekenreeks en piping vervolgens de uitvoer ervan om een versleutelde tekenreeks te ConvertFrom-SecureString
verkrijgen die veilig en gemakkelijk kan worden opgeslagen in een bestand.
Als voorbeeld kunt u op een computer zeggen of het beheerderswachtwoord is ingesteld en moeten we dit opslaan in een bestand. We kunnen dit doen met behulp van:
Read-Host "Enter Admin Password" -AsSecureString | ConvertFrom-SecureString | Out-File "C:\Scripts\AdminPassword.txt"
We kunnen dit beheerderswachtwoord ophalen in een variabele als een beveiligd object als:
$pass = Get-Content "C:\Scripts\AdminPassword.txt" | ConvertTo-SecureString
Nu kunt u overwegen hoe u een beveiligd wachtwoord voor DCPP kunt gebruiken. Als de computer van de gebruiker in DCPP een systeem- of beheerderswachtwoord heeft ingesteld, moeten we voor alle set
opdrachten het respectievelijke wachtwoord doorgeven. Het opgeven van dit wachtwoord als tekst zonder opmaak zorgt dus voor een inbreuk op de beveiliging. Dus we moeten het wachtwoord doorgeven als System.Security.SecureString
. Ook wanneer we een SecureString
wachtwoord doorgeven, moeten we dit doorgeven met een -PasswordSecure
switch en niet met de normale –Password
switch. Hieronder ziet u een voorbeeld waarin de gebruiker probeert het wachtwoord in te stellen en door te Disabled
geven AdvancedBatteryChargeCfg
SecureString
:
Set-item AdvancedBatteryChargeCfg disabled –PasswordSecure $pass
Hier bevat $pass het systeem- en adminwachtwoord en is van type System.Security.SecureString
. Vergelijkbaar met de bovenstaande discussie kunnen we lezen $pass
als:
$pass = Read-Host "Enter system/admin password" –AsSecureString
We kunnen opslaan $pass
in een bestand, indien nodig, zoals:
$pass| ConvertFrom-SecureString | Out-File "C:\Scripts\AdminPassword.txt
Dell Command | Powershell Provider
11 Sep 2023
7
Solution