Toegang tot kopie-item is geweigerd in PowerShell: 8 geteste oplossingen

Toegang tot kopie-item is geweigerd in PowerShell: 8 geteste oplossingen

Het is verbijsterend om de fout Copy-Item Access is Denied in PowerShell tegen te komen, omdat u het proces zonder problemen in File Explorer kunt uitvoeren. Dit komt door het ontbreken van NTFS-machtigingen bij het schrijven naar een netwerkshare, maar de onderstaande oplossingen lossen het probleem in een mum van tijd op.

Hoe los ik de fout Copy-Item Access is Denied in PowerShell op?

1. Zorg voor de juiste NTFS-machtigingen

  1. Druk op Win+ Eom Verkenner te starten .
  2. Navigeer naar de map die u wilt wijzigen.
  3. Klik met de rechtermuisknop op de map en selecteer Eigenschappen .
  4. Klik op het tabblad Beveiliging .
  5. Klik op de knop Bewerken om de machtigingen te wijzigen.
  6. Zorg ervoor dat uw gebruikersaccount of het account dat het PowerShell-script uitvoert, volledige beheermachtigingen heeft.
  7. Klik op Toepassen en vervolgens op OK om de wijzigingen op te slaan.

Door te zorgen voor de juiste NTFS-machtigingen kan het script naar de map schrijven, waardoor toegangsproblemen worden opgelost.

2. Controleer de Share-machtigingen

  1. Open het dialoogvenster Uitvoeren door op Win+ te drukken R, typ fsmgmt.msc en druk op Enter.
  2. Navigeer naar de gedeelde map.
  3. Klik met de rechtermuisknop op de map en selecteer Eigenschappen .
  4. Klik op het tabblad Share-machtigingen .
  5. Zorg ervoor dat de gebruiker of groep die het PowerShell-script uitvoert, volledige beheermachtigingen heeft.
  6. Klik op Toepassen en vervolgens op OK.

Zowel NTFS- als Share-machtigingen moeten schrijftoegang toestaan ​​om bestanden succesvol te kunnen kopiëren.

3. Voer PowerShell uit als beheerder

  1. Klik op de Start- knop.
  2. Typ PowerShell in de zoekbalk.
  3. Klik met de rechtermuisknop op Windows PowerShell en selecteer Als administrator uitvoeren .
  4. Voer uw Copy-Item-script opnieuw uit.

Wanneer u PowerShell als beheerder uitvoert, hebt u volledige toegang tot beveiligde systeemmappen en netwerkshares.

4. Gebruik UNC-paden zonder referenties

  1. Maak een nieuw PowerShell-station voor de netwerklocatie met behulp van New-PSDrive:New-PSDrive -Name "P"-PSProvider FileSystem -Root "\\network\path"-Persist
  2. Gebruik de nieuwe stationsletter om Copy-Item uit te voeren (wijzig de bron- en doelpaden dienovereenkomstig):Copy-Item "P:\source\file"-Destination "P:\destination\path"

Door UNC-paden te gebruiken en een netwerkstation toe te wijzen, kunt u problemen met netwerkpaden met betrekking tot referenties voorkomen.

5. Omgevingsvariabelen in PowerShell wijzigen

  1. Vervang omgevingsvariabelen met PowerShell-syntaxis:Copy-Item -Path "E:\FolderA"-Destination "C:\Users\$($env:USERNAME)\AppData\Roaming\FolderB"-Recurse -Force
  2. U kunt ook rechtstreeks de APPDATA-omgevingsvariabele gebruiken:Copy-Item -Path "E:\FolderA"-Destination "$($env:APPDATA)\FolderB"-Recurse -Force

Door correct te verwijzen naar omgevingsvariabelen in PowerShell, wordt ervoor gezorgd dat paden correct worden omgezet.

6. PowerShell-op afstand inschakelen

  1. Voer op de externe computer het volgende uit:Enable-PSRemoting -Force
  2. Zorg ervoor dat de gebruiker toestemming heeft om scripts op de externe computer uit te voeren:Set-PSSessionConfiguration -ShowSecurityDescriptorUI -Name Microsoft.PowerShell
  3. Gebruik de parameter ToSession voor kopiëren op afstand:$session = New-PSSession -ComputerName "remote_machine"-Credential "username"$source = "C:\path\to\source"$dest = "C:\path\to\destination"Copy-Item -Path $source -Destination $dest -ToSession $session -Recurse -Force

Door PowerShell Remoting in te schakelen en de juiste sessieparameters te gebruiken, verlopen externe bestandsbewerkingen soepeler.

7. Problemen met Gebruikersaccountbeheer (UAC) oplossen

  1. Maak een PowerShell-script om machtigingen te verhogen:If (-NOT ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")) { Start-Process powershell -Verb runAs -ArgumentList $MyInvocation.MyCommand.Definition Break }
  2. Voer de opdracht Copy-Item uit binnen de verhoogde sessie:Copy-Item "C:\source\file"-Destination "C:\Program Files (x86)\target\folder"-Force

Door machtigingen in het script te verhogen, omzeilt u UAC-beperkingen.

8. Behandel het Double Hop-probleem

  1. Kopieer de benodigde bestanden vooraf naar de externe computer:Copy-Item -Path "C:\local\path\file"-Destination "\\remote_machine\path"-Force
  2. Gebruik Invoke-Command om de installatie op de externe machine uit te voeren:Invoke-Command -ComputerName "remote_machine"-ScriptBlock { Copy-Item -Path "\\remote_machine\path\file"-Destination "C:\Windows\Temp"-Force Start-Process msiexec -ArgumentList "/i C:\Windows\Temp\installer.msi /quiet"-Wait }

Door bestanden vooraf te kopiëren en directe paden te gebruiken, voorkomt u problemen met meerdere externe verbindingen.

Door deze oplossingen te volgen, zou u de fout Copy-Item: Access is denied in PowerShell moeten kunnen oplossen.

Als u suggesties of vragen heeft, kunt u deze hieronder in de opmerkingen plaatsen.

Geef een reactie

Je e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *