我怎樣才能提高并行的閾值。
我做了一些研究,它使用這些語法來增加,但不確定如何在我的代碼中實作。
ForEach-Object -throttleLimit5 -parallel
我的代碼:
foreach ($User in Import-Csv -Delimiter " ," $importCSV) {
$Displayname = $User.DisplayName
$UserPrincipalName = $User.UserPrincipalName
$MailNickname = $User.MailNickname
$password = $User.Password
$SecureStringPassword = ConvertTo-SecureString -String $password -AsPlainText -Force
New-AzADUser -DisplayName $Displayname -UserPrincipalName $UserPrincipalName - 密碼 $SecureStringPassword -MailNickname $MailNickname -ForceChangePasswordNextLogin: $false | Select-Object -ExpandProperty UserPrincipalName
}
uj5u.com熱心網友回復:
看一下這個例子,顯示了如何將foreach陳述句改寫為使用Foreach-Object -Parallel
foreach ($number in 1..10) {
$number。
Start-Sleep -Milliseconds250。
}
1..10 | ForEach-Object -Parallel {
$_ -并行 {
Start-Sleep -Milliseconds 250
}
# $_代表每個被處理的物件
# $_與foreach例子中的$number同義。
# Note:當沒有指定`-ThrottleLimit`時,默認為5。
你的foreach在轉換后會是這樣的
Import-Csv -Delimiter ',' $importCSV|
ForEach-Object -Parallel {
$Displayname = $_.DisplayName
$UserPrincipalName = $_.UserPrincipalName
$MailNickname = $_.MailNickname
$password = $_.Password
$SecureStringPassword = ConvertTo-SecureString -String $password -AsPlainText -Force
New-AzADUser -DisplayName $Displayname -UserPrincipalName $UserPrincipalName - 密碼 $SecureStringPassword -MailNickname $MailNickname -ForceChangePasswordNextLogin: $false | Select-Object -ExpandProperty UserPrincipalName
}
通過為引數創建一個哈希表并利用splatting,可以對這一點進行清理。
Import-Csv -Delimiter ',' $importCSV|
ForEach-Object -Parallel {
$params = @{
Displayname = $_.DisplayName
UserPrincipalName = $_.UserPrincipalName
MailNickname = $_.MailNickname
密碼 = ConvertTo-SecureString -String($_.Password) -AsPlainText -Force
ForceChangePasswordNextLogin = $false。
}
New-AzADUser @params | Select-Object -ExpandProperty UserPrincipalName
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/332622.html
標籤:
