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

1

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

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

Além disso, como essa conta não tem privilégios em alguns arquivos, os serviços não estão iniciando e mostrando erros incômodos repetidamente.

Eu tentei usar o services.msc, mas essas configurações parecem ser globais e não posso alterá-las da conta não administrativa.

    
por celicni 09.05.2012 / 14:54

4 respostas

2

Você não pode desativar serviços por usuário, já que os serviços são executados independentemente do usuário conectado. O melhor que você pode fazer é parar o serviço automaticamente quando o usuário normal faz o 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 os serviços, você deverá 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 essa tarefa agendada para todos eles e, provavelmente, um que inicie os serviços para o administrador.

Para obter mais informações sobre net stop e net start :
link
link

    
por 09.05.2012 / 15:06
2

Você poderia levar uma das soluções acima um passo adiante. Eu gosto da ideia da tarefa agendada. Se você está confortável com o VbScript (ou qualquer outra linguagem de programação), você pode escrever um script para identificar quem está logado e "shell net" dependendo se eles estavam no grupo de administradores (ou como um 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 esboço de um script que copiei e colei 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
    
por 09.05.2012 / 19:59
1

Os serviços são de toda a máquina. Não há nenhum conceito de qual usuário está atualmente conectado à estação de trabalho com relação aos serviços. Acredito que o Tomcat pode ser iniciado sob o 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.

    
por 09.05.2012 / 15:02
1

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 necessário e os programas também usam os serviços no momento do lançamento que eles precisam. Você só pode parar os serviços que estão sendo executados manualmente por você, mas não pelo sistema, mas se você tentar interromper o serviço que é exigido pelo sistema, ele não permitirá que você o faça e, da forma como isso acontece, em qualquer caso, o sistema operacional falhará.

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

    
por 09.05.2012 / 15:42