希望使用PowerShell提取信息

时间:2013-08-20 16:27:26

标签: windows powershell file-io distinguishedname

我需要使用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

3 个答案:

答案 0 :(得分:0)

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

Get-Content c:\scripts\mygroups.txt | Foreach {Get-ADGroup $_} | 
    Select DistinguishedName

答案 1 :(得分:0)

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

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

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

答案 2 :(得分:0)

将文件内容传递给Get-ADGroup cmdlet并展开每个输出对象的DistinguishedName:

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