이 가능성이 많은 사람들에게 매우 쉽지만, 나는이 일을 시간의 엄청난 양의 ... 낭비하고 잡았다은 분명 아니었다.
(SQL2012에서 테스트)
1 단계 : 실제로 SQL Server의 xp_cmdshell을 기능을 사용
USE master
Go
EXEC sp_configure 'show advanced options', 1
Go
RECONFIGURE
Go
EXEC sp_configure 'xp_cmdshell', 1
GO
RECONFIGURE
GO
EXEC sp_configure 'show advanced options', 0
Go
RECONFIGURE
Go
2 단계
: 도스 실행 "WHOAMI/모든"명령을 사용하여 xp_cmdshell을 우리의 두 서비스 중지 명령
EXEC xp_cmdshell 'whoami /all'
exec xp_cmdshell 'net stop MR2012ApplicationService';
exec xp_cmdshell 'net stop MR2012ProcessService';
다른 비트들 중에서도 "nt authority \ network service S-1-5-20"이라고 표시됩니다. 표시된 계정에 다시 시작할 서비스에 대한 권한이 있어야합니다. 다른 두 명령은 모두 서비스로 인해 권한 실패 중지하려고 시도 :
System error 5 has occurred.
Access is denied.
3 단계 : 같이 Subinacl를 사용하여, 우리는 시작하기 전에의이 서비스에 대한 사용 권한을 살펴 보자. 이것이 내가 문제가되는 곳이기 때문에 SUBINACL.exe에 대한 전체 경로를 확실히 알 수 있도록하십시오.
where SUBINACL
SUBINACL.exe /SERVICE MR2012ProcessService /DISPLAY
당신이 내가 가진 동일한 문제가 있다면, 당신은 당신이 이전에 "Windows Server 2003 리소스 키트 도구"(이것은 내 개발 기계) 추출 및 버전 4.0 수도 어디든지 같이 Subinacl의 경로가 표시됩니다. 1.1604. 즉, "NT authority \ network service"에 권한이없는 것을 관찰하십시오. 알았다? 알았다!
4 단계 : 이러한 권한을 부여합시다!
SUBINACL.exe /SERVICE MR2012ApplicationService /GRANT="nt authority\network service"=LQSTOP
SUBINACL.exe /SERVICE MR2012ProcessService /GRANT="nt authority\network service"=LQSTOP
5 단계 :이 두 명령의 출력에주의하십시오! 그들이 많이했던 것처럼 보이지 않습니까?
+SERVICE MR2012ApplicationService
/GRANT=nt authority\network service=LQSTOP
Elapsed Time: 00 00:00:00
Done: 0, Modified 0, Failed 0, Syntax errors 0
흠. 우리가 시작하기 전에 우리가 권한을 바라 보았다 글쎄, 이제 그들은 지금 어떤 모습인지 살펴 보자 :
SUBINACL.exe /SERVICE MR2012ProcessService /DISPLAY
글쎄, 그 절름발이입니다. 그것은 작동하지 않았다!글쎄요, 밝혀 졌을 때, 저는 모든 종류의 미친 사업을 시도하는 데 엄청난 시간을 낭비했습니다. 문제의 근원은 SUBINACL의 알려진 버그입니다!
6 단계 : \ 데브 \ 도구 : 이제 최신 버전을 가서 C에 설치하겠습니다
https://www.microsoft.com/en-us/download/details.aspx?id=23510
을 한 후의 다시 EXE 파일의 경로/버전을 확인하자, 설치합니다.
where SUBINACL
음, 같은 버전이지만 현재 SUBINACL.exe.old가 있습니다.
7 단계 : 해당 허가 부여를 다시 시도해 봅시다! 출력 결과는 다음과 같습니다.
MR2012ApplicationService : new ace for DOMAIN\MyProxyAccount
MR2012ApplicationService : 1 change(s)
Elapsed Time: 00 00:00:00
Done: 1, Modified 1, Failed 0, Syntax errors 0
Last Done : MR2012ApplicationService
주름이 하나 더 있습니다. 실행 계정은 SQL Server의 서비스 계정 (즉, NT 권한 \ 네트워크 서비스)이됩니다. 그러나 이것이 바람직하지 않은 경우 프록시를 설정할 수 있습니다.
8 단계 : 프록시 계정을 설정은 다음과 같이 설정해야합니다 :
EXEC sp_xp_cmdshell_proxy_account 'DOMAIN\MyProxyAccount', '[email protected]';
이 명확하게하기 위해이가 내, 그것이 어떻게 작동하는지 내 이해를 설정되지 않았습니다.
9 단계 : 물론,이 프록시 계정 권한을 가지고 있어야는 :
C:\Dev\Tools\SUBINACL.exe /SERVICE MR2012ApplicationService /GRANT=DOMAIN\MyProxyAccount=LQSTOP
C:\Dev\Tools\SUBINACL.exe /SERVICE MR2012ProcessService /GRANT=DOMAIN\MyProxyAccount=LQSTOP
또한, 서비스 계정은 로컬 정책에서 "일괄 작업으로 로그온"을해야합니다.
감사합니다,
스튜어트
나는 그 문서를 읽었으며 오류의 이유를 알고있다. 그러나 나는 그것을 운영하는 방법을 여전히 모른다. 나는 net을 사용한다. 사용자 그룹을 나열하는'cmd'의 'localgroup'을 사용합니다. 그리고 어떤 사용자가 관리자 그룹에 추가 할 지 모릅니다. 'net localgroup/add administrator username'을 사용합니다. – Dolphin