एक तरीका सक्रिय-निर्देशिका सेवा इंटरफ़ेस (ADSI) का उपयोग कर रहा है।
आप एक और एसओ पोस्ट (Can I match a user to a group accross different domains?) में एडीएसआई का उपयोग कर उपयोगकर्ता के सभी समूहों को खोजने के लिए एक तरीका ढूंढ सकते हैं, पोस्ट में यह एक सी # कोड है, लेकिन इसका अनुवाद करना आसान है।
यहां शुरू करने के लिए एक सरल खोज का एक छोटा सा उदाहरण है।
Clear-Host
$dn = New-Object System.DirectoryServices.DirectoryEntry ("LDAP://WM2008R2ENT:389/dc=dom,dc=fr","[email protected]","Pwd")
# Look for a user
$user2Find = "user1"
$Rech = new-object System.DirectoryServices.DirectorySearcher($dn)
$rc = $Rech.filter = "((sAMAccountName=$user2Find))"
$rc = $Rech.SearchScope = "subtree"
$rc = $Rech.PropertiesToLoad.Add("mail");
$theUser = $Rech.FindOne()
if ($theUser -ne $null)
{
Write-Host $theUser.Properties["mail"]
}
एक और तरीका है System.DirectoryServices.AccountManagement Namespace उपयोग करने के लिए है।
इस तरह एडीएसआई का भी उपयोग कर रहा है, लेकिन यह encapsulated है, और आपको फ्रेमवर्क .NET 3.5 की आवश्यकता है। आपको same post में भी मिलेगा लेकिन संपादित (2011-10-18 13:25) भाग में, इस तरह से एक सी # कोड।
तुम भी WMI का उपयोग कर सकते हैं:
$user2Find = "user1"
$query = "SELECT * FROM ds_user where ds_sAMAccountName='$user2find'"
$user = Get-WmiObject -Query $query -Namespace "root\Directory\LDAP"
$user.DS_mail
आप अपने सर्वर पर या डोमेन के अंदर एक कंप्यूटर से localy इस समाधान का उपयोग कर सकते हैं, लेकिन यह डोमेन के बाहर से WMI को प्रमाणित करने में थोड़ा और अधिक जटिल है ।
के उत्पादन को पार्स सकता है क्यों नहीं उन्हें अपने डीसी या \\ डोमेन \ Sysvol से कहते हैं? –