【发布时间】:2025-12-05 09:20:04
【问题描述】:
我只是从几个月开始学习 powershell,并且我被要求编写一个超出我实际知识范围的脚本。 当我必须从 ONE AD 组中提取用户时,我有一个可以完美运行的脚本。我的问题是这个脚本只接受一个参数,本周我被要求提取超过 1000 个组......)
.\myscript.ps1 广告组
我想做什么: 1. 我在 CSV 中得到一个提取,所以我想将所有这些组的参数输入到我的脚本中 2. 我想生成结果的文件文本,但我不确定在这种情况下哪种方法最好。
这是我的代码
$grouplist=IMPORT-CSV C:\Myfile\Mytest\liste.csv
foreach ($group in $grouplist) {
Invoke-Expression .\membre_group_AD_V2.ps1 $group
}
我的 CSV 测试只是分组来运行我的测试,我在每个组上都得到了同样的错误
Invoke-Expression : Impossible de trouver un paramètre positionnel acceptant l'argument « @{grouplist=Administrators} ».
Au caractère C:\myfile\Mytest\script\dev\bouclage_membre_group_AD_V2.ps1:36 : 2
+ Invoke-Expression .\membre_group_AD_V2.ps1 $group
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument : (:) [Invoke-Expression], ParameterBindingException + FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.InvokeExpressionCommand
如果需要,我可以尝试翻译此错误。如果您能帮助提高我的知识,那就太好了!感谢您抽出宝贵时间阅读本文。
【问题讨论】:
-
为什么要使用
Invoke-Expression而不是只运行带参数的脚本? -
因为我认为这是运行我的脚本的正确方式。我刚刚测试没有invoke-expression它提示另一个错误,它似乎试图比较我的组(可能是我对消息的理解是错误的)
-
如果您向我们展示一个示例 csv 文件可能会有所帮助,其中只有几条记录。
-
我删除了我的回复。这没有帮助。
-
Matt 向我展示了可以从您收到的错误消息中确定 CSV 文件的结构,因此没有必要发布我要求的示例 CSV。
标签: powershell csv active-directory