1

Тема: w2k3 TS: разрешить запуск только с диска С:

Всем привет. Система: Терминальные сервера w2k3r2sp2
Хочу на терминале разрешить запускать приложения, только установленные на диске С:, т.е. только на самом терминале. Проблема в том, что с подмапленных флэшек остается возможность запуска портабл приложений.

Есть механизм простого разрешения запуска только приложений с диска С:? Если это можно скриптом реализовать то попробую на vbs or PS.

Создавать отдельную политику с ограничением по хэшу списка приложений пока не удастся, т.к. приложений много и на разных терминалах они уникальные, поэтому пока хочу скриптом ограничить запуск любого *.ехе с любого диска, кроме С:

2

Re: w2k3 TS: разрешить запуск только с диска С:

LegionerX пишет:

Есть механизм простого разрешения запуска только приложений с диска С:? Если это можно скриптом реализовать то попробую на vbs or PS.

Мне такого не попадалось.

LegionerX пишет:

т.к. приложений много и на разных терминалах они уникальные

Ну и что?

LegionerX пишет:

поэтому пока хочу скриптом ограничить запуск любого *.ехе с любого диска, кроме С:

Попробуйте. Примеры: Prevent a Process from Running, VBS: Терминирование процессов Win32_Process Terminate() (надо только поменять условия).

3 (изменено: smaharbA, 2011-08-17 13:16:28)

Re: w2k3 TS: разрешить запуск только с диска С:

gpedit.msc

политика ограниченного использования программ, там можно и не по хешу, а по пути

Я конечно далек от мысли... (с)

4

Re: w2k3 TS: разрешить запуск только с диска С:

можно поправить ассоциацию для .exe

Я конечно далек от мысли... (с)

5

Re: w2k3 TS: разрешить запуск только с диска С:

smaharbA пишет:

можно поправить ассоциацию для .exe

спасибо - попробую сейчас.

6

Re: w2k3 TS: разрешить запуск только с диска С:

Спасибо smaharbA - разобрался, работает отлично

7

Re: w2k3 TS: разрешить запуск только с диска С:

LegionerX пишет:

Спасибо smaharbA - разобрался, работает отлично

Прсветите, о какой ассоциации идет речь ?

8 (изменено: GreyBear, 2011-09-01 08:41:56)

Re: w2k3 TS: разрешить запуск только с диска С:

Можно и скриптом (код надергал из более сложного но рабочего варианта и не проверял, поэтому возможно потребуется отладка).

' Запрет запуска приложений не с диска C:
' script language="VBScript"


Dim FSO, WshShell, objWMIService 
Set FSO = WScript.CreateObject("Scripting.FileSystemObject")
Set WshShell = WScript.CreateObject("WScript.Shell")
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set objSink = WScript.CreateObject("WbemScripting.SWbemSink","Sink_")

'контрольной строка (содержит диски с которых разрешен запуск приложений)
dim CntrlStr
  CntrlStr = "C:"

'Регистрация временного потребителя создания процессов
ResOut ModeLog,"Регистрация временного поребителя создания процессов",0,LogPath,LogName
objWMIService.ExecNotificationQueryAsync objSink, _
                "SELECT * FROM __InstanceCreationEvent WITHIN 1 WHERE "&_
                "TargetInstance ISA 'win32_Process'" 

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'Процедура обработчик события OnObjectReady объекта SWbemSink
'  oOutParams - объект
'  oContext 
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Sub Sink_OnObjectReady(oOutParams, oContext)
Dim StrLog,res,TmpStr,pos,inpos,q, Disk,CommandLineUC, ExecutablePathUC
Dim CntrlStrUC, ExecutableDiskUC 

 On Error Resume Next  
   CommandLineUC = UCase(oOutParams.TargetInstance.CommandLine)
   ExecutablePathUC = UCase(oOutParams.TargetInstance.ExecutablePath)
   CntrlStrUC = UCase(CntrlStr)
   ExecutableDiskUC = Left(ExecutablePathUC,InStr(3,ExecutablePathUC,"\")) 
   if InStr(CntrlStrUC,ExecutableDiskUC) = 0 then
     oOutParams.TargetInstance.Terminate()
   End If 

    If Err.Number<>0 Then  
'Объект процесса не ответил
    End If
 On Error Goto 0

End Sub 'Sink_OnObjectReady(oOutParams, oContext)