Zugriff auf Kopierelemente in PowerShell verweigert: 8 getestete Fixes
Das Auftreten des Fehlers „Zugriff auf Kopierelement verweigert“ in PowerShell ist verwirrend, da Sie den Vorgang problemlos im Datei-Explorer ausführen können. Dies liegt an fehlenden NTFS-Berechtigungen beim Schreiben auf eine Netzwerkfreigabe, aber die folgenden Lösungen beheben das Problem im Handumdrehen.
Wie behebe ich den Fehler „Zugriff auf Kopierelement verweigert“ in PowerShell?
1. Stellen Sie die korrekten NTFS-Berechtigungen sicher
- Drücken Sie Win+ E, um den Datei-Explorer zu starten .
- Navigieren Sie zu dem Ordner, den Sie ändern möchten.
- Klicken Sie mit der rechten Maustaste auf den Ordner und wählen Sie Eigenschaften .
- Klicken Sie auf die Registerkarte „Sicherheit“ .
- Klicken Sie auf die Schaltfläche „Bearbeiten“ , um die Berechtigungen zu ändern.
- Stellen Sie sicher, dass Ihr Benutzerkonto oder das Konto, unter dem das PowerShell-Skript ausgeführt wird, über die Berechtigung „Vollzugriff“ verfügt.
- Klicken Sie auf „Übernehmen“ und dann auf „OK“, um die Änderungen zu speichern.
Durch Sicherstellen der richtigen NTFS-Berechtigungen kann das Skript in den Ordner schreiben und Zugriffsprobleme werden behoben.
2. Überprüfen Sie die Freigabeberechtigungen
- Öffnen Sie das Dialogfeld „Ausführen“ durch Drücken Winvon + R, geben Sie fsmgmt.msc ein und drücken Sie Enter.
- Navigieren Sie zum freigegebenen Ordner.
- Klicken Sie mit der rechten Maustaste auf den Ordner und wählen Sie Eigenschaften .
- Klicken Sie auf die Registerkarte „Freigabeberechtigungen“ .
- Stellen Sie sicher, dass der Benutzer oder die Gruppe, die das PowerShell-Skript ausführt, über Vollzugriffsberechtigungen verfügt.
- Klicken Sie auf „Übernehmen“ und dann auf „OK“.
Damit die Datei erfolgreich kopiert werden kann, müssen sowohl die NTFS- als auch die Freigabeberechtigungen Schreibzugriff erlauben.
3. Führen Sie PowerShell als Administrator aus
- Klicken Sie auf die Schaltfläche Start .
- Geben Sie PowerShell in die Suchleiste ein.
- Klicken Sie mit der rechten Maustaste auf Windows PowerShell und wählen Sie Als Administrator ausführen .
- Führen Sie Ihr Copy-Item-Skript erneut aus.
Durch das Ausführen von PowerShell als Administrator wird der vollständige Zugriff auf geschützte Systemordner und Netzwerkfreigaben sichergestellt.
4. Verwenden Sie UNC-Pfade ohne Anmeldeinformationen
- Erstellen Sie mit New-PSDrive ein neues PowerShell-Laufwerk für den Netzwerkspeicherort:
New-PSDrive -Name "P"-PSProvider FileSystem -Root "\\network\path"-Persist
- Verwenden Sie den neuen Laufwerksbuchstaben, um Copy-Item auszuführen (ändern Sie die Quell- und Zielpfade entsprechend):
Copy-Item "P:\source\file"-Destination "P:\destination\path"
Durch die Verwendung von UNC-Pfaden und die Zuordnung eines Netzlaufwerks können Probleme im Zusammenhang mit Anmeldeinformationen und Netzwerkpfaden vermieden werden.
5. Umgebungsvariablen in PowerShell ändern
- Ersetzen Sie Umgebungsvariablen durch die PowerShell-Syntax:
Copy-Item -Path "E:\FolderA"-Destination "C:\Users\$($env:USERNAME)\AppData\Roaming\FolderB"-Recurse -Force
- Alternativ können Sie die Umgebungsvariable APPDATA direkt verwenden:
Copy-Item -Path "E:\FolderA"-Destination "$($env:APPDATA)\FolderB"-Recurse -Force
Durch die korrekte Referenzierung von Umgebungsvariablen in PowerShell wird sichergestellt, dass Pfade ordnungsgemäß aufgelöst werden.
6. Aktivieren Sie PowerShell-Remoting
- Führen Sie auf dem Remotecomputer Folgendes aus:
Enable-PSRemoting -Force
- Stellen Sie sicher, dass der Benutzer über die Berechtigung zum Ausführen von Skripts auf dem Remotecomputer verfügt:
Set-PSSessionConfiguration -ShowSecurityDescriptorUI -Name Microsoft.PowerShell
- Verwenden Sie den Parameter ToSession zum Remote-Kopieren:
$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
Durch Aktivieren der PowerShell-Remoteverwaltung und Verwenden der richtigen Sitzungsparameter laufen Remotedateivorgänge reibungsloser ab.
7. Beheben Sie Probleme mit der Benutzerkontensteuerung (UAC)
- Erstellen Sie ein PowerShell-Skript, um die Berechtigungen zu erhöhen:
If (-NOT ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")) { Start-Process powershell -Verb runAs -ArgumentList $MyInvocation.MyCommand.Definition Break }
- Führen Sie den Befehl „Copy-Item“ innerhalb der Sitzung mit erhöhten Rechten aus:
Copy-Item "C:\source\file"-Destination "C:\Program Files (x86)\target\folder"-Force
Durch die Erhöhung der Berechtigungen innerhalb des Skripts werden UAC-Einschränkungen umgangen.
8. Beheben Sie das Double-Hop-Problem
- Kopieren Sie die erforderlichen Dateien vorab auf den Remotecomputer:
Copy-Item -Path "C:\local\path\file"-Destination "\\remote_machine\path"-Force
- Verwenden Sie Invoke-Command, um die Installation auf dem Remotecomputer auszuführen:
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 }
Durch das Vorkopieren von Dateien und die Verwendung direkter Pfade werden Probleme im Zusammenhang mit mehreren Remoteverbindungen vermieden.
Wenn Sie diese Lösungen befolgen, sollten Sie in der Lage sein, den Fehler „Element kopieren: Zugriff verweigert“ in PowerShell zu beheben.
Wenn Sie Vorschläge oder Fragen haben, können Sie diese unten im Kommentarbereich niederschreiben.
Schreibe einen Kommentar