Hallo!
Um Software automatisch verteilen zu können, habe ich folgendes Programm geschrieben, dass auf den Rechnern nach der Anmeldung ausgeführt wird.
Die Logon-Scripts werden über Samba per Batch aufgerufen.
So sollte es laufen:
Das Programm liest aus einer ini-Datei das Laufwerk und den Behfehlsaufruf aus.
Danach findet ein Abgleich des Rechnernamens statt. Steht der Rechnername bereits in der ini-Datei, soll keine Installation erfolgen. Fehlt der Rechnername, soll die angegebene Software installiert werden und danach der Rechnername in die ini-Datei eingetragen werden.
Alles läuft über das Netzwerk, sprich alle Daten liegen auf Servern, die benötigte Freigabe ist als Laufwerk verbunden.
[autoit]$var1 = IniReadSection("install.ini", "Computer")
$var2 = IniReadSection("install.ini", "Options")
If @error Then
Exit
Else
For $a = 1 To $var2[0][0]
If $var2[$a][0] == "Pfad" Then
$p=$var2[$a][1]
EndIf
If $var2[$a][0] == "Command" Then
$c=$var2[$a][1]
EndIf
Next
For $i = 1 To $var1[0][0]
$x=0
If $var1[$i][1] == @ComputerName Then
$x=$x+1
EndIf
Next
if $x <>1 Then
RunAsWait("admin", @ComputerName, "password", 0, @ComSpec & ' /c ' & $p & $c, "", @SW_HIDE)
IniWrite("install.ini", "Computer", @ComputerName, @ComputerName)
EndIf
Exit
EndIf
Problem ist nun, dass der Abgleich der Rechnernamen anscheinend nicht richtig funktioniert. Jedenfalls konnte ich beobachten, dass das Programm die Software installiert, obwohl der Rechnername bereits in der ini vorhanden war.
Hier noch der Aufbau der ini-Datei:
;Einstellungen zur Installierenden Software.
;Der Insatllationsbefehl wird aus Pfad und Command zusammengesetzt, daher immer z.B. den abschließenden \ mit angeben.
[Options]
Pfad=
Command=msiexec.exe /i \\server\adobe_reader\adobe910\AcroRead.msi TRANSFORMS=" \\server\adobe_reader\adobe910\adobe.mst" /qn
;Auf diesen Rechnern wurde das Script bereits ausgeführt
[Computer]
Computer1=Computer1
Was könnte das Problem sein? Wer kann helfen?
Danke.