warcraft
Goto Top

Script zum Neustarten eines PCs

Hallo,

Ich hab folgendes Problem:

Ich installiere ein MSI Paket automatisch über eine GPO im Computerteil. Leider biete M$ in der AD nicht die möglichlkeit irgendwelche Schalter da mitzgeben. Ich müsste nun also einen Neustart nach der Installation des Programmes per Script nachziehen. Noch hört sich das einfach an ABER... das Programm ist schon in eine älterenversion auf dem Client.

Meine Überlegung.

Ich lasse normal das Paket per GPO installieren.
Frage dann mit einem Script das Datum oder wenn ginge noch besser die Dateiversion ab.
Wenn dann die Datei das Datum oder die Dateiversion älter als das von mir eingegebene hat soll eine Datei angelegt werden (möp.log) und ein Neustart soll dann erfolgen.

Damit da keine Schleift passiert halt die möp.log die dann noch vorher abgefragt werden soll ob diese existiert. Wenn ja dann kein neustart.

Ich hab kein plan wie ich das anstellen kann und hoffe mir kann jemand helfen!!!!!


Greetz,
WaRCraFt

Content-ID: 72073

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

Ausgedruckt am: 25.11.2024 um 20:11 Uhr

schregi82
schregi82 27.10.2007, aktualisiert am 18.10.2012 um 18:32:37 Uhr
Goto Top
damit solltest du schonmal ein stückchen weiterkommen:

Datei-Update für alle PCs im Netzwerk automatisieren

back-to-top


Script zum Neustart
schregi82
schregi82 27.10.2007 um 17:50:23 Uhr
Goto Top
@echo off

if exist c:\programme\xy.exe goto 1
if not exist c:\programme\xy.exe goto 2

:1
exit

:2
echo Update, %username% auf %COMPUTERNAME% am %date% um %time%>> pw_protokoll.log
copy x:\xy.exe c:\programme\xy.exe
reboot


EDIT: sorry, hatte den msi-part überlesen
WaRCraFt
WaRCraFt 28.10.2007 um 11:50:20 Uhr
Goto Top
wirklich weiter komm ich damit nicht!

Wie kann ich den ein alter oder Versionsnummer einer Datei auslesen ???


IF DATE > 10.10.2007 c:\test.txt goto 1

oder

IF VERSIONSNUMMER 10.2. c:\test.exe goto 1


1:
restart........

so was stell ich mir vor...


geht sowas?
lowbyte1
lowbyte1 28.10.2007 um 12:41:25 Uhr
Goto Top
hallo

dir /TC

/T Bestimmt welche Zeit verwendet wird (nur für NTFS).

Zeit C Erstellung
A Letzter Zugriff
W Letzter Schreibzugriff


zuerst von der new datei ein Dump in eine datei machen.

so;

dir /TC>>test.txt

dan von der datei im directory

cd ???

dir /TC>>test.txt

dann vergleichen

comp datei1 datei2 /A

dan weiter verarbeiten...

irgend wie so müsste es gehen.


cyu lowbyte
Biber
Biber 28.10.2007 um 13:59:47 Uhr
Goto Top
Moin WaRCraFt,

... und die Datei-Version bekommst Du u.U. mit Commandline-Utilies wie FileVer.exe/FVersion.exe oder ähnlich auf den Schirm.
Gibt es auch vom sympatischen Weltmarktführer höchstselbst in irgendwelchen ResKits.

"u.U." heißt, Du bekommst allerdings die Versionsnummer nur angezeigt, wenn es denn eine gibt. Abschreckendes Beispiel:
$cmd$filever /e /b /a
W32i     -   -               -   -    151,552 06-06-2002 d:\temp\conset.exe
W32i     -   -               -   -     40,448 04-02-2001 d:\temp\now.exe
W32i   APP ENU         0.0.0.0 shp    150,798 01-22-2007 d:\temp\original.exe
W32i   APP DEU        2.1.0.25 shp     57,344 03-28-2007 d:\temp\srsend2.exe

In diesem Beispiel sind ein paar *.exe-Dateien dabei, die keine oder eine wenig aussagefähige Versionsnummer haben.

Grüße
Biber
WaRCraFt
WaRCraFt 28.10.2007 um 14:39:16 Uhr
Goto Top
Hi Biber,

Die Exe die ich abfragen würde hätte auch eine Versionsnummer. Aber wie kann ich das so auslesen damit ich dann eine weitere aktion ( neustart des PCs ) ausführen kann?
Biber
Biber 28.10.2007 um 14:48:42 Uhr
Goto Top
Moin WaRCraFt,

auslesen mit einer FOR/F-Anweisung.
Am Beispiel von oben (am CMD-Prompt):
D:\temp>
$cmd$for /f "tokens=4" %i in ('filever /b /a srsend2.exe') do @echo %i  
2.1.0.25

Im Batch:
....
for /f "tokens=4" %%i in ('filever /b /a d:\einPfad\Deine..exe') do set "Version=%%i"  
IF %Version% LSS %SollVersion% goto :action
...

Gruß
Biber