Сценарий выхода из системы на службах удаленного рабочего стола

У меня есть Службы удаленного рабочего стола, работающие на Сервере 2 012 R2. Мои настройки тайм-аута были установлены закончить сессию, 60-минутную после разъединения. Это хорошо для всех пользователей кроме одного: сессия Того пользователя должна быть закончена, как только он разъединяется. Я не могу создать другой набор, потому что у меня нет второго хоста сессии.

Я решил создать супер простой пакетный файл, который вынудит пользователя выйти из системы, такие как это:

@ECHO off
logoff f

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

Затем я создал powershell сценарий, такой как это:

If (-NOT ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator"))

{   
$arguments = "& '" + $myinvocation.mycommand.definition + "'"
Start-Process powershell -Verb runAs -ArgumentList $arguments
Break
}
import-module RemoteDesktop
$name = [Environment]::Username
$session = get-rdusersession | Where-Object -Filter {$_.username -eq $name}
Invoke-RDUserLogoff -UnifiedSessionID $session.SessionID -HostServer $session.HostServer -Force

Снова, это требует прав администратора и не будет работать также. Это работает на администраторов, но, ни на обычных пользователей.

У кого-либо есть идея, как я могу выполнить это?

2
задан 14 January 2015 в 20:48
2 ответа

Все оказалось намного проще, чем я думал. Простое использование и публикация "logoff.exe" под sys32 выполняет ту же работу без сложных разрешений.

1
ответ дан 3 December 2019 в 12:49

Не могли бы вы добавить это в планировщик задач с повышенными привилегиями и затем выполнить его при необходимости? Используйте идентификатор события, который запускается, когда пользователь отключается от служб Term для запуска вашего скрипта. Это должно выполняться после их отключения, и поскольку вы можете предоставить учетные данные администратора для задачи, она должна выполняться без запуска запроса UAC.

Не уверен, что это за идентификатор события, но я уверен, что в журналах есть что-то, что записывает это, но вам, возможно, придется включить ведение журнала ..

0
ответ дан 3 December 2019 в 12:49

Теги

Похожие вопросы