Windows Terminal Server 2008 이상에서 작업을 예약하고 10 분마다 실행하고 "outlook.exe"와 같은 일부 프로세스를 종료합니다. 그러나이 작업 만 수행하면됩니다. 다른 TerminalServer에서 연결하는 사용자 (모든 사용자가 동일한 클라이언트 이름을 가짐 - 사용자 쉘이 자체 컴퓨터에서 Outlook 사용 - homeoffice에서 연결하는 사용자로 인해 Outlook을 설치해야 함).Windows TS : 클라이언트 이름이 XYZ 인 사용자의 작업을 종료합니다.
taskmanager는 사용자 이름, 프로세스 및 클라이언트 이름을 표시합니다.
이 작은 코드는 모든
strComputer에 = 로그온 한 사용자 목록에 잘 작동 "." objWMI = GetObject를 ("winmgmts를 :"_ & "{impersonationLevel = 가장 할}는 \!"_ & strComputer에 & "\ 루트 \ cimv2를")를 설정
설정 colSessions = objWMI.ExecQuery _ ("선택 *에서 Win32_LogonSession 어디 로그온 유형 = 10 ")
하면 0 그리고 에코 = colSessions.Count"대화 형 사용자가 RDP 세션을 " 다른 에코"를 찾을 수 없습니다 : "각 objSession를 들어 colSessions 설정 colList = objWMI.ExecQuery (에"의 ASSOCIATORS " _ & "{Win32_LogonSession.LogonId ="colList 에코의 각 objItem를 들어objSession.LogonId & "}"_ & "어디 AssocClass = Win32_LoggedOnUser 역할 = 종속") "사용자 이름 :"& objItem.Name & "하면 FullName"& objItem.FullName 다음 다음 끝
사용자가 얻을 수 있다면 자신의 클라이언트 이름은
설정 objShell = CreateObject를 ("WScript.Shell") ClientComp =여기처럼 보여objShell.ExpandEnvironmentStrings ("% clientname %")
하지만 모든 사용자가 자신의 vbs를 영구히 열지 않게하고 싶습니다. 작업은 관리자 우선 순위로 예약해야합니다. vbs와 WMI를 사용하여 이것을 실현할 수있는 방법이 없을 것 같습니다. 누군가 당신에게 힌트를주십시오.
관리자 사용자와 함께 작업을 예약해야하는 특별한 이유가 있습니까? 설명 된 동작에 대해 사용자 권한으로 실행하면 각 사용자가 자신의 시각을 잃을 수 있습니다. 또한 gpos를 사용하면 특정 사용자가 항상 10 분을 부여하는 대신 exe를 실행하도록 거부함으로써 모든 것을 막을 수 있습니다. 많은 사람들이 다시 Outlook을 다시 열어 줄 것을 기대합니다 – Syberdoor
내 의도는 오직 하나의 스크립트 만 실행해야한다는 것입니다. 시스템 우선 순위로 실행할 수 있습니다. 일부 사용자는 - homeoffice와 다른 TS에서 연결하기 때문에 사용자 기반이 불가능합니다. 홈 오피스는 전망과 다른 사람들을 사용해서는 안됩니다. 그들이 시간 제한보다 다시 Outlook을 열면 예를 들어 3 분이므로 TS에 Outlook을 사용하는 것이 중요합니다. – whowhywhere
예, 사용자 권한으로 실행하지만 클라이언트 이름은 계속 확인합니다. 여러 스크립트가 동시에 실행되는 것은 좋지만 성능이 많이 떨어지는 것은 아닙니다. Win32_environment가 휘발성이기 때문에 클라이언트 이름을 포함하지 않는 것처럼 보이기 때문에 불행히도 wmi 쿼리로 내 아이디어를 발견했으며 applocker gpo도 작동하지 않습니다. 그래서 어떤 종류의 로그온 스크립트가 필요합니다. 어쨌든 – Syberdoor