Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Software an Rechner in IP range verteilen per batch

Frage Entwicklung Batch & Shell

Mitglied: Steff221

Steff221 (Level 1) - Jetzt verbinden

21.01.2010 um 12:04 Uhr, 4995 Aufrufe, 15 Kommentare

Hallo zusammen,

ich benötige eure Hilfe bei einem Batch Skript. Das ganze ist als einfache "kopier" Aufgabe gestartet und nimmt jetzt immer wildere Ausmaße an.
Im Endeffekt soll ein kleines Tool auf eine Gruppe von Rechner im Netzwerk verteilt werden.
Die Hostnamen bzw. die IP´s sind nicht bekannt bzw. bekommen die Rechner ihre IP per DHCP und da nicht immer alle Rechner online sind, müsste erst geprüft werden ob der jeweilige Rechner auch am Netz hängt .
Mein gedachter Ablauf sollte wie folgt aussehen:

-prüfen ob rechner im Netz hängen
-hängt rechner im Netz soll geprüft werden ob bestimmtes Verzeichnis vorhanden
-ist bestimmtes Verzeichnis vorhanden = exit
-Verzeichnis nicht vorhanden = kopiere Verzeichnis von share


Dazu kommt das ich eigentlich gar keine Ahnung von der Materie habe, habe mich jetzt einige Zeit damit beschäftigt und einige Lösungsansatze gefunden, allerdings weiß ich diese Ansätze nicht mit einander zu kombinieren.

mit der folgenen Schleife habe ich es geschafft das Netz zu scannen

FOR /L %i IN (1,1,254) DO ping -n 1 192.168.0.%i

kann ich hier mit error Leveln arbeiten ? Sprich:

if error 0 goto copy
:copy
if not exist "c:\programme\Verzeichnis" DO net use x: \\192.168.0.2\balabal\Verzeichnis
copy x:\192.168.0.2\balabal\Verzeichnis c:\programme\

und wie schaffe ich es das er dies auf jede gefundene IP in diesem range ausführt.


Das wäre der erste wichtig Punkt für mich, läßt sich das so bzw. so ähnlich realisieren ?

Richtig nett wäre noch eine zusätzliche Funktion. Wenn man das Skript startet soll ein prompt erscheinen in dem man den IP Bereich bzw. die start und end ip eingeben kann.
Etwa so :

@ECHO off
SET /p sub=IP-Bereich eingeben: 195.190
SET /p a=Start-IP eingeben: 195.190%sub%.
SET /p b=End-IP eingeben: 195.190%sub%.

ECHO Pinge IPs von 195.190%sub%.%a% bis 195.190%sub%.%b%

FOR /L %%i IN (%%a 1 %%b) DO ping -n 1 195.190%sub%.%%i

geht aber auch nich so richtig. ist aber auch nur ein netter zusatz, wichtig wäre der erste teil.

Komme einfach nicht weiter, google und board suche haben mir auch nicht wirklich geholfen, daraus habe ich meine Ansätze bekommen, die es halt noch zu korrigieren bzw. kombinieren gilt.


Bin für jede Hilfe dankbar !!!
Mitglied: fritzo
21.01.2010 um 12:45 Uhr
01.
@ECHO OFF 
02.
 
03.
set /P subnetz=Bitte geben Sie ein Subnetz ein:  
04.
set /P ipstart=Bitte geben Sie die Start-IP ein:  
05.
set /P ipende=Bitte geben Sie die End-IP ein:  
06.
 
