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

Beiträge von Camulus

  • Passwort ablaufdatum (in der Vergangenheit)

    • Camulus
    • 22. September 2016 um 16:04

    Hab es mit der 1.4.6.0 probiert ?(

  • Mail versenden

    • Camulus
    • 22. September 2016 um 15:52

    Danke euch, ich hab es gerade auch mit blat.exe gelöst.
    Ist sogar noch etwas kompfortabler für unsere Kollegen;)

    Aber vielleicht bau ich es nochmal um :D

  • Mail versenden

    • Camulus
    • 22. September 2016 um 13:26
    C
    Global $oMyRet[2]
    Global $oMyError = ObjEvent("AutoIt.Error", "MyErrFunc")
    
    
    #include <_INetSmtpMailCom.au3>
    
    
    ;##################################
    ; Variables
    ;##################################
    $SmtpServer = "mail.gmx.net"              ; address for the smtp-server to use - REQUIRED
    $FromName = "****"                      ; name from who the email was sent
    $FromAddress = "***" ; address from where the mail should come
    $ToAddress = "***"   ; destination address of the email - REQUIRED
    $Subject = "Userinfo"                   ; subject from the email - can be anything you want it to be
    $Body = "Test"                              ; the messagebody from the mail - can be left blank but then you get a blank mail
    $AttachFiles = ""                       ; the file you want to attach- leave blank if not needed
    $CcAddress = ""       ; address for cc - leave blank if not needed
    $BccAddress = ""     ; address for bcc - leave blank if not needed
    $Importance = "Normal"                  ; Send message priority: "High", "Normal", "Low"
    $Username = "***"                    ; username for the account used from where the mail gets sent - REQUIRED
    $Password = "***"                  ; password for the account used from where the mail gets sent - REQUIRED
    $IPPort = 25                            ; port used for sending the mail normaly 25
    $ssl = 0                                ; enables/disables secure socket layer sending - put to 1 if using httpS
    ;~ $IPPort=465                          ; GMAIL port used for sending the mail
    ;~ $ssl=1                               ; GMAILenables/disables secure socket layer sending - put to 1 if using httpS
    
    
    ;##################################
    ; Script
    ;##################################
    $rc = _INetSmtpMailCom($SmtpServer, $FromName, $FromAddress, $ToAddress, $Subject, $Body, $AttachFiles, $CcAddress, $BccAddress, $Importance, $Username, $Password, $IPPort, $ssl)
    If @error Then
        MsgBox(0, "Error sending message", "Error code:" & @error & "  Description:" & $rc)
    EndIf
    Alles anzeigen

    und das _INetSmtpMailCom.au3

    Code
    ;##################################
    ; Include
    ;##################################
    #Include<file.au3>
    ;http://www.autoitscript.com/forum/index.php?showtopic=23860&view=findpost&p=166575
    ; The UDF
    Func _INetSmtpMailCom($s_SmtpServer, $s_FromName, $s_FromAddress, $s_ToAddress, $s_Subject = "", $as_Body = "", $s_AttachFiles = "", $s_CcAddress = "", $s_BccAddress = "", $s_Importance="Normal", $s_Username = "", $s_Password = "", $IPPort = 25, $ssl = 0)
        Local $objEmail = ObjCreate("CDO.Message")
        $objEmail.From = '"' & $s_FromName & '" <' & $s_FromAddress & '>'
        $objEmail.To = $s_ToAddress
        Local $i_Error = 0
        Local $i_Error_desciption = ""
        If $s_CcAddress <> "" Then $objEmail.Cc = $s_CcAddress
        If $s_BccAddress <> "" Then $objEmail.Bcc = $s_BccAddress
        $objEmail.Subject = $s_Subject
        If StringInStr($as_Body, "<") And StringInStr($as_Body, ">") Then
            $objEmail.HTMLBody = $as_Body
        Else
            $objEmail.Textbody = $as_Body & @CRLF
        EndIf
        If $s_AttachFiles <> "" Then
            Local $S_Files2Attach = StringSplit($s_AttachFiles, ";")
            For $x = 1 To $S_Files2Attach[0]
                $S_Files2Attach[$x] = _PathFull($S_Files2Attach[$x])
                ConsoleWrite('@@ Debug(62) : $S_Files2Attach = ' & $S_Files2Attach & @LF & '>Error code: ' & @error & @LF) ;### Debug Console
                If FileExists($S_Files2Attach[$x]) Then
                    $objEmail.AddAttachment ($S_Files2Attach[$x])
                Else
                    ConsoleWrite('!> File not found to attach: ' & $S_Files2Attach[$x] & @LF)
                    SetError(1)
                    Return 0
                EndIf
            Next
        EndIf
        $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
        $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = $s_SmtpServer
        If Number($IPPort) = 0 then $IPPort = 25
        $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = $IPPort
        ;Authenticated SMTP
        If $s_Username <> "" Then
            $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
            $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusername") = $s_Username
            $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendpassword") = $s_Password
        EndIf
        If $ssl Then
            $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
        EndIf
        ;Update settings
        $objEmail.Configuration.Fields.Update
        ; Set Email Importance
        Switch $s_Importance
            Case "High"
                $objEmail.Fields.Item ("urn:schemas:mailheader:Importance") = "High"
            Case "Normal"
                $objEmail.Fields.Item ("urn:schemas:mailheader:Importance") = "Normal"
            Case "Low"
                $objEmail.Fields.Item ("urn:schemas:mailheader:Importance") = "Low"
        EndSwitch
        $objEmail.Fields.Update
        ; Sent the Message
        $objEmail.Send
        If @error Then
            SetError(2)
            Return $oMyRet[1]
        EndIf
        $objEmail=""
    EndFunc   ;==>_INetSmtpMailCom
    ;
    ;
    ; Com Error Handler
    Func MyErrFunc()
        $HexNumber = Hex($oMyError.number, 8)
        $oMyRet[0] = $HexNumber
        $oMyRet[1] = StringStripWS($oMyError.description, 3)
        ConsoleWrite("### COM Error !  Number: " & $HexNumber & "   ScriptLine: " & $oMyError.scriptline & "   Description:" & $oMyRet[1] & @LF)
        SetError(1); something to check for when this function returns
        Return
    EndFunc
    Alles anzeigen
  • Mail versenden

    • Camulus
    • 22. September 2016 um 12:12

    Da bekomm ich den gleichen Fehler.

    $objEmail.To = $s_ToAddress
    _INetSmtpMailCom.au3"(10,15) : error: missing separator character before keyword.

    Oder stell ich mich nur zu blöd?

  • Mail versenden

    • Camulus
    • 22. September 2016 um 10:52

    Wenn ich _INetSmtpMail nutze bekomme ich Error 50.

    Der heißt dann: 5x - Cannot open SMTP session. x indicates the index number of last command issued to the SMTP server. ?!?

    Hab das jetzt mit einem GMX Account versucht.
    Muss ich da nicht irgendwie eine Authetifizierung mit geben?

  • Netzlaufwerke verbinden am liebsten "dynamisch"

    • Camulus
    • 22. September 2016 um 08:52

    Es nimmt vorm an und gefällt mir bisher gut.

    Einen kleinen Schönheitsfehler hab ich aber meiner Meinung nach noch,
    zu diesem Timer hab ich schonmal einen Thread eröffnet und Dank eurer Hilfe ging es dann auch:
    https://autoit.de/index.php/Thre…4999#post364999

    Aber ich hab es nie wirklich verstanden und es ist auch zu lange her.


    Spoiler anzeigen
    Code
    #include <Array.au3>
        #include <ad.au3>
        #include <MsgBoxConstants.au3>
    	#include <WriteLogData.au3>
    
    
    Global $StartFlag, $traygpupdate,$traymapping,$traycapture,$trayteamviewer, $trayticket,$traypassword, $is_member
    
    
    Global $aArray = IniReadSection(@ScriptDir &"\netzlaufwerke.ini", "Groups")
    
    
    ;~ -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    ;							Header in die Log Datei schreiben
    ;~ -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    	_WriteLogData("######################################################################################################################")
    	_WriteLogData("")
    	_WriteLogData("")
    	_WriteLogData("-----------------------------------------------neue Verbindung--------------------------------------------------------")
    	_WriteLogData("")
    	_WriteLogData("")
    	_WriteLogData("----------------------------------------------------------------------------------------------------------------------")
        _WriteLogData("Programm			: " & @ScriptName & ". Version=" & FileGetVersion(@ScriptName) & " mit Datum=" & FileGetTime(@ScriptName, 1, 1))
        _WriteLogData("Benutzer			: " & @UserName)
        _WriteLogData("LogonServer		: " & @LogonServer)
        _WriteLogData("LogonDomain		: " & @LogonDomain)
        _WriteLogData("LogonDNSDomain	: " & @LogonDNSDomain)
        _WriteLogData("Computername		: " & @ComputerName )
        _WriteLogData("IP				: " & @IPAddress1 & ", " &@IPAddress2& ", " &@IPAddress3& ", " & @IPAddress4)
    	_WriteLogData("----------------------------------------------------------------------------------------------------------------------")
    ;~ -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    ;							Programmstart
    ;~ -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    
    
    
    
    
    
    ;~ $Updateflag = False
    _TrayMenue()
    
    
    $StartFlag = False
    
    
    
    
    
    
    
    
    Global $iTimer = TimerInit(), $iTimerDiff = 0
    Global $aFunktions[2][3] = [['_VerbindungsStatus', 20000, 1], [ '_FuncDrives', 25000, 1]]
    HotKeySet("+!e", "_QuitConnect") ; Shift-Alt-e beendet die Connect
    
    
    
    
    
    
    
    
    
    
    _AD_Open()
    
    
    	For $i = 1 To $aArray[0][0]
            $is_member = 0
        	$is_member = _AD_IsMemberOf($aArray[$i][1], @UserName)
    
    
    		If $is_member = 1 Then
    			 $aArray_MAPDRIVE = IniReadSection(@ScriptDir &"\netzlaufwerke.ini", $aArray[$i][1])
    ;~ _ArrayDisplay ($aArray_MAPDRIVE)
    
    
    
    
        	EndIf
        Next
    _AD_Close()
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    While Sleep(100)
    
    
    ;~ 			$tray= _GetTrayMessage();Warte auf Dienste verbunden Traytip
    
    
    			If ($StartFlag = FALSE) then
    					_VerbindungsStatus()
    					_FuncDrives()
    ;~ 					MsgBox(0,"Start","Laufwerke verbinden")
    					$StartFlag = TRUE
    				EndIf
    
    
    
    
    			$msgtray = TrayGetMsg()
    
    
    
    
    				Select
    						Case $msgtray=$traymapping
    ;~ 									_FuncDrives()
    						Case $msgtray= $traycapture
    									Run("Capture.exe")
    						Case $msgtray= $trayteamviewer
    									Run("C:\IT\TeamviewerQS_de.exe")
    						Case $msgtray= $trayticket
    									ShellExecute("http://it-support." & @LogonDNSDomain)
    						Case $msgtray= $traygpupdate
    									$gpupdate =	Run("gpupdate", "", @SW_HIDE)
    											If $gpupdate > 0 Then
    												TrayTip("Bitte warten", "gpupdate wird ausgeführt.",1,1)
    												Sleep(2000)
    												TrayTip("Fertig", "gpupdate wurde ausgeführt.",1,1)
    											Endif
    						Case $msgtray= $traypassword
    									_password()
    				EndSelect
    
    
    
    
    
    
    	$iTimerDiff = TimerDiff($iTimer)
    
    
    		For $i = 0 To UBound($aFunktions) - 1 ; hier werden alle Funktionen aus dem Array überprüft
    			If $iTimerDiff / $aFunktions[$i][1] > $aFunktions[$i][2] Then ; ist die TimerDifferenz geteilt durch die Millisekunden größer als der Counter, dann...
    ;~             ConsoleWrite(StringFormat('+> Zeit: %i Sek., Aufruf Nr.: %i, Starte Funktion: "%s"\n', Int($iTimerDiff / 1000), $aFunktions[$i][2], $aFunktions[$i][0]))
    				$aFunktions[$i][2] += 1 ; den Counter erhöhen
    				Call($aFunktions[$i][0]) ; und die Funktion aufrufen
    			EndIf
    		Next
    
    
    
    
    
    
    
    
    
    
    
    
    WEnd
    
    
    
    
    
    
    ;~ -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    ;							Tray Menü
    ;~ -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    Func _TrayMenue()
    
    
    	Opt("TrayMenuMode", 3) ; Default tray menu items (Script Paused/Exit) will not be shown.
    			TraySetIcon(@ScriptDir& "\Data\x.ico")
    
    
    
    
    ;~ 				$trayinfo = TrayCreateItem("Computerinformationen anzeigen")
    ;~ 					TrayCreateItem("")
    				$traygpupdate = TrayCreateItem("gpupdate ausführen")
    				TrayItemSetState($traygpupdate,128)
    					TrayCreateItem("")
    				$traymapping = TrayCreateItem("Laufwerke verbinden")
    				TrayItemSetState($traymapping,128)
    					TrayCreateItem("")
    				$traycapture = TrayCreateItem("Screenshot an IT senden.")
    				TrayItemSetState($traycapture,128)
    					TrayCreateItem("")
    				$trayteamviewer = TrayCreateItem("Teamviewer starten.")
    					TrayCreateItem("")
    				$trayticket = TrayCreateItem("Ticketsystem starten.")
    				TrayItemSetState($trayticket,128)
    					TrayCreateItem("")
    				$traypassword = TrayCreateItem("Wann läuft mein Passwort ab?")
    				TrayItemSetState($traypassword,128)
    					TrayCreateItem("")
    					TrayCreateItem("Connect Version 3.0")
    					TrayItemSetState(-1,128)
    
    
    
    
    
    
    EndFunc
    ;~ -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    ;							GetTrayMessage
    ;~ -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    Func _GetTrayMessage()
        Local $wl, $List, $LastList = ''
        $List = ''
        $wl = WinList("[class:tooltips_class32]")
        For $n = 1 To $wl[0][0]
            If BitAND(WinGetState($wl[$n][1]), 2) Then
                $List &= WinGetTitle($wl[$n][1])
            EndIf
        Next
    
    
        If $List = ("Dienste verbunden") Then
    
    
    Return 1
    
    
    EndIf
    
    
    EndFunc   ;==>_GetTrayMessage
    
    
    ;~ -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    ;							 Verbindungsstatus
    ;~ -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    Func _VerbindungsStatus()
    ;~ 	MsgBox(0,"","VPNStatus",1)
    ;~ VPN und Netzwerkgeschwindigkeit ermitteln und Trayicon ensprechend einfärben
    	local 	$Testserver = @LogonDNSDomain
    			$Connection = Ping($Testserver, 5000)
    			$internetconnection= "www.google.de"
    
    
    ;~ 			ConsoleWrite("Speed "& $Connection & @CR)
    
    
           If $internetconnection <= 0 Then ;~ wird nur gemacht wenn eine Internetverbindung besteht
    			TraySetIcon(@ScriptDir& "\Data\x.ico")
    			TraySetToolTip("Keine Verbindung zum Internet." & @CRLF & "Stellen Sie bitte eine verbindung zum Internet her.")
    
    
    			   If $Connection = 0 Then
    					TraySetIcon(@ScriptDir& "\Data\x.ico")
    ;~ 					_WriteLogData("Fehler bei ping auf LogondnsDomaiun " & @error)
    					TraySetToolTip("Keine Verbidnung zu COO." & @CRLF & "Bauen Sie die Verbindung bitte mit dem Palo Alto Client auf.")
    
    
    					EndIf
    						If $Connection > 0 Then
    ;~ 											TrayItems aktivieren wenn verbindung zum COO besteht. Sonst funktioniert das eh alles nicht
    											TrayItemSetState($traygpupdate,64)
    											TrayItemSetState($trayticket, 64)
    											TrayItemSetState($traymapping,64)
    											TrayItemSetState($traycapture,64)
    											TrayItemSetState($traypassword,64)
    											TraySetIcon(@ScriptDir& "\Data\green.ico")
    
    
    
    
    						EndIf
    
    
    				EndIf
    
    
    
    
    	$Connection=""
    	$netlogon=""
    	$Testserver=""
    
    
    EndFunc
    
    
    
    
    
    
    ;~ ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    
    
    ;~ ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    
    
    Func _FuncDrives()
    
    
    	_CheckDrives($aArray_MAPDRIVE)
    
    
    EndFunc
    
    
    ;~ ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    
    
    ;~ ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    Func _checkDrives($aArray_MAPDRIVE)
    ;~ Laufwerke checken
    ;~ 	MsgBox(0,"_checkDrives","",1)
    ;~ 	_ArrayDisplay($aArray_MAPDRIVE)
    
    
    
    
    	$Testserver = @LogonDNSDomain
    	$Ping = Ping($Testserver,1000)
    
    
    
    
    For $x = 1 To $aArray_MAPDRIVE[0][0]
    				;MsgBox(0,$is_member, $aArray_MAPDRIVE[$i][1])
    				$map_details = StringSplit($aArray_MAPDRIVE[$x][1],"|")
    				$map_details[1] = StringReplace($map_details[1], "*USER*", @username)
    
    
    						$Laufwerk =($map_details[2] & ":")
    		;~ 					MsgBox(0,"Laufwerk", $Laufwerk,1)
    						$Pfad =($map_details[1])
    		;~ 					MsgBox(0,"Pfad ", $Pfad,1)
    
    
    
    
    
    
    			If $Ping > 0 Then
    
    
    				$Status=DriveStatus($Laufwerk)
    ;~ 				MsgBox(0,"",$Status & " " & $Laufwerk,1)
    					If  $Status = "INVALID" Then
    
    
    						$count =0
    							Do
    							_MapDrives($Laufwerk,$Pfad)
    								Sleep(1000)
    									If  @error Then
    										$Error = @error
    										MsgBox(0,"",$Error)
    										$count +=1
    										_WriteLogData("Laufwerk " & $Laufwerk &"  nicht neu verbunden. Fehlversuch:" & $count)
    									Else
    											ExitLoop
    									EndIf
    
    
    							Until $count >= 3
    
    
    								If $count >=3 Then
    									$Error = @error
    	;~ 								_ErrorLog($Error, $Laufwerk)
    								Else
    									$Error = ""
    								EndIf
    
    
    				EndIf
    				$Status = ""
    				$Laufwerk = ""
    				$count= 0
    				$Drive=""
    			EndIf
    
    
    Next
    EndFunc
    
    
    
    
    
    
    
    
    ;~ ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    
    
    ;~ ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    Func _MapDrives ($Laufwerk,$Pfad)
    ;~ Laufwerke verbinden
    		DriveMapAdd($Laufwerk, $Pfad)
    
    
    EndFunc
    
    
    
    
    
    
    ;~ -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    ;~ Func _Laufwerk_trennen($Laufwerk)
    ;~ 		$Status=DriveStatus($Laufwerk)
    ;~ 		If $Status <> "INVALID" Then
    				;MsgBox(0,"",$Status)
    
    
    				;				TrayTip("Verbindung beendet","Ihre Netzlaufwerke werden getrennt",1)
    
    
    ;~ 				DriveMapDel($Laufwerk)
    ;~ 						_WriteLogData("Laufwerk " & $Laufwerk & " getrennt.")
    ;~ 		EndIf
    ;~ 					$Laufwerk = ""
    ;~ 					$Status = ""
    ;~ 					$Drive = ""
    ;~ 		Sleep(500)
    ;~ EndFunc
    
    
    
    
    
    
    
    
    ;~ -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    ;~ -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    
    
    
    
    Func _password()
    
    
    ;~ Benutzeraten aus Abfragen, wichtig für "Passwort läuft ab" Anzeigen
    Global $UserAccountControl, $samAccountName,$FirstName, $LastName, $title, $PasswordLastChanged, $IsAccountLocked, $DaysLeft,$msg,$icon	,$AnzeigeDatPwdExpires, $Counter, $baseStr
    Local $Found = 0
    $AnmeldeUser = @UserName
    
    
    $LogonServer = @LogonDomain
    
    
    $serverName = $LogonServer
    
    
    
    
    
    
    $filterStr = "(&(objectCategory=Person)(objectClass=user)(sAMAccountName=" & @UserName & "))"
    $ado = ObjCreate("ADODB.Connection") ; erstellt eine Instanz des Objektes ADODB.Connection
    $ado.Provider = "ADSDSOObject"
    
    
    $ado.Open ("ADS-Search" )
    
    
    $adoCmd = ObjCreate("ADODB.Command")
    $adoCmd.ActiveConnection = $ado
    $adoCmd.Properties("Page Size") = 1000
    $adoCmd.Properties("Cache Results") = 1
    $adoCmd.CommandText = "<LDAP://" & $serverName & "/" & $baseStr & ">;" & $filterStr & ";ADsPath;subtree"
    
    
    
    
    _WriteLogData("Benutzereinträge für " & @UserName & " werden gesucht, auf Server " & StringReplace($LogonServer,"\",""))
    ;~ _WriteLogData("Benutzereinträge für " & @UserName & " werden gesucht, auf Server " & $LogonServer)
    ;~ _WriteLogData("Funktionsaufruf lautet : " & $adoCmd & " ")
    
    
    $objectList = $adoCmd.Execute
    
    
    
    
    
    
    $Counter = 1
    
    
    While Not $objectList.EOF()
    
    
    	$user = ObjGet($objectList.Fields("ADsPath").value)
    
    
    	$samAccountName				=	$User.samAccountName
    
    
    	If stringlower($samAccountName) = StringLower($AnmeldeUser) Then
    
    
    		$UserAccountControl			= 	$user.UserAccountControl
    		$FirstName					=	$User.FirstName
    		$LastName					=	$User.LastName
    		$title						=	$User.title
    		$PasswordLastChanged		=	$User.PasswordLastChanged ;pwdLastSet
    		$IsAccountLocked			=	$User.IsAccountLocked
    
    
    
    
    		_WriteLogData("Benutzereintrag für " & $FirstName & "  " & $LastName & " wurde gefunden. Accountcontrol = " & $UserAccountControl)
    		$DaysLeft = _DatumBerechnen($PasswordLastChanged)
    
    
    
    
    
    
    		If  $DaysLeft <= 10 Then
    
    
    			Switch $DaysLeft
    				Case 1
    
    
    							MsgBox (16, "Achtung","Ihr Passwort läuft heute ab" & @CRLF & @CRLF & "Bitte ändern Sie das Passwort umgehend!")
    				Case 2
    
    
    							MsgBox (48, "Achtung","Ihr Passwort läuft morgen ab" & @CRLF & @CRLF & "Bitte ändern Sie das Passwort!")
    				Case Else
    
    
    							MsgBox(64,"Achtung","Ihr Passwort läuft in " & $DaysLeft & " Tagen, am " & $AnzeigeDatPwdExpires & ", ab." & @CRLF & @CRLF & "Bitte ändern Sie das Passwort bei der nächsten Gelegenheit!")
    					EndSwitch
    
    
    
    
    		EndIf
    	EndIf
        $objectList.MoveNext()
    	$Counter += 1
    
    
    
    
    Wend
    
    
    
    
    					$UserAccountControl=""
    					$samAccountName=""
    					$FirstName=""
    					$LastName=""
    					$title=""
    					$PasswordLastChanged=""
    					$IsAccountLocked=""
    					$DaysLeft=""
    					$msg=""
    					$icon=""
    					$AnzeigeDatPwdExpires=""
    					$Counter=""
    
    
    EndFunc
    
    
    
    
    ;~ -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    ;							Kennwort "Lebensdauer" berechnen
    ;~ -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    Func _DatumBerechnen($ChangedDate)
    
    
    	;~ wird von _GetUserAD gebraucht
    	local 	$AnzeigeDatPwdChanged,  $Day2Change, $Date2Change
    	local   $HeuteJMT 		=  _NowCalcDate()
    	local   $DatChangedJMT 	=  StringMid( $ChangedDate, 1, 4) & "/" & StringMid( $ChangedDate, 5, 2) & "/" & StringMid( $ChangedDate, 7, 2)
    
    
    		$Date2Change =  _DateAdd('d',90,$DatChangedJMT)
    		$Day2Change =  _DateDiff( 'd',_NowCalc(),$Date2Change)
    
    
    			$AnzeigeDatPwdExpires = StringMid( $Date2Change, 9, 2) & "." & StringMid( $Date2Change, 6, 2) & "." & StringMid( $Date2Change, 1, 4)
    	Return $Day2Change
    			_WriteLogData("Passwort Ablaufdatum emittelt")
    
    
    		$AnzeigeDatPwdChanged=""
    		$Day2Change=""
    		$Date2Change=""
    		$HeuteJMT=""
    		$ChangedDate=""
    		$DatChangedJMT=""
    
    
    EndFunc
    
    
    ;~  -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    Func _QuitConnect()
    		TrayTip("Connect beenden", "Connect wird beendet.",2,2)
    		Sleep(2000)
        Exit
    EndFunc
    Alles anzeigen


    So ieht das ganze Teil aus, wenn es noch wer brauchen kann bedient euch ;)

    Was mir nicht gefällt ist das hier:

    Code
    Func _FuncDrives()
        _CheckDrives($aArray_MAPDRIVE)
    EndFunc


    Eine Funktion aufzurufen um eine Funktion aufzurufen ist irgendwie :S:huh:

    Wenn ich
    _CheckDrives($aArray_MAPDRIVE)

    mit hierein schreibe geht es natürlich nicht :D

    Global $aFunktions[2][3] = [['_VerbindungsStatus', 20000, 1], [ '_CheckDrives($aArray_MAPDRIVE)', 25000, 1]]


    Zumindest nicht wenn ich das Array mit übergeben will.


    Also wenn jemand Lust und Muße hat sich das anzusehen und mir zu zeigen wie es wesentlich eleganter geht nehme ich diese positive Kritik gerne an.

    Anderweitige Verbesserungsvorschläge natürlich auch :rolleyes:


    Für dieses etwas klobige Passwort berechnen hab ich diesen Thread:

    https://autoit.de/index.php/Thre…6927#post676927

    Wenn ich den gelöscht bekomme häng ich ihn hier ran, oder einer der Admins?
    Wenn nicht bitte ich um nachsicht für dieses Halb-X-Posting.

  • Passwort ablaufdatum (in der Vergangenheit)

    • Camulus
    • 22. September 2016 um 07:34

    Hi,

    ich hab diesen Beitrag gefunden:

    https://autoit.de/index.php/Thre…daten-abfragen/

    beim testen hab ich allerdings ein kleines Problem weil mein Passwort nicht abläuft, also ist das Ablaufdatum in der Vergangenheit und das wird nicht angezeigt ?(

    Etwas ähnliches hab ich hie geerbt, keine Ahnung woher das stammt.


    Code
    Global $UserAccountControl, $samAccountName,$FirstName, $LastName, $title, $PasswordLastChanged, $IsAccountLocked, $DaysLeft,$msg,$icon	,$AnzeigeDatPwdExpires, $Counter, $baseStr
    Local $Found = 0
    $AnmeldeUser = @UserName
    
    
    $LogonServer = @LogonDomain
    
    
    $serverName = $LogonServer
    
    
    
    
    
    
    
    
    $filterStr = "(&(objectCategory=Person)(objectClass=user)(sAMAccountName=" & @UserName & "))"
    $ado = ObjCreate("ADODB.Connection") ; erstellt eine Instanz des Objektes ADODB.Connection
    $ado.Provider = "ADSDSOObject"
    
    
    $ado.Open ("ADS-Search" )
    
    
    $adoCmd = ObjCreate("ADODB.Command")
    $adoCmd.ActiveConnection = $ado
    $adoCmd.Properties("Page Size") = 1000
    $adoCmd.Properties("Cache Results") = 1
    $adoCmd.CommandText = "<LDAP://" & $serverName & "/" & $baseStr & ">;" & $filterStr & ";ADsPath;subtree"
    
    
    
    
    _WriteLogData("Benutzereinträge für " & @UserName & " werden gesucht, auf Server " & StringReplace($LogonServer,"\",""))
    ;~ _WriteLogData("Benutzereinträge für " & @UserName & " werden gesucht, auf Server " & $LogonServer)
    ;~ _WriteLogData("Funktionsaufruf lautet : " & $adoCmd & " ")
    
    
    $objectList = $adoCmd.Execute
    
    
    
    
    
    
    $Counter = 1
    
    
    While Not $objectList.EOF()
    
    
    	$user = ObjGet($objectList.Fields("ADsPath").value)
    
    
    	$samAccountName				=	$User.samAccountName
    
    
    	If stringlower($samAccountName) = StringLower($AnmeldeUser) Then
    
    
    		$UserAccountControl			= 	$user.UserAccountControl
    		$FirstName					=	$User.FirstName
    		$LastName					=	$User.LastName
    		$title						=	$User.title
    		$PasswordLastChanged		=	$User.PasswordLastChanged ;pwdLastSet
    		$IsAccountLocked			=	$User.IsAccountLocked
    
    
    
    
    		_WriteLogData("Benutzereintrag für " & $FirstName & "  " & $LastName & " wurde gefunden. Accountcontrol = " & $UserAccountControl)
    		$DaysLeft = _DatumBerechnen($PasswordLastChanged)
    
    
    
    
    
    
    		If  $DaysLeft <= 10 Then
    
    
    			Switch $DaysLeft
    				Case 1
    
    
    							MsgBox (16, "Achtung","Ihr Passwort läuft heute ab" & @CRLF & @CRLF & "Bitte ändern Sie das Passwort umgehend!")
    				Case 2
    
    
    							MsgBox (48, "Achtung","Ihr Passwort läuft morgen ab" & @CRLF & @CRLF & "Bitte ändern Sie das Passwort!")
    				Case Else
    
    
    							MsgBox(64,"Achtung","Ihr Passwort läuft in " & $DaysLeft & " Tagen, am " & $AnzeigeDatPwdExpires & ", ab." & @CRLF & @CRLF & "Bitte ändern Sie das Passwort bei der nächsten Gelegenheit!")
    					EndSwitch
    
    
    
    
    		EndIf
    	EndIf
        $objectList.MoveNext()
    	$Counter += 1
    
    
    
    
    Wend
    
    
    
    
    					$UserAccountControl=""
    					$samAccountName=""
    					$FirstName=""
    					$LastName=""
    					$title=""
    					$PasswordLastChanged=""
    					$IsAccountLocked=""
    					$DaysLeft=""
    					$msg=""
    					$icon=""
    					$AnzeigeDatPwdExpires=""
    					$Counter=""
    
    
    EndFunc
    Alles anzeigen

    Ich hätte es gerne etwas schlanker, weil jemand wie ich auch negative Werte bei waters Script angezeigt bekomme?
    Ist nur ein Schönheitsfehler aber ich würde es gerne verstehen, vielleichrt auch ein "Ihr Passwort läuft nicht ab" ^^

  • Mail versenden

    • Camulus
    • 21. September 2016 um 15:17

    8| ich will doch nur einen Screenshot versenden X/

    ich hab reingeguckt und es brummt immer noch etwas in meinem Kopf :S

    Danke dir ich versuch mich da mal reinzufinden, es sei denn jemand hat was einfacheres.

    Ich glaub das sprengt meinen AutoIT Horizont :whistling:

  • Mail versenden

    • Camulus
    • 21. September 2016 um 15:02

    Hallo,

    ich hab vor langer Zeit mal hieraus eine exe kompiliert:

    Code
    Local $olMailItem = 0
    Local $olFormatRichText = 3
    Local $olImportanceNormal = 1
    
    
    $oOApp = ObjCreate("Outlook.Application")
    $oOMail = $oOApp.CreateItem($olMailItem)
    
    
    With $oOMail
    .To = ("it-support@xyz-it.de")
    .Subject ="Screenshot von: " & @UserName
    .Body = ("Screenshot von " & @UserName & " im Anhang." & @CRLF & "Erstellt: " &  @MDAY&"."& @MON &"."& @YEAR  &" " & @HOUR &":"& @MIN &":"&  @SEC & @CRLF & "Rechnername: " & @ComputerName)
    .Attachments.Add  ("C:\Temp\Screenshot.jpg")
    .Importance = $olImportanceNormal
    .Display
    
    
    EndWith
    Alles anzeigen

    Das funktioniert aber nicht mehr

    : error: missing separator character before keyword.

    ich hab da schonmal recherchiert und irgendwas gefunden dass dieses To in der neueren Version zum Schlüsselwort wurde oder so ähnlich.

    Also lange Rede kurzer Sinn, gibt es was ähnliches was funktioniert?

  • Netzlaufwerke verbinden am liebsten "dynamisch"

    • Camulus
    • 21. September 2016 um 11:53

    Oh mann... ich sollte das viel öfter machen :D

    Danke :thumbup:

    Jetzt versuche ich das mal in den rest zu integrieren.

  • Netzlaufwerke verbinden am liebsten "dynamisch"

    • Camulus
    • 21. September 2016 um 10:23

    :S ich nehme alles zurück und behaupte das gegenteil
    Man muss schon die ini richtig bauen, da war ein \ zu viel.

    Aaaaaber ich hab ein anderes Prolem:
    Unsere Home Laufwerke sehen so aus:

    \\coo.local\dfs\Home$\%sername%

    Das $ scheint aber dafür zu sorgen dass das Laufwerk übergangen wird und die Variable %sername% finktionioert so auch nicht.
    Die Idee die ich hab ist abzufangen ob der Laufwerksbuchstabe H oder W ist, sind beide als Homelaufwerke festgelegt hier (mehrer Domänen).

    Oder gibt es was schlaueres was ich nicht weiß?

    So hab ich es gelöst:

    Code
    If $map_details[2] = "H" Then
    					$homelaufwerk= ($map_details[1] & "\Home$\"& @UserName)
    ;~ 					MsgBox(0,"Homelaufwerk",$homelaufwerk )
    ;~ 					MsgBox(0,"pfad",$map_details[2] & ":", & $homelaufwerk )
    					DriveMapAdd($map_details[2] & ":", $homelaufwerk )
    				EndIf

    funktioniert, wenn jemand eine bessere Idee hat nehm ich die auch gerne

  • Netzlaufwerke verbinden am liebsten "dynamisch"

    • Camulus
    • 21. September 2016 um 09:59

    Aloha,
    ich nochmal.

    Mir ist nicht so ganz klar was heute Nacht passiert ist...heute geht es nicht mehr.
    Ich hab extra nochmal den Codeschnipsel oben raus kopiert aber dei Laufwerke werden nicht mehr verbunden.


    Ich hab mich mal rangetastet.

    Code
    #include <Array.au3>
        #include <ad.au3>
        #include <MsgBoxConstants.au3>
    	local $is_member
        Local $aArray = IniReadSection(@ScriptDir & "\Map.ini", "Groups")
    ;~     _ArrayDisplay ($aArray)
    ;~       Check if an error occurred.
    ;~       If Not @error Then
    ;~           ; Enumerate through the array displaying the keys and their respective values.
    ;~           For $i = 1 To $aArray[0][0]
    ;~               MsgBox(0, "", "Key: " & $aArray[$i][0] & @CRLF & "Value: " & $aArray[$i][1])
    ;~           Next
    ;~       EndIf
    	_AD_Open()
        For $i = 1 To $aArray[0][0]
    
    
            $is_member = 0
        	$is_member = _AD_IsMemberOf($aArray[$i][1], @UserName)
    		If $is_member = 1 Then
    
    
    			Local $aArray_MAPDRIVE = IniReadSection(@ScriptDir &"\Map.ini", $aArray[$i][1])
    ;~ 			_ArrayDisplay ($aArray_MAPDRIVE)
    			For $x = 1 To $aArray_MAPDRIVE[0][0]
    ;~ 				MsgBox(0,$is_member, $aArray_MAPDRIVE[$i][1])
    				$map_details = StringSplit($aArray_MAPDRIVE[$x][1],"|")
    ;~ 				_ArrayDisplay ($map_details)
    
    
    
    
    
    
    				$Str =('"' & $map_details[2] &":" &'"' & "," & '"' &$map_details[1] & '"')
    
    
    								$Buchstabe=('"' & $map_details[2] &":" &'"')
    								$Pfad=('"' &$map_details[1] & '"')
    										MsgBox(0,"Buchstabe", $Buchstabe)
    										MsgBox(0,"Pfad",  $Pfad)
    				$m=DriveMapAdd($Buchstabe, $Pfad)
    				MsgBox(0,"",$M &" " & @error)
    				MsgBox(0,"Fertig","Laufwerk sollte da sein.")
    ;~ 				DriveMapAdd('"' & $map_details[2] :'"', '"'$map_details[1]'"')
    
    
    			Next
        	EndIf
        Next
    _AD_Close()
    Alles anzeigen


    Fehler 4 wenn ich das richtig gemacht habe meint der Device Name wäre ungültig ?(


    ini:

    Code
    [Groups]
    1=GRP_Abteilung_IT
    2=Alle_XYZ
    3=AbteilungABC
    4=AbteilungABCZentrale
    5=Mitarbeiter_DEF
    
    
    [GRP_Abteilung_IT]
    1=\\coo.local\dfs\software\|S
    
    
    [Alle_XYZ]
    1=\\abc.intern\dfs\Gruppen_Koeln|V
    2=\\abc.intern\dfs\Benutzer_Koeln\|W
    
    
    [AbteilungABC]
    1=\\abc.intern\dfs\ABC|Q
    [AbteilungABCZentrale]
    1=\\abc.intern\dfs\ABC|Q
    
    
    [Mitarbeiter_CPP]
    1=\\DEF.local\dfs\Abteilung|G
    Alles anzeigen


    kann mich da nochmal jemand erleuchten? :/

  • Netzlaufwerke verbinden am liebsten "dynamisch"

    • Camulus
    • 20. September 2016 um 15:24

    :thumbup:
    Danke läuft.

    Bis zur nächsten Frage;)

    Wenn du mal ins Oberbergische kommst sag Bescheid, ich mach den Smoker an :theke:

  • Netzlaufwerke verbinden am liebsten "dynamisch"

    • Camulus
    • 20. September 2016 um 15:03
    Code
    #include <Array.au3>
        #include <ad.au3>
        #include <MsgBoxConstants.au3>
        Local $aArray = IniReadSection(@ScriptDir &"\Map.ini", "Groups")
    	Local $is_member
        ;_ArrayDisplay ($aArray)
         ; Check if an error occurred.
    ;~ 	If Not @error Then
    ;~           ; Enumerate through the array displaying the keys and their respective values.
    ;~           For $i = 1 To $aArray[0][0]
    ;~               MsgBox(0, "", "Key: " & $aArray[$i][0] & @CRLF & "Value: " & $aArray[$i][1])
    ;~           Next
    ;~       EndIf
    
    
    	_AD_Open()
        For $i = 1 To $aArray[0][0]
    
    
        	$is_member = _AD_IsMemberOf($aArray[$i][1], @UserName)
    
    
    		If $is_member = 1 Then
    			Local $aArray_MAPDRIVE = IniReadSection(@ScriptDir &"\Map.ini", $aArray[$i][1])
    ;~ 		_ArrayDisplay ($aArray_MAPDRIVE)
    
    
    			For $i = 1 To $aArray_MAPDRIVE[0][0]
    				;MsgBox(0,$is_member, $aArray_MAPDRIVE[$i][1])
    				$map_details = StringSplit($aArray_MAPDRIVE[$i][1],"|")
    				;_ArrayDisplay ($map_details)
    				DriveMapAdd($map_details[2] & ":", $map_details[1])
    			Next
    
    
    
    
        	EndIf
        Next
    
    
    _AD_Close()
    Alles anzeigen

    So meinst du oder?

    Fehler:
    24) : ==> Subscript used on non-accessible variable.:
    For $i = 1 To $aArray_MAPDRIVE[0][0]
    For $i = 1 To $aArray_MAPDRIVE^ ERROR

    Wenn ich in keiner der beiden Gruppen bin

  • Netzlaufwerke verbinden am liebsten "dynamisch"

    • Camulus
    • 20. September 2016 um 14:41

    Eine Frage noch hinterher,

    angenommen der User ist in keiner der angegebenen Gruppen kommt scheinbar dieser Fehler
    (23) : ==> Subscript used on non-accessible variable.:
    For $i = 1 To $aArray_MAPDRIVE[0][0]
    For $i = 1 To $aArray_MAPDRIVE^ ERROR


    Ich habe es mit einer Gruppe getestet in der ich bin funktioniert Super,
    wenn ich die Gruppe in der ini umbenenne und ich dann in keiner mehr bin kommt dieser Fehler

    :huh:


    Zwei Fragen:
    Wenn ich in mehreren Gruppen bin scheint es auch nicht zu gehen


    ini:

    Code
    [Groups]
    1=GRP_Abteilung_IT
    2=GRP_COO_IT
    
    
    [GRP_Abteilung_IT]
    1=\\coo.local\dfs\software|X
    2=\\coo.local\dfs\software|Y
    
    
    [GRP_COO_IT]
    1=\\coo.local\dfs\software|Z
    Alles anzeigen


    Am Rest hab ich nichts geändert, aber mein User ist in beiden Gruppen.
    fehler kommt keiner aber Z: wird nicht verbunden ?(

  • Netzlaufwerke verbinden am liebsten "dynamisch"

    • Camulus
    • 20. September 2016 um 14:35

    Genau sowas :D

    Danke!

    Und ja es war furchtbar kompliziert :S
    Ich versuche es jetzt zu verstehen und baue es um.

  • Netzlaufwerke verbinden am liebsten "dynamisch"

    • Camulus
    • 20. September 2016 um 14:00

    Ich bin noch etwas verwirrt wegeen dem Array bzw den Arrays und wie ich die Laufwerksbuchstaben verwurste. ?(

    Die Idee ist die Ini dann so aufzubauen


    [Groups]
    1=GRP_Abteilung_IT
    [GRP_Abteilung_IT]
    LW1="X:"
    Pfad1="\\xyz.local\dfs\software"

    Code
    For $i = 1 To $aArray[0][0]
    
    
    
    
    	$is_member = _AD_IsMemberOf($aArray[$i][1], @UserName)
    
    
    
    
    	If $is_member = 1 Then
    
    
    	$drive = $aArray[$i][1]
    	$path = $aArray[$i+1][1]
    ;~ 	MsgBox("","Array",  $group)
    
    
    ;~ 	Local $aDrive =iniReadSection(@ScriptDir &"\Map.ini",	 $aArray[$i][1] )
    	Local $aDrive =iniReadSection(@ScriptDir &"\Map.ini",	 $drive )
    	Local $aPath = iniReadSection(@ScriptDir &"\Map.ini",	 $path )
    ;~ 	 _ArrayDisplay  ($aDrive)
    ;~ 	 _ArrayDisplay  ($aPath)
    
    
    		MsgBox("","Drive:" ,$aDrive [$i][1])
    		MsgBox("","Drive:" ,$aPath [$i+1][1])
    
    
    ;lese die entsprechende InISection und verarbeite die MAPDrive Anweisung ... das muss noch ergänzt werden :)
    	EndIf
    Next
    Alles anzeigen

    Nur da hab ich dir richtige Kombination noch nicht;)

    Oder ist die Idee Qutasch?

  • Netzlaufwerke verbinden am liebsten "dynamisch"

    • Camulus
    • 20. September 2016 um 13:42

    Wir kommen der Sache näher.

    C
    #include <AD.au3>
    #include <Array.au3>
    #include <MsgBoxConstants.au3>
    
    
    Local $aArray = IniReadSection(@ScriptDir &"\Map.ini", "Groups")
    
    
    _ArrayDisplay ($aArray)
     ; Check if an error occurred.
    ;~  If Not @error Then
    ;~      ; Enumerate through the array displaying the keys and their respective values.
    ;~      For $i = 1 To $aArray[0][0]
    ;~          MsgBox(0, "", "Key: " & $aArray[$i][0] & @CRLF & "Value: " & $aArray[$i][1])
    ;~      Next
    ;~  EndIf
    	_AD_Open()
    
    
    For $i = 1 To $aArray[0][0]
    
    
    
    
    	$is_member = _AD_IsMemberOf($aArray[$i][1], @UserName)
    
    
    
    
    	If $is_member = 1 Then
    
    
    	$group = $aArray[$i][1]
    	MsgBox("","Array",  $group)
    
    
    	Local $aDrive =iniReadSection(@ScriptDir &"\Map.ini",	 $aArray[$i][1] )
    	 _ArrayDisplay ($aDrive)
    		MsgBox("","Drive:" ,$aDrive [$i][1])
    
    
    
    
    ;lese die entsprechende InISection und verarbeite die MAPDrive Anweisung ... das muss noch ergänzt werden :)
    	EndIf
    Next
    Alles anzeigen

    Aber jetzt hab ich ein Problem mit den Laufwerksbuchstaben.
    Due Idee war DriveMapAdd mit $aDrive zu füllen ,aber das geht natürlich nicht X/

    Die Buchstben unterscheiden sich natürlich nach Gruoppen;)

    Hat da noch jemand eine zündende Idee?

  • Netzlaufwerke verbinden am liebsten "dynamisch"

    • Camulus
    • 20. September 2016 um 12:13

    Ich glaub ich hab es...
    oder hab ich jetzt Bockmist gebaut? :D

    C
    #include <AD.au3>
    #include <Array.au3>
    #include <MsgBoxConstants.au3>
    
    
    Local $aArray = IniReadSection(@ScriptDir &"\Map.ini", "Groups")
    
    
    _ArrayDisplay ($aArray)
     ; Check if an error occurred.
    ;~  If Not @error Then
    ;~      ; Enumerate through the array displaying the keys and their respective values.
    ;~      For $i = 1 To $aArray[0][0]
    ;~          MsgBox(0, "", "Key: " & $aArray[$i][0] & @CRLF & "Value: " & $aArray[$i][1])
    ;~      Next
    ;~  EndIf
    	_AD_Open()
    
    
    For $i = 1 To $aArray[0][0]
    
    
    	$is_member = _AD_IsMemberOf($aArray[$i][1], @UserName)
    
    
    	If $is_member = 1 Then
    
    
     		MsgBox(0,"",$is_member & $aArray[$i][1])
    		;lese die entsprechende InISection und verarbeite die MAPDrive Anweisung ... das muss noch ergänzt werden :)
    	EndIf
    Next
    Alles anzeigen
  • Netzlaufwerke verbinden am liebsten "dynamisch"

    • Camulus
    • 20. September 2016 um 11:41

    Ok, das ist eigentlich das was ich wollte...allerdings sind Arrays böhmiche Dörfer bei mir... das vergisst man immer alles wieder:

    So sieht es momentan aus:

    C
    #include <AD.au3>
    #include <Array.au3>
    Local $aArray = IniReadSection(@ScriptDir &"\Map.ini", "Groups")
    _ArrayDisplay ($aArray)
    ;~  ; Check if an error occurred.
    ;~  If Not @error Then
    ;~      ; Enumerate through the array displaying the keys and their respective values.
    ;~      For $i = 1 To $aArray[0][0]
    ;~          MsgBox(0, "", "Key: " & $aArray[$i][0] & @CRLF & "Value: " & $aArray[$i][1])
    ;~      Next
    ;~  EndIf
    For $i = 1 To $aArray[0]
    	$is_member = _AD_IsMemberOf($aArray[$i], @UserName)
    	If $is_member = 1 Then
     		MsgBox(0,"",$is_member & $aArray[$i])
    		;lese die entsprechende InISection und verarbeite die MAPDrive Anweisung ... das muss noch ergänzt werden :)
    	EndIf
    Next
    Alles anzeigen


    Und ich bekomme diesen Fehler:
    (14) : ==> Array variable has incorrect number of subscripts or subscript dimension range exceeded.:


    Kann mir da noch jemand auf die Sprünge helfen?

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™