A command line utility that enables setting ServiceRights for Windows services.
This can be performed by utilities such as subinacl.exe or the sc sdset command, however those work with raw SDDL security descriptors, and typically work on the entire ACL. SetServiceSecurity enables adding or removing individual ACE's, using the
friendly format machineOrDomain\SecurityPrincipalName.
The .NET framework provides several base classes to manage security for objects, such as DirectorySecurity, FileSecurity, ActiveDirectorySecurity, CryptoKeySecurity, and RegistryKeySecurity. However, several other objects for which security is commonly
managed are missing, such as Services, Printers, and Tokens. .NET provides a straightforward idiom to derive from NativeObjectSecurity to create these missing classes to manage security for objects using managed code. This is a significant plus,
because the traditional methods that required using pInvoke/Interop to manipulate security descriptors were quite complex.