Beiträge von Racer

    Hallo!


    Mir fallen dazu zwei Dinge ein:

    1.) Autologon.exe von Mark Russinovich (Tool gibt es bei der MS zum Download). Damit wird mal zumindest das Kennwort für den User nicht unverschlüsselt abgelegt

    2.) Es gibt einen Windows Update Offline installer https://download.wsusoffline.net/ . Wenn man sich das etwa genauer ansieht stellt man zu einem fest das es in AutoIT geschrieben ist :rock: und zum Anderen externe Tools verwendet werden die auch ein automatisches Logon mit dem angemeldeten User von alleine macht. Ob das auch noch "einfach so" unter einem aktuellen Windows 10/11 funktioniert muss probiert werden (VM ist dafür hervorragend geeignet).


    lg

    Racer


    PS: Würde sich der Securesreen so einfach ausheblen lassen, wäre Windows schon sehr unsicher....

    Hallo Moombas!


    Danke für Deine schnelle Antwort!


    @SystemDir & "\imageres.dll" funktioniert! Und dann ist es mir wie Schuppen von den Augen gefallen: Wenn man @Systemdir & "c:\windows\system32\imageres.dll" schreibt wird das nie was =O


    Ein klarer Fall "Den Wald vor lauter Bäume nicht sehen" oder "zulange auf den Quellcode gestarrt...." Auf jedenfall Zeit fürs Wochenende!


    lg

    Racer

    Hallo!


    Ich spiele (lerne) mit der Funktion _GUIImageList_AddIcon umzugehen. Die ersten Erfolge sind auch schon da, nur bin ich jetzt auf ein kleines Problem gestoßen:


    Gibt man den Pfad absolut an (z.B.: c:\windows\system32\imageres.dll") wird kein Icon angezeigt. Mache ich das wie im Beispiel mit "\imageres.dll" kommt das Icon. Das wäre ja im Grunde nicht so schlimm, würde nicht die MS ab Windows 10 nicht wo anderen ablegen siehe https://www.deskmodder.de/wiki…rort_der_Windows_10_Icons


    Und damit die Fehlersuche ja recht lange geraucht hat: Koda kann das schon über die GUI....


    lg

    Racer


    Ich habe es jetzt mit CRTL+Shirf+V versucht...hilft nicht :( Ja ich kopiere es direkt aus dem SciTE heraus. Ich habe auch schon aus dem Notepad++ mit und ohne CR versucht...liegt wohl an meine Finger ;)


    Sorry für mein GETTOK ....wahr eine meiner ersten Funktionen die in sehr vielen Scripts steht. Ich habe die Funktion dazukopiert!


    @Variablen-Deklaration: Ich weiß nicht was Du meinst? Bei mir gibt es keinen Error...vielleicht ein Fehler bei meinen vielen Versuchen das Script in ein vernünftiges Aussehen zu bekommen? Ich habe es jetzt nochmal kopiert - sieht immer noch schei...aus. Gettok und print (ja nicht schimpfen: heute weiß ich auch das man seine eignen Funktionen mit _ kennzeichnet) angehängt!


    lg

    Racer

    Hallo!


    Ich habe mal eine Tool für Techniker geschrieben die eine USB-HD automatisch bespielen soll. Dabei habe ich festgestellt das unter Windows 7 die HD als USB und unter Windows 10 als SCSI-Device zurückgemeldet wird. Kann sein das Du hier auch auf so ein Problem stößt.


    Um den Umweg über die Powershell zu vermeiden kann gerne meine Funktion verwenden, muss sie vielleicht nur ein bisschen anpassen!


    AutoIt
    ;****************************************************************; Sucht alle USB-LW laut WMI mit den gegebenfalls zugehörigen; Laufwerksbuchstaben; Übergabe: -; Rückgabe: 2D Array;            Col0                                                        Col1;            Kingston DTR30G2 USB Device|\\.\PHYSICALDRIVE4                 J:;            Samsung Portable SSD T3 USB Device|\\.\PHYSICALDRIVE3        F:|G:; Hinweis:  wird nichts gefunden, wird trotzden ein Array zurückgeliefert;            im Index [0][0] steht immer die Anzahl der gefunden Laufwerke;****************************************************************func _wmi_usb_lw ()local $diskenlocal $anzahl = 0local $namelocal $Mediatypelocal $anslocal $captionlocal $disknummerlocal $colItemslocal $Alocal $Blocal $objWMIService = ObjGet("winmgmts:\\.\root\CIMV2")dim $dd[1][2]If IsObj($objWMIService) Then    $colItems = $objWMIService.ExecQuery('select * from Win32_DiskDrive')    If IsObj($colItems) Then        For $oItem In $colItems            $name = $oItem.Name            $Mediatype = $oItem.MediaType            $ans = $oItem.InterfaceType            $caption = $oItem.Caption            if ($ans = "USB" or $ans = "SCSI") and $Mediatype = "External hard disk media" Then                $anzahl = $anzahl + 1                ReDim $dd[$anzahl + 1][2]                $dd[$anzahl][0] = $caption & "|" & $name                ;print ($caption & @TAB & $Mediatype)            EndIf        Next    endifEndIf$dd [0][0]= $anzahlif $dd [0][0] <> 0 Then    for $i = 1 to $dd[0][0]        $disknummer = StringRight ($dd[$i][0],1)        ;print ("disknummer: " & $disknummer & @TAB & $dd[$i][0])        $colItems = $objWMIService.ExecQuery('select * from Win32_LogicalDiskToPartition')        If IsObj($colItems) Then            For $oItem In $colItems                $A = $oItem.Antecedent                                            ;beinhaltet die Disknummer...                $B = $oItem.Dependent                                            ;beinhlatet den LW                if StringInStr ($A, "Disk #" & $disknummer) <> 0 Then                    ;print (gettok ($b, "=", 2))                    $dd[$i][1] = $dd[$i][1] & gettok ($b, "=", 2) & "|"                EndIf            Next            $dd[$i][1] = StringReplace ($dd[$i][1], '"' , '')            if StringRight ($dd[$i][1], 1) = "|" Then                $dd[$i][1] = StringLeft ($dd[$i][1], StringLen ($dd[$i][1]) -1)            EndIf        EndIf    NextEndIfReturn ($dd)EndFunc;****************************************************************
    
    
    ;**********************************************; Tokentrenner ohne Array !!; Übergabe: Der String der untesucht wird; Übergabe: Der String der den ersten String teilt; Übergabe: Das wievielte Teil; Ausgabe: Den gesuchten Token oder eine Leerstring (=Fehler);**********************************************func gettok ($string, $teiler, $teilnummer)local $neu , $tmp$tmp = stringsplit ($string, $teiler, 1)if $tmp[0] >= $teilnummer then    $neu = $tmp[$teilnummer]else    $neu = ""endifreturn $neuendfunc;**********************************************
    
    ;*******************************************************Func print ($text)    ConsoleWrite ($text & @crlf)EndFunc;*******************************************************


    lg

    Racer

    Hallo!


    Wie misterspeed schon sehr ausführlich erklärt hat gibt es zwei Arten von Sitztungen: RDP und Console. Die Console kann via KVM (meist ein physikalischer Anschluss der auf TCP/IP umgemünzt wird) oder z.B.: via ESXi eine Console (Webbroser).


    Was schon geht auf einen Server: Du kannst eine RDP-Sitzung auf eine fixe Auflösung stellen und dort Deine Scripts laufen lassen. Jeder Windows Server biete 2 Einstiege an (Remote oder Console). Zur Wartung steigst Du mit einem zweiten User ein, so unterbrichst Du nicht die erste Sitzung.


    Es darf nicht darauf vergessen werden das:

    1.) Kein autologgoff nach einer Zeit (meist 4 Stunden) von der RDP-Sitzung passiert

    2.) Kein Standby (sollten Server sowieso nicht haben)

    3.) Die RDP-Sitzung darf nur getrennt werden und nicht abgemeldet!


    Meiner Meinung nach sollten Serverprogramme immer ohne GUI auskommen, sonst gibt es immer unnötige Probleme nach einen Reboot (der kommt sicher)!


    lg

    Harald

    Hallo!


    Super für diese UDF :thumbup: ! Ich habe schon einmal versucht mit XML-Daten klar zu kommen, aber sagen wir mal ich bin zu alt dafür 8o


    Aber diese Funktinen verstehe ich sehr gut! Ich hoffe das es auch mit tiefer verschachtelten XML-Daten funktioniert, ich benötige immer wieder kleine Tools zur Auswertung von z.B.: Applockereinträge.

    Wenn ich wieder im Büro bin werde ich mich damit herumspielen und testen....


    lg

    Racer

    Hallo!


    Ich weiß gar nicht ob es das mit den Biepstöne noch gibt, aber da ich schon seeeehr lange in der EDV unterwegs bin kenne ich das nur wenn etwas nicht stimmt. Das sind BIOS-Signale das etwas nicht in Ordnung ist.

    Wie Schnuffel geschrieben hat: Biepstone notieren (wie Morsezeichen nur grauslicher) und dann bei dem Gerätetype im Internet suche. Auch die Motherboardbeschreibung sollte Dir weiterhelfen können!


    Bei mancher Hardware kann auch das DVI-Kabel entscheidend sein - ist ein Erfahrungswert!


    lg

    Racer


    PS: wieviel sind 900 Kronen in € ?

    Hallo!


    Dexter: Ich bin zwar aus Österreich aber ich denke die gesätzlichen Vorgaben sind sehr ähnlich. Allerdings, solange Du keine Verrechnung machst ist es egal mit welchen Programm Du Deine Waren verwaltest. Nur die Rechnungsstellung muss mit einen Programm gemacht werden das (in Ö) beim Finanzamt gelistet ist. Auch ich habe das Kassenbuch (in Autoit geschrieben) von meiner Frau und die Registierungskassa (gekaufte Software) getrennt. Das ist kein Problem, außer in D sind die Gesätze strenger!


    Aber ich gebe Dir schon recht, hier ein bisschen Geld zu investieren ist sicher der bessere Weg um nicht in Teufels(Finanzamt)-Küche zu kommen.


    lg

    Racer

    Fenster (GUIs) und "als Windows Dienst" laufen lassen wird schwierig....Dienst laufen normalerweise unter einem Systemaccount und der hat keine Oberfläche (gibt natürlich Ausnahmen, aber die lassen wir mal außen vor).


    Oder meinst Du ein "Servicedienst" und ein Clientprogramm? Das ist schon deutlich mehr Aufwand da Du die Programm miteinander kommuniziern lassen musst!


    Wenn Du mit Punkt 5 eher einen "Autostart" meinst dann würde ich das eher als Task sehen der auf bestimmte Events reagiert (bei der Useranmeldung, Ereignisse,.....)


    lg

    Racer

    Hallo Andy!


    Vielen Dank für die Info.....


    Ich hatte gehofft das vielleicht jemand eine schöne UDF dafür hat. Die Beschreibung übersteigt leider meine Kenntnisse damit hier etwas vernünfitges herauskommt.


    lg

    Racer

    Hallo!


    Nachdem bei mir in der Arbeit die Security immer mehr anzieht und Remoteabfragen via RPC in absehbarer Zeit abgeschaltet wird (Firewall) habe ich die ersten Gehversuche mit Winrm gestartet. Im guten alten DOS-Fenster (ja, ich weiß das ist Kine DOS mehr 8) ) funktioniert das schon recht gut.


    Ich suche jetzt eine elegantere Möglichkeit aus AutoIT heraus Winrs zu verwenden. Nur den Fensteroutput zu parsen ist nicht wirklich spannend!

    Hat jemand damit schon gearbeitet oder Erfahrung? Für Tipps und Tricks wäre ich sehr dankbar!


    Für die ersten Gehversuche würde ich die gute alte quser-abfrage ersätzen wollen....


    lg

    Racer

    Hallo!


    Ein guten Beispiel ist eine asynchrone Anzeige (zumindest für mich):

    Beispiel: Ich habe in der Hauptschleife eine längere Berechnung die ein paar Minuten Zeit braucht. Die Datenmenge die ich verarbeite hat manchmal in einem Array 50000 Einträge oder mehr. Jetzt wäre es für den Anwender eher "unangenehm" wenn nur steht "bitte warten....Verarbeitung läuft!" oder so......

    Ich mache dann mit dem Adlibregister mit einer hohen Zeit (+2000) eine Anzeige für den Fortschritt (Balken, Zähler, Countdown,...)


    Warum der Aufwand: Würde ich jeden Eintrag in der Hauptschleife ausgeben, würde die Verarbeitung noch länger dauern. Nichts hinschreiben ist auch nicht gut. Und so habe ich einen goldene Mitte gefunden.......


    Gibt sicher noch viele andere Anwendungsmöglichkeiten, hauptsache die Funktion ist mit möglichst wendig Zeit durchgelaufen...


    lg

    Racer

    Wenn Du eine Art Desktop-refresh machen möchtest versuche es mal mit der Beendigung des DWM.EXE - Prozess (Desktop Windows Manager).

    Dieser startet sich von alleine wieder und baut den Desktop neu auf.


    Unter Windows 7 bzw. WinPE muss ich immer das Hintergrundbild tauschen (nach dem schon alles gelaufen ist) und da hat das funktioniert!


    lg

    Racer

    Hallo!


    Robocopy ist ein mächtiges Werkzeug, aber auch kein Wunderding. Eine Datenbank im laufenden Betrieb zu kopiern ist so eine Sache: wenn Du Pech hast geht der Userzugriff gerade nicht wenn die Sicherung läuft. Oder die Sicherung ist korrupt wenn gerade Userzugriffe stattfinden und die Sicherung startet.

    Ich bin jetzt nicht mit Datenbanken sehr vertraut, aber so weit ich weiß gibt es dafür eigene Sicherungswerkzeuge.


    Die Geschichte mit dem Abmelden: Alles was Du interaktiv startest wird beim Logoff auch beendet - Ausgenommen spezielle Werkzeuge die meistens einen Serverdienst im Hintergrund haben. Aber was spricht gegen einen Task? Als System eingerichtet bei Systemstart mitlaufen lassen hast Du keine Probleme mit dem Zugriff (System darf fast überall) und mit ein paar netten Parameter läuft das wie geschmiert.


    Ich würde Dir auch die Parameteter /r: und /w: ans Herz legen. Die Defaultwerte sind (mir persönich) etwas zu hoch. Auch ein Logfile ( /log) ist immer recht wichtig.

    Ach ja, noch ein Tipp: Robocopy verfolgt Hardlinks und symbolische Links. Wenn Du das nicht brauchen kannst dann /jx bzw. /XJD oder /XJF


    lg

    Racer