我目前有一个 PS 脚本,用于修复混合 O365/On-prem AD 环境中被泄露的用户帐户。该脚本目前按预期运行,可启用 MFA、日志记录、重置密码、删除邮箱规则等。
有时我们必须修复的不仅仅是几个帐户。话虽如此,我还是尝试设置脚本,逐行浏览带有标题的 CSV 文件,以提取用户 UPN 名称,并对 csv 中的每个 UPN 名称执行脚本。
目前,脚本无法同时为每个函数获取和运行多个输入,因此脚本需要重新运行。此外,脚本每次运行时都会提取 cmdlet 等,如果能够通过保持初始会话打开来加快脚本速度,那就更好了。
理想情况下,结果是脚本继续运行而不需要我输入另一个 UPN。
答案1
使用后,import-csv
您可以用 循环遍历每个项目foreach
。
$myCSV = import-csv $theCSVfile
foreach($row in $myCSV){
myPSscript($row.UPNname)
}
或者使用 PS 脚本中的新数据更新 $row.UPNname 字段:
$myCSV = import-csv $theCSVfile
foreach($row in $myCSV){
$newUPNname = myPSscript($row.UPNname)
$row.UPNname = $newUPNname
}
export-csv $myCSV
如果您要处理的不仅仅是 UPNname,那么您将需要传递这些字段或整个记录($row)的数据。
$myCSV = import-csv $theCSVfile
$mynewCSV = @()
foreach($row in $myCSV){
$newRow = myPSscript($row)
$mynewCSV += $newRow
}
export-csv $mynewCSV