ここでは、コードです:PowerShellのスクリプト再帰エラー
import-module ActiveDirectory
function Reset-Passwords{
#Imports csv containing user details. The column names indicate the property type of the values in each row.
$users = import-CSV -path "C:\Users\administrator\Desktop\Powershell\Scripts\NQSMoves\NQS\NQSDetails.csv"
$SamAccountNames = $Users | select sAMAccountName
$password = Convertto-SecureString -string "228Hamilton" -asPlainText -force
foreach($SamAccountName in $SamAccountName){
set-adAccountPassword -identity $SamAccountName -reset -newPassword $password
}
}
Reset-Passwords
実行すると、それはエラー出力:何私から
The script failed due to call depth overflow. The call depth reached 1001 and the maximum is 1000.
は、集まった、これは再帰エラーです。
しかし、foreachループは26回だけ実行する必要があるので、26 '$ samAccountName'変数がありますか? csvファイル自体は26行しか持たないので、foreachループを制限する必要があります。
これは大きなAD管理スクリプトの一部であり、問題を提起している唯一の部分です。
ご協力いただければ幸いです。
を支援持っている問題は、これは正しいコードされている修正プログラムでしょう
、それは foreachの($ SamAccountNamesで$ SAMアカウント) – superblygeneralobject
すべきではありませんあなたの反復のリストは、それがあなたが思うものではありません。それが問題に寄与している可能性があります。 –
プラスコード内に再帰がありません – superblygeneralobject