listview parameter an eine batch übergeben

  • also an der batch ist nichts falsch der parameter funktioniert habe es getestet ;)

    ok dann baue ich es in autoit ein bzw wollte ich kamm immer auf syntax fehler hast du eine idee für mein queelcode?

    %1 sollte übergeben werden von der listview die ich anklicke eine idee?

    RunWait(@ComSpec & " /c " & 'DSQUERY GROUP "CN=%1,ou=groups,ou=xx,ou=xx,dc=xx,dc=xx"|DSGET GROUP -MEMBERS > \logs\%1.txt

    lg SubZero ;)
    ==========================================================================

    "Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral."

  • [autoit]

    RunWait(@ComSpec & " /c " & 'DSQUERY GROUP "CN=' & $parameter & ',ou=groups,ou=xx,ou=xx,dc=xx,dc=xx"|DSGET GROUP -MEMBERS > \logs\' & $parameter & '%1.txt')

    [/autoit]

    $parameter ist dann dein "%1"

  • und woher weiss er was mein paramerter ist ?

    habe ein verständniss problem??

    lg SubZero ;)
    ==========================================================================

    "Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral."

  • Na was willst du denn übergeben? Da das ganze AD-bezogen zu sein scheint ist CN -> Company Name und der hintere Teil .txt ist der Dateiname der LOG-Datei, in welche die Ausgabe des DSQUERY Befehls umgeleitet wird.

  • na das ist mir ja klar aber wie weisst er was in $parameter stecket ?

    lg SubZero ;)
    ==========================================================================

    "Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral."

  • wie übergebe ich $parameter an meine cmd

    Kommandozeilenparameter:
    $CmdLine[0] ist die Anzahl der Parameter
    $CmdLine[1] ist Parameter 1
    $CmdLine[2] ist Parameter 2

    Vielleicht hilft Dir folgendes Beispiel etwas, aber auch die Hilfe zu "Kommandozeilenparameter" durch lesen !!!

    Spoiler anzeigen
    [autoit]


    #include <INet.au3>

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

    If $CmdLine[0] > 0 Then
    $parameter1 = $CmdLine[1]
    Else
    $parameter1 = "autoit"
    EndIf

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

    If $CmdLine[0] > 1 Then
    $parameter2 = $CmdLine[2]
    Else
    $parameter2 = "de"
    EndIf

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

    If $CmdLine[0] > 2 Then
    $parameter1 = $CmdLine[3]
    Else
    $parameter3 = "index.php"
    EndIf

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

    $sReturn = _Inetgetsource("http://www." & $parameter1 & "." & $parameter2 & "/" & $parameter3")

    [/autoit]

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr

  • so

    das habe ich jetzt bei mir drin

    RunWait(@ComSpec & " /c " & 'DSQUERY GROUP "CN=' & $parameter & ',ou=groups,ou=xx,ou=xx,dc=xx,dc=xx,dc=net"|DSGET GROUP -MEMBERS > \logs\' & $parameter & '.txt')

    das gleiche wie member_of.bat %1

    die %1 soll doch der wert sein den ich aus der $listview anklicke

    da soll der parameter herkommen ich will ja keinen festen wert!!!

    hoffe das ich jetzt mein problem besser erklären konnte;-)

    bin echt kurz vorm heulkrampf ;(

    lg SubZero ;)
    ==========================================================================

    "Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral."

  • Ja, dann schau mal was ich gerade gepostet habe. Das kannst Du, wenn Du es verstanden
    hast sicherlich genau so einsetzen wie Du es brauchst.
    Ich schau sonst später noch mal rein. Will jetzt erst einmal bischen Haushalt machen.

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr

  • Lass mich das mal eben zusammenfassen.
    Du hast ein GUI mit einem Listview. In diesem ListView sind Objekte aus der AD. Du möchtest nun eins dieser Objekte auswählen können und dann mittels Klick auf einen Button den Objektnamen an ein Batch-Script bzw. ein AutoIT Script übergeben. Hab ich das so richtig verstanden?

    Das übergeben des Objektnamens an ein externes Script macht in diesem Fall jedoch gar keinen Sinn? Warum verarbeitest du nicht alles in einem Script intern und startest dann direkt aus dem laufenden Script das DSQUERRY? Wozu der externe Aufruf?

  • du hast mich verstanden hier mein Script!!
    Problem liegt in zeile 37 -41

    danke


    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #Include <GuiListView.au3>
    #include <ListViewConstants.au3>
    GUICreate('*************AD Groups Export*************', 714, 669)
    $hListView = GUICtrlCreateListView('Gruppe', 10, 10, 220, 580)
    GUICtrlSendMsg($hListView, $LVM_SETCOLUMNWIDTH, 0, 560) ; setzt die erste Spalte des Listviews auf 560 Pixel Breite
    $hButton = GUICtrlCreateButton('AD Auslesen', 10, 630, 80, 20)
    GUISetState()
    $hButton1 = GUICtrlCreateButton('Gruppe Auslesen', 10, 590, 90, 20)
    GUISetState()
    $hListView2 = GUICtrlCreateListView('User', 240, 10, 220, 580)
    GUICtrlSendMsg($hListView, $LVM_SETCOLUMNWIDTH, 0, 560) ; setzt die erste Spalte des Listviews auf 560 Pixel Breite
    $hButton2 = GUICtrlCreateButton('Member of', 240, 593, 80, 20)
    GUISetState()
    $hButton3 = GUICtrlCreateButton('Export2', 380, 593, 80, 20)
    GUISetState()
    $hButton4 = GUICtrlCreateButton('Export1', 150, 593, 80, 20)
    GUISetState()

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

    While True
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    Exit
    case $hButton
    ;RunWait(@ComSpec & " /c " & 'dsquery group ou=xx,ou=xx,ou=xx,dc=xx,dc=xx,dc=xx -limit 10000 > \logs\gruppen.txt', "", @SW_HIDE)
    $PID = Run(@ComSpec & " /c " & 'dsquery group ou=xx,ou=xx,ou=xx,dc=xx,dc=xx,dc=xx -limit 10000 > \logs\gruppen.txt', "", @SW_HIDE); Ein Programm starten
    ProgressOn("AD Gruppen ","werden ausgelesen...") ; Progressfenster erueugen
    $i = 0 ; Einen Zähler für den Fortschritt
    While ProcessExists('dsquery.exe') ; Schleife ausführen, solange der gesartete Prozess existiert
    $i += 10 ; Zähler um 10 erhöhen
    If $i > 100 Then $i = 0 ; Wenn der ZZähler größer als 100 ist, auf 0 zurücksetzen ( Progressbar geht von 0-100)
    ProgressSet($i) ; Neuen Fortschritt setzen
    Sleep(200) ; 200 Millisekunden Pause machen
    WEnd
    ProgressOff() ; Fortschrittsbalken schließen

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

    case $hButton2
    $ListViewText = _GUICtrlListView_GetItemTextArray($hlistview)
    consolewrite($ListViewText[1]&@CRLF)
    ;RunWait(@ComSpec & " /c " & 'F:\autoit\entwicklung\admin_tool\tools\groups_members.cmd' & ($ListViewText), "", @SW_SHOW)
    RunWait(@ComSpec & " /c " & 'DSQUERY GROUP "CN=' & $parameter & ',ou=xx,ou=xx,ou=xx,dc=xx,dc=xx,dc=xx"|DSGET GROUP -MEMBERS > \logs\' & $parameter & '.txt')

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

    Case $hButton1
    NewItems()
    EndSwitch
    WEnd
    Func NewItems()
    ;$string = FileRead(@ScriptDir & '\logs\gruppen.txt')
    $string = FileRead(@ScriptDir & '\logs\gruppen.txt')
    $array = StringRegExp($string, 'CN=(.+?),.*', 3)
    For $i = 0 To UBound($array) - 1
    GUICtrlCreateListViewItem($array[$i], $hListView)
    Next
    EndFunc

    [/autoit]

    lg SubZero ;)
    ==========================================================================

    "Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral."

  • Hier nochmal eine beispiel gruppe.txt autoit.de/wcf/attachment/4807/

    und ein einfach gruppe auslesen klicken dann sieht man es schon \log\gruppe.txt

    und wie im Bild autoit.de/wcf/attachment/4808/

    Gruppe auslesen und dann member of dann ds querry mit der angeklickten gruppe

    hoffe ich konnte es jetzt besser erklären was mein ziel ist

    danke

    lg SubZero ;)
    ==========================================================================

    "Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral."

  • leider ohne erfolg

    lg SubZero ;)
    ==========================================================================

    "Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral."

  • Warum verwendest du _GUICtrlListView_GetItemTextArray ?
    Versuch es mal mit _GUICtrlListView_GetItemText, kommentiere aber "consolewrite($ListViewText[1]&@CRLF)" vorher aus

  • leider ohne erfolg kann keiner mir helfen ?????

    lg SubZero ;)
    ==========================================================================

    "Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral."

  • Ich kann das Script bei mir nicht richtig testen und steig an dieser Stelle desshalb mal aus, will nicht unnötig rumspammen. :pinch:

    Ich empfehle dir deinen Code mal zu strukturieren und zu überarbeiten. Schau dir alles nochmal in aller Ruhe an und debugge ein wenig. Für weitere Hilfe könnte eine etwas detailiertere Beschreibung des Fehlers nützlich sein, anstatt nur "leider ohne Erfolg" zu schreiben.

    Gruß

  • DANKE.................

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #Include <GuiListView.au3>
    #include <ListViewConstants.au3>
    GUICreate('*************AD Groups Export*************', 714, 669)
    $hListView = GUICtrlCreateListView('Gruppe', 10, 10, 220, 580)
    GUICtrlSendMsg($hListView, $LVM_SETCOLUMNWIDTH, 0, 560) ; setzt die erste Spalte des Listviews auf 560 Pixel Breite
    $hButton = GUICtrlCreateButton('AD Auslesen', 10, 630, 80, 20)
    GUISetState()
    $hButton1 = GUICtrlCreateButton('Gruppe Auslesen', 10, 590, 90, 20)
    GUISetState()
    $hListView2 = GUICtrlCreateListView('User', 240, 10, 220, 580)
    GUICtrlSendMsg($hListView, $LVM_SETCOLUMNWIDTH, 0, 560) ; setzt die erste Spalte des Listviews auf 560 Pixel Breite
    $hButton2 = GUICtrlCreateButton('Member of', 240, 593, 80, 20)
    GUISetState()
    $hButton3 = GUICtrlCreateButton('Export2', 380, 593, 80, 20)
    GUISetState()
    $hButton4 = GUICtrlCreateButton('Export1', 150, 593, 80, 20)
    GUISetState()

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

    While True
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    Exit
    case $hButton
    ;RunWait(@ComSpec & " /c " & 'dsquery group ou=xx,ou=xx,ou=xx,dc=xx,dc=xx,dc=xx -limit 10000 > F:\autoit\entwicklung\admin_tool\logs\gruppen.txt', "", @SW_HIDE)
    $PID = Run(@ComSpec & " /c " & 'dsquery group ou=xx,ou=xx,ou=xx,dc=xx,dc=xx,dc=xx -limit 10000 > \logs\gruppen.txt', "", @SW_HIDE); Ein Programm starten
    ProgressOn("AD Gruppen ","werden ausgelesen...") ; Progressfenster erueugen
    $i = 0 ; Einen Zähler für den Fortschritt
    While ProcessExists('dsquery.exe') ; Schleife ausführen, solange der gesartete Prozess existiert
    $i += 10 ; Zähler um 10 erhöhen
    If $i > 100 Then $i = 0 ; Wenn der ZZähler größer als 100 ist, auf 0 zurücksetzen ( Progressbar geht von 0-100)
    ProgressSet($i) ; Neuen Fortschritt setzen
    Sleep(200) ; 200 Millisekunden Pause machen
    WEnd
    ProgressOff() ; Fortschrittsbalken schließen

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

    case $hButton2
    $ListViewText = _GUICtrlListView_GetItemTextArray($hlistview)
    consolewrite($ListViewText[1]&@CRLF)
    ;RunWait(@ComSpec & " /c " & 'groups_members.cmd' & ($ListViewText), "", @SW_SHOW)
    RunWait(@ComSpec & " /c " & 'DSQUERY GROUP "CN=' & $ListViewText & ',ou=groups,ou=xx,ou=xx,ou=xx,dc=xx,dc=xx,dc=xx"|DSGET GROUP -MEMBERS > \logs\' & $ListViewText & '.txt')

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

    Case $hButton1
    NewItems()
    EndSwitch
    WEnd
    Func NewItems()
    ;$string = FileRead(@ScriptDir & '\logs\gruppen.txt')
    $string = FileRead(@ScriptDir & '\logs\gruppen.txt')
    $array = StringRegExp($string, 'CN=(.+?),.*', 3)
    For $i = 0 To UBound($array) - 1
    GUICtrlCreateListViewItem($array[$i], $hListView)
    Next
    EndFunc

    [/autoit]

    lg SubZero ;)
    ==========================================================================

    "Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral."