1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. Bitboy

Beiträge von Bitboy

  • Flash Installation

    • Bitboy
    • 10. Mai 2010 um 13:29

    Könnte es sein, dass die Flash-Oberfläche nur ein Starter für das eigentliche Setup (ein eigenes Programm) ist?
    (Spiel kein WOW daher weiß ichs nicht, würde die Sache aber vereinfachen)

  • Flash Installation

    • Bitboy
    • 10. Mai 2010 um 12:26

    Nenn doch mal ein Beispiel.
    Mir fällt auf Anhieb nichts ein was so eine Installation benutzt.

  • Das Skript in einen bestimmten tag und uhrzeit auslösen!

    • Bitboy
    • 9. Mai 2010 um 11:09

    Bei dem Beispiel müsste das Skript allerdings in den Autostart.
    Das verzögert natürlich den Rechnerstart...


    Eine weitere Alternative gibts auch nicht.

  • Das Skript in einen bestimmten tag und uhrzeit auslösen!

    • Bitboy
    • 9. Mai 2010 um 10:45

    wird so nicht funktionieren. Da musst du in Windows die "Geplanten Tasks" (Start - Programme -> Zubehör -> Systemprogramme) benutzen.

  • Active Directory Funktionen - Neue Version 1.5.0.0 freigegeben!

    • Bitboy
    • 6. Mai 2010 um 12:26

    Hm, komisch.

    Der Fehler tritt nciht auf, wenn "Administratoren" als Gruppe eingegeben werden.
    Bei einer anderen Gruppe, die ebenfalls das Recht hat Rechner zur Domäne hinzuzufügen kommt der Fehler wieder.

    Wäre es ein Rechteproblem, dürfte das Objekt doch auch gar nicht erstellt werden oder?

  • Active Directory Funktionen - Neue Version 1.5.0.0 freigegeben!

    • Bitboy
    • 6. Mai 2010 um 11:48

    Ah, das mit dem Dollarzeichen hat schonmal das eine Problem gelöst. Danke, hatte cih ganz vergessen.

    Create Computer produziert allerdings immer noch diesen Fehler.
    Und ja es wird ein Computerkonto erstellt, dass vorher nicht da war.
    Kann es daran liegen, dass Ich _AD_Open mit Parametern aufrufe?
    Beziehungsweise an dem Parameter $sAD_UserID ?


    Geht mir darum folgende Funktion Nutzen zu können:

    Spoiler anzeigen
    [autoit]

    ; #FUNCTION# ====================================================================================================================
    ; Name...........: _AD_JoinDomainEX
    ; Description ...: Joins the computer to a domain.
    ; Syntax.........: _AD_JoinDomain([$sAD_Computer, $sAD_OU, $sAD_UserParam, $sAD_PasswordParam])
    ; Parameters ....: $sAD_Computer - Optional: Computername to join to the domain, Default = @Computername (The computer the script is running on)
    ; The computer account is created if it not exists
    ; The computer account is enabled if it is disabled
    ; An existing account is moved to the specified OU
    ; $sAD_OU - Optional: Organisation Unit to join to, Default = "Computers"
    ; Use a format like this to specify a sub-ou: Computers\London\Office
    ; The Organisation Unit is created if it not exists
    ; $sAD_UserParam - Optional: User with admin rights to join the computer to the domain (NetBIOSName)
    ; +(Default = credentials under which the script is run or from _AD_Open are used)
    ; $sAD_PasswordParam - Optional: Password for $sAD_UserParam. (Default = credentials under which the script is run are used)
    ; Return values .: Success - 1
    ; Failure - 0, @error set
    ; |1 - Failed to create OU, see @extended to see error code from _AD_CreateOU
    ; |2 - Failed to enable the computer object, see @extended to see error code from _AD_EnableObject
    ; |3 - Failed to move existing computer object, see @extended to see error code from _AD_MoveObject
    ; |4 - Failed to create computer object, see @extended to see error code from _AD_CreateComputer
    ; |5 - Failed to create computer object with UserParam, see @extended to see error code from _AD_CreateComputer
    ; |6 - Joining the domain was not successful. @extended holds the Win32 error code (see: http://msdn.microsoft.com/en-us/library/…1(v=VS.85).aspx)
    ; Author ........: Thomas Rupp
    ; Modified.......: Bitboy
    ; Remarks .......: The domain to which the computer is joined to is the domain the user logged on to using AD_Open.
    ; If no credentials are passed to this function but have been used with _AD_Open() then the _AD_Open credentials will be used for this function.
    ; You have to reboot the computer after a successful join to the domain.
    ; The JoinDomainOrWorkgroup method is available only on Windows XP computer and Windows Server 2003 or later.
    ; Related .......: _AD_CreateComputer
    ; Link ..........: http://technet.microsoft.com/en-us/library/ee692588.aspx, http://msdn.microsoft.com/en-us/library/aa392154(VS.85).aspx
    ; Example .......: Yes
    ; ===============================================================================================================================
    Func _AD_JoinDomainEX($sAD_Computer = "", $sAD_OU = "", $sAD_UserParam = "", $sAD_PasswordParam = "")
    Local $OUArr, $i, $sAD_ParentOU
    Local $sAD_DomainName = StringReplace(StringReplace($sAD_DNSDomain, "DC=", ""), ",", ".")

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

    $sAD_ParentOU = $sAD_DNSDomain
    $sAD_OUTemp = $sAD_OU

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

    If $sAD_Computer = "" Then $sAD_Computer = @ComputerName
    If $sAD_OU = "" Then
    $sAD_OU = "OU=Computers," & $sAD_DNSDomain
    Else
    $OUArr = StringSplit($sAD_OU, "\", 1)
    ;Check if OU exits, otherwise create it
    For $i = 1 To $OUArr[0]
    $sAD_OU = $OUArr[$i]
    If _AD_ObjectExists($sAD_OU , "distinguishedName") = 0 Then
    _AD_CreateOU($sAD_ParentOU, $sAD_OU)
    If @error Then
    If @error <> 2 Then Return SetError(1, @error, 0)
    EndIf
    EndIf
    $sAD_ParentOU = "OU=" & $sAD_OU & "," & $sAD_ParentOU
    Next

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

    $sAD_OU = ""
    For $i = $OUArr[0] To 1 Step -1
    $sAD_OU = $sAD_OU & "OU=" & $OUArr[$i] & ","
    Next
    $sAD_OU = $sAD_OU & $sAD_DNSDomain
    EndIf

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

    ;Check if computer account exists
    If _AD_ObjectExists($sAD_Computer & "$") = 1 Then
    _AD_MoveObject($sAD_OU, $sAD_Computer & "$")
    If @error > 0 Then Return SetError(3, @error, 0)

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

    ;Check if is disabled
    If _AD_IsObjectDisabled($sAD_Computer & "$") Then _AD_EnableObject($sAD_Computer & "$")
    If @error Then Return SetError(2, @error, 0)
    Else
    ;account does not exist
    ;create computer account
    If $sAD_UserParam = "" Then
    _AD_CreateComputer($sAD_OU, $sAD_Computer, $sAD_UserId)
    If @error Then Return SetError(4, @error, 0)
    Else
    ;Todo
    ;_AD_CreateComputer($sAD_OU, $sAD_Computer, $sAD_DomainName & "\" & $sAD_UserParam)
    ;If @error Then Return SetError(5, @error, 0)
    EndIf
    EndIf

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

    ; _AD_JoinDomain($sAD_Computer, $sAD_UserParam, $sAD_PasswordParam)
    ; If @error Then Return SetError(6, @error, 0)
    Endfunc

    [/autoit]
  • Active Directory Funktionen - Neue Version 1.5.0.0 freigegeben!

    • Bitboy
    • 6. Mai 2010 um 09:35

    Habe ein Problem mit der Funktion _AD_ObjectExists()

    Wenn man ein Computerobjekt prüft, liefert die Funktion immer 0 zurück, auch dann wenn das Objekt existiert.

    Ruft man die Funktion so auf: _AD_ObjectExists($sAD_Object, "name")
    funktioniert es richtig.

    Das Problem tritt vor allem dann auf wenn die Funktion in anderen Funktionen genutzt wird, zum Beispiel _AD_MoveObjekt oder _AD_IsObjectDisabled.
    Hier lässt sich ja der 2. Parameter von _AD_ObjectExists() nicht verändern.


    Mir ist noch etwas aufgefallen, _AD_CreateComputer gibt 0 zurück, auch wenn das Computerobjekt erstellt worden ist. Fehlernummer: -2147352567

  • Bug bei ControlTreeView ?

    • Bitboy
    • 4. Mai 2010 um 20:27

    Schade, bisher keine Rückmeldungen obs bei euch funktioniert.
    Scheint aber ein generelles Problem zu sein, den google Ergebnissen nach zu urteilen.

    Hier gibts ne Lösung dazu: http://www.autoitscript.com/forum/index.php?showtopic=102481&st=0&p=727417&hl=folder%20options&fromsearch=1&#entry727417

    Wäre trotzdem schön wenn jemand den Fehler bestätigen könnte.
    Dann schreib ich einen BUG-Report.


    Suchtags:
    SysTreeView32, SysTreeView321, Check, UnCheck, IsChecked

  • Bug bei ControlTreeView ?

    • Bitboy
    • 29. April 2010 um 08:33

    Kann es sein, dass ControlTreeView bei SysTreeView32 nicht ganz korrekt arbeitet?

    Die Optionen "IsChecked", "Check", "UnCheck" scheinen nicht zu funktionieren.
    Check bzw Uncheck kann man noch mit Controlsend hinbekommen, dafür müsste man aber Wissen wie der aktuelle Zustand ist.
    Kann das jemand bestätigen?

    [autoit]

    Dim $i, $text, $Checked

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

    For $i = 0 To 5
    $text = ControlTreeView("Klassisches Startmenü anpassen", "", "SysTreeView321","GetText", "#" & $i)
    ;Funktioniert nicht:
    $Checked = ControlTreeView("Klassisches Startmenü anpassen", "", "SysTreeView321","IsChecked","#" & $i)
    ControlTreeView("Klassisches Startmenü anpassen", "", "SysTreeView321","Check","#" & $i)
    ;Funktioniert
    ;ControlTreeView("Klassisches Startmenü anpassen", "", "SysTreeView321","Select","#" & $i)
    ;ControlSend("Klassisches Startmenü anpassen", "", "SysTreeView321","{Space}")
    MsgBox(0, $text, "Ausgewählt: " & $Checked)
    Next

    [/autoit]

    Betriebssystem ist WinXP SP3

  • fertigstellen eines Scriptes

    • Bitboy
    • 28. April 2010 um 18:18

    Hm, hört sich nicht so an als würde man das Programm kostenlos wo runterladen können um das skript testen zu können.
    Selbst wenn würde es vermutlich ohne angeschlossenes Chroma dings eh nicht starten...

    Wie Micha_He erwähnt hat ist es etwas fummelig rauszufinden ob der Button angeklickt wurde.
    Wäre also interessant zu wissen was das Programm dann genau tut (Fenster öffnen, RegKey ändern, Prozess starten....)
    Halt irgendwas was man abfragen könnte.


    PS: Hat Quincy (TV-Serie) nicht immer so ein Teil benutzt?

  • Fehler - _getDOSOutput

    • Bitboy
    • 28. April 2010 um 16:59

    Hab gelesen, dass es mit MS Telnet eh nicht möglich ist.
    Probier mal das Programm "Console telnet"

  • Fehler - _getDOSOutput

    • Bitboy
    • 28. April 2010 um 16:17

    Möglicherweise musst du zusätlich STDErrRead benutzen.

    Außerdem sollte wohl kein sleep in der while schleife sein.

  • fertigstellen eines Scriptes

    • Bitboy
    • 27. April 2010 um 18:58

    hm, gute frage, kann mir fast nicht vorstellen, dass es wirklich viel arbeit ist.
    vllt verrätst du welches programm du steuern willst.

  • Remote Shutdown per WMI

    • Bitboy
    • 25. April 2010 um 23:18

    könnte ich. Hatte aber eine Lösung ohne externe Programme im Sinn. psshutdown und shutdown haben ein fast identisches Verhalten, daher scheints mir sinnvoller dass programm zu nehmen was schon bei windows dabei ist.

  • eingebundene VHD - Pfad zur .vhd finden

    • Bitboy
    • 25. April 2010 um 21:27

    schonmal den namen der vhd datei, die automatisch eingebunden wird, in der registry suchen lassen?

    Liefert vllt WMI die erforderliche Information?

  • Remote Shutdown per WMI

    • Bitboy
    • 25. April 2010 um 21:11

    Hab bis jetzt immer noch keine Lösung, habe allerdings auf irgendeiner Seite gelesen, dass die Remote-WMI Funktionen wegen Sicherheitsbedenken wohl stark eingeschränkt worden sind und dementsprechend nur mit einigem Konfigurationsaufwand wieder "aktiviert" werden können.

    Werde daher wohl auf das Programm "shutdown.exe" im system32 Ordner ausweichen. Das funktioniert auf Anhieb.
    (Leider ist das Fehlerhandling bei externen Kommandozeilen Programmen recht aufwendig)


    Ich denke, dass der Code prinzipiell richtig ist, hab ein Beispiel für VB umgeschrieben.

  • Remote Shutdown per WMI

    • Bitboy
    • 22. April 2010 um 20:13

    Versuche folgendes Skript ans laufen zu bringen.

    Spoiler anzeigen
    [autoit]

    ; #FUNCTION# ====================================================================================================================
    ; Name...........: RemoteShutdown
    ; Description ...: Fährt einen (Remote)Computer herunter
    ; Syntax.........: RemoteShutdown($sComputer, $iShutdownOption, $sUser, $sPassword[, $sDomain])
    ; Parameters ....: $sComputer - Computername
    ; $iShutdownOption - Art des Herunterfahrens, siehe Remarks
    ; $sUser - Benutzerkonto mit administrativen Rechten
    ; $sPassword - Passwort des Benutzers
    ; $sDomain - Optional: Domäne der der Benutzer angehört, falls nciht angegeben wird $sComputer benutzt
    ; Return values .: Success - 1
    ; Failure - 0, sets @error to:
    ; |1 - Fehler beim Erstellen eines SWbemLocator-Objektes
    ; |2 - Fehler beim Verbinden zum Computer
    ; |3 - Fehler beim Erstellen eines WMI-Objektes
    ; |4 - Die WMI-Abfrage lieferte ein leeres Ergebnis zurück
    ; |5 -
    ; Author ........: Bitboy
    ; Modified.......:
    ; Remarks .......: Mögliche Parameter für $iShutdownOption sind (identisch zur AutoIt-Funktion "Shutdown"):
    ; 0 - Abmelden
    ; 4 - Abmelden erzwingen (0 + 4)
    ; 1 - Herunterfahren
    ; 5 - Herunterfahren erzwingen (1 + 4)
    ; 2 - Neustart
    ; 6 - Neustart erzwingen (2 + 4)
    ; 8 - Ausschalten
    ; 12 - Ausschalten erzwingen (8 + 4)
    ;
    ; Port 135 TCP darf auf dem Zielsystem nicht durch eine Firewall blockiert werden
    ; Link ..........: http://msdn.microsoft.com/en-us/library/…v=VS.85%29.aspx
    ; ===============================================================================================================================
    Func RemoteShutdown($sComputer, $iShutdownOption, $sUser, $sPassword, $sDomain="")
    Local $objSWbemLocator, $objSWbemServices, $objWMIService, $colItems, $objItem

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

    If $sDomain = "" Then $sDomain = $sComputer

    ;Verbindung zum lokalen Computer führt zu Fehler
    If $sComputer <> @ComputerName Then
    $objSWbemLocator = ObjCreate("WbemScripting.SWbemLocator")
    If @error Then Return SetError(1,0,0)
    $objSWbemServices = $objSWbemLocator.ConnectServer($sComputer, "root\CIMV2", $sDomain & "\" & $sUser, $sPassword)
    If @error Then Return SetError(2,0,0)

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

    $objSWBemServices.Security_.ImpersonationLevel = 3
    EndIf

    $objWMIService = ObjGet("winmgmts:\\" & $sComputer & "\root\CIMV2")
    If @error Then Return SetError(3,0,0)

    $colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_OperatingSystem", "WQL", 0x10 + 0x20)

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

    If IsObj($colItems) Then
    For $objItem In $colItems
    Return $objItem.Win32Shutdown($iShutdownOption)
    Next
    Else
    Return SetError(4,0,0)
    EndIf
    EndFunc

    [/autoit]

    Leider "stürzt" es immer mit folgender Fehlermeldung ab:
    Neu AutoIt v3 Script (2).au3 (40) : ==> The requested action with this object has failed.:
    $objSWbemServices = $objSWbemLocator.ConnectServer($sComputer, "root\CIMV2", $sDomain & "\" & $sUser, $sPassword)
    $objSWbemServices = $objSWbemLocator.ConnectServer($sComputer, "root\CIMV2", $sDomain & "\" & $sUser, $sPassword)^ ERROR

    Dazu hab ich 2 Fragen
    1) Wie fängt man den Fehler sauber ab?
    2) Wieso funktioniert das nicht?

  • Bootsektor der Festplatte löschen

    • Bitboy
    • 15. April 2010 um 19:04

    nein psexec benötige ich ja nur auf meinem Arbeitsrechner.
    Von dort aus stellt es eine Verbindung zum Zielrechner her, kopiert das kompilierte Skript und führt es aus.

    Prinzipiell könnte man auch auf das Skript komplett verzichten und die MBRWiz.exe durch psexec gleich ausführen lassen.
    Hab es eher aus Gewohnheit als AutoIt-Skript gemacht und da muss über fileinstall die MBRWiz.exe natürlich mitgeliefert werden.
    Naja, außerdem hab ich so im Quellcode die Parameter stehen falls ich mal die Bedeutung mal vergesse.

  • Bootsektor der Festplatte löschen

    • Bitboy
    • 15. April 2010 um 14:17

    Also ein normarler Rechner verhält sich nicht anders als die VM.
    Kurz gesagt: Funktioniert.

    Hier mal mein benutztes Skript:

    [autoit]

    ;################################################
    ;# RemoteImage V 1.0
    ;################################################

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

    FileInstall("C:\Setups\MBRWiz.exe", @TempDir & "\MBRWiz.exe", 1)
    ;Benutzte Parameter
    ;Disk=0 : Erste Festplatte
    ;Wipe=mbr : Masterboot Record löschen
    ;Shutdown=2 : Neustart erzwingen
    ;Confirm : Sicherheitsabfrage bestätigen

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

    Run(@TempDir & "\MBRWiz.exe /Disk=0 /Wipe=mbr /Shutdown=2 /Confirm", @TempDir, @SW_HIDE)
    Exit

    [/autoit]

    Das Skript wurde mit PSEXEC übers netzwerk auf den Rechner kopiert und ausgeführt.

  • Bootsektor der Festplatte löschen

    • Bitboy
    • 15. April 2010 um 06:27

    Ganz genau das war das ziel, neu installieren ohne durch die gegend laufen.
    Das mit dem Gewicht wäre eher sogar positiv, zu meinen mageren 60 Kilo kann ruhig etwas dazu ;)

    Screenshots von der VM kann ich gerne machen, allerdings sieht man da nichts sehr spannendes.

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™