Назад | Перейти на главную страницу

Тихо запускать командный файл при входе в систему на удаленном рабочем столе

В нашем офисе мы используем машины с тонкими клиентами Linux, они работают очень хорошо, за исключением отсутствия IE, что является проблемой, потому что корпорации, с которыми мы имеем дело, слишком глупы, чтобы обновлять свои веб-приложения (пожалуйста, никаких пламенных войн).

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

Хотя у меня есть @echo off и окно cmd ничего не отображает, мне бы очень хотелось, чтобы этот командный файл выполнялся беззвучно, чтобы окно cmd вообще не отображалось.

Это возможно?

Клиент терминального сервера Ubuntu имеет возможность запускать файл / приложение при входе в систему, есть ли команда, которую я могу использовать для автоматического запуска этого пакета.

Я пробовал это:

C:\my_batch.bat /NOCONSOLE
C:\my_batch.bat /NOWINDOW
C:\my_batch.bat /B
C:\my_batch.bat /Q

... безуспешно, возможно, я так делаю?

Ура :-)

редактировать

Платформа удаленного рабочего стола - это машина с Windows XP, ничего особенного, кроме установки Windows Server.

Вместо использования пакетного файла почему бы вам не создать групповую политику, которая заставляет оболочку пользователя быть Internet Explorer. Это должно привести к желаемому поведению без каких-либо скриптов.

конфигурация пользователя -> административные шаблоны-> система -> пользовательский интерфейс

Другой альтернативой было бы создать vbscript и использовать его через хост сценариев Windows вместо командного файла. Скрипты, запущенные с помощью wscript, не будут создавать новое окно. Что делает ваш командный файл? Его должно быть достаточно просто преобразовать в WSH.

Может попробовать

start /b my_batch.bat

параметр / b используется для

Start application without creating a new window. The
application has ^C handling ignored. Unless the application
enables ^C processing, ^Break is the only way to interrupt
the application

Вы не можете запустить скрытый пакетный скрипт, если запустите его таким образом. Но это возможно с небольшим VBS.

Просто запустите файл VBS, и он запустит скрытый скрипт

Dim oShell
Set oShell = WScript.CreateObject ("WScript.Shell")
oShell.run "cmd /C C:\my_batch.bat",0,false
Set oShell = Nothing

См. Эту статью msdn: http://msdn.microsoft.com/en-us/library/d5fk67ky%28VS.85%29.aspx

Если вы не возражаете против выполнения командного файла всякий раз, когда какой-либо пользователь входит в систему (то есть через службы терминала или локально), то:

  1. Сохраните файл .cmd в месте, где все пользователи имеют доступ только для чтения. (например,% WINDIR%)
  2. Запустите gpedit.msc из командной строки
  3. Перейдите в раздел Пользователь> Безопасность> Сценарии> Вход в систему.
  4. Добавьте новый скрипт и укажите его место, где вы сохранили файл .cmd.

Сценарий должен работать в автоматическом режиме, без отображения окна командной строки.

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

Приложение удаленного рабочего стола фактически использует указанный командный файл в качестве альтернативной оболочки, и я не думаю, что параметры можно передавать с помощью этого метода.

Поэтому мне придется жить с моим окном консоли.