NtObjectManager.dll-Help.xml

<?xml version="1.0" encoding="utf-8"?>
<helpItems schema="maml" xmlns="http://msh">
  <!-- Cmdlet: Get-AccessibleDevice -->
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10">
    <command:details>
      <command:name>Get-AccessibleDevice</command:name>
      <command:verb>Get</command:verb>
      <command:noun>AccessibleDevice</command:noun>
      <maml:description>
        <maml:para>Get a list of devices that can be opened by a specified token.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This cmdlet checks a device and optionally tries to determine if one or more specified tokens can open it. If no tokens are specified the current process token is used.</maml:para>
    </maml:description>
    <command:syntax>
      <!-- Parameter set: __AllParameterSets -->
      <command:syntaxItem>
        <maml:name>Get-AccessibleDevice</maml:name>
        <!-- Parameter: Path -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="0">
          <maml:name>Path</maml:name>
          <maml:description>
            <maml:para>Specify a list of native paths to check. Can refer to object directories to search for device objects or explicit paths.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: AccessRights -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>AccessRights</maml:name>
          <maml:description>
            <maml:para>Access rights to check for in an object's access.</maml:para>
            <maml:para>Possible values: None, ReadData, WriteData, AppendData, ReadEa, WriteEa, Execute, DeleteChild, ReadAttributes, WriteAttributes, GenericRead, GenericWrite, GenericExecute, GenericAll, Delete, ReadControl, WriteDac, WriteOwner, Synchronize, MaximumAllowed, AccessSystemSecurity</maml:para>
          </maml:description>
          <command:parameterValue required="true">FileAccessRights</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.FileAccessRights</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
          <command:parameterValueGroup>
            <command:parameterValue required="false" variableLength="false">None</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ReadData</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteData</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">AppendData</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ReadEa</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteEa</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Execute</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">DeleteChild</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ReadAttributes</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteAttributes</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericRead</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericWrite</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericExecute</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericAll</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Delete</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ReadControl</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteDac</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteOwner</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Synchronize</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">MaximumAllowed</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">AccessSystemSecurity</command:parameterValue>
          </command:parameterValueGroup>
        </command:parameter>
        <!-- Parameter: AllowPartialAccess -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>AllowPartialAccess</maml:name>
          <maml:description>
            <maml:para>If AccessRights specified require that only part of the access rights are required to match an access check.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: CheckEaBuffer -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>CheckEaBuffer</maml:name>
          <maml:description>
            <maml:para>Check whether the device can be accessed with an EA buffer.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: CheckMode -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>CheckMode</maml:name>
          <maml:description>
            <maml:para>Check mode for device and/or namespace.</maml:para>
            <maml:para>Possible values: DeviceOnly, NamespaceOnly, DeviceAndNamespace</maml:para>
          </maml:description>
          <command:parameterValue required="true">DeviceCheckMode</command:parameterValue>
          <dev:type>
            <maml:name>NtObjectManager.DeviceCheckMode</maml:name>
            <maml:uri />
            <maml:description>
              <maml:para>Mode for checking device object.</maml:para>
            </maml:description>
          </dev:type>
          <dev:defaultValue>DeviceOnly</dev:defaultValue>
          <command:parameterValueGroup>
            <command:parameterValue required="false" variableLength="false">DeviceOnly</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">NamespaceOnly</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">DeviceAndNamespace</command:parameterValue>
          </command:parameterValueGroup>
        </command:parameter>
        <!-- Parameter: EaBuffer -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>EaBuffer</maml:name>
          <maml:description>
            <maml:para>If CheckEaBuffer enabled specify an explicit buffer instead of a default.</maml:para>
          </maml:description>
          <command:parameterValue required="true">EaBuffer</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.EaBuffer</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: MaxDepth -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>MaxDepth</maml:name>
          <maml:description>
            <maml:para>When recursing specify maximum depth.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: NamespacePath -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>NamespacePath</maml:name>
          <maml:description>
            <maml:para>If check mode allows namespace paths specify a list of namespace paths to check for access to the device namespace instead of a default.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: OpenOptions -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>OpenOptions</maml:name>
          <maml:description>
            <maml:para>Specify open options for access.</maml:para>
            <maml:para>Possible values: None, DirectoryFile, WriteThrough, SequentialOnly, NoIntermediateBuffering, SynchronousIoAlert, SynchronousIoNonAlert, NonDirectoryFile, CreateTreeConnection, CompleteIfOplocked, NoEaKnowledge, OpenRemoteInstance, RandomAccess, DeleteOnClose, OpenByFileId, OpenForBackupIntent, NoCompression, OpenRequiringOplock, DisallowExclusive, SessionAware, ReserveOpfilter, OpenReparsePoint, OpenNoRecall, OpenForFreeSpaceQuery</maml:para>
          </maml:description>
          <command:parameterValue required="true">FileOpenOptions</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.FileOpenOptions</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
          <command:parameterValueGroup>
            <command:parameterValue required="false" variableLength="false">None</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">DirectoryFile</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteThrough</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">SequentialOnly</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">NoIntermediateBuffering</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">SynchronousIoAlert</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">SynchronousIoNonAlert</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">NonDirectoryFile</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">CreateTreeConnection</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">CompleteIfOplocked</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">NoEaKnowledge</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">OpenRemoteInstance</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">RandomAccess</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">DeleteOnClose</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">OpenByFileId</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">OpenForBackupIntent</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">NoCompression</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">OpenRequiringOplock</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">DisallowExclusive</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">SessionAware</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ReserveOpfilter</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">OpenReparsePoint</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">OpenNoRecall</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">OpenForFreeSpaceQuery</command:parameterValue>
          </command:parameterValueGroup>
        </command:parameter>
        <!-- Parameter: ProcessCommandLines -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>ProcessCommandLines</maml:name>
          <maml:description>
            <maml:para>Specify a list of command lines to filter on find for the process tokens.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Processes -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Processes</maml:name>
          <maml:description>
            <maml:para>Specify a list of process objects to get tokens from.</maml:para>
          </maml:description>
          <command:parameterValue required="true">NtProcess[]</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.NtProcess[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: ProcessIds -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>ProcessIds</maml:name>
          <maml:description>
            <maml:para>Specify a list of process IDs to open for their tokens.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int[]</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: ProcessNames -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>ProcessNames</maml:name>
          <maml:description>
            <maml:para>Specify a list of process names to open for their tokens.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Recurse -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Recurse</maml:name>
          <maml:description>
            <maml:para>Specify whether to recursively check the directories for devices.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Tokens -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Tokens</maml:name>
          <maml:description>
            <maml:para>Specify a list token objects.</maml:para>
          </maml:description>
          <command:parameterValue required="true">NtToken[]</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.NtToken[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <!-- Parameter: Path -->
      <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="0">
        <maml:name>Path</maml:name>
        <maml:description>
          <maml:para>Specify a list of native paths to check. Can refer to object directories to search for device objects or explicit paths.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Recurse -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Recurse</maml:name>
        <maml:description>
          <maml:para>Specify whether to recursively check the directories for devices.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: MaxDepth -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>MaxDepth</maml:name>
        <maml:description>
          <maml:para>When recursing specify maximum depth.</maml:para>
        </maml:description>
        <command:parameterValue required="true">int</command:parameterValue>
        <dev:type>
          <maml:name>System.Int32</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: CheckMode -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>CheckMode</maml:name>
        <maml:description>
          <maml:para>Check mode for device and/or namespace.</maml:para>
          <maml:para>Possible values: DeviceOnly, NamespaceOnly, DeviceAndNamespace</maml:para>
        </maml:description>
        <command:parameterValue required="true">DeviceCheckMode</command:parameterValue>
        <dev:type>
          <maml:name>NtObjectManager.DeviceCheckMode</maml:name>
          <maml:uri />
          <maml:description>
            <maml:para>Mode for checking device object.</maml:para>
          </maml:description>
        </dev:type>
        <dev:defaultValue>DeviceOnly</dev:defaultValue>
        <command:parameterValueGroup>
          <command:parameterValue required="false" variableLength="false">DeviceOnly</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">NamespaceOnly</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">DeviceAndNamespace</command:parameterValue>
        </command:parameterValueGroup>
      </command:parameter>
      <!-- Parameter: NamespacePath -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>NamespacePath</maml:name>
        <maml:description>
          <maml:para>If check mode allows namespace paths specify a list of namespace paths to check for access to the device namespace instead of a default.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: CheckEaBuffer -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>CheckEaBuffer</maml:name>
        <maml:description>
          <maml:para>Check whether the device can be accessed with an EA buffer.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: EaBuffer -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>EaBuffer</maml:name>
        <maml:description>
          <maml:para>If CheckEaBuffer enabled specify an explicit buffer instead of a default.</maml:para>
        </maml:description>
        <command:parameterValue required="true">EaBuffer</command:parameterValue>
        <dev:type>
          <maml:name>NtApiDotNet.EaBuffer</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: OpenOptions -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>OpenOptions</maml:name>
        <maml:description>
          <maml:para>Specify open options for access.</maml:para>
          <maml:para>Possible values: None, DirectoryFile, WriteThrough, SequentialOnly, NoIntermediateBuffering, SynchronousIoAlert, SynchronousIoNonAlert, NonDirectoryFile, CreateTreeConnection, CompleteIfOplocked, NoEaKnowledge, OpenRemoteInstance, RandomAccess, DeleteOnClose, OpenByFileId, OpenForBackupIntent, NoCompression, OpenRequiringOplock, DisallowExclusive, SessionAware, ReserveOpfilter, OpenReparsePoint, OpenNoRecall, OpenForFreeSpaceQuery</maml:para>
        </maml:description>
        <command:parameterValue required="true">FileOpenOptions</command:parameterValue>
        <dev:type>
          <maml:name>NtApiDotNet.FileOpenOptions</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
        <command:parameterValueGroup>
          <command:parameterValue required="false" variableLength="false">None</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">DirectoryFile</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteThrough</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">SequentialOnly</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">NoIntermediateBuffering</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">SynchronousIoAlert</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">SynchronousIoNonAlert</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">NonDirectoryFile</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">CreateTreeConnection</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">CompleteIfOplocked</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">NoEaKnowledge</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">OpenRemoteInstance</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">RandomAccess</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">DeleteOnClose</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">OpenByFileId</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">OpenForBackupIntent</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">NoCompression</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">OpenRequiringOplock</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">DisallowExclusive</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">SessionAware</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">ReserveOpfilter</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">OpenReparsePoint</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">OpenNoRecall</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">OpenForFreeSpaceQuery</command:parameterValue>
        </command:parameterValueGroup>
      </command:parameter>
      <!-- Parameter: AccessRights -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>AccessRights</maml:name>
        <maml:description>
          <maml:para>Access rights to check for in an object's access.</maml:para>
          <maml:para>Possible values: None, ReadData, WriteData, AppendData, ReadEa, WriteEa, Execute, DeleteChild, ReadAttributes, WriteAttributes, GenericRead, GenericWrite, GenericExecute, GenericAll, Delete, ReadControl, WriteDac, WriteOwner, Synchronize, MaximumAllowed, AccessSystemSecurity</maml:para>
        </maml:description>
        <command:parameterValue required="true">FileAccessRights</command:parameterValue>
        <dev:type>
          <maml:name>NtApiDotNet.FileAccessRights</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
        <command:parameterValueGroup>
          <command:parameterValue required="false" variableLength="false">None</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">ReadData</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteData</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">AppendData</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">ReadEa</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteEa</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Execute</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">DeleteChild</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">ReadAttributes</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteAttributes</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericRead</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericWrite</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericExecute</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericAll</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Delete</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">ReadControl</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteDac</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteOwner</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Synchronize</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">MaximumAllowed</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">AccessSystemSecurity</command:parameterValue>
        </command:parameterValueGroup>
      </command:parameter>
      <!-- Parameter: AllowPartialAccess -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>AllowPartialAccess</maml:name>
        <maml:description>
          <maml:para>If AccessRights specified require that only part of the access rights are required to match an access check.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: ProcessIds -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>ProcessIds</maml:name>
        <maml:description>
          <maml:para>Specify a list of process IDs to open for their tokens.</maml:para>
        </maml:description>
        <command:parameterValue required="true">int[]</command:parameterValue>
        <dev:type>
          <maml:name>System.Int32[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: ProcessNames -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>ProcessNames</maml:name>
        <maml:description>
          <maml:para>Specify a list of process names to open for their tokens.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: ProcessCommandLines -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>ProcessCommandLines</maml:name>
        <maml:description>
          <maml:para>Specify a list of command lines to filter on find for the process tokens.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Tokens -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Tokens</maml:name>
        <maml:description>
          <maml:para>Specify a list token objects.</maml:para>
        </maml:description>
        <command:parameterValue required="true">NtToken[]</command:parameterValue>
        <dev:type>
          <maml:name>NtApiDotNet.NtToken[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Processes -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Processes</maml:name>
        <maml:description>
          <maml:para>Specify a list of process objects to get tokens from.</maml:para>
        </maml:description>
        <command:parameterValue required="true">NtProcess[]</command:parameterValue>
        <dev:type>
          <maml:name>NtApiDotNet.NtProcess[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>Specify a list of native paths to check. Can refer to object directories to search for device objects or explicit paths.</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <!-- OutputType: AccessCheckResult -->
      <command:returnValue>
        <dev:type>
          <maml:name>NtObjectManager.AccessCheckResult</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>General Access check result.</maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <command:examples>
      <command:example>
        <maml:title>---------- EXAMPLE 1 ----------</maml:title>
        <dev:code>Get-AccessibleDevice \Device</dev:code>
        <dev:remarks>
          <maml:para>Check accessible devices under \Device for the current process token.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 2 ----------</maml:title>
        <dev:code>Get-AccessibleDevice \Device -AccessRights GenericWrite</dev:code>
        <dev:remarks>
          <maml:para>Check write accessible devices under \Device for the current process token.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 3 ----------</maml:title>
        <dev:code>Get-AccessibleDevice \Device -ProcessIds 1234,5678</dev:code>
        <dev:remarks>
          <maml:para>Check accessible devices under \Device for the process tokens of PIDs 1234 and 5678</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 4 ----------</maml:title>
        <dev:code>Get-AccessibleDevice \Device -CheckMode DeviceAndNamespace</dev:code>
        <dev:remarks>
          <maml:para>Check accessible devices under \Device for the current process token including ones under a namespace.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 5 ----------</maml:title>
        <dev:code>Get-AccessibleDevice \ -Recurse</dev:code>
        <dev:remarks>
          <maml:para>Check recursively for accessible devices under \ for the current process token.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 6 ----------</maml:title>
        <dev:code>Get-AccessibleDevice \ -Recurse -MaxDepth 5</dev:code>
        <dev:remarks>
          <maml:para>Check recursively for accessible objects under \BaseNamedObjects for the current process token to a maximum depth of 5.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 7 ----------</maml:title>
        <dev:code>Get-AccessibleDevice \Device\Afd,\Device\Blah</dev:code>
        <dev:remarks>
          <maml:para>Check two devices for the current process token.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 8 ----------</maml:title>
        <dev:code>Get-AccessibleDevice \ -Recurse -AccessRights GenericWrite</dev:code>
        <dev:remarks>
          <maml:para>Check recursively for accessible devices under with write access.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 9 ----------</maml:title>
        <dev:code>Get-AccessibleDevice \ -Recurse -AccessRights GenericWrite -AllowPartialAccess</dev:code>
        <dev:remarks>
          <maml:para>Check recursively for accessible devices with partial write access.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 10 ----------</maml:title>
        <dev:code>$token = Get-NtToken -Primary -Duplicate -IntegrityLevel Low
Get-AccessibleDevice \Device -Recurse -Tokens $token -AccessRights GenericWrite</dev:code>
        <dev:remarks>
          <maml:para>Get all devices which can be written to in \Device by a low integrity copy of current token.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
  </command:command>
  <!-- Cmdlet: Get-AccessibleFile -->
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10">
    <command:details>
      <command:name>Get-AccessibleFile</command:name>
      <command:verb>Get</command:verb>
      <command:noun>AccessibleFile</command:noun>
      <maml:description>
        <maml:para>Get a list of files that can be opened by a specified token.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This cmdlet checks a file or directory and tries to determine if one or more specified tokens can open them. If no tokens are specified the current process token is used.</maml:para>
    </maml:description>
    <command:syntax>
      <!-- Parameter set: path -->
      <command:syntaxItem>
        <maml:name>Get-AccessibleFile</maml:name>
        <!-- Parameter: Path -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByValue)" position="0">
          <maml:name>Path</maml:name>
          <maml:description>
            <maml:para>Specify a list of native paths to check.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: AccessRights -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>AccessRights</maml:name>
          <maml:description>
            <maml:para>Access rights to check for in an object's access.</maml:para>
            <maml:para>Possible values: None, ReadData, WriteData, AppendData, ReadEa, WriteEa, Execute, DeleteChild, ReadAttributes, WriteAttributes, GenericRead, GenericWrite, GenericExecute, GenericAll, Delete, ReadControl, WriteDac, WriteOwner, Synchronize, MaximumAllowed, AccessSystemSecurity</maml:para>
          </maml:description>
          <command:parameterValue required="true">FileAccessRights</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.FileAccessRights</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
          <command:parameterValueGroup>
            <command:parameterValue required="false" variableLength="false">None</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ReadData</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteData</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">AppendData</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ReadEa</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteEa</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Execute</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">DeleteChild</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ReadAttributes</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteAttributes</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericRead</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericWrite</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericExecute</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericAll</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Delete</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ReadControl</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteDac</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteOwner</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Synchronize</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">MaximumAllowed</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">AccessSystemSecurity</command:parameterValue>
          </command:parameterValueGroup>
        </command:parameter>
        <!-- Parameter: AllowPartialAccess -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>AllowPartialAccess</maml:name>
          <maml:description>
            <maml:para>If AccessRights specified require that only part of the access rights are required to match an access check.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: CheckMode -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>CheckMode</maml:name>
          <maml:description>
            <maml:para>Limit access check to specific types of files.</maml:para>
            <maml:para>Possible values: All, FilesOnly, DirectoriesOnly</maml:para>
          </maml:description>
          <command:parameterValue required="true">FileCheckMode</command:parameterValue>
          <dev:type>
            <maml:name>NtObjectManager.FileCheckMode</maml:name>
            <maml:uri />
            <maml:description>
              <maml:para>Limit access check to specific types of files.</maml:para>
            </maml:description>
          </dev:type>
          <dev:defaultValue>All</dev:defaultValue>
          <command:parameterValueGroup>
            <command:parameterValue required="false" variableLength="false">All</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">FilesOnly</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">DirectoriesOnly</command:parameterValue>
          </command:parameterValueGroup>
        </command:parameter>
        <!-- Parameter: DirectoryAccessRights -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>DirectoryAccessRights</maml:name>
          <maml:description>
            <maml:para>Specify a set of directory access rights which a directory must at least be accessible for to count as an access.</maml:para>
            <maml:para>Possible values: None, ListDirectory, AddFile, AddSubDirectory, ReadEa, WriteEa, Traverse, DeleteChild, ReadAttributes, WriteAttributes, GenericRead, GenericWrite, GenericExecute, GenericAll, Delete, ReadControl, WriteDac, WriteOwner, Synchronize, MaximumAllowed, AccessSystemSecurity</maml:para>
          </maml:description>
          <command:parameterValue required="true">FileDirectoryAccessRights</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.FileDirectoryAccessRights</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
          <command:parameterValueGroup>
            <command:parameterValue required="false" variableLength="false">None</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ListDirectory</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">AddFile</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">AddSubDirectory</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ReadEa</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteEa</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Traverse</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">DeleteChild</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ReadAttributes</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteAttributes</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericRead</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericWrite</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericExecute</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericAll</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Delete</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ReadControl</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteDac</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteOwner</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Synchronize</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">MaximumAllowed</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">AccessSystemSecurity</command:parameterValue>
          </command:parameterValueGroup>
        </command:parameter>
        <!-- Parameter: FormatWin32Path -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>FormatWin32Path</maml:name>
          <maml:description>
            <maml:para>When generating the results format path in Win32 format.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: MaxDepth -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>MaxDepth</maml:name>
          <maml:description>
            <maml:para>When recursing specify maximum depth.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: ProcessCommandLines -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>ProcessCommandLines</maml:name>
          <maml:description>
            <maml:para>Specify a list of command lines to filter on find for the process tokens.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Processes -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Processes</maml:name>
          <maml:description>
            <maml:para>Specify a list of process objects to get tokens from.</maml:para>
          </maml:description>
          <command:parameterValue required="true">NtProcess[]</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.NtProcess[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: ProcessIds -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>ProcessIds</maml:name>
          <maml:description>
            <maml:para>Specify a list of process IDs to open for their tokens.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int[]</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: ProcessNames -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>ProcessNames</maml:name>
          <maml:description>
            <maml:para>Specify a list of process names to open for their tokens.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Recurse -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Recurse</maml:name>
          <maml:description>
            <maml:para>Specify whether to recursively check the path for access.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Tokens -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Tokens</maml:name>
          <maml:description>
            <maml:para>Specify a list token objects.</maml:para>
          </maml:description>
          <command:parameterValue required="true">NtToken[]</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.NtToken[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Win32Path -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Win32Path</maml:name>
          <maml:description>
            <maml:para>Specify a list of paths in a Win32 format.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <!-- Parameter: DirectoryAccessRights -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>DirectoryAccessRights</maml:name>
        <maml:description>
          <maml:para>Specify a set of directory access rights which a directory must at least be accessible for to count as an access.</maml:para>
          <maml:para>Possible values: None, ListDirectory, AddFile, AddSubDirectory, ReadEa, WriteEa, Traverse, DeleteChild, ReadAttributes, WriteAttributes, GenericRead, GenericWrite, GenericExecute, GenericAll, Delete, ReadControl, WriteDac, WriteOwner, Synchronize, MaximumAllowed, AccessSystemSecurity</maml:para>
        </maml:description>
        <command:parameterValue required="true">FileDirectoryAccessRights</command:parameterValue>
        <dev:type>
          <maml:name>NtApiDotNet.FileDirectoryAccessRights</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
        <command:parameterValueGroup>
          <command:parameterValue required="false" variableLength="false">None</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">ListDirectory</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">AddFile</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">AddSubDirectory</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">ReadEa</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteEa</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Traverse</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">DeleteChild</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">ReadAttributes</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteAttributes</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericRead</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericWrite</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericExecute</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericAll</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Delete</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">ReadControl</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteDac</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteOwner</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Synchronize</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">MaximumAllowed</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">AccessSystemSecurity</command:parameterValue>
        </command:parameterValueGroup>
      </command:parameter>
      <!-- Parameter: CheckMode -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>CheckMode</maml:name>
        <maml:description>
          <maml:para>Limit access check to specific types of files.</maml:para>
          <maml:para>Possible values: All, FilesOnly, DirectoriesOnly</maml:para>
        </maml:description>
        <command:parameterValue required="true">FileCheckMode</command:parameterValue>
        <dev:type>
          <maml:name>NtObjectManager.FileCheckMode</maml:name>
          <maml:uri />
          <maml:description>
            <maml:para>Limit access check to specific types of files.</maml:para>
          </maml:description>
        </dev:type>
        <dev:defaultValue>All</dev:defaultValue>
        <command:parameterValueGroup>
          <command:parameterValue required="false" variableLength="false">All</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">FilesOnly</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">DirectoriesOnly</command:parameterValue>
        </command:parameterValueGroup>
      </command:parameter>
      <!-- Parameter: Path -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByValue)" position="0">
        <maml:name>Path</maml:name>
        <maml:description>
          <maml:para>Specify a list of native paths to check.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Win32Path -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Win32Path</maml:name>
        <maml:description>
          <maml:para>Specify a list of paths in a Win32 format.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: FormatWin32Path -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>FormatWin32Path</maml:name>
        <maml:description>
          <maml:para>When generating the results format path in Win32 format.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: Recurse -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Recurse</maml:name>
        <maml:description>
          <maml:para>Specify whether to recursively check the path for access.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: MaxDepth -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>MaxDepth</maml:name>
        <maml:description>
          <maml:para>When recursing specify maximum depth.</maml:para>
        </maml:description>
        <command:parameterValue required="true">int</command:parameterValue>
        <dev:type>
          <maml:name>System.Int32</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: AccessRights -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>AccessRights</maml:name>
        <maml:description>
          <maml:para>Access rights to check for in an object's access.</maml:para>
          <maml:para>Possible values: None, ReadData, WriteData, AppendData, ReadEa, WriteEa, Execute, DeleteChild, ReadAttributes, WriteAttributes, GenericRead, GenericWrite, GenericExecute, GenericAll, Delete, ReadControl, WriteDac, WriteOwner, Synchronize, MaximumAllowed, AccessSystemSecurity</maml:para>
        </maml:description>
        <command:parameterValue required="true">FileAccessRights</command:parameterValue>
        <dev:type>
          <maml:name>NtApiDotNet.FileAccessRights</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
        <command:parameterValueGroup>
          <command:parameterValue required="false" variableLength="false">None</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">ReadData</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteData</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">AppendData</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">ReadEa</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteEa</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Execute</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">DeleteChild</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">ReadAttributes</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteAttributes</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericRead</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericWrite</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericExecute</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericAll</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Delete</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">ReadControl</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteDac</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteOwner</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Synchronize</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">MaximumAllowed</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">AccessSystemSecurity</command:parameterValue>
        </command:parameterValueGroup>
      </command:parameter>
      <!-- Parameter: AllowPartialAccess -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>AllowPartialAccess</maml:name>
        <maml:description>
          <maml:para>If AccessRights specified require that only part of the access rights are required to match an access check.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: ProcessIds -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>ProcessIds</maml:name>
        <maml:description>
          <maml:para>Specify a list of process IDs to open for their tokens.</maml:para>
        </maml:description>
        <command:parameterValue required="true">int[]</command:parameterValue>
        <dev:type>
          <maml:name>System.Int32[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: ProcessNames -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>ProcessNames</maml:name>
        <maml:description>
          <maml:para>Specify a list of process names to open for their tokens.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: ProcessCommandLines -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>ProcessCommandLines</maml:name>
        <maml:description>
          <maml:para>Specify a list of command lines to filter on find for the process tokens.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Tokens -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Tokens</maml:name>
        <maml:description>
          <maml:para>Specify a list token objects.</maml:para>
        </maml:description>
        <command:parameterValue required="true">NtToken[]</command:parameterValue>
        <dev:type>
          <maml:name>NtApiDotNet.NtToken[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Processes -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Processes</maml:name>
        <maml:description>
          <maml:para>Specify a list of process objects to get tokens from.</maml:para>
        </maml:description>
        <command:parameterValue required="true">NtProcess[]</command:parameterValue>
        <dev:type>
          <maml:name>NtApiDotNet.NtProcess[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>Specify a list of native paths to check.</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <!-- OutputType: AccessCheckResult -->
      <command:returnValue>
        <dev:type>
          <maml:name>NtObjectManager.AccessCheckResult</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>General Access check result.</maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <command:examples>
      <command:example>
        <maml:title>---------- EXAMPLE 1 ----------</maml:title>
        <dev:code>Get-AccessibleFile \??\C:\Windows</dev:code>
        <dev:remarks>
          <maml:para>Check accessible file c:\Windows for the current process token.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 2 ----------</maml:title>
        <dev:code>Get-AccessibleFile \??\C:\Windows -ProcessIds 1234,5678</dev:code>
        <dev:remarks>
          <maml:para>Check accessible file c:\Windows for the process tokens of PIDs 1234 and 5678</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 3 ----------</maml:title>
        <dev:code>Get-AccessibleFile \??\C:\Windows -Recurse</dev:code>
        <dev:remarks>
          <maml:para>Check recursively for check accessible files under c:\Windows for the current process token.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 4 ----------</maml:title>
        <dev:code>Get-AccessibleFile -Win32Path C:\Windows -Recurse</dev:code>
        <dev:remarks>
          <maml:para>Check recursively for check accessible files under c:\Windows for the current process token using a Win32 path.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 5 ----------</maml:title>
        <dev:code>Get-AccessibleFile -Win32Path C:\Windows -Recurse -MaxDepth 2</dev:code>
        <dev:remarks>
          <maml:para>Check recursively for check accessible files under c:\Windows for the current process token using a Win32 path with a max depth of 2.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 6 ----------</maml:title>
        <dev:code>$token = Get-NtToken -Primary -Duplicate -IntegrityLevel Low
Get-AccessibleFile \??\C:\Windows -Recurse -Tokens $token -AccessRights GenericWrite</dev:code>
        <dev:remarks>
          <maml:para>Get all files with can be written to \??\C:\Windows by a low integrity copy of current token.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
  </command:command>
  <!-- Cmdlet: Get-AccessibleHandle -->
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10">
    <command:details>
      <command:name>Get-AccessibleHandle</command:name>
      <command:verb>Get</command:verb>
      <command:noun>AccessibleHandle</command:noun>
      <maml:description>
        <maml:para>Get a list of accessible handles from a specified token.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This cmdlet enumerates all handles accessible from a specific token and checks and determines what the maximum access rights are for that handle.</maml:para>
    </maml:description>
    <command:syntax>
      <!-- Parameter set: __AllParameterSets -->
      <command:syntaxItem>
        <maml:name>Get-AccessibleHandle</maml:name>
        <!-- Parameter: ProcessCommandLines -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>ProcessCommandLines</maml:name>
          <maml:description>
            <maml:para>Specify a list of command lines to filter on find for the process tokens.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Processes -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Processes</maml:name>
          <maml:description>
            <maml:para>Specify a list of process objects to get tokens from.</maml:para>
          </maml:description>
          <command:parameterValue required="true">NtProcess[]</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.NtProcess[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: ProcessIds -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>ProcessIds</maml:name>
          <maml:description>
            <maml:para>Specify a list of process IDs to open for their tokens.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int[]</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: ProcessNames -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>ProcessNames</maml:name>
          <maml:description>
            <maml:para>Specify a list of process names to open for their tokens.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: QueryAllDevicePaths -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>QueryAllDevicePaths</maml:name>
          <maml:description>
            <maml:para>Specify to query all file device paths. Doing this might cause the cmdlet to hang.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Tokens -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Tokens</maml:name>
          <maml:description>
            <maml:para>Specify a list token objects.</maml:para>
          </maml:description>
          <command:parameterValue required="true">NtToken[]</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.NtToken[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: TypeFilter -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>TypeFilter</maml:name>
          <maml:description>
            <maml:para>Specify list of NT object types to filter on.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <!-- Parameter: TypeFilter -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>TypeFilter</maml:name>
        <maml:description>
          <maml:para>Specify list of NT object types to filter on.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: QueryAllDevicePaths -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>QueryAllDevicePaths</maml:name>
        <maml:description>
          <maml:para>Specify to query all file device paths. Doing this might cause the cmdlet to hang.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: ProcessIds -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>ProcessIds</maml:name>
        <maml:description>
          <maml:para>Specify a list of process IDs to open for their tokens.</maml:para>
        </maml:description>
        <command:parameterValue required="true">int[]</command:parameterValue>
        <dev:type>
          <maml:name>System.Int32[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: ProcessNames -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>ProcessNames</maml:name>
        <maml:description>
          <maml:para>Specify a list of process names to open for their tokens.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: ProcessCommandLines -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>ProcessCommandLines</maml:name>
        <maml:description>
          <maml:para>Specify a list of command lines to filter on find for the process tokens.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Tokens -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Tokens</maml:name>
        <maml:description>
          <maml:para>Specify a list token objects.</maml:para>
        </maml:description>
        <command:parameterValue required="true">NtToken[]</command:parameterValue>
        <dev:type>
          <maml:name>NtApiDotNet.NtToken[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Processes -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Processes</maml:name>
        <maml:description>
          <maml:para>Specify a list of process objects to get tokens from.</maml:para>
        </maml:description>
        <command:parameterValue required="true">NtProcess[]</command:parameterValue>
        <dev:type>
          <maml:name>NtApiDotNet.NtProcess[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
    </command:parameters>
    <command:inputTypes />
    <command:returnValues>
      <!-- OutputType: HandleAccessCheckResult -->
      <command:returnValue>
        <dev:type>
          <maml:name>NtObjectManager.HandleAccessCheckResult</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>Access check result for a handle.</maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <command:examples>
      <command:example>
        <maml:title>---------- EXAMPLE 1 ----------</maml:title>
        <dev:code>Get-AccessibleHandle</dev:code>
        <dev:remarks>
          <maml:para>Check all accessible handles for the current process token.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 2 ----------</maml:title>
        <dev:code>Get-AccessibleHandle -TypeFilter Key</dev:code>
        <dev:remarks>
          <maml:para>Check all accessible key handles for the current process token.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 3 ----------</maml:title>
        <dev:code>Get-AccessibleHandle -ProcessIds 1234,5678</dev:code>
        <dev:remarks>
          <maml:para>&gt;Check all accessible handles for the process tokens of PIDs 1234 and 5678</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 4 ----------</maml:title>
        <dev:code>Get-AccessibleHandle | Where-Object DifferentAccess</dev:code>
        <dev:remarks>
          <maml:para>Check all accessible handles for the current process token where the access differs from what the access would be if you reopened the resource</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
  </command:command>
  <!-- Cmdlet: Get-AccessibleKey -->
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10">
    <command:details>
      <command:name>Get-AccessibleKey</command:name>
      <command:verb>Get</command:verb>
      <command:noun>AccessibleKey</command:noun>
      <maml:description>
        <maml:para>Get a list of Registry Keys that can be opened by a specified token.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This cmdlet checks a registry key and tries to determine if one or more specified tokens can open them. If no tokens are specified the current process token is used.</maml:para>
    </maml:description>
    <command:syntax>
      <!-- Parameter set: path -->
      <command:syntaxItem>
        <maml:name>Get-AccessibleKey</maml:name>
        <!-- Parameter: Path -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByValue)" position="0">
          <maml:name>Path</maml:name>
          <maml:description>
            <maml:para>Specify a list of native paths to check.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: AccessRights -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>AccessRights</maml:name>
          <maml:description>
            <maml:para>Access rights to check for in an object's access.</maml:para>
            <maml:para>Possible values: QueryValue, SetValue, CreateSubKey, EnumerateSubKeys, Notify, CreateLink, GenericRead, GenericWrite, GenericExecute, GenericAll, Delete, ReadControl, WriteDac, WriteOwner, Synchronize, MaximumAllowed, AccessSystemSecurity</maml:para>
          </maml:description>
          <command:parameterValue required="true">KeyAccessRights</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.KeyAccessRights</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>0</dev:defaultValue>
          <command:parameterValueGroup>
            <command:parameterValue required="false" variableLength="false">QueryValue</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">SetValue</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">CreateSubKey</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">EnumerateSubKeys</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Notify</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">CreateLink</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericRead</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericWrite</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericExecute</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericAll</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Delete</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ReadControl</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteDac</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteOwner</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Synchronize</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">MaximumAllowed</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">AccessSystemSecurity</command:parameterValue>
          </command:parameterValueGroup>
        </command:parameter>
        <!-- Parameter: AllowPartialAccess -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>AllowPartialAccess</maml:name>
          <maml:description>
            <maml:para>If AccessRights specified require that only part of the access rights are required to match an access check.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: FormatWin32Path -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>FormatWin32Path</maml:name>
          <maml:description>
            <maml:para>When generating the results format path in Win32 format.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: MaxDepth -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>MaxDepth</maml:name>
          <maml:description>
            <maml:para>When recursing specify maximum depth.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: ProcessCommandLines -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>ProcessCommandLines</maml:name>
          <maml:description>
            <maml:para>Specify a list of command lines to filter on find for the process tokens.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Processes -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Processes</maml:name>
          <maml:description>
            <maml:para>Specify a list of process objects to get tokens from.</maml:para>
          </maml:description>
          <command:parameterValue required="true">NtProcess[]</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.NtProcess[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: ProcessIds -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>ProcessIds</maml:name>
          <maml:description>
            <maml:para>Specify a list of process IDs to open for their tokens.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int[]</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: ProcessNames -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>ProcessNames</maml:name>
          <maml:description>
            <maml:para>Specify a list of process names to open for their tokens.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Recurse -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Recurse</maml:name>
          <maml:description>
            <maml:para>Specify whether to recursively check the path for access.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Tokens -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Tokens</maml:name>
          <maml:description>
            <maml:para>Specify a list token objects.</maml:para>
          </maml:description>
          <command:parameterValue required="true">NtToken[]</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.NtToken[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Win32Path -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Win32Path</maml:name>
          <maml:description>
            <maml:para>Specify a list of paths in a Win32 format.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <!-- Parameter: Path -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByValue)" position="0">
        <maml:name>Path</maml:name>
        <maml:description>
          <maml:para>Specify a list of native paths to check.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Win32Path -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Win32Path</maml:name>
        <maml:description>
          <maml:para>Specify a list of paths in a Win32 format.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: FormatWin32Path -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>FormatWin32Path</maml:name>
        <maml:description>
          <maml:para>When generating the results format path in Win32 format.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: Recurse -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Recurse</maml:name>
        <maml:description>
          <maml:para>Specify whether to recursively check the path for access.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: MaxDepth -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>MaxDepth</maml:name>
        <maml:description>
          <maml:para>When recursing specify maximum depth.</maml:para>
        </maml:description>
        <command:parameterValue required="true">int</command:parameterValue>
        <dev:type>
          <maml:name>System.Int32</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: AccessRights -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>AccessRights</maml:name>
        <maml:description>
          <maml:para>Access rights to check for in an object's access.</maml:para>
          <maml:para>Possible values: QueryValue, SetValue, CreateSubKey, EnumerateSubKeys, Notify, CreateLink, GenericRead, GenericWrite, GenericExecute, GenericAll, Delete, ReadControl, WriteDac, WriteOwner, Synchronize, MaximumAllowed, AccessSystemSecurity</maml:para>
        </maml:description>
        <command:parameterValue required="true">KeyAccessRights</command:parameterValue>
        <dev:type>
          <maml:name>NtApiDotNet.KeyAccessRights</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>0</dev:defaultValue>
        <command:parameterValueGroup>
          <command:parameterValue required="false" variableLength="false">QueryValue</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">SetValue</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">CreateSubKey</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">EnumerateSubKeys</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Notify</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">CreateLink</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericRead</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericWrite</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericExecute</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericAll</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Delete</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">ReadControl</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteDac</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteOwner</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Synchronize</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">MaximumAllowed</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">AccessSystemSecurity</command:parameterValue>
        </command:parameterValueGroup>
      </command:parameter>
      <!-- Parameter: AllowPartialAccess -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>AllowPartialAccess</maml:name>
        <maml:description>
          <maml:para>If AccessRights specified require that only part of the access rights are required to match an access check.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: ProcessIds -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>ProcessIds</maml:name>
        <maml:description>
          <maml:para>Specify a list of process IDs to open for their tokens.</maml:para>
        </maml:description>
        <command:parameterValue required="true">int[]</command:parameterValue>
        <dev:type>
          <maml:name>System.Int32[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: ProcessNames -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>ProcessNames</maml:name>
        <maml:description>
          <maml:para>Specify a list of process names to open for their tokens.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: ProcessCommandLines -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>ProcessCommandLines</maml:name>
        <maml:description>
          <maml:para>Specify a list of command lines to filter on find for the process tokens.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Tokens -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Tokens</maml:name>
        <maml:description>
          <maml:para>Specify a list token objects.</maml:para>
        </maml:description>
        <command:parameterValue required="true">NtToken[]</command:parameterValue>
        <dev:type>
          <maml:name>NtApiDotNet.NtToken[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Processes -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Processes</maml:name>
        <maml:description>
          <maml:para>Specify a list of process objects to get tokens from.</maml:para>
        </maml:description>
        <command:parameterValue required="true">NtProcess[]</command:parameterValue>
        <dev:type>
          <maml:name>NtApiDotNet.NtProcess[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>Specify a list of native paths to check.</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <!-- OutputType: AccessCheckResult -->
      <command:returnValue>
        <dev:type>
          <maml:name>NtObjectManager.AccessCheckResult</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>General Access check result.</maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <command:examples>
      <command:example>
        <maml:title>---------- EXAMPLE 1 ----------</maml:title>
        <dev:code>Get-AccessibleKey \Registry\Machine\Software</dev:code>
        <dev:remarks>
          <maml:para>Check accessible keys \Registry\Machine\Software for the current process token.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 2 ----------</maml:title>
        <dev:code>Get-AccessibleKey \Registry\Machine\Software -ProcessIds 1234,5678</dev:code>
        <dev:remarks>
          <maml:para>Check accessible keys \Registry\Machine\Software for the process tokens of PIDs 1234 and 5678</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 3 ----------</maml:title>
        <dev:code>Get-AccessibleKey \Registry\Machine\Software -Recurse</dev:code>
        <dev:remarks>
          <maml:para>Check recursively for accessible keys \Registry\Machine\Software for the current process token.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 4 ----------</maml:title>
        <dev:code>Get-AccessibleKey \Registry\Machine\Software -Recurse -MaxDepth 5</dev:code>
        <dev:remarks>
          <maml:para>Check recursively for accessible keys \Registry\Machine\Software for the current process token to a maximum depth of 5.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 5 ----------</maml:title>
        <dev:code>Get-AccessibleKey -Win32Path HKLM\Software -Recurse</dev:code>
        <dev:remarks>
          <maml:para>Check recursively for accessible keys NT path HKEY_LOCAL_MACHINE for the current process token using a Win32 path.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 6 ----------</maml:title>
        <dev:code>$token = Get-NtToken -Primary -Duplicate -IntegrityLevel Low
Get-AccessibleKey -Win32Path HKCU -Recurse -Tokens $token -AccessRights GenericWrite</dev:code>
        <dev:remarks>
          <maml:para>Get all keys with can be written to in HKEY_CURRENT_USER by a low integrity copy of current token.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
  </command:command>
  <!-- Cmdlet: Get-AccessibleNamedPipe -->
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10">
    <command:details>
      <command:name>Get-AccessibleNamedPipe</command:name>
      <command:verb>Get</command:verb>
      <command:noun>AccessibleNamedPipe</command:noun>
      <maml:description>
        <maml:para>Get a list of named pipes that can be opened by a specified token.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This cmdlet checks for named pipes and tries to determine if one or more specified tokens can open them. If no tokens are specified the current process token is used.</maml:para>
    </maml:description>
    <command:syntax>
      <!-- Parameter set: __AllParameterSets -->
      <command:syntaxItem>
        <maml:name>Get-AccessibleNamedPipe</maml:name>
        <!-- Parameter: AccessRights -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>AccessRights</maml:name>
          <maml:description>
            <maml:para>Access rights to check for in an object's access.</maml:para>
            <maml:para>Possible values: None, ReadData, WriteData, AppendData, ReadEa, WriteEa, Execute, DeleteChild, ReadAttributes, WriteAttributes, GenericRead, GenericWrite, GenericExecute, GenericAll, Delete, ReadControl, WriteDac, WriteOwner, Synchronize, MaximumAllowed, AccessSystemSecurity</maml:para>
          </maml:description>
          <command:parameterValue required="true">FileAccessRights</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.FileAccessRights</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
          <command:parameterValueGroup>
            <command:parameterValue required="false" variableLength="false">None</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ReadData</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteData</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">AppendData</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ReadEa</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteEa</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Execute</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">DeleteChild</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ReadAttributes</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteAttributes</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericRead</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericWrite</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericExecute</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericAll</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Delete</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ReadControl</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteDac</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteOwner</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Synchronize</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">MaximumAllowed</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">AccessSystemSecurity</command:parameterValue>
          </command:parameterValueGroup>
        </command:parameter>
        <!-- Parameter: AllowPartialAccess -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>AllowPartialAccess</maml:name>
          <maml:description>
            <maml:para>If AccessRights specified require that only part of the access rights are required to match an access check.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: FormatWin32Path -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>FormatWin32Path</maml:name>
          <maml:description>
            <maml:para>When generating the results format path in Win32 format.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: OpenServer -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>OpenServer</maml:name>
          <maml:description>
            <maml:para>Try and open the server end rather than the client end of the pipe.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: ProcessCommandLines -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>ProcessCommandLines</maml:name>
          <maml:description>
            <maml:para>Specify a list of command lines to filter on find for the process tokens.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Processes -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Processes</maml:name>
          <maml:description>
            <maml:para>Specify a list of process objects to get tokens from.</maml:para>
          </maml:description>
          <command:parameterValue required="true">NtProcess[]</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.NtProcess[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: ProcessIds -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>ProcessIds</maml:name>
          <maml:description>
            <maml:para>Specify a list of process IDs to open for their tokens.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int[]</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: ProcessNames -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>ProcessNames</maml:name>
          <maml:description>
            <maml:para>Specify a list of process names to open for their tokens.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Tokens -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Tokens</maml:name>
          <maml:description>
            <maml:para>Specify a list token objects.</maml:para>
          </maml:description>
          <command:parameterValue required="true">NtToken[]</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.NtToken[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <!-- Parameter: FormatWin32Path -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>FormatWin32Path</maml:name>
        <maml:description>
          <maml:para>When generating the results format path in Win32 format.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: OpenServer -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>OpenServer</maml:name>
        <maml:description>
          <maml:para>Try and open the server end rather than the client end of the pipe.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: AccessRights -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>AccessRights</maml:name>
        <maml:description>
          <maml:para>Access rights to check for in an object's access.</maml:para>
          <maml:para>Possible values: None, ReadData, WriteData, AppendData, ReadEa, WriteEa, Execute, DeleteChild, ReadAttributes, WriteAttributes, GenericRead, GenericWrite, GenericExecute, GenericAll, Delete, ReadControl, WriteDac, WriteOwner, Synchronize, MaximumAllowed, AccessSystemSecurity</maml:para>
        </maml:description>
        <command:parameterValue required="true">FileAccessRights</command:parameterValue>
        <dev:type>
          <maml:name>NtApiDotNet.FileAccessRights</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
        <command:parameterValueGroup>
          <command:parameterValue required="false" variableLength="false">None</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">ReadData</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteData</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">AppendData</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">ReadEa</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteEa</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Execute</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">DeleteChild</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">ReadAttributes</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteAttributes</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericRead</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericWrite</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericExecute</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericAll</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Delete</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">ReadControl</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteDac</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteOwner</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Synchronize</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">MaximumAllowed</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">AccessSystemSecurity</command:parameterValue>
        </command:parameterValueGroup>
      </command:parameter>
      <!-- Parameter: AllowPartialAccess -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>AllowPartialAccess</maml:name>
        <maml:description>
          <maml:para>If AccessRights specified require that only part of the access rights are required to match an access check.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: ProcessIds -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>ProcessIds</maml:name>
        <maml:description>
          <maml:para>Specify a list of process IDs to open for their tokens.</maml:para>
        </maml:description>
        <command:parameterValue required="true">int[]</command:parameterValue>
        <dev:type>
          <maml:name>System.Int32[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: ProcessNames -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>ProcessNames</maml:name>
        <maml:description>
          <maml:para>Specify a list of process names to open for their tokens.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: ProcessCommandLines -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>ProcessCommandLines</maml:name>
        <maml:description>
          <maml:para>Specify a list of command lines to filter on find for the process tokens.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Tokens -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Tokens</maml:name>
        <maml:description>
          <maml:para>Specify a list token objects.</maml:para>
        </maml:description>
        <command:parameterValue required="true">NtToken[]</command:parameterValue>
        <dev:type>
          <maml:name>NtApiDotNet.NtToken[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Processes -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Processes</maml:name>
        <maml:description>
          <maml:para>Specify a list of process objects to get tokens from.</maml:para>
        </maml:description>
        <command:parameterValue required="true">NtProcess[]</command:parameterValue>
        <dev:type>
          <maml:name>NtApiDotNet.NtProcess[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
    </command:parameters>
    <command:inputTypes />
    <command:returnValues>
      <!-- OutputType: AccessCheckResult -->
      <command:returnValue>
        <dev:type>
          <maml:name>NtObjectManager.AccessCheckResult</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>General Access check result.</maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <command:examples>
      <command:example>
        <maml:title>---------- EXAMPLE 1 ----------</maml:title>
        <dev:code>Get-AccessibleNamedPipe</dev:code>
        <dev:remarks>
          <maml:para>Check accessible named pipes for the current process token.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 2 ----------</maml:title>
        <dev:code>Get-AccessibleNamedPipe -OpenServer</dev:code>
        <dev:remarks>
          <maml:para>Check accessible named pipes server end points which can be opened for the current process token.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 3 ----------</maml:title>
        <dev:code>Get-AccessibleNamedPipe -ProcessIds 1234,5678</dev:code>
        <dev:remarks>
          <maml:para>Check accessible named pipes for the process tokens of PIDs 1234 and 5678</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 4 ----------</maml:title>
        <dev:code>$token = Get-NtToken -Primary -Duplicate -IntegrityLevel Low
Get-AccessibleNamedPipes -Tokens $token -AccessRights GenericWrite</dev:code>
        <dev:remarks>
          <maml:para>Get all named pipes with can be written to by a low integrity copy of current token.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
  </command:command>
  <!-- Cmdlet: Get-AccessibleObject -->
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10">
    <command:details>
      <command:name>Get-AccessibleObject</command:name>
      <command:verb>Get</command:verb>
      <command:noun>AccessibleObject</command:noun>
      <maml:description>
        <maml:para>Get a list of NT objects that can be opened by a specified token.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This cmdlet checks a NT object key and optionally tries to determine if one or more specified tokens can open them. If no tokens are specified the current process token is used.</maml:para>
    </maml:description>
    <command:syntax>
      <!-- Parameter set: handles -->
      <command:syntaxItem>
        <maml:name>Get-AccessibleObject</maml:name>
        <!-- Parameter: FromHandles -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
          <maml:name>FromHandles</maml:name>
          <maml:description>
            <maml:para>Specify to find objects based on handles rather than enumerating named paths.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: AccessRights -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>AccessRights</maml:name>
          <maml:description>
            <maml:para>Access rights to check for in an object's access.</maml:para>
            <maml:para>Possible values: None, Access0, Access1, Access2, Access3, Access4, Access5, Access6, Access7, Access8, Access9, Access10, Access11, Access12, Access13, Access14, Access15, Delete, ReadControl, WriteDac, WriteOwner, Synchronize, AccessSystemSecurity, MaximumAllowed, GenericAll, GenericExecute, GenericWrite, GenericRead</maml:para>
          </maml:description>
          <command:parameterValue required="true">GenericAccessRights</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.GenericAccessRights</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
          <command:parameterValueGroup>
            <command:parameterValue required="false" variableLength="false">None</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Access0</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Access1</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Access2</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Access3</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Access4</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Access5</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Access6</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Access7</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Access8</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Access9</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Access10</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Access11</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Access12</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Access13</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Access14</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Access15</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Delete</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ReadControl</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteDac</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteOwner</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Synchronize</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">AccessSystemSecurity</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">MaximumAllowed</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericAll</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericExecute</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericWrite</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericRead</command:parameterValue>
          </command:parameterValueGroup>
        </command:parameter>
        <!-- Parameter: AllowPartialAccess -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>AllowPartialAccess</maml:name>
          <maml:description>
            <maml:para>If AccessRights specified require that only part of the access rights are required to match an access check.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: CheckUnnamed -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>CheckUnnamed</maml:name>
          <maml:description>
            <maml:para>Specify when enumerating handles to also check unnamed objects.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: FormatWin32Path -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>FormatWin32Path</maml:name>
          <maml:description>
            <maml:para>When generating the results format path in Win32 format.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: ProcessCommandLines -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>ProcessCommandLines</maml:name>
          <maml:description>
            <maml:para>Specify a list of command lines to filter on find for the process tokens.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Processes -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Processes</maml:name>
          <maml:description>
            <maml:para>Specify a list of process objects to get tokens from.</maml:para>
          </maml:description>
          <command:parameterValue required="true">NtProcess[]</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.NtProcess[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: ProcessIds -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>ProcessIds</maml:name>
          <maml:description>
            <maml:para>Specify a list of process IDs to open for their tokens.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int[]</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: ProcessNames -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>ProcessNames</maml:name>
          <maml:description>
            <maml:para>Specify a list of process names to open for their tokens.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Tokens -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Tokens</maml:name>
          <maml:description>
            <maml:para>Specify a list token objects.</maml:para>
          </maml:description>
          <command:parameterValue required="true">NtToken[]</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.NtToken[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: TypeFilter -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>TypeFilter</maml:name>
          <maml:description>
            <maml:para>Specify list of NT object types to filter on.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: path -->
      <command:syntaxItem>
        <maml:name>Get-AccessibleObject</maml:name>
        <!-- Parameter: Path -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByValue)" position="0">
          <maml:name>Path</maml:name>
          <maml:description>
            <maml:para>Specify a list of native paths to check.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: AccessRights -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>AccessRights</maml:name>
          <maml:description>
            <maml:para>Access rights to check for in an object's access.</maml:para>
            <maml:para>Possible values: None, Access0, Access1, Access2, Access3, Access4, Access5, Access6, Access7, Access8, Access9, Access10, Access11, Access12, Access13, Access14, Access15, Delete, ReadControl, WriteDac, WriteOwner, Synchronize, AccessSystemSecurity, MaximumAllowed, GenericAll, GenericExecute, GenericWrite, GenericRead</maml:para>
          </maml:description>
          <command:parameterValue required="true">GenericAccessRights</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.GenericAccessRights</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
          <command:parameterValueGroup>
            <command:parameterValue required="false" variableLength="false">None</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Access0</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Access1</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Access2</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Access3</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Access4</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Access5</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Access6</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Access7</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Access8</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Access9</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Access10</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Access11</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Access12</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Access13</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Access14</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Access15</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Delete</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ReadControl</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteDac</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteOwner</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Synchronize</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">AccessSystemSecurity</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">MaximumAllowed</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericAll</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericExecute</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericWrite</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericRead</command:parameterValue>
          </command:parameterValueGroup>
        </command:parameter>
        <!-- Parameter: AllowPartialAccess -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>AllowPartialAccess</maml:name>
          <maml:description>
            <maml:para>If AccessRights specified require that only part of the access rights are required to match an access check.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: FormatWin32Path -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>FormatWin32Path</maml:name>
          <maml:description>
            <maml:para>When generating the results format path in Win32 format.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: MaxDepth -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>MaxDepth</maml:name>
          <maml:description>
            <maml:para>When recursing specify maximum depth.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: ProcessCommandLines -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>ProcessCommandLines</maml:name>
          <maml:description>
            <maml:para>Specify a list of command lines to filter on find for the process tokens.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Processes -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Processes</maml:name>
          <maml:description>
            <maml:para>Specify a list of process objects to get tokens from.</maml:para>
          </maml:description>
          <command:parameterValue required="true">NtProcess[]</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.NtProcess[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: ProcessIds -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>ProcessIds</maml:name>
          <maml:description>
            <maml:para>Specify a list of process IDs to open for their tokens.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int[]</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: ProcessNames -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>ProcessNames</maml:name>
          <maml:description>
            <maml:para>Specify a list of process names to open for their tokens.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Recurse -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Recurse</maml:name>
          <maml:description>
            <maml:para>Specify whether to recursively check the path for access.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Tokens -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Tokens</maml:name>
          <maml:description>
            <maml:para>Specify a list token objects.</maml:para>
          </maml:description>
          <command:parameterValue required="true">NtToken[]</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.NtToken[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: TypeFilter -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>TypeFilter</maml:name>
          <maml:description>
            <maml:para>Specify list of NT object types to filter on.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Win32Path -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Win32Path</maml:name>
          <maml:description>
            <maml:para>Specify a list of paths in a Win32 format.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <!-- Parameter: TypeFilter -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>TypeFilter</maml:name>
        <maml:description>
          <maml:para>Specify list of NT object types to filter on.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: FromHandles -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
        <maml:name>FromHandles</maml:name>
        <maml:description>
          <maml:para>Specify to find objects based on handles rather than enumerating named paths.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: CheckUnnamed -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>CheckUnnamed</maml:name>
        <maml:description>
          <maml:para>Specify when enumerating handles to also check unnamed objects.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: Path -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByValue)" position="0">
        <maml:name>Path</maml:name>
        <maml:description>
          <maml:para>Specify a list of native paths to check.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Win32Path -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Win32Path</maml:name>
        <maml:description>
          <maml:para>Specify a list of paths in a Win32 format.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: FormatWin32Path -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>FormatWin32Path</maml:name>
        <maml:description>
          <maml:para>When generating the results format path in Win32 format.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: Recurse -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Recurse</maml:name>
        <maml:description>
          <maml:para>Specify whether to recursively check the path for access.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: MaxDepth -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>MaxDepth</maml:name>
        <maml:description>
          <maml:para>When recursing specify maximum depth.</maml:para>
        </maml:description>
        <command:parameterValue required="true">int</command:parameterValue>
        <dev:type>
          <maml:name>System.Int32</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: AccessRights -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>AccessRights</maml:name>
        <maml:description>
          <maml:para>Access rights to check for in an object's access.</maml:para>
          <maml:para>Possible values: None, Access0, Access1, Access2, Access3, Access4, Access5, Access6, Access7, Access8, Access9, Access10, Access11, Access12, Access13, Access14, Access15, Delete, ReadControl, WriteDac, WriteOwner, Synchronize, AccessSystemSecurity, MaximumAllowed, GenericAll, GenericExecute, GenericWrite, GenericRead</maml:para>
        </maml:description>
        <command:parameterValue required="true">GenericAccessRights</command:parameterValue>
        <dev:type>
          <maml:name>NtApiDotNet.GenericAccessRights</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
        <command:parameterValueGroup>
          <command:parameterValue required="false" variableLength="false">None</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Access0</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Access1</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Access2</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Access3</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Access4</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Access5</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Access6</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Access7</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Access8</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Access9</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Access10</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Access11</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Access12</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Access13</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Access14</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Access15</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Delete</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">ReadControl</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteDac</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteOwner</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Synchronize</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">AccessSystemSecurity</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">MaximumAllowed</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericAll</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericExecute</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericWrite</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericRead</command:parameterValue>
        </command:parameterValueGroup>
      </command:parameter>
      <!-- Parameter: AllowPartialAccess -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>AllowPartialAccess</maml:name>
        <maml:description>
          <maml:para>If AccessRights specified require that only part of the access rights are required to match an access check.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: ProcessIds -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>ProcessIds</maml:name>
        <maml:description>
          <maml:para>Specify a list of process IDs to open for their tokens.</maml:para>
        </maml:description>
        <command:parameterValue required="true">int[]</command:parameterValue>
        <dev:type>
          <maml:name>System.Int32[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: ProcessNames -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>ProcessNames</maml:name>
        <maml:description>
          <maml:para>Specify a list of process names to open for their tokens.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: ProcessCommandLines -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>ProcessCommandLines</maml:name>
        <maml:description>
          <maml:para>Specify a list of command lines to filter on find for the process tokens.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Tokens -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Tokens</maml:name>
        <maml:description>
          <maml:para>Specify a list token objects.</maml:para>
        </maml:description>
        <command:parameterValue required="true">NtToken[]</command:parameterValue>
        <dev:type>
          <maml:name>NtApiDotNet.NtToken[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Processes -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Processes</maml:name>
        <maml:description>
          <maml:para>Specify a list of process objects to get tokens from.</maml:para>
        </maml:description>
        <command:parameterValue required="true">NtProcess[]</command:parameterValue>
        <dev:type>
          <maml:name>NtApiDotNet.NtProcess[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>Specify a list of native paths to check.</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <!-- OutputType: AccessCheckResult -->
      <command:returnValue>
        <dev:type>
          <maml:name>NtObjectManager.AccessCheckResult</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>General Access check result.</maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <command:examples>
      <command:example>
        <maml:title>---------- EXAMPLE 1 ----------</maml:title>
        <dev:code>Get-AccessibleObject \BaseNamedObjects</dev:code>
        <dev:remarks>
          <maml:para>Check accessible objects under \ for the current process token.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 2 ----------</maml:title>
        <dev:code>Get-AccessibleObject \BaseNamedObjects -ProcessIds 1234,5678</dev:code>
        <dev:remarks>
          <maml:para>Check accessible objects under \BaseNamedObjects for the process tokens of PIDs 1234 and 5678</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 3 ----------</maml:title>
        <dev:code>Get-AccessibleObject \BaseNamedObjects -Recurse</dev:code>
        <dev:remarks>
          <maml:para>Check recursively for accessible objects under \BaseNamedObjects for the current process token.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 4 ----------</maml:title>
        <dev:code>Get-AccessibleObject \BaseNamedObjects -Recurse -MaxDepth 5</dev:code>
        <dev:remarks>
          <maml:para>Check recursively for accessible objects under \BaseNamedObjects for the current process token to a maximum depth of 5.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 5 ----------</maml:title>
        <dev:code>Get-AccessibleObject -Win32Path \ -Recurse</dev:code>
        <dev:remarks>
          <maml:para>Check recursively for accessible objects under the user's based named objects for the current process token.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 6 ----------</maml:title>
        <dev:code>Get-AccessibleObject \ -Recurse -AccessRights GenericWrite</dev:code>
        <dev:remarks>
          <maml:para>Check recursively for accessible objects under with write access.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 7 ----------</maml:title>
        <dev:code>Get-AccessibleObject \ -Recurse -AccessRights GenericWrite -AllowPartialAccess</dev:code>
        <dev:remarks>
          <maml:para>Check recursively for accessible objects under with partial write access.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 8 ----------</maml:title>
        <dev:code>$token = Get-NtToken -Primary -Duplicate -IntegrityLevel Low
Get-AccessibleObject \BaseNamedObjects -Recurse -Tokens $token -AccessRights GenericWrite</dev:code>
        <dev:remarks>
          <maml:para>Get all object which can be written to in \BaseNamedObjects by a low integrity copy of current token.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
  </command:command>
  <!-- Cmdlet: Get-AccessibleProcess -->
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10">
    <command:details>
      <command:name>Get-AccessibleProcess</command:name>
      <command:verb>Get</command:verb>
      <command:noun>AccessibleProcess</command:noun>
      <maml:description>
        <maml:para>Get a list of processes and/or threads that can be opened by a specified token.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This cmdlet checks all processes and threads and tries to determine if one or more specified tokens can open them to them. If no tokens are specified then the current process token is used.</maml:para>
    </maml:description>
    <command:syntax>
      <!-- Parameter set: __AllParameterSets -->
      <command:syntaxItem>
        <maml:name>Get-AccessibleProcess</maml:name>
        <!-- Parameter: AccessRights -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>AccessRights</maml:name>
          <maml:description>
            <maml:para>Access rights to check for in an object's access.</maml:para>
            <maml:para>Possible values: None, CreateProcess, CreateThread, DupHandle, QueryInformation, QueryLimitedInformation, SetLimitedInformation, SetInformation, SetQuota, SuspendResume, Terminate, VmOperation, VmRead, VmWrite, AllAccess, GenericRead, GenericWrite, GenericExecute, GenericAll, Delete, ReadControl, WriteDac, WriteOwner, Synchronize, MaximumAllowed, AccessSystemSecurity</maml:para>
          </maml:description>
          <command:parameterValue required="true">ProcessAccessRights</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.ProcessAccessRights</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
          <command:parameterValueGroup>
            <command:parameterValue required="false" variableLength="false">None</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">CreateProcess</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">CreateThread</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">DupHandle</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">QueryInformation</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">QueryLimitedInformation</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">SetLimitedInformation</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">SetInformation</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">SetQuota</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">SuspendResume</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Terminate</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">VmOperation</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">VmRead</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">VmWrite</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">AllAccess</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericRead</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericWrite</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericExecute</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericAll</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Delete</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ReadControl</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteDac</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteOwner</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Synchronize</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">MaximumAllowed</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">AccessSystemSecurity</command:parameterValue>
          </command:parameterValueGroup>
        </command:parameter>
        <!-- Parameter: AllowPartialAccess -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>AllowPartialAccess</maml:name>
          <maml:description>
            <maml:para>If AccessRights specified require that only part of the access rights are required to match an access check.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: CheckMode -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>CheckMode</maml:name>
          <maml:description>
            <maml:para>Specify what objects to check for.</maml:para>
            <maml:para>Possible values: ProcessOnly, ThreadOnly, ProcessAndThread</maml:para>
          </maml:description>
          <command:parameterValue required="true">ProcessCheckMode</command:parameterValue>
          <dev:type>
            <maml:name>NtObjectManager.ProcessCheckMode</maml:name>
            <maml:uri />
            <maml:description>
              <maml:para>Specify what objects to query for.</maml:para>
            </maml:description>
          </dev:type>
          <dev:defaultValue>ProcessOnly</dev:defaultValue>
          <command:parameterValueGroup>
            <command:parameterValue required="false" variableLength="false">ProcessOnly</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ThreadOnly</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ProcessAndThread</command:parameterValue>
          </command:parameterValueGroup>
        </command:parameter>
        <!-- Parameter: ProcessCommandLines -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>ProcessCommandLines</maml:name>
          <maml:description>
            <maml:para>Specify a list of command lines to filter on find for the process tokens.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Processes -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Processes</maml:name>
          <maml:description>
            <maml:para>Specify a list of process objects to get tokens from.</maml:para>
          </maml:description>
          <command:parameterValue required="true">NtProcess[]</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.NtProcess[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: ProcessIds -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>ProcessIds</maml:name>
          <maml:description>
            <maml:para>Specify a list of process IDs to open for their tokens.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int[]</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: ProcessNames -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>ProcessNames</maml:name>
          <maml:description>
            <maml:para>Specify a list of process names to open for their tokens.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: ShowDeadProcesses -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>ShowDeadProcesses</maml:name>
          <maml:description>
            <maml:para>Specify that dead processes should be shown.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: ThreadAccessRights -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>ThreadAccessRights</maml:name>
          <maml:description>
            <maml:para>Specify specific access rights for threads.</maml:para>
            <maml:para>Possible values: Terminate, SuspendResume, Alert, GetContext, SetContext, SetInformation, QueryInformation, SetThreadToken, Impersonate, DirectImpersonation, SetLimitedInformation, QueryLimitedInformation, AllAccess, GenericRead, GenericWrite, GenericExecute, GenericAll, Delete, ReadControl, WriteDac, WriteOwner, Synchronize, MaximumAllowed, AccessSystemSecurity</maml:para>
          </maml:description>
          <command:parameterValue required="true">ThreadAccessRights</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.ThreadAccessRights</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>0</dev:defaultValue>
          <command:parameterValueGroup>
            <command:parameterValue required="false" variableLength="false">Terminate</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">SuspendResume</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Alert</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GetContext</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">SetContext</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">SetInformation</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">QueryInformation</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">SetThreadToken</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Impersonate</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">DirectImpersonation</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">SetLimitedInformation</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">QueryLimitedInformation</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">AllAccess</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericRead</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericWrite</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericExecute</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericAll</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Delete</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ReadControl</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteDac</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteOwner</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Synchronize</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">MaximumAllowed</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">AccessSystemSecurity</command:parameterValue>
          </command:parameterValueGroup>
        </command:parameter>
        <!-- Parameter: Tokens -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Tokens</maml:name>
          <maml:description>
            <maml:para>Specify a list token objects.</maml:para>
          </maml:description>
          <command:parameterValue required="true">NtToken[]</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.NtToken[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <!-- Parameter: CheckMode -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>CheckMode</maml:name>
        <maml:description>
          <maml:para>Specify what objects to check for.</maml:para>
          <maml:para>Possible values: ProcessOnly, ThreadOnly, ProcessAndThread</maml:para>
        </maml:description>
        <command:parameterValue required="true">ProcessCheckMode</command:parameterValue>
        <dev:type>
          <maml:name>NtObjectManager.ProcessCheckMode</maml:name>
          <maml:uri />
          <maml:description>
            <maml:para>Specify what objects to query for.</maml:para>
          </maml:description>
        </dev:type>
        <dev:defaultValue>ProcessOnly</dev:defaultValue>
        <command:parameterValueGroup>
          <command:parameterValue required="false" variableLength="false">ProcessOnly</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">ThreadOnly</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">ProcessAndThread</command:parameterValue>
        </command:parameterValueGroup>
      </command:parameter>
      <!-- Parameter: ThreadAccessRights -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>ThreadAccessRights</maml:name>
        <maml:description>
          <maml:para>Specify specific access rights for threads.</maml:para>
          <maml:para>Possible values: Terminate, SuspendResume, Alert, GetContext, SetContext, SetInformation, QueryInformation, SetThreadToken, Impersonate, DirectImpersonation, SetLimitedInformation, QueryLimitedInformation, AllAccess, GenericRead, GenericWrite, GenericExecute, GenericAll, Delete, ReadControl, WriteDac, WriteOwner, Synchronize, MaximumAllowed, AccessSystemSecurity</maml:para>
        </maml:description>
        <command:parameterValue required="true">ThreadAccessRights</command:parameterValue>
        <dev:type>
          <maml:name>NtApiDotNet.ThreadAccessRights</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>0</dev:defaultValue>
        <command:parameterValueGroup>
          <command:parameterValue required="false" variableLength="false">Terminate</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">SuspendResume</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Alert</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GetContext</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">SetContext</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">SetInformation</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">QueryInformation</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">SetThreadToken</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Impersonate</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">DirectImpersonation</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">SetLimitedInformation</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">QueryLimitedInformation</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">AllAccess</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericRead</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericWrite</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericExecute</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericAll</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Delete</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">ReadControl</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteDac</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteOwner</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Synchronize</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">MaximumAllowed</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">AccessSystemSecurity</command:parameterValue>
        </command:parameterValueGroup>
      </command:parameter>
      <!-- Parameter: ShowDeadProcesses -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>ShowDeadProcesses</maml:name>
        <maml:description>
          <maml:para>Specify that dead processes should be shown.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: AccessRights -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>AccessRights</maml:name>
        <maml:description>
          <maml:para>Access rights to check for in an object's access.</maml:para>
          <maml:para>Possible values: None, CreateProcess, CreateThread, DupHandle, QueryInformation, QueryLimitedInformation, SetLimitedInformation, SetInformation, SetQuota, SuspendResume, Terminate, VmOperation, VmRead, VmWrite, AllAccess, GenericRead, GenericWrite, GenericExecute, GenericAll, Delete, ReadControl, WriteDac, WriteOwner, Synchronize, MaximumAllowed, AccessSystemSecurity</maml:para>
        </maml:description>
        <command:parameterValue required="true">ProcessAccessRights</command:parameterValue>
        <dev:type>
          <maml:name>NtApiDotNet.ProcessAccessRights</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
        <command:parameterValueGroup>
          <command:parameterValue required="false" variableLength="false">None</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">CreateProcess</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">CreateThread</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">DupHandle</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">QueryInformation</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">QueryLimitedInformation</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">SetLimitedInformation</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">SetInformation</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">SetQuota</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">SuspendResume</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Terminate</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">VmOperation</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">VmRead</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">VmWrite</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">AllAccess</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericRead</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericWrite</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericExecute</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericAll</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Delete</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">ReadControl</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteDac</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteOwner</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Synchronize</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">MaximumAllowed</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">AccessSystemSecurity</command:parameterValue>
        </command:parameterValueGroup>
      </command:parameter>
      <!-- Parameter: AllowPartialAccess -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>AllowPartialAccess</maml:name>
        <maml:description>
          <maml:para>If AccessRights specified require that only part of the access rights are required to match an access check.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: ProcessIds -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>ProcessIds</maml:name>
        <maml:description>
          <maml:para>Specify a list of process IDs to open for their tokens.</maml:para>
        </maml:description>
        <command:parameterValue required="true">int[]</command:parameterValue>
        <dev:type>
          <maml:name>System.Int32[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: ProcessNames -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>ProcessNames</maml:name>
        <maml:description>
          <maml:para>Specify a list of process names to open for their tokens.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: ProcessCommandLines -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>ProcessCommandLines</maml:name>
        <maml:description>
          <maml:para>Specify a list of command lines to filter on find for the process tokens.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Tokens -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Tokens</maml:name>
        <maml:description>
          <maml:para>Specify a list token objects.</maml:para>
        </maml:description>
        <command:parameterValue required="true">NtToken[]</command:parameterValue>
        <dev:type>
          <maml:name>NtApiDotNet.NtToken[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Processes -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Processes</maml:name>
        <maml:description>
          <maml:para>Specify a list of process objects to get tokens from.</maml:para>
        </maml:description>
        <command:parameterValue required="true">NtProcess[]</command:parameterValue>
        <dev:type>
          <maml:name>NtApiDotNet.NtProcess[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
    </command:parameters>
    <command:inputTypes />
    <command:returnValues>
      <!-- OutputType: ProcessAccessCheckResult -->
      <command:returnValue>
        <dev:type>
          <maml:name>NtObjectManager.ProcessAccessCheckResult</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>Access check result for a process.</maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <command:examples>
      <command:example>
        <maml:title>---------- EXAMPLE 1 ----------</maml:title>
        <dev:code>Get-AccessibleProcess</dev:code>
        <dev:remarks>
          <maml:para>Check all accessible processes for the current process token.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 2 ----------</maml:title>
        <dev:code>Get-AccessibleProcess -ProcessIds 1234,5678</dev:code>
        <dev:remarks>
          <maml:para>&gt;Check all accessible processes for the process tokens of PIDs 1234 and 5678</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 3 ----------</maml:title>
        <dev:code>$token = Get-NtToken -Primary -Duplicate -IntegrityLevel Low
Get-AccessibleProcess -Tokens $token -AccessRights GenericWrite</dev:code>
        <dev:remarks>
          <maml:para>Get all processes with can be written by a low integrity copy of current token.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
  </command:command>
  <!-- Cmdlet: Get-AccessibleService -->
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10">
    <command:details>
      <command:name>Get-AccessibleService</command:name>
      <command:verb>Get</command:verb>
      <command:noun>AccessibleService</command:noun>
      <maml:description>
        <maml:para>Get a list of services opened by a specified token.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This cmdlet checks all services and tries to determine if one or more specified tokens can open them to them. If no tokens are specified then the current process token is used.</maml:para>
    </maml:description>
    <command:syntax>
      <!-- Parameter set: __AllParameterSets -->
      <command:syntaxItem>
        <maml:name>Get-AccessibleService</maml:name>
        <!-- Parameter: Name -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="0">
          <maml:name>Name</maml:name>
          <maml:description>
            <maml:para>Specify names of services to check.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: AccessRights -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>AccessRights</maml:name>
          <maml:description>
            <maml:para>Access rights to check for in an object's access.</maml:para>
            <maml:para>Possible values: ChangeConfig, EnumerateDependents, Interrogate, PauseContinue, QueryConfig, QueryStatus, Start, Stop, UserDefinedControl, SetStatus, All, GenericRead, GenericWrite, GenericExecute, GenericAll, Delete, ReadControl, WriteDac, WriteOwner, Synchronize, MaximumAllowed, AccessSystemSecurity</maml:para>
          </maml:description>
          <command:parameterValue required="true">ServiceAccessRights</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.Win32.ServiceAccessRights</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>0</dev:defaultValue>
          <command:parameterValueGroup>
            <command:parameterValue required="false" variableLength="false">ChangeConfig</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">EnumerateDependents</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Interrogate</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">PauseContinue</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">QueryConfig</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">QueryStatus</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Start</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Stop</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">UserDefinedControl</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">SetStatus</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">All</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericRead</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericWrite</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericExecute</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericAll</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Delete</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ReadControl</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteDac</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteOwner</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Synchronize</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">MaximumAllowed</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">AccessSystemSecurity</command:parameterValue>
          </command:parameterValueGroup>
        </command:parameter>
        <!-- Parameter: AllowPartialAccess -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>AllowPartialAccess</maml:name>
          <maml:description>
            <maml:para>If AccessRights specified require that only part of the access rights are required to match an access check.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: CheckScmAccess -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>CheckScmAccess</maml:name>
          <maml:description>
            <maml:para>Check access to the SCM.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: ProcessCommandLines -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>ProcessCommandLines</maml:name>
          <maml:description>
            <maml:para>Specify a list of command lines to filter on find for the process tokens.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Processes -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Processes</maml:name>
          <maml:description>
            <maml:para>Specify a list of process objects to get tokens from.</maml:para>
          </maml:description>
          <command:parameterValue required="true">NtProcess[]</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.NtProcess[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: ProcessIds -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>ProcessIds</maml:name>
          <maml:description>
            <maml:para>Specify a list of process IDs to open for their tokens.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int[]</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: ProcessNames -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>ProcessNames</maml:name>
          <maml:description>
            <maml:para>Specify a list of process names to open for their tokens.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Tokens -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Tokens</maml:name>
          <maml:description>
            <maml:para>Specify a list token objects.</maml:para>
          </maml:description>
          <command:parameterValue required="true">NtToken[]</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.NtToken[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <!-- Parameter: Name -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="0">
        <maml:name>Name</maml:name>
        <maml:description>
          <maml:para>Specify names of services to check.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: CheckScmAccess -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>CheckScmAccess</maml:name>
        <maml:description>
          <maml:para>Check access to the SCM.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: AccessRights -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>AccessRights</maml:name>
        <maml:description>
          <maml:para>Access rights to check for in an object's access.</maml:para>
          <maml:para>Possible values: ChangeConfig, EnumerateDependents, Interrogate, PauseContinue, QueryConfig, QueryStatus, Start, Stop, UserDefinedControl, SetStatus, All, GenericRead, GenericWrite, GenericExecute, GenericAll, Delete, ReadControl, WriteDac, WriteOwner, Synchronize, MaximumAllowed, AccessSystemSecurity</maml:para>
        </maml:description>
        <command:parameterValue required="true">ServiceAccessRights</command:parameterValue>
        <dev:type>
          <maml:name>NtApiDotNet.Win32.ServiceAccessRights</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>0</dev:defaultValue>
        <command:parameterValueGroup>
          <command:parameterValue required="false" variableLength="false">ChangeConfig</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">EnumerateDependents</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Interrogate</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">PauseContinue</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">QueryConfig</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">QueryStatus</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Start</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Stop</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">UserDefinedControl</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">SetStatus</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">All</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericRead</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericWrite</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericExecute</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericAll</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Delete</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">ReadControl</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteDac</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteOwner</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Synchronize</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">MaximumAllowed</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">AccessSystemSecurity</command:parameterValue>
        </command:parameterValueGroup>
      </command:parameter>
      <!-- Parameter: AllowPartialAccess -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>AllowPartialAccess</maml:name>
        <maml:description>
          <maml:para>If AccessRights specified require that only part of the access rights are required to match an access check.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: ProcessIds -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>ProcessIds</maml:name>
        <maml:description>
          <maml:para>Specify a list of process IDs to open for their tokens.</maml:para>
        </maml:description>
        <command:parameterValue required="true">int[]</command:parameterValue>
        <dev:type>
          <maml:name>System.Int32[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: ProcessNames -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>ProcessNames</maml:name>
        <maml:description>
          <maml:para>Specify a list of process names to open for their tokens.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: ProcessCommandLines -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>ProcessCommandLines</maml:name>
        <maml:description>
          <maml:para>Specify a list of command lines to filter on find for the process tokens.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Tokens -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Tokens</maml:name>
        <maml:description>
          <maml:para>Specify a list token objects.</maml:para>
        </maml:description>
        <command:parameterValue required="true">NtToken[]</command:parameterValue>
        <dev:type>
          <maml:name>NtApiDotNet.NtToken[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Processes -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Processes</maml:name>
        <maml:description>
          <maml:para>Specify a list of process objects to get tokens from.</maml:para>
        </maml:description>
        <command:parameterValue required="true">NtProcess[]</command:parameterValue>
        <dev:type>
          <maml:name>NtApiDotNet.NtProcess[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
    </command:parameters>
    <command:inputTypes />
    <command:returnValues>
      <!-- OutputType: AccessCheckResult -->
      <command:returnValue>
        <dev:type>
          <maml:name>NtObjectManager.AccessCheckResult</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>General Access check result.</maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <command:examples>
      <command:example>
        <maml:title>---------- EXAMPLE 1 ----------</maml:title>
        <dev:code>Get-AccessibleService</dev:code>
        <dev:remarks>
          <maml:para>Check all accessible services for the current process token.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 2 ----------</maml:title>
        <dev:code>Get-AccessibleService -CheckScmAccess</dev:code>
        <dev:remarks>
          <maml:para>Check access to the SCM for the current process token.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 3 ----------</maml:title>
        <dev:code>Get-AccessibleService -ProcessIds 1234,5678</dev:code>
        <dev:remarks>
          <maml:para>&gt;Check all accessible services for the process tokens of PIDs 1234 and 5678</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 4 ----------</maml:title>
        <dev:code>$token = Get-NtToken -Primary -Duplicate -IntegrityLevel Low
Get-AccessibleService -Tokens $token -AccessRights GenericWrite</dev:code>
        <dev:remarks>
          <maml:para>Get all services with can be written by a low integrity copy of current token.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
  </command:command>
  <!-- Cmdlet: Add-DosDevice -->
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10">
    <command:details>
      <command:name>Add-DosDevice</command:name>
      <command:verb>Add</command:verb>
      <command:noun>DosDevice</command:noun>
      <maml:description>
        <maml:para>Create a DOS device symlink.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This cmdlet creates or redefines a DOS device symlink. This symlink will be permanent, until it's deleted rather than requiring a handle to be maintained.</maml:para>
    </maml:description>
    <command:syntax>
      <!-- Parameter set: __AllParameterSets -->
      <command:syntaxItem>
        <maml:name>Add-DosDevice</maml:name>
        <!-- Parameter: DeviceName -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="0">
          <maml:name>DeviceName</maml:name>
          <maml:description>
            <maml:para>The device name to create. If this string starts with a \ then the symlink will be created relative to the root of the object manager.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: TargetPath -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="1">
          <maml:name>TargetPath</maml:name>
          <maml:description>
            <maml:para>Specify the target path. This should be a DOS path, unless RawTargetPath is set then it can be arbitrary object manager path.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: NoBroadcastSystem -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>NoBroadcastSystem</maml:name>
          <maml:description>
            <maml:para>Don't broadcast the change to the desktop using WM_SETTINGCHANGE.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: RawTargetPath -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>RawTargetPath</maml:name>
          <maml:description>
            <maml:para>Specify the TargetPath as a raw object manager path.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <!-- Parameter: DeviceName -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="0">
        <maml:name>DeviceName</maml:name>
        <maml:description>
          <maml:para>The device name to create. If this string starts with a \ then the symlink will be created relative to the root of the object manager.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: TargetPath -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="1">
        <maml:name>TargetPath</maml:name>
        <maml:description>
          <maml:para>Specify the target path. This should be a DOS path, unless RawTargetPath is set then it can be arbitrary object manager path.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: NoBroadcastSystem -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>NoBroadcastSystem</maml:name>
        <maml:description>
          <maml:para>Don't broadcast the change to the desktop using WM_SETTINGCHANGE.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: RawTargetPath -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>RawTargetPath</maml:name>
        <maml:description>
          <maml:para>Specify the TargetPath as a raw object manager path.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes />
    <command:returnValues />
    <command:examples>
      <command:example>
        <maml:title>---------- EXAMPLE 1 ----------</maml:title>
        <dev:code>Add-DosDevice Z: C:\Windows</dev:code>
        <dev:remarks>
          <maml:para>Define a Z: drive which points to C:\Windows.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 2 ----------</maml:title>
        <dev:code>Add-DosDevice Z: \Device\HarddiskVolume1\windows -RawTargetPath</dev:code>
        <dev:remarks>
          <maml:para>Define a Z: drive which points to Windows using a raw target path.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 3 ----------</maml:title>
        <dev:code>Add-DosDevice "\RPC Control\ABC" c:\Windows</dev:code>
        <dev:remarks>
          <maml:para>Define the symlink '\RPC Control\ABC' drive which points to c:\Windows.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 4 ----------</maml:title>
        <dev:code>Add-DosDevice Z: C:\Windows -NoBroadcastSystem</dev:code>
        <dev:remarks>
          <maml:para>Define a Z: drive which points to C:\Windows but don't broadcast the changes to applications on the desktop.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
  </command:command>
  <!-- Cmdlet: Remove-DosDevice -->
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10">
    <command:details>
      <command:name>Remove-DosDevice</command:name>
      <command:verb>Remove</command:verb>
      <command:noun>DosDevice</command:noun>
      <maml:description>
        <maml:para>Remove a DOS device symlink.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This cmdlet removes a DOS device symlink.</maml:para>
    </maml:description>
    <command:syntax>
      <!-- Parameter set: __AllParameterSets -->
      <command:syntaxItem>
        <maml:name>Remove-DosDevice</maml:name>
        <!-- Parameter: DeviceName -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="0">
          <maml:name>DeviceName</maml:name>
          <maml:description>
            <maml:para>The device name to create. If this string starts with a \ then the symlink will be created relative to the root of the object manager.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: ExactMatchTargetPath -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="1">
          <maml:name>ExactMatchTargetPath</maml:name>
          <maml:description>
            <maml:para>Specify an exact target path to remove. If the symlink doesn't match this target then it will not be removed.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: NoBroadcastSystem -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>NoBroadcastSystem</maml:name>
          <maml:description>
            <maml:para>Don't broadcast the change to the desktop using WM_SETTINGCHANGE.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: RawTargetPath -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>RawTargetPath</maml:name>
          <maml:description>
            <maml:para>Specify the TargetPath as a raw object manager path.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <!-- Parameter: DeviceName -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="0">
        <maml:name>DeviceName</maml:name>
        <maml:description>
          <maml:para>The device name to create. If this string starts with a \ then the symlink will be created relative to the root of the object manager.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: ExactMatchTargetPath -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="1">
        <maml:name>ExactMatchTargetPath</maml:name>
        <maml:description>
          <maml:para>Specify an exact target path to remove. If the symlink doesn't match this target then it will not be removed.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: NoBroadcastSystem -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>NoBroadcastSystem</maml:name>
        <maml:description>
          <maml:para>Don't broadcast the change to the desktop using WM_SETTINGCHANGE.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: RawTargetPath -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>RawTargetPath</maml:name>
        <maml:description>
          <maml:para>Specify the TargetPath as a raw object manager path.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes />
    <command:returnValues />
    <command:examples>
      <command:example>
        <maml:title>---------- EXAMPLE 1 ----------</maml:title>
        <dev:code>Remove-DosDevice Z:</dev:code>
        <dev:remarks>
          <maml:para>Remove the Z: drive.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 2 ----------</maml:title>
        <dev:code>Remove-DosDevice Z: \Device\HarddiskVolume1\windows -RawTargetPath</dev:code>
        <dev:remarks>
          <maml:para>Remove the Z: drive, which must point to \Device\HarddiskVolume1\Windows.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 3 ----------</maml:title>
        <dev:code>Remove-DosDevice Z: c:\windows</dev:code>
        <dev:remarks>
          <maml:para>Remove the Z: drive, which must point to c:\Windows.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 4 ----------</maml:title>
        <dev:code>Remove-DosDevice "\RPC Control\ABC"</dev:code>
        <dev:remarks>
          <maml:para>Remove '\RPC Control\ABC' symlink.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
  </command:command>
  <!-- Cmdlet: Get-NtAccessMask -->
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10">
    <command:details>
      <command:name>Get-NtAccessMask</command:name>
      <command:verb>Get</command:verb>
      <command:noun>NtAccessMask</command:noun>
      <maml:description>
        <maml:para>Convert a specific object access to an AccessMask or GenericAccess.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This cmdlet allows you to convert a specific object access to an AccessMask or GenericAccess for use in general functions.</maml:para>
    </maml:description>
    <command:syntax>
      <!-- Parameter set: __AllParameterSets -->
      <command:syntaxItem>
        <maml:name>Get-NtAccessMask</maml:name>
        <!-- Parameter: AccessMask -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>AccessMask</maml:name>
          <maml:description>
            <maml:para>Specify a raw access mask.</maml:para>
          </maml:description>
          <command:parameterValue required="true">AccessMask</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.AccessMask</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>00000000</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: AlpcPortAccess -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>AlpcPortAccess</maml:name>
          <maml:description>
            <maml:para>Specify ALPC Port access rights.</maml:para>
            <maml:para>Possible values: Connect, GenericRead, GenericWrite, GenericExecute, GenericAll, Delete, ReadControl, WriteDac, WriteOwner, Synchronize, MaximumAllowed, AccessSystemSecurity</maml:para>
          </maml:description>
          <command:parameterValue required="true">AlpcAccessRights</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.AlpcAccessRights</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>0</dev:defaultValue>
          <command:parameterValueGroup>
            <command:parameterValue required="false" variableLength="false">Connect</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericRead</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericWrite</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericExecute</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericAll</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Delete</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ReadControl</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteDac</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteOwner</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Synchronize</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">MaximumAllowed</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">AccessSystemSecurity</command:parameterValue>
          </command:parameterValueGroup>
        </command:parameter>
        <!-- Parameter: DebugObjectAccess -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>DebugObjectAccess</maml:name>
          <maml:description>
            <maml:para>Specify Debug Object access rights.</maml:para>
            <maml:para>Possible values: ReadEvent, ProcessAssign, SetInformation, QueryInformation, GenericRead, GenericWrite, GenericExecute, GenericAll, Delete, ReadControl, WriteDac, WriteOwner, Synchronize, MaximumAllowed, AccessSystemSecurity</maml:para>
          </maml:description>
          <command:parameterValue required="true">DebugAccessRights</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.DebugAccessRights</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>0</dev:defaultValue>
          <command:parameterValueGroup>
            <command:parameterValue required="false" variableLength="false">ReadEvent</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ProcessAssign</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">SetInformation</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">QueryInformation</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericRead</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericWrite</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericExecute</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericAll</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Delete</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ReadControl</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteDac</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteOwner</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Synchronize</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">MaximumAllowed</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">AccessSystemSecurity</command:parameterValue>
          </command:parameterValueGroup>
        </command:parameter>
        <!-- Parameter: DirectoryAccess -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>DirectoryAccess</maml:name>
          <maml:description>
            <maml:para>Specify Directory access rights.</maml:para>
            <maml:para>Possible values: Query, Traverse, CreateObject, CreateSubDirectory, GenericRead, GenericWrite, GenericExecute, GenericAll, Delete, ReadControl, WriteDac, WriteOwner, Synchronize, MaximumAllowed, AccessSystemSecurity</maml:para>
          </maml:description>
          <command:parameterValue required="true">DirectoryAccessRights</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.DirectoryAccessRights</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>0</dev:defaultValue>
          <command:parameterValueGroup>
            <command:parameterValue required="false" variableLength="false">Query</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Traverse</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">CreateObject</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">CreateSubDirectory</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericRead</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericWrite</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericExecute</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericAll</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Delete</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ReadControl</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteDac</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteOwner</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Synchronize</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">MaximumAllowed</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">AccessSystemSecurity</command:parameterValue>
          </command:parameterValueGroup>
        </command:parameter>
        <!-- Parameter: EventAccess -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>EventAccess</maml:name>
          <maml:description>
            <maml:para>Specify Event access rights.</maml:para>
            <maml:para>Possible values: QueryState, ModifyState, GenericRead, GenericWrite, GenericExecute, GenericAll, Delete, ReadControl, WriteDac, WriteOwner, Synchronize, MaximumAllowed, AccessSystemSecurity</maml:para>
          </maml:description>
          <command:parameterValue required="true">EventAccessRights</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.EventAccessRights</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>0</dev:defaultValue>
          <command:parameterValueGroup>
            <command:parameterValue required="false" variableLength="false">QueryState</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ModifyState</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericRead</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericWrite</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericExecute</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericAll</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Delete</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ReadControl</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteDac</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteOwner</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Synchronize</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">MaximumAllowed</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">AccessSystemSecurity</command:parameterValue>
          </command:parameterValueGroup>
        </command:parameter>
        <!-- Parameter: FileAccess -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>FileAccess</maml:name>
          <maml:description>
            <maml:para>Specify File access rights.</maml:para>
            <maml:para>Possible values: None, ReadData, WriteData, AppendData, ReadEa, WriteEa, Execute, DeleteChild, ReadAttributes, WriteAttributes, GenericRead, GenericWrite, GenericExecute, GenericAll, Delete, ReadControl, WriteDac, WriteOwner, Synchronize, MaximumAllowed, AccessSystemSecurity</maml:para>
          </maml:description>
          <command:parameterValue required="true">FileAccessRights</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.FileAccessRights</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
          <command:parameterValueGroup>
            <command:parameterValue required="false" variableLength="false">None</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ReadData</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteData</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">AppendData</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ReadEa</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteEa</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Execute</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">DeleteChild</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ReadAttributes</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteAttributes</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericRead</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericWrite</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericExecute</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericAll</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Delete</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ReadControl</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteDac</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteOwner</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Synchronize</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">MaximumAllowed</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">AccessSystemSecurity</command:parameterValue>
          </command:parameterValueGroup>
        </command:parameter>
        <!-- Parameter: FileDirectoryAccess -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>FileDirectoryAccess</maml:name>
          <maml:description>
            <maml:para>Specify File Directory access rights.</maml:para>
            <maml:para>Possible values: None, ListDirectory, AddFile, AddSubDirectory, ReadEa, WriteEa, Traverse, DeleteChild, ReadAttributes, WriteAttributes, GenericRead, GenericWrite, GenericExecute, GenericAll, Delete, ReadControl, WriteDac, WriteOwner, Synchronize, MaximumAllowed, AccessSystemSecurity</maml:para>
          </maml:description>
          <command:parameterValue required="true">FileDirectoryAccessRights</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.FileDirectoryAccessRights</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
          <command:parameterValueGroup>
            <command:parameterValue required="false" variableLength="false">None</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ListDirectory</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">AddFile</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">AddSubDirectory</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ReadEa</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteEa</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Traverse</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">DeleteChild</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ReadAttributes</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteAttributes</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericRead</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericWrite</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericExecute</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericAll</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Delete</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ReadControl</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteDac</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteOwner</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Synchronize</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">MaximumAllowed</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">AccessSystemSecurity</command:parameterValue>
          </command:parameterValueGroup>
        </command:parameter>
        <!-- Parameter: GenericAccess -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>GenericAccess</maml:name>
          <maml:description>
            <maml:para>Specify Generic access rights.</maml:para>
            <maml:para>Possible values: None, Access0, Access1, Access2, Access3, Access4, Access5, Access6, Access7, Access8, Access9, Access10, Access11, Access12, Access13, Access14, Access15, Delete, ReadControl, WriteDac, WriteOwner, Synchronize, AccessSystemSecurity, MaximumAllowed, GenericAll, GenericExecute, GenericWrite, GenericRead</maml:para>
          </maml:description>
          <command:parameterValue required="true">GenericAccessRights</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.GenericAccessRights</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
          <command:parameterValueGroup>
            <command:parameterValue required="false" variableLength="false">None</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Access0</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Access1</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Access2</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Access3</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Access4</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Access5</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Access6</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Access7</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Access8</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Access9</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Access10</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Access11</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Access12</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Access13</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Access14</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Access15</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Delete</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ReadControl</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteDac</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteOwner</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Synchronize</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">AccessSystemSecurity</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">MaximumAllowed</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericAll</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericExecute</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericWrite</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericRead</command:parameterValue>
          </command:parameterValueGroup>
        </command:parameter>
        <!-- Parameter: IoCompletionAccess -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>IoCompletionAccess</maml:name>
          <maml:description>
            <maml:para>Specify IO Completion access rights.</maml:para>
            <maml:para>Possible values: QueryState, SetCompletion, GenericRead, GenericWrite, GenericExecute, GenericAll, Delete, ReadControl, WriteDac, WriteOwner, Synchronize, MaximumAllowed, AccessSystemSecurity</maml:para>
          </maml:description>
          <command:parameterValue required="true">IoCompletionAccessRights</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.IoCompletionAccessRights</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>0</dev:defaultValue>
          <command:parameterValueGroup>
            <command:parameterValue required="false" variableLength="false">QueryState</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">SetCompletion</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericRead</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericWrite</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericExecute</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericAll</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Delete</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ReadControl</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteDac</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteOwner</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Synchronize</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">MaximumAllowed</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">AccessSystemSecurity</command:parameterValue>
          </command:parameterValueGroup>
        </command:parameter>
        <!-- Parameter: JobAccess -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>JobAccess</maml:name>
          <maml:description>
            <maml:para>Specify Job access rights.</maml:para>
            <maml:para>Possible values: None, AssignProcess, SetAttributes, Query, Terminate, SetSecurityAttributes, Impersonate, GenericRead, GenericWrite, GenericExecute, GenericAll, Delete, ReadControl, WriteDac, WriteOwner, Synchronize, MaximumAllowed, AccessSystemSecurity</maml:para>
          </maml:description>
          <command:parameterValue required="true">JobAccessRights</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.JobAccessRights</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
          <command:parameterValueGroup>
            <command:parameterValue required="false" variableLength="false">None</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">AssignProcess</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">SetAttributes</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Query</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Terminate</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">SetSecurityAttributes</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Impersonate</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericRead</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericWrite</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericExecute</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericAll</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Delete</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ReadControl</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteDac</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteOwner</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Synchronize</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">MaximumAllowed</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">AccessSystemSecurity</command:parameterValue>
          </command:parameterValueGroup>
        </command:parameter>
        <!-- Parameter: KeyAccess -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>KeyAccess</maml:name>
          <maml:description>
            <maml:para>Specify Key access rights.</maml:para>
            <maml:para>Possible values: QueryValue, SetValue, CreateSubKey, EnumerateSubKeys, Notify, CreateLink, GenericRead, GenericWrite, GenericExecute, GenericAll, Delete, ReadControl, WriteDac, WriteOwner, Synchronize, MaximumAllowed, AccessSystemSecurity</maml:para>
          </maml:description>
          <command:parameterValue required="true">KeyAccessRights</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.KeyAccessRights</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>0</dev:defaultValue>
          <command:parameterValueGroup>
            <command:parameterValue required="false" variableLength="false">QueryValue</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">SetValue</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">CreateSubKey</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">EnumerateSubKeys</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Notify</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">CreateLink</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericRead</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericWrite</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericExecute</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericAll</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Delete</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ReadControl</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteDac</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteOwner</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Synchronize</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">MaximumAllowed</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">AccessSystemSecurity</command:parameterValue>
          </command:parameterValueGroup>
        </command:parameter>
        <!-- Parameter: ManadatoryLabelPolicy -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>ManadatoryLabelPolicy</maml:name>
          <maml:description>
            <maml:para>Specify mandatory label policy.</maml:para>
            <maml:para>Possible values: NoWriteUp, NoReadUp, NoExecuteUp</maml:para>
          </maml:description>
          <command:parameterValue required="true">MandatoryLabelPolicy</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.MandatoryLabelPolicy</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>0</dev:defaultValue>
          <command:parameterValueGroup>
            <command:parameterValue required="false" variableLength="false">NoWriteUp</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">NoReadUp</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">NoExecuteUp</command:parameterValue>
          </command:parameterValueGroup>
        </command:parameter>
        <!-- Parameter: MapGenericRights -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>MapGenericRights</maml:name>
          <maml:description>
            <maml:para>Specify that any generic rights should be mapped to type specific rights.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: MutantAccess -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>MutantAccess</maml:name>
          <maml:description>
            <maml:para>Specify Mutant access rights.</maml:para>
            <maml:para>Possible values: None, QueryState, GenericRead, GenericWrite, GenericExecute, GenericAll, Delete, ReadControl, WriteDac, WriteOwner, Synchronize, MaximumAllowed, AccessSystemSecurity</maml:para>
          </maml:description>
          <command:parameterValue required="true">MutantAccessRights</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.MutantAccessRights</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
          <command:parameterValueGroup>
            <command:parameterValue required="false" variableLength="false">None</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">QueryState</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericRead</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericWrite</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericExecute</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericAll</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Delete</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ReadControl</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteDac</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteOwner</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Synchronize</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">MaximumAllowed</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">AccessSystemSecurity</command:parameterValue>
          </command:parameterValueGroup>
        </command:parameter>
        <!-- Parameter: ProcessAccess -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>ProcessAccess</maml:name>
          <maml:description>
            <maml:para>Specify Process access rights.</maml:para>
            <maml:para>Possible values: None, CreateProcess, CreateThread, DupHandle, QueryInformation, QueryLimitedInformation, SetLimitedInformation, SetInformation, SetQuota, SuspendResume, Terminate, VmOperation, VmRead, VmWrite, AllAccess, GenericRead, GenericWrite, GenericExecute, GenericAll, Delete, ReadControl, WriteDac, WriteOwner, Synchronize, MaximumAllowed, AccessSystemSecurity</maml:para>
          </maml:description>
          <command:parameterValue required="true">ProcessAccessRights</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.ProcessAccessRights</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
          <command:parameterValueGroup>
            <command:parameterValue required="false" variableLength="false">None</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">CreateProcess</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">CreateThread</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">DupHandle</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">QueryInformation</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">QueryLimitedInformation</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">SetLimitedInformation</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">SetInformation</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">SetQuota</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">SuspendResume</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Terminate</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">VmOperation</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">VmRead</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">VmWrite</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">AllAccess</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericRead</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericWrite</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericExecute</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericAll</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Delete</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ReadControl</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteDac</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteOwner</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Synchronize</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">MaximumAllowed</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">AccessSystemSecurity</command:parameterValue>
          </command:parameterValueGroup>
        </command:parameter>
        <!-- Parameter: RegistryTransactionAccess -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>RegistryTransactionAccess</maml:name>
          <maml:description>
            <maml:para>Specify Registry Transaction access rights.</maml:para>
            <maml:para>Possible values: QueryInformation, SetInformation, Enlist, Commit, Rollback, Propagate, GenericRead, GenericWrite, GenericExecute, GenericAll, Delete, ReadControl, WriteDac, WriteOwner, Synchronize, MaximumAllowed, AccessSystemSecurity</maml:para>
          </maml:description>
          <command:parameterValue required="true">RegistryTransactionAccessRights</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.RegistryTransactionAccessRights</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>0</dev:defaultValue>
          <command:parameterValueGroup>
            <command:parameterValue required="false" variableLength="false">QueryInformation</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">SetInformation</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Enlist</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Commit</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Rollback</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Propagate</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericRead</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericWrite</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericExecute</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericAll</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Delete</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ReadControl</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteDac</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteOwner</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Synchronize</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">MaximumAllowed</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">AccessSystemSecurity</command:parameterValue>
          </command:parameterValueGroup>
        </command:parameter>
        <!-- Parameter: SectionAccess -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>SectionAccess</maml:name>
          <maml:description>
            <maml:para>Specify Section access rights.</maml:para>
            <maml:para>Possible values: Query, MapWrite, MapRead, MapExecute, ExtendSize, MapExecuteExplicit, GenericRead, GenericWrite, GenericExecute, GenericAll, Delete, ReadControl, WriteDac, WriteOwner, Synchronize, MaximumAllowed, AccessSystemSecurity</maml:para>
          </maml:description>
          <command:parameterValue required="true">SectionAccessRights</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.SectionAccessRights</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>0</dev:defaultValue>
          <command:parameterValueGroup>
            <command:parameterValue required="false" variableLength="false">Query</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">MapWrite</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">MapRead</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">MapExecute</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ExtendSize</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">MapExecuteExplicit</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericRead</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericWrite</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericExecute</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericAll</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Delete</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ReadControl</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteDac</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteOwner</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Synchronize</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">MaximumAllowed</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">AccessSystemSecurity</command:parameterValue>
          </command:parameterValueGroup>
        </command:parameter>
        <!-- Parameter: SemaphoreAccess -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>SemaphoreAccess</maml:name>
          <maml:description>
            <maml:para>Specify Semaphore access rights.</maml:para>
            <maml:para>Possible values: None, QueryState, ModifyState, GenericRead, GenericWrite, GenericExecute, GenericAll, Delete, ReadControl, WriteDac, WriteOwner, Synchronize, MaximumAllowed, AccessSystemSecurity</maml:para>
          </maml:description>
          <command:parameterValue required="true">SemaphoreAccessRights</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.SemaphoreAccessRights</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
          <command:parameterValueGroup>
            <command:parameterValue required="false" variableLength="false">None</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">QueryState</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ModifyState</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericRead</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericWrite</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericExecute</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericAll</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Delete</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ReadControl</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteDac</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteOwner</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Synchronize</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">MaximumAllowed</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">AccessSystemSecurity</command:parameterValue>
          </command:parameterValueGroup>
        </command:parameter>
        <!-- Parameter: SymbolicLinkAccess -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>SymbolicLinkAccess</maml:name>
          <maml:description>
            <maml:para>Specify Symbolic Link access rights.</maml:para>
            <maml:para>Possible values: Query, GenericRead, GenericWrite, GenericExecute, GenericAll, Delete, ReadControl, WriteDac, WriteOwner, Synchronize, MaximumAllowed</maml:para>
          </maml:description>
          <command:parameterValue required="true">SymbolicLinkAccessRights</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.SymbolicLinkAccessRights</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>0</dev:defaultValue>
          <command:parameterValueGroup>
            <command:parameterValue required="false" variableLength="false">Query</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericRead</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericWrite</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericExecute</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericAll</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Delete</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ReadControl</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteDac</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteOwner</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Synchronize</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">MaximumAllowed</command:parameterValue>
          </command:parameterValueGroup>
        </command:parameter>
        <!-- Parameter: ThreadAccess -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>ThreadAccess</maml:name>
          <maml:description>
            <maml:para>Specify Thread access rights.</maml:para>
            <maml:para>Possible values: Terminate, SuspendResume, Alert, GetContext, SetContext, SetInformation, QueryInformation, SetThreadToken, Impersonate, DirectImpersonation, SetLimitedInformation, QueryLimitedInformation, AllAccess, GenericRead, GenericWrite, GenericExecute, GenericAll, Delete, ReadControl, WriteDac, WriteOwner, Synchronize, MaximumAllowed, AccessSystemSecurity</maml:para>
          </maml:description>
          <command:parameterValue required="true">ThreadAccessRights</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.ThreadAccessRights</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>0</dev:defaultValue>
          <command:parameterValueGroup>
            <command:parameterValue required="false" variableLength="false">Terminate</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">SuspendResume</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Alert</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GetContext</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">SetContext</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">SetInformation</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">QueryInformation</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">SetThreadToken</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Impersonate</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">DirectImpersonation</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">SetLimitedInformation</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">QueryLimitedInformation</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">AllAccess</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericRead</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericWrite</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericExecute</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericAll</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Delete</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ReadControl</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteDac</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteOwner</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Synchronize</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">MaximumAllowed</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">AccessSystemSecurity</command:parameterValue>
          </command:parameterValueGroup>
        </command:parameter>
        <!-- Parameter: ToGenericAccess -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>ToGenericAccess</maml:name>
          <maml:description>
            <maml:para>Return access as GenericAccess.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: TokenAccess -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>TokenAccess</maml:name>
          <maml:description>
            <maml:para>Specify Token access rights.</maml:para>
            <maml:para>Possible values: AssignPrimary, Duplicate, Impersonate, Query, QuerySource, AdjustPrivileges, AdjustGroups, AdjustDefault, AdjustSessionId, GenericRead, GenericWrite, GenericExecute, GenericAll, Delete, ReadControl, WriteDac, WriteOwner, Synchronize, MaximumAllowed, AccessSystemSecurity</maml:para>
          </maml:description>
          <command:parameterValue required="true">TokenAccessRights</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.TokenAccessRights</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>0</dev:defaultValue>
          <command:parameterValueGroup>
            <command:parameterValue required="false" variableLength="false">AssignPrimary</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Duplicate</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Impersonate</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Query</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">QuerySource</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">AdjustPrivileges</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">AdjustGroups</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">AdjustDefault</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">AdjustSessionId</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericRead</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericWrite</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericExecute</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericAll</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Delete</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ReadControl</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteDac</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteOwner</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Synchronize</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">MaximumAllowed</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">AccessSystemSecurity</command:parameterValue>
          </command:parameterValueGroup>
        </command:parameter>
        <!-- Parameter: ToMandatoryLabelPolicy -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>ToMandatoryLabelPolicy</maml:name>
          <maml:description>
            <maml:para>Return access as ManadatoryLabelPolicy.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: ToSpecificAccess -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>ToSpecificAccess</maml:name>
          <maml:description>
            <maml:para>Return access as specific access type based on the NtType.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <!-- Parameter: AccessMask -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>AccessMask</maml:name>
        <maml:description>
          <maml:para>Specify a raw access mask.</maml:para>
        </maml:description>
        <command:parameterValue required="true">AccessMask</command:parameterValue>
        <dev:type>
          <maml:name>NtApiDotNet.AccessMask</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>00000000</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: ToGenericAccess -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>ToGenericAccess</maml:name>
        <maml:description>
          <maml:para>Return access as GenericAccess.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: ToMandatoryLabelPolicy -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>ToMandatoryLabelPolicy</maml:name>
        <maml:description>
          <maml:para>Return access as ManadatoryLabelPolicy.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: ToSpecificAccess -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>ToSpecificAccess</maml:name>
        <maml:description>
          <maml:para>Return access as specific access type based on the NtType.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: MapGenericRights -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>MapGenericRights</maml:name>
        <maml:description>
          <maml:para>Specify that any generic rights should be mapped to type specific rights.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: FileAccess -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>FileAccess</maml:name>
        <maml:description>
          <maml:para>Specify File access rights.</maml:para>
          <maml:para>Possible values: None, ReadData, WriteData, AppendData, ReadEa, WriteEa, Execute, DeleteChild, ReadAttributes, WriteAttributes, GenericRead, GenericWrite, GenericExecute, GenericAll, Delete, ReadControl, WriteDac, WriteOwner, Synchronize, MaximumAllowed, AccessSystemSecurity</maml:para>
        </maml:description>
        <command:parameterValue required="true">FileAccessRights</command:parameterValue>
        <dev:type>
          <maml:name>NtApiDotNet.FileAccessRights</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
        <command:parameterValueGroup>
          <command:parameterValue required="false" variableLength="false">None</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">ReadData</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteData</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">AppendData</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">ReadEa</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteEa</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Execute</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">DeleteChild</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">ReadAttributes</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteAttributes</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericRead</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericWrite</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericExecute</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericAll</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Delete</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">ReadControl</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteDac</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteOwner</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Synchronize</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">MaximumAllowed</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">AccessSystemSecurity</command:parameterValue>
        </command:parameterValueGroup>
      </command:parameter>
      <!-- Parameter: FileDirectoryAccess -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>FileDirectoryAccess</maml:name>
        <maml:description>
          <maml:para>Specify File Directory access rights.</maml:para>
          <maml:para>Possible values: None, ListDirectory, AddFile, AddSubDirectory, ReadEa, WriteEa, Traverse, DeleteChild, ReadAttributes, WriteAttributes, GenericRead, GenericWrite, GenericExecute, GenericAll, Delete, ReadControl, WriteDac, WriteOwner, Synchronize, MaximumAllowed, AccessSystemSecurity</maml:para>
        </maml:description>
        <command:parameterValue required="true">FileDirectoryAccessRights</command:parameterValue>
        <dev:type>
          <maml:name>NtApiDotNet.FileDirectoryAccessRights</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
        <command:parameterValueGroup>
          <command:parameterValue required="false" variableLength="false">None</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">ListDirectory</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">AddFile</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">AddSubDirectory</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">ReadEa</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteEa</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Traverse</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">DeleteChild</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">ReadAttributes</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteAttributes</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericRead</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericWrite</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericExecute</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericAll</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Delete</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">ReadControl</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteDac</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteOwner</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Synchronize</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">MaximumAllowed</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">AccessSystemSecurity</command:parameterValue>
        </command:parameterValueGroup>
      </command:parameter>
      <!-- Parameter: IoCompletionAccess -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>IoCompletionAccess</maml:name>
        <maml:description>
          <maml:para>Specify IO Completion access rights.</maml:para>
          <maml:para>Possible values: QueryState, SetCompletion, GenericRead, GenericWrite, GenericExecute, GenericAll, Delete, ReadControl, WriteDac, WriteOwner, Synchronize, MaximumAllowed, AccessSystemSecurity</maml:para>
        </maml:description>
        <command:parameterValue required="true">IoCompletionAccessRights</command:parameterValue>
        <dev:type>
          <maml:name>NtApiDotNet.IoCompletionAccessRights</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>0</dev:defaultValue>
        <command:parameterValueGroup>
          <command:parameterValue required="false" variableLength="false">QueryState</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">SetCompletion</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericRead</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericWrite</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericExecute</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericAll</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Delete</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">ReadControl</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteDac</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteOwner</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Synchronize</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">MaximumAllowed</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">AccessSystemSecurity</command:parameterValue>
        </command:parameterValueGroup>
      </command:parameter>
      <!-- Parameter: MutantAccess -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>MutantAccess</maml:name>
        <maml:description>
          <maml:para>Specify Mutant access rights.</maml:para>
          <maml:para>Possible values: None, QueryState, GenericRead, GenericWrite, GenericExecute, GenericAll, Delete, ReadControl, WriteDac, WriteOwner, Synchronize, MaximumAllowed, AccessSystemSecurity</maml:para>
        </maml:description>
        <command:parameterValue required="true">MutantAccessRights</command:parameterValue>
        <dev:type>
          <maml:name>NtApiDotNet.MutantAccessRights</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
        <command:parameterValueGroup>
          <command:parameterValue required="false" variableLength="false">None</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">QueryState</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericRead</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericWrite</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericExecute</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericAll</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Delete</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">ReadControl</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteDac</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteOwner</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Synchronize</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">MaximumAllowed</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">AccessSystemSecurity</command:parameterValue>
        </command:parameterValueGroup>
      </command:parameter>
      <!-- Parameter: SemaphoreAccess -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>SemaphoreAccess</maml:name>
        <maml:description>
          <maml:para>Specify Semaphore access rights.</maml:para>
          <maml:para>Possible values: None, QueryState, ModifyState, GenericRead, GenericWrite, GenericExecute, GenericAll, Delete, ReadControl, WriteDac, WriteOwner, Synchronize, MaximumAllowed, AccessSystemSecurity</maml:para>
        </maml:description>
        <command:parameterValue required="true">SemaphoreAccessRights</command:parameterValue>
        <dev:type>
          <maml:name>NtApiDotNet.SemaphoreAccessRights</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
        <command:parameterValueGroup>
          <command:parameterValue required="false" variableLength="false">None</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">QueryState</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">ModifyState</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericRead</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericWrite</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericExecute</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericAll</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Delete</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">ReadControl</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteDac</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteOwner</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Synchronize</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">MaximumAllowed</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">AccessSystemSecurity</command:parameterValue>
        </command:parameterValueGroup>
      </command:parameter>
      <!-- Parameter: RegistryTransactionAccess -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>RegistryTransactionAccess</maml:name>
        <maml:description>
          <maml:para>Specify Registry Transaction access rights.</maml:para>
          <maml:para>Possible values: QueryInformation, SetInformation, Enlist, Commit, Rollback, Propagate, GenericRead, GenericWrite, GenericExecute, GenericAll, Delete, ReadControl, WriteDac, WriteOwner, Synchronize, MaximumAllowed, AccessSystemSecurity</maml:para>
        </maml:description>
        <command:parameterValue required="true">RegistryTransactionAccessRights</command:parameterValue>
        <dev:type>
          <maml:name>NtApiDotNet.RegistryTransactionAccessRights</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>0</dev:defaultValue>
        <command:parameterValueGroup>
          <command:parameterValue required="false" variableLength="false">QueryInformation</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">SetInformation</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Enlist</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Commit</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Rollback</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Propagate</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericRead</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericWrite</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericExecute</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericAll</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Delete</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">ReadControl</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteDac</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteOwner</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Synchronize</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">MaximumAllowed</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">AccessSystemSecurity</command:parameterValue>
        </command:parameterValueGroup>
      </command:parameter>
      <!-- Parameter: AlpcPortAccess -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>AlpcPortAccess</maml:name>
        <maml:description>
          <maml:para>Specify ALPC Port access rights.</maml:para>
          <maml:para>Possible values: Connect, GenericRead, GenericWrite, GenericExecute, GenericAll, Delete, ReadControl, WriteDac, WriteOwner, Synchronize, MaximumAllowed, AccessSystemSecurity</maml:para>
        </maml:description>
        <command:parameterValue required="true">AlpcAccessRights</command:parameterValue>
        <dev:type>
          <maml:name>NtApiDotNet.AlpcAccessRights</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>0</dev:defaultValue>
        <command:parameterValueGroup>
          <command:parameterValue required="false" variableLength="false">Connect</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericRead</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericWrite</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericExecute</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericAll</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Delete</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">ReadControl</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteDac</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteOwner</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Synchronize</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">MaximumAllowed</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">AccessSystemSecurity</command:parameterValue>
        </command:parameterValueGroup>
      </command:parameter>
      <!-- Parameter: SectionAccess -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>SectionAccess</maml:name>
        <maml:description>
          <maml:para>Specify Section access rights.</maml:para>
          <maml:para>Possible values: Query, MapWrite, MapRead, MapExecute, ExtendSize, MapExecuteExplicit, GenericRead, GenericWrite, GenericExecute, GenericAll, Delete, ReadControl, WriteDac, WriteOwner, Synchronize, MaximumAllowed, AccessSystemSecurity</maml:para>
        </maml:description>
        <command:parameterValue required="true">SectionAccessRights</command:parameterValue>
        <dev:type>
          <maml:name>NtApiDotNet.SectionAccessRights</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>0</dev:defaultValue>
        <command:parameterValueGroup>
          <command:parameterValue required="false" variableLength="false">Query</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">MapWrite</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">MapRead</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">MapExecute</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">ExtendSize</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">MapExecuteExplicit</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericRead</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericWrite</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericExecute</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericAll</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Delete</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">ReadControl</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteDac</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteOwner</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Synchronize</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">MaximumAllowed</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">AccessSystemSecurity</command:parameterValue>
        </command:parameterValueGroup>
      </command:parameter>
      <!-- Parameter: KeyAccess -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>KeyAccess</maml:name>
        <maml:description>
          <maml:para>Specify Key access rights.</maml:para>
          <maml:para>Possible values: QueryValue, SetValue, CreateSubKey, EnumerateSubKeys, Notify, CreateLink, GenericRead, GenericWrite, GenericExecute, GenericAll, Delete, ReadControl, WriteDac, WriteOwner, Synchronize, MaximumAllowed, AccessSystemSecurity</maml:para>
        </maml:description>
        <command:parameterValue required="true">KeyAccessRights</command:parameterValue>
        <dev:type>
          <maml:name>NtApiDotNet.KeyAccessRights</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>0</dev:defaultValue>
        <command:parameterValueGroup>
          <command:parameterValue required="false" variableLength="false">QueryValue</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">SetValue</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">CreateSubKey</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">EnumerateSubKeys</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Notify</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">CreateLink</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericRead</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericWrite</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericExecute</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericAll</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Delete</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">ReadControl</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteDac</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteOwner</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Synchronize</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">MaximumAllowed</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">AccessSystemSecurity</command:parameterValue>
        </command:parameterValueGroup>
      </command:parameter>
      <!-- Parameter: EventAccess -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>EventAccess</maml:name>
        <maml:description>
          <maml:para>Specify Event access rights.</maml:para>
          <maml:para>Possible values: QueryState, ModifyState, GenericRead, GenericWrite, GenericExecute, GenericAll, Delete, ReadControl, WriteDac, WriteOwner, Synchronize, MaximumAllowed, AccessSystemSecurity</maml:para>
        </maml:description>
        <command:parameterValue required="true">EventAccessRights</command:parameterValue>
        <dev:type>
          <maml:name>NtApiDotNet.EventAccessRights</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>0</dev:defaultValue>
        <command:parameterValueGroup>
          <command:parameterValue required="false" variableLength="false">QueryState</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">ModifyState</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericRead</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericWrite</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericExecute</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericAll</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Delete</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">ReadControl</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteDac</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteOwner</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Synchronize</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">MaximumAllowed</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">AccessSystemSecurity</command:parameterValue>
        </command:parameterValueGroup>
      </command:parameter>
      <!-- Parameter: SymbolicLinkAccess -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>SymbolicLinkAccess</maml:name>
        <maml:description>
          <maml:para>Specify Symbolic Link access rights.</maml:para>
          <maml:para>Possible values: Query, GenericRead, GenericWrite, GenericExecute, GenericAll, Delete, ReadControl, WriteDac, WriteOwner, Synchronize, MaximumAllowed</maml:para>
        </maml:description>
        <command:parameterValue required="true">SymbolicLinkAccessRights</command:parameterValue>
        <dev:type>
          <maml:name>NtApiDotNet.SymbolicLinkAccessRights</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>0</dev:defaultValue>
        <command:parameterValueGroup>
          <command:parameterValue required="false" variableLength="false">Query</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericRead</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericWrite</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericExecute</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericAll</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Delete</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">ReadControl</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteDac</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteOwner</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Synchronize</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">MaximumAllowed</command:parameterValue>
        </command:parameterValueGroup>
      </command:parameter>
      <!-- Parameter: TokenAccess -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>TokenAccess</maml:name>
        <maml:description>
          <maml:para>Specify Token access rights.</maml:para>
          <maml:para>Possible values: AssignPrimary, Duplicate, Impersonate, Query, QuerySource, AdjustPrivileges, AdjustGroups, AdjustDefault, AdjustSessionId, GenericRead, GenericWrite, GenericExecute, GenericAll, Delete, ReadControl, WriteDac, WriteOwner, Synchronize, MaximumAllowed, AccessSystemSecurity</maml:para>
        </maml:description>
        <command:parameterValue required="true">TokenAccessRights</command:parameterValue>
        <dev:type>
          <maml:name>NtApiDotNet.TokenAccessRights</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>0</dev:defaultValue>
        <command:parameterValueGroup>
          <command:parameterValue required="false" variableLength="false">AssignPrimary</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Duplicate</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Impersonate</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Query</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">QuerySource</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">AdjustPrivileges</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">AdjustGroups</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">AdjustDefault</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">AdjustSessionId</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericRead</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericWrite</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericExecute</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericAll</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Delete</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">ReadControl</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteDac</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteOwner</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Synchronize</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">MaximumAllowed</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">AccessSystemSecurity</command:parameterValue>
        </command:parameterValueGroup>
      </command:parameter>
      <!-- Parameter: GenericAccess -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>GenericAccess</maml:name>
        <maml:description>
          <maml:para>Specify Generic access rights.</maml:para>
          <maml:para>Possible values: None, Access0, Access1, Access2, Access3, Access4, Access5, Access6, Access7, Access8, Access9, Access10, Access11, Access12, Access13, Access14, Access15, Delete, ReadControl, WriteDac, WriteOwner, Synchronize, AccessSystemSecurity, MaximumAllowed, GenericAll, GenericExecute, GenericWrite, GenericRead</maml:para>
        </maml:description>
        <command:parameterValue required="true">GenericAccessRights</command:parameterValue>
        <dev:type>
          <maml:name>NtApiDotNet.GenericAccessRights</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
        <command:parameterValueGroup>
          <command:parameterValue required="false" variableLength="false">None</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Access0</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Access1</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Access2</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Access3</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Access4</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Access5</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Access6</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Access7</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Access8</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Access9</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Access10</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Access11</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Access12</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Access13</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Access14</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Access15</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Delete</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">ReadControl</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteDac</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteOwner</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Synchronize</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">AccessSystemSecurity</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">MaximumAllowed</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericAll</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericExecute</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericWrite</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericRead</command:parameterValue>
        </command:parameterValueGroup>
      </command:parameter>
      <!-- Parameter: DirectoryAccess -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>DirectoryAccess</maml:name>
        <maml:description>
          <maml:para>Specify Directory access rights.</maml:para>
          <maml:para>Possible values: Query, Traverse, CreateObject, CreateSubDirectory, GenericRead, GenericWrite, GenericExecute, GenericAll, Delete, ReadControl, WriteDac, WriteOwner, Synchronize, MaximumAllowed, AccessSystemSecurity</maml:para>
        </maml:description>
        <command:parameterValue required="true">DirectoryAccessRights</command:parameterValue>
        <dev:type>
          <maml:name>NtApiDotNet.DirectoryAccessRights</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>0</dev:defaultValue>
        <command:parameterValueGroup>
          <command:parameterValue required="false" variableLength="false">Query</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Traverse</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">CreateObject</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">CreateSubDirectory</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericRead</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericWrite</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericExecute</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericAll</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Delete</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">ReadControl</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteDac</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteOwner</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Synchronize</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">MaximumAllowed</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">AccessSystemSecurity</command:parameterValue>
        </command:parameterValueGroup>
      </command:parameter>
      <!-- Parameter: ThreadAccess -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>ThreadAccess</maml:name>
        <maml:description>
          <maml:para>Specify Thread access rights.</maml:para>
          <maml:para>Possible values: Terminate, SuspendResume, Alert, GetContext, SetContext, SetInformation, QueryInformation, SetThreadToken, Impersonate, DirectImpersonation, SetLimitedInformation, QueryLimitedInformation, AllAccess, GenericRead, GenericWrite, GenericExecute, GenericAll, Delete, ReadControl, WriteDac, WriteOwner, Synchronize, MaximumAllowed, AccessSystemSecurity</maml:para>
        </maml:description>
        <command:parameterValue required="true">ThreadAccessRights</command:parameterValue>
        <dev:type>
          <maml:name>NtApiDotNet.ThreadAccessRights</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>0</dev:defaultValue>
        <command:parameterValueGroup>
          <command:parameterValue required="false" variableLength="false">Terminate</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">SuspendResume</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Alert</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GetContext</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">SetContext</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">SetInformation</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">QueryInformation</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">SetThreadToken</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Impersonate</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">DirectImpersonation</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">SetLimitedInformation</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">QueryLimitedInformation</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">AllAccess</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericRead</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericWrite</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericExecute</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericAll</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Delete</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">ReadControl</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteDac</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteOwner</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Synchronize</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">MaximumAllowed</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">AccessSystemSecurity</command:parameterValue>
        </command:parameterValueGroup>
      </command:parameter>
      <!-- Parameter: DebugObjectAccess -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>DebugObjectAccess</maml:name>
        <maml:description>
          <maml:para>Specify Debug Object access rights.</maml:para>
          <maml:para>Possible values: ReadEvent, ProcessAssign, SetInformation, QueryInformation, GenericRead, GenericWrite, GenericExecute, GenericAll, Delete, ReadControl, WriteDac, WriteOwner, Synchronize, MaximumAllowed, AccessSystemSecurity</maml:para>
        </maml:description>
        <command:parameterValue required="true">DebugAccessRights</command:parameterValue>
        <dev:type>
          <maml:name>NtApiDotNet.DebugAccessRights</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>0</dev:defaultValue>
        <command:parameterValueGroup>
          <command:parameterValue required="false" variableLength="false">ReadEvent</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">ProcessAssign</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">SetInformation</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">QueryInformation</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericRead</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericWrite</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericExecute</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericAll</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Delete</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">ReadControl</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteDac</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteOwner</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Synchronize</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">MaximumAllowed</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">AccessSystemSecurity</command:parameterValue>
        </command:parameterValueGroup>
      </command:parameter>
      <!-- Parameter: JobAccess -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>JobAccess</maml:name>
        <maml:description>
          <maml:para>Specify Job access rights.</maml:para>
          <maml:para>Possible values: None, AssignProcess, SetAttributes, Query, Terminate, SetSecurityAttributes, Impersonate, GenericRead, GenericWrite, GenericExecute, GenericAll, Delete, ReadControl, WriteDac, WriteOwner, Synchronize, MaximumAllowed, AccessSystemSecurity</maml:para>
        </maml:description>
        <command:parameterValue required="true">JobAccessRights</command:parameterValue>
        <dev:type>
          <maml:name>NtApiDotNet.JobAccessRights</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
        <command:parameterValueGroup>
          <command:parameterValue required="false" variableLength="false">None</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">AssignProcess</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">SetAttributes</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Query</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Terminate</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">SetSecurityAttributes</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Impersonate</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericRead</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericWrite</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericExecute</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericAll</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Delete</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">ReadControl</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteDac</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteOwner</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Synchronize</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">MaximumAllowed</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">AccessSystemSecurity</command:parameterValue>
        </command:parameterValueGroup>
      </command:parameter>
      <!-- Parameter: ProcessAccess -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>ProcessAccess</maml:name>
        <maml:description>
          <maml:para>Specify Process access rights.</maml:para>
          <maml:para>Possible values: None, CreateProcess, CreateThread, DupHandle, QueryInformation, QueryLimitedInformation, SetLimitedInformation, SetInformation, SetQuota, SuspendResume, Terminate, VmOperation, VmRead, VmWrite, AllAccess, GenericRead, GenericWrite, GenericExecute, GenericAll, Delete, ReadControl, WriteDac, WriteOwner, Synchronize, MaximumAllowed, AccessSystemSecurity</maml:para>
        </maml:description>
        <command:parameterValue required="true">ProcessAccessRights</command:parameterValue>
        <dev:type>
          <maml:name>NtApiDotNet.ProcessAccessRights</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
        <command:parameterValueGroup>
          <command:parameterValue required="false" variableLength="false">None</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">CreateProcess</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">CreateThread</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">DupHandle</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">QueryInformation</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">QueryLimitedInformation</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">SetLimitedInformation</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">SetInformation</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">SetQuota</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">SuspendResume</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Terminate</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">VmOperation</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">VmRead</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">VmWrite</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">AllAccess</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericRead</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericWrite</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericExecute</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericAll</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Delete</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">ReadControl</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteDac</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteOwner</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Synchronize</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">MaximumAllowed</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">AccessSystemSecurity</command:parameterValue>
        </command:parameterValueGroup>
      </command:parameter>
      <!-- Parameter: ManadatoryLabelPolicy -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>ManadatoryLabelPolicy</maml:name>
        <maml:description>
          <maml:para>Specify mandatory label policy.</maml:para>
          <maml:para>Possible values: NoWriteUp, NoReadUp, NoExecuteUp</maml:para>
        </maml:description>
        <command:parameterValue required="true">MandatoryLabelPolicy</command:parameterValue>
        <dev:type>
          <maml:name>NtApiDotNet.MandatoryLabelPolicy</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>0</dev:defaultValue>
        <command:parameterValueGroup>
          <command:parameterValue required="false" variableLength="false">NoWriteUp</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">NoReadUp</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">NoExecuteUp</command:parameterValue>
        </command:parameterValueGroup>
      </command:parameter>
    </command:parameters>
    <command:inputTypes />
    <command:returnValues />
    <command:examples>
      <command:example>
        <maml:title>---------- EXAMPLE 1 ----------</maml:title>
        <dev:code>Get-NtAccessMask -Process DupHandle</dev:code>
        <dev:remarks>
          <maml:para>Get the Process DupHandle access right as an AccessMask</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 2 ----------</maml:title>
        <dev:code>Get-NtAccessMask -Process DupHandle -ToGenericAccess</dev:code>
        <dev:remarks>
          <maml:para>Get the Process DupHandle access right as a GenericAccess value</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
  </command:command>
  <!-- Cmdlet: Get-NtDirectory -->
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10">
    <command:details>
      <command:name>Get-NtDirectory</command:name>
      <command:verb>Get</command:verb>
      <command:noun>NtDirectory</command:noun>
      <maml:description>
        <maml:para>Open a NT object directory.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This cmdlet opens an existing NT object directory. It's possible to open a directory by its NT path, such as \Some\Path or it can also open a private namespace which isn't represented by an accessible NT path but instead uses a boundary descriptor.</maml:para>
    </maml:description>
    <command:syntax>
      <!-- Parameter set: __AllParameterSets -->
      <command:syntaxItem>
        <maml:name>Get-NtDirectory</maml:name>
        <!-- Parameter: Path -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="0">
          <maml:name>Path</maml:name>
          <maml:description>
            <maml:para>The NT object manager path to the object to use.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Access -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Access</maml:name>
          <maml:description>
            <maml:para>Specify the access rights for a new handle when creating/opening an object.</maml:para>
            <maml:para>Possible values: Query, Traverse, CreateObject, CreateSubDirectory, GenericRead, GenericWrite, GenericExecute, GenericAll, Delete, ReadControl, WriteDac, WriteOwner, Synchronize, MaximumAllowed, AccessSystemSecurity</maml:para>
          </maml:description>
          <command:parameterValue required="true">DirectoryAccessRights</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.DirectoryAccessRights</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>MaximumAllowed</dev:defaultValue>
          <command:parameterValueGroup>
            <command:parameterValue required="false" variableLength="false">Query</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Traverse</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">CreateObject</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">CreateSubDirectory</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericRead</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericWrite</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericExecute</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericAll</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Delete</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ReadControl</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteDac</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteOwner</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Synchronize</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">MaximumAllowed</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">AccessSystemSecurity</command:parameterValue>
          </command:parameterValueGroup>
        </command:parameter>
        <!-- Parameter: CloseRoot -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>CloseRoot</maml:name>
          <maml:description>
            <maml:para>Automatically close the Root object when this cmdlet finishes processing. Useful for pipelines.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: CreateDirectories -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>CreateDirectories</maml:name>
          <maml:description>
            <maml:para>Create any necessary NtDirectory objects to create the required object. Will return the created directories as well as the object in the output. The new object will be the first entry in the list. This doesn't work when opening an object or creating keys/files.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: ObjectAttributes -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>ObjectAttributes</maml:name>
          <maml:description>
            <maml:para>Object Attribute flags used during Open/Create calls.</maml:para>
            <maml:para>Possible values: None, Inherit, Permanent, Exclusive, CaseInsensitive, OpenIf, OpenLink, KernelHandle, ForceAccessCheck, IgnoreImpersonatedDevicemap, DontReparse</maml:para>
          </maml:description>
          <command:parameterValue required="true">AttributeFlags</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.AttributeFlags</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>CaseInsensitive</dev:defaultValue>
          <command:parameterValueGroup>
            <command:parameterValue required="false" variableLength="false">None</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Inherit</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Permanent</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Exclusive</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">CaseInsensitive</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">OpenIf</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">OpenLink</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">KernelHandle</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ForceAccessCheck</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">IgnoreImpersonatedDevicemap</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">DontReparse</command:parameterValue>
          </command:parameterValueGroup>
        </command:parameter>
        <!-- Parameter: PrivateNamespaceDescriptor -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>PrivateNamespaceDescriptor</maml:name>
          <maml:description>
            <maml:para>A string format of a private namespace boundary descriptor. Uses the form [SID[:SID...]@]NAME where SID is an SDDL version of a SID to add to the boundary (such as S-X-X-X or WD) and NAME is the arbitrary name.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Root -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByValue)" position="named">
          <maml:name>Root</maml:name>
          <maml:description>
            <maml:para>An existing open NT object to use when Path is relative.</maml:para>
          </maml:description>
          <command:parameterValue required="true">NtObject</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.NtObject</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Sddl -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Sddl</maml:name>
          <maml:description>
            <maml:para>Set to provide an explicit security descriptor to a newly created object in SDDL format. Overriddes SecurityDescriptor.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: SecurityDescriptor -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>SecurityDescriptor</maml:name>
          <maml:description>
            <maml:para>Set to provide an explicit security descriptor to a newly created object.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SecurityDescriptor</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.SecurityDescriptor</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: SecurityQualityOfService -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>SecurityQualityOfService</maml:name>
          <maml:description>
            <maml:para>Set to provide an explicit security quality of service when opening files/namedpipes.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SecurityQualityOfService</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.SecurityQualityOfService</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Win32Path -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Win32Path</maml:name>
          <maml:description>
            <maml:para>Use a Win32 path for lookups. For NT objects this means relative to BNO, for files means a DOS style path.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <!-- Parameter: PrivateNamespaceDescriptor -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>PrivateNamespaceDescriptor</maml:name>
        <maml:description>
          <maml:para>A string format of a private namespace boundary descriptor. Uses the form [SID[:SID...]@]NAME where SID is an SDDL version of a SID to add to the boundary (such as S-X-X-X or WD) and NAME is the arbitrary name.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Access -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Access</maml:name>
        <maml:description>
          <maml:para>Specify the access rights for a new handle when creating/opening an object.</maml:para>
          <maml:para>Possible values: Query, Traverse, CreateObject, CreateSubDirectory, GenericRead, GenericWrite, GenericExecute, GenericAll, Delete, ReadControl, WriteDac, WriteOwner, Synchronize, MaximumAllowed, AccessSystemSecurity</maml:para>
        </maml:description>
        <command:parameterValue required="true">DirectoryAccessRights</command:parameterValue>
        <dev:type>
          <maml:name>NtApiDotNet.DirectoryAccessRights</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>MaximumAllowed</dev:defaultValue>
        <command:parameterValueGroup>
          <command:parameterValue required="false" variableLength="false">Query</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Traverse</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">CreateObject</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">CreateSubDirectory</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericRead</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericWrite</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericExecute</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericAll</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Delete</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">ReadControl</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteDac</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteOwner</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Synchronize</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">MaximumAllowed</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">AccessSystemSecurity</command:parameterValue>
        </command:parameterValueGroup>
      </command:parameter>
      <!-- Parameter: Path -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="0">
        <maml:name>Path</maml:name>
        <maml:description>
          <maml:para>The NT object manager path to the object to use.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Root -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByValue)" position="named">
        <maml:name>Root</maml:name>
        <maml:description>
          <maml:para>An existing open NT object to use when Path is relative.</maml:para>
        </maml:description>
        <command:parameterValue required="true">NtObject</command:parameterValue>
        <dev:type>
          <maml:name>NtApiDotNet.NtObject</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Win32Path -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Win32Path</maml:name>
        <maml:description>
          <maml:para>Use a Win32 path for lookups. For NT objects this means relative to BNO, for files means a DOS style path.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: ObjectAttributes -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>ObjectAttributes</maml:name>
        <maml:description>
          <maml:para>Object Attribute flags used during Open/Create calls.</maml:para>
          <maml:para>Possible values: None, Inherit, Permanent, Exclusive, CaseInsensitive, OpenIf, OpenLink, KernelHandle, ForceAccessCheck, IgnoreImpersonatedDevicemap, DontReparse</maml:para>
        </maml:description>
        <command:parameterValue required="true">AttributeFlags</command:parameterValue>
        <dev:type>
          <maml:name>NtApiDotNet.AttributeFlags</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>CaseInsensitive</dev:defaultValue>
        <command:parameterValueGroup>
          <command:parameterValue required="false" variableLength="false">None</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Inherit</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Permanent</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Exclusive</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">CaseInsensitive</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">OpenIf</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">OpenLink</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">KernelHandle</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">ForceAccessCheck</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">IgnoreImpersonatedDevicemap</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">DontReparse</command:parameterValue>
        </command:parameterValueGroup>
      </command:parameter>
      <!-- Parameter: SecurityDescriptor -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>SecurityDescriptor</maml:name>
        <maml:description>
          <maml:para>Set to provide an explicit security descriptor to a newly created object.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SecurityDescriptor</command:parameterValue>
        <dev:type>
          <maml:name>NtApiDotNet.SecurityDescriptor</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Sddl -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Sddl</maml:name>
        <maml:description>
          <maml:para>Set to provide an explicit security descriptor to a newly created object in SDDL format. Overriddes SecurityDescriptor.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: SecurityQualityOfService -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>SecurityQualityOfService</maml:name>
        <maml:description>
          <maml:para>Set to provide an explicit security quality of service when opening files/namedpipes.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SecurityQualityOfService</command:parameterValue>
        <dev:type>
          <maml:name>NtApiDotNet.SecurityQualityOfService</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: CloseRoot -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>CloseRoot</maml:name>
        <maml:description>
          <maml:para>Automatically close the Root object when this cmdlet finishes processing. Useful for pipelines.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: CreateDirectories -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>CreateDirectories</maml:name>
        <maml:description>
          <maml:para>Create any necessary NtDirectory objects to create the required object. Will return the created directories as well as the object in the output. The new object will be the first entry in the list. This doesn't work when opening an object or creating keys/files.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>NtApiDotNet.NtObject</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>An existing open NT object to use when Path is relative.</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <!-- OutputType: NtDirectory -->
      <command:returnValue>
        <dev:type>
          <maml:name>NtApiDotNet.NtDirectory</maml:name>
          <maml:uri />
        </dev:type>
      </command:returnValue>
    </command:returnValues>
    <command:examples>
      <command:example>
        <maml:title>---------- EXAMPLE 1 ----------</maml:title>
        <dev:code>$obj = Get-NtDirectory \BaseNamedObjects</dev:code>
        <dev:remarks>
          <maml:para>Get a directory object with an absolute path.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 2 ----------</maml:title>
        <dev:code>$root = Get-NtDirectory \BaseNamedObjects
$obj = Get-NtDirectory ABC -Root $root</dev:code>
        <dev:remarks>
          <maml:para>Get a directory object with a relative path.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 3 ----------</maml:title>
        <dev:code>cd NtObject:\BaseNamedObjects
$obj = Get-NtDirectory ABC</dev:code>
        <dev:remarks>
          <maml:para>Get a directory object with a relative path based on the current location.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 4 ----------</maml:title>
        <dev:code>$obj = Get-NtDirectory -Path \BaseNamedObjects
$obj.Query()</dev:code>
        <dev:remarks>
          <maml:para>Get a directory object and query its list of entries.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 5 ----------</maml:title>
        <dev:code>$obj = Get-NtDirectory -PrivateNamespaceDescriptor WD:LW@ABC</dev:code>
        <dev:remarks>
          <maml:para>Get a private namespace directory object with Everyone and Low Mandatory Level SIDs and name ABC.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <maml:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>about_ManagingNtObjectLifetime</maml:linkText>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>https://msdn.microsoft.com/en-us/library/windows/desktop/ms684318(v=vs.85).aspx</maml:linkText>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>https://msdn.microsoft.com/en-us/library/windows/desktop/ms682121(v=vs.85).aspx</maml:linkText>
      </maml:navigationLink>
    </maml:relatedLinks>
  </command:command>
  <!-- Cmdlet: New-NtDirectory -->
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10">
    <command:details>
      <command:name>New-NtDirectory</command:name>
      <command:verb>New</command:verb>
      <command:noun>NtDirectory</command:noun>
      <maml:description>
        <maml:para>Create a new NT object directory by path.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This cmdlet creates a new NT object directory. It's possible to create a directory by its NT path, such as \Some\Path or it can also create a new private namespace which isn't represented by an accessible NT path but instead uses a boundary descriptor.</maml:para>
    </maml:description>
    <command:syntax>
      <!-- Parameter set: __AllParameterSets -->
      <command:syntaxItem>
        <maml:name>New-NtDirectory</maml:name>
        <!-- Parameter: Path -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="0">
          <maml:name>Path</maml:name>
          <maml:description>
            <maml:para>The NT object manager path to the object to use.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Access -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Access</maml:name>
          <maml:description>
            <maml:para>Specify the access rights for a new handle when creating/opening an object.</maml:para>
            <maml:para>Possible values: Query, Traverse, CreateObject, CreateSubDirectory, GenericRead, GenericWrite, GenericExecute, GenericAll, Delete, ReadControl, WriteDac, WriteOwner, Synchronize, MaximumAllowed, AccessSystemSecurity</maml:para>
          </maml:description>
          <command:parameterValue required="true">DirectoryAccessRights</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.DirectoryAccessRights</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>MaximumAllowed</dev:defaultValue>
          <command:parameterValueGroup>
            <command:parameterValue required="false" variableLength="false">Query</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Traverse</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">CreateObject</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">CreateSubDirectory</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericRead</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericWrite</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericExecute</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericAll</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Delete</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ReadControl</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteDac</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteOwner</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Synchronize</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">MaximumAllowed</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">AccessSystemSecurity</command:parameterValue>
          </command:parameterValueGroup>
        </command:parameter>
        <!-- Parameter: CloseRoot -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>CloseRoot</maml:name>
          <maml:description>
            <maml:para>Automatically close the Root object when this cmdlet finishes processing. Useful for pipelines.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: CreateDirectories -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>CreateDirectories</maml:name>
          <maml:description>
            <maml:para>Create any necessary NtDirectory objects to create the required object. Will return the created directories as well as the object in the output. The new object will be the first entry in the list. This doesn't work when opening an object or creating keys/files.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Flags -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Flags</maml:name>
          <maml:description>
            <maml:para>Specifies flags to use when creating the directory object.</maml:para>
            <maml:para>Possible values: None, AlwaysInheritSecurity, FakeObjectRoot</maml:para>
          </maml:description>
          <command:parameterValue required="true">DirectoryCreateFlags</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.DirectoryCreateFlags</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
          <command:parameterValueGroup>
            <command:parameterValue required="false" variableLength="false">None</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">AlwaysInheritSecurity</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">FakeObjectRoot</command:parameterValue>
          </command:parameterValueGroup>
        </command:parameter>
        <!-- Parameter: ObjectAttributes -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>ObjectAttributes</maml:name>
          <maml:description>
            <maml:para>Object Attribute flags used during Open/Create calls.</maml:para>
            <maml:para>Possible values: None, Inherit, Permanent, Exclusive, CaseInsensitive, OpenIf, OpenLink, KernelHandle, ForceAccessCheck, IgnoreImpersonatedDevicemap, DontReparse</maml:para>
          </maml:description>
          <command:parameterValue required="true">AttributeFlags</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.AttributeFlags</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>CaseInsensitive</dev:defaultValue>
          <command:parameterValueGroup>
            <command:parameterValue required="false" variableLength="false">None</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Inherit</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Permanent</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Exclusive</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">CaseInsensitive</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">OpenIf</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">OpenLink</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">KernelHandle</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ForceAccessCheck</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">IgnoreImpersonatedDevicemap</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">DontReparse</command:parameterValue>
          </command:parameterValueGroup>
        </command:parameter>
        <!-- Parameter: PrivateNamespaceDescriptor -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>PrivateNamespaceDescriptor</maml:name>
          <maml:description>
            <maml:para>A string format of a private namespace boundary descriptor. Uses the form [SID[:SID...]@]NAME where SID is an SDDL version of a SID to add to the boundary (such as S-X-X-X or WD) and NAME is the arbitrary name.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Root -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByValue)" position="named">
          <maml:name>Root</maml:name>
          <maml:description>
            <maml:para>An existing open NT object to use when Path is relative.</maml:para>
          </maml:description>
          <command:parameterValue required="true">NtObject</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.NtObject</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Sddl -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Sddl</maml:name>
          <maml:description>
            <maml:para>Set to provide an explicit security descriptor to a newly created object in SDDL format. Overriddes SecurityDescriptor.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: SecurityDescriptor -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>SecurityDescriptor</maml:name>
          <maml:description>
            <maml:para>Set to provide an explicit security descriptor to a newly created object.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SecurityDescriptor</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.SecurityDescriptor</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: SecurityQualityOfService -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>SecurityQualityOfService</maml:name>
          <maml:description>
            <maml:para>Set to provide an explicit security quality of service when opening files/namedpipes.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SecurityQualityOfService</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.SecurityQualityOfService</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: ShadowDirectory -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>ShadowDirectory</maml:name>
          <maml:description>
            <maml:para>Specifies another NT directory object to use as a shadown directory. This changes the lookup operation so that if an entry isn't in the created directory it will try and look it up in the shadown instead.</maml:para>
          </maml:description>
          <command:parameterValue required="true">NtDirectory</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.NtDirectory</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Win32Path -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Win32Path</maml:name>
          <maml:description>
            <maml:para>Use a Win32 path for lookups. For NT objects this means relative to BNO, for files means a DOS style path.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <!-- Parameter: ShadowDirectory -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>ShadowDirectory</maml:name>
        <maml:description>
          <maml:para>Specifies another NT directory object to use as a shadown directory. This changes the lookup operation so that if an entry isn't in the created directory it will try and look it up in the shadown instead.</maml:para>
        </maml:description>
        <command:parameterValue required="true">NtDirectory</command:parameterValue>
        <dev:type>
          <maml:name>NtApiDotNet.NtDirectory</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Flags -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Flags</maml:name>
        <maml:description>
          <maml:para>Specifies flags to use when creating the directory object.</maml:para>
          <maml:para>Possible values: None, AlwaysInheritSecurity, FakeObjectRoot</maml:para>
        </maml:description>
        <command:parameterValue required="true">DirectoryCreateFlags</command:parameterValue>
        <dev:type>
          <maml:name>NtApiDotNet.DirectoryCreateFlags</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
        <command:parameterValueGroup>
          <command:parameterValue required="false" variableLength="false">None</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">AlwaysInheritSecurity</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">FakeObjectRoot</command:parameterValue>
        </command:parameterValueGroup>
      </command:parameter>
      <!-- Parameter: PrivateNamespaceDescriptor -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>PrivateNamespaceDescriptor</maml:name>
        <maml:description>
          <maml:para>A string format of a private namespace boundary descriptor. Uses the form [SID[:SID...]@]NAME where SID is an SDDL version of a SID to add to the boundary (such as S-X-X-X or WD) and NAME is the arbitrary name.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Access -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Access</maml:name>
        <maml:description>
          <maml:para>Specify the access rights for a new handle when creating/opening an object.</maml:para>
          <maml:para>Possible values: Query, Traverse, CreateObject, CreateSubDirectory, GenericRead, GenericWrite, GenericExecute, GenericAll, Delete, ReadControl, WriteDac, WriteOwner, Synchronize, MaximumAllowed, AccessSystemSecurity</maml:para>
        </maml:description>
        <command:parameterValue required="true">DirectoryAccessRights</command:parameterValue>
        <dev:type>
          <maml:name>NtApiDotNet.DirectoryAccessRights</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>MaximumAllowed</dev:defaultValue>
        <command:parameterValueGroup>
          <command:parameterValue required="false" variableLength="false">Query</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Traverse</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">CreateObject</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">CreateSubDirectory</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericRead</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericWrite</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericExecute</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericAll</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Delete</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">ReadControl</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteDac</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteOwner</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Synchronize</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">MaximumAllowed</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">AccessSystemSecurity</command:parameterValue>
        </command:parameterValueGroup>
      </command:parameter>
      <!-- Parameter: Path -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="0">
        <maml:name>Path</maml:name>
        <maml:description>
          <maml:para>The NT object manager path to the object to use.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Root -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByValue)" position="named">
        <maml:name>Root</maml:name>
        <maml:description>
          <maml:para>An existing open NT object to use when Path is relative.</maml:para>
        </maml:description>
        <command:parameterValue required="true">NtObject</command:parameterValue>
        <dev:type>
          <maml:name>NtApiDotNet.NtObject</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Win32Path -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Win32Path</maml:name>
        <maml:description>
          <maml:para>Use a Win32 path for lookups. For NT objects this means relative to BNO, for files means a DOS style path.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: ObjectAttributes -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>ObjectAttributes</maml:name>
        <maml:description>
          <maml:para>Object Attribute flags used during Open/Create calls.</maml:para>
          <maml:para>Possible values: None, Inherit, Permanent, Exclusive, CaseInsensitive, OpenIf, OpenLink, KernelHandle, ForceAccessCheck, IgnoreImpersonatedDevicemap, DontReparse</maml:para>
        </maml:description>
        <command:parameterValue required="true">AttributeFlags</command:parameterValue>
        <dev:type>
          <maml:name>NtApiDotNet.AttributeFlags</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>CaseInsensitive</dev:defaultValue>
        <command:parameterValueGroup>
          <command:parameterValue required="false" variableLength="false">None</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Inherit</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Permanent</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Exclusive</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">CaseInsensitive</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">OpenIf</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">OpenLink</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">KernelHandle</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">ForceAccessCheck</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">IgnoreImpersonatedDevicemap</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">DontReparse</command:parameterValue>
        </command:parameterValueGroup>
      </command:parameter>
      <!-- Parameter: SecurityDescriptor -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>SecurityDescriptor</maml:name>
        <maml:description>
          <maml:para>Set to provide an explicit security descriptor to a newly created object.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SecurityDescriptor</command:parameterValue>
        <dev:type>
          <maml:name>NtApiDotNet.SecurityDescriptor</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Sddl -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Sddl</maml:name>
        <maml:description>
          <maml:para>Set to provide an explicit security descriptor to a newly created object in SDDL format. Overriddes SecurityDescriptor.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: SecurityQualityOfService -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>SecurityQualityOfService</maml:name>
        <maml:description>
          <maml:para>Set to provide an explicit security quality of service when opening files/namedpipes.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SecurityQualityOfService</command:parameterValue>
        <dev:type>
          <maml:name>NtApiDotNet.SecurityQualityOfService</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: CloseRoot -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>CloseRoot</maml:name>
        <maml:description>
          <maml:para>Automatically close the Root object when this cmdlet finishes processing. Useful for pipelines.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: CreateDirectories -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>CreateDirectories</maml:name>
        <maml:description>
          <maml:para>Create any necessary NtDirectory objects to create the required object. Will return the created directories as well as the object in the output. The new object will be the first entry in the list. This doesn't work when opening an object or creating keys/files.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>NtApiDotNet.NtObject</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>An existing open NT object to use when Path is relative.</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <!-- OutputType: NtDirectory -->
      <command:returnValue>
        <dev:type>
          <maml:name>NtApiDotNet.NtDirectory</maml:name>
          <maml:uri />
        </dev:type>
      </command:returnValue>
    </command:returnValues>
    <command:examples>
      <command:example>
        <maml:title>---------- EXAMPLE 1 ----------</maml:title>
        <dev:code>$obj = New-NtDirectory</dev:code>
        <dev:remarks>
          <maml:para>Create a new anonymous directory object.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 2 ----------</maml:title>
        <dev:code>$obj = New-NtDirectory \BaseNamedObjects\ABC</dev:code>
        <dev:remarks>
          <maml:para>Create a new directory object with an absolute path.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 3 ----------</maml:title>
        <dev:code>$root = Get-NtDirectory \BaseNamedObjects
$obj = New-NtDirectory ABC -Root $root</dev:code>
        <dev:remarks>
          <maml:para>Create a new directory object with a relative path.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 4 ----------</maml:title>
        <dev:code>cd NtObject:\BaseNamedObjects
$obj = New-NtDirectory ABC</dev:code>
        <dev:remarks>
          <maml:para>Create a new directory object with a relative path based on the current location.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 5 ----------</maml:title>
        <dev:code>$shadow = Get-NtDirectory \SomeDir
$obj = New-NtDirectory \BaseNamedObjects\ABC -ShadowDirectory $shadow</dev:code>
        <dev:remarks>
          <maml:para>Create a new directory object with a shadow directory.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 6 ----------</maml:title>
        <dev:code>$obj = New-NtDirectory -PrivateNamespaceDescriptor WD:LW@ABC</dev:code>
        <dev:remarks>
          <maml:para>Create a new private namespace directory object with Everyone and Low Mandatory Level SIDs and name ABC.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <maml:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>about_ManagingNtObjectLifetime</maml:linkText>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>https://msdn.microsoft.com/en-us/library/windows/desktop/ms682419%28v=vs.85%29.aspx</maml:linkText>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>https://msdn.microsoft.com/en-us/library/windows/desktop/ms682121(v=vs.85).aspx</maml:linkText>
      </maml:navigationLink>
    </maml:relatedLinks>
  </command:command>
  <!-- Cmdlet: Get-NtDirectoryChild -->
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10">
    <command:details>
      <command:name>Get-NtDirectoryChild</command:name>
      <command:verb>Get</command:verb>
      <command:noun>NtDirectoryChild</command:noun>
      <maml:description>
        <maml:para>Get the accessible children of an object directory.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This cmdlet gets the children of a directory object. It allows the children to be extracted recursively. You can choose to get the children through the pipeline or specify a vistor script.</maml:para>
    </maml:description>
    <command:syntax>
      <!-- Parameter set: __AllParameterSets -->
      <command:syntaxItem>
        <maml:name>Get-NtDirectoryChild</maml:name>
        <!-- Parameter: Object -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="0">
          <maml:name>Object</maml:name>
          <maml:description>
            <maml:para>Specify an object to get children from, should be a directory.</maml:para>
          </maml:description>
          <command:parameterValue required="true">NtDirectory</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.NtDirectory</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Access -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Access</maml:name>
          <maml:description>
            <maml:para>Specify the access when opening a child.</maml:para>
            <maml:para>Possible values: Query, Traverse, CreateObject, CreateSubDirectory, GenericRead, GenericWrite, GenericExecute, GenericAll, Delete, ReadControl, WriteDac, WriteOwner, Synchronize, MaximumAllowed, AccessSystemSecurity</maml:para>
          </maml:description>
          <command:parameterValue required="true">DirectoryAccessRights</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.DirectoryAccessRights</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>MaximumAllowed</dev:defaultValue>
          <command:parameterValueGroup>
            <command:parameterValue required="false" variableLength="false">Query</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Traverse</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">CreateObject</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">CreateSubDirectory</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericRead</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericWrite</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericExecute</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericAll</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Delete</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ReadControl</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteDac</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteOwner</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Synchronize</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">MaximumAllowed</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">AccessSystemSecurity</command:parameterValue>
          </command:parameterValueGroup>
        </command:parameter>
        <!-- Parameter: Filter -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Filter</maml:name>
          <maml:description>
            <maml:para>Specify a script block to filter child objects. Return $true to keep the object.</maml:para>
          </maml:description>
          <command:parameterValue required="true">ScriptBlock</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.ScriptBlock</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: MaxDepth -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>MaxDepth</maml:name>
          <maml:description>
            <maml:para>When recursing specify the maximum depth of recursion. -1 indicates no limit.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>-1</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Recurse -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Recurse</maml:name>
          <maml:description>
            <maml:para>Get children recursively.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Visitor -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Visitor</maml:name>
          <maml:description>
            <maml:para>Specify a script block to run for every child. The file object will automatically be disposed once the vistor has executed. If you want to cancel enumeration return $false.</maml:para>
          </maml:description>
          <command:parameterValue required="true">ScriptBlock</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.ScriptBlock</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <!-- Parameter: Object -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="0">
        <maml:name>Object</maml:name>
        <maml:description>
          <maml:para>Specify an object to get children from, should be a directory.</maml:para>
        </maml:description>
        <command:parameterValue required="true">NtDirectory</command:parameterValue>
        <dev:type>
          <maml:name>NtApiDotNet.NtDirectory</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Access -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Access</maml:name>
        <maml:description>
          <maml:para>Specify the access when opening a child.</maml:para>
          <maml:para>Possible values: Query, Traverse, CreateObject, CreateSubDirectory, GenericRead, GenericWrite, GenericExecute, GenericAll, Delete, ReadControl, WriteDac, WriteOwner, Synchronize, MaximumAllowed, AccessSystemSecurity</maml:para>
        </maml:description>
        <command:parameterValue required="true">DirectoryAccessRights</command:parameterValue>
        <dev:type>
          <maml:name>NtApiDotNet.DirectoryAccessRights</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>MaximumAllowed</dev:defaultValue>
        <command:parameterValueGroup>
          <command:parameterValue required="false" variableLength="false">Query</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Traverse</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">CreateObject</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">CreateSubDirectory</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericRead</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericWrite</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericExecute</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericAll</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Delete</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">ReadControl</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteDac</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteOwner</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Synchronize</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">MaximumAllowed</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">AccessSystemSecurity</command:parameterValue>
        </command:parameterValueGroup>
      </command:parameter>
      <!-- Parameter: Recurse -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Recurse</maml:name>
        <maml:description>
          <maml:para>Get children recursively.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: MaxDepth -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>MaxDepth</maml:name>
        <maml:description>
          <maml:para>When recursing specify the maximum depth of recursion. -1 indicates no limit.</maml:para>
        </maml:description>
        <command:parameterValue required="true">int</command:parameterValue>
        <dev:type>
          <maml:name>System.Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>-1</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: Visitor -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Visitor</maml:name>
        <maml:description>
          <maml:para>Specify a script block to run for every child. The file object will automatically be disposed once the vistor has executed. If you want to cancel enumeration return $false.</maml:para>
        </maml:description>
        <command:parameterValue required="true">ScriptBlock</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.ScriptBlock</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Filter -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Filter</maml:name>
        <maml:description>
          <maml:para>Specify a script block to filter child objects. Return $true to keep the object.</maml:para>
        </maml:description>
        <command:parameterValue required="true">ScriptBlock</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.ScriptBlock</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
    </command:parameters>
    <command:inputTypes />
    <command:returnValues />
    <command:examples>
      <command:example>
        <maml:title>---------- EXAMPLE 1 ----------</maml:title>
        <dev:code>$ds = Get-NtDirectoryChild $dir</dev:code>
        <dev:remarks>
          <maml:para>Get immediate children of an object directory.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 2 ----------</maml:title>
        <dev:code>$ds = Get-NtDirectoryChild $dir -Recurse</dev:code>
        <dev:remarks>
          <maml:para>Get children of an object directory recursively.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 3 ----------</maml:title>
        <dev:code>$ds = Get-NtDirectoryChild $dir -Recurse -MaxDepth 2</dev:code>
        <dev:remarks>
          <maml:para>Get children of an object directory recursively up to a maximum depth of 2.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 4 ----------</maml:title>
        <dev:code>$ds = Get-NtDirectoryChild $dir Access ReadControl</dev:code>
        <dev:remarks>
          <maml:para>Get children of an object directory which can be opened for ReadControl access.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 5 ----------</maml:title>
        <dev:code>Get-NtDirectoryChild $dir -Visitor { $path = $_.FullPath; Write-Host $path }</dev:code>
        <dev:remarks>
          <maml:para>Get children of an object directory via the visitor pattern.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 6 ----------</maml:title>
        <dev:code>Get-NtDirectoryChild $dir -Recurse -Visitor { $path = $_.FullPath; Write-Host $path; $path -notmatch "BLAH" }</dev:code>
        <dev:remarks>
          <maml:para>Get children of an object directory via the visitor pattern, exiting the recursion if the object path contains the string BLAH.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 7 ----------</maml:title>
        <dev:code>$ds = Get-NtDirectoryChild $dir -Recurse -Filter { $_.FullPath -match "BLAH" }</dev:code>
        <dev:remarks>
          <maml:para>Get children of an object directory filtering out any objects which don't have BLAH in the name.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <maml:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>about_ManagingNtObjectLifetime</maml:linkText>
      </maml:navigationLink>
    </maml:relatedLinks>
  </command:command>
  <!-- Cmdlet: Get-NtEvent -->
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10">
    <command:details>
      <command:name>Get-NtEvent</command:name>
      <command:verb>Get</command:verb>
      <command:noun>NtEvent</command:noun>
      <maml:description>
        <maml:para>Open a NT event object by path.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This cmdlet opens an existing NT event object. The absolute path to the object in the NT object manager name space must be specified. It's also possible to create the object relative to an existing object by specified the -Root parameter.</maml:para>
    </maml:description>
    <command:syntax>
      <!-- Parameter set: __AllParameterSets -->
      <command:syntaxItem>
        <maml:name>Get-NtEvent</maml:name>
        <!-- Parameter: Path -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="0">
          <maml:name>Path</maml:name>
          <maml:description>
            <maml:para>The NT object manager path to the object to use.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Access -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Access</maml:name>
          <maml:description>
            <maml:para>Specify the access rights for a new handle when creating/opening an object.</maml:para>
            <maml:para>Possible values: QueryState, ModifyState, GenericRead, GenericWrite, GenericExecute, GenericAll, Delete, ReadControl, WriteDac, WriteOwner, Synchronize, MaximumAllowed, AccessSystemSecurity</maml:para>
          </maml:description>
          <command:parameterValue required="true">EventAccessRights</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.EventAccessRights</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>MaximumAllowed</dev:defaultValue>
          <command:parameterValueGroup>
            <command:parameterValue required="false" variableLength="false">QueryState</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ModifyState</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericRead</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericWrite</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericExecute</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericAll</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Delete</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ReadControl</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteDac</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteOwner</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Synchronize</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">MaximumAllowed</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">AccessSystemSecurity</command:parameterValue>
          </command:parameterValueGroup>
        </command:parameter>
        <!-- Parameter: CloseRoot -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>CloseRoot</maml:name>
          <maml:description>
            <maml:para>Automatically close the Root object when this cmdlet finishes processing. Useful for pipelines.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: CreateDirectories -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>CreateDirectories</maml:name>
          <maml:description>
            <maml:para>Create any necessary NtDirectory objects to create the required object. Will return the created directories as well as the object in the output. The new object will be the first entry in the list. This doesn't work when opening an object or creating keys/files.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: ObjectAttributes -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>ObjectAttributes</maml:name>
          <maml:description>
            <maml:para>Object Attribute flags used during Open/Create calls.</maml:para>
            <maml:para>Possible values: None, Inherit, Permanent, Exclusive, CaseInsensitive, OpenIf, OpenLink, KernelHandle, ForceAccessCheck, IgnoreImpersonatedDevicemap, DontReparse</maml:para>
          </maml:description>
          <command:parameterValue required="true">AttributeFlags</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.AttributeFlags</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>CaseInsensitive</dev:defaultValue>
          <command:parameterValueGroup>
            <command:parameterValue required="false" variableLength="false">None</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Inherit</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Permanent</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Exclusive</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">CaseInsensitive</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">OpenIf</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">OpenLink</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">KernelHandle</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ForceAccessCheck</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">IgnoreImpersonatedDevicemap</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">DontReparse</command:parameterValue>
          </command:parameterValueGroup>
        </command:parameter>
        <!-- Parameter: Root -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByValue)" position="named">
          <maml:name>Root</maml:name>
          <maml:description>
            <maml:para>An existing open NT object to use when Path is relative.</maml:para>
          </maml:description>
          <command:parameterValue required="true">NtObject</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.NtObject</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Sddl -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Sddl</maml:name>
          <maml:description>
            <maml:para>Set to provide an explicit security descriptor to a newly created object in SDDL format. Overriddes SecurityDescriptor.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: SecurityDescriptor -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>SecurityDescriptor</maml:name>
          <maml:description>
            <maml:para>Set to provide an explicit security descriptor to a newly created object.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SecurityDescriptor</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.SecurityDescriptor</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: SecurityQualityOfService -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>SecurityQualityOfService</maml:name>
          <maml:description>
            <maml:para>Set to provide an explicit security quality of service when opening files/namedpipes.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SecurityQualityOfService</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.SecurityQualityOfService</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Win32Path -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Win32Path</maml:name>
          <maml:description>
            <maml:para>Use a Win32 path for lookups. For NT objects this means relative to BNO, for files means a DOS style path.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <!-- Parameter: Path -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="0">
        <maml:name>Path</maml:name>
        <maml:description>
          <maml:para>The NT object manager path to the object to use.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Access -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Access</maml:name>
        <maml:description>
          <maml:para>Specify the access rights for a new handle when creating/opening an object.</maml:para>
          <maml:para>Possible values: QueryState, ModifyState, GenericRead, GenericWrite, GenericExecute, GenericAll, Delete, ReadControl, WriteDac, WriteOwner, Synchronize, MaximumAllowed, AccessSystemSecurity</maml:para>
        </maml:description>
        <command:parameterValue required="true">EventAccessRights</command:parameterValue>
        <dev:type>
          <maml:name>NtApiDotNet.EventAccessRights</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>MaximumAllowed</dev:defaultValue>
        <command:parameterValueGroup>
          <command:parameterValue required="false" variableLength="false">QueryState</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">ModifyState</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericRead</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericWrite</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericExecute</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericAll</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Delete</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">ReadControl</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteDac</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteOwner</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Synchronize</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">MaximumAllowed</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">AccessSystemSecurity</command:parameterValue>
        </command:parameterValueGroup>
      </command:parameter>
      <!-- Parameter: Root -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByValue)" position="named">
        <maml:name>Root</maml:name>
        <maml:description>
          <maml:para>An existing open NT object to use when Path is relative.</maml:para>
        </maml:description>
        <command:parameterValue required="true">NtObject</command:parameterValue>
        <dev:type>
          <maml:name>NtApiDotNet.NtObject</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Win32Path -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Win32Path</maml:name>
        <maml:description>
          <maml:para>Use a Win32 path for lookups. For NT objects this means relative to BNO, for files means a DOS style path.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: ObjectAttributes -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>ObjectAttributes</maml:name>
        <maml:description>
          <maml:para>Object Attribute flags used during Open/Create calls.</maml:para>
          <maml:para>Possible values: None, Inherit, Permanent, Exclusive, CaseInsensitive, OpenIf, OpenLink, KernelHandle, ForceAccessCheck, IgnoreImpersonatedDevicemap, DontReparse</maml:para>
        </maml:description>
        <command:parameterValue required="true">AttributeFlags</command:parameterValue>
        <dev:type>
          <maml:name>NtApiDotNet.AttributeFlags</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>CaseInsensitive</dev:defaultValue>
        <command:parameterValueGroup>
          <command:parameterValue required="false" variableLength="false">None</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Inherit</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Permanent</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Exclusive</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">CaseInsensitive</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">OpenIf</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">OpenLink</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">KernelHandle</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">ForceAccessCheck</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">IgnoreImpersonatedDevicemap</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">DontReparse</command:parameterValue>
        </command:parameterValueGroup>
      </command:parameter>
      <!-- Parameter: SecurityDescriptor -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>SecurityDescriptor</maml:name>
        <maml:description>
          <maml:para>Set to provide an explicit security descriptor to a newly created object.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SecurityDescriptor</command:parameterValue>
        <dev:type>
          <maml:name>NtApiDotNet.SecurityDescriptor</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Sddl -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Sddl</maml:name>
        <maml:description>
          <maml:para>Set to provide an explicit security descriptor to a newly created object in SDDL format. Overriddes SecurityDescriptor.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: SecurityQualityOfService -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>SecurityQualityOfService</maml:name>
        <maml:description>
          <maml:para>Set to provide an explicit security quality of service when opening files/namedpipes.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SecurityQualityOfService</command:parameterValue>
        <dev:type>
          <maml:name>NtApiDotNet.SecurityQualityOfService</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: CloseRoot -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>CloseRoot</maml:name>
        <maml:description>
          <maml:para>Automatically close the Root object when this cmdlet finishes processing. Useful for pipelines.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: CreateDirectories -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>CreateDirectories</maml:name>
        <maml:description>
          <maml:para>Create any necessary NtDirectory objects to create the required object. Will return the created directories as well as the object in the output. The new object will be the first entry in the list. This doesn't work when opening an object or creating keys/files.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>NtApiDotNet.NtObject</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>An existing open NT object to use when Path is relative.</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <!-- OutputType: NtEvent -->
      <command:returnValue>
        <dev:type>
          <maml:name>NtApiDotNet.NtEvent</maml:name>
          <maml:uri />
        </dev:type>
      </command:returnValue>
    </command:returnValues>
    <command:examples>
      <command:example>
        <maml:title>---------- EXAMPLE 1 ----------</maml:title>
        <dev:code>$obj = Get-NtEvent \BaseNamedObjects\ABC</dev:code>
        <dev:remarks>
          <maml:para>Get an event object with an absolute path.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 2 ----------</maml:title>
        <dev:code>$root = Get-NtDirectory \BaseNamedObjects
$obj = Get-NtEvent ABC -Root $root</dev:code>
        <dev:remarks>
          <maml:para>Get an event object with a relative path.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 3 ----------</maml:title>
        <dev:code>$obj = Get-NtEvent -Path \BaseNamedObjects\ABC
$obj.Wait()</dev:code>
        <dev:remarks>
          <maml:para>Get an event object, wait for it to be set.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 4 ----------</maml:title>
        <dev:code>$obj = Get-NtEvent -Path \BaseNamedObjects\ABC
$obj.Set()</dev:code>
        <dev:remarks>
          <maml:para>Get an event object, and set it.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 5 ----------</maml:title>
        <dev:code>cd NtObject:\BaseNamedObjects
$obj = Get-NtEvent ABC</dev:code>
        <dev:remarks>
          <maml:para>Get an event object with a relative path based on the current location.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <maml:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>about_ManagingNtObjectLifetime</maml:linkText>
      </maml:navigationLink>
    </maml:relatedLinks>
  </command:command>
  <!-- Cmdlet: New-NtEvent -->
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10">
    <command:details>
      <command:name>New-NtEvent</command:name>
      <command:verb>New</command:verb>
      <command:noun>NtEvent</command:noun>
      <maml:description>
        <maml:para>Create a new NT event object.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This cmdlet creates a new NT event object. The absolute path to the object in the NT object manager name space can be specified. It's also possible to create the object relative to an existing object by specified the -Root parameter. If no path is specified than an unnamed object will be created which can only be duplicated by handle.</maml:para>
    </maml:description>
    <command:syntax>
      <!-- Parameter set: __AllParameterSets -->
      <command:syntaxItem>
        <maml:name>New-NtEvent</maml:name>
        <!-- Parameter: Path -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="0">
          <maml:name>Path</maml:name>
          <maml:description>
            <maml:para>The NT object manager path to the object to use.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Access -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Access</maml:name>
          <maml:description>
            <maml:para>Specify the access rights for a new handle when creating/opening an object.</maml:para>
            <maml:para>Possible values: QueryState, ModifyState, GenericRead, GenericWrite, GenericExecute, GenericAll, Delete, ReadControl, WriteDac, WriteOwner, Synchronize, MaximumAllowed, AccessSystemSecurity</maml:para>
          </maml:description>
          <command:parameterValue required="true">EventAccessRights</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.EventAccessRights</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>MaximumAllowed</dev:defaultValue>
          <command:parameterValueGroup>
            <command:parameterValue required="false" variableLength="false">QueryState</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ModifyState</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericRead</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericWrite</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericExecute</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericAll</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Delete</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ReadControl</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteDac</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteOwner</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Synchronize</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">MaximumAllowed</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">AccessSystemSecurity</command:parameterValue>
          </command:parameterValueGroup>
        </command:parameter>
        <!-- Parameter: CloseRoot -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>CloseRoot</maml:name>
          <maml:description>
            <maml:para>Automatically close the Root object when this cmdlet finishes processing. Useful for pipelines.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: CreateDirectories -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>CreateDirectories</maml:name>
          <maml:description>
            <maml:para>Create any necessary NtDirectory objects to create the required object. Will return the created directories as well as the object in the output. The new object will be the first entry in the list. This doesn't work when opening an object or creating keys/files.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: EventType -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>EventType</maml:name>
          <maml:description>
            <maml:para>The type of event to create.</maml:para>
            <maml:para>Possible values: NotificationEvent, SynchronizationEvent</maml:para>
          </maml:description>
          <command:parameterValue required="true">EventType</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.EventType</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>NotificationEvent</dev:defaultValue>
          <command:parameterValueGroup>
            <command:parameterValue required="false" variableLength="false">NotificationEvent</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">SynchronizationEvent</command:parameterValue>
          </command:parameterValueGroup>
        </command:parameter>
        <!-- Parameter: InitialState -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>InitialState</maml:name>
          <maml:description>
            <maml:para>The initial state of the event object.</maml:para>
          </maml:description>
          <command:parameterValue required="true">bool</command:parameterValue>
          <dev:type>
            <maml:name>System.Boolean</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: ObjectAttributes -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>ObjectAttributes</maml:name>
          <maml:description>
            <maml:para>Object Attribute flags used during Open/Create calls.</maml:para>
            <maml:para>Possible values: None, Inherit, Permanent, Exclusive, CaseInsensitive, OpenIf, OpenLink, KernelHandle, ForceAccessCheck, IgnoreImpersonatedDevicemap, DontReparse</maml:para>
          </maml:description>
          <command:parameterValue required="true">AttributeFlags</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.AttributeFlags</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>CaseInsensitive</dev:defaultValue>
          <command:parameterValueGroup>
            <command:parameterValue required="false" variableLength="false">None</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Inherit</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Permanent</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Exclusive</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">CaseInsensitive</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">OpenIf</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">OpenLink</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">KernelHandle</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ForceAccessCheck</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">IgnoreImpersonatedDevicemap</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">DontReparse</command:parameterValue>
          </command:parameterValueGroup>
        </command:parameter>
        <!-- Parameter: Root -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByValue)" position="named">
          <maml:name>Root</maml:name>
          <maml:description>
            <maml:para>An existing open NT object to use when Path is relative.</maml:para>
          </maml:description>
          <command:parameterValue required="true">NtObject</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.NtObject</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Sddl -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Sddl</maml:name>
          <maml:description>
            <maml:para>Set to provide an explicit security descriptor to a newly created object in SDDL format. Overriddes SecurityDescriptor.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: SecurityDescriptor -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>SecurityDescriptor</maml:name>
          <maml:description>
            <maml:para>Set to provide an explicit security descriptor to a newly created object.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SecurityDescriptor</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.SecurityDescriptor</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: SecurityQualityOfService -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>SecurityQualityOfService</maml:name>
          <maml:description>
            <maml:para>Set to provide an explicit security quality of service when opening files/namedpipes.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SecurityQualityOfService</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.SecurityQualityOfService</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Win32Path -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Win32Path</maml:name>
          <maml:description>
            <maml:para>Use a Win32 path for lookups. For NT objects this means relative to BNO, for files means a DOS style path.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <!-- Parameter: InitialState -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>InitialState</maml:name>
        <maml:description>
          <maml:para>The initial state of the event object.</maml:para>
        </maml:description>
        <command:parameterValue required="true">bool</command:parameterValue>
        <dev:type>
          <maml:name>System.Boolean</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: EventType -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>EventType</maml:name>
        <maml:description>
          <maml:para>The type of event to create.</maml:para>
          <maml:para>Possible values: NotificationEvent, SynchronizationEvent</maml:para>
        </maml:description>
        <command:parameterValue required="true">EventType</command:parameterValue>
        <dev:type>
          <maml:name>NtApiDotNet.EventType</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>NotificationEvent</dev:defaultValue>
        <command:parameterValueGroup>
          <command:parameterValue required="false" variableLength="false">NotificationEvent</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">SynchronizationEvent</command:parameterValue>
        </command:parameterValueGroup>
      </command:parameter>
      <!-- Parameter: Access -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Access</maml:name>
        <maml:description>
          <maml:para>Specify the access rights for a new handle when creating/opening an object.</maml:para>
          <maml:para>Possible values: QueryState, ModifyState, GenericRead, GenericWrite, GenericExecute, GenericAll, Delete, ReadControl, WriteDac, WriteOwner, Synchronize, MaximumAllowed, AccessSystemSecurity</maml:para>
        </maml:description>
        <command:parameterValue required="true">EventAccessRights</command:parameterValue>
        <dev:type>
          <maml:name>NtApiDotNet.EventAccessRights</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>MaximumAllowed</dev:defaultValue>
        <command:parameterValueGroup>
          <command:parameterValue required="false" variableLength="false">QueryState</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">ModifyState</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericRead</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericWrite</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericExecute</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericAll</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Delete</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">ReadControl</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteDac</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteOwner</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Synchronize</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">MaximumAllowed</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">AccessSystemSecurity</command:parameterValue>
        </command:parameterValueGroup>
      </command:parameter>
      <!-- Parameter: Path -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="0">
        <maml:name>Path</maml:name>
        <maml:description>
          <maml:para>The NT object manager path to the object to use.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Root -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByValue)" position="named">
        <maml:name>Root</maml:name>
        <maml:description>
          <maml:para>An existing open NT object to use when Path is relative.</maml:para>
        </maml:description>
        <command:parameterValue required="true">NtObject</command:parameterValue>
        <dev:type>
          <maml:name>NtApiDotNet.NtObject</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Win32Path -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Win32Path</maml:name>
        <maml:description>
          <maml:para>Use a Win32 path for lookups. For NT objects this means relative to BNO, for files means a DOS style path.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: ObjectAttributes -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>ObjectAttributes</maml:name>
        <maml:description>
          <maml:para>Object Attribute flags used during Open/Create calls.</maml:para>
          <maml:para>Possible values: None, Inherit, Permanent, Exclusive, CaseInsensitive, OpenIf, OpenLink, KernelHandle, ForceAccessCheck, IgnoreImpersonatedDevicemap, DontReparse</maml:para>
        </maml:description>
        <command:parameterValue required="true">AttributeFlags</command:parameterValue>
        <dev:type>
          <maml:name>NtApiDotNet.AttributeFlags</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>CaseInsensitive</dev:defaultValue>
        <command:parameterValueGroup>
          <command:parameterValue required="false" variableLength="false">None</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Inherit</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Permanent</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Exclusive</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">CaseInsensitive</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">OpenIf</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">OpenLink</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">KernelHandle</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">ForceAccessCheck</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">IgnoreImpersonatedDevicemap</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">DontReparse</command:parameterValue>
        </command:parameterValueGroup>
      </command:parameter>
      <!-- Parameter: SecurityDescriptor -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>SecurityDescriptor</maml:name>
        <maml:description>
          <maml:para>Set to provide an explicit security descriptor to a newly created object.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SecurityDescriptor</command:parameterValue>
        <dev:type>
          <maml:name>NtApiDotNet.SecurityDescriptor</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Sddl -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Sddl</maml:name>
        <maml:description>
          <maml:para>Set to provide an explicit security descriptor to a newly created object in SDDL format. Overriddes SecurityDescriptor.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: SecurityQualityOfService -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>SecurityQualityOfService</maml:name>
        <maml:description>
          <maml:para>Set to provide an explicit security quality of service when opening files/namedpipes.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SecurityQualityOfService</command:parameterValue>
        <dev:type>
          <maml:name>NtApiDotNet.SecurityQualityOfService</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: CloseRoot -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>CloseRoot</maml:name>
        <maml:description>
          <maml:para>Automatically close the Root object when this cmdlet finishes processing. Useful for pipelines.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: CreateDirectories -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>CreateDirectories</maml:name>
        <maml:description>
          <maml:para>Create any necessary NtDirectory objects to create the required object. Will return the created directories as well as the object in the output. The new object will be the first entry in the list. This doesn't work when opening an object or creating keys/files.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>NtApiDotNet.NtObject</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>An existing open NT object to use when Path is relative.</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <!-- OutputType: NtEvent -->
      <command:returnValue>
        <dev:type>
          <maml:name>NtApiDotNet.NtEvent</maml:name>
          <maml:uri />
        </dev:type>
      </command:returnValue>
    </command:returnValues>
    <command:examples>
      <command:example>
        <maml:title>---------- EXAMPLE 1 ----------</maml:title>
        <dev:code>$obj = New-NtEvent</dev:code>
        <dev:remarks>
          <maml:para>Create a new anonymous event object.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 2 ----------</maml:title>
        <dev:code>$obj = New-NtEvent \BaseNamedObjects\ABC</dev:code>
        <dev:remarks>
          <maml:para>Create a new event object with an absolute path.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 3 ----------</maml:title>
        <dev:code>$root = Get-NtDirectory \BaseNamedObjects
$obj = New-NtEvent ABC -Root $root</dev:code>
        <dev:remarks>
          <maml:para>Create a new event object with a relative path.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 4 ----------</maml:title>
        <dev:code>cd NtObject:\BaseNamedObjects
$obj = New-NtEvent ABC</dev:code>
        <dev:remarks>
          <maml:para>Create a new event object with a relative path based on the current location.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 5 ----------</maml:title>
        <dev:code>$mutant = New-NtEvent -InitialState $true</dev:code>
        <dev:remarks>
          <maml:para>Create a new anonymous event object with it initially set.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 6 ----------</maml:title>
        <dev:code>$obj = New-NtEvent -Path \BaseNamedObjects\ABC
$obj.Wait()</dev:code>
        <dev:remarks>
          <maml:para>Create a new event object, wait for it to be set.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 7 ----------</maml:title>
        <dev:code>$obj = New-NtEvent -Path \BaseNamedObjects\ABC
$obj.Set()</dev:code>
        <dev:remarks>
          <maml:para>Create a new event object, and set it.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <maml:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>about_ManagingNtObjectLifetime</maml:linkText>
      </maml:navigationLink>
    </maml:relatedLinks>
  </command:command>
  <!-- Cmdlet: Get-NtFile -->
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10">
    <command:details>
      <command:name>Get-NtFile</command:name>
      <command:verb>Get</command:verb>
      <command:noun>NtFile</command:noun>
      <maml:description>
        <maml:para>Open a existing NT file object.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This cmdlet opens a existing NT file object. The absolute path to the object in the NT object manager name space can be specified. It's also possible to open the object relative to an existing object by specified the -Root parameter. To simply calling it's also possible to specify the path in a Win32 format when using the -Win32Path parameter.</maml:para>
    </maml:description>
    <command:syntax>
      <!-- Parameter set: __AllParameterSets -->
      <command:syntaxItem>
        <maml:name>Get-NtFile</maml:name>
        <!-- Parameter: Path -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="0">
          <maml:name>Path</maml:name>
          <maml:description>
            <maml:para>The NT object manager path to the object to use.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Access -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Access</maml:name>
          <maml:description>
            <maml:para>Specify the access rights for a new handle when creating/opening an object.</maml:para>
            <maml:para>Possible values: None, ReadData, WriteData, AppendData, ReadEa, WriteEa, Execute, DeleteChild, ReadAttributes, WriteAttributes, GenericRead, GenericWrite, GenericExecute, GenericAll, Delete, ReadControl, WriteDac, WriteOwner, Synchronize, MaximumAllowed, AccessSystemSecurity</maml:para>
          </maml:description>
          <command:parameterValue required="true">FileAccessRights</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.FileAccessRights</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>MaximumAllowed</dev:defaultValue>
          <command:parameterValueGroup>
            <command:parameterValue required="false" variableLength="false">None</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ReadData</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteData</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">AppendData</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ReadEa</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteEa</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Execute</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">DeleteChild</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ReadAttributes</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteAttributes</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericRead</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericWrite</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericExecute</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericAll</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Delete</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ReadControl</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteDac</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteOwner</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Synchronize</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">MaximumAllowed</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">AccessSystemSecurity</command:parameterValue>
          </command:parameterValueGroup>
        </command:parameter>
        <!-- Parameter: CloseRoot -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>CloseRoot</maml:name>
          <maml:description>
            <maml:para>Automatically close the Root object when this cmdlet finishes processing. Useful for pipelines.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: CreateDirectories -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>CreateDirectories</maml:name>
          <maml:description>
            <maml:para>Create any necessary NtDirectory objects to create the required object. Will return the created directories as well as the object in the output. The new object will be the first entry in the list. This doesn't work when opening an object or creating keys/files.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: DirectoryAccess -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>DirectoryAccess</maml:name>
          <maml:description>
            <maml:para>Specify file access using directory access rights.</maml:para>
            <maml:para>Possible values: None, ListDirectory, AddFile, AddSubDirectory, ReadEa, WriteEa, Traverse, DeleteChild, ReadAttributes, WriteAttributes, GenericRead, GenericWrite, GenericExecute, GenericAll, Delete, ReadControl, WriteDac, WriteOwner, Synchronize, MaximumAllowed, AccessSystemSecurity</maml:para>
          </maml:description>
          <command:parameterValue required="true">FileDirectoryAccessRights</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.FileDirectoryAccessRights</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>MaximumAllowed</dev:defaultValue>
          <command:parameterValueGroup>
            <command:parameterValue required="false" variableLength="false">None</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ListDirectory</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">AddFile</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">AddSubDirectory</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ReadEa</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteEa</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Traverse</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">DeleteChild</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ReadAttributes</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteAttributes</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericRead</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericWrite</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericExecute</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">GenericAll</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Delete</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ReadControl</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteDac</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteOwner</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Synchronize</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">MaximumAllowed</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">AccessSystemSecurity</command:parameterValue>
          </command:parameterValueGroup>
        </command:parameter>
        <!-- Parameter: ObjectAttributes -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>ObjectAttributes</maml:name>
          <maml:description>
            <maml:para>Object Attribute flags used during Open/Create calls.</maml:para>
            <maml:para>Possible values: None, Inherit, Permanent, Exclusive, CaseInsensitive, OpenIf, OpenLink, KernelHandle, ForceAccessCheck, IgnoreImpersonatedDevicemap, DontReparse</maml:para>
          </maml:description>
          <command:parameterValue required="true">AttributeFlags</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.AttributeFlags</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>CaseInsensitive</dev:defaultValue>
          <command:parameterValueGroup>
            <command:parameterValue required="false" variableLength="false">None</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Inherit</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Permanent</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Exclusive</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">CaseInsensitive</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">OpenIf</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">OpenLink</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">KernelHandle</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ForceAccessCheck</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">IgnoreImpersonatedDevicemap</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">DontReparse</command:parameterValue>
          </command:parameterValueGroup>
        </command:parameter>
        <!-- Parameter: Options -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Options</maml:name>
          <maml:description>
            <maml:para>The options to open the file with.</maml:para>
            <maml:para>Possible values: None, DirectoryFile, WriteThrough, SequentialOnly, NoIntermediateBuffering, SynchronousIoAlert, SynchronousIoNonAlert, NonDirectoryFile, CreateTreeConnection, CompleteIfOplocked, NoEaKnowledge, OpenRemoteInstance, RandomAccess, DeleteOnClose, OpenByFileId, OpenForBackupIntent, NoCompression, OpenRequiringOplock, DisallowExclusive, SessionAware, ReserveOpfilter, OpenReparsePoint, OpenNoRecall, OpenForFreeSpaceQuery</maml:para>
          </maml:description>
          <command:parameterValue required="true">FileOpenOptions</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.FileOpenOptions</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
          <command:parameterValueGroup>
            <command:parameterValue required="false" variableLength="false">None</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">DirectoryFile</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">WriteThrough</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">SequentialOnly</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">NoIntermediateBuffering</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">SynchronousIoAlert</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">SynchronousIoNonAlert</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">NonDirectoryFile</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">CreateTreeConnection</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">CompleteIfOplocked</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">NoEaKnowledge</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">OpenRemoteInstance</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">RandomAccess</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">DeleteOnClose</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">OpenByFileId</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">OpenForBackupIntent</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">NoCompression</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">OpenRequiringOplock</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">DisallowExclusive</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">SessionAware</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ReserveOpfilter</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">OpenReparsePoint</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">OpenNoRecall</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">OpenForFreeSpaceQuery</command:parameterValue>
          </command:parameterValueGroup>
        </command:parameter>
        <!-- Parameter: Root -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByValue)" position="named">
          <maml:name>Root</maml:name>
          <maml:description>
            <maml:para>An existing open NT object to use when Path is relative.</maml:para>
          </maml:description>
          <command:parameterValue required="true">NtObject</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.NtObject</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Sddl -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Sddl</maml:name>
          <maml:description>
            <maml:para>Set to provide an explicit security descriptor to a newly created object in SDDL format. Overriddes SecurityDescriptor.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: SecurityDescriptor -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>SecurityDescriptor</maml:name>
          <maml:description>
            <maml:para>Set to provide an explicit security descriptor to a newly created object.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SecurityDescriptor</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.SecurityDescriptor</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: SecurityQualityOfService -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>SecurityQualityOfService</maml:name>
          <maml:description>
            <maml:para>Set to provide an explicit security quality of service when opening files/namedpipes.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SecurityQualityOfService</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.SecurityQualityOfService</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: ShareMode -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>ShareMode</maml:name>
          <maml:description>
            <maml:para>The access share mode to open the file with.</maml:para>
            <maml:para>Possible values: None, Read, Write, Delete, All</maml:para>
          </maml:description>
          <command:parameterValue required="true">FileShareMode</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.FileShareMode</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
          <command:parameterValueGroup>
            <command:parameterValue required="false" variableLength="false">None</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Read</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Write</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Delete</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">All</command:parameterValue>
          </command:parameterValueGroup>
        </command:parameter>
        <!-- Parameter: Transaction -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Transaction</maml:name>
          <maml:description>
            <maml:para>Specify a transaction to create the file under.</maml:para>
          </maml:description>
          <command:parameterValue required="true">NtTransaction</command:parameterValue>
          <dev:type>
            <maml:name>NtApiDotNet.NtTransaction</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Win32Path -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Win32Path</maml:name>
          <maml:description>
            <maml:para>Use a Win32 path for lookups. For NT objects this means relative to BNO, for files means a DOS style path.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <!-- Parameter: Path -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="0">
        <maml:name>Path</maml:name>
        <maml:description>
          <maml:para>The NT object manager path to the object to use.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: DirectoryAccess -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>DirectoryAccess</maml:name>
        <maml:description>
          <maml:para>Specify file access using directory access rights.</maml:para>
          <maml:para>Possible values: None, ListDirectory, AddFile, AddSubDirectory, ReadEa, WriteEa, Traverse, DeleteChild, ReadAttributes, WriteAttributes, GenericRead, GenericWrite, GenericExecute, GenericAll, Delete, ReadControl, WriteDac, WriteOwner, Synchronize, MaximumAllowed, AccessSystemSecurity</maml:para>
        </maml:description>
        <command:parameterValue required="true">FileDirectoryAccessRights</command:parameterValue>
        <dev:type>
          <maml:name>NtApiDotNet.FileDirectoryAccessRights</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>MaximumAllowed</dev:defaultValue>
        <command:parameterValueGroup>
          <command:parameterValue required="false" variableLength="false">None</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">ListDirectory</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">AddFile</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">AddSubDirectory</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">ReadEa</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteEa</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Traverse</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">DeleteChild</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">ReadAttributes</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteAttributes</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericRead</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericWrite</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericExecute</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericAll</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Delete</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">ReadControl</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteDac</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteOwner</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Synchronize</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">MaximumAllowed</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">AccessSystemSecurity</command:parameterValue>
        </command:parameterValueGroup>
      </command:parameter>
      <!-- Parameter: ShareMode -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>ShareMode</maml:name>
        <maml:description>
          <maml:para>The access share mode to open the file with.</maml:para>
          <maml:para>Possible values: None, Read, Write, Delete, All</maml:para>
        </maml:description>
        <command:parameterValue required="true">FileShareMode</command:parameterValue>
        <dev:type>
          <maml:name>NtApiDotNet.FileShareMode</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
        <command:parameterValueGroup>
          <command:parameterValue required="false" variableLength="false">None</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Read</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Write</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Delete</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">All</command:parameterValue>
        </command:parameterValueGroup>
      </command:parameter>
      <!-- Parameter: Options -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Options</maml:name>
        <maml:description>
          <maml:para>The options to open the file with.</maml:para>
          <maml:para>Possible values: None, DirectoryFile, WriteThrough, SequentialOnly, NoIntermediateBuffering, SynchronousIoAlert, SynchronousIoNonAlert, NonDirectoryFile, CreateTreeConnection, CompleteIfOplocked, NoEaKnowledge, OpenRemoteInstance, RandomAccess, DeleteOnClose, OpenByFileId, OpenForBackupIntent, NoCompression, OpenRequiringOplock, DisallowExclusive, SessionAware, ReserveOpfilter, OpenReparsePoint, OpenNoRecall, OpenForFreeSpaceQuery</maml:para>
        </maml:description>
        <command:parameterValue required="true">FileOpenOptions</command:parameterValue>
        <dev:type>
          <maml:name>NtApiDotNet.FileOpenOptions</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
        <command:parameterValueGroup>
          <command:parameterValue required="false" variableLength="false">None</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">DirectoryFile</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteThrough</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">SequentialOnly</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">NoIntermediateBuffering</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">SynchronousIoAlert</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">SynchronousIoNonAlert</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">NonDirectoryFile</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">CreateTreeConnection</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">CompleteIfOplocked</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">NoEaKnowledge</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">OpenRemoteInstance</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">RandomAccess</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">DeleteOnClose</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">OpenByFileId</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">OpenForBackupIntent</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">NoCompression</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">OpenRequiringOplock</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">DisallowExclusive</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">SessionAware</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">ReserveOpfilter</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">OpenReparsePoint</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">OpenNoRecall</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">OpenForFreeSpaceQuery</command:parameterValue>
        </command:parameterValueGroup>
      </command:parameter>
      <!-- Parameter: Transaction -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Transaction</maml:name>
        <maml:description>
          <maml:para>Specify a transaction to create the file under.</maml:para>
        </maml:description>
        <command:parameterValue required="true">NtTransaction</command:parameterValue>
        <dev:type>
          <maml:name>NtApiDotNet.NtTransaction</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Access -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Access</maml:name>
        <maml:description>
          <maml:para>Specify the access rights for a new handle when creating/opening an object.</maml:para>
          <maml:para>Possible values: None, ReadData, WriteData, AppendData, ReadEa, WriteEa, Execute, DeleteChild, ReadAttributes, WriteAttributes, GenericRead, GenericWrite, GenericExecute, GenericAll, Delete, ReadControl, WriteDac, WriteOwner, Synchronize, MaximumAllowed, AccessSystemSecurity</maml:para>
        </maml:description>
        <command:parameterValue required="true">FileAccessRights</command:parameterValue>
        <dev:type>
          <maml:name>NtApiDotNet.FileAccessRights</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>MaximumAllowed</dev:defaultValue>
        <command:parameterValueGroup>
          <command:parameterValue required="false" variableLength="false">None</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">ReadData</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteData</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">AppendData</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">ReadEa</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteEa</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Execute</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">DeleteChild</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">ReadAttributes</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteAttributes</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericRead</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericWrite</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericExecute</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">GenericAll</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Delete</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">ReadControl</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteDac</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">WriteOwner</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Synchronize</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">MaximumAllowed</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">AccessSystemSecurity</command:parameterValue>
        </command:parameterValueGroup>
      </command:parameter>
      <!-- Parameter: Root -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByValue)" position="named">
        <maml:name>Root</maml:name>
        <maml:description>
          <maml:para>An existing open NT object to use when Path is relative.</maml:para>
        </maml:description>
        <command:parameterValue required="true">NtObject</command:parameterValue>
        <dev:type>
          <maml:name>NtApiDotNet.NtObject</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Win32Path -->
      <command:parameter required="false&qu