2017-09-15 6 views
1

私は管理者権限にアクセスできないため、ADモジュールをインストールできません。AD CmdLetsを使用せずに他のドメインからユーザーグループを取得しますか?

Active Directoryを使用せずに異なるドメインのユーザーグループを取得するにはどうすればよいですか。何か案は?私は他のドメインにアクセスしていますが、このスクリプトを使用して自分のドメイン内のユーザーにアクセスできますが、他のドメインにはアクセスできません。

$filedirectory = "C:\Users\x\Desktop\z\Project\test.txt" 
$outputdirectory = "C:\Users\x\Desktop\Project\Export.csv" 
$allusernames = Get-Content $filedirectory 
$groups = "" 

$resultarray [email protected]() 

foreach ($allusernames in $allusernames) { 

$groupObject = new-object PSObject 

$currentusername = $allusernames 
$groups = ([ADSISEARCHER]"samaccountname=$($currentusername)").Findone().Properties.memberof -replace '^CN=([^,]+).+$','$1' | out-string 

$groupObject | add-member -MemberType NoteProperty -name "User" -Value $currentusername 
$groupObject | Add-Member -MemberType NoteProperty -name "Groups" -Value $groups 

$resultarray +=$groupObject 

} 

$resultarray | export-csv -Path $outputdirectory -NoTypeInformation 
+1

あなたのマネージャーと話し、この作業を行うためにIT部門がコンピュータにAD Cmdletを追加する必要があることを説明してください。 –

答えて

0

あなたは、任意のドメインを指定するには、ADSIを使用してこのように、それからADSIsearcherを建てことができます:あなたは、動的に取得するには、グローバルカタログと[System.DirectoryServices.ActiveDirectory.Forest]::GetCurrentForest()を照会するGC://を使用することができ、

$Searcher = New-Object System.DirectoryServices.DirectorySearcher([ADSI]"LDAP://$domain") 

注意現在のフォレストとそのドメイン。

グループメンバーシップを照会するため、グループメンバーシップはユーザーではなくグループの属性であることに注意してください。 memberof属性には、同じドメインのドメインのグループメンバーシップのみが表示されます(グループがローカルドメインの場合)。

0
$ForestName = [System.DirectoryServices.ActiveDirectory.Forest]::GetCurrentForest().Name 
$root = [ADSI]"GC://$ForestName" 
$Searcher = [ADSISEARCHER]$root 

これは私が使用したものです。

関連する問題