Zeit in einem fremden Fehler mit einer Funktion Powershell ausgeführtPowershell-Skript Rekursionsfehlers
Hier ist der Code:
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
Sobald er ausgeführt wird, den Fehler ausgibt:
The script failed due to call depth overflow. The call depth reached 1001 and the maximum is 1000.
Von dem, was ich habe zusammengetragen, das ist ein Rekursionsfehler.
Allerdings gibt es nur 26 '$ samAccountName' Variablen, so dass die foreach-Schleife nur 26 mal laufen sollte? Die CSV-Datei selbst hat nur 26 Zeilen, so dass dies die foreach-Schleife begrenzen sollte.
Dies ist nur ein Teil eines größeren AD-Verwaltungsskript und es ist der einzige Teil, der Probleme gibt.
Jede Hilfe würde sehr geschätzt werden.
Ist dies der richtige Code, sollte es foreach ($ SamAccountName in $ SamAccountNames) – superblygeneralobject
Die nicht Listen Sie Ihre Iteration über ist nicht, was Sie denken, dass es ist. Das könnte zu dem Problem beitragen. –
Außerdem sehe ich keine Rekursion im Code – superblygeneralobject