8 solutions efficaces pour l’erreur « Accès refusé à la copie d’élément » dans PowerShell
Notes clés
- Assurez-vous que les autorisations NTFS et de partage correctes sont définies.
- Exécutez PowerShell avec des privilèges administratifs pour un accès complet.
- Résolvez efficacement les problèmes d’UAC et d’accès à distance.
Résolution de l’erreur d’accès refusé à l’élément de copie dans PowerShell
L’erreur « Accès refusé » de l’élément de copie dans PowerShell peut être frustrante, surtout lorsque l’accès est disponible via l’Explorateur de fichiers. Ce problème survient souvent en raison d’autorisations NTFS ou de partage incorrectes, ou de conditions d’accès administratives. Ce guide propose un ensemble complet de solutions pour résoudre efficacement ce problème.
Comment corriger l’erreur « L’accès à l’élément copié est refusé »
Étape 1 : Assurez-vous que les autorisations NTFS sont correctes
Pour vérifier les autorisations NTFS :
- Appuyez sur Win + E pour démarrer l’explorateur de fichiers.
- Accédez au dossier cible pour lequel vous souhaitez définir des autorisations.
- Cliquez avec le bouton droit sur le dossier et sélectionnez Propriétés.
- Accédez à l’ onglet Sécurité.
- Cliquez sur le bouton Modifier pour modifier les autorisations.
- Assurez-vous que votre compte utilisateur ou le compte exécutant le script dispose d’un accès de contrôle total.
- Cliquez sur Appliquer puis sur OK pour enregistrer les modifications.
En garantissant les autorisations NTFS appropriées, vous permettez au script d’écrire dans le dossier spécifié, résolvant ainsi les conflits d’accès.
Étape 2 : Vérifier les autorisations de partage
Pour vérifier les autorisations de partage, procédez comme suit :
- Ouvrez la boîte de dialogue Exécuter en appuyant sur Win + R, tapez
fsmgmt.mscet appuyez sur Enter. - Localisez le dossier partagé que vous souhaitez ajuster.
- Cliquez avec le bouton droit sur le dossier et choisissez Propriétés.
- Sélectionnez l’ onglet Autorisations de partage.
- Vérifiez que l’utilisateur ou le groupe exécutant le script PowerShell dispose d’un accès Contrôle total.
- Cliquez sur Appliquer puis sur OK pour confirmer les modifications.
Les autorisations NTFS et Share doivent fournir un accès en écriture pour garantir une opération de copie de fichier réussie.
Étape 3 : Exécutez PowerShell en tant qu’administrateur
Pour exécuter PowerShell avec des autorisations élevées :
- Cliquez sur le bouton Démarrer.
- Tapez PowerShell dans la barre de recherche.
- Cliquez avec le bouton droit sur Windows PowerShell et sélectionnez Exécuter en tant qu’administrateur.
- Réessayez d’exécuter votre commande Copy-Item dans la fenêtre élevée.
Le lancement de PowerShell en tant qu’administrateur accorde l’accès aux dossiers système protégés et aux emplacements réseau partagés.
Étape 4 : utiliser des chemins UNC sans informations d’identification
Pour exploiter les chemins UNC dans votre script, suivez ces instructions :
- Créez un nouveau lecteur PowerShell pour votre emplacement réseau en utilisant :
New-PSDrive -Name "P" -PSProvider FileSystem -Root "\\network\path" -Persist - Exécutez la commande Copy-Item en utilisant la nouvelle lettre de lecteur (ajustez les chemins source et de destination selon vos besoins) :
Copy-Item "P:\source\file" -Destination "P:\destination\path"
L’utilisation directe des chemins UNC et le mappage d’un lecteur réseau peuvent éviter les problèmes d’accès liés aux informations d’identification.
Étape 5 : Modifier les variables d’environnement dans PowerShell
Lorsque vous utilisez des variables d’environnement, remplacez-les correctement :
- Exploitez la syntaxe PowerShell comme ceci :
Copy-Item -Path "E:\FolderA" -Destination "C:\Users\$($env:USERNAME)\AppData\Roaming\FolderB" -Recurse -Force - Vous pouvez également référencer directement la variable APPDATA comme suit :
Copy-Item -Path "E:\FolderA" -Destination "$($env:APPDATA)\FolderB" -Recurse -Force
L’implémentation correcte des variables d’environnement dans PowerShell garantit que tous les chemins sont résolus avec précision.
Étape 6 : Activer PowerShell Remoting
Pour activer la communication à distance :
- Sur la machine distante, exécutez :
Enable-PSRemoting -Force - Assurez-vous que l’utilisateur affecté dispose des autorisations nécessaires pour exécuter des scripts :
Set-PSSessionConfiguration -ShowSecurityDescriptorUI -Name Microsoft. PowerShell - Utilisez le paramètre ToSession pour la copie de fichiers :
$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
L’activation de la communication à distance PowerShell et l’utilisation des commandes de session appropriées simplifient les opérations sur les machines.
Étape 7 : Résoudre les problèmes de contrôle de compte d’utilisateur (UAC)
Pour contourner les restrictions UAC, créez un script PowerShell pour l’élévation :
- Utilisez le script suivant pour élever les autorisations :
If (-NOT ([Security. Principal. WindowsPrincipal][Security. Principal. WindowsIdentity]::GetCurrent()).IsInRole([Security. Principal. WindowsBuiltInRole] "Administrator")) { Start-Process powershell -Verb runAs -ArgumentList $MyInvocation. MyCommand. Definition; Break } - Exécutez votre commande Copy-Item dans le contexte de script élevé :
Copy-Item "C:\source\file" -Destination "C:\Program Files (x86)\target\folder" -Force
Ce script déclenche l’élévation dans la commande elle-même pour contourner les limitations UAC.
Étape 8 : Gérer le problème du double saut
Résolvez le problème du double saut en suivant ces mesures :
- Précopiez tous les fichiers nécessaires sur la machine distante en utilisant :
Copy-Item -Path "C:\local\path\file" -Destination "\\remote_machine\path" -Force - Appelez une commande pour exécuter l’installation directement sur la machine distante :
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 }
Cette méthode résout de manière préventive les problèmes liés à plusieurs connexions à distance.
En mettant en œuvre ces stratégies, vous devriez résoudre avec succès l’erreur Copy-Item : l’accès est refusé dans PowerShell.
Pour des questions ou des informations supplémentaires, veuillez partager vos réflexions dans les commentaires ci-dessous.
Conseils supplémentaires
- Vérifiez toujours vos autorisations NTFS avant d’effectuer des opérations sur les fichiers.
- Pensez à utiliser la gestion des erreurs dans vos scripts pour un meilleur débogage.
- Gardez vos scripts PowerShell organisés pour un accès et une maintenance faciles.
Résumé
Dans ce guide, nous avons exploré les causes courantes de l’erreur « Accès refusé » lors de l’utilisation de l’applet de commande Copy-Item dans PowerShell. Nous avons détaillé les étapes à suivre, allant de la vérification des autorisations NTFS et de partage à l’exécution de PowerShell en tant qu’administrateur, en passant par l’utilisation des chemins UNC, et bien plus encore. En suivant ces solutions, les utilisateurs peuvent simplifier les opérations sur les fichiers et minimiser les problèmes d’accès.
Conclusion
La résolution de l’erreur « Copy-Item Access Denied » peut considérablement améliorer votre flux de travail dans PowerShell. En modifiant les autorisations utilisateur et en vérifiant les contextes d’exécution des commandes, vous pouvez résoudre efficacement la plupart des problèmes d’accès. N’oubliez pas d’appliquer ces bonnes pratiques systématiquement pour un fonctionnement plus fluide.
FAQ (Foire aux questions)
Quelle est la cause de l’erreur « Accès à l’élément de copie refusé » ?
L’erreur survient généralement en raison d’autorisations NTFS insuffisantes, d’autorisations de partage mal configurées ou de l’exécution de PowerShell sans droits d’administration.
L’utilisation de chemins UNC peut-elle résoudre les problèmes d’accès ?
Oui, l’utilisation de chemins UNC peut aider à contourner certains problèmes d’informations d’identification déléguées et à améliorer l’accès aux partages réseau.