PowerShell中實(shí)現(xiàn)混淆密碼示例
適用于PowerShell 3.0或者更高版本,
盡管我們并不推薦將密碼硬編碼在腳本文件中,但是仍舊有一些場景非如此不可。與將密碼以一種純文本的方式硬編碼相比,我們還可以稍微花點(diǎn)心思,把密碼混淆一下。雖然混淆密碼是一種非常低級的保護(hù)方式,但是對于不懂PowerShell的人來講,還是比較神秘的。
接下來的腳本會(huì)向用戶詢問用戶名和密碼,然后刪除通過混淆腳本進(jìn)行處理,產(chǎn)生用戶憑據(jù)對象。
當(dāng)你運(yùn)行了下面的腳本以后,用戶憑據(jù)已經(jīng)被保存在$cred。接下來你幾乎可以在任何帶有–Credential參數(shù)的命令中使用它了。
$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)
產(chǎn)生的密碼可能像這樣:
$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
相關(guān)文章
腳本實(shí)現(xiàn)SSL證書到期監(jiān)控示例
這篇文章主要介紹了腳本實(shí)現(xiàn)SSL證書到期監(jiān)控示例,感興趣的朋友可以試著實(shí)現(xiàn),希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2022-03-03Windows Powershell調(diào)用靜態(tài)方法
Powershell將信息存儲(chǔ)在對象中,每個(gè)對象都會(huì)有一個(gè)具體的類型,簡單的文本會(huì)以System.String類型存儲(chǔ),日期會(huì)以System.DateTime類型存儲(chǔ)。任何.NET對象都可以通過GetType()方法返回它的類型,該類型中有一個(gè)FullName屬性,可以查看類型的完整名稱。2014-09-09PowerShell函數(shù)中使用必選參數(shù)實(shí)例
這篇文章主要介紹了PowerShell函數(shù)中使用必選參數(shù)實(shí)例,即把一個(gè)參數(shù)設(shè)置為必選參數(shù)的方法,需要的朋友可以參考下2014-07-07使用 powershell 創(chuàng)建虛擬機(jī)
Azure PowerShell 模塊用于從 PowerShell 命令行或腳本創(chuàng)建和管理 Azure 資源。 本指南詳細(xì)介紹了如何使用 Azure PowerShell 模塊創(chuàng)建虛擬機(jī)。2017-10-10PowerShell獲取Windows用戶列表、用戶信息的方法
這篇文章主要介紹了PowerShell獲取Windows用戶列表、用戶信息的方法,一個(gè)簡單的入門例子,需要的朋友可以參考下2014-08-08Powershell小技巧之使用Jint引擎在PowerShell中執(zhí)行Javascript函數(shù)
這里演示如何利用PowerShell將一段Javascript函數(shù)字符串交給Jint引擎去執(zhí)行。方法很簡單,希望對大家有所幫助2014-09-09Windows Powershell強(qiáng)類型數(shù)組
強(qiáng)類型數(shù)組可以理解為強(qiáng)制數(shù)據(jù)類型的數(shù)組,也就是一個(gè)數(shù)組里只包含一種數(shù)據(jù)類型,強(qiáng)制轉(zhuǎn)換數(shù)組語法的優(yōu)勢就是如果使用分號代替逗號分隔值,PowerShell將每個(gè)值看作命令文本,PowerShell會(huì)執(zhí)行它并且存儲(chǔ)結(jié)果。2014-09-09