Skip to main content
  • Place orders quickly and easily
  • View orders and track your shipping status
  • Create and access a list of your products
  • Manage your Dell EMC sites, products, and product-level contacts using Company Administration.

Funktionen Secure Password i Dell Command PowerShell Provider

Summary: Dell Command | (Kommando) Funktionen Secure Password för PowerShell Provider, ConvertTo-SecureString, ConvertFrom-SecureString

This article may have been automatically translated. If you have any feedback regarding its quality, please let us know using the form at the bottom of this page.

Article Content


Symptoms

Berörda produkter:

  • Dell Command | PowerShell Provider

Cause

Gäller ej

Resolution

Konceptet bakom säkra lösenord är att vi i produktionsskript inte ska skicka viktiga lösenord som vanligt. Det här är en allvarlig brist på säkerhet. Med PowerShell kan vi skydda ett lösenord eller åtminstone minska lösenordssynlighet. Vi tar först upp allmänna aspekter av en säker sträng och diskuterar sedan hur Dell Command PowerShell Provider (DCPP) använder Innate-funktionen i PowerShell för att skydda lösenord.

Tänk på att vi vill läsa användarnamn och lösenord från användaren på konsolen. Vi är medvetna om att användarnamnet i allmänhet inte kräver någon säkerhet och det kan vara synligt för alla. Men för lösenord ska vi inte meddela användarens lösenord. Vi kan underlätta detta krav med kommandona enligt nedan:

$user = Read-Host "Enter Username"

$pass = Read-Host "Enter Password" -AsSecureString

Ovanstående är en översikt över hur vi kan lägga till mer säkerhet när vi måste skydda viktig information, till exempel ett lösenord. I exemplet ovan är variabeln $pass av typ System.Security.SecureString. Vi får en introduktion till två andra cmdlets som används ofta i PowerShell för att underlätta säkra fält innan vi vidrör aspekter av DCPP.

De två kommandona är ConvertTo-SecureString och ConvertFrom-SecureString. ConvertTo-SecureString konverterar oformaterad text till typ System.Security.SecureString. Nedan visas ett exempel:

"P@ssword1" | ConvertTo-SecureString -AsPlainText -Force

I exemplet ovan konverteras oformaterad text P@assword1 till att skriva System.Security.SecureString. Det här är mer av en information och kanske inte används i stor utsträckning.

Nästa cmdlet ConvertFrom-SecureString är en mer vanlig cmdlet som används för att konvertera säkra strängar till krypterade standardsträngar. Den största begränsningen ConvertTo-SecureString är att dess utdata inte kan skrivas direkt i en fil för framtida användning. Vi måste använda ConvertFrom-SecureString dem för att omvandla dem System.Security.SecureString till en krypterad standardsträng som enkelt kan sparas i en fil för att lösa den här begränsningen.

Vi konverterar oformaterad text P@ssword1 till säker sträng och skickar sedan utdata för att ConvertFrom-SecureString få en krypterad sträng som enkelt och bekvämt kan sparas i en fil.

Vi kan till exempel säga på en dator om administratörslösenordet har ställts in och vi måste spara det i en fil. Vi kan göra detta med hjälp av:

Read-Host "Enter Admin Password" -AsSecureString |
ConvertFrom-SecureString | Out-File "C:\Scripts\AdminPassword.txt"

Vi kan hämta tillbaka det här administratörslösenordet till en variabel som ett säkert objekt som:

$pass = Get-Content "C:\Scripts\AdminPassword.txt" | ConvertTo-SecureString

Nu ska du överväga hur du använder ett säkert lösenord för DCPP. Om användarens dator har ett system- eller administratörslösenord inställt i DCPP måste vi, för alla set kommandon, skicka respektive lösenord. Det innebär att det här lösenordet är ett oformaterad text som bryter mot säkerheten. Så vi måste skicka lösenordet som System.Security.SecureString. När vi skickar ett SecureString lösenord måste vi även skicka det med en -PasswordSecure switch och inte med den vanliga –Password switchen. Nedan visas ett exempel där användaren försöker ställa in AdvancedBatteryChargeCfgDisabled och skicka SecureString lösenord:

Set-item AdvancedBatteryChargeCfg disabled –PasswordSecure $pass

Här $pass innehåller system- och administratörslösenordet och är av typ System.Security.SecureString. Liknande den ovanstående diskussionen kan vi läsa $pass som:

$pass = Read-Host "Enter system/admin password" –AsSecureString

Vi kan vid behov spara $pass till en fil som:

$pass| ConvertFrom-SecureString | Out-File "C:\Scripts\AdminPassword.txt

Additional Information

Article Properties


Affected Product

Dell Command | Powershell Provider

Last Published Date

11 Sept 2023

Version

7

Article Type

Solution