Deshabilite el servicio para una cuenta de usuario específica en Windows XP

Deshabilite el servicio para una cuenta de usuario específica en Windows XP

¿Cómo puedo desactivar un servicio en Windows XP para una cuenta de usuario específica?

Tengo Tomcat y DB2 que uso como administrador, pero no los necesito como usuario simple.

Además, dado que esa cuenta no tiene privilegios sobre algunos archivos, los servicios no se inician y muestran errores molestos repetidamente.

Intenté usar services.msc, pero esas configuraciones parecen ser globales y no puedo cambiarlas desde una cuenta que no es de administrador.

Respuesta1

No puede deshabilitar los servicios por usuario, ya que los servicios se ejecutan independientemente del usuario que inició sesión. Lo mejor que puedes hacer es detener el servicio automáticamente cuando el usuario normal inicia sesión. Puedes hacer esto con un script por lotes:

net stop <servicename>

Dado que el usuario probablemente no tenga permiso para detener los servicios, querrá agregar una tarea programada, configurarla para que se ejecute en el inicio de sesión del usuario especificado y para ejecutarla como administrador (u otro usuario con privilegios suficientes).

Si hay varios usuarios normales, deberá agregar esta tarea programada para todos ellos y luego probablemente una que inicie los servicios para el administrador.

Para más información sobre net stopy 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

Respuesta2

Podrías llevar una de las soluciones anteriores un paso más allá. Me gusta la idea de la tarea programada. Si se siente cómodo con VbScript (o con cualquier lenguaje de programación), puede escribir un script para identificar quién ha iniciado sesión y luego enviar la "parada de red" dependiendo de si estaban en el grupo de administradores (o como una solución rápida pero menos flexible). forma en que podría decir si no son su cuenta de usuario).

Aquí hay un borrador de un guión que acabo de copiar y pegar y que probablemente funcionaría:

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

Respuesta3

Los servicios abarcan toda la máquina. No existe ningún concepto de qué usuario está actualmente conectado a la estación de trabajo con respecto a los servicios. Creo que Tomcat se puede iniciar con el perfil de un usuario (como en... es posible que se pueda usar un acceso directo para iniciar la ejecución del proceso)... pero dudo que DB2 funcione en el espacio de usuario.

Respuesta4

No es posible detener los servicios según la base de usuarios. Los servicios son la parte del sistema operativo en ejecución que más requiere y los programas también utilizan los servicios en el momento del lanzamiento que necesitan. Solo puede detener los servicios que usted ejecuta manualmente, no desde el sistema, pero si intenta detener el servicio requerido por el sistema, no le permitirá hacerlo y, por cierto, en cualquier caso, el sistema operativo fallará.

Los servicios son como las extremidades del cuerpo que pueden detenerse por un tiempo determinado, pero cuando los necesita, debe activar esa parte del cuerpo y, dado que hay muchas cosas que no puede controlar, como los latidos del corazón. Depende del sistema cuántos y qué servicios necesita ejecutar.

información relacionada