Что нового

Как запретить запуск определенного rdp - файла?

Maks

Новичок
Сообщения
26
Репутация
0
Необходимо запрещать запуск rdp - файлов. Сделал вот что:
Код:
#include <Array.au3>

Do 
    $aWindows = WinList()
    For $i = 1 to $aWindows[0][0]
			$Proces=ProcessList()
			If StringInStr($aWindows[$i][0], 'Бухгалтерия')<>0 Then ;часть в названии rdp, например Бухгалтерия.rdp
				Dim $ProcesRDP[1][2]
                $rm1=1
				$rm2=0
 				for $rm = 1 to $Proces[0][0]
                     If $Proces[$rm][0]="mstsc.exe" Then 
						$rm1=$rm1+1 
						$rm2=$rm2+1
  						ReDim $ProcesRDP[$rm1][2]
						$ProcesRDP[$rm2][0]=$Proces[$rm][0]
						$ProcesRDP[$rm2][1]=$Proces[$rm][1]
					EndIf	
 				next
				If UBound($ProcesRDP)>1 Then
					ProcessClose($ProcesRDP[$rm2][1]) 
				EndIf	
			EndIf		
	next		
Until False
Exit 0


Все работает, но вот только сеанс закрывается не коректно. Может есть какой-то способ запрещать запуск процесса по имени файла, или как коректно закрыть сеанс в таком случаи?
Заранее спасибо!
 

axlwor

Скриптер
Сообщения
657
Репутация
147
HKEY_CURRENT_USER\SOFTWARE\Microsoft\ Windows\CurrentVerson\Policies\Explorer

DisallowRun DWORD,
1 - запрещает запуск приложений указанных в списке:

HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\DisallowRun
"1" - "mstsc.exe"
"2" - "icq.exe"
 
Автор
M

Maks

Новичок
Сообщения
26
Репутация
0
В таком случаи будут блокироваться все rdp-файлы, а мне нужно допустим только один - Бухгалтерия.rdp
 

Redline

AutoIT Гуру
Сообщения
506
Репутация
369
А если попробовать закрывать не процесс, а окно, то сеанс корректно закрывается?
Код:
ProcessClose($ProcesRDP[$rm2][1])

заменить на
Код:
WinClose($aWindows[$i][0])


или совсем:
Код:
Opt('WinTitleMatchMode', 2) ; Match any substring in the title
$sTitle = 'ухгалтерия'
;~ $sTitle = '[REGEXPTITLE:(?i)ухгалтерия.*?rdp]'
If WinExists($sTitle) Then WinClose($sTitle)
 

axlwor

Скриптер
Сообщения
657
Репутация
147
не выйдет
наверно думать нужно в сторону logoff ID /server:TermServName
 
Верх