如何爲不同的受信域上的用戶獲取完全限定的域名(FQDN)?如何獲取目標用戶(不同)域的FQDN?
通常情況下,我會問說用戶採取概括here的途徑中的任何一個(例如whoami /fqdn
或echo %userDNSdomain%
),但如果這種做法並不適用於任何原因(如該帳戶是,我無法代理帳戶以交互方式登錄,我正在爲之工作的公司已被收購,而新的所有者並不像即將出現的等等),有沒有辦法讓我獲得這個不同的用戶帳戶的FQDN?
或者,採用「模擬」我的用戶憑據返回的FQDN的方法也容易出錯。就拿運行whoami /fqdn
爲我的用戶的輸出:
C:\Users\john.eisbrener>whoami /fqdn
CN=John M. Eisbrener,OU=Standard Users,OU=Resources,DC=CONTOSO,DC=COM
我可以概念調整域組件對方,信任域,與它沿用了同樣的期望,但是這將是目光短淺,因爲並非所有的域名遵循相同的命名慣例。我看到太多使用.org
的受信任域,或者在其LDAP根路徑中包含其他域前綴或後綴。
所有這一切的主要驅動程序是我需要將正確的域組件傳遞到下面的PowerShell查詢,我試圖找到可能需要將某些用戶組和用戶名添加到某些安全組時,文件路徑等。
## List Groups for a Username
$domainName = 'CONTOSO'
$domainSuffix = 'COM'
$username = 'john.eisbrener'
(New-Object System.DirectoryServices.DirectorySearcher((New-Object System.DirectoryServices.DirectoryEntry("LDAP://dc=$($domainName),dc=$($domainSuffix)")), "(&(objectCategory=User)(samAccountName=$($username)))")).FindOne().GetDirectoryEntry().memberOf | % { (New-Object System.DirectoryServices.DirectoryEntry("LDAP://"+$_)) } | Sort-Object sAMAccountName | SELECT @{name="Group Name";expression={$_.Name}},@{name="Group sAMAccountName";expression={$_.sAMAccountName}}
## List Members in a Group
$domainName = 'CORP'
$domainSuffix = 'ORG'
$groupname = 'RemoteUsers'
(New-Object System.DirectoryServices.DirectoryEntry((New-Object System.DirectoryServices.DirectorySearcher((New-Object System.DirectoryServices.DirectoryEntry("LDAP://dc=$($domainname),dc=$($domainSuffix)")), "(&(objectCategory=Group)(name=$($groupname)))")).FindOne().GetDirectoryEntry().Path)).member | % { (New-Object System.DirectoryServices.DirectoryEntry("LDAP://"+$_)) } | Sort-Object sAMAccountName | SELECT @{name="User Name";expression={$_.Name}},@{name="User sAMAccountName";expression={$_.sAMAccountName}}
爲什麼我不能安裝任何其他組件或模塊?我使用的計算機非常普通,沒有任何額外的PowerShell模塊或mmc snapins(例如dsa.msc
),因爲我的用戶帳戶沒有足夠的權限來安裝軟件。
我目前的做法得到這個其他用戶的域的FQDN是設置運行Windows計劃任務爲上述用戶,節省了上述whoami /fqdn
或echo %userDNSdomain%
命令到一個文本文件的輸出,不過這似乎有點缺憾和我希望能夠從命令提示符或PowerShell提示符運行一個簡單的單線程。任何建議,將不勝感激。
最後說明,如果我的術語不正確或導致混淆,我很抱歉。我願意接受某人理解我所問的任何修改。
ADSI和來自RSAT的Active Directory模塊不一樣。 ADSI將成爲您可能想要使用的方法。 – BenH
@BenH我無法在這種情況下使用這些工具,因爲我的帳戶沒有足夠的權限將軟件安裝到我有權訪問的計算機上。 –
那麼你需要通過[adsisearcher]類型加速器或System.DirectoryServices.DirectorySearcher類使用shell中本地可用的內容。 – thepip3r