Aby umożliwość użytkownikowi zatrzymanie, uruchomienie lub restart danej usługi nalezy mu nadać uprawnienia do tej usługi. Domyślnie „zwykły” użytkownik nie ma uprawnień do zatrzymania czy uruchomienia usługi. Możemy to jednak zmienić nadając mu uprawnienia do danej usługi. Do zmiany uprawnień można skorzystać z programu subinacl. Można go pobrać ze strony Microsoft lub z mojej strony
W pierwszej kolejności musimy znać nazwę użytkownika lub grupę uzytkowników dla której chcemy zmienić uprawnienia. Po drugie potrzebna jest nazwa usługi. Operować musimy oczywiście anglojęzycznymi nazwami usług. Aby sprawdzić jaką nazwę ma dana usługa uruchamiamy menedżera usług (polecenie services.msc) wchodzimy w jej właściwości i na karcie ogólne w polu „Nazwa usługi” mamy podaną nazwę usługi. W menedżerze usług usługi wyświetlane są pod nazwą zawartą w polu „Nazwa wyświetlana„. Poniżej przykład dla bufora wydruku (spooler)
Drugim problemem jaki pojawia się w polskojęzycznym systemie Windows jest kodowanie polskich znaków diakrycznych. Nie ma problemu jeśli polecenie wpisujemy ręcznie w wierszu poleceń, ale w przypadku gdy przygotowujemy jakiś plik wsadowy wtedy trzeba zastosować odpowiednie kodowanie. Aby się zabezpieczyć przed tym problemem zamiast stosowania zapisu w postaci Domena\NazwaUzytkownika możemy wykorzystać jego SID. z pomoca przychodzi Powershel. Wydajemy polecenie:
Get-ADGroup "użytkownicy domeny"
i w wyniku otrzymamy SID użytkownika.
Aby zmienić uprawnienia wydajemy polecenie (przykład dla usługi spooler):
subinacl.exe /service spooler /grant=”mojadomena\użykownicy domeny”
lub
subinacl.exe /service spooler /grant=”SID”
Zmiana ta jest bardzo przydatna gdy chcemy odciążyć administratora i przygotować plik wsadowy który automatycznie zatrzyma daną usługę i później uruchomi ją ponownie. Plik taki możemy udostępnić użytkownikowi i wtedy samodzielnie może wykonać restart problematycznej usługi.
Narzędzie subinacl umożliwia wykonanie znacznie więcej, można zmieniać także uprawnienia dla folderów czy plików.
Przykłady:
Aby wyświetlić aktualne uprawnienia dla danej usługi:
subinacl.exe /service spooler /display
Sprawdzenie aktualnych uprawnień dla katalogu c:\temp
subinacl.exe /subdirectories c:\temp /display
dodanie uprawnień do folderu c:\temp dla użytkownika jkowalski w domenie mojadomena
subinacl.exe /subdirectories c:\temp /grant=mojadomena\jkowalski=F
Na końcu podajemy odpowiednią literę w zależności od przydzialnych uprawnień:
R – odczyt (read),
F – pełna kontrola (full control),
C – zmiana/modyfikacja (change, which is the same as modify),
P – zmiana uprawnień (change permissions),
O – zmiana właściciela (take ownership),
X – wykonanie (execute),
E – odczyt i wykonanie (read and execute),
W – zapis (write),
D – kasowanie (delete)
Odebranie uprawnień zapisu do folderu c:\temp dla użytkownika jkowalski
subinacl.exe /subdirectories c:\temp /deny=mojadomena\jkowalski=W
W przypadku gdy użytkownik jkowalski odchodzi z pracy i jego obowązki przejmuje anowak musimy zmienić uprawnienia do wszystkich plików Kowalskiego. Poniższe polecenie dla wszystkich plików w obecnym folderze zastąpi SID użytkownika jkowalski SID-em użytkownika anowak
subinacl /file * /replace=mojadomena\jkowalski=mojadomena\anowak
Odebranie użytkownikowi jkowalski uprawnień do wszystkich plików i folderów na dysku c:\
subinacl /subdirectories c:\* /revoke=mojadomena\jkowalski
Sprawdzenie czy polecenie wykona się poprawnie (przełącznik testmode):
subinacl /testmode /subdirectories c:\temp\* /grant=mojadomena\jkowalski=W
Polecenie subinacl udostępnia znacznie więcej możliwości niż opisane powyżej. Po szczególy odsyłam do pomocy subinacl /?