ConvertTo-SecureString
Konvertiert Nur-Text- oder verschlüsselte Zeichenfolgen in sichere Zeichenfolgen.
Syntax
ConvertTo-SecureString
[-String] <String>
[[-SecureKey] <SecureString>]
[<CommonParameters>]
ConvertTo-SecureString
[-String] <String>
[-AsPlainText]
[-Force]
[<CommonParameters>]
ConvertTo-SecureString
[-String] <String>
[-Key <Byte[]>]
[<CommonParameters>]
Beschreibung
Das ConvertTo-SecureString
Cmdlet konvertiert verschlüsselte Standardzeichenfolgen in sichere Zeichenfolgen. Es kann auch einfachen Text in sichere Zeichenfolgen konvertieren. Es wird mit ConvertFrom-SecureString
und Read-Host
verwendet . Die vom Cmdlet erstellte sichere Zeichenfolge kann mit Cmdlets oder Funktionen verwendet werden, die einen Parameter vom Typ SecureString erfordern. Die sichere Zeichenfolge kann mithilfe des ConvertFrom-SecureString
Cmdlets wieder in eine verschlüsselte Standardzeichenfolge konvertiert werden. So kann sie für die spätere Verwendung in einer Datei gespeichert werden.
Wenn die konvertierte Standardzeichenfolge mit ConvertFrom-SecureString
einem angegebenen Schlüssel verschlüsselt wurde, muss dieser Schlüssel als Wert des Schlüssel - oder SecureKey-Parameters des ConvertTo-SecureString
Cmdlets bereitgestellt werden.
Hinweis
Beachten Sie, dass der Inhalt einer SecureString pro DotNet nicht auf Windows-Systemen verschlüsselt ist.
Beispiele
Beispiel 1: Konvertieren einer sicheren Zeichenfolge in eine verschlüsselte Zeichenfolge
In diesem Beispiel wird veranschaulicht, wie eine sichere Zeichenfolge aus der Benutzereingabe erstellt, die sichere Zeichenfolge in eine verschlüsselte Standardzeichenfolge konvertiert und dann die verschlüsselte Standardzeichenfolge wieder in eine sichere Zeichenfolge konvertiert wird.
PS C:\> $Secure = Read-Host -AsSecureString
PS C:\> $Secure
System.Security.SecureString
PS C:\> $Encrypted = ConvertFrom-SecureString -SecureString $Secure
PS C:\> $Encrypted
01000000d08c9ddf0115d1118c7a00c04fc297eb010000001a114d45b8dd3f4aa11ad7c0abdae98000000000
02000000000003660000a8000000100000005df63cea84bfb7d70bd6842e7efa79820000000004800000a000
000010000000f10cd0f4a99a8d5814d94e0687d7430b100000008bf11f1960158405b2779613e9352c6d1400
0000e6b7bf46a9d485ff211b9b2a2df3bd6eb67aae41
PS C:\> $Secure2 = ConvertTo-SecureString -String $Encrypted
PS C:\> $Secure2
System.Security.SecureString
Der erste Befehl verwendet den AsSecureString-Parameter des Read-Host
Cmdlets, um eine sichere Zeichenfolge zu erstellen. Nachdem Sie den Befehl eingegeben haben, werden alle eingegebenen Zeichen in eine sichere Zeichenfolge konvertiert und dann in der $Secure
Variablen gespeichert.
Der zweite Befehl zeigt den Inhalt der $Secure
Variablen an. Da die $Secure
Variable eine sichere Zeichenfolge enthält, zeigt PowerShell nur den System.Security.SecureString-Typ an.
Der dritte Befehl verwendet das ConvertFrom-SecureString
Cmdlet, um die sichere Zeichenfolge in der $Secure
Variablen in eine verschlüsselte Standardzeichenfolge zu konvertieren. Das Ergebnis wird in der $Encrypted
Variablen gespeichert.
Der vierte Befehl zeigt die verschlüsselte Zeichenfolge im Wert der $Encrypted
Variablen an.
Der fünfte Befehl verwendet das ConvertTo-SecureString
Cmdlet, um die verschlüsselte Standardzeichenfolge in der $Encrypted
Variablen wieder in eine sichere Zeichenfolge zu konvertieren. Das Ergebnis wird in der $Secure2
Variablen gespeichert.
Der sechste Befehl zeigt den Wert der $Secure2
Variablen an. Der SecureString-Typ gibt an, dass der Befehl erfolgreich ausgeführt wurde.
Beispiel 2: Erstellen einer sicheren Zeichenfolge aus einer verschlüsselten Zeichenfolge in einer Datei
Dieses Beispiel zeigt, wie eine sichere Zeichenfolge aus einer verschlüsselten, in einer Datei gespeicherten Standardzeichenfolge erstellt wird.
$Secure = Read-Host -AsSecureString
$Encrypted = ConvertFrom-SecureString -SecureString $Secure -Key (1..16)
$Encrypted | Set-Content Encrypted.txt
$Secure2 = Get-Content Encrypted.txt | ConvertTo-SecureString -Key (1..16)
Der erste Befehl verwendet den AsSecureString-Parameter des Read-Host
Cmdlets, um eine sichere Zeichenfolge zu erstellen. Nachdem Sie den Befehl eingegeben haben, werden alle eingegebenen Zeichen in eine sichere Zeichenfolge konvertiert und dann in der $Secure
Variablen gespeichert.
Der zweite Befehl verwendet das ConvertFrom-SecureString
Cmdlet, um die sichere Zeichenfolge in der $Secure
Variablen mithilfe des angegebenen Schlüssels in eine verschlüsselte Standardzeichenfolge zu konvertieren. Der Inhalt wird in der $Encrypted
Variablen gespeichert.
Der dritte Befehl verwendet einen Pipelineoperator (|
), um den Wert der $Encrypted
Variablen an das Set-Content
Cmdlet zu senden, wodurch der Wert in der Encrypted.txt Datei gespeichert wird.
Der vierte Befehl verwendet das Get-Content
Cmdlet, um die verschlüsselte Standardzeichenfolge in der datei Encrypted.txt abzurufen. Der Befehl verwendet einen Pipelineoperator, um die verschlüsselte Zeichenfolge an das ConvertTo-SecureString
Cmdlet zu senden, wodurch sie mithilfe des angegebenen Schlüssels in eine sichere Zeichenfolge konvertiert wird.
Die Ergebnisse werden in der $Secure2
Variablen gespeichert.
Beispiel 3: Konvertieren einer Nur-Text-Zeichenfolge in eine sichere Zeichenfolge
Mit diesem Befehl wird die Nur-Text-Zeichenfolge in eine sichere Zeichenfolge P@ssW0rD!
konvertiert und das Ergebnis in der $Secure_String_Pwd
Variablen gespeichert.
Ab PowerShell 7 ist der Force-Parameter bei Verwendung des AsPlainText-Parameters nicht erforderlich. Das Einschließen des Force-Parameters stellt jedoch sicher, dass die Anweisung mit früheren Versionen kompatibel ist.
$Secure_String_Pwd = ConvertTo-SecureString "P@ssW0rD!" -AsPlainText -Force
Achtung
Vermeiden Sie die Verwendung von Nur-Text-Zeichenfolgen im Skript oder an der Befehlszeile. Der Nur-Text kann in Ereignisprotokollen und Befehlsverlaufsprotokollen angezeigt werden.
Parameter
-AsPlainText
Gibt eine Nur-Text-Zeichenfolge an, die in eine sichere Zeichenfolge konvertiert werden soll. Cmdlets für sichere Zeichenfolgen tragen zum Schutz von vertraulichem Text bei. Der Text wird zu Datenschutzzwecken verschlüsselt und nach der Verwendung aus dem Computerspeicher gelöscht. Wenn Sie diesen Parameter für einfachen Text als Eingabe verwenden, kann nicht das System die Eingabe nicht auf diese Weise schützen.
Type: | SwitchParameter |
Position: | 1 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Force
Ab PowerShell 7 ist der Force-Parameter bei Verwendung des AsPlainText-Parameters nicht mehr erforderlich. Obwohl der Parameter nicht verwendet wird, wurde er nicht entfernt, um Kompatibilität mit früheren Versionen von PowerShell bereitzustellen.
Type: | SwitchParameter |
Position: | 2 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Key
Gibt den Verschlüsselungsschlüssel an, der zum Konvertieren der ursprünglichen sicheren Zeichenfolge in die verschlüsselte Standardzeichenfolge verwendet wird. Gültige Schlüssellängen sind 16, 24 und 32 Byte.
Type: | Byte[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SecureKey
Gibt den Verschlüsselungsschlüssel an, der zum Konvertieren der ursprünglichen sicheren Zeichenfolge in die verschlüsselte Standardzeichenfolge verwendet wird. Der Schlüssel muss im Format einer sicheren Zeichenfolge bereitgestellt werden. Die sichere Zeichenfolge wird in ein Bytearray konvertiert, das als Schlüssel verwendet werden soll. Gültige Längen für sichere Schlüssel sind 8, 12 und 16 Codepunkte.
Type: | SecureString |
Position: | 1 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-String
Gibt die Zeichenfolge an, die in eine sichere Zeichenfolge konvertiert werden soll.
Type: | String |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
Eingaben
Sie können eine verschlüsselte Standardzeichenfolge an dieses Cmdlet weiterleiten.
Ausgaben
Dieses Cmdlet gibt das erstellte SecureString-Objekt zurück.
Hinweise
Einige Zeichen, z. B. Emoticons, entsprechen mehreren Codepunkten in der Zeichenfolge, die sie enthält. Vermeiden Sie die Verwendung dieser Zeichen, da sie probleme und Missverständnisse verursachen können, wenn sie in einem Kennwort verwendet werden.
Ähnliche Themen
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für