我无法访问管理员权限,因此无法安装AD模块。
如何在不使用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 =@()
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
答案 0 :(得分:0)
您可以使用ADSI指定任何域并从中构建ADSIsearcher,如下所示:
$Searcher = New-Object System.DirectoryServices.DirectorySearcher([ADSI]"LDAP://$domain")
请注意,您还可以使用GC://
查询全局编录,并使用[System.DirectoryServices.ActiveDirectory.Forest]::GetCurrentForest()
动态获取当前林及其域。
由于您要查询群组成员资格,请注意群组成员资格是群组的属性,而不是用户。如果该组是本地域,则memberof
属性仅显示同一域的域的组成员身份。
答案 1 :(得分:0)
$ForestName = [System.DirectoryServices.ActiveDirectory.Forest]::GetCurrentForest().Name
$root = [ADSI]"GC://$ForestName"
$Searcher = [ADSISEARCHER]$root
这就是我使用的。