@ComSpec Problem

  • Hallo liebe AutoIT'ler,

    ich greife per Script auf das Active Directory einer Domain zu. Der Einfachheit halber verwende ich die dazu passenden Befehle der Windows Support Tools. Diese binde ich wie folgt (Beispiel) ein:

    [autoit]


    $button = "Test"
    $location = "Ort"
    $var1 = @ComSpec
    $var2 = " /k " ; alternativ " /c "
    $var3 = 'dsmod.exe computer CN=' & @ComputerName & ',OU=' & $button & ',OU=DE,OU=EMEA,OU=UserComputers,DC=domain,DC=home -desc "####inactive#####" -loc ' & $location & ' -disabled no -c'
    $var = $var1 & $var2 & $var3
    MsgBox(0,"var:", $var) ; zur Überprüfung der Syntax
    $val = RunWait($var)
    MsgBox(0,"RunWait:", $val) ; zur Überprüfung des Rückgabewertes

    [/autoit][autoit][/autoit][autoit][/autoit]

    Nun ist es so, dass dieses Script problemlos auf einem Windows XP- Client läuft, während auf einem Windows 7 64 Bit Client zwar die Konsole noch geöffnet wird, aber der Befehl nicht ausgeführt wird. Starte ich den Befehl manuell in einer Konsole oder per Batch- File funktioniert es. Nur eben nicht, wenn das AutoIt- Script ausgeführt wird. Woran kann das liegen ?

    Benutzerkontensteuerung (UAC) und Windows- Firewall wurden abgeschaltet!

    Eventuell interessant ist, dass das Script die Konsole mit folgendem Titel öffnet:

    Administrator: C:\Windows\System32\cmd.exe

    während das Batch- File diese Überschrift des Konsolenfensters liefert:

    C:\Windows\System32\cmd.exe

    Wenn jemand einen Lösungsansatz hätte, wäre ich dankbar... :?:

    Gruß,

    thbrueck

  • Schonmal auf dem Windows 7 Rechner probiert:
    Rechtsklick -> Run x86 (oder so ähnlich)

    Falls das klappt kannst dus ja einfach als x86 kompilieren

  • Hi ist das Tool dsmod.exe direkt in Windows eingebunden?
    Ich glaube nicht. @comspec /c ist nur dafür um einen Befehl wie z.B. dir oder cmd zu benutzen.

    Du solltest auch den kompletten Pfad zu der Datei dsmod.exe angeben.
    Außerdem solltest du schauen ob die Datei auch eine 64Bit Version ist oder ob es diese als 64Bit gibt.

    MfG
    Der_Doc

  • Vor lauter Bäumen sieht man den Wald nicht mehr...

    Ja, ich muss tatsächlich das Script für 64- Bit als auch für 32- Bit Maschinen extra compilieren. Thanks Milla! :rock:

    Der_Doc

    dsmod.exe ist kein Standardbefehl in Windows, sondern kommt erst durch das "Remote Server Administration Tool" (früher Adminpak.msi) auf die Client- Maschine. Man muss hierbei tatsächlich die Rechner- Architektur (32/64 Bit) beachten, was ich auch innerhalb des Scriptes berücksichtigt hatte. Dass ich jedoch auch das Script selbst für die unterschiedlichen Plattformen compilieren muss, hatte ich nicht berücksichtigt...

    Gruß,

    thbrueck