1

Как отключить службу в Windows XP для определенной учетной записи пользователя?

У меня есть Tomcat и DB2, которые я использую как администратор, но мне они не нужны как обычный пользователь.

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

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

4 ответа4

2

Вы могли бы сделать одно из вышеупомянутых решений на шаг дальше. Мне нравится идея запланированного задания. Если вы знакомы с VbScript (или любым другим языком программирования на самом деле), вы можете написать сценарий, чтобы определить, кто вошел в систему, а затем обработать "net stop" в зависимости от того, были ли они в группе администраторов (или как быстрый, но менее гибкий). как вы могли бы сказать, если они не ваша учетная запись пользователя).

Вот черновик сценария, который я только что скопировал и вставил вместе, который, вероятно, сработает:

Dim objNetwork
Set objNetwork = CreateObject("WScript.Network")

If objNetwork.UserName <> "YourAccountUsername" Then
    ' If they're not you, send the shell command to stop the service.
    Dim objShell
    Set objShell = WScript.CreateObject("WScript.Shell")     
    objResult = objShell.Run("net stop <service name>", 1, True) 
End If
2

Вы не можете отключить службы для каждого пользователя, поскольку службы работают независимо от пользователя, вошедшего в систему. Лучшее, что вы можете сделать, - это автоматически останавливать службу при входе обычного пользователя. Вы можете сделать это с помощью пакетного скрипта:

net stop <servicename>

Поскольку пользователь, вероятно, не имеет разрешения на остановку служб, вам нужно добавить запланированное задание, настроить его на выполнение при входе в систему указанного пользователя и запуск в качестве администратора (или другого пользователя с достаточными привилегиями).

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

Для получения дополнительной информации о net stop и net start:
http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/net_stop.mspx?mfr=true
http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/net_start.mspx?mfr=true

1

Невозможно остановить услуги в соответствии с пользовательской базой. Сервисы являются частью работающей ОС, которая требовала больше всего, и программы также используют сервисы во время запуска, в которых они нуждаются. Вы можете остановить только те службы, которые запускаются вами вручную, но не из системы, но если вы попытаетесь остановить службу, требуемую системой, она не позволит вам это сделать, и, кстати, это произойдет в любом случае, если ОС рухнет.

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

1

Услуги общесистемные. Нет никакого понятия о том, какой пользователь в настоящее время вошел в рабочую станцию относительно услуг. Я полагаю, что Tomcat можно запустить из профиля пользователя (как, например, ярлык можно использовать для запуска процесса) ... но я сомневаюсь, что DB2 будет работать в пространстве пользователя.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .