SourceOne per i file system: Gli utenti non possono recuperare i file con autorizzazioni "File personali"
Summary: SourceOne per i file system: Gli utenti non possono recuperare i file con autorizzazioni "File personali"
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 per i file system: Gli utenti non possono recuperare i file con le autorizzazioni "My Files" della cartella mappata assegnate al gruppo di utenti di dominio AD.
Tuttavia, se si utilizza l'identità dell'account di servizio, è possibile accedere a tutti i collegamenti ai file. Tuttavia, tutti gli utenti standard non possono accedere ad alcun file, a meno che le autorizzazioni di accesso non siano specificate direttamente nelle autorizzazioni NTFS sul file stesso prima che il file venga archiviato e collegato (utilizzando la snapshot delle autorizzazioni del file system).
Dopo un errore di recupero, verrà visualizzato quanto segue nel log Docmanageservice:
DocumentService::D oGetMessage|ERRORE|Errore GetMessage: Codice errore: 0x80070005, Cartella: xxxxxxxx Accesso negato. (Eccezione di HRESULT: 0x80070005 (E_ACCESSDENIED)) |(0)|ID lavoro: -1; Nome attività: SERV1551; ID attività: -1; Tipo di attività: -1; Nome server
Dell EMC dispone di uno strumento Test-Group, in precedenza TestFixForGetAuthorizedGroup. In questo modo vengono utilizzate le stesse classi dell'applicazione SourceOne per stabilire se l'account del servizio è in grado di leggere i gruppi Active Directory in cui risiedono gli utenti.
Questo strumento usa le classi System.DirectoryServices Namespace per trovare gli utenti AD, ad esempio:
var domain = new PrincipalContext(ContextType.Domain);
var user = UserPrincipal.FindByIdentity(dominio, nomeutente);
UserPrincipal upLogonUser = UserPrincipal.FindByIdentity(pc, IdentityType.DistinguishedName, sUserDN);
A meno che questo strumento non venga eseguito con un identità di amministratore di dominio, si otterrà la seguente eccezione:
Testo dell'eccezione **************
System.Runtime.InteropServices.COMException (0x8007200A): L'attributo o il valore del servizio directory specificato non esiste.
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, booleano ownCtxBase, nome utente stringa, password stringa, opzioni ContextOptions)
at System.DirectoryServices.AccountManagement.PrincipalContext.CreateContextFromDirectoryEntry(voce 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)
Inoltre, l'esecuzione di questo script PS1 di base che richiama le stesse classi restituisce lo stesso "L'attributo o il valore del servizio directory specificato non esiste.": errore:
$userName = Account
di servizio Add-Type -AssemblyName System.DirectoryServices.AccountManagement
$ct = [System.DirectoryServices.AccountManagement.ContextType]::D omain
$user = [System.DirectoryServices.AccountManagement.Principal]::FindByIdentity($ct,$userName)
$user. GetGroups() #gets tutti i gruppi di utenti (diretto)
$user. GetAuthorizationGroups() #gets tutti i gruppi di utenti, inclusi i gruppi nidificati (indiretti)
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/
"Ottenere un'eccezione L'attributo o il valore del servizio directory specificato non esiste quando si tenta di cercare un utente in un contenitore AD utilizzando System.DirectoryServices.AccountManagement.UserPrincipal::FindByIdentity
Ciò si verifica perché se non è specificato alcun contenitore, la classe di contesto principale creerà un oggetto System.DirectoryServices.DirectoryEntry eseguendo l'associazione al contenitore incorporato CN=Users per avviare la ricerca degli utenti. System.DirectoryServices si basa su ADSI. ADSI, per impostazione predefinita, esegue una ricerca objectclass=* come parte del normale processo di associazione, a meno che non venga specificato il flag fastbind. Se l'utente che esegue la ricerca non dispone dell'autorizzazione per leggere gli attributi di default users conten, l'operazione di ricerca avrà esito negativo, causando L'attributo o il valore del servizio directory specificato non esiste, eccezione.
Ciò vale anche per la ricerca di oggetti computer tramite ComputerPrincipal::FindByIdentity e non si dispone dell'autorizzazione di lettura per CN=Computer container e non è stato specificato un container nel costruttore di System.DirectoryServices.AccountManagemnt.PrincipalContext. La sezione delle osservazioni della documentazione in http://msdn.microsoft.com/en-us/library/system.directoryservices.accountmanagement.principalcontext.principalcontext.aspx illustra le regole seguite dalla classe PrincipalContext nella selezione di un contenitore quando non ne è stato specificato uno in modo esplicito nel costruttore.
"Ottenere un'eccezione L'attributo o il valore del servizio directory specificato non esiste quando si tenta di cercare un utente in un contenitore AD utilizzando System.DirectoryServices.AccountManagement.UserPrincipal::FindByIdentity
Ciò si verifica perché se non è specificato alcun contenitore, la classe di contesto principale creerà un oggetto System.DirectoryServices.DirectoryEntry eseguendo l'associazione al contenitore incorporato CN=Users per avviare la ricerca degli utenti. System.DirectoryServices si basa su ADSI. ADSI, per impostazione predefinita, esegue una ricerca objectclass=* come parte del normale processo di associazione, a meno che non venga specificato il flag fastbind. Se l'utente che esegue la ricerca non dispone dell'autorizzazione per leggere gli attributi di default users conten, l'operazione di ricerca avrà esito negativo, causando L'attributo o il valore del servizio directory specificato non esiste, eccezione.
Ciò vale anche per la ricerca di oggetti computer tramite ComputerPrincipal::FindByIdentity e non si dispone dell'autorizzazione di lettura per CN=Computer container e non è stato specificato un container nel costruttore di System.DirectoryServices.AccountManagemnt.PrincipalContext. La sezione delle osservazioni della documentazione in http://msdn.microsoft.com/en-us/library/system.directoryservices.accountmanagement.principalcontext.principalcontext.aspx illustra le regole seguite dalla classe PrincipalContext nella selezione di un contenitore quando non ne è stato specificato uno in modo esplicito nel costruttore.
Resolution
Assegnare l'autorizzazione di lettura ai gruppi 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.