ドメイン内のすべてのセキュリティグループとそのアカウントステータス(有効または無効)を含むすべてのメンバーのCSVを返そうとしていますが、参加方法を理解できないようですADGroupMemberからADUserへ$Member.ObjectClass
の値をテストしようとしていたのですが、 "user"がGet-ADUser
を実行しても動作しないようです - すべてのADGroupMemberオブジェクトクラスはユーザーとして表示されます。可能であれば、1つのクエリで実行したいと考えています。私はウェブから例をとって、成功せずにそれを修正しようとしました。私はこのようなフォーマットされた表/ csvファイルに結果を探していますユーザーアカウント有効状態のGet-ADGroupメンバー
:
GroupName Name ObjectClass Enabled GroupA John Smith User True GroupB Jane Brown User False GroupB GroupN Group NA/Group
$Table = @()
$Record = [ordered]@{
"GroupName" = ""
"Name" = ""
"ObjectClass" = ""
"Enabled" = ""
}
$Groups = Get-AdGroup -Filter * |
Where {$_.Name -like "FS01*" -or $_.Name -like "ABC*"} |
Select Name -ExpandProperty Name
foreach ($Group in $Groups) {
$ArrayMembers = Get-ADGroupMember -Identity $Group |
Select Name, ObjectClass #, SamAccountName
foreach ($Member in $ArrayMembers) {
$Record."Enabled" = Get-ADGroupMember -Identity $Group |
Get-ADUser |
Select Enabled
$Record."GroupName" = $Group
$Record."Name" = $Member.Name
$Record."ObjectClass" = $Member.ObjectClass
$objRecord = New-Object PSObject -Property $Record
$Table += $objRecord
}
}
$Table # | Export-Csv $filename -NoTypeInformation
何が問題なのですか?私はそれをテストするADドメインを持っていませんが、これは "音"に見えます – 4c74356b41
いくつかのことは機能していませんでした。最初にGet-ADGroupMemberを使用すると、3つのグループからエラーが返されました。これは、グループの表示名がSAMのアカウント名と異なるためです。第2に、上記の3つのエラーを除いてリストには表示されませんでしたが、ユーザーまたはグループをチェックし、ObjectClassの場合はGet-ADUserを実行するifステートメントを入れると、そのメンバーのObjectClassをチェックしようとしませんでしたユーザーであれば、すべての行のObjectTypeとしてユーザーのみが表示されます。 if thenを正しく動作させることができませんでした。 – Scott
これが馬鹿げた方法であると見なされない限り、学習目的のために元々働くことに興味があります。 Ansgarの例は確かにより簡潔に見え、今後もそれを使用します! – Scott