no way to compare when less than two revisions
Differences
This shows you the differences between two versions of the page.
— | windows:scripting:ps_ss [2019/10/31 09:06] (current) – created - external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== Powershell: Using Secure String in scripts ====== | ||
+ | First create a key which will be used to encrypt the plain text password | ||
+ | <code powershell Create key> | ||
+ | $Key = New-Object Byte[] 16 # You can use 16, 24, or 32 for AES | ||
+ | [Security.Cryptography.RNGCryptoServiceProvider]:: | ||
+ | $Key | out-file " | ||
+ | </ | ||
+ | Now, use the key to save encrypted password to disk | ||
+ | <code powershell Create password> | ||
+ | param ( | ||
+ | [Parameter(Mandatory=$true)][string]$Password = $( Read-Host "Input password, please" | ||
+ | ) | ||
+ | $Key = Get-Content " | ||
+ | $Password | ConvertTo-SecureString -AsPlainText -Force | ConvertFrom-SecureString -Key $key | out-file " | ||
+ | </ | ||
+ | And finally use the key to get the password from disk and create credentials with it. | ||
+ | <code powershell Convert to credential> | ||
+ | $Key = Get-Content " | ||
+ | $User = " | ||
+ | $Pass = Get-Content " | ||
+ | $MyCredential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $User, ($Pass | ConvertTo-SecureString -Key $key) | ||
+ | </ | ||
+ | Key is used so any user can decrypt the password. If no key is used, the string value produced is bount to the current users GUID |