Pregunta

Quiero automatizar muchas de mis tareas diarias a través de PowerShell. Un proceso que tenemos es escritorios de imagen después de las horas. Una vez finalizada esta operación, los archivos de imagen necesitan ser movidos fuera de las unidades de disco duro del servidor a una unidad de red. Estoy escribiendo una aplicación para ejecutarse como un servicio en mi máquina que va a llamar a la secuencia de comandos PowerShell y golpear todo lo que fuera, alertándome sólo cuando hay un problema.

He creado un directorio en el servidor de secuencias de comandos. Funciona bien si llamo a mi guión, FileCopy.ps1, desde el servidor:

copy-item C:\scripts\myFile1.txt -destination C:\scripts\myFile2.txt

Sin embargo, en mi aplicación .Net, llamo el guión de mi máquina local:

RunScript(LoadScript(@"\\Server\ServerShare\FileCopy.ps1")); 

no funciona. Eso es porque ve C: \ scripts como en la máquina local. Por lo tanto, lo cambio:

copy-item \\Server\ServerShare\myFile1.txt -destination \\Server\ServerShare\myFile2.txt

no funciona. Añado otra línea para la secuencia de comandos:

copy-item \\Server\ServerShare\myFile1.txt -destination \\Server\ServerShare\myFile2.txt
get-childitem \\Server\ServerShare | format-table name

Todavía no copia el archivo, pero hace devolver el contenido del directorio de scripts en el servidor.

Así que vuelvo al servidor y ejecutar el script con las rutas UNC en lugar - powershell vuelve un error

Copy-Item : Access to the path '\\Server\ServerPath\myFile2.txt' is denied.

Esa parece ser la raíz del problema. Cualquier idea de cómo puedo evitar esto? Estoy conectado en el servidor como administrador.

¿Fue útil?

Solución

Al ejecutar el script como administrador no importa con recursos compartidos de red IIRC. El permiso compartido predeterminado permitir que únicamente la lectura. Esas ondulaciones permanentes necesitan ser actualizadas para permitir la escritura a la acción.

Para su información si usted está utilizando net share crear los recursos compartidos en Windows 7 tendrá que utilizar el /grant:<users>,CHANGE conceder esos permisos a un usuario.

Otros consejos

Estoy en el servidor 2003 R2. Administrador tenía acceso completo bajo la pestaña de Seguridad, pero fui a la pestaña Compartir, permisos, y cada uno se establece en el acceso de lectura. He añadido admin y yo mismo como Control total, ahora la vida es buena !!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top