Ausführung des Userteils - Aborts und Exit werden ignoriert.

Antworten
gliegl
Beiträge: 8
Registriert: 18. Feb 2005, 09:21
Kontaktdaten:

Ausführung des Userteils - Aborts und Exit werden ignoriert.

Beitrag von gliegl » 02. Aug 2007, 09:34

Hallo,
ich habe ein Skript in dem ich im Userteil verschiedene Konfigurationan machen soll.
Ich möchte bei Lokalen Benutzern den Userteil mit Exit beenden und bei falsch eingestellten LDAP-Attributen den Userteil mit Abort beenden.

In jedem Fall soll eine Meldung im Setuplog und im Errorlog generiert werden.

folgenden Code habe ich für den userteil:
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
;USERTEIL
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[copyUserProduct]
;-------Lokale Benutzer können nicht konfiguriert werden.
If "%UserDomain%" == "%ComputerName%" Then "LokalInstallation" EndIf
;-------Kopieren der Scriptdateien
1: , "%APPDATA%\Cycos\CyPhone\", CREATE DIRECTORY CASCADED CLIENT, 0
1:%APP%\_._._.script, "%APPDATA%\Cycos\CyPhone\", CLIENT ALWAYS DIRECTORY USEFILENAME, 0
1:%APP%\temp.ini, "%APPDATA%\Cycos\CyPhone\", CLIENT ALWAYS DIRECTORY USEFILENAME, 0

[LokalInstallation]
;------- Skript Beenden bei Lokalen Benutzern
ReplaceENV LokalInstallation
ErrorLogMsg %LokalInstallation%
Set ERRORTEXTSWDepotLog = %LokalInstallation%
#Reg:USERErrorSWDepotLog
Exit

[Set:USERLDAP]
;-------Abfrage des Inhalts des AD-Attributes - LDAP
cmd /c cscript /nologo "%APP%\Abfrage.vbs" "(CN=%USERNAME%)" "extensionAttribute2" >>"%APPDATA%\Cycos\CyPhone\temp.ini"
Set FAXSRV=0
sleep 5000
;-------Holen des Wertes aus der INI
;ErrorlogMSG Set FAXSERVER=%%%APPDATA%\Cycos\Cyphone\temp.ini,SERVER,FAXSERVER%%
Set FAXSERVER=%%%APPDATA%\Cycos\Cyphone\temp.ini,SERVER,FAXSERVER%%
ReplaceEnv FAXSERVER
;ErrorlogMSG FAXSERVER= %FAXSERVER%
;-------Ermitteln der Importdatei
If %FAXSERVER% == "" THEN "NoFaxNr" Endif
If %FAXSERVER% == "NULL" THEN "NoFaxNr" Endif
If %FAXSERVER% == "FAX G8DJ8" THEN "IMPORT1" Endif
If %FAXSERVER% == "FAX S4DE8DSAANE" THEN "IMPORT1" Endif
If %FAXSERVER% == "FAX G8DJ9" THEN "IMPORT2" Endif
If %FAXSERVER% == "FAX S4DE8DSAANF" THEN "IMPORT2" Endif
If %FAXSERVER% == "FAX G8DKG" THEN "IMPORT3" Endif
If %FAXSERVER% == "FAX S4DE8DSAAND" THEN "IMPORT3" Endif
If "%FAXSRV%" == "0" Then "WrongFax" Endif
;------Importieren der ermittelten Registrydatei
call reg import "%APP%\%FAXSRV%.reg"

[NoFaxNr]
Set ERRORTEXTSWDepotLog = %Err5% LDAP AD-Attribut "extensionAttribute2"
ErrorLogMsg %ERRORTEXTSWDepotLog%
ErrorlogMsg Der Benutzer (%UserDomain%\%Username%) besitzt keine Faxnummer. Der Fax-Dienst muß erst auf einem in der Dokumentation gelisteten Server beauftragt werden.
#Reg:USERErrorSWDepotLog
Abort


[WrongFax]
Set ERRORTEXTSWDepotLog = %Err7% LDAP AD-Attribut "extensionAttribute2"
ErrorLogMsg %ERRORTEXTSWDepotLog%
ErrorlogMsg Der Benutzer (%UserDomain%\%Username%) wird von einem anderen Fax-Nummernkreis bedient. Der CTI/Voice-Dienst muss durch umswitchen auf Krefeld beauftragt werden (siehe Doku!).
#Reg:USERErrorSWDepotLog
Abort

[Reg:USERErrorSWDepotLog]
HKCU,"SOFTWARE\matrix42\Software Depot\","LastError",,%ERRORTEXTSWDepotLog%

[IMPORT1]
Set FAXSRV=S4DE8DSAANE
[IMPORT2]
Set FAXSRV=S4DE8DSAANF
[IMPORT3]
Set FAXSRV=S4DE8DSAAND
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
; ENDE USERTEIL
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Diue Sektionen copyUserProduct und Set:USERLDAP werden mit dem Flag CLIENT aus der Product-Sektion angesprungen. Theoretisch müsste das funktionieren aber das tut nicht. Der Userteil wird mit obigen Code immer bei lokalen Usern komplett ausgeführt und im Errorlog erscheinen alle Abort-Meldungen. Ende Status ist dann Success.

Wenn ich allerdings die Sprünge in die Reg:USERErrorSWDepotLog auskommentierte funktioniert der Userteil wie gewünscht. Nur fehlen mir dann die Einträge in der SWDepot-log.

Wie kann ich im Userteil Einträge zum Status in die SW-Depot-Log schreiben? und das Skript dann trotzdem mit oder ohne Fehler beenden?

Gruß
GLiegl

Benutzeravatar
MSC
Beiträge: 324
Registriert: 03. Jul 2006, 09:03
Kontaktdaten:

Beitrag von MSC » 02. Aug 2007, 10:30

Hi,

sollte man nicht das VBS Script mit einem CALL bzw CALLHIDDEN Befehl aufrufen, damit sichergestellt ist, das das VBS-Script zuerst abgearbeitet wird, bevor die Setup.inf weiterausgeführt wird?


[Set:USERLDAP]
..
CallHidden cmd /c cscript /nologo "%APP%\Abfrage.vbs" "(CN=%USERNAME%)" "extensionAttribute2" >>"%APPDATA%\Cycos\CyPhone\temp.ini"
Set FAXSRV=0
...

MFG Mario
.

gliegl
Beiträge: 8
Registriert: 18. Feb 2005, 09:21
Kontaktdaten:

Beitrag von gliegl » 02. Aug 2007, 10:59

Das VBS-Script ist nicht das Problem.
Ich hatte den Call bzw. Callhidden befehl bereits verwendet, habe aber da kleine Ungereimtheiten im Verhalten des Skripts festgestellt. der Befehl cmd /c wartet ebenso auf das Ende der Ausführung. der zusätzliche Sleep ist eigentlich nur noch ein Rest von meinen Experimenten.

Gruß
Gliegl

Antworten

Zurück zu „Paketierung“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 10 Gäste