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

  • Bootsektor der Festplatte löschen

    • Bitboy
    • 14. April 2010 um 22:36

    PXE-Boot per wake-on-lan starten hab ich mir auch überlegt, da ich aber hin und wieder rechner per wake-on-lan starte um die ein oder andere einstellung vor zu nehmen scheidet diese idee leider aus.


    Und jetzt mal allen unkenrufen zum trotz: Es funktioniert.

    getestet in einer Virtuellen maschine (VirtualBox).

    Wers nicht glaubt kanns selber testen:

    1. Bootmedium: Festplatte mit Standard XP
    2. Bootmedium: Bootfähige ISO (CDROM)

    Tool: MBRWiz2.0

    Ausgeführt mit: MBRWiz2.0.exe /disk=0 /wipe=mbr im laufenden Windows
    [Sicherheitsabfrage bestätigen]

    Neustart
    Ergebnis: bootet von der CD (Also das iso)
    Zur sicherheit 2 mal ausprobiert.

    Jetzt müsst ich nur noch nen anderes Tool ohne Sicherheitsabfrage finden. Die scheint man über parameter nicht weg zu bekommen.
    Ich weiß das der Weg etwas kurios ist, aber so lange es funktioniert....

    morgen kommt dann mal der test mit echter hardware

    Edit: Gibt doch einen Parameter für die sicherheitsabfrage: /confirm

  • Bootsektor der Festplatte löschen

    • Bitboy
    • 14. April 2010 um 21:08

    seh ich anders, wenn du als erstes bootmedium CD einstellst und ne musik-CD im laufwerk hast wird ja auch von der Festplatte gestartet.
    Die Fehlermeldung kommt nur wenn die komplette reihenfolge abgearbeitet wurde und gar kein bootmedium gefunden wurde.


    würde das dennoch gerne testen, aber dafür muss erstmal der bootsektor gelöscht werden.

  • Bootsektor der Festplatte löschen

    • Bitboy
    • 14. April 2010 um 21:02

    Wenn ich den netzwerkboot als erstes einstelle, würde bei jedem neustart neu installiert werden.

    Wenn das BIOS jedoch keine bootinformationen auf der festplatte findet,
    geht es zum nächsten bootmedium über.

    peethebee
    Was kannst du nicht nachvollziehen?


    Achja, grundvorraussetzung ist, dass einmal vorher schon windows installiert wurde, damit mein skript überhaupt ausgeführt werden kann.
    Das ist aber gegeben. Ziel ist dann die neuinstallation vom Rechner, ohne das man zu dem rechner hinlaufen muss um die bootreihenfolge zu ändern.

  • Bootsektor der Festplatte löschen

    • Bitboy
    • 14. April 2010 um 20:51

    Ist es möglich mit AutoIt den Bootsektor einer Festplatte zu löschen?

    Oder gibts ne Windows-API Funktion die man aus einem Skript aufrufen könnte?

    Auf externe Tools möchte ich wenn möglich verzichten, Vorschläge sind dennoch willkommen.


    Hintergrund ist folgender (Nur damit keiner denkt es soll ein Virus oder Spassprogramm werden):
    das BIOS ist so eingestellt, dass zunächst von der festplatte gebootet wird.
    Als nächstes folgt PXE (Netzwerkboot).

    da der netzwerkboot dazu führt, dass der Rechner neu installiert wird,
    scheint es mir eine gute idee zu sein einfach den bootsektor der festplatte zu löschen
    um eine neuinstallation zu "erzwingen".

  • WMI-API gesucht (Hardware ohne wmi auslesen)

    • Bitboy
    • 8. April 2010 um 17:38

    nein, XP SP 3, 32Bit.
    genauer gesagt eine extrem reduzierte Variante davon, nämlich BartPE (das bootbare mini-notfall-system)

  • WMI-API gesucht (Hardware ohne wmi auslesen)

    • Bitboy
    • 8. April 2010 um 13:49

    Die Reg-Einträge gibts bei mir nichtmal

  • WMI-API gesucht (Hardware ohne wmi auslesen)

    • Bitboy
    • 8. April 2010 um 12:23

    Habs vorerst mal so gemacht:

    Spoiler anzeigen
    [autoit]

    Run(@ScriptDir & "\cpuz.exe")

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

    WinWait("CPU-Z", "Processor")
    Sleep(1000)
    $CPU = StringStripWS(ControlGetText("CPU-Z", "", "Static29"), 7)

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

    ;2 Tabs nach rechts
    ControlCommand ("CPU-Z", "", "SysTabControl321", "TabRight", "")
    Sleep(100)
    ControlCommand ("CPU-Z", "", "SysTabControl321", "TabRight", "")
    Sleep(100)

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

    $MB = StringStripWS(ControlGetText("CPU-Z", "", "Static11"), 7)

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

    WinClose("CPU-Z")

    [/autoit]

    falls noch jemand ne andere idee hat, bitte posten.

  • Windows 7 probleme mit chronischen Sicherheitsnachfrage

    • Bitboy
    • 7. April 2010 um 19:59

    hm, was passiert denn wenn du die exe ausm autostart rausnimmst, neustartest und von hand ausführst?
    kommt dann auch die meldung?

    Dann greift dein programm vllt auf ne geschützte funktion zu.
    Alternativ kannst du auch mal nen anderen Ordner zum speichern versuchen.

    hast du eventuell #requireadmin im skript stehen obwohl es vllt gar keine admin rechte braucht?

  • Windows 7 probleme mit chronischen Sicherheitsnachfrage

    • Bitboy
    • 7. April 2010 um 19:47

    hat deine host.exe denn einen befehl drin, der den entsprechenden reg-eintrag schreibt?
    dann würde mit jedem start der host.exe der eintrag neu geschrieben werden und entsprechend erscheint die sicherheitsmeldung.

  • WMI-API gesucht (Hardware ohne wmi auslesen)

    • Bitboy
    • 7. April 2010 um 16:12

    Wollte es erstmal ohne externe Programme versuchen, wegen dem Lerneffekt und wegen der Geschwindigkeit.

    AIDA hab ich nicht versucht, aber das Programm SIW schafft es die Informationen auch unter BartPE auszulesen.

    Von daher bin ich überzeugt, dass es über die Windows API geht, wüsste nur gern wie.

  • WMI-API gesucht (Hardware ohne wmi auslesen)

    • Bitboy
    • 7. April 2010 um 15:57

    So habe folgendes Problem, ich muss Mainboardmodell und Prozessornamen ohne WMI ermitteln.
    (Das Programm läuft unter BartPe, das hat keine WMI unterstützung.)

    Daher wäre meine Frage ob man die entsprechenden Informationen über DLL-Aufrufe bekommt.
    und wenn ja welche DLL und welche Funktion.

    Es betrifft die beiden WMI-Informationen
    Win32_Processor -> Name
    Win32_BaseBoard -> Model


    PS: Wie findet man eigentlich die passende API zu so einer Funktion? Hab beim googeln nichts brauchbares gefunden.

  • Active Directory Funktionen - Neue Version 1.5.0.0 freigegeben!

    • Bitboy
    • 1. April 2010 um 12:52

    So jetz mal die testergebnisse soweit ich gekommen bin:

    Ausführung als lokaler Administrator, XP SP 3

    AD_UnJoinDomain liefert 5 zurück wenn keine Angabe über Benutzer/Passwort gemacht werden (Die Angaben von AD_Open werden NICHT übernommen)
    AD_UnjoinDomain funktioniert wenn die Benutzerangaben von AD_Open "nochmal" als parameter übergeben werden.

    weiter bin ich leider nicht gekommen. Fehlen noch die Win 7 Tests

  • Active Directory Funktionen - Neue Version 1.5.0.0 freigegeben!

    • Bitboy
    • 31. März 2010 um 16:21

    Sieht gut aus. Der Arbeitsgruppenname wird wie gewünscht geändert. Der Parameter muss tatsächlich auf 4 gesetzt werden damit das Computerkonto deaktiviert wird.

    Getestet hab ich mit Win XP SP 3 und das Skript als domain admin gestartet.

    Morgen probier ich dann folgendes:

    Win 7 Skript als domainadmin starten
    XP SP 3 Benutzerberechtigung als parameter übergeben
    Win 7 Benutzerberechtigung als parameter übergeben

  • ControlSend macht Probleme beim Serial eintragen

    • Bitboy
    • 31. März 2010 um 10:51

    Eins fällt mir noch ein:
    Schonmal bei ControlSend, oder ControlSetText das Flag zum Fensterneuzeichnen benutzt?

  • Active Directory Funktionen - Neue Version 1.5.0.0 freigegeben!

    • Bitboy
    • 31. März 2010 um 08:33

    Also, habs wie beschrieben ausprobiert und das scheint zu funktionieren.

    Die Werte der Variablen sind allerdings nur schwer/umständlich im vorfeld auf anderem Weg zu ermitteln.
    Ich frage mich wie windows selbst allein mit der angabe des Domänennamens auskommt.
    (Wäre eine schöne Vereinfachung der Funktion....) über die WMI Win32_NTDomain Funktion bekommt man jedenfalls nicht wirklich die erforderlichen angaben :(

    Was mir noch aufgefallen ist: Der Computer wird nach ausführen der Aktion in eine Arbeitsgruppe gepackt, die denselben namen hat wie die Domäne.
    Schön wäre es wenn man den Arbeitsgruppennamen selber als Parameter übergeben könnte.

    Aja, das entsprechende Computerkonto wird nicht automatisch durch die Funktion gelöscht oder deaktiviert.
    Edit: Obwohl ich grad gesehen hab, dass der entsprechende Parameter in der Funktion gesetzt ist.


    Falls noch ein Vorschlag gewünscht ist:
    Bei AD_JoinDomain könnte man die OU als zusätzlichen Parameter übergeben. Die WMI Funktion erlaubt dies ja ebenfalls über einen Parameter:
    Zitat: "OU=testOU, DC=domain, DC=Domain, DC=com"
    Müsste afaik nur so umgebaut werden:$param= "OU=" & $OU & ", " & $sAD_DNSDomain

  • Treiber steuern

    • Bitboy
    • 30. März 2010 um 20:19

    Ich glaube das geht über das Kommandozeilenprogramm devcon. Bin mir aber nicht ganz sicher.

    Gibts vllt ne WMI Lösung?

  • ControlSend macht Probleme beim Serial eintragen

    • Bitboy
    • 30. März 2010 um 20:14

    ohne das entsprechende programm sicherlich schwer nachzuvollziehen.

    hast du mal mit den in der Hilfe beschriebenen optionen rumprobiert?

    Opt("SendKeyDelay",...) alters the the length of the brief pause in between sent keystrokes.
    Opt("SendKeyDownDelay",...) alters the length of time a key is held down before being released during a keystroke.


    Alternativ kannst du ja herausfinden ob sich das Programm über Parameter installieren lässt.
    Das ist wahrscheinlich die zuverlässigste und einfachste methode.

  • Active Directory Funktionen - Neue Version 1.5.0.0 freigegeben!

    • Bitboy
    • 30. März 2010 um 17:23

    OK, probier ich dann morgen mal und sag dann hier bescheid.

  • Active Directory Funktionen - Neue Version 1.5.0.0 freigegeben!

    • Bitboy
    • 30. März 2010 um 11:30

    Hm, wusste nicht genau welche Parameter ich für die Funktion verwenden werden müssen

    Aus der Erklärung hab ich das so verstanden:

    AD_Open($Benutzername, $Password, $Domänenname, $Servername) Was der 5.Parameter $Configuration enthalten soll ist mir nicht ganz klar.
    Der Benutzernamen ist nur der Benutzername ohne Domäne, da ja der Domänenname als eigener Parameter übergeben wird.

    Habe mich zum Testen als lokaler Administrator am Rechner angemeldet (also ohne Domänenrechte).


    Damit die Angaben nicht wiederholt werden müssen, könnten beim Aufruf von AD_Open 2 globale Variablen definiert werden die Benutzername und Passwort enthalten.
    Beim Aufruf von AD_Close werden diese dann wieder auf "" gesetzt.

  • Active Directory Funktionen - Neue Version 1.5.0.0 freigegeben!

    • Bitboy
    • 30. März 2010 um 09:44

    Also mein Testskript sieht so aus:

    Spoiler anzeigen
    [autoit]

    #include <AD.au3>

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

    MsgBox(0,"AD-Open",_AD_Open("****", "****", "*****", "*******"))

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

    If _AD_UnJoinDomain(@ComputerName, "*******", "******") = 0 Then
    MsgBox(0,"Fehler Unjoin", @error)
    EndIf

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

    MsgBox(0,"AD-Close",_AD_Close())
    Exit

    [/autoit]

    beim Aufruf von "AD-UnjoinDomain" bekomm ich allerdings als Rückgabe 0 und als Fehlernummer (@error) 1 geliefert. Das Computerkonto existiert aber.
    Ist das eigentlich richtig, dass UnjoinDomain mit den Rechten ausgeführt wird mit denen das Skript läuft
    anstatt mit den Benutzerangaben die in AD_Open eingetragen sind?

    (Würde ja bedeuten dass die angaben doppelt gemacht werden müssten)

    Ist das Absicht, dass AD_Close gar keinen Rückgabewert hat?

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™