Domanda

È possibile, in Windows XP, copiare file su una risorsa di rete dalla riga di comando, da un file batch o, meglio ancora, da uno script PowerShell?

Ciò che mi ha spinto a intraprendere questa strada di ricerca è stato il tentativo di pubblicare file in una raccolta documenti WSS 3.0 dal computer di un utente.Non riesco a mappare un'unità alla libreria in questione perché il sito WSS è disponibile solo per l'autenticazione tramite NTLM su una porta diversa da 80 o 443.Suppongo che potrei in alternativa utilizzare i servizi Web WSS per inviare i file, ma ora sono davvero curioso di sapere la risposta a questa domanda.

È stato utile?

Soluzione 6

Da quello che vedo, sembra che non sia possibile accedere/manipolare direttamente una risorsa di rete dalla riga di comando, sia in PowerShell che nel semplice prompt dei comandi.

@slipsec (#13899):Grazie per il suggerimento, ma PowerShell non supporta il numero di porta nel percorso di destinazione più di quanto lo sia il file net use il comando fa.

Quindi la cosa migliore che riesco a pensare di fare nella mia situazione particolare è stringere i denti e acquistare qualcosa come WebDrive per abilitare la mappatura delle unità tramite WebDAV su porte non standard o eseguire una configurazione diversa (ad es.app Web separata con un indirizzo IP e intestazioni host diversi) in SharePoint per esporre il sito tramite NTLM su una porta standard.

Altri suggerimenti

Utilizzando un file batch, è possibile sia accedere alla risorsa sia copiare il file:

Il file batch conterrebbe quanto segue:

net use \\{dest-machine}\{destfolder} {password} /user:{username}
copy {file} \\{dest-machine}\{destfolder}

per esempio.

net use \\Development\myfolder mypassword /user:Administrator
copy newfile.c \\development\myfolder

Se ti riferisci ad a windows box, basta usare xcopy.È abbastanza standard averlo xcopy disponibile.

xcopy src \\dest-machine\shared-library-name\dest
xcopy \\src-machine\shared-library-name\dest src

Powershell utilizza l'astrazione dei provider per fornire un'interfaccia comune negli archivi dati.Questi sembrano restare fedeli al nome comune "Articolo", quindi puoi ottenere un elenco completo con man *item*.Se conosci un altro modo per copiare e lavorare in altro modo con i dati di un negozio, potresti anche usarlo, ma l'uso dei cmdlet fornisce un approccio migliore "impara una volta, usa spesso".Nel tuo caso potresti:

Copy-Item test.txt -Destination \\dest-machine\share

Copy-item supporta anche il parametro -Credential se ne hai bisogno.

"Risorse di rete" non ha realmente un'API, è solo un mucchio di scorciatoie e la condivisione di SharePoint utilizza un'estensione Shell, se ricordo bene.

Tutto questo per dire:accesso a Sharepoint come file system da PowerShell Anche richiede un'estensione, il Fornitore di SharePoint.

potresti usare i comandi 'net' per autenticarti e quindi copiare i file.

copy src \\dest-machine\shared-library-name\dest

non sono Veramente sicuro esattamente come gestire l'autenticazione se è necessaria.

Se è qualcosa di cui devi scrivere una sceneggiatura, dovresti considerarlo NAnt.

È utilizzato principalmente per creare script, ma è molto potente e ragionevolmente facile da usare.

C'è anche NAntContributo e il attività ftp non necessaria che dovrebbe aiutarti.

Potrei sbagliarmi su questo, ma penso che né la soluzione robocopy di Nick né quella del comando di copia di Nathan funzioneranno.Robocopy sembra volere un'unità mappata, cosa che non posso fare perché non è in esecuzione sulla porta 80 o 443 e Windows non può gestire un percorso che includa la porta in un nome in stile UNC:

copy src \\dest-machine:45000\shared-library-name\dest

Non ho nemmeno visto un'attività NAnt in grado di gestire questa situazione.

So anche che esistono strumenti che mi permetteranno di mappare le unità WebDAV.Mi chiedevo più se esistesse un modo per utilizzare le risorse di rete configurate senza utilizzare la GUI.

Si, puoi.Suggerisco di utilizzare uno strumento come Robocopy.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top