web-dev-qa-db-ja.com

PowerShellスクリプトget-ADGroupおよびget-ADGroupmember

同僚から入手した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」で常にエラーが返されます。その後に何を書いてもかまいません。

誰かが私が必要とする情報を得るために、より良いコードで医療を助けることができますか?そして、このスクリプトが何をしようとしているのか説明してください。

ご助力ありがとうございます。

編集1

お手伝いありがとう!スクリプトを実行し、.cvsファイルを取得します。しかし、他に何か問題があるのではないかと思っています。 ADのグループとグループのメンバーを返す必要がありますが、結果はこれではありません。これをExcelで開いたときのスクリーンショットを添付しました。

enter image description here

情報を取得するためにスクリプトに他に不足しているものはありますか?

解決

スクリプトを変更して必要なものを取得する方法を見つけました。必要な情報を取得するだけでは不十分かもしれませんが、必要な結果が得られました。 :) ありがとうございました!

$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  
2
Hege Jacobsen

これはうまくいくはずです:

$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
  • 行1に$がありません
  • 行1に "がありません
  • 違う ? 13行目
  • 「Unicode」はエンコードと同じ行にある必要があります

ディレクトリC:\dataが存在します

1
benniz