script end powershell

end - Errores de permiso en PowerShell



end script powershell (4)

Soy nuevo en PowerShell. Cuando intento escribir un script simple que elimina el contenido de una carpeta y luego lo llena con archivos copiados de una carpeta diferente, siempre obtengo un error de PermissionDenied .

Detalles:

+ remove-item <<<< D:/path/* -recurse + CategoryInfo : PermissionDenied: (save.gif:FileInfo) [Remove-Item], IOException + FullyQualifiedErrorId : RemoveFileSystemItemUnAuthorizedAccess,Microsoft.PowerShell.Commands.RemoveItemCommand

¿Dónde está el problema? Puedo manipular ambas carpetas a través de Explorer. El error ocurre tanto al ejecutar desde un archivo de script como desde el shell (utilizando Windows PowerShell ISE). El proceso ISE se ejecuta bajo mi cuenta. Estoy ejecutando Windows 7 Professional y soy un administrador local.

Editar: Después de la sugerencia de Richard, probé el modo detallado (que parecía no tener ningún efecto).

PS Z:/> $error[0] | fl * -force PSMessageDetails : Exception : System.IO.IOException: Not Enough permission to perform operation. TargetObject : D:/path/file.txt CategoryInfo : PermissionDenied: (D:/path/file.txt:FileInfo) [Remove-Item], IOException FullyQualifiedErrorId : RemoveFileSystemItemUnAuthorizedAccess,Microsoft.PowerShell.Commands.RemoveItemCommand ErrorDetails : Cannot remove item D:/path/file.txt: Not Enough permission to perform operation. InvocationInfo : System.Management.Automation.InvocationInfo PipelineIterationInfo : {0, 1}

No veo nada de gran utilidad allí (pero gracias por los consejos de todos modos).

Edición 2: Bien, aquí está la fuente del script:

remove-item D:/path_A/* -recurse copy-item D:/path_B/* D:/path_A/

Eso es. El elemento remove parece lanzar en cada archivo.


¿Está habilitado el UAC? Si es así, intente ejecutar su sesión de PowerShell como ''Administrador''. Realmente parece que no tienes permiso para eliminar los objetos.

Tenemos políticas de seguridad muy restrictivas donde trabajo y los usuarios que no están familiarizados con UAC se queman todo el tiempo.


¿Has intentado?

remove-item D:/path_A/* -recurse -force


Además de los motivos mencionados en las publicaciones anteriores, he observado que se produce un error de "Acceso denegado" cuando se accede al archivo mediante un proceso separado (en mi caso, tuve que detener el servidor antes de poder ejecutar el Rename-Item) exitosamente).


Después de este error (y asumiendo en ese punto el error más reciente):

$error[0] | fl * -force

ampliará los detalles del error y la excepción. Eso debería darte más información.

Otra cosa que hacer es activar el registro detallado

$VerbosePreference = "Continue"

para obtener más detalles sobre específicamente qué operación se está realizando cuando se produce el error.

Finalmente, PowerShell ISE incluye un depurador que le permite pasar por su script.