Het kopiëren van bestanden van een toegewezen station naar een lokale map mislukt met een fout (Locatie is niet beschikbaar) als UAC is ingeschakeld

In dit artikel wordt de fout Locatie is niet beschikbaar opgelost wanneer u bestanden probeert te kopiëren van een toegewezen station.

Van toepassing op: Windows Server 2012 R2
Origineel KB-nummer: 2019185

Symptomen

Als Gebruikersaccountbeheer (UAC) is ingeschakeld, krijgt u mogelijk de volgende fout wanneer u probeert een bestand te kopiëren van een toegewezen station naar een lokale map:

Locatie is niet beschikbaar
<toegewezen stationsletter>\ verwijst naar een locatie die niet beschikbaar is. Het kan zich op een harde schijf op deze computer of in een netwerk bevinden. Controleer of de schijf correct is geplaatst of dat u verbinding hebt met internet of uw netwerk en probeer het opnieuw. Als deze nog steeds niet kan worden gevonden, is de informatie mogelijk verplaatst naar een andere locatie.

Oorzaak

De onderliggende oorzaak is UAC en de interactie met het gesplitste token. Wanneer een beheerder zich aanmeldt bij een computer waarop Beheer Goedkeuringsmodus (AAM) is ingeschakeld, krijgt de gebruiker twee toegangstokens:

  • een volledig beheerderstoegangstoken
  • een gefilterd standaard toegangstoken voor gebruikers

Wanneer een lid van de lokale groep Administrators zich aanmeldt, worden de windows-beheerdersbevoegdheden standaard uitgeschakeld en worden verhoogde gebruikersrechten verwijderd. Dit resulteert in het standaardgebruikerstoegangstoken. Het standaardtoegangstoken voor gebruikers wordt vervolgens gebruikt om het bureaublad te starten (Explorer.exe). Explorer.exe is het bovenliggende proces waarvan alle andere door de gebruiker geïnitieerde processen hun toegangstoken overnemen. Als gevolg hiervan worden alle toepassingen standaard uitgevoerd als een standaardgebruiker, tenzij een gebruiker toestemming of referenties geeft om een toepassing goed te keuren voor het gebruik van een volledig beheertoegangstoken. In tegenstelling tot dit proces wordt alleen een standaardgebruikerstoegangstoken gemaakt wanneer een standaardgebruiker zich aanmeldt. Dit standaardtoegangstoken voor gebruikers wordt vervolgens gebruikt om het bureaublad te starten.

De volgende voorwaarden moeten aanwezig zijn om de fout op te laten treden:

  1. UAC is ingeschakeld met AAM.
  2. De gebruiker is niet aangemeld als beheerder van de lokale computer of met domeinbeheerdersaccountreferenties.
  3. Een station wordt toegewezen met behulp van standaardgebruikersbeveiligingscontext.
  4. Gebruikers hebben geen NTFS-machtigingen voor maken/schrijven voor de doelmap.

De gebruiker heeft een station toegewezen met behulp van de optie Netwerkstation toewijzen in Windows Verkenner of door de net use opdracht uit te voeren in een opdrachtprompt zonder verhoogde bevoegdheid. Toegewezen stations kunnen worden gezien door nettogebruik uit te voeren als een standaardgebruiker vanaf een opdrachtprompt zonder verhoogde bevoegdheid. In dit geval is het station toegewezen als een standaardgebruiker.

