SourceOne til filsystemer: Brugere kan ikke hente filer med tilladelsen "Mine filer"
Summary: SourceOne til filsystemer: Brugere kan ikke hente filer med tilladelsen "Mine filer"
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 til filsystemer: Brugere kan ikke hente filer med tilladelserne "Mine filer", der er tildelt domænebrugernes AD-gruppe.
Selvom du bruger tjenestekontoidentiteten, kan du få adgang til alle filgenveje. Alle standardbrugere kan dog ikke få adgang til nogen filer, medmindre deres adgangstilladelser er direkte angivet under NTFS-tilladelserne til selve filen, før filen arkiveres og genvej (ved hjælp af øjebliksbilledet af filsystemtilladelser).
Når hentningen mislykkedes, kan du se følgende i Docmanageservice-log:
DocumentService::D oGetMessage|FEJL|GetMessage-fejl: Fejlkode: 0x80070005, Mappe: xxxxxxxx Adgang nægtet. (Undtagelse fra HRESULT: 0x80070005 (E_ACCESSDENIED)) |(0)|Job-id: -1; Aktivitetsnavn: SERV1551; Aktivitets-id: -1; Aktivitetstype: -1; Servernavn
Dell EMC har et testgruppeværktøj, tidligere TestFixForGetAuthorizedGroup. Det bruger de samme klasser som SourceOne-programmet til at fastslå, om tjenestekontoen kan læse de AD-grupper, hvor brugerne bor.
Dette værktøj bruger System.DirectoryServices Namespace-klasser til at finde AD-brugere, f.eks.:
var domain = new PrincipalContext (ContextType.Domain);
var bruger = UserPrincipal.FindByIdentity(domæne, brugernavn);
UserPrincipal upLogonUser = UserPrincipal.FindByIdentity(pc, IdentityType.DistinguishedName, sUserDN);
Medmindre dette værktøj kører under en domæneadministratoridentitet, får du følgende undtagelse:
Undtagelsestekst **************
System.Runtime.InteropServices.COMException (0x8007200A): Den angivne bibliotekstjenesteattribut eller -værdi findes ikke.
på System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail)
på System.DirectoryServices.DirectoryEntry.Bind()
på System.DirectoryServices.DirectoryEntry.get_SchemaEntry()
på System.DirectoryServices.AccountManagement.ADStoreCtx.IsContainer(DirectoryEntry de)
på System.DirectoryServices.AccountManagement.ADStoreCtx.. ctor(DirectoryEntry ctxBase, boolesk ownCtxBase, strengbrugernavn, strengadgangskode, ContextOptions options)
på System.DirectoryServices.AccountManagement.PrincipalContext.CreateContextFromDirectoryEntry(DirectoryEntry entry)
på 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)
på System.DirectoryServices.AccountManagement.Principal.FindByIdentityWithType(PrincipalContext context, Type principalType, String identityValue)
på System.DirectoryServices.AccountManagement.UserPrincipal.FindByIdentity(PrincipalContext context, String identityValue)
at TestFixForGetAuthorizedGroup.Form1.GetUserDistinguishedName(String userName)
at TestFixForGetAuthorizedGroup.Form1.GetUserGroups_Click(Object return, EventArgs e)
Hvis du kører dette grundlæggende PS1-script, der aktiverer s de samme klasser, returneres det samme "Den angivne bibliotekstjenesteattribut eller -værdi findes ikke.": 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 alle brugergrupper (direkte)
$user. GetAuthorizationGroups() #gets alle brugergrupper, herunder indlejrede grupper (indirekte)
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/
"Få en undtagelse Den angivne katalogtjenesteattribut eller -værdi findes ikke , når du forsøger at søge efter en bruger i en AD-beholder ved hjælp af System.DirectoryServices.AccountManagement.UserPrincipal::FindByIdentity
Dette sker, fordi Hvis der ikke er angivet en beholder, opretter den primære kontekstklasse et System.DirectoryServices.DirectoryEntry-objekt ved at binde til den indbyggede CN=Users-container for at begynde at søge efter brugere. System.DirectoryServices er bygget oven på ADSI. ADSI foretager som standard en objectclass=*-søgning som en del af sin normale bindingsproces, medmindre fastbind-flaget er angivet. Hvis den bruger, der udfører søgningen, ikke har tilladelse til at læse attributterne for standardbrugere indeholder, mislykkes søgningen, hvilket forårsager Den angivne bibliotekstjenesteattribut eller -værdi findes ikke , undtagelse.
Dette gælder også, når du søger computerobjekter ved hjælp af ComputerPrincipal::FindByIdentity, og du ikke har læsetilladelse til CN=Computer-containeren og ikke har angivet en beholder i konstruktøren af System.DirectoryServices.AccountManagemnt.PrincipalContext. Bemærkningsafsnittet i dokumentationen på http://msdn.microsoft.com/en-us/library/system.directoryservices.accountmanagement.principalcontext.principalcontext.aspx forklarer de regler, som PrincipalContext-klassen følger ved valg af container, når en sådan ikke udtrykkeligt er specificeret i konstruktøren.
"Få en undtagelse Den angivne katalogtjenesteattribut eller -værdi findes ikke , når du forsøger at søge efter en bruger i en AD-beholder ved hjælp af System.DirectoryServices.AccountManagement.UserPrincipal::FindByIdentity
Dette sker, fordi Hvis der ikke er angivet en beholder, opretter den primære kontekstklasse et System.DirectoryServices.DirectoryEntry-objekt ved at binde til den indbyggede CN=Users-container for at begynde at søge efter brugere. System.DirectoryServices er bygget oven på ADSI. ADSI foretager som standard en objectclass=*-søgning som en del af sin normale bindingsproces, medmindre fastbind-flaget er angivet. Hvis den bruger, der udfører søgningen, ikke har tilladelse til at læse attributterne for standardbrugere indeholder, mislykkes søgningen, hvilket forårsager Den angivne bibliotekstjenesteattribut eller -værdi findes ikke , undtagelse.
Dette gælder også, når du søger computerobjekter ved hjælp af ComputerPrincipal::FindByIdentity, og du ikke har læsetilladelse til CN=Computer-containeren og ikke har angivet en beholder i konstruktøren af System.DirectoryServices.AccountManagemnt.PrincipalContext. Bemærkningsafsnittet i dokumentationen på http://msdn.microsoft.com/en-us/library/system.directoryservices.accountmanagement.principalcontext.principalcontext.aspx forklarer de regler, som PrincipalContext-klassen følger ved valg af container, når en sådan ikke udtrykkeligt er specificeret i konstruktøren.
Resolution
Tildel læsetilladelse til AD-grupper.
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.