SourceOne dla systemów plików: Użytkownicy nie mogą pobierać plików z uprawnieniami "Moje pliki"
Summary: SourceOne dla systemów plików: Użytkownicy nie mogą pobierać plików z uprawnieniami "Moje pliki"
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 dla systemów plików: Użytkownicy nie mogą pobierać plików z uprawnieniami do folderu zamapowanego "Moje pliki" przypisanymi do grupy AD Użytkownicy domeny.
Chociaż w przypadku korzystania z tożsamości konta usługi można uzyskać dostęp do wszystkich skrótów do plików. Jednak wszyscy użytkownicy standardowi nie mogą uzyskać dostępu do żadnych plików, chyba że ich uprawnienia dostępu są bezpośrednio określone w uprawnieniach NTFS dla samego pliku przed zarchiwizowaniem pliku i skrótem (przy użyciu migawki uprawnień systemu plików).
Po niepowodzeniu pobierania w dzienniku Docmanageservice pojawią się następujące informacje:
DocumentService::D oGetMessage|BŁĄD|Błąd GetMessage: Kod błędu: 0x80070005, Folder: xxxxxxxx Odmowa dostępu. (Wyjątek od HRESULT: 0x80070005 (E_ACCESSDENIED)) |(0)|Identyfikator zadania: -1; Nazwa działania: SERV1551; Identyfikator działania: -1; Typ aktywności: -1; Nazwa serwera
Firma Dell EMC ma narzędzie Test-Group, dawniej TestFixForGetAuthorizedGroup. Używa tych samych klas co aplikacja SourceOne w celu ustalenia, czy konto usługi może odczytywać grupy AD, w których znajdują się użytkownicy.
To narzędzie używa klas przestrzeni nazw System.DirectoryServices do znajdowania użytkowników usługi AD, np.:
var domain = new PrincipalContext(ContextType.Domain);
var user = UserPrincipal.FindByIdentity(domena, nazwa_użytkownika);
UserPrincipal upLogonUser = UserPrincipal.FindByIdentity(pc, IdentityType.DistinguishedName, sUserDN);
Jeśli to narzędzie nie działa w ramach tożsamości administratora domeny, zostanie wyświetlony następujący wyjątek:
Tekst wyjątku **************
System.Runtime.InteropServices.COMException (0x8007200A): Określony atrybut lub wartość usługi katalogowej nie istnieje.
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, wartość logiczna ownCtxBase, nazwa użytkownika ciągu, hasło ciągu, opcje ContextOptions)
at System.DirectoryServices.AccountManagement.PrincipalContext.CreateContextFromDirectoryEntry(wpis DirectoryEntry)
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)
Ponadto uruchomienie tego podstawowego skryptu PS1, który wywołuje te same klasy, zwraca ten sam komunikat "Określony atrybut lub wartość usługi katalogowej nie istnieje.": error:
$userName = Konto
usługi Add-Type -AssemblyName System.DirectoryServices.AccountManagement
$ct = [System.DirectoryServices.AccountManagement.ContextType]::D omain
$user = [System.DirectoryServices.AccountManagement.Principal]::FindByIdentity($ct,$userName)
$user. GetGroups() #gets wszystkie grupy użytkowników (bezpośrednie)
$user. Funkcja GetAuthorizationGroups() #gets wszystkich grup użytkowników, w tym grup zagnieżdżonych (pośrednio)
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/
"Uzyskiwanie wyjątku Określony atrybut lub wartość usługi katalogowej nie istnieje podczas próby wyszukania użytkownika w kontenerze usługi AD przy użyciu System.DirectoryServices.AccountManagement.UserPrincipal::FindByIdentity
Dzieje się tak, ponieważ jeśli nie określono kontenera, główna klasa kontekstu utworzy System.DirectoryServices.DirectoryEntry obiekt, tworząc powiązanie z wbudowanym kontenerem CN=Users w celu rozpoczęcia wyszukiwania użytkowników. System.DirectoryServices jest oparty na ADSI. ADSI domyślnie wykonuje wyszukiwanie objectclass=* w ramach normalnego procesu wiązania, chyba że określono flagę fastbind. Jeśli użytkownik przeprowadzający wyszukiwanie nie ma uprawnień do odczytu atrybutów domyślnych użytkowników zawartych, operacja wyszukiwania zakończy się niepowodzeniem, powodując w ten sposób Określony atrybut lub wartość usługi katalogowej nie istnieje , wyjątek.
Jest to również prawdziwe w przypadku wyszukiwania obiektów komputera przy użyciu polecenia ComputerPrincipal::FindByIdentity i nie masz uprawnień do odczytu CN=Computer kontenera i nie określono kontenera w konstruktorze System.DirectoryServices.AccountManagemnt.PrincipalContext. Sekcja uwag dokumentacji w http://msdn.microsoft.com/en-us/library/system.directoryservices.accountmanagement.principalcontext.principalcontext.aspx wyjaśnia reguły stosowane przez klasę PrincipalContext podczas wybierania kontenera, gdy nie został on jawnie określony w konstruktorze.
"Uzyskiwanie wyjątku Określony atrybut lub wartość usługi katalogowej nie istnieje podczas próby wyszukania użytkownika w kontenerze usługi AD przy użyciu System.DirectoryServices.AccountManagement.UserPrincipal::FindByIdentity
Dzieje się tak, ponieważ jeśli nie określono kontenera, główna klasa kontekstu utworzy System.DirectoryServices.DirectoryEntry obiekt, tworząc powiązanie z wbudowanym kontenerem CN=Users w celu rozpoczęcia wyszukiwania użytkowników. System.DirectoryServices jest oparty na ADSI. ADSI domyślnie wykonuje wyszukiwanie objectclass=* w ramach normalnego procesu wiązania, chyba że określono flagę fastbind. Jeśli użytkownik przeprowadzający wyszukiwanie nie ma uprawnień do odczytu atrybutów domyślnych użytkowników zawartych, operacja wyszukiwania zakończy się niepowodzeniem, powodując w ten sposób Określony atrybut lub wartość usługi katalogowej nie istnieje , wyjątek.
Jest to również prawdziwe w przypadku wyszukiwania obiektów komputera przy użyciu polecenia ComputerPrincipal::FindByIdentity i nie masz uprawnień do odczytu CN=Computer kontenera i nie określono kontenera w konstruktorze System.DirectoryServices.AccountManagemnt.PrincipalContext. Sekcja uwag dokumentacji w http://msdn.microsoft.com/en-us/library/system.directoryservices.accountmanagement.principalcontext.principalcontext.aspx wyjaśnia reguły stosowane przez klasę PrincipalContext podczas wybierania kontenera, gdy nie został on jawnie określony w konstruktorze.
Resolution
Przypisywanie uprawnień do odczytu w grupach usługi 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.