문제

예, 나는 이것을 구글 할 수 있지만 조금 게으르다. 다른 컴퓨터에서 Windows 서비스를 원격으로 제어해야합니다. ServiceController 클래스가 이렇게 할 수 있습니까? 어떤 제한이 있습니까? "실행"세부 사항을 원격으로 시작 / 중지 / 변경 할 수 있습니까? 즉, 만료 될 예정인 암호를 변경합니까?

직장에서 사용자에게 ASP.NET 웹 사이트 대시 보드를 제공하여 자신의 계정으로 로컬 컴퓨터에서 실행되는 여러 서비스를 제어하려고합니다 (그들은 모두 기계의 로컬 관리자). 이것은 다른 기능과 통합되어 있으므로 로컬로 실행할 수있는 분배 가능을 만들려고하지 않습니다. Windows 인증을 사용하고 사용자를 가장하여 변경하여 변경합니다. 내가 이것에 빠질 가능성이 있다면 어떤 문제가 있습니까?

건배

도움이 되었습니까?

해결책

var sc = new ServiceController("servicename", "othermachinename");

코드를 실행하는 계정은 서비스와 상호 작용하기 위해 대상 컴퓨터에 대한 관리 권한이 필요합니다. 사칭이 효과가있을 것입니다. 나는 상당히 엄격하게 제어되는 상황에서만 이것을 사용했지만 (즉, 소스/대상 기계에서 동일한 자격 증명을 가진 사용자 계정에서 실행), 내 경험상 모든 작업은 예상대로 작동합니다.

서비스 자격 증명 등을 변경하려면 WMI를 사용해야합니다. 이는 ServiceController 클래스를 사용하는 것만 큼 쉽지 않습니다. 자세한 내용은 ManagementObject 클래스를 참조하십시오.

나는 찾았다 이 링크 이는 WMI를 사용하여 서비스 자격 증명을 변경하는 것을 설명합니다.

다른 팁

@madseb-

내가 말했듯이 다른 게시물:

c# 또는 vb.net을 사용하는 경우 WMI

그렇지 않으면, "SC"아마도 명령 줄 또는 .bat 파일에서 사용하기에 가장 적합한 도구 일 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top