Retirez-Rubrique en erreur: Impossible de supprimer l'élément [élément de chemin & nom]: le chemin d'Accès "[élément de chemin & nom] " est refusé
Je suis nouveau sur PowerShell.
Je suis en train d'automatiser le déploiement de composants dll à partir d'un dossier sur un serveur source vers plusieurs dossiers sur le serveur de destination. Cela semble comme il devrait être assez simple: copiez des composants à partir de la source (mise en) dossier sur le serveur source vers des dossiers sur le serveur de destination, vérifiez les copies et enfin supprimer des composants de déploiement du dossier sur le serveur source.
La copie du ou des fichiers à partir du serveur source vers le serveur de destination est un travail sans problème.
Toutefois, lorsque le script se déplace à supprimer les composants à partir du serveur source, je suis par intermittence confronté à l'erreur:
"Retirez-Rubrique en erreur: Impossible de supprimer l'élément [élément de chemin & nom]: le chemin d'Accès" [élément de chemin & nom] " est refusé."
J'ai l'exécution de ce script plusieurs fois; parfois, il termine avec pas de problèmes, parfois avec l'erreur. L'erreur ne se produit pas pour tous les fichiers à supprimer et semble se produire sur différentes composantes à chaque fois qu'il présente.
Ci-dessous est la fonction que j'ai écrite à supprimer des composants et vérifier les suppressions:
function DeleteSourceFiles($srcPath) {
# Announce delete
OutputToHostAndLog ("Files will be removed from "+$srcPath+"...")
OutputToHostAndLog "Removing files..."
# Deletes all file items (i.e. all except folders) in source folder
$filesToDelete=Get-ChildItem $srcPath | Where-Object {$_ -is [IO.FileInfo]}
ForEach($item in $filesToDelete) {
Remove-Item $srcPath$item -force
# Verify deletions
if(Test-Path($srcPath+"\"+$item)) {
OutputToHostAndLog ("Delete failed: "+$item.Name)
$fail++
}
else {
OutputToHostAndLog ($item.Name+" deleted successfully...")
}
}
}
L'utilisation de la force de paramètre avec la cmdlet Remove-Item ne semble pas avoir d'effet sur la question. Les fichiers (encore une fois, les différents fichiers avec chaque échec) ne semblent pas être isReadOnly de toute façon.
De même, l'exécution de PowerShell en tant qu'Administrateur ne semble avoir aucun effet, bien que Get-Acl pour le dossier source indique que l'Administrateur doit avoir FullControl.
Est-ce un problème d'autorisations que je suis absent?
Toutes les suggestions de très apprécié...
EDIT:
J'ai mis à jour mon script ainsi:
function DeleteSourceFiles($srcPath) {
# Announce delete
OutputToHostAndLog ("Files will be removed from "+$srcPath+"...")
OutputToHostAndLog "Removing files..."
OutputToHostAndLog $gap
# Delete all file items (i.e. all except folders) in source folder
$filesToDelete=Get-ChildItem $srcPath | Where-Object {$_ -is [IO.FileInfo]} | ForEach {
Remove-Item $_.FullName -Force
# Verify deletions
if(Test-Path($srcPath+"\"+$_)) {
OutputToHostAndLog ("Delete failed: "+$_.Name)
$fail++
}
else {
OutputToHostAndLog ($_.Name+" deleted successfully...")
}
}
}
Cela semble fonctionner OK mais je ne suis toujours pas sûr de savoir pourquoi cette disposition devrait produire des résultats différents. Dans l'intérêt de l'apprentissage, de toutes les suggestions seraient grandement appréciés...
OriginalL'auteur The Furious Bear | 2014-04-08
Vous devez vous connecter pour publier un commentaire.
Intermittent accès refusé erreurs susceptibles d'indiquer qu'un ou plusieurs des fichiers que vous tentez de supprimer a été verrouillé par une autre application. C'est vraiment un problème courant lorsque vous essayez de nettoyer journal des répertoires.
La seule chose que je conseillerais de le faire est d'attendre de l'application avec le déverrouiller le fichier.
Ce serait certainement dire qu'ils ne sont pas en cours d'utilisation. Vous dites que votre version mise à jour du script n'est pas avoir de problèmes?
Pour l'instant, donc bon Jason. Semble étrange qu'avec une légère modification de la structure syntaxique, le script semble fonctionner de manière cohérente lorsque l'original présenté des erreurs intermittentes.
Merci!!!! Mes fichiers ont été verrouillés par la PAUSE, google drive, me disant que ma autorisations sont refusées, même en tant qu'administrateur, j'ai donc commencé à creuser des autorisations, etc. Hareng rouge complet, et j'ai juste besoin de tuer Google Drive. Vous m'avez sauvé beaucoup de temps.
D'attente pour l'application de verrouillage pour libérer le fichier semble assez défaitiste
OriginalL'auteur Jason Morgan
J'ai résolu ce problème en définissant les autorisations de sécurité pour les utilisateurs d'avoir 'Modifier' et 'Contrôle total' ajoutée pour le dossier j'ai essayé de supprimer à partir de
OriginalL'auteur Ian Currie