Я пытаюсь запустить C: \ Windows \ System32 \ logoff.exe на локальный компьютер из веб-приложения ASP.NET для выхода из локального пользователя с сеанса служб терминалов.
Вот то, что я до сих пор:
C#
protected void btnContinueClick(Object sender,
EventArgs e)
{
StringBuilder sb = new StringBuilder();
sb.Append("WshShell = new ActiveXObject('WScript.Shell');\n");
sb.Append(@"WshShell.Run('C:\\Windows\\System32\\Logoff.exe " + intSessionID + " /SERVER:" + strServer + "', 1, false);");
ScriptManager.RegisterStartupScript(Page, GetType(), "RestartSession", sb.ToString(), true);
Запуск выше меню F12 в IE открытым, показывает сценарий будет добавлен в мой HTML успешно:
HTML
<script type="text/javascript">
//<![CDATA[
WshShell = new ActiveXObject('WScript.Shell');
WshShell.Run('C:\\Windows\\System32\\Logoff.exe', 1, false);//]]>
</script>
</form>
</body>
Однако, когда Run (...) линии выполняется я получаю следующее сообщение об ошибке в IE:
Error: WshShell.Run() Wrong number of arguments or invalid property assignment
То, что я пробовал:
- Снятие "1, ложь" необязательно arguments = та же ошибка.
- Перемещение '' так, что строка читает (не знаю, что правильно):
sb.Append(@"WshShell.Run('C:\\Windows\\System32\\Logoff.exe " + intSessionID + " /SERVER:" + strServer + ", 1, false);'");
= та же ошибка. - Вызов файла .bat с командой выхода из системы. (Бат действительно запускается, но я получаю новую ошибку:
"logoff is not recognized as an internal or external command, operable program or batch file"
. Очень похож на Call logoff in Ant script. - Также менялись символы эскадрона вокруг как можно большего количества комбинаций, о которых я могу думать, поэтому я не думаю, что это так.
- Выполнение команды непосредственно из окна CMD ли предполагаемая работа.
Пожалуйста, помогите!
Любые подходящие альтернативные способы выхода из служб терминалов сеанса пользователя из внутреннего веб-приложение Intranet также будет оценен!
'Logoff' нуждается в некоторых параметрах? – Teemu
Мой план состоял в том, чтобы заменить строку: 'sb.Append (@" WshShell.Run ('C: \\ Windows \\ System32 \\ Выход.exe "+ intSessionID +"/SERVER: "+ strServer +", 1, false '); ");' однако это создает ту же ошибку. intSessionID и strServer являются правильными значениями для идентификатора сеанса служб терминалов и имени хоста сервера. –
Отредактировано вопрос, чтобы показать эти параметры, поскольку я думаю, что они будут необходимы при работе с веб-сервера. –