SourceOne для файловых систем: Пользователи не могут получать файлы с разрешениями «Мои файлы»

Summary: SourceOne для файловых систем: Пользователи не могут получать файлы с разрешениями «Мои файлы»

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Symptoms



SourceOne для файловых систем: Пользователи не могут извлекать файлы с разрешениями сопоставленной папки «Мои файлы», назначенными группе AD пользователей домена.
Хотя при использовании удостоверения сервисной учетной записи можно получить доступ ко всем ярлыкам файлов. Тем не менее, все обычные пользователи не могут получить доступ к каким-либо файлам, если их права доступа не указаны непосредственно в разрешениях NTFS самого файла перед архивированием и использованием ярлыка (с использованием моментального снимка разрешений файловой системы).

После сбоя извлечения в журнале DocmanageService вы увидите следующее:
DocumentService::D oGetMessage|ОШИБКА|Ошибка GetMessage: Код ошибки: 0x80070005, папка: xxxxxxxx Доступ запрещен. (Исключение из HRESULT: 0x80070005 (E_ACCESSDENIED)) |(0)|Идентификатор задания: -1; Название мероприятия: SERV1551; Идентификатор мероприятия: -1; Тип мероприятия: -1; Имя

сервера У Dell EMC есть инструмент Test-Group, бывший TestFixForGetAuthorizedGroup.  Оно использует те же классы, что и приложение SourceOne, чтобы определить, может ли учетная запись службы считывать группы AD, в которых проживают пользователи.
Этот инструмент использует классы пространства имен System.DirectoryServices для поиска пользователей AD, например
: var domain = new PrincipalContext(ContextType.Domain);
var user = UserPrincipal.FindByIdentity(домен, имяПользователя);

UserPrincipal upLogonUser = UserPrincipal.FindByIdentity(pc, IdentityType.DifferentedName, sUserDN);

Если этот инструмент не работает от имени администратора домена, произойдет следующее исключение:


Текст исключения **************
System.Runtime.InteropServices.COMException (0x8007200A): Указанного атрибута или значения службы каталогов не существует.
в System.DirectoryServices.DirectoryEntry.Bind(логическое значение throwIfFail)
в System.DirectoryServices.DirectoryEntry.Bind()
в System.DirectoryServices.DirectoryEntry.get_SchemaEntry()
в System.DirectoryServices.AccountManagement.ADStoreCtx.IsContainer(DirectoryEntry de)
в System.DirectoryServices.AccountManagement.ADStoreCtx.. ctor(DirectoryEntry ctxBase, логическое значение ownCtxBase, строковое имя пользователя, строковый пароль, параметры ContextOptions)
в System.DirectoryServices.AccountManagement.PrincipalContext.CreateContextFromDirectoryEntry(DirectoryEntry)
в System.DirectoryServices.AccountManagement.PrincipalContext.DoLDAPDirectoryInitNoContainer()
в System.DirectoryServices.AccountManagement.PrincipalContext.DoDomainInit()
at System.DirectoryServices.AccountManagement.PrincipalContext.Initialize()
at System.DirectoryServices.AccountManagement.PrincipalContext.get_QueryCtx()
at System.DirectoryServices.AccountManagement.Principal.FindByIdentityWithTypeHelper(контекст PrincipalContext, Type principalType, Nullable'1 identityType, String identityValue, DateTime refDate)
в System.DirectoryServices.AccountManagement.Principal.FindByIdentityWithType(контекст PrincipalContext, Type principalType, String identityValue)
в System.DirectoryServices.AccountManagement.UserPrincipal.FindByIdentity(контекст PrincipalContext, String identityValue)
в TestFixForGetAuthorizedGroup.Form1.GetUserDifferentedName(String userName)
в TestFixForGetAuthorizedGroup.Form1.GetUserGroups_Click(Object sender, EventArgs e)


Кроме того, запуск этого базового скрипта PS1, который вызывает те же классы, возвращает то же самое "Указанный атрибут или значение службы каталогов не существует.": error:

$userName = Тип добавления сервисной учетной записи
-AssemblyName System.DirectoryServices.AccountManagement
$ct = [System.DirectoryServices.AccountManagement.ContextType]::D omain
$user = [Система.DirectoryServices.AccountManagement.Principal]::FindByIdentity($ct;$userName)
$user. GetGroups() #gets все группы пользователей (прямые)
$user. GetAuthorizationGroups() #gets всех групп пользователей, включая вложенные группы (косвенные)



Cause

https://blogs.msdn.microsoft.com/dsadsi/2009/08/28/getting-an-exception-the-specified-directory-service-attribute-or-value-does-not-exist-when-you-try-to-search-a-user-in-an-ad-container-using-system-directoryservices-accountmanagement/

"Получение исключения Указанный атрибут или значение службы каталогов не существует при попытке выполнить поиск пользователя в контейнере AD с помощью System.DirectoryServices.AccountManagement.UserPrincipal::FindByIdentity

Это происходит потому, что если контейнер не указан, класс основного контекста создаст объект System.DirectoryServices.DirectoryEntry, привязав его к встроенному контейнеру CN=Users, чтобы начать поиск пользователей. System.DirectoryServices построен на основе ADSI.  ADSI по умолчанию выполняет поиск objectclass=* как часть своего обычного процесса привязки, если не указан флаг fastbind.  Если пользователь, выполняющий поиск, не имеет разрешения на чтение атрибутов содержимого по умолчанию, операция поиска завершится сбоем, что приведет к возникновению исключения Указанный атрибут или значение службы каталогов не существует , .

Это также верно при поиске объектов компьютера с помощью ComputerPrincipal::FindByIdentity, когда у вас нет разрешения на чтение для контейнера CN=Computer и вы не указали контейнер в конструкторе System.DirectoryServices.AccountManagemnt.PrincipalContext. В разделе примечаний документации по адресу http://msdn.microsoft.com/en-us/library/system.directoryservices.accountmanagement.principalcontext.principalcontext.aspx объясняются правила, которым следует класс PrincipalContext при выборе контейнера, если он не был явно указан в конструкторе.

Resolution

Назначение разрешения на чтение для групп AD.

Affected Products

SourceOne for File Systems

Products

SourceOne, SourceOne Email Management, SourceOne for File Systems
Article Properties
Article Number: 000056717
Article Type: Solution
Last Modified: 26 May 2025
Version:  5
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.