同僚から入手したPSスクリプトを「修正」して、お客様のADから情報を取得しようとして問題が発生しました。私はすべての配布メールボックスとこれらのメンバーのリストを取得しようとしています。しかし、彼から提供されたスクリプトは機能せず、いくつか変更しようとしましたが、私はまだPowerShellを学習しているので、自分のスクリプトが何をしようとしているのか本当に理解できていません。
Groups = Get-ADGroup -Filter * -SearchBase OU=costumer,OU=companies,DC=domene,DC=oss"
$Results = foreach( $Group in $Groups ){
Get-ADGroupMember -Identity $Group | foreach {
[pscustomobject]@{
GroupName = $Group.Name
Name = $_.Name
}
}
}
$Results| Export-Csv -Path c:\data\groups.csv -NoTypeInformation? -Encoding
unicode
このスクリプトを実行すると、 "Groups ="が原因でグループが認識されないため、最初からエラーが発生します。
だから私はスタートを次のように変更しました:
Get-ADGroup -filter * -Searchbase "OU = Distribution、OU = Groups、OU = Costumer、OU = Companies、DC = domene、DC = oss"
これは、必要なADオブジェクトへの完全なパスです。このコマンドをテストして、完全なリストを取得しました。しかし、goupobjectsのメンバーに関する情報は取得できません。スクリプトの下部で変更を試みましたが、「-identity」で常にエラーが返されます。その後に何を書いてもかまいません。
誰かが私が必要とする情報を得るために、より良いコードで医療を助けることができますか?そして、このスクリプトが何をしようとしているのか説明してください。
ご助力ありがとうございます。
お手伝いありがとう!スクリプトを実行し、.cvsファイルを取得します。しかし、他に何か問題があるのではないかと思っています。 ADのグループとグループのメンバーを返す必要がありますが、結果はこれではありません。これをExcelで開いたときのスクリーンショットを添付しました。
情報を取得するためにスクリプトに他に不足しているものはありますか?
スクリプトを変更して必要なものを取得する方法を見つけました。必要な情報を取得するだけでは不十分かもしれませんが、必要な結果が得られました。 :) ありがとうございました!
$GruppeMedlemmer = @()
$Groups = Get-ADGroup -Filter * -properties * -SearchBase "ou=felles,OU=Groups,OU=costumer,OU=Companies,DC=domene,DC=oss"
foreach ($g in $Groups) {
$members = $g | Get-ADGroupMember
foreach ($m in $members) {
$Info = New-Object psObject
$Info | add-member -MemberType NoteProperty -Name "GroupName" -Value $g.Name
$Info | add-member -MemberType NoteProperty -Name "Description" -Value $g.description
$Info | add-member -MemberType NoteProperty -Name "Member of" -Value $g.MemberOf
$Info | Add-Member -MemberType NoteProperty -Name "Member" -Value $m.name
$GruppeMedlemmer+= $Info
}
}
$GruppeMedlemmer | Sort-Object GroupName | Export-CSV C:\temp\groupdist.csv -notype -Encoding unicode
これはうまくいくはずです:
$Groups = Get-ADGroup -Filter * -SearchBase "OU=dummy1,OU=dummy2,DC=dummy3,DC=dummy4"
$Results = foreach( $Group in $Groups ){
Get-ADGroupMember -Identity $Group | foreach {
[pscustomobject]@{
GroupName = $Group.Name
Name = $_.Name
}
}
}
$Results| Export-Csv -Path c:\data\groups.csv -NoTypeInformation -Encoding unicode
ディレクトリC:\data
が存在します