Что нового

[Сеть, интернет] Проблема запуска приложения с сетевого диска при использовании runas

AtoS

Новичок
Сообщения
57
Репутация
2
Уважаемые коллеги, помогите пожалуйста решить проблему с запуском runas. Собственно проблема заключается в том, что при запуске приложения techinterface.exe с локального диска все работает, а вот с сетевого диска не запускает. как застваить запускать программу с сетевого диска? Вот сам скрипт:
Код:
#include <GUIConstants.au3>
#include <EditConstants.au3>
#include <Date.au3>
;#include <GuiConstantsEx.au3>
;#include <WindowsConstants.au3>
;#include <Constants.au3>

Opt("GUICoordMode",1)
GUICreate("", 150,170, -1, -1)
GUICtrlCreateLabel ("Авторизация пользователя",5, 5, 170, 15)
GUICtrlCreateLabel ("Имя пользователя:",25, 20, 100, 15)
$sUser = GUICtrlCreateInput ("",15,35,120,20)
GUICtrlCreateLabel ("Домен:",  55, 55, 100, 15)
$sDomain = GUICtrlCreateInput ("",15,70,120,20)
GUICtrlCreateLabel ("Пароль:",  55, 90, 100, 15)
$sPassword = GUICtrlCreateInput ("",15,105,120,20,$ES_PASSWORD)
$button = GUICtrlCreateButton("Запуск",40,130,70,20)
$runDir = "L:\Interface\Interface\techinterface.exe"
;GUICtrlCreateEdit
;GUICtrlCreateEdit
$tFile = _Date_Time_EncodeFileTime(@MDAY, @MON, @YEAR, @HOUR, @MIN, @SEC)
GUISetState ()       

While 1
    $msg = GUIGetMsg()
	Select
	Case $msg = $GUI_EVENT_CLOSE
        ; MsgBox(1, "Завершение работы", "Закончить работу мастера?")
        If MsgBox(4+16, "Завершение работы", "Закончить работу мастера?")<>7 Then Exit
         ;Exit
	 case $msg = $button
		 RunAs(GUICtrlRead($sUser),GUICtrlRead($sDomain),GUICtrlRead($sPassword),0, $rundir)
		 If @error Then
		 $LOGGING_false = FileOpen("L:\Interface\Log\logerror.Log",1)
		 FileWrite($LOGGING_false,"~~|~~~~|~~~~|~~~~|~~~~|~~~~|~~~~|~~~~|~~~~|~~~~|~~~~|~~~~|~~~~|~~~~|~~~~|~~~~|~~" & @CRLF)
		 FileWriteLine($LOGGING_false,"Внимание! Попытка несанкционированного доступа." & @CRLF)
		 FileWriteLine($LOGGING_false, "Дата и время входа:" & _Date_Time_FileTimeToStr($tFile))
		 FileWriteLine($LOGGING_false, "Имя нарушителя:" & GUICtrlRead($sUser) & @CRLF)
		 FileWriteLine($LOGGING_false, "Использовался домен:" & GUICtrlRead($sDomain) & @CRLF)
		 FileWriteLine($LOGGING_false,"~~|~~~~|~~~~|~~~~|~~~~|~~~~|~~~~|~~~~|~~~~|~~~~|~~~~|~~~~|~~~~|~~~~|~~~~|~~~~|~~" & @CRLF)
		 FileClose($LOGGING_false)
		 MsgBox(0+16, "ВНИМАНИЕ!", "ВЫ НЕ ПРОШЛИ АВТОРИЗАЦИЮ! Либо Вы не имеете прав доступа к системным ресурсам ИТ, либо Вы ввели неправильный пароль!")
		 Else
		 $LOGGING_true = FileOpen("L:\Interface\Log\logok.Log",1)
		 FileWrite($LOGGING_true,"~~|~~~~|~~~~|~~~~|~~~~|~~~~|~~~~|~~~~|~~~~|~~~~|~~~~|~~~~|~~~~|~~~~|~~~~|~~~~|~~" & @CRLF)
		 FileWriteLine($LOGGING_true,"осуществлен вход в систему пользователем:" & GUICtrlRead($sUser) & @CRLF)
		 FileWriteLine($LOGGING_true, "Дата и время входа:" & _Date_Time_FileTimeToStr($tFile) & @CRLF)
		 FileWriteLine($LOGGING_true,"~~|~~~~|~~~~|~~~~|~~~~|~~~~|~~~~|~~~~|~~~~|~~~~|~~~~|~~~~|~~~~|~~~~|~~~~|~~~~|~~" & @CRLF)
		 FileClose($LOGGING_true)
		EndIf
		 Exit
	EndSelect
Wend
Exit
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4 020
Репутация
622
а если попробовать замаунтить сетевой диск и запускать приложение оттуда?
Код:
DriveMapAdd ("K:",$sharefolder,1,$sDomain & '\' & $sUser)

А после всех манипуляций, можно и размапить диск
Код:
DriveMapDel("K:")
 
Автор
A

AtoS

Новичок
Сообщения
57
Репутация
2
Kaster сказал(а):
а если попробовать замаунтить сетевой диск и запускать приложение оттуда?
Код:
DriveMapAdd ("K:",$sharefolder,1,$sDomain & '\' & $sUser)

А после всех манипуляций, можно и размапить диск
Код:
DriveMapDel("K:")
Сетевой диск(в данном случае L) уже примаплен, мапить его на дополнительную букву не очень бы хотелось, так как это планируется внедрить на разветвленную сеть и тогда придется явно указывать ip или dns имена компьютеров, что не есть хорошо
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4 020
Репутация
622
AtoS [?]
Сетевой диск(в данном случае L) уже примаплен
пардон. думал это локальный диск. тогда конечно заново мапить ненадо.
попробуй еще так, тогда
Код:
$sShareFullPath = DriveMapGet('L:')
$path = '\Interface\Interface\techinterface.exe'
$runpath = $sShareFullPath & $path
RunAs($user, $domain, $pass, 0, $runpath)
 

Daymos

Новичок
Сообщения
8
Репутация
1
У меня работает так :
Код:
RunAs($user, $domain, $pass, 3, $runpath)
 
Автор
A

AtoS

Новичок
Сообщения
57
Репутация
2
Kaster сказал(а):
AtoS [?]
Сетевой диск(в данном случае L) уже примаплен
пардон. думал это локальный диск. тогда конечно заново мапить ненадо.
попробуй еще так, тогда
Код:
$sShareFullPath = DriveMapGet('L:')
$path = '\Interface\Interface\techinterface.exe'
$runpath = $sShareFullPath & $path
RunAs($user, $domain, $pass, 0, $runpath)
Огромное спасибо, все работает! вот оказывается как хитро надо указывать путь для RunAs.
 
Верх