Windows XP에서 특정 사용자 계정에 대한 서비스 비활성화

Windows XP에서 특정 사용자 계정에 대한 서비스 비활성화

특정 사용자 계정에 대해 Windows XP에서 서비스를 비활성화하려면 어떻게 해야 합니까?

관리자로 사용하고 있는 Tomcat과 DB2가 있지만 일반 사용자에게는 필요하지 않습니다.

게다가 해당 계정에는 일부 파일에 대한 권한이 없기 때문에 서비스가 시작되지 않고 귀찮은 오류가 반복적으로 표시됩니다.

services.msc를 사용해 보았지만 해당 설정은 전역적인 것으로 보이며 관리자가 아닌 계정에서는 변경할 수 없습니다.

답변1

서비스는 로그인한 사용자와 독립적으로 실행되므로 사용자별로 서비스를 비활성화할 수 없습니다. 당신이 할 수 있는 최선의 방법은 일반 사용자가 로그인할 때 자동으로 서비스를 중지하는 것입니다. 배치 스크립트를 사용하여 이 작업을 수행할 수 있습니다.

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

답변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

답변3

서비스는 기계 전체에 적용됩니다. 서비스와 관련하여 현재 어떤 사용자가 워크스테이션에 로그인되어 있는지에 대한 개념은 없습니다. 나는 Tomcat이 사용자 프로필에서 시작될 수 있다고 믿습니다. (... 바로가기를 사용하여 프로세스 실행을 시작할 수 있습니다.) ... DB2가 사용자 공간에서 작동할지는 의문입니다.

답변4

사용자 기반에 따른 서비스 중단은 불가능합니다. 서비스는 실행 중인 OS에서 가장 많이 필요한 부분이며 프로그램은 시작 시 필요한 서비스를 사용합니다. 시스템이 아닌 수동으로 실행 중인 서비스만 중지할 수 있지만 시스템에서 요구하는 서비스를 중지하려고 하면 그렇게 할 수 없으며 어떤 경우에도 OS가 충돌하게 됩니다.

서비스는 특정 시간 동안 멈출 수 있는 신체의 팔다리와 같지만 필요할 때 신체의 해당 부분을 활성화해야 하며 심장 박동처럼 제어할 수 없는 것들이 많기 때문입니다. 실행해야 하는 서비스 수와 서비스 수는 시스템에 따라 다릅니다.

관련 정보