SourceOne pro souborové systémy: Uživatelé nemohou načítat soubory s oprávněním "Moje soubory"

Summary: SourceOne pro souborové systémy: Uživatelé nemohou načítat soubory s oprávněním "Moje soubory"

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 pro souborové systémy: Uživatelé nemohou načítat soubory s oprávněními mapované složky "Moje soubory" přiřazenými skupině AD Uživatelé domény.
I když používáte identitu účtu služby, máte přístup ke všem zástupcům souborů. Všichni standardní uživatelé však nemají přístup k žádným souborům, pokud jejich přístupová oprávnění nejsou přímo zadána v rámci oprávnění NTFS k samotnému souboru před archivací souboru a zástupcem (pomocí snímku oprávnění systému souborů).

Po selhání načtení se v protokolu Docmanageservice zobrazí následující:
DocumentService::D oGetMessage|CHYBA|Chyba GetMessage: Chybový kód: 0x80070005, složka: xxxxxxxx Přístup byl odepřen. (Výjimka z HRESULT: 0x80070005 (E_ACCESSDENIED)) |(0)|ID úlohy: -1; Název aktivity: SERV1551; ID aktivity: -1; Typ aktivity: -1; Název

serveru Společnost Dell EMC má nástroj Test-Group, dříve TestFixForGetAuthorizedGroup.  To používá stejné třídy jako aplikace SourceOne k určení, zda účet služby může číst skupiny AD, ve kterých se nacházejí uživatelé.
Tento nástroj používá třídy oboru názvů System.DirectoryServices k vyhledání uživatelů AD, např.:
var domain = new PrincipalContext(ContextType.Domain);
var user = UserPrincipal.FindByIdentity(doména, uživatelské_jméno);

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

Pokud tento nástroj neběží pod identitou správce domény, zobrazí se následující výjimka:


Text výjimky **************
System.Runtime.InteropServices.COMException (0x8007200A): Zadaný atribut nebo hodnota adresářové služby neexistuje.
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, logická hodnota 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 context, Type 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.FindByIdentity(PrincipalContext context, String identityValue)
at TestFixForGetAuthorizedGroup.Form1.GetUserDistinguishedName(String userName)
at TestFixForGetAuthorizedGroup.Form1.GetUserGroups_Click(Object sender, EventArgs e)


Spuštění tohoto základního skriptu PS1, který vyvolává stejné třídy, také vrátí stejnou zprávu "Zadaný atribut nebo hodnota adresářové služby neexistuje.": error:

$userName = Typ přidání účtu
služby -AssemblyName System.DirectoryServices.AccountManagement
$ct = [System.DirectoryServices.AccountManagement.ContextType]::D omain
$user = [System.DirectoryServices.AccountManagement.Principal]::FindByIdentity($ct,$userName)
$user. GetGroups() #gets všechny skupiny uživatelů (přímé)
$user. GetAuthorizationGroups() #gets všechny skupiny uživatelů včetně vnořených skupin (nepřímé)



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/

"Získání výjimky Zadaný atribut nebo hodnota adresářové služby neexistuje, když se pokusíte vyhledat uživatele v kontejneru AD pomocí System.DirectoryServices.AccountManagement.UserPrincipal::FindByIdentity

K tomu dochází, protože pokud není zadán žádný kontejner, hlavní kontextová třída vytvoří System.DirectoryServices.DirectoryEntry objekt vazbou na vestavěný kontejner CN=Users a začne hledat uživatele. System.DirectoryServices je postaven na rozhraní ADSI.  ADSI ve výchozím nastavení vyhledává objectclass=* jako součást normálního procesu vazby, pokud není zadán příznak fastbind.  pokud uživatel provádějící vyhledávání nemá oprávnění ke čtení atributů obsažených výchozích uživatelů, operace vyhledávání se nezdaří, což způsobí výjimku Zadaný atribut nebo hodnota adresářové služby neexistuje.

To platí také při prohledávání objektů počítače pomocí ComputerPrincipal::FindByIdentity a nemáte oprávnění ke čtení kontejneru CN=Computer a nezadali jste kontejner v konstruktoru System.DirectoryServices.AccountManagemnt.PrincipalContext. Část poznámek v dokumentaci na adrese http://msdn.microsoft.com/en-us/library/system.directoryservices.accountmanagement.principalcontext.principalcontext.aspx vysvětluje pravidla, kterými se třída PrincipalContext řídí při výběru kontejneru, pokud nebyl explicitně zadán v konstruktoru.

Resolution

Přiřaďte oprávnění ke čtení skupinám 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.