/Win32.TokenPrivileges

Adjust token privileges of a Win32 process

Primary LanguageC#BSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

Win32.TokenPrivileges

Adjust token privileges of a Win32 process.

##Example

using Win32.TokenPrivileges;

[...]

var currentProcess = Process.GetCurrentProcess();
Console.WriteLine("Privilege status before:");
Console.WriteLine($"SeBackupPrivilege: {PrivilegeProvider.HasPrivilege(null, currentProcess,PrivilegeName.SeBackupPrivilege)}");
Console.WriteLine($"SeRestorePrivilege: {PrivilegeProvider.HasPrivilege(null, currentProcess, PrivilegeName.SeRestorePrivilege)}"); 
using (new AdjustPrivilege(PrivilegeName.SeBackupPrivilege))
{
   using (new AdjustPrivilege(PrivilegeName.SeRestorePrivilege))
   {    
      Console.WriteLine("Privileges should now be granted.");
      Console.WriteLine($"SeBackupPrivilege: {PrivilegeProvider.HasPrivilege(null, currentProcess,PrivilegeName.SeBackupPrivilege)}");
      Console.WriteLine($"SeRestorePrivilege: {PrivilegeProvider.HasPrivilege(null, currentProcess,PrivilegeName.SeRestorePrivilege)}"); 
   }
}
Console.WriteLine("Privilege status after:");
Console.WriteLine($"SeBackupPrivilege: {PrivilegeProvider.HasPrivilege(null, currentProcess,PrivilegeName.SeBackupPrivilege)}");
Console.WriteLine($"SeRestorePrivilege: {PrivilegeProvider.HasPrivilege(null, currentProcess, PrivilegeName.SeRestorePrivilege)}"); 

[...]

Build

  • Install chocolatey

     @"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"
  • Install fake

     choco install fake
     
  • Upgrade fake

     choco upgrade fake
     
  • Build

     fake run build.fsx