Número del artículo: 000146459
Ikke relevant
Konceptet bag sikre adgangskoder er, at vi i produktionsscripts ikke bør overføre vigtige adgangskoder som almindeligt syn. Dette er en alvorlig mangel på sikkerhed. Så ved hjælp af PowerShell kan vi sikre en adgangskode eller i det mindste reducere synligheden af adgangskoden. Vi diskuterer først de generelle aspekter af sikkerhedsstrengen og diskuterer derefter, hvordan Dell Command PowerShell Provider (DCPP) udnytter den indbyggede funktion i PowerShell til at sikre adgangskoden.
Overvej, at vi vil læse brugernavn og adgangskode fra brugeren på konsollen. Vi er klar over, at brugernavnet generelt ikke kræver nogen sikkerhed, og det kan være synligt for alle. Men for adgangskode må vi ikke lade fremmede kende brugerens adgangskode. Vi kan lette dette krav med kommandoerne som nedenfor:
$user = Read-Host "Enter Username" $pass = Read-Host "Enter Password" -AsSecureString
Ovenstående er en oversigt over, hvordan vi kan tilføje mere sikkerhed, når vi skal sikre vigtige oplysninger som f.eks. en adgangskode. I eksemplet ovenfor er variablen $pass af typen System.Security.SecureString
. Vi får en introduktion til to andre almindeligt anvendte cmdletter, som PowerShell giver for at lette sikre felter, før vi berører aspekter af DCPP.
De to kommandoer er ConvertTo-SecureString
og ConvertFrom-SecureString
. ConvertTo-SecureString
konverterer en almindelig tekst til at skrive System.Security.SecureString
. Et eksempel er vist nedenfor:
"P@ssword1" | ConvertTo-SecureString -AsPlainText -Force
I ovenstående eksempel konverteres almindelig tekst P@assword1
til at skrive System.Security.SecureString
. Dette er flere oplysninger og bruges muligvis ikke i så høj grad.
Den næste cmdlet ConvertFrom-SecureString
er en mere udbredt cmdlet, som bruges til at konvertere sikre strenge til krypterede standardstrenge. Den primære begrænsning ConvertTo-SecureString
er, at dens output ikke kan skrives direkte til en fil til fremtidig brug. Vi er nødt til at bruge ConvertFrom-SecureString
, som konverterer System.Security.SecureString
til en krypteret standardstreng, som nemt kan gemmes i en fil, for at overvinde denne begrænsning.
Vi konverterer almindelig tekst P@ssword1
til sikker streng og videresender derefter dens output for at ConvertFrom-SecureString
få en krypteret streng, som sikkert og nemt kan gemmes i en fil.
Som et eksempel kan man på en computer se, om administratoradgangskoden er indstillet, og vi skal gemme den i en fil. Vi kan gøre dette ved hjælp af:
Read-Host "Enter Admin Password" -AsSecureString | ConvertFrom-SecureString | Out-File "C:\Scripts\AdminPassword.txt"
Vi kan hente denne administratoradgangskode tilbage til en variabel som et sikkert objekt som:
$pass = Get-Content "C:\Scripts\AdminPassword.txt" | ConvertTo-SecureString
Nu skal du overveje, hvordan du anvender en sikker adgangskode til DCPP. Hvis brugerens computer i DCPP har indstillet enten system- eller administratoradgangskoden, skal vi overføre den respektive adgangskode til alle set
kommandoer. Så det at angive denne adgangskode, da almindelig tekst bryder sikkerheden. Så vi er nødt til at overføre adgangskoden som System.Security.SecureString
. Når vi består en SecureString
adgangskode, skal vi også overføre den med en -PasswordSecure
switch og ikke den normale –Password
switch. Der vises et eksempel nedenfor, hvor brugeren forsøger at indstille AdvancedBatteryChargeCfg
til Disabled
og overføre SecureString
en adgangskode:
Set-item AdvancedBatteryChargeCfg disabled –PasswordSecure $pass
Her $pass indeholder system- og administratoradgangskoden og er af typen System.Security.SecureString
. På samme måde som ovenstående kan vi læse $pass
:
$pass = Read-Host "Enter system/admin password" –AsSecureString
Vi kan gemme $pass
i en fil, hvis det er nødvendigt, som:
$pass| ConvertFrom-SecureString | Out-File "C:\Scripts\AdminPassword.txt
Dell Command | Powershell Provider
11 sept 2023
7
Solution