這是我的場景,到目前爲止我還沒有找到解決方法:應用程序在Windows 2012 R2服務器(svr1,域成員)上運行,並且需要將域帳戶添加到svr2上的本地組,也一個域成員。DirectoryServices.AccountManagement.PrincipalContext是否在遠程Win 2012 R2服務器上工作?
使用ADSI到目前爲止還沒有爲我工作(仍在嘗試)。由於明文憑證通過網絡發送,PSEXEC不是一種選擇。
這是可在遠程Windows 2008 R2服務器上工作的線路,並且不在遠程Windows 2012 R2服務器上,因爲ConnectedServer屬性引發'System.UnauthorizedAccessException',但僅在訪問2012 R2服務器時才引發。證書是有效的域管理員creds(2008年作品R2 &我可以使用它們登錄到開發服務器)
using (PrincipalContext adDestMachinePrincContext = new PrincipalContext(AccountManagement.ContextType.Machine,"svr2",null,ada.ContextOptions.Negotiate,
"DomainName\\TheDomainAdminAccount","LegitPassword"))
{ ... etc etc etc ... }
我到目前爲止已經發現是這樣的:
- 憑據是因爲有效同一條線路在遠程2008 R2服務器上運行。
- 遠程2012 R2是我的問題所在,我還沒有 針對2016年進行測試。
當我使用相同的域管理員憑據登錄到開發服務器 時,它使用當前的 用戶的憑證。這條線每次都有效,當 當前用戶是相同的域管理員時,可以使用下面的命令:CurrentContext x = new ada.PrincipalContext(AccountManagement.ContextType.Machine,「svr2」);
的目標(在這一點上,我不在乎我怎麼把它做)很簡單:添加域用戶帳戶到本地組的遠程服務器上,使用.NET。 PowerShell不是一個選項,但即使是一個工作片段也可以。遠程盒是2008,2008 x86,20058 R2,2012,2012 R2或2016的任何東西。
- 這不是憑證問題。覆蓋上面。
- 這不是權限問題。也覆蓋上述內容。
- 運行可執行文件「以管理員身份運行」不有所作爲
任何人都已經能夠將域帳戶添加到本地組遠程2012 R2服務器上?我還沒有找到任何與工作示例有關的任何東西。如果是這樣,對你有用嗎?
我不確定ADSI調用是否可以正常工作,因爲AD需要LDAP,本地訪問需要WinNT,而且它們似乎沒有能夠完成所需的任務。
我認爲這就是我所擁有的一切...迄今爲止。
我的下一步可能是在域管理員帳戶下運行的WCF服務,但這必須是矯枉過正的。