Schleife?

  • Hallo,

    ich habe ein Problem,

    undzwar will ich son kleines Script bauen das mir die Arbeit beim VNC installieren (mit strcm) übers Netzwerk erleichtert.
    also mein Problem ist, dass auf einigen Rechnern bereits der VNC Dienst installiert ist
    (wissen wir ja meist nicht da es immer andere Rechner sind - also starten wir strcm und installieren das darauf)

    da habe ich dann 2 Fälle
    einmal ist es installiert: dann erscheinen dort 3 fehlermeldungen
    wenn es nicht installiert ist dann erscheinen dort 2 fehlermeldungen

    wie bekomm ich eine Schleife hin die solange enter drückt bis die fehlermeldung weg ist?

    habe bereits mit winactive usw Probiert irgendwie funzt das nicht.


    Vielen Dank für die Hilfe

  • So (Pseudoscript):


    $i=0
    Do
    wenn Fehlerfenster da ist, dann enter Senden
    wenn nicht, dann z.b. $i auf 1 setzten
    Until $i=1

    Computers are like Airconditioning. They don´t work with open Windows.

  • Vielen Dank, funktioniert jetzt...

    allerdings, zwischen den Fehlermeldungen is ab und an mal eine längere Zeitspanne und somit funktionierts manchmal nicht.. gibs da ne Lösung? ;)

  • Hi,
    frag die Dienste vorher ab. Entweder mit Kommandozeile, z.Bsp SC.EXE und auslesen des STDOUT oder per WMI

    [autoit]

    MsgBox (0,"", _get_service (@ComputerName))

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

    Func _get_service ($strComputer="localhost")
    $wbemFlagReturnImmediately = 0x10
    $wbemFlagForwardOnly = 0x20
    $colItems = ""
    $Output=""
    $Output &= "Computer: " & $strComputer & @CRLF
    $objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\root\CIMV2")
    $colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_Service", "WQL", _
    $wbemFlagReturnImmediately + $wbemFlagForwardOnly)
    If IsObj($colItems) then
    For $objItem In $colItems
    If StringInStr ($objItem.Description, "VNC") <> 0 Then
    Return True
    ExitLoop
    EndIf
    Next
    Endif
    Return False
    EndFunc

    [/autoit]

    Damit hättest Du schonmal die installierten Rechner ausgeschlossen.
    Wieso kommen, wenn VNC nicht installiert ist 2 Fehlermeldungen.
    Lies gffs. die Fenster mit AUtoIT Window Info aus und poste Screenshots.

    ;-))
    Stefan

  • Gute Frage, er hat bei einer Datei keine Berechtigungen das rüber zu kopieren.
    Funktioniert aber trotzdem.

    Danke für die Arbeit, nur leider bin ich nicht so der Programmierer, ein Bekannter gab mir ein Tipp das ich das mit Autoit machen kann,
    habs mir gestern mal angeschaut nur so wirklich verstehen tu ichs noch nicht ;) und auf Arbeit habe ich nich soviel Zeit - da ich das nur nebenbei schreiben wollte um mir und meinen Kollegen die Arbeit zu erleichtern, ist nämlich nervig 2-3 Minuten rumzubasteln bis man sich per VNC verbinden kann.

    Also ansich der Vorgang läuft so ab:
    ich bekomme die IP von dem Rechner auf den ich Zugreifen will,
    dann verbinde ich mich per Computerverwaltung auf den entfernten Rechner und schaue nach ob dort die Firewall deaktiviert ist oder ob VNC installiert ist. Wenn VNC installiert ist dann brauch ichs nur aktivieren und kein VNC installieren.
    Wenns nicht installiert ist dann Verbinde ich mich per Netzwerkfreigabe \\IPADRESSE\C$ zu schauen ob der Windows Ordner "Windows" oder "Winnt" heißt (muss man bei strcm eintragen) - und den rest habe ich bereits - also strcm ausführen, vnc installieren usw.


    $ipaddr = Inputbox("VNC Netzwerkinstallation","Bitte geben Sie die IP-Adresse ein auf dem VNC installiert werden soll! (141.53.xxx.yyy)")
    run("C:\WINDOWS\explorer.exe /root, \\141.53.",$ipaddr,"\c$")

    funktioniert so nicht oder?


    Gruß,
    Mario