C:\Users\johnsmith>net use
New connections will be remembered.
Status      Local     Remote                    Network
-------------------------------------------------------------------------------
OK          X: [\\contoso-dc1\d$](file://contoso-dc1/d$)               Microsoft Windows Network
The command completed successfully.

Als u dezelfde opdracht uitvoert in een opdrachtprompt met verhoogde bevoegdheid, wordt er geen toegewezen station vermeld.

C:\Windows\system32>net use
New connections will be remembered.
There are no entries in the list.

Het laat duidelijk zien dat de sessie met verhoogde bevoegdheid het toegewezen station van de standaardgebruiker niet ziet. De kopieerbewerking kan dus niet worden voltooid. Dit gedrag is inherent aan het ontwerp van het product.

Opmerking

AAM is standaard ingeschakeld voor accounts die lid zijn van de lokale groep Administrators. De instelling vindt u in het knooppunt Beveiligingsopties van Lokaal beleid, onder Beveiligingsinstellingen en kan worden geconfigureerd met de Lokale groepsbeleid Editor (secpol.msc) en met de groepsbeleid Management Console (GPMC) (gpedit.msc). Zie Gebruikersaccountbeheer voor meer informatie over UAC.

Oplossing

  1. Wijs het station toe met behulp van een proces met verhoogde bevoegdheden. Maar Windows Verkenner ziet de toewijzing van het station met verhoogde bevoegdheid niet. Zie de sectie Meer informatie voor meer informatie.

    Gebruikersaccountbeheer in Windows 7

  2. Gebruik een UNC-pad om verbinding te maken met netwerkresources, bijvoorbeeld \\server\share.

  3. Gebruik groepsbeleid Voorkeuren om stations toe te wijzen. In de onderstaande whitepaper wordt groepsbeleid Voorkeuren geïntroduceerd. Dit is een nieuwe functie in Windows Server 2008. In de whitepaper wordt beschreven hoe u groepsbeleid voorkeuren kunt gebruiken om de instellingen van het besturingssysteem en de toepassing beter te implementeren en te beheren. groepsbeleid Voorkeuren kunt u instellingen voor het besturingssysteem en de toepassing configureren, implementeren en beheren die u eerder niet kon beheren met behulp van groepsbeleid. Voorbeelden zijn toegewezen stations, geplande taken en instellingen voor het menu Start. Voor veel typen besturingssysteem- en toepassingsinstellingen is het gebruik van groepsbeleid Voorkeuren een beter alternatief voor het configureren ervan in Windows-installatiekopieën of het gebruik van aanmeldingsscripts.

    Overzicht van voorkeuren voor groepsbeleid

  4. Wijs stations toe met een aanmeldingsscript dat gebruikmaakt van het script launchapp.wsf om de opdrachten te plannen met behulp van de taakplanner. Het onderstaande document helpt u bij het sorteren van de nieuwe en bijgewerkte functies die beschikbaar zijn in Windows Vista. Het biedt ook veel aanbevolen procedures om u te helpen bij het implementeren van groepsbeleid.

    Groepsbeleid implementeren met Windows Vista

  5. In het volgende artikel wordt een niet-ondersteunde methode beschreven waarmee de eerder beschreven beveiligingswijziging wordt hersteld door de EnableLinkedConnections registerwaarde te configureren. Met deze waarde kan Windows Vista netwerkverbindingen delen tussen het gefilterde toegangstoken en het volledige beheerderstoegangstoken voor een lid van de groep Administrators. Nadat u deze registerwaarde hebt geconfigureerd, controleert LSA of er een ander toegangstoken is gekoppeld aan de huidige gebruikerssessie als een netwerkresource is toegewezen aan een toegangstoken. Als LSA vaststelt dat er een gekoppeld toegangstoken is, wordt de netwerkshare toegevoegd aan de gekoppelde locatie.

    Programma's hebben mogelijk geen toegang tot sommige netwerklocaties nadat u Gebruikersaccountbeheer hebt ingeschakeld in Windows Vista of nieuwere besturingssystemen

Meer informatie

Wanneer de gebruiker met beheerdersrechten zich aanmeldt bij, verwerkt Windows de aanmeldingsscripts met behulp van het token met verhoogde bevoegdheid. Het script werkt en wijst het station toe. Windows blokkeert echter de weergave van de toegewezen netwerkstations omdat het bureaublad het gefilterde token gebruikt terwijl de stations zijn toegewezen met behulp van het token met verhoogde bevoegdheid (volledige beheerder).

Vóór Windows 2000 SP2 bleven apparaatnamen (bijvoorbeeld toegewezen stations) globaal zichtbaar totdat het expliciet werd verwijderd of het systeem opnieuw werd opgestart. Om veiligheidsredenen hebben we dit gedrag gewijzigd vanaf Windows 2000 SP2. Vanaf dit moment worden alle apparaten gekoppeld aan een verificatie-id (LUID). LUID is een id die wordt gegenereerd voor elke aanmeldingssessie. Een proces dat wordt uitgevoerd in de context LocalSystem kan een apparaatnaam maken in de globale apparaatnaamruimte, hoewel lokale naamruimteobjecten globale naamruimteobjecten kunnen verbergen.

Deze toegewezen stations zijn gekoppeld aan LUID. En toepassingen met verhoogde bevoegdheden gebruiken een andere LUID die wordt gegenereerd tijdens een afzonderlijke aanmeldings gebeurtenis. De toepassing met verhoogde bevoegdheid ziet dus geen toegewezen stations meer voor deze gebruiker. U zult hetzelfde gedrag merken als u eerder de CreateProcessAsUser API hebt gebruiktRunAs, maar UAC verhoogt het aantal gebruikers dat deze concepten gaat gebruiken aanzienlijk.

Het resultaat is dat als u een opdrachtprompt verhoogt, u geen lokale naamruimte toegewezen stations meer ziet die zijn gemaakt op basis van uw oorspronkelijke aanmelding (gemaakt via een aanmeldingsscript, met behulp van de WNetAddConnection API of anderszins). Er is een beperking van kracht voor het scenario van starten vanuit Windows Verkenner. Als u dubbelklikt op een uitvoerbaar bestand dat is gedetecteerd als een installatiebestand of is gemanifesteerd als requireAdministrator, kan Windows detecteren dat het is verhoogd en dat er een fout is opgetreden die aangeeft dat het pad niet is gevonden, en die stationstoewijzing kopiëren van de oorspronkelijke LUID. Dat is echter het enige scenario dat is geautomatiseerd.