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.DistinctedName, sUserDN);
Якщо цей інструмент не працює під ідентифікатором адміністратора домену, ви отримаєте такий виняток:
Текст винятку **************
System.Runtime.InteropServices.COMException (0x8007200A): Вказаний атрибут або значення служби каталогу не існує.
at System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail)
at System.DirectoryServices.DirectoryEntry.Bind()
at System.DirectoryServices.DirectoryEntry.get_SchemaEntry()
at System.DirectoryServices.AccountManagement.ADStoreCtx.IsContainer(DirectoryEntry de)
at System.DirectoryServices.AccountManagement.ADStoreCtx.. ctor(DirectoryEntry ctxBase, Boolean ownCtxBase, String username, String password, ContextOptions options)
at System.DirectoryServices.AccountManagement.PrincipalContext.CreateContextFromDirectoryEntry(DirectoryEntry entry)
at System.DirectoryServices.AccountManagement.PrincipalContext.DoLDAPDirectoryInitNoContainer()
at 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, тип principalType, Nullable'1 identityType, String identityValue, DateTime refDate)
at System.DirectoryServices.AccountManagement.Principal.FindByIdentityWithType(PrincipalContext context, Type principalType, String identityValue)
at System.DirectoryServices.AccountManagement.UserPrincipal.PrincipalPrincipal.FindByIdentity(PrincipalContext context, String identityValue)
at TestFixForGetGetAuthorizedGroup.Form1.GetUserDistinctedName(String userName)
at TestFixForGetAuthorizedGroup.Form1.GetUserGroups_Click(Object sender, EventArgs e)
Крім того, запуск цього базового скрипту PS1, який викликає ті самі класи, повертає те саме "Вказаний атрибут служби каталогу або значення не існує.": error:
$userName = Service account
Add-Type -AssemblyName System.DirectoryServices.AccountManagement
$ct = [System.DirectoryServices.AccountManagement.ContextType]::D omain
$user = [System.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 при виборі контейнера, коли він не був явно вказаний у конструкторі."
"Отримання винятку Вказаний атрибут або значення служби каталогу не існує, коли ви намагаєтеся шукати користувача в контейнері 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 SystemsProducts
SourceOne, SourceOne Email Management, SourceOne for File SystemsArticle 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.