SourceOne for Files Systems : Les utilisateurs ne peuvent pas récupérer les fichiers avec des autorisations « Mes fichiers »
Summary: SourceOne for Files Systems : Les utilisateurs ne peuvent pas récupérer les fichiers avec des autorisations « Mes fichiers »
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 for Files Systems : Les utilisateurs ne peuvent pas récupérer de fichiers avec les autorisations du dossier mappé « Mes fichiers » attribuées au groupe AD des utilisateurs de domaine.
Toutefois, si vous utilisez l’identité du compte de service, tous les raccourcis de fichier sont accessibles. Toutefois, tous les utilisateurs standard ne peuvent accéder à aucun fichier, sauf si leurs autorisations d’accès sont directement spécifiées sous les autorisations NTFS sur le fichier lui-même avant l’archivage et le raccourci (à l’aide du snapshot des autorisations du système de fichiers).
Après un échec de la récupération, les éléments suivants s’affichent dans le journal Docmanageservice :
DocumentService ::D oGetMessage|ERREUR|Erreur GetMessage : Code d’erreur : 0x80070005, dossier : xxxxxxxx L’accès est refusé. (Exception de HRESULT : 0x80070005 (E_ACCESSDENIED)) |(0)|ID de la tâche : -1; Nom de l’activité : SERV1551 ; ID d’activité : -1; Type d’activité : -1 ; Nom du serveur
Dell EMC dispose d’un outil de groupe de test, anciennement TestFixForGetAuthorizedGroup. Il utilise les mêmes classes que l’application SourceOne pour déterminer si le compte de service peut lire les groupes AD dans lesquels résident les utilisateurs.
Cet outil utilise les classes d’espace de nommage System.DirectoryServices pour trouver les utilisateurs AD, par exemple :
var domain = new PrincipalContext(ContextType.Domain) ;
var user = UserPrincipal.FindByIdentity(domaine, userName) ;
UserPrincipal upLogonUser = UserPrincipal.FindByIdentity(pc, IdentityType.DistinguishedName, sUserDN) ;
À moins que cet outil ne s’exécute sous une identité d’administrateur de domaine, vous obtiendrez l’exception suivante :
Texte de l’exception **************
System.Runtime.InteropServices.COMException (0x8007200A) : L’attribut ou la valeur du service d’annuaire spécifié n’existe pas.
à 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 context, Type principalType, Nullable'1 identityType, String identityValue, DateTime refDate)
à 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)
De plus, l’exécution de ce script PS1 de base qui appelle les mêmes classes renvoie le même message « L’attribut ou la valeur du service d’annuaire spécifié n’existe pas. » : 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 tous les groupes d’utilisateurs (direct)
$user. GetAuthorizationGroups() #gets tous les groupes d’utilisateurs, y compris les groupes imbriqués (indirects)
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/
"Obtention d’une exception L’attribut ou la valeur du service d’annuaire spécifié n’existe pas, lorsque vous tentez de rechercher un utilisateur dans un conteneur AD à l’aide de System.DirectoryServices.AccountManagement.UserPrincipal ::FindByIdentity
Cela se produit, car si aucun conteneur n’est spécifié, la classe de contexte principal crée un objet System.DirectoryServices.DirectoryEntry en se liant au conteneur CN=Users intégré pour commencer à rechercher des utilisateurs. System.DirectoryServices s’appuie sur ADSI. Par défaut, ADSI effectue une recherche objectclass=* dans le cadre de son processus de liaison normal, sauf si la balise fastbind est spécifiée. Si l’utilisateur qui effectue la recherche n’est pas autorisé à lire les attributs contenus dans les utilisateurs par défaut, l’opération de recherche échoue, ce qui entraîne L’attribut ou la valeur du service d’annuaire spécifié n’existe pas, exception.
Cela est également vrai lorsque vous recherchez des objets d’ordinateur à l’aide de ComputerPrincipal ::FindByIdentity et que vous n’avez pas l’autorisation de lecture sur le conteneur CN=Computer et que vous n’avez pas spécifié de conteneur dans le constructeur de System.DirectoryServices.AccountManagemnt.PrincipalContext. La section remarques de la documentation de http://msdn.microsoft.com/en-us/library/system.directoryservices.accountmanagement.principalcontext.principalcontext.aspx explique les règles suivies par la classe PrincipalContext lors de la sélection d’un conteneur lorsqu’il n’a pas été explicitement spécifié dans le constructeur.
"Obtention d’une exception L’attribut ou la valeur du service d’annuaire spécifié n’existe pas, lorsque vous tentez de rechercher un utilisateur dans un conteneur AD à l’aide de System.DirectoryServices.AccountManagement.UserPrincipal ::FindByIdentity
Cela se produit, car si aucun conteneur n’est spécifié, la classe de contexte principal crée un objet System.DirectoryServices.DirectoryEntry en se liant au conteneur CN=Users intégré pour commencer à rechercher des utilisateurs. System.DirectoryServices s’appuie sur ADSI. Par défaut, ADSI effectue une recherche objectclass=* dans le cadre de son processus de liaison normal, sauf si la balise fastbind est spécifiée. Si l’utilisateur qui effectue la recherche n’est pas autorisé à lire les attributs contenus dans les utilisateurs par défaut, l’opération de recherche échoue, ce qui entraîne L’attribut ou la valeur du service d’annuaire spécifié n’existe pas, exception.
Cela est également vrai lorsque vous recherchez des objets d’ordinateur à l’aide de ComputerPrincipal ::FindByIdentity et que vous n’avez pas l’autorisation de lecture sur le conteneur CN=Computer et que vous n’avez pas spécifié de conteneur dans le constructeur de System.DirectoryServices.AccountManagemnt.PrincipalContext. La section remarques de la documentation de http://msdn.microsoft.com/en-us/library/system.directoryservices.accountmanagement.principalcontext.principalcontext.aspx explique les règles suivies par la classe PrincipalContext lors de la sélection d’un conteneur lorsqu’il n’a pas été explicitement spécifié dans le constructeur.
Resolution
Attribuez une autorisation de lecture aux groupes 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.