Мне нужно запустить программное обеспечение, использующее .NET 6 [System.DirectoryServices.AccountManagement. UserPrincipal]::Current, чтобы получить отображаемое имя текущего пользователя. Это работает, если я вошел в систему как администратор домена, но не работает для пользователей по умолчанию.
В только что настроенном домене это также работает нормально для всех пользователей.
У кого-нибудь из вас есть идеи, как это исправить? Переделать весь домен сейчас невозможно. В противном случае я облажался:{
Спасибо!
Если я попытаюсь сделать следующее в PowerShell:
Импорт-модуль ActiveDirectory
$user = Get-ADUser -Identity "deinBenutzername" -Properties DisplayName
$user.DisplayName
он работает, несмотря на то, что вы обычный пользователь.
Если я попробую в качестве пользователя по умолчанию:
Add-Type -AssemblyName "System.DirectoryServices.AccountManagement"
$context = New -Object System.DirectoryServices.AccountManagement.PrincipalContext([System.DirectoryServices.AccountManagement.ContextType]::Domain)
$userPrincipal = [System.DirectoryServices.AccountManagement.UserPrincipal]::Current
$displayName = $ userPrincipal.DisplayName
Я получаю следующий результат:
Das angegebene Verzeichnisdienstattribut bzw. der angegebene Verzeichnisdienstwert ist nicht vorhanden.
В Zeile:2 Zeichen:1
- $userPrincipal = [System.DirectoryServices.AccountManagement.UserPrin ...
-
Код: Выделить всё
+ CategoryInfo : OperationStopped: (:) [], COMException + FullyQualifiedErrorId : System.Runtime.InteropServices.COMException
Если я попробую это сделать в качестве администратора домена, это сработает!
Я также пробовал:
- Добавление разрешения на полный доступ к SELF для тестового пользователя (выход из системы, перезапуск и все это)
- Добавление разрешения полного доступа к самой учетной записи (Domain\Testuser...)
- Добавление разрешения на чтение для чтения всех пользователей/атрибутов AD
Подробнее здесь: https://stackoverflow.com/questions/790 ... oryservice