Netwerk PCS

  • Ich mal wieder

    Ich versuche ein Programm zu bauen womit ich alle Rechner die in einem Netzwerk sind nach belieben (Combobox) herunterzufahren.

    Warum?
    Weil ich zu wenig Gehalt bekomme :D

    Hab das zwar in einer Bat realisiert bloß ist das mit einer bat nicht so komfortabel.

    Einzelnd klappt das auch prima.

    1.Eine Combobox mit mehreren Rechnern.
    2.Wähle den Rechner und betätige den Shutdownbutton
    3.Shutdownbutton = Der Dos Befehl
    _RunDOS( "shutdown -m \\" & $combo & " -s -t 3000")

    Gibt es eine Möglichkeit den Dos-Befehl "net view" auszulesen und in eine Liste zuspeichern. Diese Rechner wiederrum in eine Art Combobox auszuwählen? Da man sonst alle Rechner die man shutten will einzelnd eingeben müßte und das wäre ja extrem bei 80 Rechnern

    mit net view >> c:\test.txt bekomme ich auch die Rechner in eine Liste bloß hab ich keine ahnung wie ich nur die Rechner auslese und in die ombobox oder so einlese

    Textdatei sieht dann so aus

    Spoiler anzeigen


    Hier das bisherige skript

    Spoiler anzeigen

    :engel1:

    2 Mal editiert, zuletzt von Real_Bourbon (17. Juli 2006 um 17:18)

  • Hi
    so etwa wird die Combox gefüllt:

    Code
    _FileReadToArray("C:\test.txt",$computer)
    For $i=$computer[0] to 1 step -1
      if StringLeft($computer[$i],2)="\\" Then _GUICtrlComboAddString($combo,StringReplace(StringLeft($computer[$i],StringInStr($computer[$i]," ")-1),@TAB,""))
    Next

    (nicht getestet)
    Alternativ kannst du es auch über StdoutRead direkt einlesen.

    eddy_erpel

  • Zu th.meger

    Geht ja auch Problemlos.
    Bloß bei 80 Rechnern ist das dann schon ein Problem. Und mit einer Bat kann ich ja nicht ganz gemüdlich auswählen welchen (Gruppen) ich shooten will bei uns existieren 7 Abteilungen mit ca 10 Rechnern

    Zitat

    Wenn das Wetter nicht so gut wäre, dann würde ich es dir basteln. Mal sehen, was die Woche so bringt.


    Geniesse es solange du noch kannst :) Deutschland ist nicht gerade berühmt für seine langen Sommer. Und die Menschen die hier Leben sind nicht gerade bekann jeden Sonnenstrahl zu zelebrieren.

    hej Eddy ich versuch s mal so wie du es vorgeschlagen hast. Merci

    Einmal editiert, zuletzt von Real_Bourbon (18. Juli 2006 um 09:35)

  • hi teil 2

    so Eddy habs geteste aber es funkt nicht

    Fehleranzeige von SciTE

    Zitat

    D:\Programmierung\Autoit\tes1t.au3(33,160) : ERROR: _GUICtrlComboAddString(): undefined function. if StringLeft($computer[$i],2) = "\\" Then _GUICtrlComboAddString($pc_combo,StringReplace(StringLeft($computer[$i],StringInStr($computer[$i]," ")-1),@TAB,""))

    Spoiler anzeigen

    ich kann _GUICtrlComboAddString auch nicht in der Hilfe finden. Brauch ich dafür ein include?

    Sorry aber habe keinen Plan wie ich das mit StdoutRead auslesen kann.

    Einmal editiert, zuletzt von Real_Bourbon (18. Juli 2006 um 10:41)

    • Offizieller Beitrag

    benötigt #Include <GuiCombo.au3> und gibt es nur in der beta.

  • Okay die beta hab ich "130" habe die #include eingebaut

    Und es L-Ä-U-F-T Ist das zu Glauben meine Damen und Herren. Kurz vor dem Aufgeben ein Sensationelles ComeBack

    Merci für den Hinweis.

    Bloß jetz bekomme ich wenn ich öfter den $b_netview Button drücke
    immer wieder die gleichen Rechner mehrmals in die Combobox reingeschrieben. Wie kann ich das Feld nach jedem weiter drücken löschen und neu setzen?

    Spoiler anzeigen

    Cool Jungs ihr habt echt geholfen

    2 Mal editiert, zuletzt von Real_Bourbon (18. Juli 2006 um 11:55)

    • Offizieller Beitrag

    Vor die Schleife _GUICtrlComboResetContent($pc_combo) schreiben!

  • okay perfekt

    steht "_GUICtrlComboResetContent" irgendwo erklärt auser in der eben gesehenen #include Datei?

    Mit einem Beispiel wie in der Autoit Hilfe drin?

    Einmal editiert, zuletzt von Real_Bourbon (18. Juli 2006 um 12:20)

    • Offizieller Beitrag

    in der Hilfe zur Beta-Version ..\AutoIt3\beta\AutoIt.chm

  • Noch eine kleine Extra-frage

    Kann es sein das "RunAsSet" nicht richtig funktioniert? Wenn ich mein Programm (Shutdown Programm) das auf meinem Rechner wunderbar funktioniert (besitze Admin-Rechte) von einem anderen Rechner (Nicht-Admin) starte nicht richtig reagiert obwohl ich RunAsSet übergeben habe?

    Überhaupt.
    Egal welches Programm ich von einem Nicht-Admin Rechner aus starte funzt nicht (.z.B Ping, Datei auf c:\ erstellen usw) läuft anscheinend nur im normalen Benutzerkontext ab?

    Hat auch einer damit probleme und weiß rat?

    Einmal editiert, zuletzt von Real_Bourbon (19. Juli 2006 um 12:48)

    • Offizieller Beitrag

    Hallo,

    ich hatte mit RunAsSet noch nie probleme. Zum runterfahren von Rechner benutze ich immer das Tool Poweroff. Ohne Adminrechte auf dem Zielrechner wird es allerdings nicht funktionieren.

  • Buenos Dias

    Ja ich weiß aber deshalb ist doch RunAsSet da oder?

    Wenn ich mein Programm von einem Rechner ausführe müßte es doch durch die initialisierung von RunAsSet mit Adminrechten ausgeführt werden oder?

    Ich kann von keiner Workstation aus mein Ping Prog starten?

    Ich benutze normalerweise das Win interne Shutporg shutdown -i oder sysinternals.

  • Hallo,
    in der Hilfe steht folgendes:

    Zitat

    RunAsSet: Initialise a set of user credentials to use during Run and RunWait operations. 2000/XP or later ONLY.


    Ich denke damit wird deine Frage beantwortet.

    eddy_erpel

  • Hab ja auch das hier versucht :)

    ; Als Administrator ausführen
    RunAsSet("administrator", "pappa", "aabbcc00")

    RunWait("Small Admin.exe")

    ; Adminrechte werden wieder entzogen
    RunAsSet()

    geht das damit nicht

    hm mit runas vielleicht

    _RunDOS("start runas /profile /user:pappa\administrator" & "ping.exe")

    danach fragt mich die DOS wie das Passwort heist
    Wisst Ihr wie mann da das Passwort übergibt
    Habe es so versucht bin aber abermal gescheitert

    So klappt es

    Code
    #include<Process.au3>
    _RunDOS("start runas /profile /user:wili\administrator cmd")
    Sleep(5)
    Send("ddnywywx")
    Send("{ENTER}")

    So nicht

    Code
    #include<Process.au3>
    _RunDOS("start runas /profile /user:papa\administrator" & "ping.exe")
    WinWaitActive("Auswählen C:\WINDOWS\system32\runas.exe")
    Send("passwort")

    Also ein fehler bei Winwait nehm ich mal an ich versuch mal weiter :)


    #####################################
    Habs geschaft wow 2 Stunden für so einen Schei........:)
    #####################################

    3 Mal editiert, zuletzt von Real_Bourbon (19. Juli 2006 um 19:13)

  • Hi

    Zitat

    ; Als Administrator ausführen
    RunAsSet("administrator", "pappa", "aabbcc00")

    RunWait("Small Admin.exe")

    ; Adminrechte werden wieder entzogen
    RunAsSet()

    geht das damit nicht

    So sollte es aber gehen, wenn alles richtig angegeben wurde (Laut deiner Textdatei heisst der PC aber PAPA und nicht PAPPA, oder heisst etwa die Domäne so?) Wie hasst du es denn geschafft, auch auf diesem Wege?

    eddy_erpel

  • So läufts bei mir

    Code
    #include<Process.au3>
    _RunDOS('start runas /profile /user:wili\administrator "\\papa\netlogon\Small Admin.exe"')
    WinActivate("Auswählen C:\WINDOWS\system32\cmd.exe - runas /profile /user:papa\administrator ")
    Send("aabbcc")
    Send("{ENTER}")


    Papa ist der Win 2003 Server also die Domaine
    Das ist der Pfad "\\papa\netlogon\Small Admin.exe"

    Nach
    _RunDOS('start runas /profile /user:wili\administrator "\\papa\netlogon\Small Admin.exe"')
    Frägt er nach dem Passwort

    :)

  • Hallo,
    dann muss es so aber auch laufen:

    Code
    RunAsSet("administrator", "papa", "aabbcc")
    RunWait("\\papa\netlogon\Small Admin.exe")
    ; Adminrechte werden wieder entzogen
    RunAsSet()


    eddy_erpel

  • Jep so gehts auch

    bloß wenn ich das Programm offen habe kann ich mit einem Button immer die Server Pingen und das Logfile wird ja immer beschrieben beim aktivieren des Buttons und dann müßte das Autoit Programm somit auch immer an bleiben. Da das Logfile auf dem server liegt

    Mit runas öffne ich das Programm mit Adminrechten und brauche dann kein Autoit mehr. Somit läuft nur ein Programm.

    Und ich weiß auch nicht ob man damit bat dateien ausführen kann
    Bei runas geht das somit kann ich wieter Befehle eingeben

    3 Mal editiert, zuletzt von Real_Bourbon (20. Juli 2006 um 11:04)

  • Hallo,
    das Programm dass du mit RunAsSet und run aufrufst, wird mit dem angegebenen User ausgeführt auch wenn das Skript beendet wird.
    Damit das erste Prog beendet wird musst du allerdings Run anstelle von RunWait verwenden.
    Und auch *.bat, *.cmd sind kein Problem um auszuführen.

    eddy_erpel