Что нового

Radmin настройка передачи файлов

MiOksa

Новичок
Сообщения
12
Репутация
0
Здравствуйте, надо написать было скрипт автоматизации передачи файлов в Radmin c удаленного компьютера на локальный в определенную папку с удалением файлов на удаленном компьютере.

Написал скрипт входа в режим передачи файлов, а вот дальше как не пробывал не получается открыть нужную папку:

Код:
Global $path_ini = @ScriptDir & '\test.ini'

Global $file_name = IniRead ( $path_ini, "DATA", "FILE_NAME", "radmin.exe" ) ;название исполнительного файла
Global $path = IniRead ( $path_ini, "DATA", "PATH", "c:\Program Files\Radmin Viewer 3\" ) ;путь к папке программы
Global $path_full = $path & $file_name ;полный путь исполнительному файлу

Global $ip = IniRead ( $path_ini, "SECURITY", "IP", "0.0.0.0" ) ;путь к папке программы
Global $port = IniRead ( $path_ini, "SECURITY", "PORT", "4489" ) ;путь к папке программы
Global $user = IniRead ( $path_ini, "SECURITY", "USER", "admin" ) ;путь к папке программы
Global $pass = IniRead ( $path_ini, "SECURITY", "PASSWORD", "12345" ) ;путь к папке программы

Global $path_dir_files = IniRead ( $path_ini, "FILES", "PATH_DIR_FILES", "C:\logs\" ) ;путь к папке программы


Global 	$radmin ="[TITLE:" & $ip & " - Передача файлов; CLASS:BASECLASS#250F628]"	;имя титульного окна

Func _Patch_Log_Screen()  ;Функция пути к папке логов и скринов
	Local $path_log_screen = IniRead ( $path_ini, "DATA", "PATH_LOG_SCREEN", @ScriptDir )	;путь к папке логов и скриншота скрипта
		If Not FileExists($path_log_screen) Then
			DirCreate($path_log_screen)
		EndIf
    return $path_log_screen
EndFunc

Func _Name_Log_Screen()  ;Функция имени файлов логов и скринов
	Local $name_log_screen = IniRead ( $path_ini, "DATA", "NAME_LOG_SCREEN", "radmin_connect_log" )	;имя файлов логов и скринов
    return $name_log_screen
EndFunc

Func _DayTime()  ;Функция даты и времени для написания лога
    return (@MDAY & '/' & @MON & '/' & @YEAR & " " & @HOUR & ":" & @MIN & ":" & @SEC & " --- ")
EndFunc

Func _PatchDayTime_Log()  ;Функция пути, даты, времени и имени файла лога

    return (_Patch_Log_Screen() & @MON & @YEAR & " --- " & _Name_Log_Screen() & ".txt")
EndFunc


; FileWrite(_PatchDayTime_Log(), _daytime() & "Скрипт автоматизации запущен" & @CRLF) ; запись в файл лога о запуске скрипта

If Not ProcessExists($file_name) Then ;проверка не запущен ли процесс программы
				run ($path_full & " /connect:" & $ip & ":" & $port & " /file")
				FileWrite(_PatchDayTime_Log() , _DayTime() & "Приложение запущено" & @CRLF) ; запись в файл лога о запуске
				WinWait ( "Система безопасности Radmin:" , "" , 10 )
				ControlSend("Система безопасности Radmin", "", "Edit1", $pass)
				Send("{ENTER}")
				WinWait ("192.168.7.3 - Передача файлов", "" , 30)
				WinActive("[TITLE: 192.168.7.3 - Передача файлов; CLASS:BASECLASS#250F628]", "") ;активация окна
				ControlSend("[TITLE: 192.168.7.3 - Передача файлов; CLASS:BASECLASS#250F628]", "", "[CLASSNN:Edit2]", $path_dir_files)	;ввод пути удаленной директории
				ControlSend("[TITLE: 192.168.7.3 - Передача файлов; CLASS:BASECLASS#250F628]", "", "[CLASSNN:Edit2]",'{ENTER}')	;открытие папки
			EndIf


Затык где-то в последних 5 строках кода, title и class окна ввожу верно вроде и classnn тоже верно вроде, но ничего не получается.

Думал может через окно дисков сделать SysListView32, но как там сделать не до конца понял по справке.
 

Donpashulitto

Новичок
Сообщения
1
Репутация
0
Здравствуйте, надо написать было скрипт автоматизации передачи файлов в Radmin c удаленного компьютера на локальный в определенную папку с удалением файлов на удаленном компьютере.

Написал скрипт входа в режим передачи файлов, а вот дальше как не пробывал не получается открыть нужную папку:

Код:
Global $path_ini = @ScriptDir & '\test.ini'

Global $file_name = IniRead ( $path_ini, "DATA", "FILE_NAME", "radmin.exe" ) ;название исполнительного файла
Global $path = IniRead ( $path_ini, "DATA", "PATH", "c:\Program Files\Radmin Viewer 3\" ) ;путь к папке программы
Global $path_full = $path & $file_name ;полный путь исполнительному файлу

Global $ip = IniRead ( $path_ini, "SECURITY", "IP", "0.0.0.0" ) ;путь к папке программы
Global $port = IniRead ( $path_ini, "SECURITY", "PORT", "4489" ) ;путь к папке программы
Global $user = IniRead ( $path_ini, "SECURITY", "USER", "admin" ) ;путь к папке программы
Global $pass = IniRead ( $path_ini, "SECURITY", "PASSWORD", "12345" ) ;путь к папке программы

Global $path_dir_files = IniRead ( $path_ini, "FILES", "PATH_DIR_FILES", "C:\logs\" ) ;путь к папке программы


Global     $radmin ="[TITLE:" & $ip & " - Передача файлов; CLASS:BASECLASS#250F628]"    ;имя титульного окна

Func _Patch_Log_Screen()  ;Функция пути к папке логов и скринов
    Local $path_log_screen = IniRead ( $path_ini, "DATA", "PATH_LOG_SCREEN", @ScriptDir )    ;путь к папке логов и скриншота скрипта
        If Not FileExists($path_log_screen) Then
            DirCreate($path_log_screen)
        EndIf
    return $path_log_screen
EndFunc

Func _Name_Log_Screen()  ;Функция имени файлов логов и скринов
    Local $name_log_screen = IniRead ( $path_ini, "DATA", "NAME_LOG_SCREEN", "radmin_connect_log" )    ;имя файлов логов и скринов
    return $name_log_screen
EndFunc

Func _DayTime()  ;Функция даты и времени для написания лога
    return (@MDAY & '/' & @MON & '/' & @YEAR & " " & @HOUR & ":" & @MIN & ":" & @SEC & " --- ")
EndFunc

Func _PatchDayTime_Log()  ;Функция пути, даты, времени и имени файла лога

    return (_Patch_Log_Screen() & @MON & @YEAR & " --- " & _Name_Log_Screen() & ".txt")
EndFunc


; FileWrite(_PatchDayTime_Log(), _daytime() & "Скрипт автоматизации запущен" & @CRLF) ; запись в файл лога о запуске скрипта

If Not ProcessExists($file_name) Then ;проверка не запущен ли процесс программы
                run ($path_full & " /connect:" & $ip & ":" & $port & " /file")
                FileWrite(_PatchDayTime_Log() , _DayTime() & "Приложение запущено" & @CRLF) ; запись в файл лога о запуске
                WinWait ( "Система безопасности Radmin:" , "" , 10 )
                ControlSend("Система безопасности Radmin", "", "Edit1", $pass)
                Send("{ENTER}")
                WinWait ("192.168.7.3 - Передача файлов", "" , 30)
                WinActive("[TITLE: 192.168.7.3 - Передача файлов; CLASS:BASECLASS#250F628]", "") ;активация окна
                ControlSend("[TITLE: 192.168.7.3 - Передача файлов; CLASS:BASECLASS#250F628]", "", "[CLASSNN:Edit2]", $path_dir_files)    ;ввод пути удаленной директории
                ControlSend("[TITLE: 192.168.7.3 - Передача файлов; CLASS:BASECLASS#250F628]", "", "[CLASSNN:Edit2]",'{ENTER}')    ;открытие папки
            EndIf


Затык где-то в последних 5 строках кода, title и class окна ввожу верно вроде и classnn тоже верно вроде, но ничего не получается.

Думал может через окно дисков сделать SysListView32, но как там сделать не до конца понял по справке.
Подскажите, мне тоже нужно скрипт для передачи файла по радмину... У вас получилось что-нибудь или нашли альтернативный выход?
 

All2khoff

Продвинутый
Сообщения
351
Репутация
65
я сделал по другому, я работаю через телнет, а дальше как с обычной командной строкой.
свою задачу выполняет.
Код:
$adres = 192.168.20.111
 
ShellExecute ("radmin.exe", "/connect:"&$adres&":4899 /telnet", "C:\Program Files (x86)\Radmin Viewer 3", "open")
telnet($adres)
 
Func telnet($title)
    WinWait ($title&" - Telnet")
    Sleep(500)
    WinActivate($title&" - Telnet")
    Send ('for /R "D:\" %I IN ("201809*.log") DO  d:\7za.exe a "d:\'&$title&'-201809.7z" "%I"')    ;архивируем логи
    Sleep(500)
    Send("{ENTER}")
    Sleep(2000)
    WinActivate($title&" - Telnet")
    Send ('xcopy "d:\'&$title&'-201809.7z" \\192.168.20.112\temp\AAA\zz /Y /Z')                    ;копируем архив лога на общедоступную файлопомойку
    Sleep(500)
    Send("{ENTER}")
    Sleep(25000)
    WinActivate($title&" - Telnet")
    Send('del /f "d:\'&$title&'-201809.7z"{ENTER}')                                                ;удаление архива лога после завершения операции
    WinActivate($title&" - Telnet")
    Send ("exit{ENTER}")
    WinActivate($title&" - Telnet")
    WinClose($title&" - Telnet")
EndFunc
 
Последнее редактирование:
Верх