我一直在使用以下命令来获取给定计算机名的成员资格列表:
Get-ADPrincipalGroupMembership -Identity (Get-ADComputer <MACHINENAME>)
| select-object name | Out-File C:\mydir\MemberShip.csv
成员资格标识与诸如Adobe Acrobat Pro,MS Project等机器关联的软件。有时该软件已关联但未实际安装,这就是为什么我使用查询针对另一个列表验证此信息的原因。我正在尝试运行一个查询以提取文本文件中资产列表的成员资格,并导出每台计算机的名称以及每台计算机的成员资格。也许让它显示如下内容:
NAME NAME
----------- -------------
<MACHINENAME1> ADOBE ACROBAT PRO
MS PROJECT STD
MS VISIO PRO
<MACHINENAME2> ADOBE ACROBAT PRO
ADOBE PHOTOSHOP
我尝试了以下操作,但出现了一些错误:
$computers = Get-Content .\computers.txt
Get-ADPrincipalGroupMembership ForEach ($computer in $computers)
{Get-ADComputer $computer} | select-object operatingSystem, name |
Out-Gridview
任何帮助或指导将不胜感激。谢谢。
答案 0 :(得分:0)
您可以执行以下操作。您可以将其放在脚本,函数或其他任何内容中。
$results = New-Object -TypeName System.Collections.ArrayList
$computers = Get-Content .\computers.txt
$computers | ForEach-Object {
$ComputerObject = Get-ADComputer $_
$obj = @{
Computername = $_
OS = $ComputerObject.OperatingSystem
}
$obj.Memberships = Get-ADPrincipalGroupMembership -Identity $ComputerObject | select-object name
$results.Add($obj) | Out-Null
}
return $results
答案 1 :(得分:-1)
$computers = Get-Content .\computers.txt
$results = foreach ( $computer in $computers ) {
$adcomputerproperties = get-adcomputer -Identity $computer -Properties *
Get-ADPrincipalGroupMembership -Identity $adcomputerproperties.DistinguishedName
| select @{n="Computername";e={ $computer}},Name,@{n="OperatingSystem"; e={ $adcomputerproperties.OperatingSystem}} }
$results | Out-GridView