en-US/Adsi-help.xml

<?xml version="1.0" encoding="utf-8"?>
<helpItems schema="maml" xmlns="http://msh">
  <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" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Add-DomainFqdnToLdapPath</command:name>
      <command:verb>Add</command:verb>
      <command:noun>DomainFqdnToLdapPath</command:noun>
      <maml:description>
        <maml:para>Add a domain FQDN to an LDAP directory path as the server address so the new path can be used for remote queries</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Uses RegEx to: - Match the Domain Components from the Distinguished Name in the LDAP directory path - Convert the Domain Components to an FQDN - Insert them into the directory path as the server address</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Add-DomainFqdnToLdapPath</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="True (ByValue)" position="1" aliases="none">
          <maml:name>DirectoryPath</maml:name>
          <maml:description>
            <maml:para>Incomplete LDAP directory path containing a distinguishedName but lacking a server address</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.String[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>Cache</maml:name>
          <maml:description>
            <maml:para>In-process cache to reduce calls to other processes or to disk</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.Management.Automation.PSReference</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.PSReference</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="proga">
          <maml:name>ProgressAction</maml:name>
          <maml:description>
            <maml:para>{{ Fill ProgressAction Description }}</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.Management.Automation.ActionPreference</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.ActionPreference</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>Cache</maml:name>
        <maml:description>
          <maml:para>In-process cache to reduce calls to other processes or to disk</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.Management.Automation.PSReference</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.PSReference</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="True (ByValue)" position="1" aliases="none">
        <maml:name>DirectoryPath</maml:name>
        <maml:description>
          <maml:para>Incomplete LDAP directory path containing a distinguishedName but lacking a server address</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.String[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="proga">
        <maml:name>ProgressAction</maml:name>
        <maml:description>
          <maml:para>{{ Fill ProgressAction Description }}</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.Management.Automation.ActionPreference</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.ActionPreference</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>[System.String]$DirectoryPath</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>[System.String] Complete LDAP directory path including server address</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title>
        <dev:code>Add-DomainFqdnToLdapPath -DirectoryPath 'LDAP://CN=user1,OU=UsersOU,DC=ad,DC=contoso,DC=com' -Cache $Cache</dev:code>
        <dev:remarks>
          <maml:para>Completes the partial LDAP path 'LDAP://CN=user1,OU=UsersOU,DC=ad,DC=contoso,DC=com' to 'LDAP://ad.contoso.com/CN=user1,OU=UsersOU,DC=ad,DC=contoso,DC=com' with the domain FQDN added as the server address. This is crucial for making remote LDAP queries to specific domain controllers, especially when working in multi-domain environments or when connecting to trusted domains.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks />
  </command:command>
  <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" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Add-SidInfo</command:name>
      <command:verb>Add</command:verb>
      <command:noun>SidInfo</command:noun>
      <maml:description>
        <maml:para>Add some useful properties to a DirectoryEntry object for easier access</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Add SidString, Domain, and SamAccountName NoteProperties to a DirectoryEntry</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Add-SidInfo</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="True (ByValue)" position="1" aliases="none">
          <maml:name>InputObject</maml:name>
          <maml:description>
            <maml:para>Expecting a [System.DirectoryServices.DirectoryEntry] from the LDAP or WinNT providers, or a [PSCustomObject] imitation from Get-DirectoryEntry. Must contain the objectSid property</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.Object</command:parameterValue>
          <dev:type>
            <maml:name>System.Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>DomainsBySid</maml:name>
          <maml:description>
            <maml:para>In-process cache to reduce calls to other processes or to disk</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.Management.Automation.PSReference</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.PSReference</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="proga">
          <maml:name>ProgressAction</maml:name>
          <maml:description>
            <maml:para>{{ Fill ProgressAction Description }}</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.Management.Automation.ActionPreference</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.ActionPreference</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>DomainsBySid</maml:name>
        <maml:description>
          <maml:para>In-process cache to reduce calls to other processes or to disk</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.Management.Automation.PSReference</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.PSReference</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="True (ByValue)" position="1" aliases="none">
        <maml:name>InputObject</maml:name>
        <maml:description>
          <maml:para>Expecting a [System.DirectoryServices.DirectoryEntry] from the LDAP or WinNT providers, or a [PSCustomObject] imitation from Get-DirectoryEntry. Must contain the objectSid property</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.Object</command:parameterValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="proga">
        <maml:name>ProgressAction</maml:name>
        <maml:description>
          <maml:para>{{ Fill ProgressAction Description }}</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.Management.Automation.ActionPreference</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.ActionPreference</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>[System.DirectoryServices.DirectoryEntry] or a [PSCustomObject] imitation. InputObject parameter. Must contain the objectSid property.</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>[System.DirectoryServices.DirectoryEntry] or a [PSCustomObject] imitation. Whatever was input, but with three extra properties added now.</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title>
        <dev:code>[System.DirectoryServices.DirectoryEntry]::new('WinNT://localhost/Administrator') | Add-SidInfo
distinguishedName :
Path : WinNT://localhost/Administrator</dev:code>
        <dev:remarks>
          <maml:para>The output object's default format is not modified so with default formatting it appears identical to the original. Upon closer inspection it now has SidString, Domain, and SamAccountName properties.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks />
  </command:command>
  <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" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>ConvertFrom-DirectoryEntry</command:name>
      <command:verb>ConvertFrom</command:verb>
      <command:noun>DirectoryEntry</command:noun>
      <maml:description>
        <maml:para>Convert a DirectoryEntry to a PSCustomObject</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Recursively convert every property into a string, or a PSCustomObject (whose properties are all strings, or more PSCustomObjects) This obfuscates the troublesome PropertyCollection and PropertyValueCollection and Hashtable aspects of working with ADSI</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>ConvertFrom-DirectoryEntry</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>DirectoryEntry</maml:name>
          <maml:description>
            <maml:para>DirectoryEntry objects to convert to PSCustomObjects</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.DirectoryServices.DirectoryEntry[]</command:parameterValue>
          <dev:type>
            <maml:name>System.DirectoryServices.DirectoryEntry[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="proga">
          <maml:name>ProgressAction</maml:name>
          <maml:description>
            <maml:para>{{ Fill ProgressAction Description }}</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.Management.Automation.ActionPreference</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.ActionPreference</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>DirectoryEntry</maml:name>
        <maml:description>
          <maml:para>DirectoryEntry objects to convert to PSCustomObjects</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.DirectoryServices.DirectoryEntry[]</command:parameterValue>
        <dev:type>
          <maml:name>System.DirectoryServices.DirectoryEntry[]</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="proga">
        <maml:name>ProgressAction</maml:name>
        <maml:description>
          <maml:para>{{ Fill ProgressAction Description }}</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.Management.Automation.ActionPreference</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.ActionPreference</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>[System.DirectoryServices.DirectoryEntry]</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>[PSCustomObject]</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title>
        <dev:code>$DirEntry = [System.DirectoryServices.DirectoryEntry]::new('WinNT://localhost/Administrator')
ConvertFrom-DirectoryEntry -DirectoryEntry $DirEntry</dev:code>
        <dev:remarks>
          <maml:para>Converts the DirectoryEntry for the local Administrator account into a PowerShell custom object with simplified property values. This makes it easier to work with the object in PowerShell and avoids the complexity of DirectoryEntry property collections, which can be difficult to access and manipulate directly.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks />
  </command:command>
  <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" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>ConvertFrom-PropertyValueCollectionToString</command:name>
      <command:verb>ConvertFrom</command:verb>
      <command:noun>PropertyValueCollectionToString</command:noun>
      <maml:description>
        <maml:para>Convert a PropertyValueCollection to a string</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Useful when working with System.DirectoryServices and some other namespaces</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>ConvertFrom-PropertyValueCollectionToString</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>PropertyValueCollection</maml:name>
          <maml:description>
            <maml:para>This PropertyValueCollection will be converted to a string</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.DirectoryServices.PropertyValueCollection</command:parameterValue>
          <dev:type>
            <maml:name>System.DirectoryServices.PropertyValueCollection</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>PropertyValueCollection</maml:name>
        <maml:description>
          <maml:para>This PropertyValueCollection will be converted to a string</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.DirectoryServices.PropertyValueCollection</command:parameterValue>
        <dev:type>
          <maml:name>System.DirectoryServices.PropertyValueCollection</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None. Pipeline input is not accepted.</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>[System.String]</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
      <command:returnValue>
        <dev:type>
          <maml:name>Returns a string representation of the PropertyValueCollection's value.</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title>
        <dev:code>$DirectoryEntry = [adsi]("WinNT://$(hostname)")
$DirectoryEntry.Properties.Keys |
ForEach-Object {
 ConvertFrom-PropertyValueCollectionToString -PropertyValueCollection $DirectoryEntry.Properties[$_]
}</dev:code>
        <dev:remarks>
          <maml:para>For each property in a DirectoryEntry, convert its corresponding PropertyValueCollection to a string</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks />
  </command:command>
  <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" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>ConvertFrom-ResolvedID</command:name>
      <command:verb>ConvertFrom</command:verb>
      <command:noun>ResolvedID</command:noun>
      <maml:description>
        <maml:para>Use ADSI to collect more information about the IdentityReference in NTFS Access Control Entries</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Recursively retrieves group members and detailed information about them Use caching to reduce duplicate directory queries</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>ConvertFrom-ResolvedID</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>IdentityReference</maml:name>
          <maml:description>
            <maml:para>The NTFS AccessControlEntry object(s), grouped by their IdentityReference property TODO: Use System.Security.Principal.NTAccount instead</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.String</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>Cache</maml:name>
          <maml:description>
            <maml:para>In-process cache to reduce calls to other processes or to disk</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.Management.Automation.PSReference</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.PSReference</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>AccountProperty</maml:name>
          <maml:description>
            <maml:para>Properties of each Account to display on the report</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.String[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>@('DisplayName', 'Company', 'Department', 'Title', 'Description')</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>NoGroupMembers</maml:name>
          <maml:description>
            <maml:para>Do not get group members</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="proga">
          <maml:name>ProgressAction</maml:name>
          <maml:description>
            <maml:para>{{ Fill ProgressAction Description }}</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.Management.Automation.ActionPreference</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.ActionPreference</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>AccountProperty</maml:name>
        <maml:description>
          <maml:para>Properties of each Account to display on the report</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.String[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>@('DisplayName', 'Company', 'Department', 'Title', 'Description')</dev:defaultValue>
      </command:parameter>
      <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>Cache</maml:name>
        <maml:description>
          <maml:para>In-process cache to reduce calls to other processes or to disk</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.Management.Automation.PSReference</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.PSReference</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>IdentityReference</maml:name>
        <maml:description>
          <maml:para>The NTFS AccessControlEntry object(s), grouped by their IdentityReference property TODO: Use System.Security.Principal.NTAccount instead</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.String</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>NoGroupMembers</maml:name>
        <maml:description>
          <maml:para>Do not get group members</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.Management.Automation.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:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="proga">
        <maml:name>ProgressAction</maml:name>
        <maml:description>
          <maml:para>{{ Fill ProgressAction Description }}</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.Management.Automation.ActionPreference</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.ActionPreference</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>[System.Object]$IdentityReference</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>[System.Object] The input object is returned with additional properties added:</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
      <command:returnValue>
        <dev:type>
          <maml:name>DirectoryEntry</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
      <command:returnValue>
        <dev:type>
          <maml:name>DomainDn</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
      <command:returnValue>
        <dev:type>
          <maml:name>DomainNetBIOS</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
      <command:returnValue>
        <dev:type>
          <maml:name>ObjectType</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
      <command:returnValue>
        <dev:type>
          <maml:name>Members (if the DirectoryEntry is a group).</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title>
        <dev:code>(Get-Acl).Access |
Resolve-IdentityReference |
Group-Object -Property IdentityReferenceResolved |
ConvertFrom-ResolvedID</dev:code>
        <dev:remarks>
          <maml:para>Incomplete example but it shows the chain of functions to generate the expected input for this function. This example gets the ACL for an important folder, resolves each identity reference in the access entries, groups them by the resolved identity reference, and then converts each unique identity to a detailed principal object. This provides comprehensive information about each security principal including their directory entry, domain information, and group membership details, which is essential for thorough permission analysis and reporting.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks />
  </command:command>
  <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" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>ConvertFrom-ResultPropertyValueCollectionToString</command:name>
      <command:verb>ConvertFrom</command:verb>
      <command:noun>ResultPropertyValueCollectionToString</command:noun>
      <maml:description>
        <maml:para>Convert a ResultPropertyValueCollection to a string</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Useful when working with System.DirectoryServices and some other namespaces</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>ConvertFrom-ResultPropertyValueCollectionToString</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>ResultPropertyValueCollection</maml:name>
          <maml:description>
            <maml:para>ResultPropertyValueCollection object to convert to a string</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.DirectoryServices.ResultPropertyValueCollection</command:parameterValue>
          <dev:type>
            <maml:name>System.DirectoryServices.ResultPropertyValueCollection</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>ResultPropertyValueCollection</maml:name>
        <maml:description>
          <maml:para>ResultPropertyValueCollection object to convert to a string</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.DirectoryServices.ResultPropertyValueCollection</command:parameterValue>
        <dev:type>
          <maml:name>System.DirectoryServices.ResultPropertyValueCollection</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None. Pipeline input is not accepted.</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>[System.String]</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title>
        <dev:code>$DirectoryEntry = [adsi]("WinNT://$(hostname)")
$DirectoryEntry.Properties.Keys |
ForEach-Object {
 ConvertFrom-PropertyValueCollectionToString -PropertyValueCollection $DirectoryEntry.Properties[$_]
}</dev:code>
        <dev:remarks>
          <maml:para>For each property in a DirectoryEntry, convert its corresponding PropertyValueCollection to a string</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks />
  </command:command>
  <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" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>ConvertFrom-SearchResult</command:name>
      <command:verb>ConvertFrom</command:verb>
      <command:noun>SearchResult</command:noun>
      <maml:description>
        <maml:para>Convert a SearchResult to a PSCustomObject</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Recursively convert every property into a string, or a PSCustomObject (whose properties are all strings, or more PSCustomObjects) This obfuscates the troublesome ResultPropertyCollection and ResultPropertyValueCollection and Hashtable aspects of working with ADSI searches</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>ConvertFrom-SearchResult</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="True (ByValue)" position="1" aliases="none">
          <maml:name>SearchResult</maml:name>
          <maml:description>
            <maml:para>SearchResult objects to convert to PSCustomObjects</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.DirectoryServices.SearchResult[]</command:parameterValue>
          <dev:type>
            <maml:name>System.DirectoryServices.SearchResult[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="proga">
          <maml:name>ProgressAction</maml:name>
          <maml:description>
            <maml:para>{{ Fill ProgressAction Description }}</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.Management.Automation.ActionPreference</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.ActionPreference</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="proga">
        <maml:name>ProgressAction</maml:name>
        <maml:description>
          <maml:para>{{ Fill ProgressAction Description }}</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.Management.Automation.ActionPreference</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.ActionPreference</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="True (ByValue)" position="1" aliases="none">
        <maml:name>SearchResult</maml:name>
        <maml:description>
          <maml:para>SearchResult objects to convert to PSCustomObjects</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.DirectoryServices.SearchResult[]</command:parameterValue>
        <dev:type>
          <maml:name>System.DirectoryServices.SearchResult[]</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes />
    <command:returnValues />
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- Example 1 --------------------------</maml:title>
        <dev:code>PS C:\&gt; {{ Add example code here }}</dev:code>
        <dev:remarks>
          <maml:para>{{ Add example description here }}</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks />
  </command:command>
  <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" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>TODO: There is a faster way than Select-Object, just need to dig into the default formatting of SearchResult to see how to get those properties</command:name>
      <command:verb>TODO: There is a faster way than Select</command:verb>
      <command:noun>Object, just need to dig into the default formatting of SearchResult to see how to get those properties</command:noun>
      <maml:description />
    </command:details>
    <maml:description />
    <command:syntax />
    <command:parameters />
    <command:inputTypes />
    <command:returnValues />
    <maml:alertSet>
      <maml:alert />
    </maml:alertSet>
    <command:examples />
    <command:relatedLinks />
  </command:command>
  <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" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>ConvertFrom-SidString</command:name>
      <command:verb>ConvertFrom</command:verb>
      <command:noun>SidString</command:noun>
      <maml:description>
        <maml:para>Converts a SID string to a DirectoryEntry object.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Attempts to resolve a security identifier (SID) string to its corresponding DirectoryEntry object by querying the directory service using the LDAP provider. This function is not currently in use by the Export-Permission module.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>ConvertFrom-SidString</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>SID</maml:name>
          <maml:description>
            <maml:para>Security Identifier (SID) string to convert to a DirectoryEntry</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.String</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>Cache</maml:name>
          <maml:description>
            <maml:para>In-process cache to reduce calls to other processes or to disk</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.Management.Automation.PSReference</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.PSReference</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="proga">
          <maml:name>ProgressAction</maml:name>
          <maml:description>
            <maml:para>{{ Fill ProgressAction Description }}</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.Management.Automation.ActionPreference</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.ActionPreference</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>Cache</maml:name>
        <maml:description>
          <maml:para>In-process cache to reduce calls to other processes or to disk</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.Management.Automation.PSReference</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.PSReference</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="proga">
        <maml:name>ProgressAction</maml:name>
        <maml:description>
          <maml:para>{{ Fill ProgressAction Description }}</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.Management.Automation.ActionPreference</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.ActionPreference</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>SID</maml:name>
        <maml:description>
          <maml:para>Security Identifier (SID) string to convert to a DirectoryEntry</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.String</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.DirectoryServices.DirectoryEntry</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para>This function is not currently in use by Export-Permission</maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title>
        <dev:code>ConvertFrom-SidString -SID 'S-1-5-21-3165297888-301567370-576410423-1103' -Cache $Cache</dev:code>
        <dev:remarks>
          <maml:para>Attempts to convert a SID string representing a user or group to its corresponding DirectoryEntry object by searching Active Directory using the LDAP provider. This allows you to obtain detailed information about a security principal when you only have its SID string representation.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks />
  </command:command>
  <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" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>ConvertTo-DecStringRepresentation</command:name>
      <command:verb>ConvertTo</command:verb>
      <command:noun>DecStringRepresentation</command:noun>
      <maml:description>
        <maml:para>Convert a byte array to a string representation of its decimal format</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Uses the custom format operator -f to format each byte as a string decimal representation</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>ConvertTo-DecStringRepresentation</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>ByteArray</maml:name>
          <maml:description>
            <maml:para>Byte array. Often the binary format of an objectSid or LoginHours</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.Byte[]</command:parameterValue>
          <dev:type>
            <maml:name>System.Byte[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>ByteArray</maml:name>
        <maml:description>
          <maml:para>Byte array. Often the binary format of an objectSid or LoginHours</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.Byte[]</command:parameterValue>
        <dev:type>
          <maml:name>System.Byte[]</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>[System.Byte[]]$ByteArray</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>[System.String] Array of strings representing the byte array's decimal values</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title>
        <dev:code>ConvertTo-DecStringRepresentation -ByteArray $Bytes</dev:code>
        <dev:remarks>
          <maml:para>Convert the binary SID $Bytes to a decimal string representation</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks />
  </command:command>
  <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" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>ConvertTo-DistinguishedName</command:name>
      <command:verb>ConvertTo</command:verb>
      <command:noun>DistinguishedName</command:noun>
      <maml:description>
        <maml:para>Convert a domain NetBIOS name to its distinguishedName</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>https://docs.microsoft.com/en-us/windows/win32/api/iads/nn-iads-iadsnametranslate</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>ConvertTo-DistinguishedName</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>AdsiProvider</maml:name>
          <maml:description>
            <maml:para>AdsiProvider (WinNT or LDAP) of the servers associated with the provided FQDNs or NetBIOS names</maml:para>
            <maml:para>This parameter can be used to reduce calls to Find-AdsiProvider</maml:para>
            <maml:para>Useful when that has been done already but the DomainByFqdn and DomainByNetbios caches have not been updated yet</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.String</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>Cache</maml:name>
          <maml:description>
            <maml:para>In-process cache to reduce calls to other processes or to disk</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.Management.Automation.PSReference</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.PSReference</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="True (ByValue)" position="named" aliases="none">
          <maml:name>Domain</maml:name>
          <maml:description>
            <maml:para>NetBIOS name of the domain</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.String[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>InitType</maml:name>
          <maml:description>
            <maml:para>Type of initialization to be performed Will be translated to the corresponding integer for use as the lnSetType parameter of the IADsNameTranslate::Init method (iads.h) https://docs.microsoft.com/en-us/windows/win32/api/iads/ne-iads-ads_name_inittype_enum</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.String</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>ADS_NAME_INITTYPE_GC</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>InputType</maml:name>
          <maml:description>
            <maml:para>Format of the name of the directory object that will be used for the input Will be translated to the corresponding integer for use as the lnSetType parameter of the IADsNameTranslate::Set method (iads.h) https://docs.microsoft.com/en-us/windows/win32/api/iads/ne-iads-ads_name_type_enum</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.String</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>ADS_NAME_TYPE_NT4</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>OutputType</maml:name>
          <maml:description>
            <maml:para>Format of the name of the directory object that will be used for the output Will be translated to the corresponding integer for use as the lnSetType parameter of the IADsNameTranslate::Get method (iads.h) https://docs.microsoft.com/en-us/windows/win32/api/iads/ne-iads-ads_name_type_enum</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.String</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>ADS_NAME_TYPE_1779</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="proga">
          <maml:name>ProgressAction</maml:name>
          <maml:description>
            <maml:para>{{ Fill ProgressAction Description }}</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.Management.Automation.ActionPreference</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.ActionPreference</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
      <command:syntaxItem>
        <maml:name>ConvertTo-DistinguishedName</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>AdsiProvider</maml:name>
          <maml:description>
            <maml:para>AdsiProvider (WinNT or LDAP) of the servers associated with the provided FQDNs or NetBIOS names</maml:para>
            <maml:para>This parameter can be used to reduce calls to Find-AdsiProvider</maml:para>
            <maml:para>Useful when that has been done already but the DomainByFqdn and DomainByNetbios caches have not been updated yet</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.String</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>Cache</maml:name>
          <maml:description>
            <maml:para>In-process cache to reduce calls to other processes or to disk</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.Management.Automation.PSReference</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.PSReference</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="True (ByValue)" position="named" aliases="none">
          <maml:name>DomainFQDN</maml:name>
          <maml:description>
            <maml:para>FQDN of the domain</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.String[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>InitType</maml:name>
          <maml:description>
            <maml:para>Type of initialization to be performed Will be translated to the corresponding integer for use as the lnSetType parameter of the IADsNameTranslate::Init method (iads.h) https://docs.microsoft.com/en-us/windows/win32/api/iads/ne-iads-ads_name_inittype_enum</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.String</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>ADS_NAME_INITTYPE_GC</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>InputType</maml:name>
          <maml:description>
            <maml:para>Format of the name of the directory object that will be used for the input Will be translated to the corresponding integer for use as the lnSetType parameter of the IADsNameTranslate::Set method (iads.h) https://docs.microsoft.com/en-us/windows/win32/api/iads/ne-iads-ads_name_type_enum</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.String</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>ADS_NAME_TYPE_NT4</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>OutputType</maml:name>
          <maml:description>
            <maml:para>Format of the name of the directory object that will be used for the output Will be translated to the corresponding integer for use as the lnSetType parameter of the IADsNameTranslate::Get method (iads.h) https://docs.microsoft.com/en-us/windows/win32/api/iads/ne-iads-ads_name_type_enum</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.String</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>ADS_NAME_TYPE_1779</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="proga">
          <maml:name>ProgressAction</maml:name>
          <maml:description>
            <maml:para>{{ Fill ProgressAction Description }}</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.Management.Automation.ActionPreference</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.ActionPreference</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>AdsiProvider</maml:name>
        <maml:description>
          <maml:para>AdsiProvider (WinNT or LDAP) of the servers associated with the provided FQDNs or NetBIOS names</maml:para>
          <maml:para>This parameter can be used to reduce calls to Find-AdsiProvider</maml:para>
          <maml:para>Useful when that has been done already but the DomainByFqdn and DomainByNetbios caches have not been updated yet</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.String</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>Cache</maml:name>
        <maml:description>
          <maml:para>In-process cache to reduce calls to other processes or to disk</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.Management.Automation.PSReference</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.PSReference</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="True (ByValue)" position="named" aliases="none">
        <maml:name>Domain</maml:name>
        <maml:description>
          <maml:para>NetBIOS name of the domain</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.String[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="True (ByValue)" position="named" aliases="none">
        <maml:name>DomainFQDN</maml:name>
        <maml:description>
          <maml:para>FQDN of the domain</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.String[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>InitType</maml:name>
        <maml:description>
          <maml:para>Type of initialization to be performed Will be translated to the corresponding integer for use as the lnSetType parameter of the IADsNameTranslate::Init method (iads.h) https://docs.microsoft.com/en-us/windows/win32/api/iads/ne-iads-ads_name_inittype_enum</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.String</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>ADS_NAME_INITTYPE_GC</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>InputType</maml:name>
        <maml:description>
          <maml:para>Format of the name of the directory object that will be used for the input Will be translated to the corresponding integer for use as the lnSetType parameter of the IADsNameTranslate::Set method (iads.h) https://docs.microsoft.com/en-us/windows/win32/api/iads/ne-iads-ads_name_type_enum</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.String</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>ADS_NAME_TYPE_NT4</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>OutputType</maml:name>
        <maml:description>
          <maml:para>Format of the name of the directory object that will be used for the output Will be translated to the corresponding integer for use as the lnSetType parameter of the IADsNameTranslate::Get method (iads.h) https://docs.microsoft.com/en-us/windows/win32/api/iads/ne-iads-ads_name_type_enum</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.String</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>ADS_NAME_TYPE_1779</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="proga">
        <maml:name>ProgressAction</maml:name>
        <maml:description>
          <maml:para>{{ Fill ProgressAction Description }}</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.Management.Automation.ActionPreference</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.ActionPreference</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>[System.String]$Domain</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>[System.String] distinguishedName of the domain</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title>
        <dev:code>ConvertTo-DistinguishedName -Domain 'CONTOSO' -Cache $Cache</dev:code>
        <dev:remarks>
          <maml:para>Resolves the NetBIOS domain name 'CONTOSO' to its distinguished name format 'DC=ad,DC=contoso,DC=com'. This conversion is necessary when constructing LDAP queries that require the domain in distinguished name format, particularly when working with Active Directory objects across different domains or forests. The function utilizes Windows API calls to perform accurate name translation.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks />
  </command:command>
  <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" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>ConvertTo-DomainNetBIOS</command:name>
      <command:verb>ConvertTo</command:verb>
      <command:noun>DomainNetBIOS</command:noun>
      <maml:description>
        <maml:para>Converts a domain FQDN to its NetBIOS name.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Retrieves the NetBIOS name for a specified domain FQDN by checking the cache or querying the directory service. For LDAP providers, it retrieves domain information from the directory. For non-LDAP providers, it extracts the first part of the FQDN before the first period.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>ConvertTo-DomainNetBIOS</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>DomainFQDN</maml:name>
          <maml:description>
            <maml:para>Fully Qualified Domain Name (FQDN) to convert to NetBIOS name</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.String</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>AdsiProvider</maml:name>
          <maml:description>
            <maml:para>ADSI provider to use (LDAP or WinNT)</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.String</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>Cache</maml:name>
          <maml:description>
            <maml:para>In-process cache to reduce calls to other processes or to disk</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.Management.Automation.PSReference</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.PSReference</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="proga">
          <maml:name>ProgressAction</maml:name>
          <maml:description>
            <maml:para>{{ Fill ProgressAction Description }}</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.Management.Automation.ActionPreference</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.ActionPreference</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>AdsiProvider</maml:name>
        <maml:description>
          <maml:para>ADSI provider to use (LDAP or WinNT)</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.String</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>Cache</maml:name>
        <maml:description>
          <maml:para>In-process cache to reduce calls to other processes or to disk</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.Management.Automation.PSReference</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.PSReference</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>DomainFQDN</maml:name>
        <maml:description>
          <maml:para>Fully Qualified Domain Name (FQDN) to convert to NetBIOS name</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.String</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="proga">
        <maml:name>ProgressAction</maml:name>
        <maml:description>
          <maml:para>{{ Fill ProgressAction Description }}</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.Management.Automation.ActionPreference</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.ActionPreference</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None. Pipeline input is not accepted.</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.String. The NetBIOS name of the domain.</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title>
        <dev:code>ConvertTo-DomainNetBIOS -DomainFQDN 'contoso.com' -Cache $Cache</dev:code>
        <dev:remarks>
          <maml:para>Converts the fully qualified domain name 'contoso.com' to its NetBIOS name by automatically determining the appropriate method based on available information. The function will check the cache first to avoid unnecessary directory queries.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 2 --------------------------</maml:title>
        <dev:code>ConvertTo-DomainNetBIOS -DomainFQDN 'contoso.com' -AdsiProvider 'LDAP' -Cache $Cache</dev:code>
        <dev:remarks>
          <maml:para>Converts the fully qualified domain name 'contoso.com' to its NetBIOS name using the LDAP provider specifically, which provides more accurate results in an Active Directory environment by querying the domain controller directly.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks />
  </command:command>
  <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" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>ConvertTo-DomainSidString</command:name>
      <command:verb>ConvertTo</command:verb>
      <command:noun>DomainSidString</command:noun>
      <maml:description>
        <maml:para>Converts a domain DNS name to its corresponding SID string.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Retrieves the security identifier (SID) string for a specified domain DNS name using either cached values or by querying the directory service. It supports both LDAP and WinNT providers and can fall back to local server resolution methods when needed.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>ConvertTo-DomainSidString</maml:name>
        <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>DomainDnsName</maml:name>
          <maml:description>
            <maml:para>Domain DNS name to convert to the domain's SID</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.String</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>AdsiProvider</maml:name>
          <maml:description>
            <maml:para>AdsiProvider (WinNT or LDAP) of the servers associated with the provided FQDNs or NetBIOS names</maml:para>
            <maml:para>This parameter can be used to reduce calls to Find-AdsiProvider</maml:para>
            <maml:para>Useful when that has been done already but the DomainsByFqdn and DomainsByNetbios caches have not been updated yet</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.String</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>Cache</maml:name>
          <maml:description>
            <maml:para>In-process cache to reduce calls to other processes or to disk</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.Management.Automation.PSReference</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.PSReference</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="proga">
          <maml:name>ProgressAction</maml:name>
          <maml:description>
            <maml:para>{{ Fill ProgressAction Description }}</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.Management.Automation.ActionPreference</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.ActionPreference</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>AdsiProvider</maml:name>
        <maml:description>
          <maml:para>AdsiProvider (WinNT or LDAP) of the servers associated with the provided FQDNs or NetBIOS names</maml:para>
          <maml:para>This parameter can be used to reduce calls to Find-AdsiProvider</maml:para>
          <maml:para>Useful when that has been done already but the DomainsByFqdn and DomainsByNetbios caches have not been updated yet</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.String</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>Cache</maml:name>
        <maml:description>
          <maml:para>In-process cache to reduce calls to other processes or to disk</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.Management.Automation.PSReference</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.PSReference</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>DomainDnsName</maml:name>
        <maml:description>
          <maml:para>Domain DNS name to convert to the domain's SID</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.String</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="proga">
        <maml:name>ProgressAction</maml:name>
        <maml:description>
          <maml:para>{{ Fill ProgressAction Description }}</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.Management.Automation.ActionPreference</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.ActionPreference</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None. Pipeline input is not accepted.</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.String. The SID string of the specified domain.</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title>
        <dev:code>ConvertTo-DomainSidString -DomainDnsName 'contoso.com' -Cache $Cache</dev:code>
        <dev:remarks>
          <maml:para>Converts the DNS domain name 'contoso.com' to its corresponding domain SID string by automatically determining the best ADSI provider to use and utilizing the cache to avoid redundant directory queries.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 2 --------------------------</maml:title>
        <dev:code>ConvertTo-DomainSidString -DomainDnsName 'contoso.com' -AdsiProvider 'LDAP' -Cache $Cache</dev:code>
        <dev:remarks>
          <maml:para>Converts the DNS domain name 'contoso.com' to its corresponding domain SID string by explicitly using the LDAP provider, which can be more efficient when you already know the appropriate provider to use.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks />
  </command:command>
  <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" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>ConvertTo-Fqdn</command:name>
      <command:verb>ConvertTo</command:verb>
      <command:noun>Fqdn</command:noun>
      <maml:description>
        <maml:para>Convert a domain distinguishedName name or NetBIOS name to its FQDN</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>For the DistinguishedName parameter, uses PowerShell's -replace operator to perform the conversion For the NetBIOS parameter, uses ConvertTo-DistinguishedName to convert from NetBIOS to distinguishedName, then recursively calls this function to get the FQDN</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>ConvertTo-Fqdn</maml:name>
        <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>Cache</maml:name>
          <maml:description>
            <maml:para>In-process cache to reduce calls to other processes or to disk</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.Management.Automation.PSReference</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.PSReference</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="True (ByValue)" position="named" aliases="none">
          <maml:name>DistinguishedName</maml:name>
          <maml:description>
            <maml:para>distinguishedName of the domain</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.String[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="proga">
          <maml:name>ProgressAction</maml:name>
          <maml:description>
            <maml:para>{{ Fill ProgressAction Description }}</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.Management.Automation.ActionPreference</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.ActionPreference</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
      <command:syntaxItem>
        <maml:name>ConvertTo-Fqdn</maml:name>
        <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>Cache</maml:name>
          <maml:description>
            <maml:para>In-process cache to reduce calls to other processes or to disk</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.Management.Automation.PSReference</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.PSReference</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="True (ByValue)" position="named" aliases="none">
          <maml:name>NetBIOS</maml:name>
          <maml:description>
            <maml:para>NetBIOS name of the domain</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.String[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="proga">
          <maml:name>ProgressAction</maml:name>
          <maml:description>
            <maml:para>{{ Fill ProgressAction Description }}</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.Management.Automation.ActionPreference</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.ActionPreference</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>Cache</maml:name>
        <maml:description>
          <maml:para>In-process cache to reduce calls to other processes or to disk</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.Management.Automation.PSReference</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.PSReference</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="True (ByValue)" position="named" aliases="none">
        <maml:name>DistinguishedName</maml:name>
        <maml:description>
          <maml:para>distinguishedName of the domain</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.String[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="True (ByValue)" position="named" aliases="none">
        <maml:name>NetBIOS</maml:name>
        <maml:description>
          <maml:para>NetBIOS name of the domain</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.String[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="proga">
        <maml:name>ProgressAction</maml:name>
        <maml:description>
          <maml:para>{{ Fill ProgressAction Description }}</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.Management.Automation.ActionPreference</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.ActionPreference</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>[System.String]$DistinguishedName</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>[System.String] FQDN version of the distinguishedName</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title>
        <dev:code>ConvertTo-Fqdn -DistinguishedName 'DC=ad,DC=contoso,DC=com' -Cache $Cache</dev:code>
        <dev:remarks>
          <maml:para>Converts the domain distinguishedName 'DC=ad,DC=contoso,DC=com' to its FQDN format 'ad.contoso.com'. This is essential when working with LDAP directory paths that need to be converted to readable domain names or when constructing proper LDAP paths that require the FQDN of the domain for remote connections.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks />
  </command:command>
  <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" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>ConvertTo-HexStringRepresentation</command:name>
      <command:verb>ConvertTo</command:verb>
      <command:noun>HexStringRepresentation</command:noun>
      <maml:description>
        <maml:para>Convert a SID from byte array format to a string representation of its hexadecimal format</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Uses the custom format operator -f to format each byte as a string hex representation</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>ConvertTo-HexStringRepresentation</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>SIDByteArray</maml:name>
          <maml:description>
            <maml:para>SID</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.Byte[]</command:parameterValue>
          <dev:type>
            <maml:name>System.Byte[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>SIDByteArray</maml:name>
        <maml:description>
          <maml:para>SID</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.Byte[]</command:parameterValue>
        <dev:type>
          <maml:name>System.Byte[]</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>[System.Byte[]]$SIDByteArray</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>[System.String] SID as an array of strings representing the byte array's hexadecimal values</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title>
        <dev:code>ConvertTo-HexStringRepresentation -SIDByteArray $Bytes</dev:code>
        <dev:remarks>
          <maml:para>Convert the binary SID $Bytes to a hexadecimal string representation</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks />
  </command:command>
  <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" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>ConvertTo-HexStringRepresentationForLDAPFilterString</command:name>
      <command:verb>ConvertTo</command:verb>
      <command:noun>HexStringRepresentationForLDAPFilterString</command:noun>
      <maml:description>
        <maml:para>Convert a SID from byte array format to a string representation of its hexadecimal format, properly formatted for an LDAP filter string</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Uses the custom format operator -f to format each byte as a string hex representation</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>ConvertTo-HexStringRepresentationForLDAPFilterString</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>SIDByteArray</maml:name>
          <maml:description>
            <maml:para>SID to convert to a hex string</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.Byte[]</command:parameterValue>
          <dev:type>
            <maml:name>System.Byte[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>SIDByteArray</maml:name>
        <maml:description>
          <maml:para>SID to convert to a hex string</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.Byte[]</command:parameterValue>
        <dev:type>
          <maml:name>System.Byte[]</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>[System.Byte[]]$SIDByteArray</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>[System.String] SID as an array of strings representing the byte array's hexadecimal values</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title>
        <dev:code>ConvertTo-HexStringRepresentationForLDAPFilterString -SIDByteArray $Bytes</dev:code>
        <dev:remarks>
          <maml:para>Convert the binary SID $Bytes to a hexadecimal string representation, formatted for use in an LDAP filter string</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks />
  </command:command>
  <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" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>ConvertTo-SidByteArray</command:name>
      <command:verb>ConvertTo</command:verb>
      <command:noun>SidByteArray</command:noun>
      <maml:description>
        <maml:para>Convert a SID from a string to binary format (byte array)</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Uses the GetBinaryForm method of the [System.Security.Principal.SecurityIdentifier] class</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>ConvertTo-SidByteArray</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="True (ByValue)" position="1" aliases="none">
          <maml:name>SidString</maml:name>
          <maml:description>
            <maml:para>SID to convert to binary</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.String[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="proga">
          <maml:name>ProgressAction</maml:name>
          <maml:description>
            <maml:para>{{ Fill ProgressAction Description }}</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.Management.Automation.ActionPreference</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.ActionPreference</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="proga">
        <maml:name>ProgressAction</maml:name>
        <maml:description>
          <maml:para>{{ Fill ProgressAction Description }}</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.Management.Automation.ActionPreference</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.ActionPreference</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="True (ByValue)" position="1" aliases="none">
        <maml:name>SidString</maml:name>
        <maml:description>
          <maml:para>SID to convert to binary</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.String[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>[System.String]$SidString</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>[System.Byte] SID a a byte array</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title>
        <dev:code>ConvertTo-SidByteArray -SidString 'S-1-5-32-544'</dev:code>
        <dev:remarks>
          <maml:para>Converts the SID string for the built-in Administrators group ('S-1-5-32-544') to a byte array representation, which is required when working with directory services that expect SIDs in binary format.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks />
  </command:command>
  <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" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Expand-AdsiGroupMember</command:name>
      <command:verb>Expand</command:verb>
      <command:noun>AdsiGroupMember</command:noun>
      <maml:description>
        <maml:para>Use the LDAP provider to add information about group members to a DirectoryEntry of a group for easier access</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Recursively retrieves group members and detailed information about them Specifically gets the SID, and resolves foreign security principals to their DirectoryEntry from the trusted domain</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Expand-AdsiGroupMember</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="True (ByValue)" position="1" aliases="none">
          <maml:name>DirectoryEntry</maml:name>
          <maml:description>
            <maml:para>Expecting a DirectoryEntry from the LDAP or WinNT providers, or a PSObject imitation from Get-DirectoryEntry</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.Object</command:parameterValue>
          <dev:type>
            <maml:name>System.Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>PropertiesToLoad</maml:name>
          <maml:description>
            <maml:para>Properties of the group members to retrieve</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.String[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>@('distinguishedName', 'groupType', 'member', 'name', 'objectClass', 'objectSid', 'primaryGroupToken', 'samAccountName')</dev:defaultValue>
        </command:parameter>
        <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>Cache</maml:name>
          <maml:description>
            <maml:para>In-process cache to reduce calls to other processes or to disk</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.Management.Automation.PSReference</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.PSReference</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="proga">
          <maml:name>ProgressAction</maml:name>
          <maml:description>
            <maml:para>{{ Fill ProgressAction Description }}</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.Management.Automation.ActionPreference</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.ActionPreference</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>Cache</maml:name>
        <maml:description>
          <maml:para>In-process cache to reduce calls to other processes or to disk</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.Management.Automation.PSReference</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.PSReference</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="True (ByValue)" position="1" aliases="none">
        <maml:name>DirectoryEntry</maml:name>
        <maml:description>
          <maml:para>Expecting a DirectoryEntry from the LDAP or WinNT providers, or a PSObject imitation from Get-DirectoryEntry</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.Object</command:parameterValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="proga">
        <maml:name>ProgressAction</maml:name>
        <maml:description>
          <maml:para>{{ Fill ProgressAction Description }}</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.Management.Automation.ActionPreference</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.ActionPreference</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>PropertiesToLoad</maml:name>
        <maml:description>
          <maml:para>Properties of the group members to retrieve</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.String[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>@('distinguishedName', 'groupType', 'member', 'name', 'objectClass', 'objectSid', 'primaryGroupToken', 'samAccountName')</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>[System.DirectoryServices.DirectoryEntry]$DirectoryEntry</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>[System.DirectoryServices.DirectoryEntry] Returned with member info added now (if the DirectoryEntry is a group).</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title>
        <dev:code>[System.DirectoryServices.DirectoryEntry]::new('WinNT://localhost/Administrators') |
Get-AdsiGroupMember |
Expand-AdsiGroupMember</dev:code>
        <dev:remarks>
          <maml:para>Retrieves the members of the local Administrators group and then expands each member with additional information such as SID and domain information. Foreign security principals from trusted domains are resolved to their actual DirectoryEntry objects from the appropriate domain.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 2 --------------------------</maml:title>
        <dev:code>[System.DirectoryServices.DirectoryEntry]::new('LDAP://ad.contoso.com/CN=Administrators,CN=BuiltIn,DC=ad,DC=contoso,DC=com') |
Get-AdsiGroupMember |
Expand-AdsiGroupMember -Cache $Cache</dev:code>
        <dev:remarks>
          <maml:para>Retrieves the members of the domain Administrators group and then expands each member with additional information such as SID and domain information. Foreign security principals from trusted domains are resolved to their actual DirectoryEntry objects from the appropriate domain.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks />
  </command:command>
  <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" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Expand-WinNTGroupMember</command:name>
      <command:verb>Expand</command:verb>
      <command:noun>WinNTGroupMember</command:noun>
      <maml:description>
        <maml:para>Use the LDAP provider to add information about group members to a DirectoryEntry of a group for easier access</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Recursively retrieves group members and detailed information about them</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Expand-WinNTGroupMember</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="True (ByValue)" position="1" aliases="none">
          <maml:name>DirectoryEntry</maml:name>
          <maml:description>
            <maml:para>Expecting a DirectoryEntry from the WinNT provider, or a PSObject imitation from Get-DirectoryEntry</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.Object</command:parameterValue>
          <dev:type>
            <maml:name>System.Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>Cache</maml:name>
          <maml:description>
            <maml:para>In-process cache to reduce calls to other processes or to disk</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.Management.Automation.PSReference</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.PSReference</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>AccountProperty</maml:name>
          <maml:description>
            <maml:para>Properties of each Account to display on the report</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.String[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>@('DisplayName', 'Company', 'Department', 'Title', 'Description')</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="proga">
          <maml:name>ProgressAction</maml:name>
          <maml:description>
            <maml:para>{{ Fill ProgressAction Description }}</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.Management.Automation.ActionPreference</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.ActionPreference</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>AccountProperty</maml:name>
        <maml:description>
          <maml:para>Properties of each Account to display on the report</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.String[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>@('DisplayName', 'Company', 'Department', 'Title', 'Description')</dev:defaultValue>
      </command:parameter>
      <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>Cache</maml:name>
        <maml:description>
          <maml:para>In-process cache to reduce calls to other processes or to disk</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.Management.Automation.PSReference</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.PSReference</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="True (ByValue)" position="1" aliases="none">
        <maml:name>DirectoryEntry</maml:name>
        <maml:description>
          <maml:para>Expecting a DirectoryEntry from the WinNT provider, or a PSObject imitation from Get-DirectoryEntry</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.Object</command:parameterValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="proga">
        <maml:name>ProgressAction</maml:name>
        <maml:description>
          <maml:para>{{ Fill ProgressAction Description }}</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.Management.Automation.ActionPreference</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.ActionPreference</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>[System.DirectoryServices.DirectoryEntry]$DirectoryEntry</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>[System.DirectoryServices.DirectoryEntry] Returned with member info added now (if the DirectoryEntry is a group).</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title>
        <dev:code>[System.DirectoryServices.DirectoryEntry]::new('WinNT://localhost/Administrators') | Get-WinNTGroupMember | Expand-WinNTGroupMember</dev:code>
        <dev:remarks>
          <maml:para>Retrieves the members of the local Administrators group and then expands each member by adding additional information such as SID, domain information, and group membership details if the member is itself a group. This provides a complete hierarchical view of permissions.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks />
  </command:command>
  <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" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Find-LocalAdsiServerSid</command:name>
      <command:verb>Find</command:verb>
      <command:noun>LocalAdsiServerSid</command:noun>
      <maml:description>
        <maml:para>Finds the SID prefix of the local server by querying the built-in administrator account.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This function queries the local computer or a remote computer via CIM to find the SID of the built-in administrator account (RID 500), then extracts and returns the server's SID prefix by removing the RID portion. This is useful for identifying the server's unique domain identifier in Active Directory environments.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Find-LocalAdsiServerSid</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>ComputerName</maml:name>
          <maml:description>
            <maml:para>Name of the computer to query via CIM</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.String</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>(HOSTNAME.EXE)</dev:defaultValue>
        </command:parameter>
        <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>Cache</maml:name>
          <maml:description>
            <maml:para>In-process cache to reduce calls to other processes or to disk</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.Management.Automation.PSReference</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.PSReference</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="proga">
          <maml:name>ProgressAction</maml:name>
          <maml:description>
            <maml:para>{{ Fill ProgressAction Description }}</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.Management.Automation.ActionPreference</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.ActionPreference</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>Cache</maml:name>
        <maml:description>
          <maml:para>In-process cache to reduce calls to other processes or to disk</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.Management.Automation.PSReference</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.PSReference</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>ComputerName</maml:name>
        <maml:description>
          <maml:para>Name of the computer to query via CIM</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.String</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>(HOSTNAME.EXE)</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="proga">
        <maml:name>ProgressAction</maml:name>
        <maml:description>
          <maml:para>{{ Fill ProgressAction Description }}</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.Management.Automation.ActionPreference</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.ActionPreference</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None. Pipeline input is not accepted.</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.String</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
      <command:returnValue>
        <dev:type>
          <maml:name>Returns the SID prefix of the specified computer or local computer.</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title>
        <dev:code>Find-LocalAdsiServerSid -ComputerName "DC01" -Cache $Cache</dev:code>
        <dev:remarks>
          <maml:para>Retrieves the SID prefix for the computer "DC01" by querying the built-in Administrator account and removing the RID portion. This domain SID prefix can be used to identify the domain and construct SIDs for domain users and groups.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks />
  </command:command>
  <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" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-AdsiGroup</command:name>
      <command:verb>Get</command:verb>
      <command:noun>AdsiGroup</command:noun>
      <maml:description>
        <maml:para>Get the directory entries for a group and its members using ADSI</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Uses the ADSI components to search a directory for a group, then get its members Both the WinNT and LDAP providers are supported</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-AdsiGroup</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>DirectoryPath</maml:name>
          <maml:description>
            <maml:para>Path to the directory object to retrieve Defaults to the root of the current domain</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.String</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>(([System.DirectoryServices.DirectorySearcher]::new()).SearchRoot.Path)</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>GroupName</maml:name>
          <maml:description>
            <maml:para>Name (CN or Common Name) of the group to retrieve</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.String</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>PropertiesToLoad</maml:name>
          <maml:description>
            <maml:para>Properties of the group members to retrieve</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.String[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>@('distinguishedName', 'groupType', 'member', 'name', 'objectClass', 'objectSid', 'primaryGroupToken', 'samAccountName')</dev:defaultValue>
        </command:parameter>
        <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
          <maml:name>Cache</maml:name>
          <maml:description>
            <maml:para>In-process cache to reduce calls to other processes or to disk</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.Management.Automation.PSReference</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.PSReference</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="proga">
          <maml:name>ProgressAction</maml:name>
          <maml:description>
            <maml:para>{{ Fill ProgressAction Description }}</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.Management.Automation.ActionPreference</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.ActionPreference</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
        <maml:name>Cache</maml:name>
        <maml:description>
          <maml:para>In-process cache to reduce calls to other processes or to disk</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.Management.Automation.PSReference</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.PSReference</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>DirectoryPath</maml:name>
        <maml:description>
          <maml:para>Path to the directory object to retrieve Defaults to the root of the current domain</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.String</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>(([System.DirectoryServices.DirectorySearcher]::new()).SearchRoot.Path)</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>GroupName</maml:name>
        <maml:description>
          <maml:para>Name (CN or Common Name) of the group to retrieve</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.String</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="proga">
        <maml:name>ProgressAction</maml:name>
        <maml:description>
          <maml:para>{{ Fill ProgressAction Description }}</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.Management.Automation.ActionPreference</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.ActionPreference</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>PropertiesToLoad</maml:name>
        <maml:description>
          <maml:para>Properties of the group members to retrieve</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.String[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>@('distinguishedName', 'groupType', 'member', 'name', 'objectClass', 'objectSid', 'primaryGroupToken', 'samAccountName')</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None. Pipeline input is not accepted.</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>[System.DirectoryServices.DirectoryEntry] for each group memeber</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title>
        <dev:code>Get-AdsiGroup -DirectoryPath 'WinNT://WORKGROUP/localhost' -GroupName Administrators -Cache $Cache</dev:code>
        <dev:remarks>
          <maml:para>Retrieves the local Administrators group from the specified computer using the WinNT provider, and returns all member accounts as DirectoryEntry objects. This allows for complete analysis of local group memberships including nested groups and domain accounts that have been added to local groups.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 2 --------------------------</maml:title>
        <dev:code>Get-AdsiGroup -GroupName Administrators -Cache $Cache</dev:code>
        <dev:remarks>
          <maml:para>On a domain-joined computer, retrieves the domain's Administrators group and all of its members. On a workgroup computer, retrieves the local Administrators group and its members. This automatic detection simplifies scripts that need to work in both domain and workgroup environments.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks />
  </command:command>
  <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" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-AdsiGroupMember</command:name>
      <command:verb>Get</command:verb>
      <command:noun>AdsiGroupMember</command:noun>
      <maml:description>
        <maml:para>Get members of a group from the LDAP provider</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Use ADSI to get members of a group from the LDAP provider Return the group's DirectoryEntry plus a FullMembers property containing the member DirectoryEntries</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-AdsiGroupMember</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="True (ByValue)" position="1" aliases="none">
          <maml:name>Group</maml:name>
          <maml:description>
            <maml:para>Directory entry of the LDAP group whose members to get</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.Object</command:parameterValue>
          <dev:type>
            <maml:name>System.Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>PropertiesToLoad</maml:name>
          <maml:description>
            <maml:para>Properties of the group members to find in the directory</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.String[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>@('distinguishedName', 'groupType', 'member', 'name', 'objectClass', 'objectSid', 'primaryGroupToken', 'samAccountName')</dev:defaultValue>
        </command:parameter>
        <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>Cache</maml:name>
          <maml:description>
            <maml:para>In-process cache to reduce calls to other processes or to disk</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.Management.Automation.PSReference</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.PSReference</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>NoRecurse</maml:name>
          <maml:description>
            <maml:para>Perform a non-recursive search of the memberOf attribute</maml:para>
            <maml:para>Otherwise the search will be recursive by default</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>PrimaryGroupOnly</maml:name>
          <maml:description>
            <maml:para>Search the primaryGroupId attribute only</maml:para>
            <maml:para>Ignore the memberOf attribute</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="proga">
          <maml:name>ProgressAction</maml:name>
          <maml:description>
            <maml:para>{{ Fill ProgressAction Description }}</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.Management.Automation.ActionPreference</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.ActionPreference</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>Cache</maml:name>
        <maml:description>
          <maml:para>In-process cache to reduce calls to other processes or to disk</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.Management.Automation.PSReference</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.PSReference</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="True (ByValue)" position="1" aliases="none">
        <maml:name>Group</maml:name>
        <maml:description>
          <maml:para>Directory entry of the LDAP group whose members to get</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.Object</command:parameterValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>NoRecurse</maml:name>
        <maml:description>
          <maml:para>Perform a non-recursive search of the memberOf attribute</maml:para>
          <maml:para>Otherwise the search will be recursive by default</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.Management.Automation.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:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>PrimaryGroupOnly</maml:name>
        <maml:description>
          <maml:para>Search the primaryGroupId attribute only</maml:para>
          <maml:para>Ignore the memberOf attribute</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.Management.Automation.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:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="proga">
        <maml:name>ProgressAction</maml:name>
        <maml:description>
          <maml:para>{{ Fill ProgressAction Description }}</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.Management.Automation.ActionPreference</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.ActionPreference</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>PropertiesToLoad</maml:name>
        <maml:description>
          <maml:para>Properties of the group members to find in the directory</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.String[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>@('distinguishedName', 'groupType', 'member', 'name', 'objectClass', 'objectSid', 'primaryGroupToken', 'samAccountName')</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>[System.DirectoryServices.DirectoryEntry]$DirectoryEntry</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>[System.DirectoryServices.DirectoryEntry] plus a FullMembers property</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title>
        <dev:code>[System.DirectoryServices.DirectoryEntry]::new('LDAP://ad.contoso.com/CN=Administrators,CN=BuiltIn,DC=ad,DC=contoso,DC=com') |
Get-AdsiGroupMember -Cache $Cache</dev:code>
        <dev:remarks>
          <maml:para>Retrieves all members of the domain's Administrators group, including both direct members and those who inherit membership through their primary group. The function returns the original group DirectoryEntry object with an added FullMembers property containing all member DirectoryEntry objects. This approach ensures proper resolution of all group memberships regardless of how they are assigned.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks />
  </command:command>
  <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" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-AdsiServer</command:name>
      <command:verb>Get</command:verb>
      <command:noun>AdsiServer</command:noun>
      <maml:description>
        <maml:para>Get information about a directory server including the ADSI provider it hosts and its well-known SIDs</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Uses the ADSI provider to query the server using LDAP first, then WinNT upon failure Uses WinRM to query the CIM class Win32_SystemAccount for well-known SIDs</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-AdsiServer</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="True (ByValue)" position="1" aliases="none">
          <maml:name>Fqdn</maml:name>
          <maml:description>
            <maml:para>IP address or hostname of the directory server whose ADSI provider type to determine</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.String[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>Netbios</maml:name>
          <maml:description>
            <maml:para>NetBIOS name of the ADSI server whose information to determine</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.String[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>Cache</maml:name>
          <maml:description>
            <maml:para>In-process cache to reduce calls to other processes or to disk</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.Management.Automation.PSReference</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.PSReference</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="proga">
          <maml:name>ProgressAction</maml:name>
          <maml:description>
            <maml:para>{{ Fill ProgressAction Description }}</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.Management.Automation.ActionPreference</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.ActionPreference</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>RemoveCimSession</maml:name>
          <maml:description>
            <maml:para>Remove the CIM session used to get ADSI server information</maml:para>
          </maml:description>
          <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>
      <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>Cache</maml:name>
        <maml:description>
          <maml:para>In-process cache to reduce calls to other processes or to disk</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.Management.Automation.PSReference</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.PSReference</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="True (ByValue)" position="1" aliases="none">
        <maml:name>Fqdn</maml:name>
        <maml:description>
          <maml:para>IP address or hostname of the directory server whose ADSI provider type to determine</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.String[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>Netbios</maml:name>
        <maml:description>
          <maml:para>NetBIOS name of the ADSI server whose information to determine</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.String[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="proga">
        <maml:name>ProgressAction</maml:name>
        <maml:description>
          <maml:para>{{ Fill ProgressAction Description }}</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.Management.Automation.ActionPreference</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.ActionPreference</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>RemoveCimSession</maml:name>
        <maml:description>
          <maml:para>Remove the CIM session used to get ADSI server information</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.Management.Automation.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>[System.String]$Fqdn</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>[PSCustomObject] with AdsiProvider and WellKnownSidBySid properties</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title>
        <dev:code>Get-AdsiServer -Fqdn localhost -Cache $Cache</dev:code>
        <dev:remarks>
          <maml:para>Retrieves information about the local computer's directory service, determining whether it uses the LDAP or WinNT provider, and collects information about well-known security identifiers (SIDs). This is essential for consistent identity resolution on the local system when analyzing permissions.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 2 --------------------------</maml:title>
        <dev:code>Get-AdsiServer -Fqdn 'ad.contoso.com' -Cache $Cache</dev:code>
        <dev:remarks>
          <maml:para>Connects to the domain controller for 'ad.contoso.com', determines it uses the LDAP provider, and retrieves domain-specific information including SIDs, NetBIOS name, and distinguished name. This enables proper identity resolution for domain accounts when working with permissions across systems.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks />
  </command:command>
  <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" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-CurrentDomain</command:name>
      <command:verb>Get</command:verb>
      <command:noun>CurrentDomain</command:noun>
      <maml:description>
        <maml:para>Use ADSI to get the current domain</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Works only on domain-joined systems, otherwise returns nothing</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-CurrentDomain</maml:name>
        <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>Cache</maml:name>
          <maml:description>
            <maml:para>In-process cache to reduce calls to other processes or to disk</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.Management.Automation.PSReference</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.PSReference</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="proga">
          <maml:name>ProgressAction</maml:name>
          <maml:description>
            <maml:para>{{ Fill ProgressAction Description }}</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.Management.Automation.ActionPreference</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.ActionPreference</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>Cache</maml:name>
        <maml:description>
          <maml:para>In-process cache to reduce calls to other processes or to disk</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.Management.Automation.PSReference</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.PSReference</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="proga">
        <maml:name>ProgressAction</maml:name>
        <maml:description>
          <maml:para>{{ Fill ProgressAction Description }}</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.Management.Automation.ActionPreference</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.ActionPreference</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None. Pipeline input is not accepted.</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>[System.DirectoryServices.DirectoryEntry] The current domain</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title>
        <dev:code>Get-CurrentDomain -Cache $Cache</dev:code>
        <dev:remarks>
          <maml:para>Retrieves the current domain of the computer running the script as a DirectoryEntry object. On domain-joined systems, this returns the Active Directory domain. On workgroup computers, it returns the local computer as the domain. The function caches the result to improve performance in subsequent operations involving the current domain.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks />
  </command:command>
  <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" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-DirectoryEntry</command:name>
      <command:verb>Get</command:verb>
      <command:noun>DirectoryEntry</command:noun>
      <maml:description>
        <maml:para>Use Active Directory Service Interfaces to retrieve an object from a directory</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Retrieve a directory entry using either the WinNT or LDAP provider for ADSI</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-DirectoryEntry</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>DirectoryPath</maml:name>
          <maml:description>
            <maml:para>Path to the directory object to retrieve Defaults to the root of the current domain</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.String</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>(([System.DirectoryServices.DirectorySearcher]::new()).SearchRoot.Path)</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>Credential</maml:name>
          <maml:description>
            <maml:para>Credentials to use to bind to the directory Defaults to the credentials of the current user</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.Management.Automation.PSCredential</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.PSCredential</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>PropertiesToLoad</maml:name>
          <maml:description>
            <maml:para>Properties of the target object to retrieve</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.String[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
          <maml:name>SidTypeMap</maml:name>
          <maml:description>
            <maml:para>Mapping of SID types to descriptions used for converting security identifiers</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.Collections.Hashtable</command:parameterValue>
          <dev:type>
            <maml:name>System.Collections.Hashtable</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>(Get-SidTypeMap)</dev:defaultValue>
        </command:parameter>
        <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
          <maml:name>Cache</maml:name>
          <maml:description>
            <maml:para>In-process cache to reduce calls to other processes or to disk</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.Management.Automation.PSReference</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.PSReference</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="proga">
          <maml:name>ProgressAction</maml:name>
          <maml:description>
            <maml:para>{{ Fill ProgressAction Description }}</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.Management.Automation.ActionPreference</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.ActionPreference</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
        <maml:name>Cache</maml:name>
        <maml:description>
          <maml:para>In-process cache to reduce calls to other processes or to disk</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.Management.Automation.PSReference</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.PSReference</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>Credential</maml:name>
        <maml:description>
          <maml:para>Credentials to use to bind to the directory Defaults to the credentials of the current user</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.Management.Automation.PSCredential</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.PSCredential</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>DirectoryPath</maml:name>
        <maml:description>
          <maml:para>Path to the directory object to retrieve Defaults to the root of the current domain</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.String</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>(([System.DirectoryServices.DirectorySearcher]::new()).SearchRoot.Path)</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="proga">
        <maml:name>ProgressAction</maml:name>
        <maml:description>
          <maml:para>{{ Fill ProgressAction Description }}</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.Management.Automation.ActionPreference</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.ActionPreference</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>PropertiesToLoad</maml:name>
        <maml:description>
          <maml:para>Properties of the target object to retrieve</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.String[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
        <maml:name>SidTypeMap</maml:name>
        <maml:description>
          <maml:para>Mapping of SID types to descriptions used for converting security identifiers</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.Collections.Hashtable</command:parameterValue>
        <dev:type>
          <maml:name>System.Collections.Hashtable</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>(Get-SidTypeMap)</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None. Pipeline input is not accepted.</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>[System.DirectoryServices.DirectoryEntry] where possible</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
      <command:returnValue>
        <dev:type>
          <maml:name>[PSCustomObject] for security principals with no directory entry</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title>
        <dev:code>Get-DirectoryEntry
distinguishedName : {DC=ad,DC=contoso,DC=com}
Path : LDAP://DC=ad,DC=contoso,DC=com</dev:code>
        <dev:remarks>
          <maml:para>As the current user on a domain-joined computer, bind to the current domain and retrieve the DirectoryEntry for the root of the domain</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 2 --------------------------</maml:title>
        <dev:code>Get-DirectoryEntry
distinguishedName :
Path : WinNT://ComputerName</dev:code>
        <dev:remarks>
          <maml:para>As the current user on a workgroup computer, bind to the local system and retrieve the DirectoryEntry for the root of the directory</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks />
  </command:command>
  <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" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-KnownCaptionHashTable</command:name>
      <command:verb>Get</command:verb>
      <command:noun>KnownCaptionHashTable</command:noun>
      <maml:description>
        <maml:para>Creates a hashtable of well-known SIDs indexed by their NT Account names (captions).</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This function takes a hashtable of well-known SIDs (indexed by SID) and transforms it into a new hashtable where the keys are the NT Account names (captions) of the SIDs. This makes it easier to look up SID information when you have the account name representation rather than the SID itself.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-KnownCaptionHashTable</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>WellKnownSidBySid</maml:name>
          <maml:description>
            <maml:para>Hashtable of well-known Security Identifiers (SIDs) with their properties</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.Collections.Hashtable</command:parameterValue>
          <dev:type>
            <maml:name>System.Collections.Hashtable</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>(Get-KnownSidHashTable)</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>WellKnownSidBySid</maml:name>
        <maml:description>
          <maml:para>Hashtable of well-known Security Identifiers (SIDs) with their properties</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.Collections.Hashtable</command:parameterValue>
        <dev:type>
          <maml:name>System.Collections.Hashtable</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>(Get-KnownSidHashTable)</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes />
    <command:returnValues />
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- Example 1 --------------------------</maml:title>
        <dev:code>PS C:\&gt; {{ Add example code here }}</dev:code>
        <dev:remarks>
          <maml:para>{{ Add example description here }}</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks />
  </command:command>
  <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" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-KnownSid</command:name>
      <command:verb>Get</command:verb>
      <command:noun>KnownSid</command:noun>
      <maml:description>
        <maml:para>Retrieves information about well-known security identifiers (SIDs).</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Gets information about well-known security identifiers (SIDs) based on patterns and common formats. Uses Microsoft documentation references for SID information: - https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-dtyp/81d92bba-d22b-4a8c-908a-554ab29148ab</maml:para>
      <maml:para>- https://learn.microsoft.com/en-us/windows-server/identity/ad-ds/manage/understand-security-identifiers</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-KnownSid</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>SID</maml:name>
          <maml:description>
            <maml:para>Security Identifier (SID) string to retrieve information for</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.String</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>SID</maml:name>
        <maml:description>
          <maml:para>Security Identifier (SID) string to retrieve information for</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.String</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>A SID string that identifies a well-known security principal.</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>PSCustomObject with properties such as Description, DisplayName, Name, NTAccount, SamAccountName, SchemaClassName, and SID.</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title>
        <dev:code>Get-KnownSid -SID 'S-1-5-32-544'</dev:code>
        <dev:remarks>
          <maml:para>Returns information about the built-in Administrators group.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 2 --------------------------</maml:title>
        <dev:code>Get-KnownSid -SID 'S-1-5-18'</dev:code>
        <dev:remarks>
          <maml:para>Returns information about the Local System account.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks />
  </command:command>
  <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" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-KnownSidByName</command:name>
      <command:verb>Get</command:verb>
      <command:noun>KnownSidByName</command:noun>
      <maml:description>
        <maml:para>Creates a hashtable of well-known SIDs indexed by their friendly names.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This function takes a hashtable of well-known SIDs (indexed by SID) and transforms it into a new hashtable where the keys are the friendly names of the SIDs. This makes it easier to look up SID information when you know the name but not the SID itself.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-KnownSidByName</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>WellKnownSIDBySID</maml:name>
          <maml:description>
            <maml:para>Hashtable containing well-known SIDs as keys with their properties as values</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.Collections.Hashtable</command:parameterValue>
          <dev:type>
            <maml:name>System.Collections.Hashtable</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>WellKnownSIDBySID</maml:name>
        <maml:description>
          <maml:para>Hashtable containing well-known SIDs as keys with their properties as values</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.Collections.Hashtable</command:parameterValue>
        <dev:type>
          <maml:name>System.Collections.Hashtable</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>System.Collections.Hashtable</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>A hashtable containing SID strings as keys and information objects as values.</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Collections.Hashtable</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
      <command:returnValue>
        <dev:type>
          <maml:name>Returns a hashtable with friendly names as keys and SID information objects as values.</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title>
        <dev:code>$sidBySid = Get-KnownSidHashTable
$sidByName = Get-KnownSidByName -WellKnownSIDBySID $sidBySid
$administratorsInfo = $sidByName['Administrators']</dev:code>
        <dev:remarks>
          <maml:para>Creates a hashtable of well-known SIDs indexed by their friendly names and retrieves information about the Administrators group. This is useful when you need to look up SID information by name rather than by SID string.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks />
  </command:command>
  <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" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-KnownSidHashTable</command:name>
      <command:verb>Get</command:verb>
      <command:noun>KnownSidHashTable</command:noun>
      <maml:description>
        <maml:para>Returns a hashtable of known security identifiers (SIDs) with detailed information.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Returns a hashtable of known SIDs which can be used to avoid errors and delays due to unnecessary directory queries. Some SIDs cannot be translated using the [SecurityIdentifier]::Translate or [NTAccount]::Translate methods. Some SIDs cannot be retrieved using CIM or ADSI. Hardcoding them here allows avoiding queries that we know will fail. Hardcoding them also improves performance by avoiding unnecessary directory queries with predictable results.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-KnownSidHashTable</maml:name>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters />
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None. This function does not accept pipeline input.</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Collections.Hashtable. Contains SIDs as keys and PSCustomObjects with SID information as values.</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title>
        <dev:code>$knownSids = Get-KnownSidHashTable</dev:code>
        <dev:remarks>
          <maml:para></maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-dtyp/11e1608c-6169-4fbc-9c33-373fc9b224f4#Appendix_A_34</maml:linkText>
        <maml:uri>https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-dtyp/11e1608c-6169-4fbc-9c33-373fc9b224f4#Appendix_A_34</maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>https://learn.microsoft.com/en-us/windows/win32/secauthz/well-known-sids</maml:linkText>
        <maml:uri>https://learn.microsoft.com/en-us/windows/win32/secauthz/well-known-sids</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <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" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-ParentDomainDnsName</command:name>
      <command:verb>Get</command:verb>
      <command:noun>ParentDomainDnsName</command:noun>
      <maml:description>
        <maml:para>Gets the DNS name of the parent domain for a given computer or domain.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This function retrieves the DNS name of the parent domain for a specified domain or computer using CIM queries. For workgroup computers or when no parent domain is found, it falls back to using the primary DNS suffix from the client's global DNS settings. The function uses caching to improve performance during repeated calls.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-ParentDomainDnsName</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>DomainNetbios</maml:name>
          <maml:description>
            <maml:para>NetBIOS name of the domain whose parent domain DNS to return</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.String</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>CimSession</maml:name>
          <maml:description>
            <maml:para>Existing CIM session to the computer (to avoid creating redundant CIM sessions)</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Microsoft.Management.Infrastructure.CimSession</command:parameterValue>
          <dev:type>
            <maml:name>Microsoft.Management.Infrastructure.CimSession</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>Cache</maml:name>
          <maml:description>
            <maml:para>In-process cache to reduce calls to other processes or to disk</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.Management.Automation.PSReference</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.PSReference</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="proga">
          <maml:name>ProgressAction</maml:name>
          <maml:description>
            <maml:para>{{ Fill ProgressAction Description }}</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.Management.Automation.ActionPreference</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.ActionPreference</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>RemoveCimSession</maml:name>
          <maml:description>
            <maml:para>Switch to remove the CIM session when done</maml:para>
          </maml:description>
          <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>
      <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>Cache</maml:name>
        <maml:description>
          <maml:para>In-process cache to reduce calls to other processes or to disk</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.Management.Automation.PSReference</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.PSReference</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>CimSession</maml:name>
        <maml:description>
          <maml:para>Existing CIM session to the computer (to avoid creating redundant CIM sessions)</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Microsoft.Management.Infrastructure.CimSession</command:parameterValue>
        <dev:type>
          <maml:name>Microsoft.Management.Infrastructure.CimSession</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>DomainNetbios</maml:name>
        <maml:description>
          <maml:para>NetBIOS name of the domain whose parent domain DNS to return</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.String</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="proga">
        <maml:name>ProgressAction</maml:name>
        <maml:description>
          <maml:para>{{ Fill ProgressAction Description }}</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.Management.Automation.ActionPreference</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.ActionPreference</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>RemoveCimSession</maml:name>
        <maml:description>
          <maml:para>Switch to remove the CIM session when done</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.Management.Automation.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 />
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- Example 1 --------------------------</maml:title>
        <dev:code>PS C:\&gt; {{ Add example code here }}</dev:code>
        <dev:remarks>
          <maml:para>{{ Add example description here }}</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-dtyp/11e1608c-6169-4fbc-9c33-373fc9b224f4#Appendix_A_34</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <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" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-TrustedDomain</command:name>
      <command:verb>Get</command:verb>
      <command:noun>TrustedDomain</command:noun>
      <maml:description>
        <maml:para>Returns a dictionary of trusted domains by the current computer</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Works only on domain-joined systems Use nltest to get the domain trust relationships for the domain of the current computer Use ADSI's LDAP provider to get each trusted domain's DNS name, NETBIOS name, and SID For each trusted domain the key is the domain's SID, or its NETBIOS name if the -KeyByNetbios switch parameter was used For each trusted domain the value contains the details retrieved with ADSI</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-TrustedDomain</maml:name>
        <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>Cache</maml:name>
          <maml:description>
            <maml:para>In-process cache to reduce calls to other processes or to disk</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.Management.Automation.PSReference</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.PSReference</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="proga">
          <maml:name>ProgressAction</maml:name>
          <maml:description>
            <maml:para>{{ Fill ProgressAction Description }}</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.Management.Automation.ActionPreference</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.ActionPreference</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>Cache</maml:name>
        <maml:description>
          <maml:para>In-process cache to reduce calls to other processes or to disk</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.Management.Automation.PSReference</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.PSReference</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="proga">
        <maml:name>ProgressAction</maml:name>
        <maml:description>
          <maml:para>{{ Fill ProgressAction Description }}</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.Management.Automation.ActionPreference</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.ActionPreference</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None. Pipeline input is not accepted.</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>[PSCustomObject] One object per trusted domain, each with a DomainFqdn property and a DomainNetbios property</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title>
        <dev:code>Get-TrustedDomain -Cache $Cache</dev:code>
        <dev:remarks>
          <maml:para>Retrieves information about all domains trusted by the current domain-joined computer, including each domain's NetBIOS name, DNS name, and distinguished name. This information is essential for cross-domain identity resolution and permission analysis. The function stores the results in the provided cache to improve performance in subsequent operations involving these trusted domains.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-dtyp/11e1608c-6169-4fbc-9c33-373fc9b224f4#Appendix_A_34</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <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" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-WinNTGroupMember</command:name>
      <command:verb>Get</command:verb>
      <command:noun>WinNTGroupMember</command:noun>
      <maml:description>
        <maml:para>Get members of a group from the WinNT provider</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Get members of a group from the WinNT provider Convert them from COM objects into usable DirectoryEntry objects</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-WinNTGroupMember</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="True (ByValue)" position="1" aliases="none">
          <maml:name>DirectoryEntry</maml:name>
          <maml:description>
            <maml:para>DirectoryEntry [System.DirectoryServices.DirectoryEntry] of the WinNT group whose members to get</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.Object</command:parameterValue>
          <dev:type>
            <maml:name>System.Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>PropertiesToLoad</maml:name>
          <maml:description>
            <maml:para>Properties of the group members to find in the directory</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.String[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>@('distinguishedName', 'groupType', 'member', 'name', 'objectClass', 'objectSid', 'primaryGroupToken', 'samAccountName')</dev:defaultValue>
        </command:parameter>
        <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>Cache</maml:name>
          <maml:description>
            <maml:para>In-process cache to reduce calls to other processes or to disk</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.Management.Automation.PSReference</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.PSReference</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="proga">
          <maml:name>ProgressAction</maml:name>
          <maml:description>
            <maml:para>{{ Fill ProgressAction Description }}</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.Management.Automation.ActionPreference</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.ActionPreference</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>Cache</maml:name>
        <maml:description>
          <maml:para>In-process cache to reduce calls to other processes or to disk</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.Management.Automation.PSReference</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.PSReference</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="True (ByValue)" position="1" aliases="none">
        <maml:name>DirectoryEntry</maml:name>
        <maml:description>
          <maml:para>DirectoryEntry [System.DirectoryServices.DirectoryEntry] of the WinNT group whose members to get</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.Object</command:parameterValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="proga">
        <maml:name>ProgressAction</maml:name>
        <maml:description>
          <maml:para>{{ Fill ProgressAction Description }}</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.Management.Automation.ActionPreference</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.ActionPreference</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>PropertiesToLoad</maml:name>
        <maml:description>
          <maml:para>Properties of the group members to find in the directory</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.String[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>@('distinguishedName', 'groupType', 'member', 'name', 'objectClass', 'objectSid', 'primaryGroupToken', 'samAccountName')</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>[System.DirectoryServices.DirectoryEntry]$DirectoryEntry</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>[System.DirectoryServices.DirectoryEntry] for each group member</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title>
        <dev:code>[System.DirectoryServices.DirectoryEntry]::new('WinNT://localhost/Administrators') | Get-WinNTGroupMember -Cache $Cache</dev:code>
        <dev:remarks>
          <maml:para>Retrieves all members of the local Administrators group and returns them as DirectoryEntry objects. This allows for further processing of group membership information, including nested groups, and provides a consistent object format that works well with other ADSI functions. The Cache parameter ensures efficient operation by avoiding redundant directory queries.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-dtyp/11e1608c-6169-4fbc-9c33-373fc9b224f4#Appendix_A_34</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <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" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Invoke-ComObject</command:name>
      <command:verb>Invoke</command:verb>
      <command:noun>ComObject</command:noun>
      <maml:description>
        <maml:para>Invoke a member method of a ComObject [__ComObject]</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Use the InvokeMember method to invoke the InvokeMethod or GetProperty or SetProperty methods By default, invokes the GetProperty method for the specified Property If the Value parameter is specified, invokes the SetProperty method for the specified Property If the Method switch is specified, invokes the InvokeMethod method</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Invoke-ComObject</maml:name>
        <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>ComObject</maml:name>
          <maml:description>
            <maml:para>The ComObject whose member method to invoke</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.Object</command:parameterValue>
          <dev:type>
            <maml:name>System.Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>Property</maml:name>
          <maml:description>
            <maml:para>The property to use with the invoked method</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.String</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>Value</maml:name>
          <maml:description>
            <maml:para>The value to set with the SetProperty method, or the name of the method to run with the InvokeMethod method</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.Object</command:parameterValue>
          <dev:type>
            <maml:name>System.Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>Method</maml:name>
          <maml:description>
            <maml:para>Use the InvokeMethod method of the ComObject</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="proga">
          <maml:name>ProgressAction</maml:name>
          <maml:description>
            <maml:para>{{ Fill ProgressAction Description }}</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.Management.Automation.ActionPreference</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.ActionPreference</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>ComObject</maml:name>
        <maml:description>
          <maml:para>The ComObject whose member method to invoke</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.Object</command:parameterValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>Method</maml:name>
        <maml:description>
          <maml:para>Use the InvokeMethod method of the ComObject</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.Management.Automation.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:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="proga">
        <maml:name>ProgressAction</maml:name>
        <maml:description>
          <maml:para>{{ Fill ProgressAction Description }}</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.Management.Automation.ActionPreference</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.ActionPreference</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>Property</maml:name>
        <maml:description>
          <maml:para>The property to use with the invoked method</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.String</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>Value</maml:name>
        <maml:description>
          <maml:para>The value to set with the SetProperty method, or the name of the method to run with the InvokeMethod method</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.Object</command:parameterValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None. Pipeline input is not accepted.</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>The output of the invoked method is returned directly</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title>
        <dev:code>$ComObject = [System.DirectoryServices.DirectoryEntry]::new('WinNT://localhost/Administrators').Invoke('Members') | Select -First 1
Invoke-ComObject -ComObject $ComObject -Property AdsPath</dev:code>
        <dev:remarks>
          <maml:para>Get the first member of the local Administrators group on the current computer Then use Invoke-ComObject to invoke the GetProperty method and return the value of the AdsPath property This technique is essential when working with ADSI objects that expose properties or methods only through COM interfaces, providing a consistent way to access these properties in PowerShell.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-dtyp/11e1608c-6169-4fbc-9c33-373fc9b224f4#Appendix_A_34</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <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" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>New-FakeDirectoryEntry</command:name>
      <command:verb>New</command:verb>
      <command:noun>FakeDirectoryEntry</command:noun>
      <maml:description>
        <maml:para>Creates a fake DirectoryEntry object for security principals that don't have objects in the directory.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Used in place of a DirectoryEntry for certain WinNT security principals that do not have objects in the directory. The WinNT provider only throws an error if you try to retrieve certain accounts/identities. This function creates a PSCustomObject that mimics a DirectoryEntry with the necessary properties.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>New-FakeDirectoryEntry</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>DirectoryPath</maml:name>
          <maml:description>
            <maml:para>Full directory path for the fake entry in the format "Provider://Domain/Name"</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.String</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>SID</maml:name>
          <maml:description>
            <maml:para>Security Identifier (SID) string for the fake entry</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.String</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>Description</maml:name>
          <maml:description>
            <maml:para>Description of the security principal</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.String</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
          <maml:name>SchemaClassName</maml:name>
          <maml:description>
            <maml:para>Schema class name (e.g., 'user', 'group', 'computer')</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.String</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
          <maml:name>InputObject</maml:name>
          <maml:description>
            <maml:para>Optional input object containing additional properties to include in the fake directory entry</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.Object</command:parameterValue>
          <dev:type>
            <maml:name>System.Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="6" aliases="none">
          <maml:name>NameAllowList</maml:name>
          <maml:description>
            <maml:para>Account names known to be impossible to resolve to a Directory Entry (currently based on testing on a non-domain-joined PC)</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.Collections.Hashtable</command:parameterValue>
          <dev:type>
            <maml:name>System.Collections.Hashtable</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>@{ 'ALL APPLICATION PACKAGES' = $null ; 'ALL RESTRICTED APPLICATION PACKAGES' = $null ; 'ANONYMOUS LOGON' = $null ; 'Authenticated Users' = $null ; 'BATCH' = $null ; 'BUILTIN' = $null ; 'CREATOR GROUP' = $null ; 'CREATOR GROUP SERVER' = $null ; 'CREATOR OWNER' = $null ; 'CREATOR OWNER SERVER' = $null ; 'DIALUP' = $null ; 'ENTERPRISE DOMAIN CONTROLLERS' = $null ; 'Everyone' = $null ; 'INTERACTIVE' = $null ; 'internetExplorer' = $null ; 'IUSR' = $null ; 'LOCAL' = $null ; 'LOCAL SERVICE' = $null ; 'NETWORK' = $null ; 'NETWORK SERVICE' = $null ; 'OWNER RIGHTS' = $null ; 'PROXY' = $null ; 'RDS Endpoint Servers' = $null ; 'RDS Management Servers' = $null ; 'RDS Remote Access Servers' = $null ; 'REMOTE INTERACTIVE LOGON' = $null ; 'RESTRICTED' = $null ; 'SELF' = $null ; 'SERVICE' = $null ; 'SYSTEM' = $null ; 'TERMINAL SERVER USER' = $null }</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="7" aliases="none">
          <maml:name>NameBlockList</maml:name>
          <maml:description>
            <maml:para>These are retrievable via the WinNT ADSI Provider which enables group member retrival so we don't want to return fake directory entries</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.Collections.Hashtable</command:parameterValue>
          <dev:type>
            <maml:name>System.Collections.Hashtable</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>@{ 'Access Control Assistance Operators' = $null ; 'Administrators' = $null ; 'Backup Operators' = $null ; 'Cryptographic Operators' = $null ; 'DefaultAccount' = $null ; 'Distributed COM Users' = $null ; 'Event Log Readers' = $null ; 'Guests' = $null ; 'Hyper-V Administrators' = $null ; 'IIS_IUSRS' = $null ; 'Network Configuration Operators' = $null ; 'Performance Log Users' = $null ; 'Performance Monitor Users' = $null ; 'Power Users' = $null ; 'Remote Desktop Users' = $null ; 'Remote Management Users' = $null ; 'Replicator' = $null ; 'System Managed Accounts Group' = $null ; 'Users' = $null ; 'WinRMRemoteWMIUsers__' = $null }</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="8" aliases="none">
          <maml:name>Name</maml:name>
          <maml:description>
            <maml:para>Unused but here for convenient splats</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.String</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="9" aliases="none">
          <maml:name>NTAccount</maml:name>
          <maml:description>
            <maml:para>Unused but here for convenient splats</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.String</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>Description</maml:name>
        <maml:description>
          <maml:para>Description of the security principal</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.String</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>DirectoryPath</maml:name>
        <maml:description>
          <maml:para>Full directory path for the fake entry in the format "Provider://Domain/Name"</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.String</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
        <maml:name>InputObject</maml:name>
        <maml:description>
          <maml:para>Optional input object containing additional properties to include in the fake directory entry</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.Object</command:parameterValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="8" aliases="none">
        <maml:name>Name</maml:name>
        <maml:description>
          <maml:para>Unused but here for convenient splats</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.String</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="6" aliases="none">
        <maml:name>NameAllowList</maml:name>
        <maml:description>
          <maml:para>Account names known to be impossible to resolve to a Directory Entry (currently based on testing on a non-domain-joined PC)</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.Collections.Hashtable</command:parameterValue>
        <dev:type>
          <maml:name>System.Collections.Hashtable</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>@{ 'ALL APPLICATION PACKAGES' = $null ; 'ALL RESTRICTED APPLICATION PACKAGES' = $null ; 'ANONYMOUS LOGON' = $null ; 'Authenticated Users' = $null ; 'BATCH' = $null ; 'BUILTIN' = $null ; 'CREATOR GROUP' = $null ; 'CREATOR GROUP SERVER' = $null ; 'CREATOR OWNER' = $null ; 'CREATOR OWNER SERVER' = $null ; 'DIALUP' = $null ; 'ENTERPRISE DOMAIN CONTROLLERS' = $null ; 'Everyone' = $null ; 'INTERACTIVE' = $null ; 'internetExplorer' = $null ; 'IUSR' = $null ; 'LOCAL' = $null ; 'LOCAL SERVICE' = $null ; 'NETWORK' = $null ; 'NETWORK SERVICE' = $null ; 'OWNER RIGHTS' = $null ; 'PROXY' = $null ; 'RDS Endpoint Servers' = $null ; 'RDS Management Servers' = $null ; 'RDS Remote Access Servers' = $null ; 'REMOTE INTERACTIVE LOGON' = $null ; 'RESTRICTED' = $null ; 'SELF' = $null ; 'SERVICE' = $null ; 'SYSTEM' = $null ; 'TERMINAL SERVER USER' = $null }</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="7" aliases="none">
        <maml:name>NameBlockList</maml:name>
        <maml:description>
          <maml:para>These are retrievable via the WinNT ADSI Provider which enables group member retrival so we don't want to return fake directory entries</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.Collections.Hashtable</command:parameterValue>
        <dev:type>
          <maml:name>System.Collections.Hashtable</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>@{ 'Access Control Assistance Operators' = $null ; 'Administrators' = $null ; 'Backup Operators' = $null ; 'Cryptographic Operators' = $null ; 'DefaultAccount' = $null ; 'Distributed COM Users' = $null ; 'Event Log Readers' = $null ; 'Guests' = $null ; 'Hyper-V Administrators' = $null ; 'IIS_IUSRS' = $null ; 'Network Configuration Operators' = $null ; 'Performance Log Users' = $null ; 'Performance Monitor Users' = $null ; 'Power Users' = $null ; 'Remote Desktop Users' = $null ; 'Remote Management Users' = $null ; 'Replicator' = $null ; 'System Managed Accounts Group' = $null ; 'Users' = $null ; 'WinRMRemoteWMIUsers__' = $null }</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="9" aliases="none">
        <maml:name>NTAccount</maml:name>
        <maml:description>
          <maml:para>Unused but here for convenient splats</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.String</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
        <maml:name>SchemaClassName</maml:name>
        <maml:description>
          <maml:para>Schema class name (e.g., 'user', 'group', 'computer')</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.String</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>SID</maml:name>
        <maml:description>
          <maml:para>Security Identifier (SID) string for the fake entry</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.String</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None. Pipeline input is not accepted.</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>PSCustomObject. A custom object that mimics a DirectoryEntry with properties such as Name, Description,</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
      <command:returnValue>
        <dev:type>
          <maml:name>SchemaClassName, and objectSid.</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title>
        <dev:code>New-FakeDirectoryEntry -DirectoryPath "WinNT://BUILTIN/Everyone" -SID "S-1-1-0"</dev:code>
        <dev:remarks>
          <maml:para>Creates a fake DirectoryEntry object for the well-known "Everyone" security principal with the SID "S-1-1-0", which can be used for permission analysis when a real DirectoryEntry object cannot be retrieved.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-dtyp/11e1608c-6169-4fbc-9c33-373fc9b224f4#Appendix_A_34</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <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" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Resolve-IdentityReference</command:name>
      <command:verb>Resolve</command:verb>
      <command:noun>IdentityReference</command:noun>
      <maml:description>
        <maml:para>Use CIM and ADSI to lookup info about IdentityReferences from Access Control Entries that came from Discretionary Access Control Lists</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Based on the IdentityReference proprety of each Access Control Entry: Resolve SID to NT account name and vise-versa Resolve well-known SIDs Resolve generic defaults like 'NT AUTHORITY' and 'BUILTIN' to the applicable computer or domain name</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Resolve-IdentityReference</maml:name>
        <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>IdentityReference</maml:name>
          <maml:description>
            <maml:para>IdentityReference from an Access Control Entry Expecting either a SID (S-1-5-18) or an NT account name (CONTOSO\User)</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.String</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>AdsiServer</maml:name>
          <maml:description>
            <maml:para>Object from Get-AdsiServer representing the directory server and its attributes</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.Management.Automation.PSObject</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.PSObject</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>Cache</maml:name>
          <maml:description>
            <maml:para>In-process cache to reduce calls to other processes or to disk</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.Management.Automation.PSReference</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.PSReference</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
          <maml:name>AccountProperty</maml:name>
          <maml:description>
            <maml:para>Properties of each Account to display on the report</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.String[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>@('DisplayName', 'Company', 'Department', 'Title', 'Description')</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="proga">
          <maml:name>ProgressAction</maml:name>
          <maml:description>
            <maml:para>{{ Fill ProgressAction Description }}</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.Management.Automation.ActionPreference</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.ActionPreference</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
        <maml:name>AccountProperty</maml:name>
        <maml:description>
          <maml:para>Properties of each Account to display on the report</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.String[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>@('DisplayName', 'Company', 'Department', 'Title', 'Description')</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>AdsiServer</maml:name>
        <maml:description>
          <maml:para>Object from Get-AdsiServer representing the directory server and its attributes</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.Management.Automation.PSObject</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.PSObject</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>Cache</maml:name>
        <maml:description>
          <maml:para>In-process cache to reduce calls to other processes or to disk</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.Management.Automation.PSReference</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.PSReference</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>IdentityReference</maml:name>
        <maml:description>
          <maml:para>IdentityReference from an Access Control Entry Expecting either a SID (S-1-5-18) or an NT account name (CONTOSO\User)</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.String</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="proga">
        <maml:name>ProgressAction</maml:name>
        <maml:description>
          <maml:para>{{ Fill ProgressAction Description }}</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.Management.Automation.ActionPreference</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.ActionPreference</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None. Pipeline input is not accepted.</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>[PSCustomObject] with IdentityReferenceNetBios,IdentityReferenceDns, and SIDString properties (each strings)</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title>
        <dev:code>Resolve-IdentityReference -IdentityReference 'BUILTIN\Administrator' -AdsiServer (Get-AdsiServer 'localhost')</dev:code>
        <dev:remarks>
          <maml:para>Resolves the local Administrator account on the BUILTIN domain to its proper SID, NetBIOS name, and DNS name format. This is useful when analyzing permissions to ensure consistency in how identities are represented, especially when comparing permissions across different systems or domains.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-dtyp/11e1608c-6169-4fbc-9c33-373fc9b224f4#Appendix_A_34</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <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" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Resolve-ServiceNameToSID</command:name>
      <command:verb>Resolve</command:verb>
      <command:noun>ServiceNameToSID</command:noun>
      <maml:description>
        <maml:para>Resolves Windows service names to their corresponding security identifiers (SIDs).</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This function takes service objects (from Get-Service or Win32_Service) and calculates their corresponding SIDs using the same algorithm as sc.exe showsid. It enriches the input service objects with SID and Status and returns the enhanced objects with all original properties preserved.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Resolve-ServiceNameToSID</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="True (ByValue)" position="1" aliases="none">
          <maml:name>InputObject</maml:name>
          <maml:description>
            <maml:para>Output of Get-Service or an instance of the Win32_Service CIM class</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.Object</command:parameterValue>
          <dev:type>
            <maml:name>System.Object</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="proga">
          <maml:name>ProgressAction</maml:name>
          <maml:description>
            <maml:para>{{ Fill ProgressAction Description }}</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.Management.Automation.ActionPreference</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.ActionPreference</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="True (ByValue)" position="1" aliases="none">
        <maml:name>InputObject</maml:name>
        <maml:description>
          <maml:para>Output of Get-Service or an instance of the Win32_Service CIM class</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.Object</command:parameterValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="proga">
        <maml:name>ProgressAction</maml:name>
        <maml:description>
          <maml:para>{{ Fill ProgressAction Description }}</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.Management.Automation.ActionPreference</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.ActionPreference</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes />
    <command:returnValues />
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- Example 1 --------------------------</maml:title>
        <dev:code>PS C:\&gt; {{ Add example code here }}</dev:code>
        <dev:remarks>
          <maml:para>{{ Add example description here }}</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-dtyp/11e1608c-6169-4fbc-9c33-373fc9b224f4#Appendix_A_34</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <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" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Search-Directory</command:name>
      <command:verb>Search</command:verb>
      <command:noun>Directory</command:noun>
      <maml:description>
        <maml:para>Use Active Directory Service Interfaces to search an LDAP directory</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Find directory entries using the LDAP provider for ADSI (the WinNT provider does not support searching) Provides a wrapper around the [System.DirectoryServices.DirectorySearcher] class Supports filtering, paging, and customizing which properties to return.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Search-Directory</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>DirectoryPath</maml:name>
          <maml:description>
            <maml:para>Path to the directory object to retrieve Defaults to the root of the current domain</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.String</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>(([adsisearcher]'').SearchRoot.Path)</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>Filter</maml:name>
          <maml:description>
            <maml:para>Filter for the LDAP search</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.String</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>PageSize</maml:name>
          <maml:description>
            <maml:para>Number of results to return in each page</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.Int32</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>1000</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
          <maml:name>SearchScope</maml:name>
          <maml:description>
            <maml:para>Search scope (Base, OneLevel, or Subtree)</maml:para>
          </maml:description>
          <command:parameterValueGroup>
            <command:parameterValue required="false" command:variableLength="false">Base</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">OneLevel</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">Subtree</command:parameterValue>
          </command:parameterValueGroup>
          <command:parameterValue required="true" variableLength="false">System.DirectoryServices.SearchScope</command:parameterValue>
          <dev:type>
            <maml:name>System.DirectoryServices.SearchScope</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>Subtree</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
          <maml:name>PropertiesToLoad</maml:name>
          <maml:description>
            <maml:para>Additional properties to return</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.String[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="6" aliases="none">
          <maml:name>Credential</maml:name>
          <maml:description>
            <maml:para>Credentials to use</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.Management.Automation.PSCredential</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.PSCredential</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="False" position="7" aliases="none">
          <maml:name>Cache</maml:name>
          <maml:description>
            <maml:para>In-process cache to reduce calls to other processes or to disk</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.Management.Automation.PSReference</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.PSReference</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="proga">
          <maml:name>ProgressAction</maml:name>
          <maml:description>
            <maml:para>{{ Fill ProgressAction Description }}</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">System.Management.Automation.ActionPreference</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.ActionPreference</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="False" position="7" aliases="none">
        <maml:name>Cache</maml:name>
        <maml:description>
          <maml:para>In-process cache to reduce calls to other processes or to disk</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.Management.Automation.PSReference</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.PSReference</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="6" aliases="none">
        <maml:name>Credential</maml:name>
        <maml:description>
          <maml:para>Credentials to use</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.Management.Automation.PSCredential</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.PSCredential</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>DirectoryPath</maml:name>
        <maml:description>
          <maml:para>Path to the directory object to retrieve Defaults to the root of the current domain</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.String</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>(([adsisearcher]'').SearchRoot.Path)</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>Filter</maml:name>
        <maml:description>
          <maml:para>Filter for the LDAP search</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.String</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>PageSize</maml:name>
        <maml:description>
          <maml:para>Number of results to return in each page</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.Int32</command:parameterValue>
        <dev:type>
          <maml:name>System.Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>1000</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="proga">
        <maml:name>ProgressAction</maml:name>
        <maml:description>
          <maml:para>{{ Fill ProgressAction Description }}</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.Management.Automation.ActionPreference</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.ActionPreference</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="5" aliases="none">
        <maml:name>PropertiesToLoad</maml:name>
        <maml:description>
          <maml:para>Additional properties to return</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.String[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="4" aliases="none">
        <maml:name>SearchScope</maml:name>
        <maml:description>
          <maml:para>Search scope (Base, OneLevel, or Subtree)</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">System.DirectoryServices.SearchScope</command:parameterValue>
        <dev:type>
          <maml:name>System.DirectoryServices.SearchScope</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>Subtree</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None. Pipeline input is not accepted.</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.DirectoryServices.SearchResult collection representing the matching directory objects.</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title>
        <dev:code>Search-Directory -DirectoryPath "LDAP://DC=contoso,DC=com" -Filter "(objectClass=user)" -PageSize 1000 -Cache $Cache</dev:code>
        <dev:remarks>
          <maml:para>Searches the contoso.com domain for all user objects, retrieving results in pages of 1000 objects at a time. This is useful for efficiently retrieving large sets of directory objects without overwhelming memory resources.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-dtyp/11e1608c-6169-4fbc-9c33-373fc9b224f4#Appendix_A_34</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
</helpItems>