Spostare i file nelle condivisioni di rete
-
13-10-2019 - |
Domanda
Voglio automatizzare molte delle mie attività quotidiane tramite PowerShell. Un processo che abbiamo è di imaging desktop dopo ore. Una volta che questa operazione è stata completata, i file di immagine devono essere spostati fuori i dischi rigidi dei server su un'unità di rete. Sto scrivendo un app per l'esecuzione come un servizio sulla mia macchina che chiamerà lo script PowerShell e battere tutto fuori, mi avvisa solo quando si verifica un problema.
Ho creato una directory sul server per gli script. Funziona bene se chiamo il mio script, FileCopy.ps1, dal server:
copy-item C:\scripts\myFile1.txt -destination C:\scripts\myFile2.txt
Tuttavia, a mio Net app, che io chiamo lo script da mia macchina locale:
RunScript(LoadScript(@"\\Server\ServerShare\FileCopy.ps1"));
non funziona. Ecco perché vede C: \ scripts come essere sulla macchina locale. Così, lo cambio:
copy-item \\Server\ServerShare\myFile1.txt -destination \\Server\ServerShare\myFile2.txt
non funziona. Aggiungo un'altra linea allo script:
copy-item \\Server\ServerShare\myFile1.txt -destination \\Server\ServerShare\myFile2.txt
get-childitem \\Server\ServerShare | format-table name
E 'ancora non copia il file, ma ha restituire il contenuto della directory di script sul server.
Così vado al server ed eseguire lo script con i percorsi UNC in atto - restituisce PowerShell un errore
Copy-Item : Access to the path '\\Server\ServerPath\myFile2.txt' is denied.
Questa sembra essere la radice del problema. Qualsiasi idea di come posso ottenere intorno a questo? Ho effettuato l'accesso al server come un amministratore.
Soluzione
L'esecuzione dello script come amministratore non importa con condivisioni di rete IIRC. L'autorizzazione di condivisione predefinite consentono solo la lettura. Quelle permanenti devono essere aggiornati per consentire la scrittura alla condivisione.
FYI se si sta utilizzando net share
per creare le condivisioni su Windows 7 sarà necessario utilizzare il /grant:<users>,CHANGE
per concedere le autorizzazioni a un utente.
Altri suggerimenti
Sono su Server 2003 R2. Amministratore ha avuto pieno accesso nella scheda di sicurezza, ma sono andato alla scheda condivisione, permessi, e tutti erano impostato l'accesso in lettura. Ho aggiunto admin e me stesso come Controllo completo, ora la vita è buona !!