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.
"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 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.