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

Beiträge von lone_wolf

  • Tool für Helpdesk zum starten von Remote Assistance

    • lone_wolf
    • 17. Juni 2013 um 09:56

    Hallo zusammen,

    ich habe für den Helpdesk ein Tool geschrieben, welches die Benutzer der jeweiligen Citrix Farm ausliest und den gesuchten dann auch findet.
    (hat sicher noch viel Optimierungspotential)

    Zuerst hatte das Programm problemlos funktioniert, jetzt hängt es sich öfter auf (reagiert einfach nicht mehr)

    Vielleicht kann sich mal jemand meine Scripts durchschauen, zwecks Optimierung, Problemfindung, etc.


    Spoiler anzeigen
    [autoit]


    #Region
    #AutoIt3Wrapper_Icon=baloise.ico
    #AutoIt3Wrapper_UseUpx=n
    #AutoIt3Wrapper_Res_Description=Remote Assistance Helper C-IT
    #AutoIt3Wrapper_Res_Fileversion=1.0.0.46
    #AutoIt3Wrapper_Res_Fileversion_AutoIncrement=y
    #AutoIt3Wrapper_Res_LegalCopyright=Support
    #AutoIt3Wrapper_Res_SaveSource=y
    #EndRegion

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

    #include <SendMessage.au3>
    #include <ProgressConstants.au3>
    #Include <WinAPI.au3>
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <ArrayMore.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <string.au3>
    #include <Array.au3>
    #include <File.au3>
    #include <bv_File.au3>
    #include <GuiListView.au3>

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

    Global $BVtmp = @TempDir & '\RA-Helper\'
    DirCreate($BVtmp)

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

    #Region ### START Variables
    Global $AdminFarm = 'TSADM'
    Global $VarConfigServer = RegRead('HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment','CONFIGSERVER') ; \\domain\profile\Config\farm (UNC path to the Server files)
    Global $fConfig = $VarConfigServer & '\RA-Helper\farm-cfg.ini'
    Global $fError = $BVtmp & '$error'
    Global $fUser = $BVtmp & '$user'
    Global $lAD_TS_Serverlist = $VarConfigServer & '\RA-Helper\ad-ts-srvlist.txt'
    Global $aTS_Server
    Global $item
    Global $B_Key
    Global $aUser[1]
    Global $Checkbox
    #EndRegion ### END Variables

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

    Global $aSection = IniReadSection($fConfig, 'Farm'), $val

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

    Global $aFarm[$aSection[0][0]][10]
    For $i = 1 To UBound($aSection) -1
    $aFarm[$i-1][0] = $aSection[$i][0]
    $val = StringSplit($aSection[$i][1], ';')
    For $j = 1 To UBound($val) -1
    $aFarm[$i-1][$j] = $val[$j]
    Next
    Next

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

    Global $aCheckBoxArray[UBound($aFarm)]

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

    ;----------------------------------------------------------------------------------------------------------------------
    ; Tasks that should run before the GUI section
    ;----------------------------------------------------------------------------------------------------------------------
    _ServerSort()

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

    If StringInStr(@ComputerName, $AdminFarm) Or StringInStr(@ComputerName, '-vadm01') > 0 Then
    #Region ### START Koda GUI section ### Form=E:\AutoIt3\koda\Forms\Remote-Assistance-Helper.kxf
    $Form1 = GUICreate("Remote Assistance Helper C-IT", 640, 430, 200, 200)
    $menu1 = GUICtrlCreateMenu('File')
    $menu2 = GUICtrlCreateMenu('Edit Farm Names', $menu1)
    $menu3 = GUICtrlCreateMenu('Edit Path', $menu1)
    $help1 = GUICtrlCreateMenu('Help')
    $help2 = GUICtrlCreateMenuItem('Help', $help1)
    $help3 = GUICtrlCreateMenuItem('About', $help1)
    For $f = 0 To UBound($aFarm)-1 ;Gui füllen
    $aCheckBoxArray[$f]=GUICtrlCreateCheckbox($aFarm[$f][1], 20+100*Int($f/3), 100+Mod($f,3)*30)
    Next
    $Input1 = GUICtrlCreateInput("", 20, 40, 177, 21)
    $Label1 = GUICtrlCreateLabel("Username", 20, 20, 80, 17)
    $Label2 = GUICtrlCreateLabel("Select Farm(s)", 20, 80, 80, 17)
    $Label3 = GUICtrlCreateLabel("Search process", 260, 190, 205, 25)
    $Button1 = GUICtrlCreateButton("Search", 180, 210, 75, 25)
    $Button2 = GUICtrlCreateButton("Exit", 20, 210, 75, 25)
    $Button3 = GUICtrlCreateButton("Start Remote Assistance", 470, 210, 150, 25)
    $Button4 = GUICtrlCreateButton("Clear List", 100, 210, 75, 25)
    $listview = GUICtrlCreateListView("Server | User | Status | Logon Time | Session ID ", 20, 240, 600, 150);,$LVS_SORTDESCENDING)
    $iProgressBar = GUICtrlCreateProgress(260, 210, 205, 25,$PBS_MARQUEE)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $Button1 ; Search
    _ClearListview()
    If GUICtrlRead($Input1) = '' Or StringLen(GUICtrlRead($Input1)) < 7 Then
    MsgBox (0, 'Username', 'Username : "' & GUICtrlRead($Input1) & '" is empty or to short (' & StringLen(GUICtrlRead($Input1)) & ' Charachters)' & @CRLF & @CRLF & 'Username must have 7 characters - no more - no less')
    ElseIf StringLen(GUICtrlRead($Input1)) > 7 Then
    MsgBox (0, 'Username', 'Username : "' & GUICtrlRead($Input1) & '" is to long (' & StringLen(GUICtrlRead($Input1)) & ' Charachters)' & @CRLF & @CRLF & 'Username must have 7 characters - no more - no less')
    Else
    If FileExists($fUser) Then FileMove($fUser, $fUser & '_' & @YEAR & '-' & @MON & '-' & @MDAY & '_' & @HOUR & '-' & @MIN & '-' & @SEC, 1)
    For $au = UBound($aUser)-1 To 1 Step -1
    _ArrayDelete($aUser, $au)
    Next
    $B_Key = GUICtrlRead($Input1)
    Local $sum = 0
    For $g = 0 To UBound($aFarm)-1
    $sum = $sum + BitAND(GUICtrlRead($aCheckBoxArray[$g]), $GUI_CHECKED)
    ConsoleWrite($sum & ' ' & $g & BitAND(GUICtrlRead($aCheckBoxArray[$g]), $GUI_CHECKED) & @CRLF)
    Next
    If $sum = 0 Then
    $wSize = WinGetPos('Remote Assistance Helper C-IT')
    ToolTip('Please select at least one farm', $wSize[0]+100, $wSize[1]+120)
    Else
    _ProgressMarquee_Start($iProgressBar)
    For $g = 0 To UBound($aFarm)-1
    ToolTip('')
    If BitAND(GUICtrlRead($aCheckBoxArray[$g]), $GUI_CHECKED) Then
    _UserSearchOverAllServers()
    _CreateConnectedListview()
    EndIf
    Next
    EndIf
    _ProgressBarEnd($iProgressBar)
    EndIf
    Case $help2
    MsgBox(0, 'Farm selection', 'Normaly ...')
    Case $help3
    MsgBox(0, 'About', 'Remote Assistance Helper v1.00')
    Case $Button3 ; Start Remote Assistance
    _StartRemoteAssistance()
    Case $Button4 ; Clear List
    _ClearListview()
    Case $Button2 ; Exit
    Exit
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd
    Else
    ;_ArrayDisplay($aFarm, @ComputerName & ' - $aFarm - ' & UBound($aFarm))
    #Region ### START Koda GUI section ### Form=E:\AutoIt3\koda\Forms\Remote-Assistance-Helper.kxf
    $Form1 = GUICreate("Remote Assistance Helper C-IT", 640, 430, 200, 200)
    $menu1 = GUICtrlCreateMenu('File')
    $menu2 = GUICtrlCreateMenu('Edit Farm Names', $menu1)
    $menu3 = GUICtrlCreateMenu('Edit Path', $menu1)
    $help1 = GUICtrlCreateMenu('Help')
    $help2 = GUICtrlCreateMenuItem('Help', $help1)
    $help3 = GUICtrlCreateMenuItem('About', $help1)
    For $f = 0 To UBound($aFarm)-1 ;Gui füllen
    If StringInStr(@ComputerName, $aFarm[$f][2]) > 0 Then
    $Label2a = GUICtrlCreateLabel($aFarm[$f][1], 120, 80, 80, 17)
    $SingleFarm = $aFarm[$f][0]
    EndIf
    Next
    ;_ArrayDisplay($aCheckBoxArray)
    $Input1 = GUICtrlCreateInput("", 20, 40, 177, 21)
    $Label1 = GUICtrlCreateLabel("Username", 20, 20, 80, 17)
    $Label2 = GUICtrlCreateLabel("Selected Farm", 20, 80, 80, 17)
    $Label3 = GUICtrlCreateLabel("Search process", 260, 190, 205, 25)
    $Button1 = GUICtrlCreateButton("Search", 180, 210, 75, 25)
    $Button2 = GUICtrlCreateButton("Exit", 20, 210, 75, 25)
    $Button3 = GUICtrlCreateButton("Start Remote Assistance", 470, 210, 150, 25)
    $Button4 = GUICtrlCreateButton("Clear List", 100, 210, 75, 25)
    $listview = GUICtrlCreateListView("Server | User | Status | Logon Time | Session ID ", 20, 240, 600, 150);,$LVS_SORTDESCENDING)
    $iProgressBar = GUICtrlCreateProgress(260, 210, 205, 25,$PBS_MARQUEE)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $Button1 ; Search
    _ClearListview()
    If GUICtrlRead($Input1) = '' Or StringLen(GUICtrlRead($Input1)) < 7 Then
    MsgBox (0, 'Username', 'Username : "' & GUICtrlRead($Input1) & '" is empty or to short (' & StringLen(GUICtrlRead($Input1)) & ' Charachters)' & @CRLF & @CRLF & 'Username must have 7 characters - no more - no less')
    ElseIf StringLen(GUICtrlRead($Input1)) > 7 Then
    MsgBox (0, 'Username', 'Username : "' & GUICtrlRead($Input1) & '" is to long (' & StringLen(GUICtrlRead($Input1)) & ' Charachters)' & @CRLF & @CRLF & 'Username must have 7 characters - no more - no less')
    Else
    If FileExists($fUser) Then FileMove($fUser, $fUser & '_' & @YEAR & '-' & @MON & '-' & @MDAY & '_' & @HOUR & '-' & @MIN & '-' & @SEC, 1)
    For $au = UBound($aUser)-1 To 1 Step -1
    _ArrayDelete($aUser, $au)
    Next
    $B_Key = GUICtrlRead($Input1)
    For $g = 0 To UBound($aFarm)-1 ; Select Farm on which the tool is running
    ConsoleWrite($aFarm[$g][1] & ' -_- ' & $aFarm[$g][2] & @CRLF)
    If StringInStr(@ComputerName, $aFarm[$g][2]) > 0 Then
    _UserSearchOverSingleFarm()
    _CreateConnectedListview()
    Else
    ; do nothing
    EndIf
    Next
    _ProgressBarEnd($iProgressBar)
    EndIf
    Case $help2
    MsgBox(0, 'Farm selection', 'Normaly ...')
    Case $help3
    MsgBox(0, 'About', 'Remote Assistance Helper v1.00')
    Case $Button3 ; Start Remote Assistance
    _StartRemoteAssistance()
    Case $Button4 ; Clear List
    _ClearListview()
    Case $Button2 ; Exit
    Exit
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd
    EndIf

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

    Func _ServerSort()
    FileDelete($BVtmp & '$farm*')
    _FileReadToArray($lAD_TS_Serverlist, $aTS_Server)
    _ArraySort($aTS_Server, 0, 1)
    For $x = 1 To $aTS_Server[0]
    For $c = 0 to UBound($aFarm)-1
    If StringInStr($aTS_Server[$x], $aFarm[$c][2]) > 0 Then
    $atmp = StringSplit($aTS_Server[$x], ',')
    If StringInStr($atmp[1], 'DC0') > 0 Then
    _FileWriteLog($fError, ' This a DataCollector -> ' & StringTrimLeft($atmp[1], 4))
    Else
    _bv_FileWriteLog($BVtmp & $aFarm[$c][0], StringTrimLeft($atmp[1], 4))
    EndIf
    EndIf
    Next
    Next
    EndFunc ; _ServerSort()

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

    Func _CreateConnectedListview()
    Local $aTmpUser
    Local $tItem
    _FileReadToArray($fUser, $aTmpUser)
    _Array2DDblDel($aTmpUser)
    _GUICtrlListView_DeleteAllItems($listview)
    For $u = 1 To UBound($aTmpUser)-1
    $tItem = $item & $u
    $tItem = GUICtrlCreateListViewItem($aTmpUser[$u], $listview)
    Next
    _GUICtrlListView_SetColumnWidth($listview, 0, $LVSCW_AUTOSIZE)
    GUISetState()
    EndFunc ; _CreateConnectedListview()

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

    Func _UserSearchOverSingleFarm()
    Local $aTempServer
    Local $aXXXX
    $tNr = $aCheckBoxArray[$g]-9
    _FileReadToArray($BVtmp & $SingleFarm, $aTempServer)
    For $x = 1 To UBound($aTempServer)-1
    Local $PID = Run(@ComSpec & ' /c ' & 'query user /server:' & $aTempServer[$x], '', @SW_HIDE, 0x2)
    Local $Line = ''
    While 1
    $Line &= StdoutRead($PID)
    If @error Then ExitLoop
    Wend
    _FileWriteLog($BVtmp & $SingleFarm & $x & '_chk.log', $aTempServer[$x] & @CRLF & $line)
    Do
    _ArrayDelete($aXXXX, 0)
    Until UBound($aXXXX) = 0
    _FileReadToArray($BVtmp & $SingleFarm & $x & '_chk.log', $aXXXX)
    For $z = 1 To $aXXXX[0]
    If StringInStr($aXXXX[$z], $B_Key) > 0 Then
    $t01 = ''
    $t01 = StringReplace(StringLeft($aXXXX[$z], StringInStr($aXXXX[$z], ' ', 0, 1)-1), ' ', '') ; Username
    $t02 = StringReplace(StringLeft(StringTrimLeft($aXXXX[$z], 45), StringInStr(StringTrimLeft($aXXXX[$z], 45), ' ')), ' ', '') ; Status
    $t03 = StringTrimLeft($aXXXX[$z], StringInStr($aXXXX[$z], '.', 0, -2)-3) ; Logon time
    $t04 = StringReplace(StringTrimLeft(StringTrimRight($aXXXX[$z], StringLen($aXXXX[$z]) - 44), 38), ' ', '') ; Session ID
    _bv_FileWriteLog($fUser, $aTempServer[$x] & '|' & $t01 & '|' & $t02 & '|' & $t03 & '|' & $t04)
    EndIf
    Next
    Next
    EndFunc ; _UserSearchOverSingleFarm()

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

    Func _UserSearchOverAllServers()
    Local $aTempServer
    Local $aXXXX
    $tNr = $aCheckBoxArray[$g]-9
    _FileReadToArray($BVtmp & $aFarm[$tNr][0], $aTempServer)
    For $x = 1 To UBound($aTempServer)-1
    Local $PID = Run(@ComSpec & ' /c ' & 'query user /server:' & $aTempServer[$x], '', @SW_HIDE, 0x2)
    Local $Line = ''
    While 1
    $Line &= StdoutRead($PID)
    If @error Then ExitLoop
    Wend
    _FileWriteLog($BVtmp & $aFarm[$tNr][0] & $x & '_chk.log', $aTempServer[$x] & @CRLF & $line)
    Do
    _ArrayDelete($aXXXX, 0)
    Until UBound($aXXXX) = 0
    _FileReadToArray($BVtmp & $aFarm[$tNr][0] & $x & '_chk.log', $aXXXX)
    For $z = 1 To $aXXXX[0]
    If StringInStr($aXXXX[$z], $B_Key) > 0 Then
    $t01 = ''
    $t01 = StringReplace(StringLeft($aXXXX[$z], StringInStr($aXXXX[$z], ' ', 0, 1)-1), ' ', '') ; Username
    $t02 = StringReplace(StringLeft(StringTrimLeft($aXXXX[$z], 45), StringInStr(StringTrimLeft($aXXXX[$z], 45), ' ')), ' ', '') ; Status
    $t03 = StringTrimLeft($aXXXX[$z], StringInStr($aXXXX[$z], '.', 0, -2)-3) ; Logon time
    $t04 = StringReplace(StringTrimLeft(StringTrimRight($aXXXX[$z], StringLen($aXXXX[$z]) - 44), 38), ' ', '') ; Session ID
    _bv_FileWriteLog($fUser, $aTempServer[$x] & '|' & $t01 & '|' & $t02 & '|' & $t03 & '|' & $t04)
    EndIf
    Next
    Next
    EndFunc ; _UserSearchOverAllServers()

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

    Func _StartRemoteAssistance()
    Local $StartRA
    Local $aStartRA
    $StartRA = GUICtrlRead(GUICtrlRead($listview))
    $aStartRA = StringSplit($StartRA, '|')
    If FileExists('c:\Program Files (x86)\RA-Helper\msra.exe') Then
    RunWait(@ComSpec & " /c " & '"c:\Program Files (x86)\RA-Helper\msra.exe" /offerRA ' & $aStartRA[1]) ; don't forget " " before "/c"
    Else
    MsgBox(16, '! ! ! E R R O R ! ! !', 'Remote Assistance is not installed on this machine: ' & @CRLF & @ComputerName & @CRLF & @CRLF & 'Please contact ...')
    EndIf
    EndFunc ; _StartRemoteAssistance()

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

    Func _ClearListview()
    Local $aTmpUser
    _Array2DDblDel($aTmpUser)
    _GUICtrlListView_DeleteAllItems($listview)
    _ProgressMarquee_Stop($iProgressBar)
    EndFunc ; _ClearListview()

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

    ; #FUNCTION# ====================================================================================================================
    ; Name ..........: _ProgressMarquee_Start
    ; Description ...: Start the marquee effect.
    ; Syntax ........: _ProgressMarquee_Start($iControlID)
    ; Parameters ....: $iControlID - ControlID of a progressbar using the $PBS_MARQUEE style.
    ; Return values .: Success - True
    ; Failure - False
    ; Author ........: guinness
    ; Example .......: Yes
    ; ===============================================================================================================================
    Func _ProgressMarquee_Start($iControlID)
    Return GUICtrlSendMsg($iControlID, $PBM_SETMARQUEE, True, 50) = True
    EndFunc ;==>_ProgressMarquee_Start

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

    ; #FUNCTION# ====================================================================================================================
    ; Name ..........: _ProgressMarquee_Stop
    ; Description ...: Stop the marquee effect.
    ; Syntax ........: _ProgressMarquee_Stop($iControlID[, $iReset = 0])
    ; Parameters ....: $iControlID - ControlID of a progressbar using the $PBS_MARQUEE style.
    ; $fReset - [optional] Reset the progressbar, True - Reset or False - Don't reset. Default is False.
    ; Return values .: Success - True
    ; Failure - False
    ; Author ........: guinness
    ; Example .......: Yes
    ; ===============================================================================================================================
    Func _ProgressMarquee_Stop($iControlID, $fReset = False)
    Local $fReturn = GUICtrlSendMsg($iControlID, $PBM_SETMARQUEE, False, 50) = True
    If $fReset Then
    GUICtrlSetStyle($iControlID, $PBS_MARQUEE)
    GUICtrlSetLimit($iControlID, 100, 0)
    GUICtrlSetData($iControlID, 100)
    EndIf
    Return $fReturn
    EndFunc ;==>_ProgressMarquee_Stop

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

    Func _ProgressBarEnd($iControlID)
    _SendMessage(GUICtrlGetHandle($iControlID),$PBM_SETMARQUEE, False, 0)
    $iControlID = GUICtrlCreateProgress(260, 210, 205, 25)
    GUICtrlSetLimit($iControlID, 100, 0)
    GUICtrlSetData($iControlID, 100)
    EndFunc ; _ProgressBarEnd()

    [/autoit]

    bv_File.au3 (_FileWriteLog ohne Datum und Uhrzeit)

    Spoiler anzeigen
    [autoit]


    #include-once

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

    ; #FUNCTION# ====================================================================================================================
    ; Name...........: _bv_FileWriteLog
    ; Description ...: Writes the specified text to a log file.
    ; Syntax.........: _bv_FileWriteLog($sLogPath, $sLogMsg[, $iFlag = -1])
    ; Parameters ....: $sLogPath - Path and filename of the file to be written to
    ; $sLogMsg - Message to be written to the log file
    ; $iFlag - [Optional] - Flag that defines if $sLogMsg will be written to the end of file, or to the begining.
    ; |If $iFlag = -1 (default) $sLogMsg will be written to the end of file.
    ; |If $iFlag &lt;&gt; -1 $sLogMsg will be written to begining of file.
    ; Return values .: Success - Returns a 1
    ; Failure - Returns a 0
    ; @Error - 0 = No error.
    ; |1 = Error opening specified file
    ; |2 = File could not be written to
    ; Author ........:
    ; Modified.......:
    ; Remarks .......:
    ; Related .......:
    ; Link ..........:
    ; Example .......: Yes
    ; ===============================================================================================================================
    Func _bv_FileWriteLog($sLogPath, $sLogMsg, $iFlag = -1)
    Local $hOpenFile = $sLogPath, $iOpenMode = $FO_APPEND

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

    Local $sMsg = $sLogMsg

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

    If $iFlag <> -1 Then
    $sMsg &= @CRLF & FileRead($sLogPath)
    $iOpenMode = $FO_OVERWRITE
    EndIf

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

    ; Open output file for appending to the end/overwriting, or use input file handle if passed
    If IsString($sLogPath) Then
    $hOpenFile = FileOpen($sLogPath, $iOpenMode)
    If $hOpenFile = -1 Then
    Return SetError(1, 0, 0)
    EndIf
    EndIf

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

    Local $iReturn = FileWriteLine($hOpenFile, $sMsg)

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

    ; Close file only if specified by a string path
    If IsString($sLogPath) Then
    $iReturn = FileClose($hOpenFile)
    EndIf
    If $iReturn <= 0 Then
    Return SetError(2, $iReturn, 0)
    EndIf
    Return $iReturn
    EndFunc ;==>_bv_FileWriteLog

    [/autoit]

    farm-cfg.ini (damit wird die GUI konfiguriert - einfach erweitert)

    Spoiler anzeigen


    [Farm]
    $farm1=IT;TSADM
    $farm2=Dep1;CH-TSSO
    $farm3=Dep2;W-BE-
    $farm4=Shared;TSSH


    ad-ts-srvlist.txt (Server Liste der Citrix Xenapp Server)

    Spoiler anzeigen


    "CN=server01,OU=production,OU=abteilung,OU=department-P,DC=domain,DC=com"
    "CN=server02,OU=production,OU=abteilung,OU=department-P,DC=domain,DC=com"
    "CN=server03,OU=production,OU=abteilung,OU=department-P,DC=domain,DC=com"
    "CN=server04,OU=production,OU=abteilung,OU=department-P,DC=domain,DC=com"
    "CN=server05,OU=production,OU=abteilung,OU=department-P,DC=domain,DC=com"
    "CN=server06,OU=production,OU=abteilung,OU=department-P,DC=domain,DC=com"
    "CN=server07,OU=production,OU=abteilung,OU=department-P,DC=domain,DC=com"
    "CN=server08,OU=production,OU=abteilung,OU=department-P,DC=domain,DC=com"
    "CN=server09,OU=production,OU=abteilung,OU=department-P,DC=domain,DC=com"
    "CN=server10,OU=production,OU=abteilung,OU=department-P,DC=domain,DC=com"

    ich hoffe ich habe nichts wichtiges vergessen ?(

  • Problem mit filemove

    • lone_wolf
    • 28. September 2011 um 13:44

    ich habe ein Problem mit dem folgenden Script:

    Spoiler anzeigen
    [autoit]


    #include <File.au3>
    #include <Array.au3>

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

    Global $aFileList
    Global $aFileTime
    Global $fSource
    Global $i = 0

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

    While $i <= 10
    $fSource = FileSelectFolder('Quellverzeichnis', @ScriptDir)
    $aFileList = _FileListToArray($fSource, '*')
    If @Error=1 Then
    MsgBox (0, '', 'No Files\Folders Found.')
    Exit
    EndIf

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

    For $x = 1 To $aFileList[0]
    $aFileTime = FileGetTime($fSource & '\' & $aFileList[$x], 0, 0)
    If Not @error Then
    _FileWriteLog('logfile.log', $fSource & '\' & $aFileList[$x])
    _FileWriteLog('logfile.log', '\destination\' & $aFileTime[0] & '\' & $aFileTime[1] & '\' & $aFileTime[0] & '_' & $aFileTime[1] & '_' & $aFileTime[2] & '\' & $aFileList[$x])
    FileMove($fSource & '\' & $aFileList[$x], '\destination\' & $aFileTime[0] & '\' & $aFileTime[1] & '\' & $aFileTime[0] & '_' & $aFileTime[1] & '_' & $aFileTime[2] & '\' & $aFileList[$x], 8)
    Else
    MsgBox (0, '', 'Shit happens' & @CRLF & @error)
    EndIf
    Next

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

    WEnd

    [/autoit]

    als ich mit einem Unterodner gestestet habe, welcher noch weitere Unterordner hatte, wurde aus den Ordnern jeweils eine Datei:
    siehe Anhang

    leider kann ich nicht sagen, ob dies mit besonders wichtigen Dateien passiert ist, aber ... es wäre nicht schlecht an diese Dateien wieder ranzukommen!
    Also hat jemand eine Idee, wie ich so etwas wieder rückgängig machen kann?

    und ich weiss auch, dass ich so besser gefahren wäre: (Zeile 11 im Script)

    [autoit]

    $aFileList = _FileListToArray($fSource, '*', 1)

    [/autoit]

    ach so, unter Windows 7 passiert

    Dateien

    ordner-datei.png 23,58 kB – 0 Downloads
  • Position beim StringREplace

    • lone_wolf
    • 29. November 2007 um 08:58
    Zitat von huggy

    StringReplace macht das:

    $string = "AffeBananeGiraffe"

    $string = StringReplace($string, "Affe", "Hund")


    dann ist String jetzt HundBananeGiraffe.

    wenn du jetzt ganze zeilen ersetzen willst, musst du mit arrays arbeiten.
    oder war genau meinst du denn?

    Alles anzeigen

    Bei mir kommt als String dann HundBananeGirHund heraus!

    Anderfalls müsste man
    $string = StringReplace($string, "Affe", "Hund", 1)
    eingeben :D

    lone_wolf

  • Regular Expression

    • lone_wolf
    • 25. Juni 2007 um 16:30

    Hallo Mega,

    Danke, so scheint es zu gehen (der grosse Wurf kommt erst noch)

    laut unserer Netware Spezis scheint das mit mehreren Punkten im Filenamen teilweise Probleme zu bereiten.

    Lone Wolf

    Kann auch eine Dateiliste ohne Suffix erstellen lassen

  • Regular Expression

    • lone_wolf
    • 25. Juni 2007 um 15:06

    ich würde auf alle Fälle den Negativtest bevorzugen, da ich diese dann gleich in eine Datei rausschreiben lassen kann.

    wegen der Zeichen, ich denke wenn das Grundgerüst steht komme ich auch mit weiteren Zeichen klar

    die Zeichen sind auch noch nicht alle identifiziert :(


    Lone Wolf

  • Regular Expression

    • lone_wolf
    • 25. Juni 2007 um 12:10

    Danke für die Antworten, hier ein paar Beispiele, was Probleme bereitet:

    abc"cvghaj.doc ungültig wegen "
    ahjdg&dlmsh.xls ungültig wegen &
    abc.def.doc ungültig wegen . vor def

    wir stellen um vom Netware Laufwerken zu Windows und beim kopieren von Dateien mit Sonderzeichen oder mehreren Punkten haben wir Probleme

    Schaue mir die _PathCheck.au3 auf alle Fälle mal an

    Lone Wolf

  • Regular Expression

    • lone_wolf
    • 25. Juni 2007 um 11:33

    Hallo zusammen,

    ich benötige eine RegEx für Dateinamen, welche Sonderzeichen beinhalten?
    Die Sonderzeichen können mehrfach vorkommen und an jeder beliebigen Stelle sein.

    Sonderzeichen:
    . , " &

    Mit RegEx komme ich bisher überhaupt nicht klar!

    Danke schon im Voraus für eure Hilfe

    Lone Wolf

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™