我尋求幫助以弄清楚如何捕獲新的動態變數并將它們添加到陣列中。
下面是創建變數的示例代碼。
foreach ($user in $users) {
New-Variable -Name "$($user)_pwString" -Value ([System.Web.Security.Membership]::GeneratePassword(10,4)) -Force
}
這將創建幾個變數,如下所示:
$Guest01_pwString
$Guest02_pwString
$Guest03_pwString
如何捕獲它創建的每個變數并將它們添加到陣列中。
我認為會起作用的:
$secureStrings = @()
foreach ($user in $users) {
$secureStrings = (New-Variable -Name "$($user)_pwString" -Value ([System.Web.Security.Membership]::GeneratePassword(10,4)) -Force)
}
uj5u.com熱心網友回復:
您需要-PassThru開關才能將新創建的變數物件傳遞到輸出流,并且可以使用該物件的.Value屬性來訪問變數的值:
$secureStrings = @()
foreach ($user in $users) {
$secureStrings = (New-Variable -PassThru -Name "$($user)_pwString" -Value ([System.Web.Security.Membership]::GeneratePassword(10,4)) -Force).Value
}
您可以按如下方式簡化命令:
[array] $secureStrings =
foreach ($user in $users) {
(Set-Variable -PassThru -Name "${user}_pwString" -Value ([System.Web.Security.Membership]::GeneratePassword(10, 4))).Value
}
退后一步:考慮使用(有序)哈希表,而不是創建單個變數:
$secureStrings = [ordered] @{}
foreach ($user in $users) {
$secureStrings[$user] = [System.Web.Security.Membership]::GeneratePassword(10, 4)
}
然后,您可以使用$secureStrings.Values僅提取密碼。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/418562.html
標籤:
上一篇:#if的前處理器編譯指示優先級
