devil2k
Goto Top

Datei per Script übers Netzwerk Kopieren

Eine Datei per Script übers Netzwerk auf eine Adminfreigabe Kopieren

Hallo,

ich möchte gern Dateien nachdem ich sie geändert habe per Script auf einzelne Rechner im Netzwerk kopieren und verteilen.
Ich könnte zwar auf jeden rechner dann einzeln zugreifen, aber ich würde das gern per Script machen, also einrfach nur ausführen und er kopiert die Datei auf die Rechner
Nun wollte ich nicht extra auf dem jeweiligen Rechner noch eine Freigabe einrichten.
Und dachte mir ich nutze dafür einfach die Adminfreigabe c$

Die datei ist immer die gleiche die Kopiert wird, aber halt nicht regelmäßig, da diese nur verteilt werden muss wenn in der Datei was geändert wurde.

Netzwerk: 1 Win 2003 DomainController, und WinXP Pro Clients

Content-Key: 93739

Url: https://administrator.de/contentid/93739

Printed on: April 27, 2024 at 01:04 o'clock

Member: MegaTraveller
MegaTraveller Aug 06, 2008 at 09:57:28 (UTC)
Goto Top
Hi,

so aus dem Bauch heraus, solltest Du Dir mal RSYNC ansehen, das macht quasi out of the Box das was Du brauchst. Vergiss den Server Client Aufbau und sieh Dir einfach nur den Befehl an sich an. Wenn Du möchtest kann ich Dir in den nächsten Tagen eine Anleitung mit dem entsprechenden Skript geben.

Vorerst würde ich das so machen:

sync.cmd======
@echo off
net use z: \\quellserver\c$\
net use y: \\zielserver\c$\

rsync -avz --progress /cygdrive/z/pfadzurdatei/dateiname /cygdrive/y/pfaddeszielordners/


RSYNC für Windows findest Du hier und die Originalquelle unter http://samba.anu.edu.au/rsync/.

Bei dem was Du machst brauchst Du die --delete Option nicht, das schreibe ich hier nur, weil man mit der vor allem bei Strukturen vorsichtig sein sollte, hab schon Leute erlebt, die sich ganze Bereiche ihrer Fileserver gelöscht haben.

Ansonsten kannst Du auch wahrscheinlich mehr aus dem Windows Berich kommend auf Robocopy zurückgreifen. Das findest Du hier.

Bye
MT
Member: AndreasHoster
AndreasHoster Aug 06, 2008 at 09:59:23 (UTC)
Goto Top
Was genau ist die Frage?
Dateien auf die Adminfreigabe kopieren ist einfach, wenn man Adminrechte hat:
copy DATEI \\PCNAME\c$\PFAD
Dann solltest Du eine Liste der PC-Namen haben.
Oder falls Du wissen willst, wie man die erhält, hier ein kleines Beispiel in VBS:
Set objConnection = CreateObject("ADODB.Connection")  
objConnection.Open "Provider=ADsDSOObject;"  
Set objCommand = CreateObject("ADODB.Command")  
objCommand.ActiveConnection = objConnection
Set root = GetObject("LDAP://rootDSE")  
objCommand.CommandText = "<LDAP://" & root.get("DefaultNamingContext") & ">;(objectCategory=computer);distinguishedName,name,operatingsystem;subtree"  
objCommand.Properties("Sort On") = "name"  
Set objRecordSet = objCommand.Execute

While Not objRecordSet.EOF
 wscript.echo objRecordSet.Fields("name") & " - " & objRecordSet.Fields("operatingsystem")  
 objRecordSet.MoveNext
Wend
Member: MegaTraveller
MegaTraveller Aug 06, 2008 at 10:31:10 (UTC)
Goto Top
Ok, ich habe mir nochmals die Mühe gemacht und das hier geschraubt und auch getestet:

sync.cmd=======
@echo off
net use z: /delete
net use y: /delete
net use z: \\QUELLE\C$\VERZEICHNIS\

FOR %%a IN (ZIEL1 ZIEL2) DO call :rscopy %%a
goto :EOF

:rscopy
REM %%a ist jetzt durch call in %1
net use y: \\%1\SHARE\
c:\Anwendungen\cwrsync\bin\rsync -avz --progress /cygdrive/z/datei.pdf /cygdrive/y/
net use y: /delete
goto :EOF

Den Pfad zum rsync kannst Du Dir natürlich sparen wenn er in dem Umgebungsvariablen steht.
Member: MegaTraveller
MegaTraveller Aug 06, 2008 at 10:32:12 (UTC)
Goto Top
nice face-smile das gefällt mir auch.
Member: Soidberg
Soidberg Mar 18, 2009 at 16:27:11 (UTC)
Goto Top
Ich möchte diese Aufgabenstellung nochmal auffrischen und hoffe Ihr könnt mir zeitnah helfen,

Aufgabenstellung in meinem Fall:

Eine Datei auf mehrere Server kopieren und remote ausführen.

Ich habe eine Liste.txt mit Servern im Netzwerk:

SRV-1
SRV-2
SRV-3
usw.

Weiterhin habe ich eine Datei (Analyse.exe).

Die Datei Analyse.exe soll jeweils auf die Server (aus der Liste) auf die administrative Freigabe C$ kopiert und auf dem Server selber ausgeführt werden.

Ausführen müsste ja per PsExec (war es Sysinternals??) oder mit einem anderen Tool gehen.

Die Lösung wird wohl ein Mix aus mir noch unverständlichen FOR-Schleifen sein aber genau da hängt es halt, es ist das Gesamte was ich nicht zusammen bekomme..... face-sad

Kann mir bitte mal jemand einen Lösungsansatz (In a Nutshell) posten?

LG Soidberg
Member: Soidberg
Soidberg Mar 18, 2009 at 18:04:47 (UTC)
Goto Top
Zwischenzeitlich habe ich mich mit Psexec auseinandergesetzt, damit scheint es recht einfach zu sein Dateien zu kopieren und auszuführen.

@mom habe ich folgende Befehlszeile:

psexec @liste.txt -u f-USERNAME -p PASSWORT -n 300 -c -f C:\Analyse.exe -w C:\

Leider klappt es nicht, ich scheine etwas falsch zu machen, ich erhalte die Nachricht Zugriff verweigert. Dabei habe ich doch extra meinen f-account ausgegraben *schmunzel*...

*Da die Liste der Server unsere kompletten Forest enthält und somit sehr viele Server anzufassen sind, sollte die Lösung so funktionstüchtig, einfach und zuverlässig sein.

Ich denke mit dem Tool sollte es gehen wenn man es zum laufen bekommt.... hat jemand Ideen dazu?

EDIT:

Ich habe umgedacht. Anstatt die .exe auf alle Server zu kopieren habe ich eine Freigabe erstellt und dort die .exe abgelegt.

Dann habe ich mir folgendes gebastelt:

psexec @liste.txt -u DOMÄNE\ACCOUNTNAME-p PASSWORT "\\SERVER\FREIGABENAME\Analyse.exe"

Die Liste dazu ist ganz normal aufgebaut:

SRV-1
SRV-2
SRV-3
usw.

LG Soidberg