Pot copia fișiere într-un loc de rețea dintr-un script sau din linia de comandă?

Este posibil ca în Windows XP să copiați fișiere într-o locație de rețea din linia de comandă, dintr-un fișier batch sau chiar mai bine dintr-un script PowerShell?

Ceea ce ma trimis pe acest drum de cercetare a fost încercarea de a publica fișiere într-o bibliotecă de documente WSS 3.0 de la mașina unui utilizator. Nu pot cartona o unitate la biblioteca în cauză deoarece site-ul WSS este disponibil numai pentru autentificarea prin NTLM pe un port diferit de 80 sau 443. Presupun că aș putea să folosesc alternativ serviciile Web WSS pentru a împinge fișierele, Sunt foarte curios de răspunsul la această întrebare acum.

0
fr hi bn
vedeți și întrebarea similară aici: serverfault.com/q/43116/84502
adăugat autor Synox, sursa

9 răspunsuri

Da, poti. Vă sugerez să folosiți un instrument ca robocopul.

0
adăugat

ați putea folosi comenzile "net" pentru autentificarea și copierea fișierelor.

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

Nu sunt într-adevăr sigur că exact cum să se ocupe de autentificare dacă este necesar.

0
adăugat

S-ar putea să mă înșel, dar cred că nici soluția lui Robocopy sau soluția de comandă a lui Nathan nu vor funcționa. Robocopul pare să dorească o unitate mapată, pe care nu o pot face pentru că nu rulează pe portul 80 sau 443, iar Windows nu poate gestiona o cale care include portul într-un nume în stil UNC:

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

Nu am văzut nici o sarcină NAnt care să se ocupe de această situație.

De asemenea, știu că există instrumente care îmi vor permite să cartografice unitățile WebDAV. Mă întrebam mai mult dacă există o modalitate de a utiliza locațiile de rețea care au fost configurate fără a utiliza interfața grafică.

0
adăugat

Din ceea ce văd, se pare că nu este posibilă accesarea/manipularea directă a unei locații de rețea din linia de comandă, fie ea în PowerShell sau promptul de comandă simplu.

@slipsec (# 13899): Vă mulțumim pentru sugestie, dar PowerShell nu acceptă numărul de port din calea destinației mai mult decât comanda net use .

Deci, cel mai bun lucru pe care îl pot da să fac în situația mea special este musca glonț și cumpere ceva de genul WebDrive pentru a permite unitate de cartografiere prin intermediul WebDAV pe porturi non-standard, sau de a face unele configurație diferită (de exemplu aplicație web separată, cu o adresă IP diferită și anteturi gazdă) în SharePoint pentru a expune site-ul prin intermediul NTML pe un port standard de.

0
adăugat

Dacă este ceva ce trebuie să scrii, ar trebui să ții cont NAnt .

Este o aplicație folosită în principal pentru scrierea de scripturi, dar este foarte puternică și în mod rezonabil ușor de început.

Există, de asemenea, NAntContrib și sarcină ftp nant care ar trebui să vă ajute.

0
adăugat

Locurile de rețea nu au într-adevăr un API, ci doar o grămadă de comenzi rapide, iar partajarea SharePoint utilizează o extensie Shell, dacă îmi amintesc corect.

Cu toate acestea, accesând Sharepoint ca sistem de fișiere din PowerShell de asemenea necesită o extensie, Provider SharePoint .

0
adăugat

Powershell utilizează abstractizarea furnizorilor pentru a furniza o interfață comună în bazele de date. Acestea par să rămână cu substantivul comun "Item", astfel încât să puteți obține o listă completă cu man * item * . Dacă știți un alt mod de a copia și de a lucra în alt mod cu datele dintr-un magazin, este posibil să o utilizați, dar folosirea cmdlet-urilor oferă o abordare mai bună "învățați-o dată, folosiți-adesea". În cazul tău, ai putea:

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

Documentul de copiere acceptă, de asemenea, parametrul -Credențial dacă aveți nevoie de el.

0
adăugat
Elementul de copiere are un parametru -Credential, dar nici unul dintre furnizorii standardi (și anume sistemul de fișiere) nu-l acceptă, deci nu este într-adevăr utilizabil.
adăugat autor chills42, sursa

Folosind un fișier batch, puteți să vă conectați la resursă și să copiați fișierul:

Fișierul lot ar conține următoarele:

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

de exemplu.

net use \\Development\myfolder mypassword /user:Administrator
copy newfile.c \\development\myfolder
0
adăugat

Dacă te referi la o box , folosește doar xcopy . Este destul de standard ca xcopy să fie disponibilă.

xcopy src \\dest-machine\shared-library-name\dest
xcopy \\src-machine\shared-library-name\dest src
0
adăugat