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