07.
@echo. 
08.
@echo Angegebenes Subnetz: %subnetz% 
09.
@echo. 
10.
FOR /L %%i IN (%ipstart%,1,%ipende%) DO @ping -n 1 %subnetz%.%%i|find /i "Antwort" >nul && ( 
11.
@echo %subnetz%.%%i online, kopiere.. 
12.
@xcopy /E /T \\192.168.0.2\balabal\Verzeichnis \\%subnetz%.%%i\c$\programme\Verzeichnis\ 
13.
) || ( 
14.
@echo %subnetz%.%%i offline 
15.
16.
 
Bitte warten ..
Mitglied: miniversum
21.01.2010 um 12:46 Uhr
Mal ungetestet kannst du es mal damit versuchen:
01.
@echo off 
02.
SET /p sub=IP-Bereich eingeben: 195.190. 
03.
SET /p a=Start-IP eingeben: 195.190.%sub%. 
04.
SET /p b=End-IP eingeben: 195.190.%sub%. 
05.
 
06.
ECHO Pinge IPs von 195.190.%sub%.%a% bis 195.190.%sub%.%b% 
07.
FOR /L %%i IN (%a%,1,%b%) DO ping -n 1 195.190.%sub%.%%i>NUL && goto:copy %%i 
08.
goto:eof 
09.
 
10.
:copy 
11.
set IP=195.190.%sub%.%1 
12.
echo erreichbar: %IP% 
13.
if not exist "c:\programme\Verzeichnis" DO net use x: \\192.168.0.2\balabal\Verzeichnis 
14.
copy x:\192.168.0.2\balabal\Verzeichnis c:\programme\
Den genauen copy must du mal selbst rausfinden
Bitte warten ..
Mitglied: 60730
21.01.2010 um 12:52 Uhr
Zitat von Steff221:
Hallo zusammen,

Mein gedachter Ablauf sollte wie folgt aussehen:

-prüfen ob rechner im Netz hängen
-hängt rechner im Netz soll geprüft werden ob bestimmtes Verzeichnis vorhanden
-ist bestimmtes Verzeichnis vorhanden = exit
-Verzeichnis nicht vorhanden = kopiere Verzeichnis von share

Im Prinzip fehlt dir doch als nachfolger vom 3. Schritt -> Wenn vorhanden - trage den Zustand in ein Logfile ein - bzw trage den Rechner aus der Liste - der noch zu verteilenden aus.

Da das ganze aber ein arg krummer Weg ist - empfehle ich dir - lass es.

Sinnvoller ist das nutzen der Computerstartupscripte - denn dann werden die Rechner schon beim hochfahren - vorm anmelden des users mit dem Ordner beschickt und nicht erst dann, wenn du deine Batch losläßt.
Ps: Immer wieder gerne genommen - bei deinem Weg kann es dir passieren, dass der User den rechner während des kopierens herunterfährt - ergo der Ordner zwar angelegt ist - aber evtl. nur halb gefüllt.

Gruß
Bitte warten ..
Mitglied: Tommy70
21.01.2010 um 13:05 Uhr
Oder du siehst dir mal das an.
Dieses Script prüft alle Rechner in der Domäne auf Erreichbarkeit. Da fällt dann das Scannen weg.
Bitte warten ..
Mitglied: Steff221
21.01.2010 um 13:06 Uhr
Wow , das ist ja mal fix , vielen Dank für die schnelle Hilfe !!!
Werde es direkt testen und dann mein feedback posten.

nochmal vielen Dank !!!!
Bitte warten ..
Mitglied: Steff221
21.01.2010 um 14:37 Uhr
geht leider noch nicht so ganz ..
was ich vergessen habe ist die authentifizierung ....müsste doch sowas wie einen global account haben um das verzeichnis auf die rechner zu kopieren, oder sehe ich das falsch.

das würde auch das scheitern des skripts direkt am anfang erklären, sieht so aus als würde er direkt beim scannen scheitern, fehler oder so gibbet nich
Bitte warten ..
Mitglied: 60730
21.01.2010 um 14:43 Uhr
Servus,

nochmal der Hinweis auf die Computerstartupscripte.

Psinfo ist wie fast alle Sysinternal Tools mit [-u Username] [-p Password] aufrufbar.

  • Ein irgendeine.exe /? hilft fast immer und wenn nicht - dann irgendeine.exe --help

Gruß
Bitte warten ..
Mitglied: fritzo
21.01.2010 um 15:00 Uhr
Bezogen auf mein Batch oben:

speicher das Batch als CopyBalabal.cmd ab und ruf es in einer Dosbox zusammen mit dem Befehl "runas" auf. Dieser Befehl ermöglicht, eine andere Benutzerkennung beim Aufruf zu verwenden.

01.
runas /noprofile /user:<Benutzername> CopyBalabal.cmd
Du kannst das Script auch als geplanten Task ausführen lassen, was sich besonders dann anbietet, wenn es unbeaufsichtigt und/oder mehrmals ausgeführt werden soll. Hierzu erstellst Du einen geplanten Task, dem Du dann die Benutzerkennung und das Passwort mitgibst. Der Task wird anschließend zur angegebenen Zeit unter der angegebenen Benutzerkennung automatisch ausgeführt.

Gruß,
fritzo
Bitte warten ..
Mitglied: Steff221
21.01.2010 um 15:29 Uhr
erstmal danke für die schnellen Antworten !

@fritzo

wenn ich das skript ausführe werde ich im 1. schritt aufgefordert das subnet einzugeben
in meinem fall : 255.255.255.128
start IP : 195.190.0.1
end IP :195.190.0.240

danach erscheint :

255.255.255.128.195 offline

danach abbruch


sorry für die ständigen nachfragen
Bitte warten ..
Mitglied: 60730
21.01.2010 um 15:41 Uhr
Zitat von Steff221:
sorry für die ständigen nachfragen

Salü,

Gegenfrage(n) meinerseits:

  • wie bekommst du heraus, wann du das Script nicht mehr laufen lassen mußt, weil alle Rechner den Ordner bereits erhalten haben
  • Was spricht gegen die von mir bereits 2* gepostete Lösung?

Gruß
jaja ich halt mich ja schon raus - interessiert mich aber, warum um Inris Vater willen - die schlechte Lösung den Vorzug erhält.
Bitte warten ..
Mitglied: fritzo
21.01.2010 um 15:50 Uhr
:D

Simples Mißverständnis. "Subnetz" bezeichnet hier die ersten drei Okette des abzufragenden Subnetzes und die IP-Adressen das letzte Oktett.

Gib nach Start des Scripts folgendes ein:

Subnetz: 195.190.0
Start-IP: 1
End-IP: 240


Ansonsten tendiere ich dazu, die Meinung unseres verehrten Doc House aka Timo mitzuvertreten. Das Batch hier eignet sich für eine AdHoc-Verteilung auf wenige Rechner, zB für Nacharbeiten nach einer Verteilung. Wenn Du sicherstellen willst, daß Software turnusmässig verteilt wird und das ganze auch per Log o.ä. nachvollziehbar sein soll, dann würde ich es definitiv auch eher über ein Startscript umsetzen; es ist einfach sicherer so. Falls Eure Umgebung größer sein sollte, dann solltet Ihr langfristig auch über ein Softwareverteilungs-Tool wie SMS o.ä. nachdenken.

Gruß,
fritzo
Bitte warten ..
Mitglied: Steff221
21.01.2010 um 16:23 Uhr
Hi,

dachte mir ich lass das einfach durchlaufen , if exist > weitermachen , if not exist > kopieren .....
das ich damit rechner die nicht "on" sind NICHT abdecke wird mir auch grade bewusst, von da her ist Deine Lösung mit den Start Skripten sicher die besser Variante.
Allerdings haben wir gar keine Dömane ...aller Rechner der Firma befinden sich in einer Arbeitsgruppe .......
Bitte fragt mich nicht wieso, erhalte auf diese Frage von cheffe selbst keine vernüftige Antwort. Weiß nur das bald die neuen Server kommen sollen ....dann soll alles besser werden ......*zwinker*
Von daher werde ich auch an der Lösung von "fritzo" scheitern, da es nur lokale Admins gibt....wie soll ich das packet ohne entsprechende rechte verteilen ........

werde wohl erstmal ein paar grundsätzliche probleme hier beseitigen müssen, dann nochmal genauere gedanken über das skript machen, ein paar FAQ und tutorials lesen und mich dann nochmal hier melden.
Falls noch jemand ne idee hat, immer her damit , wenn nicht auch nicht schlimm , ihr habt mir so schon gewaltig weiter geholfen !!!
Bitte warten ..
Mitglied: fritzo
21.01.2010 um 16:38 Uhr
Hi,

hier eine kurze Auflistung einiger Möglichkeiten, bei Benutzeranmeldung oder Computerstart Scripts oder andere Binaries ausführen zu lassen. Kein Anspruch auf Vollständigkeit, es gibt noch viel mehr Möglichkeiten.

1. usrlogon.cmd
Das Batchfile C:\windows\system32\usrlogon.cmd wird bei jeder Benutzeranmeldung ausgeführt. Hierüber lässt sich ein weiteres Script starten, zB ein Logonscript.

2. HKCU - Runkey
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
Einträge in diesem Key werden bei jeder Benutzeranmeldung im Benutzerkontext ausgeführt.

3. HKLM - Run
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
Einträge in diesem Key werden bei jedem Rechnerstart ausgeführt - eignet sich für computerbasierte Startscripts

4. HKLM - RunOnce
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
Einträge in diesem Key werden beim nächsten Rechnerstart einmalig ausgeführt - eignet sich für einmalige Aktionen

Ansonsten kannst Du, sofern eine Domäne vorhanden ist (habt Ihr ja evtl. irgendwann) eine Gruppenrichtlinie erstellen und dort Logonscripts für den Rechnerstart und/oder die Benutzeranmeldung definieren. Das ist die eleganteste Möglichkeit, die aber nur bei Verwendung einer Domäne zur Verfügung steht. Falls Dir das nicht geläufig sein sollte, schau Dir am besten www.gruppenrichtlinien.de an. Das ist, was Timo mit "Computerstartupscripte" meint (falls ich mich irre - ignore or flame)

Gruß,
fritzo
Bitte warten ..
Mitglied: fritzo
21.01.2010 um 16:45 Uhr
Nochwas - falls Deinem Chef eine Windows-Serverlizenz zu teuer sein sollte, tut es vielleicht zur Not ja auch ein Samba-Server - mit dem lässt sich ein Domänencontroller nachbilden und man hat auch zentrale File/Druckdienste.

hth,
fritzo
Bitte warten ..
Mitglied: Steff221
21.01.2010 um 17:02 Uhr
Hey,

wow, das sind auf jeden fall eine Menge hilfreicher Infos !!!
Denke hiermit wird sich auf jeden Fall früher oder später ein Erfolg einstellen.

@fritzo
mit den korrigierten Eingaben, geht es soweit das er scannt und versucht den kopier vorgang zu starten

Damit habe ich auf jeden Fall schonmal eine gute basis, alles weitere dann wenn hier Infrastruktur mäßig erweitert wurde.

Nochmals vielen vielen Dank für eure Zeit und Unterstützung !!!!!!

steff
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
LAN, WAN, Wireless
gelöst Switch mit eigener IP Range (8)

Frage von Heinz189 zum Thema LAN, WAN, Wireless ...

Router & Routing
gelöst Fritzbox 7490 VPN IP Range anpassen (4)

Frage von hannsgmaulwurf zum Thema Router & Routing ...

Microsoft Office
gelöst ACCESS Prüfen ob IP Adresse in IP Range vorhanden (6)

Frage von thomas1972 zum Thema Microsoft Office ...

Windows Netzwerk
Batch, Link verteilen (3)

Frage von Andreas-sca zum Thema Windows Netzwerk ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Windows 7
Verteillösung für IT-Raum benötigt (12)

Frage von TheM-Man zum Thema Windows 7 ...