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. michach

Beiträge von michach

  • Passwort verschlüsseln / auslagern

    • michach
    • 22. Oktober 2014 um 20:44

    Jep, da ist auch kein Passwort, das mache ich ja auch per Dropbox ;)

    Ich wollte es mal per FTP machen und Passwort, was aber wohl doch nicht so einfach ist. Werde es dann wohl auch über Dropbox machen, oder wie du es vorgeschlagen hast Andy.

    Danke nochmal an alle.

  • Passwort verschlüsseln / auslagern

    • michach
    • 22. Oktober 2014 um 20:18

    Hallo, vielen Dank an die Zahlreichen Antworten und Tipps, aber wie es aussieht werden ich das wohl doch per VB umsetzen. Ich habe schon ein Programm in VB geschrieben welches so etwas macht, in der Art habe ich mir das auch mit AutoIt vorgestellt.

    Etwas gekürzt:

    Code
    ...
        Sub RunUpdate()
            If TestInternetConnection() = True Then
                Try
                    Dim version As String = Web.DownloadString("https://dl.dropboxusercontent.com/u/......./version.txt")
                    version = CInt(version)
                    If version > CInt(lblVersion.Text) Then
                        Try
                            If Not System.IO.File.Exists(System.IO.Path.Combine(Application.StartupPath, "[Update" & version & "]" & "CPU_RAM_Status.exe")) Then
                                Dim path As String = "https://dl.dropboxusercontent.com/u/......./CPU_RAM_Status.exe"
                                My.Computer.Network.DownloadFile(path, Application.StartupPath & "/[Update" & version & "]" & "CPU_RAM_Status.exe")
                                MsgBox("Ein Update wurde erkannt und heruntergeladen!")
                            End If
                        Catch ex As Exception
                            MsgBox(ex.ToString)
                        End Try
                    End If
                Catch ex As Exception
                    'nothing
                End Try
            End If
        End Sub
    ........... 
       Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            TestInternetConnection() ' Beim laden des Formulars wird geprüft ob Internet vorhanden ist
            RunUpdate() ' Wenn Internet und eine neue Version gefunden wird, beginnt der Download
            Autostart("CPU_RAM_Status")
        End Sub
    Alles anzeigen

    So in etwas, würde auch auf Dropbox ausweichen wenn das einfach und eine bessere Alternative ist. Ich glaube das ist so in etwa das, was chesstiger meinte, oder ?
    Also diese Alternative würde auch gehen, wollte es aber gern per FTP machen/testen.

  • Passwort verschlüsseln / auslagern

    • michach
    • 22. Oktober 2014 um 01:00

    Hi,

    Danke für die Info, das ist schon OK, es ist eher für unsere Abteilung und mit dem Script werden "nur" die Citrix Server ausgelesen um zu wissen in welchen Modus die gerade geschaltet sind und welche Software gerade zuletzt installiert wurde, also reine Info. Wir sind Domän Admins, das dürfen wir dann schon ;) Die Abfrage der Server erfolgt eh mit einem Zusätzlichen Eingabe vom AD User und Passwort, dieses Windows/Remote Fenster poppt eh auf bei der Abfrage.
    USB geht nicht, bei uns sind die USB Ports gesperrt ( gut, könnte ich frei schalten ), aber da ist noch das zweite Problem, ich bräuchte einen Server an dem der USB angeschlossen ist, oder meinen Rechner immer anlassen, sonst wird er ja nicht gefunden :)

    Ich habe mir eher vorgestellt:

    Passwort eingeben (kleine extra Input Box) -> Passwort wird verschlüsselt -> Speicherung in eine ini Datei
    Im eigentlichen Script ist der Verweis auf die ini Datei -> Abfrage des Passwortes -> Enschlüsselung -> Übergabe an Variable für den FTP Zugriff.

    So in etwa :)

  • Passwort verschlüsseln / auslagern

    • michach
    • 22. Oktober 2014 um 00:24

    Hallo liebe Gemeinde,

    ich habe ein Frage, habe dazu auch schon die Sucher verwendet, aber irgendwie noch nicht das gefunden was ich gesucht habe, vllt bekomme ich ja so Hilfe oder Tipps :)
    Ich habe ein Script geschrieben welches auch in der Firma von Kollegen verwendet werden soll, dieses Script spricht aber auch meinen FTP Server an um bei Updates eine Meldung zu geben.
    Dazu habe ich Zugangsdaten für den Zugriff im Script hinterlegt, was natütlich etwas blöd ist, da diese jeder lesen könnte. Hauptsächlich gehts mit dabei um das Passwort, ggf. auch Benutzernamen.
    Wie kann ich wenigsten diese beiden Variablen verschlüsseln / unkenntlich machen oder auch verschlüsselt als z.B. ini Datei auslagern ?

    Beispiel:

    Code
    ; <-------------------- Beginn Update Block -------------------->
    
    
    $ftp_Server = "Server"    ;<-- Ftp Server
    $ftp_User = "Benutzer"        ;<-- Ftp Server Benutzer
    $ftp_Password = "Kennwort"            ;<-- Ftp Server Passwort, dieses soll verschlüsselt werden
    $ftp_Path = "/update"                ;<-- Ftp Server Pfad zu dem Ortner mit den Updates
    $local_Version = "1.0.0"            ;<-- Die lokale Version des Skriptes
    
    
    checkforupdate()
    ; <---------------------- Ende Udate Block --------------------->
    Alles anzeigen

    Vielen Dank schonmal

    Gruß

  • Variable aus batch an autoit weitergeben

    • michach
    • 6. Mai 2011 um 09:44

    Ok, habe es jetzt selber gefunden, funktioniert mit:

    Code
    set /a _uebrig=9-%_uptime%

    Danke nochmal an alle :)

  • Variable aus batch an autoit weitergeben

    • michach
    • 6. Mai 2011 um 09:24

    Würde ich schon gerne, aber mein Chef sagt das es so gemacht werden sollte, also bleibt mir nicht viel übrig :(

  • Variable aus batch an autoit weitergeben

    • michach
    • 6. Mai 2011 um 08:56

    Vielen Dank für die Hilfe, hat sehr gut geklappt :)
    Nur noch eine kleine Frage, wie mache ich das wenn ich von der Variable tage abziehen möchte ?

    Code
    @echo off
    uptime
    for /f "tokens=1 delims=:," %%a in ('uptime') do set _uptime=%%a
    set /a _uptime=%_uptime:~0,-7%
    if %_uptime% GEQ 9 goto neun
    if %_uptime% GEQ 6 goto sechs
    if %_uptime% GEQ 3 goto drei
    if %_uptime% GEQ 0 goto null
    REM -- Meldung zwischen 6 und 8 Tagen
    :sechs
    Achtung, nur noch 9-%_uptime% Tage bis zum automatisierten Neustart des Rechners: Ihr Rechner läuft bereits seit %_uptime% Tagen ununterbrochen. Für die Stabilität und Sicherheit Ihres Systems ist ein regelmäßiger Neustart notwendig. Daher wird ihr System nach neun Tagen automatisch neu gestartet.
    exit
    Alles anzeigen

    Wie kann ich oben von den 9 Tagen die vergangenen Tage am besten abziehen ?

  • Variable aus batch an autoit weitergeben

    • michach
    • 5. Mai 2011 um 17:34

    Das klappt ja schonmal super, wie mache ich das mit text dazwichen, so klappt es ja leider nicht:

    Code
    call achtung.exe Es sind schon %_uptime% Tage vergangen.

    Der Text soll zum Anpassen auch in der Batch stehen, da die autoit datei ja eine exe wird.

  • Variable aus batch an autoit weitergeben

    • michach
    • 5. Mai 2011 um 17:02

    Nicht gut, es soll später auf allen Rechnern ausgeteilt werden, somit sollen es so wenig Dateien wie möglich sein, auch wenn es nur eine Text Datei ist :)
    Aber Danke erstmal, über andere Ideen würde ich mich sehr freuen :)

  • Variable aus batch an autoit weitergeben

    • michach
    • 5. Mai 2011 um 16:51

    Hallo liebe Gemeinde,

    ich habe eiin kleines Problem und hoffen hier Hilfe zu bekommen.
    Ich möchte eine Variable aus eine Batch datei an AutoIt weitergben und AutoiT starten, aber wie bekomme ich das mit der Variable hin ?
    Im mom habe ich das so:

    Code
    uptime 
    for /f "tokens=1 delims=:," %%a in ('uptime') do set _uptime=%%a 
    set /a _uptime=%_uptime:~0,-7% 
    
    
    if %_uptime% GEQ 9 goto neun 
    if %_uptime% GEQ 6 goto sechs 
    if %_uptime% GEQ 3 goto drei 
    if %_uptime% GEQ 0 goto null 
    :null 
    call achtung.exe 
    exit
    Alles anzeigen

    %_uptime% ist meine Variable, die soll an achtung.exe übergeben werden, hat da einer eine Idee ?

  • Consolen Ausgabe in der in GUI

    • michach
    • 8. April 2011 um 16:21

    OK, ich denke ich werde da mit Progress Bar arbeiten, so sieht der Anwender wenigstens das irgendwas passiert, bis am Ende dann die Zusammenfassung angezeigt wird :)

    Habt ihr denn eine Idee wie ich die denn am besten integrieren kann, die Werte werden ja aus der Console ausgelesen, solange muß die Progressbar ja etwas machen, entweder von 0 auf 100% gehen, also 100% = Fertig, wobei ich hier ja keinen Wert habe da ich ja nicht weiss wie lange er für die Profile benötigt, bzw wie viel Profil er auf den Rechner löschen wird.
    Oder eine die immer hin und her läuft, bis er fertig ist.

    Was wäre da besser, und welchen Wert sollte ich am besten nehmen?

    Ich dachte mir das wenn dich die mit hin und herr laufen nehme, diese sich dann beendet oder ausbelndet wenn GUICtrlSetData die Ausgabe liefert, nur ist die Ausgabe ja schon in der Schleife = 1, oder ?

  • Consolen Ausgabe in der in GUI

    • michach
    • 8. April 2011 um 15:08

    Hi,

    aber so wie du den Code geschrieben hattest, ist doch die GuiCtrlSetData nach der schleife, oder wie meinst du das :wacko:

  • Consolen Ausgabe in der in GUI

    • michach
    • 8. April 2011 um 13:44

    Das gleiche Problem, es löscht die Inaktiven Profile, und erst wenn er fertig ist, zweigt er mir das Ergebnis an. Das blöde ist das es manchmal sehr lange dauern kann bis etwas angezeigt wird, kommt auf die Menge und Größe der Profile an, kann locker bis 5 Minuten und länger dauern. Der Anwender sieht so nicht ob etwas passiert.
    Im normal fall würde er aber nach jedem gelöschten Profil ein eZeile mit dem [OK] bekommen.

    Habe das jetzt so:

    Spoiler anzeigen
    [autoit]


    Case $Button1
    ConsoleWrite("Consoleneingabe")

    If( $tab1hostname1 == "") Then
    GUICtrlSetData ($LabelAusgabe,"Bitte den Hostnamen eingeben!")
    Else
    ;$cmdProfilLoeschen = Run(@ComSpec & " /c dir c:\", @SystemDir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
    $cmdProfilLoeschen = Run(@ComSpec & " /c delprof /c:\\" & $tab1hostname1 & " /i /q", @SystemDir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
    While 1
    $ausgabe = StdoutRead($cmdProfilLoeschen)
    Sleep(100)
    If $ausgabe <> "" Then ExitLoop
    WEnd
    GUICtrlSetData($LabelAusgabe, $ausgabe)
    EndIf

    [/autoit]
  • Consolen Ausgabe in der in GUI

    • michach
    • 8. April 2011 um 13:08

    also normalerweise lautet der Befehl:

    delprof /c:\\%1 /i /q

    wenn ich den ausführe, wird ein Profil nach dem anderen gelöscht und mir nacheinander angezeigt, und das wollte ich dann sozusagen live in der GUI sehen.
    Wenn das nicht geht, würde mir reichen wenn ich am Ende halt eine Meldung bekomme das das Löschen fertig ist, wenn er nicht mehr macht.

    Edit:
    Gerade den Beitrag von Schnuffel gesehen, werde das mal testen, danke :)

  • Consolen Ausgabe in der in GUI

    • michach
    • 8. April 2011 um 12:53

    Irgendwie klappt das mit dem Live aber nicht :(
    Habe noch den Screen angehangen, hatte den vergessen :whistling:

  • Consolen Ausgabe in der in GUI

    • michach
    • 8. April 2011 um 12:38

    Hi,

    ok, soweit funktioniert es, vielen dank nochmal. Was aber vielleicht besser wäre, wäre wenn die Anzeige sich immer nach der löschung eines Profils aktualisiert, nicht erst wenn sie fertig ist. Im mom ist es so das das Fenster weiß bleibt, bis er fertig ist mit der löschung der Profile, dann wird der Status angezeigt, siehe Screen, habe ich vielleicht die Schleife noch etwas falsch ?
    Wenn er fertig ist, passiert aber auch nicht, also kommt auch nicht c:> oder so am Ende, daher ist man als Benutzer nicht 100% sicher ob er jetzt fertig ist. Kann man dann noch irgenwas einbauen das dann vielleicht am Ende eine Meldung wie "Löschen der Profile ist fertig" oder so ?

    Gruß
    Micha

    Nachtrag: hatte den Screen vergessen :)

    Dateien

    1.jpg 56,74 kB – 0 Downloads
  • Consolen Ausgabe in der in GUI

    • michach
    • 8. April 2011 um 08:10

    Hi,

    vielen dank für die Hilfe, Feld habe ich jetzt in ein Edit Control Feld geändert, wenn ich jetzt kein Hostnamen eingeben, kommt in dem Feld die Meldung:
    "Bitte den Hostnamen eingeben!".

    Wenn ich das mache, sollte jetzt eigentlich in diesem Feld sehen wie er ein Profil nach dem anderen löscht, so wäre es in der CMD normalerweise, aber es passiert leider nicht.
    Das Feld bleibt lehr, es sieht nur so aus als wenn der Courser wärend des Prozesses flakern würde, die Profile werden aber gelöscht, das funktioniert.

    Hier nochmal der Ausschnitt von dem Code:

    Spoiler anzeigen
    [autoit]


    Case $Button1
    ConsoleWrite("Consoleneingabe")

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

    If( $tab1hostname1 == "") Then
    GUICtrlSetData ($LabelAusgabe,"Bitte den Hostnamen eingeben!")
    Else
    ;$cmdProfilLoeschen = Run(@ComSpec & " /c dir c:\", @SystemDir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
    $cmdProfilLoeschen = Run(@ComSpec & " /c delprof /c:\\" & $tab1hostname1 & " /i /q", @SystemDir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
    While 1
    $ausgabe = StdoutRead($cmdProfilLoeschen)
    If @error Then ExitLoop
    GUICtrlSetData($LabelAusgabe, $ausgabe)
    WEnd
    EndIf

    [/autoit]

    Habt ihr da villeicht noch einen Tipp was da falsch sein könnte ? Das mit dem DIR funktionierte mit dem Label soweit ich mich erinnern kann, mit dem Edit Fenster wird es nur ein milisekunde eingeblendet und verschwindet dann wieder.

  • Consolen Ausgabe in der in GUI

    • michach
    • 7. April 2011 um 22:21

    Hallo @all,

    ich habe mal eine Frage und hoffe das mir geholfen werden kann :)

    Ich habe eine GUI gebaut um uns etwas das leben auf Arbeit zu erleichtern. In diesem Fall geht es darum inaktive Profile auf den Rechner im Netzwerk zu löschen. Im mom ist es so das wir das Händisch über die CMD Console mit dem Befehlt "delprof" machen. Es gibt eine Menge Sachen die wir über die Console machen, was ich jetzt aber alles in ein Tool zusammen fassen möchte. Nun zu meinem Problem.
    Wenn ich nun den Befehl "delprof" ausführe, ist es im mom so das die Console offen ist und sie mir untereindander anzeigt welches Profil gerade auf den Rechner den ich vorher bestimmt habe, gelsöcht wird, also:

    C:> Lösche Profil user1....
    C:> Lösche Profil user2....
    usw. bis die inaktiven Profile gelöscht wurden

    Das möchte ich auch gerne mit meinem Tool haben, allerdings bekomme ich das mit der Anzeige nicht hin.
    Ich der blauen Markierung sollte die Anzeige mit dem Status dann stehen wie gerade die Profile gelöscht werden, allerdings kommt dort keine anzeige :(

    Mein bisheriger Code:

    Spoiler anzeigen


    #include <GUIConstants.au3>
    #include <Constants.au3>

    #Region ### START Koda GUI section ### Form=c:\users\michach\desktop\sd-tools.kxf
    $Form1_1 = GUICreate("Form1", 568, 571, 616, 220)
    $Tab1 = GUICtrlCreateTab(8, 8, 553, 553)
    GUICtrlSetFont(-1, 10, 800, 0, "Arial")
    GUICtrlSetResizing(-1, $GUI_DOCKWIDTH+$GUI_DOCKHEIGHT)
    $TabSheet2 = GUICtrlCreateTabItem("User Profile")
    $Group1 = GUICtrlCreateGroup("Alle lokalen Profile löschen", 16, 48, 537, 97)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    $Label1 = GUICtrlCreateLabel("Hostname:", 49, 88, 69, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Input1 = GUICtrlCreateInput("", 120, 86, 89, 24)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Button1 = GUICtrlCreateButton("Löschen", 223, 85, 73, 25, 0)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group2 = GUICtrlCreateGroup("Profil zurücksetzen", 16, 177, 537, 113)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    $Label2 = GUICtrlCreateLabel("Username:", 22, 218, 70, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Input2 = GUICtrlCreateInput("", 93, 216, 89, 24)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Button2 = GUICtrlCreateButton("Profil zurücksetzen", 206, 257, 145, 25, 0)
    $Label3 = GUICtrlCreateLabel("Homeserver:", 194, 217, 82, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Input3 = GUICtrlCreateInput("", 276, 215, 89, 24)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Label4 = GUICtrlCreateLabel("Hostname:", 378, 217, 69, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Input4 = GUICtrlCreateInput("", 447, 215, 89, 24)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $LabelAusgabe = GUICtrlCreateLabel("", 17, 304, 540, 228)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $Label14 = GUICtrlCreateLabel("Version 1.0", 496, 536, 57, 17)
    $TabSheet3 = GUICtrlCreateTabItem("Tools")
    GUICtrlSetState(-1,$GUI_SHOW)
    $Group3 = GUICtrlCreateGroup("Diverse Tools", 16, 48, 537, 465)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    $Button3 = GUICtrlCreateButton("Display", 24, 152, 105, 25, 0)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Label5 = GUICtrlCreateLabel("( Hostname ) Öffnet die Bildschirm-Einstellungen auf dem Rechner des Benutzers", 144, 155, 384, 17)
    $Button4 = GUICtrlCreateButton("Einstellungen", 24, 202, 105, 25, 0)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Label6 = GUICtrlCreateLabel("( Hostname ) Öffnet die Einstellungen auf dem Rechner des Benutzers", 144, 205, 334, 17)
    $Button5 = GUICtrlCreateButton("Systemeig.", 24, 251, 105, 25, 0)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Label7 = GUICtrlCreateLabel("( Hostname ) Öffnet die Systemeigenschaften auf dem Rechner des Benutzers", 144, 254, 372, 17)
    $Button6 = GUICtrlCreateButton("Compverw.", 24, 301, 105, 25, 0)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Label8 = GUICtrlCreateLabel("( Hostname ) Öffnet die Computerverwaltung auf dem Rechner des Benutzers.", 144, 304, 371, 17)
    $Button7 = GUICtrlCreateButton("Quota", 24, 350, 105, 25, 0)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Label9 = GUICtrlCreateLabel("( Hostname ) Startet eine Quota Abfrage auf dem Host für den Benutzer.", 144, 353, 343, 17)
    $Label11 = GUICtrlCreateLabel("Hostname:", 58, 96, 69, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Input5 = GUICtrlCreateInput("", 128, 94, 89, 24)
    $Label12 = GUICtrlCreateLabel("Benutzername:", 302, 96, 93, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Input6 = GUICtrlCreateInput("", 396, 94, 89, 24)
    $Button9 = GUICtrlCreateButton("Shutdown", 25, 410, 105, 25, 0)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0xFF0000)
    $Label13 = GUICtrlCreateLabel("( Hostname ) Startet den Rechner innerhalt 5 Sek. neu. ( Erzwungen )", 145, 413, 332, 17)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Label10 = GUICtrlCreateLabel("Version 1.0", 497, 537, 57, 17)
    $TabSheet4 = GUICtrlCreateTabItem("Hilfe")
    GUICtrlCreateTabItem("")
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

    ;If FileExists("c:\Kopie") Then

    While 1

    ;Variablen
    $tab1hostname1 = GUICtrlRead ($Input1)
    $tab1username = GUICtrlRead ($Input2)
    $tab1homeserver = GUICtrlRead ($Input3)
    $tab1hostname2 = GUICtrlRead ($Input4)

    $tab2hostname = GUICtrlRead ($Input5)
    $tab2username = GUICtrlRead ($Input6)

    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    ;Case $Tab1

    ;###################################################################
    ;Alle lokalen Profile löschen
    ;###################################################################
    Case $Button1
    ;$tab1hostname1 = GUICtrlRead ($Input1)
    $cmdProfilLoeschen = Run(@COMSPEC & " /c delprof /c:\\" & $tab1hostname1 & " /i /q", @SystemDir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
    While 1
    $ausgabe = StderrRead($cmdProfilLoeschen)
    If @error Then ExitLoop
    GUICtrlSetData ($LabelAusgabe,$ausgabe)
    Wend

    ;###################################################################
    ;Profil zurücksetzen
    ;###################################################################
    Case $Button2
    ;Lokales Profil löschen

    ;Server Profil kopieren
    If( $tab1hostname2 == "" Or $tab1username == "" Or $tab1homeserver == "") Then
    GUICtrlSetData ($LabelAusgabe,"Bitte alle Felder ausfüllen!")
    Else
    $kopieren = DirCopy("\\"&$tab1hostname2&"\profile\"&$tab1username, "\\"&$tab1hostname2&"\profile\"&$tab1username&".sic")
    GUICtrlSetData ($LabelAusgabe,"Alle Felder ausgefüllt.")
    EndIf

    ;###################################################################
    ;Display auf dem Host anzeigen
    ;###################################################################
    Case $Button3
    If( $tab2hostname == "") Then
    GUICtrlSetData ($LabelAusgabe,"Bitte den Hostnamen eingeben!")
    Else
    $cmdDisplay = Run(@COMSPEC & " /c psexec \\"&$tab2hostname&" -u ewenet\%username% -i -p "&$pwd&" c:\winnt\system32\control.exe desk.cpl")
    ;GUICtrlSetData ($LabelAusgabe,$cmdDisplay)
    EndIf

    ;###################################################################
    ;Führt settings.bat auf dem Host aus
    ;###################################################################
    Case $Button4
    If( $tab2hostname == "") Then
    GUICtrlSetData ($LabelAusgabe,"Bitte den Hostnamen eingeben!")
    Else
    $cmdEinstellungen = Run(@COMSPEC & " /c Psexec \\"&$tab2hostname&" -s c:\winnt\settings.bat")
    EndIf

    ;###################################################################
    ;Systemeigenschaften auf dem Host anzeigen
    ;###################################################################
    Case $Button5
    $cmdSystem = Run(@COMSPEC & " /c psexec \\"&$tab2hostname&" -u ewenet\%username% -i c:\winnt\system32\rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,0")

    ;###################################################################
    ;Computerverwaltung auf dem Host anzeigen
    ;###################################################################
    Case $Button6
    $cmdComputer = Run(@COMSPEC & " /c psexec \\"&$tab2hostname&" -u ewenet\%username% -i -w C:\WINNT\system32 C:\WINNT\system32\mmc.exe C:\WINNT\system32\compmgmt.msc")

    ;###################################################################
    ;Quota des Benutzers abfragen
    ;###################################################################
    Case $Button7
    ;$cmdQuota = Run(@COMSPEC & " /c Psexec \\"&$tab2hostname&" -s c:\winnt\settings.bat >NUL)

    EndSwitch
    WEnd

    ;InetGet - Lädt eine Datei aus dem Internet

    Der Code ist noch in bearbeitung, wichtig ist der Teil mit "Alle lokalen Profile löschen". Die Variable "$LabelAusgabe" ist das Label wo man die blaue Umrandung auf dem Screen sehen kann, da sollte die Ausgabe erfolgen.

    Dateien

    bild1.jpg 19,29 kB – 0 Downloads
  • Profil auf Server erneuern

    • michach
    • 30. November 2010 um 10:39

    Hi, ja ok, werde ich mir merken.

    Der Ordner Profil.sicher ist von mir nur zum testen angelegt worden, da ich nicht den richtigen Profil Ordner löschen möchte solange das Scrippt nicht richtig funktioniert.
    In den Ordner kopiere ich manuell erstmal die Dateien rein um die testweise zu löschen.

  • Profil auf Server erneuern

    • michach
    • 30. November 2010 um 10:18

    Das Problem besteht wenn der Ordner "Profil.sicher" leer ist. Ich habe versucht eine Abfrage einzubauen, allerdings bekomme ich immer noch den Fehler:

    Wenn ich z.Bsp.:

    [autoit]

    If NOT FileExists("\\" & $Profilserver & "\config$\" & $Benutzername & "\Profil.sicher\ntuser.pol") Then
    MsgBox(4096,"Verzeichnis ist leer!")

    [/autoit]

    Kommt die Meldung:
    Error: Incorrect number of parameters in funktion call

    Wenn ich das so mache:

    [autoit]

    If NOT FileExists("\\" & $Profilserver & "\config$\" & $Benutzername & "\Profil.sicher\*") Then
    MsgBox(4096,"Verzeichnis ist leer!")

    [/autoit]

    Kommt die Array Meldung wie vorher schon beschrieben.
    Dein Tipp vom Beitrag zuvor hat leider nicht geholfen :(

    Hier nochmal das Script was ich verwende:

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <File.au3>
    #Include <Array.au3>
    #include <Process.au3>
    #Region ### START Koda GUI section ### Form=c:\dokumente und einstellungen\micholys\desktop\profil_neu.kxf
    $Form1_1 = GUICreate("BTC ServiceDesk Tool v0.1", 588, 620, 563, 122)
    $Group1 = GUICtrlCreateGroup(" Info ", 8, 16, 569, 593)
    GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif")
    $Label2 = GUICtrlCreateLabel("Mit diesem Tool hast du die Möglichkeit durch wenige Klicks schneller und", 32, 48, 519, 24)
    GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
    GUICtrlSetResizing(-1, $GUI_DOCKWIDTH+$GUI_DOCKHEIGHT)
    $Label3 = GUICtrlCreateLabel("einfacher bestimmte Aktionen durchzuführen.", 32, 72, 326, 24)
    GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
    $Profilerneuerung = GUICtrlCreateGroup("Profilerneuerung", 16, 104, 553, 161)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    $Label4 = GUICtrlCreateLabel("Für eine Profilerneuerung müssen der Server, der Benutzername und der Hostname", 26, 128, 497, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Benutzername = GUICtrlCreateInput("Benutzername", 232, 176, 113, 24)
    $Hostname = GUICtrlCreateInput("Hostname", 378, 176, 113, 24)
    $Profilserver = GUICtrlCreateInput("Profilserver", 85, 176, 113, 24)
    $Label1 = GUICtrlCreateLabel("eingetragen werden.", 27, 144, 126, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Starten = GUICtrlCreateButton("Starten", 200, 224, 177, 25, 0)
    ;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    ;+++++++++++++++++++++++++++++++++++++++++++++++++++++ Ende GUI ++++++++++++++++++++++++++++++++++++++++++++++++
    ;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Aufraumen = GUICtrlCreateGroup("Rechner aufräumen", 16, 416, 553, 113)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    $Label5 = GUICtrlCreateLabel("Hiermit kannst du den Rechner des Anwenders aufräumen, damit er wieder mehr Platz auf", 24, 440, 531, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Label6 = GUICtrlCreateLabel("seinem Rechner zu verfügung hat.", 24, 456, 204, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Hostnam = GUICtrlCreateInput("Hostname", 120, 488, 113, 24)
    $Starte = GUICtrlCreateButton("Starten", 352, 488, 113, 25, 0)
    ;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    ;++++++++++++++++++++++++++++++++++++++++++++++++++++++ Ende GUI +++++++++++++++++++++++++++++++++++++++++++++++
    ;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Label7 = GUICtrlCreateLabel("Copyright by Micha Steinke", 432, 584, 133, 17)
    ;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    ;+++++++++++++++++++++++++++++++++++++++++++++++++++++ Ende GUI ++++++++++++++++++++++++++++++++++++++++++++++++
    ;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    $Group2 = GUICtrlCreateGroup("Lokales Profil", 16, 280, 553, 121)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    $Label8 = GUICtrlCreateLabel("Hier kannst du das Lokale Profil auf dem Rechner löschen, denke aber daran das der", 24, 304, 509, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Label9 = GUICtrlCreateLabel("Benutzer abgemeldet sein muß !!!", 24, 320, 201, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Button1 = GUICtrlCreateButton("Starten", 352, 362, 113, 25, 0)
    $Input1 = GUICtrlCreateInput("Hostname", 120, 362, 113, 24)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    ;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    ;++++++++++++++++++++++++++++++++++++++++++++++++++++++ Ende GUI +++++++++++++++++++++++++++++++++++++++++++++++
    ;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    $Button2 = GUICtrlCreateButton("Beenden", 24, 576, 113, 25, 0)
    GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    ;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    ;++++++++++++++++++++++++++++++++++++++++++++++++++++++ Ende GUI +++++++++++++++++++++++++++++++++++++++++++++++
    ;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button2
    Exit
    Case $Starten
    _perneuern()
    EndSwitch
    WEnd
    Func _perneuern()

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

    $Profilserver = GUICtrlRead($Profilserver) ; Rückgabe des Zustandes des Menüpunktes
    $Benutzername = GUICtrlRead($Benutzername) ; Rückgabe des Zustandes des Menüpunktes
    $Hostname = GUICtrlRead($Hostname) ; Rückgabe des Zustandes des Menüpunktes

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

    $quelle = "\\" & $Profilserver & "\config$\" & $Benutzername & "\Profil\*"
    $ziel = "\\" & $Profilserver & "\config$\" & $Benutzername & "\Profil.sic"
    If Not FileExists($quelle) Then
    MsgBox(0,$Profilserver, "Benutzer oder Server nicht bekannt!",5)
    Exit
    Else
    If Not FileExists($ziel) Then
    MsgBox(0,$Profilserver, "Ordner Profil.sic wird jetzt erstellt ...",3)
    DirCreate ($ziel)

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

    sleep(1000)

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

    MsgBox(0,$Profilserver, "Ordner wurde erfolgreich erstellt, der Kopiervorgang beginnt in wenigen Sekunden.",5)

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

    _copy($quelle,$ziel)
    _FileWriteLog(@ScriptDir & "\info.log",$Profilserver & " -- erfolgreich" & @CRLF )

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

    MsgBox (0,"","Kopiervorgang ist abgeschlossen, in wenigen Sekunden werden die Dateien aus dem Profil Ordner gelöscht.",5)
    Else
    _copy($quelle,$ziel)
    _FileWriteLog(@ScriptDir & "\info.log",$Profilserver & " -- erfolgreich" & @CRLF )

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

    MsgBox (0,"","Kopiervorgang ist abgeschlossen, in wenigen Sekunden werden die Dateien aus dem Profil Ordner gelöscht.",5)
    EndIf
    EndIf
    sleep(1000)
    ;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    ;++++++++++++++++++++++++++++++++++++ Dateien aus dem Server Profil.sic Ordner löschen ++++++++++++++++++++++++++++++++
    ;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    If NOT FileExists("\\" & $Profilserver & "\config$\" & $Benutzername & "\Profil.sicher\ntuser.pol") Then
    MsgBox(4096,"Verzeichnis ist leer!")

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

    Else

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

    $FileList_01 =_FileListToArray("\\" & $Profilserver & "\config$\" & $Benutzername & "\Profil.sicher\", "*",1) ;listet Files
    $FileList_02 =_FileListToArray("\\" & $Profilserver & "\config$\" & $Benutzername & "\Profil.sicher\", "*",2) ;listet Ordner

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

    For $x = 1 to $FileList_01[0]
    FileDelete("\\" & $Profilserver & "\config$\" & $Benutzername & "\Profil.sicher\" & $FileList_01[$x])
    Next
    For $x = 1 to $FileList_02[0]
    DirRemove("\\" & $Profilserver & "\config$\" & $Benutzername & "\Profil.sicher\" & $FileList_02[$x], 1)
    Next

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

    $sCommand00 = "del /F /S /Q /A \\" & $Profilserver & "\config$\" & $Benutzername & "\Profil.sicher\ntuser.pol"
    _RunDOS ( $sCommand00 )

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

    EndIf

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

    ;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    ;++++++++++++++++++++++++++++++++++ Ende Dateien aus dem Server Profil.sic Ordner löschen +++++++++++++++++++++++++++++
    ;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    sleep(1000)
    $anfrage = MsgBox(4,"","Möchtest du jetzt das Lokale Profil auf dem Client löschen?")
    ;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    ;++++++++++++++++++++++++++++++++++++++ Dateien aus dem Host Profil.sic Ordner löschen ++++++++++++++++++++++++++++++++
    ;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

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

    If $anfrage = 6 Then
    DirRemove("\\" & $Hostname & "\c$\Dokumente und Einstellungen\vigross", 1)
    MsgBox(0,"","Das Löschen beginnt jetzt...",2)
    MsgBox(0,"","Profil auf dem Host gelöscht.")
    Else
    MsgBox(0,"","Lokales Profil auf dem Host " & $Hostname & "wurde nicht gelöscht.")
    EndIf
    ;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    ;+++++++++++++++++++++++++++++++++++ Ende Dateien aus dem Host Profil.sic Ordner löschen ++++++++++++++++++++++++++++++
    ;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    ;öffnet log
    ShellExecute("info.log", "", @ScriptDir)
    Exit
    EndFunc
    Func _copy($fromFile, $tofile)
    Local $FOF_RESPOND_YES = 16
    Local $FOF_SIMPLEPROGRESS = 256
    $winShell = ObjCreate("shell.application")
    $winShell.namespace ($tofile).CopyHere ($fromFile, $FOF_RESPOND_YES)
    If @error Then
    MsgBox(0, "", "the previous line got an error.")
    EndIf
    EndFunc ;==>copy

    [/autoit]


    Denke irgendwo ab Zeile 114 liegt der Fehler.
    Vielleicht hast du ja noch die eine oder andere Idee :)

    Edit Oscar: Spoiler gesetzt.

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™