@virty90
20 лет, программист C#

Как убрать возможность у пользователя закрывать программу?

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

Код задачи
<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
  <RegistrationInfo>
    <Date>2015-01-27T18:30:34</Date>
    <Author>Pete</Author>
  </RegistrationInfo>
  <Triggers>
    <LogonTrigger>
      <StartBoundary>2015-01-27T18:30:00</StartBoundary>
      <Enabled>true</Enabled>
    </LogonTrigger>
  </Triggers>
  <Principals>
    <Principal id="Author">
      <UserId>WIN-H9OUVR61LNP\testUser</UserId>
      <LogonType>InteractiveToken</LogonType>
      <RunLevel>HighestAvailable</RunLevel>
    </Principal>
  </Principals>
  <Settings>
    <MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
    <DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>
    <StopIfGoingOnBatteries>false</StopIfGoingOnBatteries>
    <AllowHardTerminate>true</AllowHardTerminate>
    <StartWhenAvailable>false</StartWhenAvailable>
    <RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
    <IdleSettings>
      <StopOnIdleEnd>true</StopOnIdleEnd>
      <RestartOnIdle>false</RestartOnIdle>
    </IdleSettings>
    <AllowStartOnDemand>true</AllowStartOnDemand>
    <Enabled>true</Enabled>
    <Hidden>false</Hidden>
    <RunOnlyIfIdle>false</RunOnlyIfIdle>
    <WakeToRun>false</WakeToRun>
    <ExecutionTimeLimit>PT0S</ExecutionTimeLimit>
    <Priority>7</Priority>
  </Settings>
  <Actions Context="Author">
    <Exec>
      <Command>"c:\Users\user\Documents\Visual Studio 2012\Projects\WorkersController\WorkersController\bin\Debug\WorkersController.exe"</Command>
    </Exec>
  </Actions>
</Task>


Разве что задача запускается из-под текущего пользователя testUser(обычный пользователь), по другому программа просто не запускалась.

Ну и эту программу пользователь спокойно убивает в диспетчере задач. Даже если зайти за учетку пользователя и запустить её от имени администратора (shift+rClick->Запустить от имени другого пользователя) мою программу, то пользователь всё равно может убить процесс.

Я не хочу отбирать у пользователя возможность вызывать диспетчер задач, блокировать нажатия alt+f4 перехватывать системые вызовы итд... итп... Можно ли "по простому" запретить пользователю закрывать программы ?
  • Вопрос задан
  • 975 просмотров
Решения вопроса 1
@res2001
Developer, ex-admin
В шедулер проверку каждую минуту на запущенность нужного приложения, если не запущено - запускает. В итоге пользователь в конце концов устанет убивать процесс. Естественно, у пользователя не должно быть прав удалить задание в шедулере.
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
AdmAlexus
@AdmAlexus
Эникей очень широкого профиля
А не пробовали стартовать программу как сервис (службу)?
Как это сделать - описано например здесь.
Ответ написан
shalaev
@shalaev
Есть ПРОГРАММА и windows
Хочется разрешить пользователю работать с программой, но запретить ее закрывать.
Можно ли это сделать и как???

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

bash.im/quote/1845
Ответ написан
saboteur_kiev
@saboteur_kiev Куратор тега Системное администрирование
software engineer
С административными правами, пользователь может убить практически любой процесс.
Сделайте пользователя без административных прав, и он не сможет убивать чужие процессы.
Можно вообще зарезать пользователю права, огородив его от возможностей устанавливать посторонний софт или запускать неразрешенные вещи. Но не администратору.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы