Das Konzept hinter sicheren Passwörtern ist, dass wir in Produktionsskripten wichtige Passwörter nicht als Klartext übergeben sollten. Das ist ein gravierender Mangel an Sicherheit. Mit PowerShell können wir also ein Kennwort sichern oder zumindest die Sichtbarkeit von Kennwörtern reduzieren. Zunächst werden allgemeine Aspekte der sicheren Zeichenfolge erörtert und dann, wie Dell Command PowerShell Provider (DCPP) die integrierte Funktion von PowerShell zum Sichern von Kennwörtern nutzt.
Beachten Sie, dass wir den Nutzernamen und das Kennwort des Nutzers an der Konsole lesen möchten. Wir wissen, dass der Benutzername in der Regel keine Sicherheit erfordert und für alle sichtbar sein kann. Aber beim Passwort sollten wir Fremde nicht über das Passwort des Benutzers informieren. Wir können diese Anforderung mit den folgenden Befehlen erleichtern:
$user = Read-Host "Enter Username" $pass = Read-Host "Enter Password" -AsSecureString
Das oben Gesagte ist ein Überblick darüber, wie wir die Sicherheit erhöhen können, wenn wir wichtige Informationen wie ein Passwort sichern müssen. Im obigen Beispiel ist die Variable $pass vom Typ System.Security.SecureString
. Wir erhalten eine Einführung in zwei weitere häufig verwendete Cmdlets, die PowerShell bereitstellt, um sichere Felder zu vereinfachen, bevor wir auf Aspekte von DCPP eingehen.
Die beiden Befehle sind ConvertTo-SecureString
und ConvertFrom-SecureString
. ConvertTo-SecureString
Konvertiert einen reinen Text in Text System.Security.SecureString
. Ein Beispiel ist im folgenden dargestellt:
"P@ssword1" | ConvertTo-SecureString -AsPlainText -Force
Im obigen Beispiel ist der Nur-Text P@assword1
wird in Typ konvertiert System.Security.SecureString
. Dies ist eher eine Information und kann weit verbreitet sein oder auch nicht.
Das nächste Cmdlet ConvertFrom-SecureString
ist ein weiter verbreitetes Cmdlet, das verwendet wird, um sichere Zeichenfolgen in verschlüsselte Standardzeichenfolgen zu konvertieren. Die Haupteinschränkung der ConvertTo-SecureString
ist, dass seine Ausgabe nicht direkt in eine Datei für die zukünftige Verwendung geschrieben werden kann. Wir müssen ConvertFrom-SecureString
die konvertiert System.Security.SecureString
in einen verschlüsselten Standardstring, der bequem in einer Datei gespeichert werden kann, um diese Einschränkung zu überwinden.
Wir konvertieren reinen Text P@ssword1
um die Schnur zu sichern und dann ihre Ausgabe an ConvertFrom-SecureString
, um eine verschlüsselte Zeichenfolge zu erhalten, die sicher und bequem in einer Datei gespeichert werden kann.
Nehmen wir als Beispiel an, dass auf einem Computer das Admin-Passwort festgelegt wurde und wir dies in einer Datei speichern müssen. Wir können dies tun, indem wir:
Read-Host "Enter Admin Password" -AsSecureString | ConvertFrom-SecureString | Out-File "C:\Scripts\AdminPassword.txt"
Wir können dieses Admin-Kennwort in eine Variable als sicheres Objekt wie folgt abrufen:
$pass = Get-Content "C:\Scripts\AdminPassword.txt" | ConvertTo-SecureString
Überlegen Sie nun, wie Sie ein sicheres Passwort für DCPP nutzen können. Wenn für den Computer des Nutzers in DCPP entweder ein System- oder ein Administratorkennwort festgelegt ist, gilt für alle set
müssen wir das entsprechende Passwort übergeben. Wenn Sie dieses Kennwort als Klartext angeben, verstößt dies gegen die Sicherheit. Wir müssen das Kennwort übergeben als System.Security.SecureString
. Wenn wir außerdem eine SecureString
Passwort müssen wir es mit einem -PasswordSecure
Schalter und nicht der normale –Password
Schalter. Unten sehen Sie ein Beispiel, in dem der Nutzer versucht, AdvancedBatteryChargeCfg
to Disabled
und im Vorbeigehen SecureString
Passwort:
Set-item AdvancedBatteryChargeCfg disabled –PasswordSecure $pass
Hier enthält $pass das System- und Administratorkennwort und ist vom Typ System.Security.SecureString
. Ähnlich wie in der obigen Diskussion können wir lesen $pass
wie:
$pass = Read-Host "Enter system/admin password" –AsSecureString
Wir können sparen $pass
in eine Datei, falls erforderlich, als:
$pass| ConvertFrom-SecureString | Out-File "C:\Scripts\AdminPassword.txt
Zugehörige Artikel: