2017-11-24 6 views
0

Ich versuche, einige Berechtigungen für "NonAdmin" Benutzer für "Taskplaner" zu gewähren.Subinacl: Zeitplan - OpenService Fehler: 5 Zugriff verweigert

Wenn Sie diesen Befehl ausführen:

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

können Sie feststellen, dass „Task Scheduler“ Dienstname ist „Scheduler“:

SERVICE_NAME: Schedule 
DISPLAY_NAME: Task Scheduler 

Dann habe ich versucht, einfach Befehl auszuführen bestehenden Rechte anzuzeigen :

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

versucht, einige Rechte zu gewähren:

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

Aber beide Befehle werfen Zugriff verweigert wird:

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. 

Meine Umgebung: OS: Windows 8.1 Unternehmen; Arbeitsgruppe: Verbindung zur Domäne (auch auf VM versucht, die nicht mit Domäne verbunden ist - gleicher Zugriff verweigert); Ich bin Administrator; Ich führe PowerShell als Administrator aus.

Wie kann ich diese "Zugriff verweigert" Probleme lösen und einige Rechte für NonAdmin Benutzer für den "Taskplaner" gewähren?

28/11/2017 Aktualisiert:

Mit rbmm Hilfe, die ich Berechtigungen für die Verwendung gab, kann er jetzt neue geplante Aufgabe erstellen. Ein Problem ist, dass er die erstellte Aufgabe nicht löschen/entfernen kann. ich damit alle die meisten alle Zuschüsse für den Benutzer:

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

Aber ich immer noch diese Fehlermeldung erhalten, wenn versuchen, geplante Aufgabe zu löschen/entfernen:

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

Hinweise:

  • Dies ist Domänenbenutzer.
  • Ich habe versucht, Berechtigungen für die % windir% \ Tasks für diesen Benutzer zu erteilen, aber es hat nicht geholfen.

Was ich vermisse, warum Benutzer Aufgabe nicht löschen kann?

+1

aussehen dieser Fehler in 'subinacl.exe' ist - statt offener Dienst mit' READ_CONTROL | WRITE_DAC' Zugang, es Versuchen Sie es mit 'GENERIC_ALL | ACCESS_SYSTEM_SECURITY' zu öffnen, da der Zugriff verweigert wurde. möglich, diese Aufgabe selbst mit winapi zu implementieren – RbMm

+0

Was meinst du mit "winapi" -> sc Befehl? Ein wie Fehler zu MS zu melden, dass sie es beheben :), aber ich sehe das letzte Mal es im Jahr 2012 aktualisiert wurde, so nicht viel Hoffnung, dass es behoben wird ... – Drasius

+0

ich meine, tun Sie dies selbst, als Programmierer. Rufen Sie also 'OpenSCManager',' OpenService', 'QueryServiceObjectSecurity',' SetServiceObjectSecurity', 'CloseServiceHandle' auf. Problem mit 'subinacl.exe', dass es versuchen, Service mit' GENERIC_ALL' Zugriffsrecht zu öffnen. aber 'schedule' gewährt dem Administrator keinen vollen Zugriff - als Ergebnis und Zugriff verweigert. – RbMm

Antwort

1

können Sie sc sdshow schedule Befehl für Ansicht schedule Sicherheitsbeschreibung verwenden.standardmäßig zurückgeben String wie D:(A;;CCLCSWLORC;;;AU)(A;;CCLCSWRPDTLOCRRCWDWO;;;BA)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;SY)(A;;CCLCSWLORC;;;BU)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD) diesen Mittelwert:

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' 

beachten Sie, dass Administrator keinen vollen Zugriff auf diesen Dienst haben, nur E01DD (haben nicht DELETE|SERVICE_STOP|SERVICE_CHANGE_CONFIG)

für Veränderungen können wir zum Beispiel verwenden sc sdset schedule D:(A;;CCLCSWLORC;;;AU)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BU)

dieses Mittel nächsten Zugang:

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' 

, so dass Benutzer, Administratoren und SYSTEM haben vollen Zugriff (F01FF), wenn Sie einen anderen Zugang Kombination wollen - Security Descriptor String Format

+0

Danke endlich verstanden diese Zeichenfolgen. Auf den ersten Blick ist es ein tiefer Wald, deshalb verwenden wir "subinacl". Dieser Link erklärt ACE String-Werte: https://msdn.microsoft.com/en-us/library/windows/desktop/aa374928(v=vs.85).aspx – Drasius

+0

Ich habe ein Problem verlassen. Ich gebe dem Benutzer die meisten Rechte. "(A ;;;;;;;;;;;;;;;;;;;;;;;;; )", aber ich bekomme immer noch "Der Fehler ist: Zugriff verweigert. (Ausnahme von HRESULT: 0x80070005 (E_ACCESSDENIED))" Fehler beim Versuch geplante Aufgabe löschen/entfernen – Drasius

+0

@Drasius - dies ist der Zugang zum ** Service ** selbst. es lässt (oder nicht) Sie den Dienst öffnen/starten/stoppen. ändere es config. Wenn Sie diese sid - Sie können sagen, Service stoppen. ändere den Starttyp. aber ** geplante Aufgabe ** das ist absolut ein anderes. Es hat ** separate ** vom Service-Zugang. Sie müssen dafür [IRegisteredTask :: SetSecurityDescriptor] (https://msdn.microsoft.com/en-us/library/windows/desktop/aa380769 (v = vs.85) .aspx) verwenden. wirklich Aufgabe ist Datei - muss DACL für diese Datei setzen – RbMm

Verwandte Themen