В сервисном режиме учетными данными по умолчанию для входа в каталог будут учетные данные, которые компьютер использует для входа в домен (так называемый вход в систему с компьютера).Смотрите эту ссылку: https://serverfault.com/questions/61191/what-happens-when-a-computer-joins-an-active-directory-domain.
Сначала я попытался использовать System.Net.CredentialCache :: DefaultNetworkCredentials, чтобы попытаться получить учетные данные по умолчанию, однако я обнаружил, что пользователь и домен все пустые.Из MSDN подтверждается, что мы не смогли просмотреть эту информацию с возвращенными NetworkCredentials.
Поэтому я добавил следующий скрипт vb (получил базовый код по этой ссылке: http://blogs.technet.com/b/heyscriptingguy/archive/2008/05/12/how-can-i-determine-the-distinguished-name-of-the-ou-where-the-logged-on-user-s-user-account-resides.aspx), который будет вызываться из питанияshell, чтобы получить dn текущего пользователя и сохранить его в файл.
Set objSysInfo = CreateObject("ADSystemInfo")
strUserName = objSysInfo.UserName
Set objUser = GetObject("LDAP://" & strUserName)
Wscript.Echo objUser.distinguishedName
Set objFS = CreateObject("Scripting.FileSystemObject")
strTemp = "c:\temp\dn.txt"
Set objOutFile = objFS.CreateTextFile(strTemp,True)
objOutFile.Write(objUser.distinguishedName)
objOutFile.Close
Затем, когда я запустил его в контексте службы, я обнаружил, что пользователь - это сам мой компьютер, например:
CN=my computer name,OU=Domain computer accounts,DC=domain,DC=local