0

我需要使用 powershell cmdlet 和 txt 文件来提取信息。

TXT 文件包含组列表

我想首先将脚本提供给 powershell ......非常简单:

get-content c:\scripts\mygroups.txt

然后我想针对它运行一个 Foreach-object cmdlet 并只提取可分辨名称

问题是我一直运行到-Filter命令,我不应该需要过滤器命令,因为名称完全是从 AD 中提取的。

Foreach-Object {Get-ADGroup -Filter "*" | select DistinguishedName}工作,但我不想要我想要用于get-content命令的变量的所有组。我觉得我在-Filter选择我想要显示的字段之间缺少某种类型的链接。请帮我把两者联系起来。谢谢!

这是我得到的错误...... Cannot convert 'System.Object[]' to the type 'Microsoft.ActiveDirectory.Management.ADGroup

4

3 回答 3

0

您实际上可以取出 Keith 代码的“Foreach”部分,让管道为您执行循环:

Get-Content c:\scripts\mygroups.txt | Get-ADGroup | Select DistinguishedName

这仍然假设文本文件包含组名(“Name”属性),每行只有一个组名。

于 2013-08-20T18:37:54.407 回答
0

将文件内容通过管道传输到Get-ADGroupcmdlet 并展开每个输出对象的 DistinguishedName:

Get-Content c:\scripts\mygroups.txt | 
Get-ADGroup | 
Select-Object -ExpandProperty DistinguishedName
于 2013-08-21T07:02:43.250 回答
0

假设每个组名都在文件中的一行上并且没有空行,试试这个:

Get-Content c:\scripts\mygroups.txt | Foreach {Get-ADGroup $_} | 
    Select DistinguishedName
于 2013-08-20T18:04:25.647 回答