2017-11-24 4 views
0

"NonAdmin"사용자에게 "Task Scheduler"에 대한 일부 사용 권한을 부여하려고합니다.Subinacl : Schedule - OpenService 오류 : 5 액세스가 거부되었습니다.

이 명령을 실행하면 :

PS > C:\Windows\System32\sc.exe queryex type= service state=all 

당신은 "작업 스케줄러"서비스 이름 "스케줄러"는 것을 찾을 수 있습니다

SERVICE_NAME: Schedule 
DISPLAY_NAME: Task Scheduler 

가 그럼 난 기존 권한을 표시하는 간단한 명령을 실행하려고 :

PS >.\subinacl.exe /Service Schedule /display=dacl 

어떤 권한을 부여하는 시도 :

PS >.\subinacl.exe /Service Schedule /grant=NonAdmin=R 

그러나 두 명령은 액세스가 거부되었습니다 던지고있다 :

Schedule - OpenService Error : 5 Access is denied. 


Elapsed Time: 00 00:00:00 
Done:  1, Modified  0, Failed  1, Syntax errors  0 
Last Done : Schedule 
Last Failed: Schedule - OpenService Error : 5 Access is denied. 

내 환경 : OS : 윈도우 8.1 기업; 작업 그룹 : 도메인에 연결됨 (도메인에 연결되지 않은 VM에서도 시도 됨 - 동일한 액세스가 거부 됨); 저는 관리자입니다. PowerShell을 관리자 권한으로 실행합니다.

이 "액세스 거부"문제를 해결하고 "작업 스케줄러"의 NonAdmin 사용자에게 몇 가지 권한을 부여 할 수 있습니까? 내가 사용에 대한 권한, 그는 이제 새로운 예약 된 작업을 만들 수 있습니다 준 RbMm 도움으로

:

은 28/11/2017 업데이트되었습니다. 생성 된 작업을 삭제/제거 할 수 없다는 문제가 하나 남았습니다. I 사용자에 대한 모든 대부분의 모든 보조금을 제공 :

"(A;;GAGRGWGXRCSDCCDCLCSWRPWPDTLOCRSDRCFAFRFWFX;;;<USER_SID>)" 

하지만 난 여전히 시도 제거/예약 된 작업을 삭제하려면이 오류 얻을 :

The error returned is: Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED)) 

주 :

  • 이것은 도메인 사용자입니다.
  • 해당 사용자에 대해 % windir % \ Tasks에 대한 사용 권한을 부여하려했지만 도움이되지 않았습니다.

내가 누락 된 이유는 사용자가 작업을 삭제할 수없는 이유는 무엇입니까?

+1

이것은'READ_CONTROL | WRITE_DAC' 액세스로 열린 서비스가 아닌'subinacl.exe'의 버그입니다. 그 결과로 접근이 거부되면'GENERIC_ALL | ACCESS_SYSTEM_SECURITY'으로 열어보십시오. Winapi를 사용하여이 작업을 직접 구현할 수 있습니다 – RbMm

+0

"winapi"-> sc 명령을 사용하면 무엇을 의미합니까? 버그를 MS에보고하는 방법, 그들이 고칠 수있다. :) 그러나 2012 년에 마지막으로 업데이트 된 것을 보았습니다. 수정되지 않기를 희망합니다. – Drasius

+0

프로그래머로서이 일을 직접하는 것입니다. 'OpenService','QueryServiceObjectSecurity','SetServiceObjectSecurity','CloseServiceHandle'를 호출하십시오. 'subinacl.exe'에 문제가있어서'GENERIC_ALL' 액세스 권한으로 오픈 서비스를 시도합니다. 그러나'schedule'은 admin에 대한 모든 권한을 부여하지 않습니다 - 결과와 액세스가 거부되었습니다. – RbMm

답변

1

schedule 보안 설명자에 대해 sc sdshow schedule 명령을 사용할 수 있습니다.기본적으로는 D:(A;;CCLCSWLORC;;;AU)(A;;CCLCSWRPDTLOCRRCWDWO;;;BA)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;SY)(A;;CCLCSWLORC;;;BU)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)처럼이 평균 문자열을 반환 : 관리자이 서비스에 대한 모든 권한을 가지고 있지

T FL AcessMsK Sid 
A 00 0002008D S-1-5-11 'Authenticated Users' 
A 00 000E01DD S-1-5-32-544 'Administrators' 
A 00 000F01FF S-1-5-18 'SYSTEM' 
A 00 0002008D S-1-5-32-545 'Users' 

참고 있음을 만 E01DD 우리가 예를 sc sdset schedule D:(A;;CCLCSWLORC;;;AU)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BU)

에 사용할 수있는 변화에 대한

(DELETE|SERVICE_STOP|SERVICE_CHANGE_CONFIG이 없습니다)

이 평균 다음 액세스 :

T FL AcessMsK Sid 
A 00 0002008D S-1-5-11 'Authenticated Users' 
A 00 000F01FF S-1-5-32-544 'Administrators' 
A 00 000F01FF S-1-5-18 'SYSTEM' 
A 00 000F01FF S-1-5-32-545 'Users' 

다른 액세스 조합을 원할 경우 사용자, 관리자 및 시스템에 전체 액세스 권한이 부여됩니다 (F01FF). Security Descriptor String Format

+0

마지막으로이 문자열을 이해해 주셔서 감사합니다. 언뜻보기에 그것은 깊은 숲입니다. 그래서 우리는 "subinacl"을 사용합니다. 이 링크는 ACE 문자열 값을 설명합니다. https://msdn.microsoft.com/en-us/library/windows/desktop/aa374928(v=vs.85).aspx – Drasius

+0

하나의 문제가 남아 있습니다. 나는 모든 사용자에게 모든 권한을 부여합니다 "(A ;; GAGRGWGXRCSDCCDCLCSWRPWPDTLOCRSDRCFAFRFWFX ;;; )"하지만 여전히 "반환 된 오류 : 액세스가 거부되었습니다 (HRESULT의 예외 : 0x80070005 (E_ACCESSDENIED))"오류가 발생했습니다. 예약 된 작업을 삭제/제거합니다. – Drasius

+0

@Drasius - 이것은 ** 서비스 ** 자체에 대한 액세스입니다. 그것은 당신이 서비스를 열거 나 열지 못하게한다. 그것을 변경하십시오. 이 sid를 설정하면 서비스 중지를 말할 수 있습니다. 시작 유형을 변경하십시오. ** 예약 된 작업 ** 이것은 절대적인 것입니다. ** 서비스 액세스와 별도 ** 있습니다. 이를 위해 [IRegisteredTask :: SetSecurityDescriptor] (https://msdn.microsoft.com/en-us/library/windows/desktop/aa380769 (v = vs.85) .aspx)를 사용해야합니다. 실제 작업은 파일입니다.이 파일에 DACL을 설정해야합니다. – RbMm

관련 문제