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-Key: 72073

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

Printed on: April 24, 2024 at 23:04 o'clock

Member: schregi82
schregi82 Oct 27, 2007, updated at Oct 18, 2012 at 16:32:37 (UTC)
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
Member: schregi82
schregi82 Oct 27, 2007 at 15:50:23 (UTC)
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
Member: WaRCraFt
WaRCraFt Oct 28, 2007 at 10:50:20 (UTC)
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?
Member: lowbyte1
lowbyte1 Oct 28, 2007 at 11:41:25 (UTC)
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
Member: Biber
Biber Oct 28, 2007 at 12:59:47 (UTC)
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
Member: WaRCraFt
WaRCraFt Oct 28, 2007 at 13:39:16 (UTC)
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?
Member: Biber
Biber Oct 28, 2007 at 13:48:42 (UTC)
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