Desative o serviço para uma conta de usuário específica no Windows XP

Desative o serviço para uma conta de usuário específica no Windows XP

Como posso desabilitar um serviço no Windows XP para uma conta de usuário específica?

Tenho Tomcat e DB2 que estou usando como administrador, mas não preciso deles como usuário simples.

Além disso, como essa conta não tem privilégios em alguns arquivos, os serviços não iniciam e mostram erros irritantes repetidamente.

Tentei usar services.msc, mas essas configurações parecem ser globais e não consigo alterá-las em uma conta que não seja de administrador.

Responder1

Você não pode desabilitar serviços por usuário, pois os serviços são executados independentemente do usuário conectado. O melhor que você pode fazer é interromper o serviço automaticamente quando o usuário normal fizer login. Você pode fazer isso com um script em lote:

net stop <servicename>

Como o usuário provavelmente não tem permissão para interromper serviços, você desejará adicionar uma tarefa agendada, configurá-la para ser executada no logon do usuário especificado e para ser executada como administrador (ou outro usuário com privilégios suficientes).

Se houver vários usuários normais, você precisará adicionar esta tarefa agendada para todos eles e, provavelmente, uma que inicie os serviços para o administrador.

Para mais informações sobre net stope 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

Responder2

Você poderia levar uma das soluções acima um passo adiante. Gosto da ideia da tarefa agendada. Se você estiver confortável com VbScript (ou qualquer linguagem de programação), você pode escrever um script para identificar quem está logado e então usar o "net stop" dependendo se eles estavam no grupo de administradores (ou como um método rápido, mas menos flexível maneira que você poderia dizer se eles não são sua conta de usuário).

Aqui está um rascunho de um script que acabei de copiar e colar e que provavelmente funcionaria:

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

Responder3

Os serviços abrangem toda a máquina. Não há noção de qual usuário está atualmente conectado à estação de trabalho em relação aos serviços. Acredito que o Tomcat pode ser iniciado no perfil de um usuário (como em... um atalho pode ser usado para iniciar o processo em execução)... mas duvido que o DB2 funcione no espaço do usuário.

Responder4

Não é possível interromper os serviços de acordo com a base de usuários. Os serviços são a parte do sistema operacional em execução que mais necessita e os programas também utilizam os serviços de que necessitam no momento do lançamento. Você só pode interromper os serviços que estão sendo executados por você manualmente, não a partir do sistema, mas se você tentar interromper o serviço exigido pelo sistema, ele não permitirá que você faça isso e, a propósito, isso acontecerá em qualquer caso, o sistema operacional travará.

Os serviços são como os membros do corpo que podem parar por um certo tempo, mas quando você precisar, você terá que ativar essa parte do corpo e há muitas coisas que você não pode controlar, como os batimentos cardíacos. Depende do sistema quantos e quais serviços ele precisa para executar.

informação relacionada