ConvertTo-SecureString
Converteert tekst zonder opmaak of versleutelde tekenreeksen naar beveiligde tekenreeksen.
Syntax
ConvertTo-SecureString
[-String] <String>
[[-SecureKey] <SecureString>]
[<CommonParameters>]
ConvertTo-SecureString
[-String] <String>
[-AsPlainText]
[-Force]
[<CommonParameters>]
ConvertTo-SecureString
[-String] <String>
[-Key <Byte[]>]
[<CommonParameters>]
Description
De ConvertTo-SecureString
cmdlet converteert versleutelde standaardtekenreeksen naar beveiligde tekenreeksen. U kunt ook tekst zonder opmaak converteren naar beveiligde tekenreeksen. Het wordt gebruikt met ConvertFrom-SecureString
en Read-Host
. De beveiligde tekenreeks die door de cmdlet is gemaakt, kan worden gebruikt met cmdlets of functies waarvoor een parameter van het type SecureString is vereist. De beveiligde tekenreeks kan worden geconverteerd naar een versleutelde, standaardtekenreeks met behulp van de ConvertFrom-SecureString
cmdlet. Hierdoor kan het worden opgeslagen in een bestand voor later gebruik.
Als de standaardtekenreeks die wordt geconverteerd, is versleuteld met ConvertFrom-SecureString
behulp van een opgegeven sleutel, moet diezelfde sleutel worden opgegeven als de waarde van de parameter Key of SecureKey van de ConvertTo-SecureString
cmdlet.
Notitie
Houd er rekening mee dat de inhoud van een SecureString per DotNet niet is versleuteld op niet-Windows-systemen.
Voorbeelden
Voorbeeld 1: Een beveiligde tekenreeks converteren naar een versleutelde tekenreeks
In dit voorbeeld ziet u hoe u een beveiligde tekenreeks maakt op basis van gebruikersinvoer, de beveiligde tekenreeks converteert naar een versleutelde standaardtekenreeks en vervolgens de versleutelde standaardtekenreeks weer converteert naar een beveiligde tekenreeks.
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
De eerste opdracht maakt gebruik van de parameter AsSecureString van de Read-Host
cmdlet om een beveiligde tekenreeks te maken. Nadat u de opdracht hebt ingevoerd, worden alle tekens die u typt geconverteerd naar een beveiligde tekenreeks en vervolgens opgeslagen in de $Secure
variabele.
Met de tweede opdracht wordt de inhoud van de $Secure
variabele weergegeven. Omdat de $Secure
variabele een beveiligde tekenreeks bevat, geeft PowerShell alleen het type System.Security.SecureString weer.
De derde opdracht gebruikt de ConvertFrom-SecureString
cmdlet om de beveiligde tekenreeks in de $Secure
variabele te converteren naar een versleutelde standaardtekenreeks. Het resultaat wordt opgeslagen in de $Encrypted
variabele.
Met de vierde opdracht wordt de versleutelde tekenreeks weergegeven in de waarde van de $Encrypted
variabele.
De vijfde opdracht gebruikt de ConvertTo-SecureString
cmdlet om de versleutelde standaardtekenreeks in de $Encrypted
variabele weer te converteren naar een beveiligde tekenreeks. Het resultaat wordt opgeslagen in de $Secure2
variabele.
Met de zesde opdracht wordt de waarde van de $Secure2
variabele weergegeven. Het type SecureString geeft aan dat de opdracht is geslaagd.
Voorbeeld 2: Een beveiligde tekenreeks maken op basis van een versleutelde tekenreeks in een bestand
In dit voorbeeld ziet u hoe u een beveiligde tekenreeks maakt op basis van een versleutelde standaardtekenreeks die is opgeslagen in een bestand.
$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)
De eerste opdracht maakt gebruik van de parameter AsSecureString van de Read-Host
cmdlet om een beveiligde tekenreeks te maken. Nadat u de opdracht hebt ingevoerd, worden alle tekens die u typt geconverteerd naar een beveiligde tekenreeks en vervolgens opgeslagen in de $Secure
variabele.
De tweede opdracht gebruikt de cmdlet om de ConvertFrom-SecureString
beveiligde tekenreeks in de $Secure
variabele te converteren naar een versleutelde standaardtekenreeks met behulp van de opgegeven sleutel. De inhoud wordt opgeslagen in de $Encrypted
variabele.
De derde opdracht maakt gebruik van een pijplijnoperator (|
) om de waarde van de $Encrypted
variabele naar de Set-Content
cmdlet te verzenden, waardoor de waarde in het Encrypted.txt bestand wordt opgeslagen.
De vierde opdracht gebruikt de Get-Content
cmdlet om de versleutelde standaardtekenreeks op te halen in het Encrypted.txt-bestand. De opdracht maakt gebruik van een pijplijnoperator om de versleutelde tekenreeks naar de ConvertTo-SecureString
cmdlet te verzenden, die deze converteert naar een beveiligde tekenreeks met behulp van de opgegeven sleutel.
De resultaten worden opgeslagen in de $Secure2
variabele.
Voorbeeld 3: Een tekenreeks zonder opmaak converteren naar een beveiligde tekenreeks
Met deze opdracht wordt de tekenreeks zonder opmaak geconverteerd naar een beveiligde tekenreeks P@ssW0rD!
en wordt het resultaat opgeslagen in de $Secure_String_Pwd
variabele.
Vanaf PowerShell 7 is de parameter Force niet vereist wanneer u de parameter AsPlainText gebruikt. Als u echter de parameter Force opgeeft, zorgt u ervoor dat de instructie compatibel is met eerdere versies.
$Secure_String_Pwd = ConvertTo-SecureString "P@ssW0rD!" -AsPlainText -Force
Let op
Vermijd het gebruik van tekenreeksen zonder opmaak in een script of vanaf de opdrachtregel. De tekst zonder opmaak kan worden weergegeven in gebeurtenislogboeken en opdrachtgeschiedenislogboeken.
Parameters
-AsPlainText
Hiermee geeft u een tekenreeks zonder opmaak op die moet worden geconverteerd naar een beveiligde tekenreeks. De cmdlets voor beveiligde tekenreeksen helpen vertrouwelijke tekst te beveiligen. De tekst is versleuteld voor privacy en wordt verwijderd uit het computergeheugen nadat deze is gebruikt. Als u deze parameter gebruikt om tekst zonder opmaak als invoer op te geven, kan het systeem deze invoer niet op deze manier beveiligen.
Type: | SwitchParameter |
Position: | 1 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Force
Vanaf PowerShell 7 is de parameter Force niet meer vereist wanneer u de parameter AsPlainText gebruikt. Hoewel de parameter niet wordt gebruikt, is deze niet verwijderd om compatibiliteit met eerdere versies van PowerShell te bieden.
Type: | SwitchParameter |
Position: | 2 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Key
Hiermee geeft u de versleutelingssleutel op die wordt gebruikt om de oorspronkelijke beveiligde tekenreeks te converteren naar de versleutelde standaardtekenreeks. Geldige sleutellengten zijn 16, 24 en 32 bytes.
Type: | Byte[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SecureKey
Hiermee geeft u de versleutelingssleutel op die wordt gebruikt om de oorspronkelijke beveiligde tekenreeks te converteren naar de versleutelde standaardtekenreeks. De sleutel moet worden opgegeven in de indeling van een beveiligde tekenreeks. De beveiligde tekenreeks wordt geconverteerd naar een bytematrix die als sleutel moet worden gebruikt. Geldige veilige sleutellengten zijn 8, 12 en 16 codepunten.
Type: | SecureString |
Position: | 1 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-String
Hiermee geeft u de tekenreeks die moet worden geconverteerd naar een beveiligde tekenreeks.
Type: | String |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
Invoerwaarden
U kunt een standaard versleutelde tekenreeks doorsluisen naar deze cmdlet.
Uitvoerwaarden
Met deze cmdlet wordt het gemaakte SecureString-object geretourneerd.
Notities
Sommige tekens, zoals emoticons, komen overeen met verschillende codepunten in de tekenreeks die ze bevat. Vermijd het gebruik van deze tekens omdat ze problemen en misverstanden kunnen veroorzaken bij gebruik in een wachtwoord.