Jump to content
Sign in to follow this  
skyacer

Fehler in Kix Script

Recommended Posts

Hallo,

 

gibt es eine Möglichkeit ein Kixscript auf Fehler zu testen. Habe mir einScript zusammengebastelt aber irgendwo beim ausführen bricht das Script ab und beendet sich dann ohne das ich weiß wo der Fehler genau ist.

 

Ausserdem habe ich in einem anderen Script ein "call name.kix" eingebaut und an der Stelle bricht er auch mit Fehler ab.

 

Gestartet wird das Kixscript bei Anmelden am System und liegt im Netlogonverzeichniss.

 

Ich hoffe ihr könnt mir darin helfen.

 

Grüße Sky

Share this post


Link to post

Mir hat bei Problemen ein Editor mit Syntax Highlighting für Kixtart (z.B. Notepad++) meistens schon geholfen.

 

Vom einem Skript rufe ich mittels "kix32.exe name.kix" ein Kix Skript auf.

Share this post


Link to post

ja so rufe ich das in einer Batch auch auf.

 

Aber in einer Kix wird es doch mit call aufgerufen oder? Wie verhält sich der Befehl call eigentlich. Wartet das Haupt-Kixfile bis das Sub-Kixfile abgearbeitet ist oder wird es nur parallel ausgeführt?

Share this post


Link to post

Hallo,

kix hat auch einen Debug Modus. Der Befehl im Script lautet dann DEBUG ON.

Dann wird das Script "zeilenweise" abgearbeitet.

Vielleicht solltest du statt call mal shell oder run versuchen.

Shell unterbricht das Script, run führt das Script weiter aus.

Share this post


Link to post

Hi,

 

aber wird in einer KIX eine andere KIX nicht durch Call aufgerufen?

 

Aber dann habe ich noch ein anderes Problem. Ich habe zwei Sicherheitsgruppen die eine sagne wir heißt mal Gruppe1 und die andere Gruppe2 und Gruppe3.

In den Gruppen 1 & 2 sind jeweils Computer als Mitglieder eingetragen. In Gruppe3 User

 

Wenn ein Script bei mir so aussehen würde führt er die nicht aus.

 

If Ingroup("gruppe3")

 

If Ingroup("gruppe1")

shell blabla

EndIf

 

If Ingroup("gruppe2")

shell blabla

EndIf

 

EndIF

 

 

Lasse ich sie aber nur so aussehen klappt es ohne Probleme.

 

If Ingroup("gruppe3")

 

shell blabla

 

shell blabla

 

EndIF

 

Die Syntax stimmt soweit und die jeweiligen Computer sind auch in den Gruppen vertreten. Nur warum funktioniert die Abfrage nicht so wie sie soll? Ich hoffe ihr könnt mir darin helfen.

 

 

 

Grüße und Danke

Share this post


Link to post

Mit "call script kannst" Du ein anderes Script aufrufen. Warm es im speziellen Fall nicht klappt, k.A. Hier solltest Du das Script mal posten.

 

Zur letzten Frage: "if ingroup"... testet den aktuell angemeldeten User ab, nicht das Computer-Konto.

 

Vielleicht bringt Dich diese UDF weiter ComputerInGroup() - returns if the PC is a member of a specified group - KiXtart.org - official site (nicht getestet).

 

-Zahni

Share this post


Link to post

Okay das mit dem Call hab ich herrausgefunden. Musste nur den absoluten Pfad angeben dann klappte es.

 

Aber mit dem Link von Zahni hab ich noch einige Probleme. WO gebe ich den bei dem Script die Gruppe an wo die Computer sich drin befinden. Ich kenn mich zwar einigermaßen damit aus bzw. klappt es soweit aber da hört es dann bei mir auf. Könnte mir also kurz wer dabei helfen?

 

Grüße Sky

 

Function ComputerInGroup($group,optional $Domain)

Dim $oGrp

if not $domain $domain=@domain endif

$oGrp = GetObject("WinNT://" + $domain + "/" + $group + ",group" )

if @error exit 1 endif

 

if $oGrp.IsMember("WinNT://" + $domain + "/" + @wksta + "$$" )

$ComputerInGroup=1

else

$ComputerInGroup=0

endif

endfunction

Share this post


Link to post

Das ist mir auch klar. Nur wo geb ich in der Funktion den vor das er in der Gruppe "Inland" suchen soll. Ich weiß nur nicht wo ich das angeben muss.

 

Grüße

Share this post


Link to post

Also mein Script ist derzeit so aufgebaut, nur steckt da noch irgendwo der Wurm drin.

 

Function ComputerInGroup($group)

Dim $oGrp

$domain=@domain

$oGrp = GetObject("WinNT://" + $domain + "/" + $group + ",group" )

if @error exit 1 endif

 

if $oGrp.IsMember("WinNT://" + $domain + "/" + @wksta + "$$" )

$ComputerInGroup=1

else

$ComputerInGroup=0

endif

endfunction

 

 

 

If InGroup("GoLabel")

 

If ComputerInGroup("LabelInland") = 1

If Exist("\\server01\scripts$\Starte GoLabel Inland.lnk")

Copy "\\server01\scripts$\Starte GoLabel Inland.lnk" "%userprofile%\Desktop\"

EndIf

EndIf

 

EndIf

Share this post


Link to post

das folgende Beispiel funtioniert bei mir:

 

(es wurde die globale Gruppe "testcomputer" erstellt mit dem Computerkonto als Mitglied)

 


Function ComputerInGroup($group)
Dim $oGrp
$domain=@domain
$oGrp = GetObject("WinNT://" + $domain + "/" + $group + ",group" )
if @error exit 1 endif

if $oGrp.IsMember("WinNT://" + $domain + "/" + @wksta + "$$" )
$ComputerInGroup=1
else
$ComputerInGroup=0
endif
endfunction 





If ComputerInGroup("testcomputer") = 1

color r+/n
BIG
? "TEST"
? "TEST"
?
small
color w/n

EndIf

Share this post


Link to post

Also ich hab das mal genauso übernommen und ich erhalte immer noch den gleichen Fehler:

 

Script error: unkown command !.

Function ComputerInGroup($group)

Share this post


Link to post

Alles klar. Fehler gefunden.

Auf dem Server liegt die 4.61 und auf den Clients liegt die 3.62.

 

Versionen getauscht und nun gehts auch ohne Probleme. Naja ich denke mal das die anderen Fehler auch dann darauf aufbauen...

 

Danke für deine Hilfe.

Share this post


Link to post
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte überlege Dir, ob es nicht sinnvoller ist ein neues Thema zu erstellen.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

Werbepartner:



×
×
  • Create New...