適用于PowerShell 3.0或者更高版本,
盡管我們并不推薦將密碼硬編碼在腳本文件中,但是仍舊有一些場景非如此不可。與將密碼以一種純文本的方式硬編碼相比,我們還可以稍微花點心思,把密碼混淆一下。雖然混淆密碼是一種非常低級的保護方式,但是對于不懂PowerShell的人來講,還是比較神秘的。
接下來的腳本會向用戶詢問用戶名和密碼,然后刪除通過混淆腳本進行處理,產生用戶憑據對象。
當你運行了下面的腳本以后,用戶憑據已經被保存在$cred。接下來你幾乎可以在任何帶有–Credential參數的命令中使用它了。
代碼如下:
$cred = Get-Credential -Message 'Enter Domain/Username and Password'
$pwd = $cred.Password
$user = $cred.UserName
$key = 1..32 | ForEach-Object { Get-Random -Maximum 256 }
$pwdencrypted = $pwd | ConvertFrom-SecureString -Key $key
$private:ofs = ' '
$generatedScript = @()
$generatedScript += '$password = ''{0}''' -f $pwdencrypted
$generatedScript += '$key = ''{0}''' -f "$key "
$generatedScript += '$passwordSecure = ConvertTo-SecureString -String $password -Key ([Byte[]]$key.Split('' ''))'
$generatedScript += '$cred = New-Object system.Management.Automation.PSCredential(''{0}'', $passwordSecure)' -f $user
$generatedScript += '$cred'
$file = $psise.CurrentPowerShellTab.Files.Add()
$file.Editor.Text = $generatedScript | Out-String
$file.Editor.SetCaretPosition(1,1)
產生的密碼可能像這樣:
代碼如下:
$password = '76492d1116743f0423413b16050a5345MgB8AHMAUQA3AFAAVwB0AGkAUQBUAC8AdwBqADYAUABVAFYAUwB4AEYAYgB4AFEAPQA9AHwAZgA0ADgAOQA4AGYANwA0AGEAMAA0ADUANwA5ADkAMwA5ADkAMwA1ADUANQA0AGYANwA5AGQANwBkAGYAOQBmAGEAYQA3ADMAYgBkADIAOQA3AGMAYQBmADUAMgA3ADEANwA3AGEAYgBmADAAYgA1AGYAYwAyADYAYgAzADkAOAA='
$key = '187 98 34 82 148 52 13 86 246 2 130 197 217 97 147 98 75 197 149 246 74 35 27 7 211 15 131 93 182 231 171 3'
$passwordSecure = ConvertTo-SecureString -String $password -Key ([Byte[]]$key.Split(' '))
$cred = New-Object system.Management.Automation.PSCredential('mickey/mouse', $passwordSecure)
$cred
新聞熱點
疑難解答