首先,我没有受过Powershell的正规培训,所以我写的大部分都是改编代码或者比较简单。我在检索机器的扩展属性或重新组织返回的列列表时遇到问题。
在我的组织中,PC 可以是我了解的本地 OU 的成员,也可以是我无权访问的企业 OU。扫描我的本地 OU 组不会给我我正在寻找的所有结果。我能够找到将此逻辑应用于用户和组成员资格的答案,但似乎无法使其适用于 PC。
Import-Module ActiveDirectory
$OU = "OU=Computers,OU={ORG UNIT}"
$Path = "C:\{FILE LOC}\AD-groupPClist_$(get-date -f yyyyMMdd_HHmm).csv"
$PC = ForEach ($P in (Get-ADComputer -Filter * -SearchBase $OU))
{
$Machine = Get-ADComputer $P -Properties MemberOf
$Groups = ForEach ($Group in ($Machine.MemberOf))
{
(Get-ADGroup $Group).Name
}
$Groups = $Groups | Sort
ForEach ($Group in $Groups)
{
New-Object PSObject -Property @{
Group = $Group
PCName= $Machine.Name
}
}
}
$PC | Export-CSV $Path -NoTypeInformation
当我尝试添加 DNSHostName 列(例如)时,它显示为结果中的第一列,即使它列在第三列。在这种情况下,如果我添加了 DNSHostName,我希望输出文件是组名、PCName、DNSHostName(或其他一些属性);但按这个顺序。