bin/SnsPsModule.xml

<?xml version="1.0"?>
<doc>
    <assembly>
        <name>SnsPsModule</name>
    </assembly>
    <members>
        <member name="T:SnsPsModule.AddSnsAdGroupMember">
            <summary>
             <para type="synopsis">
                 CmdLet Designed To Add Members To Active Directory Groups.
             </para>
             <para type="description">
                 CmdLet Designed To Add Members To Active Directory Groups.
             </para>
             <para type="description">
                 The CmdLet Was Developed In A Way To Be Not Affected By The ADSI Adapter Limitations Related With The Maximum
                 Number Of Reverted Values In Multivalued Attribute. The Restriction Depends From The Active Directory Schema And
                 Forest Level. Because Of Those Maximum Displayed Values Restriction, The Normal Way Of Modifying Those Attributes
                 Is Not Applicable. This Especially Applies Whenever We Need To Have Domain Groups With Number Of Members Greater
                 Than The Restrictions.
             </para>
             <para type="description">
                 In Order To Avoid The Limitation The CmdLet Takes The Reverse Approach And Verifies Whether The Specified Object
                 Is Member Of The Specified Group Instead Verifying Group "members" Attribute. Although It Is Common The Active
                 Directory Domains To Have Groups With Large Number Of Members, It Is Not So Common To Have Users Members Of Large
                 Number Of Groups. This Might Cause Issues With Users Access Tokens And Prevent Users From LogOn Or Accessing The
                 Resources They Need. From That Perspective The CmdLet Adds The Specified Ad Object As "member" Of The Specified
                 Group As It Is The Only Way This To Be Done, But Verifies The Adding Using "memberOf" Relative Attribute Of The
                 Specified Member Object.
             </para>
             <para type="description">
                 Since The CmdLet Perform Actions On The Active Directory Group Object And Verifies The Action Using The Active
                 Directory Member Objects The Both Queries Have To Be Executed Against The Same Domain Controller. From That
                 Perspective Usage Of Single Domain Controller Is Mandatory To Avoid Issues Caused By Active Directory Replication
                 Delays. However Specifying One Is Not Mandatory. Whenever Domain Controller Is Not Specified The CmdLet Will Try
                 To Get The Closest Global Catalog Domain Controller And Will Execute All The Queries Against It. Whenever The
                 CmdLet Is Used To Update The Membership Of A Group With Multiple Users, Domain Controller Shall Be Specified,
                 Because The CmdLet Might Decide To Use Different Domain Controllers For Each Of The Users And Produce AD
                 Replication Collision Issues.
             </para>
             <list type="alertSet">
                 <item>
                     <term> </term>
                     <description>
                         <para>AUTHOR: Svetoslav Nedyalkov Savov (svesavov@hotmail.com)</para>
                         <para>THIS CODE IS MADE AVAILABLE AS IS, WITHOUT WARRANTY OF ANY KIND. THE ENTIRE RISK</para>
                         <para>OF THE USE OR THE RESULTS FROM THE USE OF THIS CODE REMAINS WITH THE USER.</para>
                         <para></para>
                         <para></para>
                         <para></para>
                     </description>
                 </item>
             </list>
             <example>
               <code>
                 [SnsPsModule.SnsAddAdGroupMember]$objResult = Add-SnsAdGroupMember `
                 -GroupDistinguishedName "CN=Group01,OU=Groups,DC=contoso,DC=com" `
                 -MemberDistinguishedName "CN=John Smith,OU=Users,DC=contoso,DC=com";
               </code>
               <para></para>
             </example>
             </summary>
             <para type="link" uri="https://github.com/svesavov/SnsPsModule"> svesavov / SnsPsModule - </para>
             <para type="link" uri="https://www.powershellgallery.com/packages/SnsPsModule/"> PowerShell Gallery - </para>
             <para type="link" uri="https://www.linkedin.com/in/svetoslavsavov"> Svetoslav Savov on LinkedIn - </para>
        </member>
        <member name="P:SnsPsModule.AddSnsAdGroupMember.MemberDistinguishedName">
            <summary>
            <para type="description">Specifies DistinguishedName Of An AD Object Which Have To Be Added As Member Of The Specified Group.</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.AddSnsAdGroupMember.GroupDistinguishedName">
            <summary>
            <para type="description">Specifies DistinguishedName Of An AD Group Which Membership Have To Be Modified.</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.AddSnsAdGroupMember.DomainController">
            <summary>
            <para type="description">Specifies A Domain Controller Fully Qualified Domain Name.</para>
            <para type="description">If Not Provided The CmdLet Will Be Run Against Random Domain Controller.</para>
            <para type="description">Delays Caused By The Domain Replication Have To Be Considered If Omitted.</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.AddSnsAdGroupMember.Attempts">
            <summary>
            <para type="description">
                Specifies The Number Of Attempts That Have To Be Made To Set The Specified Values To The Specified AD
                Attribute.
            </para>
            </summary>
        </member>
        <member name="T:SnsPsModule.AddSnsAdMultiValuedStringAttributeValue">
            <summary>
            <para type="synopsis">
                CmdLet Designed To Add Values To Active Directory Object Multi Valued Attribute Preserving The Existing Values.
            </para>
            <para type="description">
                CmdLet Designed To Add Values To Active Directory Object Multi Valued Attribute Preserving The Existing Values.
            </para>
            <para type="description">
                The CmdLet Have Two Parameter Sets:
            </para>
            <para type="description">
                --ConnectionString - The AD Object Which Have To Be Modified Have To Be Provided In LDAP Connection String Form.
                Since The CmdLet Modifies And Verifies Attribute Values, It Is Required That Modifications And Validations Are
                Made Against One DomainController. Otherwise The Change Can Be Done On One DomainController And The Verification
                On Another. Which Will Cause Fail Positive In The Verification, Because The Change Can Be Replicated On The Second
                DomainController After A While. From That Perspective The CmdLet Does Accept Only LDAP Connection Strings Only
                With Included Valid Domain Controller.
            </para>
            <para type="description">
                --DistinguishedName - The AD Object Which Have To Be Modified Have To Be Provided With Its DistinguishedName.
                Additionally A DomainController Have To Be Specified To The CmdLet. In Case The DomainController Is Not Specified
                The CmdLet Will Take The Users Logon Server And Will Assign It As Domain Controller.
            </para>
            <list type="alertSet">
                <item>
                    <term> </term>
                    <description>
                        <para>AUTHOR: Svetoslav Nedyalkov Savov (svesavov@hotmail.com)</para>
                        <para>THIS CODE IS MADE AVAILABLE AS IS, WITHOUT WARRANTY OF ANY KIND. THE ENTIRE RISK</para>
                        <para>OF THE USE OR THE RESULTS FROM THE USE OF THIS CODE REMAINS WITH THE USER.</para>
                        <para></para>
                        <para></para>
                        <para></para>
                    </description>
                </item>
            </list>
            <example>
              <code>
                [SnsPsModule.SnsAdMultiValuedString]$objResult = Add-SnsAdMultiValuedStringAttributeValue `
                -ConnectionString "LDAP://DC01.contoso.com/CN=Group01,OU=Groups,DC=contoso,DC=com" `
                -Attribute "member" -Value "CN=John Smith,OU=Users,DC=contoso,DC=com";
              </code>
              <para></para>
            </example>
            <example>
              <code>
                [SnsPsModule.SnsAdMultiValuedString]$objResult = Add-SnsAdMultiValuedStringAttributeValue `
                -DistinguishedName "CN=Group01,OU=Groups,DC=contoso,DC=com" `
                -Attribute "member" -Value "CN=John Smith,OU=Users,DC=contoso,DC=com";
              </code>
              <para></para>
            </example>
            </summary>
            <para type="link" uri="https://github.com/svesavov/SnsPsModule"> svesavov / SnsPsModule - </para>
            <para type="link" uri="https://www.powershellgallery.com/packages/SnsPsModule/"> PowerShell Gallery - </para>
            <para type="link" uri="https://www.linkedin.com/in/svetoslavsavov"> Svetoslav Savov on LinkedIn - </para>
        </member>
        <member name="P:SnsPsModule.AddSnsAdMultiValuedStringAttributeValue.ConnectionString">
            <summary>
            <para type="description">Specifies An AD Connection String To The Ad Object Which Attribute Have to Be Modified.</para>
            <para type="description">For More Details Refer To MS Documentation https://bit.ly/2RGUIsO </para>
            <para type="description">For The Purpose Of The CmdLet Only The Syntax With DomainController Is Allowed.</para>
            <para type="description">Example: LDAP://DC01.contoso.com/CN=John Smith,OU=Users,DC=contoso,DC=com</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.AddSnsAdMultiValuedStringAttributeValue.DistinguishedName">
            <summary>
            <para type="description">Specifies DistinguishedName Of The AD Object Which Have To Be Modified.</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.AddSnsAdMultiValuedStringAttributeValue.DomainController">
            <summary>
            <para type="description">Specifies A Domain Controller Fully Qualified Domain Name.</para>
            <para type="description">If Not Provided The CmdLet Will Be Run Against Random Domain Controller.</para>
            <para type="description">Delays Caused By The Domain Replication Have To Be Considered If Omitted.</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.AddSnsAdMultiValuedStringAttributeValue.Attribute">
            <summary>
            <para type="description">Specifies The Attribute Name Of The Attribute Which Have To Be Set As It Is Shown In ADSIEdit.</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.AddSnsAdMultiValuedStringAttributeValue.Value">
            <summary>
            <para type="description">Specifies The Values Which Have To Be Added On The Specified Attribute.</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.AddSnsAdMultiValuedStringAttributeValue.Attempts">
            <summary>
            <para type="description">
                Specifies The Number Of Attempts That Have To Be Made To Set The Specified Values To The Specified AD
                Attribute.
            </para>
            </summary>
        </member>
        <member name="T:SnsPsModule.ClearSnsAdAttribute">
            <summary>
            <para type="synopsis">
                CmdLet Designed To Clear The Specified AD Attribute Value For The Specified AD Object.
            </para>
            <para type="description">
                CmdLet Designed To Clear The Specified AD Attribute Value For The Specified AD Object.
            </para>
            <para type="description">
                The CmdLet Have Two Parameter Sets:
            </para>
            <para type="description">
                --ConnectionString - The AD Object Which Have To Be Modified Have To Be Provided In LDAP Connection String Form.
                Since The CmdLet Modifies And Verifies Attribute Values, It Is Required That Modifications And Validations Are
                Made Against One DomainController. Otherwise The Change Can Be Done On One DomainController And The Verification
                On Another. Which Will Cause Fail Positive In The Verification, Because The Change Can Be Replicated On The Second
                DomainController After A While. From That Perspective The CmdLet Does Accept Only LDAP Connection Strings Only
                With Included Valid Domain Controller.
            </para>
            <para type="description">
                --DistinguishedName - The AD Object Which Have To Be Modified Have To Be Provided With Its DistinguishedName.
                Additionally A DomainController Have To Be Specified To The CmdLet. In Case The DomainController Is Not Specified
                The CmdLet Will Take The Users Logon Server And Will Assign It As Domain Controller.
            </para>
            <list type="alertSet">
                <item>
                    <term> </term>
                    <description>
                        <para>AUTHOR: Svetoslav Nedyalkov Savov (svesavov@hotmail.com)</para>
                        <para>THIS CODE IS MADE AVAILABLE AS IS, WITHOUT WARRANTY OF ANY KIND. THE ENTIRE RISK</para>
                        <para>OF THE USE OR THE RESULTS FROM THE USE OF THIS CODE REMAINS WITH THE USER.</para>
                        <para></para>
                        <para></para>
                        <para></para>
                    </description>
                </item>
            </list>
            <example>
              <code>
                [SnsPsModule.SnsAdClearAttribute]$objResult = Clear-SnsAdAttribute `
                -ConnectionString "LDAP://DC01.contoso.com/CN=Group01,OU=Groups,DC=contoso,DC=com" `
                -Attribute "member";
              </code>
              <para></para>
            </example>
            <example>
              <code>
                [SnsPsModule.SnsAdClearAttribute]$objResult = Clear-SnsAdAttribute `
                -DistinguishedName "CN=Group01,OU=Groups,DC=contoso,DC=com" `
                -Attribute "member";
              </code>
              <para></para>
            </example>
            </summary>
            <para type="link" uri="https://github.com/svesavov/SnsPsModule"> svesavov / SnsPsModule - </para>
            <para type="link" uri="https://www.powershellgallery.com/packages/SnsPsModule/"> PowerShell Gallery - </para>
            <para type="link" uri="https://www.linkedin.com/in/svetoslavsavov"> Svetoslav Savov on LinkedIn - </para>
        </member>
        <member name="P:SnsPsModule.ClearSnsAdAttribute.ConnectionString">
            <summary>
            <para type="description">Specifies An AD Connection String To The Ad Object Which Attribute Have to Be Modified.</para>
            <para type="description">For More Details Refer To MS Documentation https://bit.ly/2RGUIsO </para>
            <para type="description">For The Purpose Of The CmdLet Only The Syntax With DomainController Is Allowed.</para>
            <para type="description">Example: LDAP://DC01.contoso.com/CN=John Smith,OU=Users,DC=contoso,DC=com</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.ClearSnsAdAttribute.DistinguishedName">
            <summary>
            <para type="description">Specifies DistinguishedName Of The AD Object Which Have To Be Modified.</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.ClearSnsAdAttribute.DomainController">
            <summary>
            <para type="description">Specifies A Domain Controller Fully Qualified Domain Name.</para>
            <para type="description">If Not Provided The CmdLet Will Be Run Against Random Domain Controller.</para>
            <para type="description">Delays Caused By The Domain Replication Have To Be Considered If Omitted.</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.ClearSnsAdAttribute.Attribute">
            <summary>
            <para type="description">Specifies The Attribute Name Of The Attribute Which Have To Be Set As It Is Shown In ADSIEdit.</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.ClearSnsAdAttribute.Attempts">
            <summary>
            <para type="description">
                Specifies The Number Of Attempts That Have To Be Made To Clear The Specified AD Attribute.
            </para>
            </summary>
        </member>
        <member name="T:SnsPsModule.ConvertFromSnsIADsLargeInteger">
            <summary>
            <para type="synopsis">
                Converts Specific For Active Directory IADsLargeInteger Objects To Regular System.Int64 Struct.
            </para>
            <para type="description">
                Converts Specific For Active Directory IADsLargeInteger Objects To Regular System.Int64 Struct.
            </para>
            <para type="description">
                NOTE: The IADsLargeInteger Values Usually Cannot Be Taken Directly From The AD Object Property Which Contains
                IADsLargeInteger Value Type. Normally Those AD Properties Are Presented As COM Objects, Which Have "Value"
                Property. The Command-Let Will Expect The Value Taken From The "Value" Property Of The AD Object Property.
                Please Refer To The Example Below.
            </para>
            <list type="alertSet">
                <item>
                    <term> </term>
                    <description>
                        <para>AUTHOR: Svetoslav Nedyalkov Savov (svesavov@hotmail.com)</para>
                        <para>THIS CODE IS MADE AVAILABLE AS IS, WITHOUT WARRANTY OF ANY KIND. THE ENTIRE RISK</para>
                        <para>OF THE USE OR THE RESULTS FROM THE USE OF THIS CODE REMAINS WITH THE USER.</para>
                        <para></para>
                        <para></para>
                        <para></para>
                    </description>
                </item>
            </list>
            <example>
              <code>
                [System.Int64[]]$intPwdLastSet = ConvertFrom-SnsIADsLargeInteger $AdsiUser.pwdLastSet.Value;
              </code>
              <para></para>
            </example>
            <example>
              <code>
                [System.DateTime]$datPwdLastSet = ([System.DateTime]'1601-01-01').AddTicks($(ConvertFrom-SnsIADsLargeInteger $AdsiUser.pwdLastSet.Value)).ToLocalTime();
              </code>
              <para></para>
            </example>
            <example>
              <code>
                [System.DateTime]$datPwdLastSet = [System.DateTime]::FromFileTime($(ConvertFrom-SnsIADsLargeInteger $([ADSI]"LDAP://$($strDN)").pwdLastSet.Value));
              </code>
              <para></para>
            </example>
            </summary>
            <para type="link" uri="https://github.com/svesavov/SnsPsModule"> svesavov / SnsPsModule - </para>
            <para type="link" uri="https://www.powershellgallery.com/packages/SnsPsModule/"> PowerShell Gallery - </para>
            <para type="link" uri="https://www.linkedin.com/in/svetoslavsavov"> Svetoslav Savov on LinkedIn - </para>
        </member>
        <member name="P:SnsPsModule.ConvertFromSnsIADsLargeInteger.IADsLargeIntegerValue">
            <summary>
            <para type="description">Specifies An Active Directory IADsLargeInteger Value</para>
            <para type="description">Keep In Mind That ADSI Properties Are Hash Tables And Value Property Shall Be Used</para>
            <para type="description">like $objAdsiAccount.pwdLastSet.Value</para>
            </summary>
        </member>
        <member name="T:SnsPsModule.ConvertFromSnsIpAddressString">
            <summary>
            <para type="synopsis">
                This CmdLet Converts IP V4 Address String To System.UInt32
            </para>
            <para type="description">
                This CmdLet Converts IP V4 Address String To System.UInt32
            </para>
            <list type="alertSet">
                <item>
                    <term> </term>
                    <description>
                        <para>AUTHOR: Svetoslav Nedyalkov Savov (svesavov@hotmail.com)</para>
                        <para>THIS CODE IS MADE AVAILABLE AS IS, WITHOUT WARRANTY OF ANY KIND. THE ENTIRE RISK</para>
                        <para>OF THE USE OR THE RESULTS FROM THE USE OF THIS CODE REMAINS WITH THE USER.</para>
                        <para></para>
                        <para></para>
                        <para></para>
                    </description>
                </item>
            </list>
            <example>
              <code>
                [System.UInt32[]]$IpNumeric = ConvertFrom-SnsIpAddressString -IpAddress '192.168.1.1';
              </code>
              <para></para>
            </example>
            </summary>
            <para type="link" uri="https://github.com/svesavov/SnsPsModule"> svesavov / SnsPsModule - </para>
            <para type="link" uri="https://www.powershellgallery.com/packages/SnsPsModule/"> PowerShell Gallery - </para>
            <para type="link" uri="https://www.linkedin.com/in/svetoslavsavov"> Svetoslav Savov on LinkedIn - </para>
        </member>
        <member name="P:SnsPsModule.ConvertFromSnsIpAddressString.IpAddress">
            <summary>
            <para type="description">Specifies IP V4 String</para>
            </summary>
        </member>
        <member name="T:SnsPsModule.GetSnsWebPage">
            <summary>
            <para type="synopsis">
                This CmdLet Extract HTML Content From A Web Page As A String.
            </para>
            <para type="description">
                This CmdLet Extract HTML Content From A Web Page As A String.
            </para>
            <para type="description">
                The Main Reason This Command-Let To Be Developed Is The Fact That Invoke-WebRequest Native PowerShell Command Is
                Running Within Own Run Space Which Does Not Inherit The Parent Run Space Settings. Invoke-WebRequest Command Does
                Not Have Parameters To Skip The Certificates Checks Before PowerShell 6.0. With Other Words On Machines With
                PowerShell Before 6.0 Without External Internet Access On HTTP Protocol Cannot Be Verified The Revocation Lists Of
                The HTTPS Certificates.
            </para>
            <para type="description">
                The Get-WebPage Command-Let Can Connect To Web Pages With Or Without Authentication. In Order This To Be Possible
                The Command-Let Was Developed With 3 ParameterSets.
            </para>
            <para type="description">
                --ParameterSet "Credential" - In This ParameterSet The User Have To Provide WebPage URL, A Valid PSCredential
                Object, Login URL, The Name Of The UserName And Password Textboxes As They Are Named In The Login Form Of The
                Destination WebPage.
            </para>
            <para type="description">
                --ParameterSet "UserAndPass" - In This ParameterSet The User Have To Provide WebPage URL, UserName, Password In
                Clear Text, Login URL, The Name Of The UserName And Password Textboxes As They Are Named In The Login Form Of The
                Destination WebPage. Providing The Password In Clear Text Is Not A Security Concern As It Is Not Stored Anywhere
                On The Computer. The Password Is Kept Into The Computer Memory For The Duration Of The Command Run And Then Is
                Destroyed. However Usage In That Parameter Set In Scripts Can Be Security Concern As Long As The Password Have To
                Be Sored Unencrypted Somewhere And Provided To The Command-Let.
            </para>
            <para type="description">
                --ParameterSet "Anonymous" - This ParameterSet Is Used For Webpage Which Does Not Require Authentication. The User
                Will Need To Provide Only The WebPage URL.
            </para>
            <para type="description">
                At The Very Beginning The Command-Let Connects To The Provided LoginUrl And Extract From There An Access Cookie
                Which Is Used Afterward To Be Accessed The WebPage URL. The Access Cookie Is Preserved In The Computers Memory For
                The Duration Of The Command-Let Run And Can Be Used For Accessing Of Multiple Pages That Can Accept This Cookie,
                As Long As The WebPage URL's Are Provided As Collection. The Output Strings Collection Is Reverted In The Same
                Order As The Webpage URL's Are Provided.
            </para>
            <list type="alertSet">
                <item>
                    <term> </term>
                    <description>
                        <para>AUTHOR: Svetoslav Nedyalkov Savov (svesavov@hotmail.com)</para>
                        <para>THIS CODE IS MADE AVAILABLE AS IS, WITHOUT WARRANTY OF ANY KIND. THE ENTIRE RISK</para>
                        <para>OF THE USE OR THE RESULTS FROM THE USE OF THIS CODE REMAINS WITH THE USER.</para>
                        <para></para>
                        <para></para>
                        <para></para>
                    </description>
                </item>
            </list>
            <example>
              <code>
                [System.String[]]$strHtml = Get-SnsWebPage -Credential (Get-Credential) -FormUserNameField 'username' `
                -FormPasswordField 'password' -LoginUrl 'https://contoso.com/dologin.action' -Url 'https://contoso.com';
              </code>
              <para>
                Gets Web Page HTML Using Credentials Which Have To Be Provided By The User.
              </para>
              <para>
                To Get The Form TextBox Names Have To Be Checked In Advance The Source Of The Logon Page With Some Browser.
              </para>
              <para></para>
            </example>
            <example>
              <code>
                [System.String[]]$strHtml = Get-SnsWebPage -UserName 'CONTOSO\JohnSmith' -FormUserNameField 'username' `
                -Password 'Pa$$w0rd' -FormPasswordField 'password' -LoginUrl 'https://contoso.com/dologin.action' `
                -Url 'https://contoso.com';
              </code>
              <para>
                Gets Web Page HTML Using Specified UserName And Password.
              </para>
              <para>
                To Get The Form TextBox Names Have To Be Checked In Advance The Source Of The Logon Page With Some Browser.
              </para>
              <para></para>
            </example>
            <example>
              <code>
                [System.String[]]$strHtml = Get-SnsWebPage -Url 'https://contoso.com';
              </code>
              <para>
                Gets Web Page HTML From A WebPage Without Logon.
              </para>
              <para></para>
            </example>
            </summary>
            <para type="link" uri="https://github.com/svesavov/SnsPsModule"> svesavov / SnsPsModule - </para>
            <para type="link" uri="https://www.powershellgallery.com/packages/SnsPsModule/"> PowerShell Gallery - </para>
            <para type="link" uri="https://www.linkedin.com/in/svetoslavsavov"> Svetoslav Savov on LinkedIn - </para>
        </member>
        <member name="P:SnsPsModule.GetSnsWebPage.Credential">
            <summary>
            <para type="description">Specifies The WebPage Credential Object</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.GetSnsWebPage.UserName">
            <summary>
            <para type="description">Specifies The WebPage Username In Clear Text</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.GetSnsWebPage.Password">
            <summary>
            <para type="description">Specifies The WebPage Password In Clear Text</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.GetSnsWebPage.FormUserNameField">
            <summary>
            <para type="description">Specifies The WebPage Username Textbox Name As It Is Named In The Login Page Form</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.GetSnsWebPage.FormPasswordField">
            <summary>
            <para type="description">Specifies The WebPage Password Textbox Name As It Is Named In The Login Page Form</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.GetSnsWebPage.LoginUrl">
            <summary>
            <para type="description">Specifies The WebPage LoginUrl</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.GetSnsWebPage.Url">
            <summary>
            <para type="description">Specifies The WebPage Universal Resource Locator</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.GetSnsWebPage.Anonymous">
            <summary>
            <para type="description">Specifies To The Command-Let That The WebPage Does Not Require Authentication And Shall Be Accessed Directly</para>
            </summary>
        </member>
        <member name="T:SnsPsModule.InvokeSnsSQLQuery">
            <summary>
            <para type="synopsis">
                This Cmdlet Connect To A Specified SQL Server And SQL DataBase, Executes A SQL Query Against The DataBase, Revert
                The Output In DataSet Collection And Close The SQL Session.
            </para>
            <para type="description">
                This Cmdlet Connect To A Specified SQL Server And SQL DataBase, Executes A SQL Query Against The DataBase, Revert
                The Output In DataSet Collection And Close The SQL Session.
            </para>
            <para type="description">
                The CmdLet Have Three Parameter Sets, Related With The Authentication Options To Establish A SQL Connection:
            </para>
            <para type="description">
                -- LogOnSession Parameter Set Is Used Whenever The User Who Invokes The CmdLet Have The Required Access Rights In
                The SQL DataBase And Users Windows LogOnSession Have To Be Used Against The SQL Connection.
            </para>
            <para type="description">
                -- UserAndPass Parameter Set Is Used Whenever Have To Be Provided UserName And Password In Clear Text To The
                Function Parameter, In Order They To Be Included In The SQL Connection String (The SQL Connection Object). The
                Connection String Is Created In A Way That The Extraction Of The Password From The SCQL Connection Object Over The
                Network Is Not Possible.
            </para>
            <para type="description">
                -- Credentials Parameter Set Is Used Whenever Credential Custom Object Is Provided To The SQL Connection Object.
                The Function Require A [System.Management.Automation.PSCredential] Object, Which Is Converted Within The Function
                To [System.Data.SqlClient.SqlCredential] Object Which Is Prerequisite To Establish SQL Connection. In That Way No
                Password In Clear Text Is Provided To The Function.
            </para>
            <para type="description">
                Whenever It Is Specified A Collection Of Queries, Only One SQL Connection Will Be Open, And All The Queries Will
                Be Executed Within That SQL Session.
            </para>
            <list type="alertSet">
                <item>
                    <term> </term>
                    <description>
                        <para>AUTHOR: Svetoslav Nedyalkov Savov (svesavov@hotmail.com)</para>
                        <para>THIS CODE IS MADE AVAILABLE AS IS, WITHOUT WARRANTY OF ANY KIND. THE ENTIRE RISK</para>
                        <para>OF THE USE OR THE RESULTS FROM THE USE OF THIS CODE REMAINS WITH THE USER.</para>
                        <para></para>
                        <para></para>
                        <para></para>
                    </description>
                </item>
            </list>
            <example>
              <code>
                [System.Data.DataSet[]]$arrDataSet = Invoke-SnsSQLQuery -Query "Query" -Computer "computer.contoso.com" `
                -DatabaseName "DatabaseName";
              </code>
              <para></para>
            </example>
            <example>
              <code>
                [System.Data.DataSet[]]$arrDataSet = Invoke-SnsSQLQuery -Query "Query" -Computer "computer.contoso.com" `
                -DatabaseName "DatabaseName" -UserName "JohnSmith" -Password "Pa$$w0rd";
              </code>
              <para></para>
            </example>
            <example>
              <code>
                [System.Data.DataSet[]]$arrDataSet = Invoke-SnsSQLQuery -Query "Query" -Computer "computer.contoso.com" `
                -DatabaseName "DatabaseName" -Credentials $objPsCredentials;
              </code>
              <para></para>
            </example>
            <example>
              <code>
                [System.Data.DataSet[]]$arrDataSet = Invoke-SnsSQLQuery -Query "Query" -Computer "computer.contoso.com" `
                -DatabaseName "DatabaseName" -Credentials(Get-Credential);
              </code>
              <para></para>
            </example>
            </summary>
            <para type="link" uri="https://github.com/svesavov/SnsPsModule"> svesavov / SnsPsModule - </para>
            <para type="link" uri="https://www.powershellgallery.com/packages/SnsPsModule/"> PowerShell Gallery - </para>
            <para type="link" uri="https://www.linkedin.com/in/svetoslavsavov"> Svetoslav Savov on LinkedIn - </para>
        </member>
        <member name="P:SnsPsModule.InvokeSnsSQLQuery.Query">
            <summary>
            <para type="description">Specifies SQL Query</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.InvokeSnsSQLQuery.Computer">
            <summary>
            <para type="description">Specifies A SQL Server And SQL Instance In Format:</para>
            <para type="description">"DataBase Server"</para>
            <para type="description">"DataBase Server"\"DataBase Instance"</para>
            <para type="description">"DataBase Server","Port Number"</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.InvokeSnsSQLQuery.DatabaseName">
            <summary>
            <para type="description">Specifies A DataBase Name</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.InvokeSnsSQLQuery.UserName">
            <summary>
            <para type="description">Specifies A UserName In Clear Text</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.InvokeSnsSQLQuery.Password">
            <summary>
            <para type="description">Specifies A Password In Clear Text</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.InvokeSnsSQLQuery.Credentials">
            <summary>
            <para type="description">Specifies A [System.Management.Automation.PSCredential] Object</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.InvokeSnsSQLQuery.UseCurrentLogOnSession">
            <summary>
            <para type="description">Specifies That Current User LogOnSession Will Be Used For The SQL Connection</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.InvokeSnsSQLQuery.TimeOut">
            <summary>
            <para type="description">Sets The Wait Time In Seconds Before Terminating The Attempt To Execute A Command And Generating An Error</para>
            </summary>
        </member>
        <member name="T:SnsPsModule.MoveSnsAdObject">
            <summary>
            <para type="synopsis">
                This CmdLet Moves Active Directory Objects Into New Active Directory Parent Container.
            </para>
            <para type="description">
                This CmdLet Moves Active Directory Objects Into New Active Directory Parent Container.
            </para>
            <list type="alertSet">
                <item>
                    <term> </term>
                    <description>
                        <para>AUTHOR: Svetoslav Nedyalkov Savov (svesavov@hotmail.com)</para>
                        <para>THIS CODE IS MADE AVAILABLE AS IS, WITHOUT WARRANTY OF ANY KIND. THE ENTIRE RISK</para>
                        <para>OF THE USE OR THE RESULTS FROM THE USE OF THIS CODE REMAINS WITH THE USER.</para>
                        <para></para>
                        <para></para>
                        <para></para>
                    </description>
                </item>
            </list>
            <example>
              <code>
                [SnsPsModule.SnsAdMoveObject]$objResult = Move-SnsAdObject `
                -DistinguishedName "CN=John Smith,OU=Users,DC=contoso,DC=com" `
                -DomainController "DC01.contoso.com" -DestinationUnitDN "OU=Disabled Users,DC=contoso,DC=com";
              </code>
              <para></para>
            </example>
            </summary>
            <para type="link" uri="https://github.com/svesavov/SnsPsModule"> svesavov / SnsPsModule - </para>
            <para type="link" uri="https://www.powershellgallery.com/packages/SnsPsModule/"> PowerShell Gallery - </para>
            <para type="link" uri="https://www.linkedin.com/in/svetoslavsavov"> Svetoslav Savov on LinkedIn - </para>
        </member>
        <member name="P:SnsPsModule.MoveSnsAdObject.DistinguishedName">
            <summary>
            <para type="description">Specifies DistinguishedName Of The AD Object Which Have To Be Moved.</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.MoveSnsAdObject.DomainController">
            <summary>
            <para type="description">Specifies A Domain Controller Fully Qualified Domain Name.</para>
            <para type="description">If Not Provided The CmdLet Will Be Run Against Random Domain Controller.</para>
            <para type="description">Delays Caused By The Domain Replication Have To Be Considered If Omitted.</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.MoveSnsAdObject.DestinationUnitDN">
            <summary>
            <para type="description">
                Specifies The DistinguishedName Name Of The Of The Destination Active Directory Parent Container.
            </para>
            </summary>
        </member>
        <member name="P:SnsPsModule.MoveSnsAdObject.Attempts">
            <summary>
            <para type="description">
                Specifies The Number Of Attempts That Have To Be Made To Move The Specified Object Into The New Parent
                Container.
            </para>
            </summary>
        </member>
        <member name="T:SnsPsModule.NewSnsChart">
            <summary>
            <para type="synopsis">
                This CmdLet Creates A Chart Object Based On The Specified Statistical Or Raw Data And Exports It On A File.
            </para>
            <para type="description">
                This CmdLet Creates A Chart Object Based On The Specified Statistical Or Raw Data And Exports It On A File.
            </para>
            <para type="description">
                PowerShell Is A Scripting Language And It Does Not Need To Have Any Kind Of Forms, And Objects Used Within Forms
                As The Command Need No Graphical Interface. The PowerShell Is Intended To Be Used As A Language For Writing Of
                Automation Scripts. Sometime Those Automation Scripts Produce Reports Which Need To Be Sent On Emails. If The
                Reports Needs To Be Provided To Other System That Visualize The Output Is Better The Data To Be Inserted In A
                DataBase And The Other systems To Access The Data From There Or To Be Exported On .CSV Files And Provided To Those
                Systems. Whenever The Reports Data Have To Be Send On Humans Over Emails Or Some Other Channels Is Better The Data
                To Be Presented In Charts Than To Be Provided Data On .CSV Files Which Are Not Human Friendly. Here Comes The Need
                Of This CmdLet To Present Information On Human Friendly Way In Form Of Charts And Exports Those Charts On Common
                Recognizable Picture Formats, So They To Be Easily Embedded Into Emails, Webpages And etc. The .NET Chart Objects
                Normally Can Be Used Within Graphical In Interface Forms.
            </para>
            <para type="description">
                The CmdLet Has Two Parameter Sets:
            </para>
            <para type="description">
                Parameter Set "InputObject": In This Parameter Set The CmdLet Requires To Be Specified Already Processed
                Statistical Data And The CmdLet Will Prepare Only The Chart Visualization. The Input Objects Have To Be From Type
                PSObject Or PSCustomObject, Where The Property Names Have To Be The Values In The AxisX And The Values Within
                Those Properties Have To Be The AxisY Values. The CmdLet Requires The AxisY Values To Be From Type Double Or To Be
                Possible Explicit Casting To Type Double. If You Are Running The CmdLet In PowerShell 5 And Above, The Input
                Tables Can Be HashTables And The PowerShell Natively Will Convert Them To PSObject Type. However The HashTables Do
                Not Keep Track Of The Pairs Order Which Might Lead To Unexpected Results As For Example The Dots On AxisX To Be
                Not Properly Ordered. In This Parameter Set The User Have Greater Control On The Chart Visualization. For More
                Details Refer To Parameters Section Of This Document.
            </para>
            <para type="description">
                Parameter Set "RawData": In This Parameter The CmdLet Will Require A Collection Of Type PSObject Or PSCustomObject
                With The RawData Which Have To Be Analyzed. The CmdLet Have Basic Analyze Functionalities. In This Parameter Set
                The CmdLet Will Require To Be Specified The Column In The RawData Which Have The Values That Identifies The Data
                Series (The Lines In The Chart), To Be Specified The Column Which Identifies The AxisX Values, And The Column That
                Will Be Used To Calculate The AxisY Values. It Might Sound Complicated But Giving An Example Will Clarify It. For
                Example If We Have A Collection With Objects That Have Properties "Severity", "Date" And "Message" We Can Specify
                To The CmdLet To Use The Column "Severity" As "SeriesColumn" Which Will Make Different Series (Lines Or Bar
                Series) For Each Value Present In The Column "Severity". For Example A Line For "Information Event" A Line For
                "Warning" And A Line For "Error". Then We Specify The Property / Column "Date" As "AxisXColumn" And The Produced
                Chart Will Have Bars Or Dots In A Line For Each Of The Dates Present In The "Date" Column. Then We Specify The
                Property / Column "Message" As "AxisYColumn" And The CmdLet Will Make Lines / Bars For With The Counts Of
                Information, Warning And Error Events For Each Date. The CmdLet Can Only Count The Occurrences Of The Values In
                The Specified Column "Messages". Whenever Average, Total Or Some Other Statistical Processing Is Needed The,
                Processing Have To Happen Outside The CmdLet And The Processed Data Have To Be Provided With "InputObject"
                Parameter Set.
            </para>
            <para type="description">
                The "RawData" Parameter Set Is Limited From Visualization Options. For Example As The Data Series Are Taken From A
                Column In The Raw Data. The Colors for The Data Series Cannot Be Specified By The User. Normally The User Have To
                Analyze The Data To Identify The Data Series And To Specify Color For Each Data Serie. Which Makes No Sense To
                Leave The CmdLet To Analyze The Data. From That Perspective Other Than Automatic Color Generation Is Pointless In
                "RawData" Parameter Set, Because Without Analyze In Advance Is Not Clear The Number Of Series, Therefore The
                Number Of Colors That Are Needed. More Over It Might Happen That Some Of The Series Are Not Present Within The
                RawData, And Their Series To Be Not Created. For Example It Might Happen The Raw Data To Not Have Any "Error"
                Events Which Will Create A Chart Without Line For The Errors, Then The Specified Colors Will Not Match The Number
                Of Data Series. For More Details About Which Visualization Options Are Available In "RawData" Parameter Set Please
                Refer To Parameter Section Of This Document.
            </para>
            <list type="alertSet">
                <item>
                    <term> Warning </term>
                    <description>
                        <para>
                            Whenever The Values In AxisX Are System.DateTime Objects The User Have To Pay Extra Attention As Unexpected
                            Results Might Be Produced, Because Of The Precision Of The Struct. For Example Wanted Chart With Type Column
                            And Columns Per Day, And The Produced Chart To Have Columns For Each Millisecond With Height 1. In That Case
                            The Raw Data Have To Be Modified In Advance In A Way So The Values In AxisX To Be Grouped As Per The Desired
                            Output. For Example If The Chart Have To Present The Data Per Day, The Information About The Hours, Minutes,
                            Seconds And etc. Have To Be Stripped Out From The Date Column.
                        </para>
                        <para></para>
                        <para></para>
                        <para></para>
                    </description>
                </item>
                <item>
                    <term> AUTHOR </term>
                    <description>
                        <para>AUTHOR: Svetoslav Nedyalkov Savov (svesavov@hotmail.com)</para>
                        <para>THIS CODE IS MADE AVAILABLE AS IS, WITHOUT WARRANTY OF ANY KIND. THE ENTIRE RISK</para>
                        <para>OF THE USE OR THE RESULTS FROM THE USE OF THIS CODE REMAINS WITH THE USER.</para>
                        <para></para>
                        <para></para>
                        <para></para>
                    </description>
                </item>
            </list>
            <example>
              <code>
                $rrInput | New-SnsChart -Path 'C:\Chart.png' -ChartType "Column" -AxisXTitle "Date" -AxisYTitle "Number Of Events" -LegendTitle "Event Severity" -SeriesColor @("Green", "Yellow", "Red") -SeriesTitle @("Information Events", "Warning Events", "Error Events") -Title "Events Per Date";
              </code>
              <para></para>
            </example>
            <example>
              <code>
                New-SnsChart -Path 'C:\Chart.jpg'-ChartType "Column" -RawData $rrInput -AxisXColumn "Date" -AxisYColumn "Message" -SeriesColumn "Severity" -AxisXTitle "Date" -AxisYTitle "Number Of Events" -LegendTitle "Event Severity" -Enable3D -Title "Events Per Date";
              </code>
              <para></para>
            </example>
            </summary>
            <para type="link" uri="https://github.com/svesavov/SnsPsModule"> svesavov / SnsPsModule - </para>
            <para type="link" uri="https://www.powershellgallery.com/packages/SnsPsModule/"> PowerShell Gallery - </para>
            <para type="link" uri="https://www.linkedin.com/in/svetoslavsavov"> Svetoslav Savov on LinkedIn - </para>
        </member>
        <member name="P:SnsPsModule.NewSnsChart.Path">
            <summary>
            <para type="description">Specifies The File Where The Chart Will Be Exported</para>
            <para type="description">The File Extension Must Be Either ".png" Or ".jpg"</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.NewSnsChart.Title">
            <summary>
            <para type="description">Specifies The Chart Title</para>
            <para type="description">If Omitted The Chart Will Have No Title</para>
            <para type="description">And The Chart Area Will Expand To The High Of The File</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.NewSnsChart.LegendTitle">
            <summary>
            <para type="description">Specifies Legend Title</para>
            <para type="description">If Omitted The Chart Legend Will Be Not Created</para>
            <para type="description">And The Chart Area Will Expand To The Width Of The File</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.NewSnsChart.AxisXTitle">
            <summary>
            <para type="description">Specifies Axis "X" Title</para>
            <para type="description">Axis "X" Is The Horizontal Axis</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.NewSnsChart.AxisYTitle">
            <summary>
            <para type="description">Specifies Axis "Y" Title</para>
            <para type="description">Axis "Y" Is The Vertical Axis</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.NewSnsChart.Enable3D">
            <summary>
            <para type="description">Specifies To Create 3 Dimensional Chart</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.NewSnsChart.AddTotal">
            <summary>
            <para type="description">Specifies To Add Sum Of The Serie Value In The Serie Entry Into The Chart Legend</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.NewSnsChart.ChartType">
            <summary>
            <para type="description">Specifies Chart Type</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.NewSnsChart.PassThru">
            <summary>
            <para type="description">Specifies To The CmdLet To Revert A String Object</para>
            <para type="description">The Reverted String Is The Full Absolute UNC File Path To The Created Picture File</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.NewSnsChart.InputObject">
            <summary>
            <para type="description">Specifies Data Series Which Have To Be Visualized</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.NewSnsChart.SeriesTitle">
            <summary>
            <para type="description">Specifies Titles Of The Specified Data Series</para>
            <para type="description">When Specified The Number And Order Of Titles Must Match The Number And Order Of The Input Objects</para>
            <para type="description">If Omitted The Chart Legend Will Be Not Created</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.NewSnsChart.SeriesColor">
            <summary>
            <para type="description">Specifies Colors Of The Series</para>
            <para type="description">When Specified The Number And Order Of Colors Must Match The Number And Order Of The Input Objects</para>
            <para type="description">The Named Colors Can Be Specified By Their Name</para>
            <para type="description">For More Details: https://bit.ly/2LDgXSw </para>
            <para type="description">If Omitted Will Be Used Random Colors From Bright Pastel Palette</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.NewSnsChart.RawData">
            <summary>
            <para type="description">Specifies The RawData Which Have To Be Analized And Visualized</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.NewSnsChart.SeriesColumn">
            <summary>
            <para type="description">Specifies A Column Within The RawData Which Identifies The Data Series</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.NewSnsChart.AxisXColumn">
            <summary>
            <para type="description">Specifies A Column Within The RawData Which Identifies The AxisX Values</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.NewSnsChart.AxisYColumn">
            <summary>
            <para type="description">Specifies A Column Within The RawData Which Identifies The Values Which Have To Be Analyzed / Counted And Output Set As AxisY Values</para>
            </summary>
        </member>
        <member name="T:SnsPsModule.NewSnsHtmlHeader">
            <summary>
            <para type="synopsis">
                CmdLet Designed To Prepare XHTML 1.0 Strict Web Page Header And CSS3 Template
            </para>
            <para type="description">
                CmdLet Designed To Prepare XHTML 1.0 Strict Web Page Header And CSS3 Template
            </para>
            <para type="description">
                Depending Of The Specified Parameters HTML Document Declaration Is Made As C# ASP.NET XHTML 1.0 Strict Document Or
                Normal XHTML 1.0 Strict HTML Document
            </para>
            <para type="description">
                In The HTML Header Section Are Prepared Place Holder Sections About ASP.NET C# Code Behind And JavaScript
                Functions Depending Of The Specified Parameters
            </para>
            <para type="description">
                The Paragraph Style With Class "Mail" Mimic Exactly The Outlook Font Font Size And Font Color For Replying And
                Forwarding Of Email Messages
            </para>
            <para type="description">
                The CmdLet Have Aliases CreateHtmlHeader And Create-HtmlHeader
            </para>
            <list type="alertSet">
                <item>
                    <term> </term>
                    <description>
                        <para>AUTHOR: Svetoslav Nedyalkov Savov (svesavov@hotmail.com)</para>
                        <para>THIS CODE IS MADE AVAILABLE AS IS, WITHOUT WARRANTY OF ANY KIND. THE ENTIRE RISK</para>
                        <para>OF THE USE OR THE RESULTS FROM THE USE OF THIS CODE REMAINS WITH THE USER.</para>
                        <para></para>
                        <para></para>
                        <para></para>
                    </description>
                </item>
            </list>
            <example>
              <code>
                [System.String]$strMessageBody = New-SnsHtmlHeader -ScriptName "$($Configuration.ScriptName)";
              </code>
              <para></para>
            </example>
            <example>
              <code>
                [System.String]$strMessageBody = New-SnsHtmlHeader -ScriptName "$($Configuration.ScriptName)" `
                -CssLink "Styles.css" -CssFilePath "C:\inetpub\wwwroot\Styles.css"
              </code>
              <para></para>
            </example>
            </summary>
            <para type="link" uri="https://github.com/svesavov/SnsPsModule"> svesavov / SnsPsModule - </para>
            <para type="link" uri="https://www.powershellgallery.com/packages/SnsPsModule/"> PowerShell Gallery - </para>
            <para type="link" uri="https://www.linkedin.com/in/svetoslavsavov"> Svetoslav Savov on LinkedIn - </para>
        </member>
        <member name="P:SnsPsModule.NewSnsHtmlHeader.ScriptName">
            <summary>
            <para type="description">Specifies A Script Name</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.NewSnsHtmlHeader.Author">
            <summary>
            <para type="description">Specifies Author Of The HTML Document</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.NewSnsHtmlHeader.Doctype">
            <summary>
            <para type="description">Specifies HTML Doctype</para>
            <para type="description">Values: XHTML1.0Strict, HTML4.01Strict And XHTML1.0Transitional</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.NewSnsHtmlHeader.AutoRefresh">
            <summary>
            <para type="description">Specifies The HTML AutoRefresh Time Interval In Seconds</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.NewSnsHtmlHeader.CssFilePath">
            <summary>
            <para type="description">Specifies To The CmdLet To Export The CSS3 Style On A File</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.NewSnsHtmlHeader.CssLink">
            <summary>
            <para type="description">Specifies To The CmdLet To Create A Link To The External CSS3 Style File</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.NewSnsHtmlHeader.InnerCss">
            <summary>
            <para type="description">Specifies To The CmdLet To Include The CSS3 Style Inside The HTML Document Header</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.NewSnsHtmlHeader.UsingAspx">
            <summary>
            <para type="description">Specifies To The CmdLet To Declare The Web Document As C# ASP.NET One And Insert C# Code Behind Place Holder</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.NewSnsHtmlHeader.UsingJavaScript">
            <summary>
            <para type="description">Specifies To The CmdLet To Insert JavaScript Place Holder</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.NewSnsHtmlHeader.AdditionalStyle">
            <summary>
            <para type="description">Specifies To The CmdLet Any Additional CSS3 Style</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.NewSnsHtmlHeader.CascadeTableRows">
            <summary>
            <para type="description">Specifies To Make Table Rows In Different Color Zebra Like</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.NewSnsHtmlHeader.MouseHover">
            <summary>
            <para type="description">Specifies To Table Cells To Change Their Color On Mouse Hover</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.NewSnsHtmlHeader.RedEmail">
            <summary>
            <para type="description">Specifies To Be Changed The Background Color And Font Color To Red Ones</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.NewSnsHtmlHeader.LinksInheritStyle">
            <summary>
            <para type="description">Specifies To Table Cells To Change Their Color On Mouse Hover</para>
            </summary>
        </member>
        <member name="T:SnsPsModule.NewSnsPassword">
            <summary>
            <para type="synopsis">
                CmdLet Designed As Command Line Password Generator.
            </para>
            <para type="description">
                CmdLet Designed As Command Line Password Generator.
            </para>
            <para type="description">
                The Password Generators Available In Internet Does Not Have Command Line Interface. Scripts Related With User
                Provisioning Needs Command Line Interface To Generate Passwords. It Is Required To Avoid Setting A Generic
                Passwords To The New Users. Generic Passwords Approach Definitely Will Lead To Situation When All The Users Will
                Know The Generic Password And Might Log With The New Users Accounts. Using Password Generator Will Ensure That
                Each New User Have Unique Password.
            </para>
            <para type="description">
                The Generated Password Meets The Following Requirements:
            </para>
            <para type="description">
                - At Least One Random Special Character At Random Position - The List With The Special Characters Is Generated
                Using The Special Characters Available In US Keyboard Layout.
            </para>
            <para type="description">
                - At Least One Random Digit At Random Position.
            </para>
            <para type="description">
                - At Least One Random English Lower Letter At Random Position.
            </para>
            <para type="description">
                - At Least One Random English Capital Letter At Random Position - Except "O" and "I" To Be Not Mistaken
                Respectively With "0" And Lower "L".
            </para>
            <para type="description">
                - The Remaining Characters Are Generated Random From The Lists From Above.
            </para>
            <list type="alertSet">
                <item>
                    <term> </term>
                    <description>
                        <para>AUTHOR: Svetoslav Nedyalkov Savov (svesavov@hotmail.com)</para>
                        <para>THIS CODE IS MADE AVAILABLE AS IS, WITHOUT WARRANTY OF ANY KIND. THE ENTIRE RISK</para>
                        <para>OF THE USE OR THE RESULTS FROM THE USE OF THIS CODE REMAINS WITH THE USER.</para>
                        <para></para>
                        <para></para>
                        <para></para>
                    </description>
                </item>
            </list>
            <example>
              <code>
                [System.String]$Password = New-SnsPassword -PasswordLength 15;
              </code>
              <para></para>
            </example>
            </summary>
            <para type="link" uri="https://github.com/svesavov/SnsPsModule"> svesavov / SnsPsModule - </para>
            <para type="link" uri="https://www.powershellgallery.com/packages/SnsPsModule/"> PowerShell Gallery - </para>
            <para type="link" uri="https://www.linkedin.com/in/svetoslavsavov"> Svetoslav Savov on LinkedIn - </para>
        </member>
        <member name="P:SnsPsModule.NewSnsPassword.PasswordLength">
            <summary>
            <para type="description">Specifies The Required Password Length</para>
            <para type="description">If Omitted The CmdLet Will Generate Password With Length 20 Characters</para>
            <para type="description">If Specified Value Less Than 5 It Will Be Ignored</para>
            </summary>
        </member>
        <member name="T:SnsPsModule.NewSnsPieChart">
            <summary>
            <para type="synopsis">
                This CmdLet Creates A Chart Object Based On The Specified Statistical Or Raw Data And Exports It On A File.
            </para>
            <para type="description">
                This CmdLet Creates A Chart Object Based On The Specified Statistical Or Raw Data And Exports It On A File.
            </para>
            <para type="description">
                PowerShell Is A Scripting Language And It Does Not Need To Have Any Kind Of Forms, And Objects Used Within Forms
                As The Command Need No Graphical Interface. The PowerShell Is Intended To Be Used As A Language For Writing Of
                Automation Scripts. Sometime Those Automation Scripts Produce Reports Which Need To Be Sent On Emails. If The
                Reports Needs To Be Provided To Other System That Visualize The Output Is Better The Data To Be Inserted In A
                DataBase And The Other systems To Access The Data From There Or To Be Exported On .CSV Files And Provided To Those
                Systems. Whenever The Reports Data Have To Be Send On Humans Over Emails Or Some Other Channels Is Better The Data
                To Be Presented In Charts Than To Be Provided Data On .CSV Files Which Are Not Human Friendly. Here Comes The Need
                Of This CmdLet To Present Information On Human Friendly Way In Form Of Charts And Exports Those Charts On Common
                Recognizable Picture Formats, So They To Be Easily Embedded Into Emails, Webpages And etc. The .NET Chart Objects
                Normally Can Be Used Within Graphical In Interface Forms.
            </para>
            <para type="description">
                The CmdLet Has Two Parameter Sets:
            </para>
            <para type="description">
                Parameter Set "InputObject": In This Parameter Set The CmdLet Requires To Be Specified Already Processed
                Statistical Data And The CmdLet Will Prepare Only The Chart Visualization. The Input Objects Have To Be From Type
                PSObject Or PSCustomObject, Where The Property Names Have To Be The Values In The AxisX And The Values Within
                Those Properties Have To Be The AxisY Values. The CmdLet Requires The AxisY Values To Be From Type Double Or To Be
                Possible Explicit Casting To Type Double. If You Are Running The CmdLet In PowerShell 5 And Above, The Input
                Tables Can Be HashTables And The PowerShell Natively Will Convert Them To PSObject Type. However The HashTables Do
                Not Keep Track Of The Pairs Order Which Might Lead To Unexpected Results As For Example The Dots On AxisX To Be
                Not Properly Ordered. In This Parameter Set The User Have Greater Control On The Chart Visualization. For More
                Details Refer To Parameters Section Of This Document.
            </para>
            <para type="description">
                Parameter Set "RawData": In This Parameter The CmdLet Will Require A Collection Of Type PSObject Or PSCustomObject
                With The RawData Which Have To Be Analyzed. The CmdLet Have Basic Analyze Functionalities. In This Parameter Set
                The CmdLet Will Require To Be Specified The Column In The RawData Which Have The Values That Identifies The Data
                Series (The Lines In The Chart), To Be Specified The Column Which Identifies The AxisX Values, And The Column That
                Will Be Used To Calculate The AxisY Values. It Might Sound Complicated But Giving An Example Will Clarify It. For
                Example If We Have A Collection With Objects That Have Properties "Severity", "Date" And "Message" We Can Specify
                To The CmdLet To Use The Column "Severity" As "SeriesColumn" Which Will Make Different Series (Lines Or Bar
                Series) For Each Value Present In The Column "Severity". For Example A Line For "Information Event" A Line For
                "Warning" And A Line For "Error". Then We Specify The Property / Column "Date" As "AxisXColumn" And The Produced
                Chart Will Have Bars Or Dots In A Line For Each Of The Dates Present In The "Date" Column. Then We Specify The
                Property / Column "Message" As "AxisYColumn" And The CmdLet Will Make Lines / Bars For With The Counts Of
                Information, Warning And Error Events For Each Date. The CmdLet Can Only Count The Occurrences Of The Values In
                The Specified Column "Messages". Whenever Average, Total Or Some Other Statistical Processing Is Needed The,
                Processing Have To Happen Outside The CmdLet And The Processed Data Have To Be Provided With "InputObject"
                Parameter Set.
            </para>
            <para type="description">
                The "RawData" Parameter Set Is Limited From Visualization Options. For Example As The Data Series Are Taken From A
                Column In The Raw Data. The Colors for The Data Series Cannot Be Specified By The User. Normally The User Have To
                Analyze The Data To Identify The Data Series And To Specify Color For Each Data Serie. Which Makes No Sense To
                Leave The CmdLet To Analyze The Data. From That Perspective Other Than Automatic Color Generation Is Pointless In
                "RawData" Parameter Set, Because Without Analyze In Advance Is Not Clear The Number Of Series, Therefore The
                Number Of Colors That Are Needed. More Over It Might Happen That Some Of The Series Are Not Present Within The
                RawData, And Their Series To Be Not Created. For Example It Might Happen The Raw Data To Not Have Any "Error"
                Events Which Will Create A Chart Without Line For The Errors, Then The Specified Colors Will Not Match The Number
                Of Data Series. For More Details About Which Visualization Options Are Available In "RawData" Parameter Set Please
                Refer To Parameter Section Of This Document.
            </para>
            <list type="alertSet">
                <item>
                    <term> Warning </term>
                    <description>
                        <para>
                            Whenever The Values In AxisX Are System.DateTime Objects The User Have To Pay Extra Attention As Unexpected
                            Results Might Be Produced, Because Of The Precision Of The Struct. For Example Wanted Chart With Type Column
                            And Columns Per Day, And The Produced Chart To Have Columns For Each Millisecond With Height 1. In That Case
                            The Raw Data Have To Be Modified In Advance In A Way So The Values In AxisX To Be Grouped As Per The Desired
                            Output. For Example If The Chart Have To Present The Data Per Day, The Information About The Hours, Minutes,
                            Seconds And etc. Have To Be Stripped Out From The Date Column.
                        </para>
                        <para></para>
                        <para></para>
                        <para></para>
                    </description>
                </item>
                <item>
                    <term> AUTHOR </term>
                    <description>
                        <para>AUTHOR: Svetoslav Nedyalkov Savov (svesavov@hotmail.com)</para>
                        <para>THIS CODE IS MADE AVAILABLE AS IS, WITHOUT WARRANTY OF ANY KIND. THE ENTIRE RISK</para>
                        <para>OF THE USE OR THE RESULTS FROM THE USE OF THIS CODE REMAINS WITH THE USER.</para>
                        <para></para>
                        <para></para>
                        <para></para>
                    </description>
                </item>
            </list>
            <example>
              <code>
                $rrInput | New-SnsChart -Path 'C:\Chart.png' -ChartType "Column" -AxisXTitle "Date" -AxisYTitle "Number Of Events" -LegendTitle "Event Severity" -SeriesColor @("Green", "Yellow", "Red") -SeriesTitle @("Information Events", "Warning Events", "Error Events") -Title "Events Per Date";
              </code>
              <para></para>
            </example>
            <example>
              <code>
                New-SnsChart -Path 'C:\Chart.jpg'-ChartType "Column" -RawData $rrInput -AxisXColumn "Date" -AxisYColumn "Message" -SeriesColumn "Severity" -AxisXTitle "Date" -AxisYTitle "Number Of Events" -LegendTitle "Event Severity" -Enable3D -Title "Events Per Date";
              </code>
              <para></para>
            </example>
            </summary>
            <para type="link" uri="https://github.com/svesavov/SnsPsModule"> svesavov / SnsPsModule - </para>
            <para type="link" uri="https://www.powershellgallery.com/packages/SnsPsModule/"> PowerShell Gallery - </para>
            <para type="link" uri="https://www.linkedin.com/in/svetoslavsavov"> Svetoslav Savov on LinkedIn - </para>
        </member>
        <member name="P:SnsPsModule.NewSnsPieChart.Path">
            <summary>
            <para type="description">Specifies The File Where The Chart Will Be Exported</para>
            <para type="description">The File Extension Must Be Either ".png" Or ".jpg"</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.NewSnsPieChart.Title">
            <summary>
            <para type="description">Specifies The Chart Title</para>
            <para type="description">If Omitted The Chart Will Have No Title</para>
            <para type="description">And The Chart Area Will Expand To The High Of The File</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.NewSnsPieChart.LegendTitle">
            <summary>
            <para type="description">Specifies Legend Title</para>
            <para type="description">If Omitted The Chart Legend Will Be Not Created</para>
            <para type="description">And The Chart Area Will Expand To The Width Of The File</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.NewSnsPieChart.Enable3D">
            <summary>
            <para type="description">Specifies To Create 3 Dimensional Chart</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.NewSnsPieChart.AddYValue">
            <summary>
            <para type="description">Specifies To Add The Y Values To The Serie Entry In The Chart Legend</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.NewSnsPieChart.ShowPercent">
            <summary>
            <para type="description">Specifies To Display The Percentage As Text In The Chart Area</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.NewSnsPieChart.PassThru">
            <summary>
            <para type="description">Specifies To The CmdLet To Revert A String Object</para>
            <para type="description">The Reverted String Is The Full Absolute UNC File Path To The Created Picture File</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.NewSnsPieChart.InputObject">
            <summary>
            <para type="description">Specifies Data Serie Which Have To Be Visualized</para>
            <para type="description">It Can Be Only One Serie Because Of The Pie Chart Specific</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.NewSnsPieChart.EntryColor">
            <summary>
            <para type="description">Specifies Colors Of The Segments In The Pie Chart</para>
            <para type="description">When Specified The Number And Order Of Colors Must Match The Number And Order Of The InputObject Properties</para>
            <para type="description">The Named Colors Can Be Specified By Their Name</para>
            <para type="description">For More Details: https://bit.ly/2LDgXSw </para>
            <para type="description">If Omitted Will Be Used Random Colors From Bright Pastel Palette</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.NewSnsPieChart.RawData">
            <summary>
            <para type="description">Specifies The RawData Which Have To Be Analized And Visualized</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.NewSnsPieChart.AxisXColumn">
            <summary>
            <para type="description">Specifies A Column Within The RawData Which Identifies The AxisX Values</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.NewSnsPieChart.AxisYColumn">
            <summary>
            <para type="description">Specifies A Column Within The RawData Which Identifies The Values Which Have To Be Analyzed / Counted And Output Set As AxisY Values</para>
            </summary>
        </member>
        <member name="T:SnsPsModule.NewSnsZipArchive">
            <summary>
            <para type="synopsis">
                This CmdLet Provides Command Line Interface (CLI) To The Built Into MS Windows ZIP Functionality.
            </para>
            <para type="description">
                This CmdLet Provides Command Line Interface (CLI) To The Built Into MS Windows ZIP Functionality.
            </para>
            <para type="description">
                Installing Of 3rd Party Archiving Applications And Assigning ZIP File Extension To Them Might Disable The Built
                Into MS Windows Archiving Functionality Irreversibly.
                This Will Cause This CmdLet To Stop Working.
            </para>
            <list type="alertSet">
                <item>
                    <term> </term>
                    <description>
                        <para>AUTHOR: Svetoslav Nedyalkov Savov (svesavov@hotmail.com)</para>
                        <para>THIS CODE IS MADE AVAILABLE AS IS, WITHOUT WARRANTY OF ANY KIND. THE ENTIRE RISK</para>
                        <para>OF THE USE OR THE RESULTS FROM THE USE OF THIS CODE REMAINS WITH THE USER.</para>
                        <para></para>
                        <para></para>
                        <para></para>
                    </description>
                </item>
            </list>
            <example>
              <code>
                [System.String[]]$arrZipName = New-SnsZipArchive -Path 'C:\New folder';
              </code>
              <para></para>
            </example>
            <example>
              <code>
                [System.String[]]$arrZipName = New-SnsZipArchive -Path 'C:\Test1txt', 'C:\Test1txt';
              </code>
              <para></para>
            </example>
            </summary>
            <para type="link" uri="https://github.com/svesavov/SnsPsModule"> svesavov / SnsPsModule - </para>
            <para type="link" uri="https://www.powershellgallery.com/packages/SnsPsModule/"> PowerShell Gallery - </para>
            <para type="link" uri="https://www.linkedin.com/in/svetoslavsavov"> Svetoslav Savov on LinkedIn - </para>
        </member>
        <member name="P:SnsPsModule.NewSnsZipArchive.Path">
            <summary>
            <para type="description">Specifies The Full Absolute UNC File Or Folder Path</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.NewSnsZipArchive.PassThru">
            <summary>
            <para type="description">Specifies To The CmdLet To Revert A String Object</para>
            <para type="description">The Reverted Object Is The Full Absolute UNC File Path To The Created ZIP File</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.NewSnsZipArchive.Force">
            <summary>
            <para type="description">Specifies To The CmdLet To Force Overwrite Of Any Existing ZIP File</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.NewSnsZipArchive.Keep">
            <summary>
            <para type="description">Specifies To The CmdLet To Preserve The Original Item</para>
            <para type="description">Copy The Item Inside The ZIP File Instead Of Moving It</para>
            </summary>
        </member>
        <member name="T:SnsPsModule.RemoveSnsAdGroupMember">
            <summary>
             <para type="synopsis">
                 CmdLet Designed To Remove Active Directory Group Members.
             </para>
             <para type="description">
                 CmdLet Designed To Remove Active Directory Group Members.
             </para>
             <para type="description">
                 The CmdLet Was Developed In A Way To Be Not Affected By The ADSI Adapter Limitations Related With The Maximum
                 Number Of Reverted Values In Multivalued Attribute. The Restriction Depends From The Active Directory Schema And
                 Forest Level. Because Of Those Maximum Displayed Values Restriction, The Normal Way Of Modifying Those Attributes
                 Is Not Applicable. This Especially Applies Whenever We Need To Have Domain Groups With Number Of Members Greater
                 Than The Restrictions.
             </para>
             <para type="description">
                 In Order To Avoid The Limitation The CmdLet Takes The Reverse Approach And Verifies Whether The Specified Object
                 Is Member Of The Specified Group Instead Verifying Group "members" Attribute. Although It Is Common The Active
                 Directory Domains To Have Groups With Large Number Of Members, It Is Not So Common To Have Users Members Of Large
                 Number Of Groups. This Might Cause Issues With Users Access Tokens And Prevent Users From LogOn Or Accessing The
                 Resources They Need. From That Perspective The CmdLet Removes The Specified AD Object From "member" Attribute Of
                 The Specified Group As It Is The Only Way This To Be Done, But Verifies The Removal Using "memberOf" Relative
                 Attribute Of The Specified Member Object.
             </para>
             <para type="description">
                 Since The CmdLet Perform Actions On The Active Directory Group Object And Verifies The Action Using The Active
                 Directory Member Objects The Both Queries Have To Be Executed Against The Same Domain Controller. From That
                 Perspective Usage Of Single Domain Controller Is Mandatory To Avoid Issues Caused By Active Directory Replication
                 Delays. However Specifying One Is Not Mandatory. Whenever Domain Controller Is Not Specified The CmdLet Will Try
                 To Get The Closest Global Catalog Domain Controller And Will Execute All The Queries Against It. Whenever The
                 CmdLet Is Used To Update The Membership Of A Group With Multiple Users, Domain Controller Shall Be Specified,
                 Because The CmdLet Might Decide To Use Different Domain Controllers For Each Of The Users And Produce AD
                 Replication Collision Issues.
             </para>
             <list type="alertSet">
                 <item>
                     <term> </term>
                     <description>
                         <para>AUTHOR: Svetoslav Nedyalkov Savov (svesavov@hotmail.com)</para>
                         <para>THIS CODE IS MADE AVAILABLE AS IS, WITHOUT WARRANTY OF ANY KIND. THE ENTIRE RISK</para>
                         <para>OF THE USE OR THE RESULTS FROM THE USE OF THIS CODE REMAINS WITH THE USER.</para>
                         <para></para>
                         <para></para>
                         <para></para>
                     </description>
                 </item>
             </list>
             <example>
               <code>
                 [SnsPsModule.SnsRemoveAdGroupMember]$objResult = Remove-SnsAdGroupMember `
                 -GroupDistinguishedName "CN=Group01,OU=Groups,DC=contoso,DC=com" `
                 -MemberDistinguishedName "CN=John Smith,OU=Users,DC=contoso,DC=com";
               </code>
               <para></para>
             </example>
             </summary>
             <para type="link" uri="https://github.com/svesavov/SnsPsModule"> svesavov / SnsPsModule - </para>
             <para type="link" uri="https://www.powershellgallery.com/packages/SnsPsModule/"> PowerShell Gallery - </para>
             <para type="link" uri="https://www.linkedin.com/in/svetoslavsavov"> Svetoslav Savov on LinkedIn - </para>
        </member>
        <member name="P:SnsPsModule.RemoveSnsAdGroupMember.MemberDistinguishedName">
            <summary>
            <para type="description">Specifies DistinguishedName Of An AD Object Which Have To Be Removed From Membership Of The Specified Group.</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.RemoveSnsAdGroupMember.GroupDistinguishedName">
            <summary>
            <para type="description">Specifies DistinguishedName Of An AD Group Which Membership Have To Be Modified.</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.RemoveSnsAdGroupMember.DomainController">
            <summary>
            <para type="description">Specifies A Domain Controller Fully Qualified Domain Name.</para>
            <para type="description">If Not Provided The CmdLet Will Be Run Against Random Domain Controller.</para>
            <para type="description">Delays Caused By The Domain Replication Have To Be Considered If Omitted.</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.RemoveSnsAdGroupMember.Attempts">
            <summary>
            <para type="description">
                Specifies The Number Of Attempts That Have To Be Made To Set The Specified Values To The Specified AD
                Attribute.
            </para>
            </summary>
        </member>
        <member name="T:SnsPsModule.RemoveSnsAdMultiValuedStringAttributeValue">
            <summary>
            <para type="synopsis">
                CmdLet Designed To Remove The Specified Values From Active Directory Object Multi Valued Attribute Preserving
                The Remaining Ones.
            </para>
            <para type="description">
                CmdLet Designed To Remove The Specified Values From Active Directory Object Multi Valued Attribute Preserving The
                Remaining Ones.
            </para>
            <para type="description">
                The CmdLet Have Two Parameter Sets:
            </para>
            <para type="description">
                --ConnectionString - The AD Object Which Have To Be Modified Have To Be Provided In LDAP Connection String Form.
                Since The CmdLet Modifies And Verifies Attribute Values, It Is Required That Modifications And Validations Are
                Made Against One DomainController. Otherwise The Change Can Be Done On One DomainController And The Verification
                On Another. Which Will Cause Fail Positive In The Verification, Because The Change Can Be Replicated On The Second
                DomainController After A While. From That Perspective The CmdLet Does Accept Only LDAP Connection Strings Only
                With Included Valid Domain Controller.
            </para>
            <para type="description">
                --DistinguishedName - The AD Object Which Have To Be Modified Have To Be Provided With Its DistinguishedName.
                Additionally A DomainController Have To Be Specified To The CmdLet. In Case The DomainController Is Not Specified
                The CmdLet Will Take The Users Logon Server And Will Assign It As Domain Controller.
            </para>
            <list type="alertSet">
                <item>
                    <term> </term>
                    <description>
                        <para>AUTHOR: Svetoslav Nedyalkov Savov (svesavov@hotmail.com)</para>
                        <para>THIS CODE IS MADE AVAILABLE AS IS, WITHOUT WARRANTY OF ANY KIND. THE ENTIRE RISK</para>
                        <para>OF THE USE OR THE RESULTS FROM THE USE OF THIS CODE REMAINS WITH THE USER.</para>
                        <para></para>
                        <para></para>
                        <para></para>
                    </description>
                </item>
            </list>
            <example>
              <code>
                [SnsPsModule.SnsAdMultiValuedString]$objResult = Remove-SnsAdMultiValuedStringAttributeValue `
                -ConnectionString "LDAP://DC01.contoso.com/CN=Group01,OU=Groups,DC=contoso,DC=com" `
                -Attribute "member" -Value "CN=John Smith,OU=Users,DC=contoso,DC=com";
              </code>
              <para></para>
            </example>
            <example>
              <code>
                [SnsPsModule.SnsAdMultiValuedString]$objResult = Remove-SnsAdMultiValuedStringAttributeValue `
                -DistinguishedName "CN=Group01,OU=Groups,DC=contoso,DC=com" `
                -Attribute "member" -Value "CN=John Smith,OU=Users,DC=contoso,DC=com";
              </code>
              <para></para>
            </example>
            </summary>
            <para type="link" uri="https://github.com/svesavov/SnsPsModule"> svesavov / SnsPsModule - </para>
            <para type="link" uri="https://www.powershellgallery.com/packages/SnsPsModule/"> PowerShell Gallery - </para>
            <para type="link" uri="https://www.linkedin.com/in/svetoslavsavov"> Svetoslav Savov on LinkedIn - </para>
        </member>
        <member name="P:SnsPsModule.RemoveSnsAdMultiValuedStringAttributeValue.ConnectionString">
            <summary>
            <para type="description">Specifies An AD Connection String To The Ad Object Which Attribute Have to Be Modified.</para>
            <para type="description">For More Details Refer To MS Documentation https://bit.ly/2RGUIsO </para>
            <para type="description">For The Purpose Of The CmdLet Only The Syntax With DomainController Is Allowed.</para>
            <para type="description">Example: LDAP://DC01.contoso.com/CN=John Smith,OU=Users,DC=contoso,DC=com</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.RemoveSnsAdMultiValuedStringAttributeValue.DistinguishedName">
            <summary>
            <para type="description">Specifies DistinguishedName Of The AD Object Which Have To Be Modified.</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.RemoveSnsAdMultiValuedStringAttributeValue.DomainController">
            <summary>
            <para type="description">Specifies A Domain Controller Fully Qualified Domain Name.</para>
            <para type="description">If Not Provided The CmdLet Will Be Run Against Random Domain Controller.</para>
            <para type="description">Delays Caused By The Domain Replication Have To Be Considered If Omitted.</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.RemoveSnsAdMultiValuedStringAttributeValue.Attribute">
            <summary>
            <para type="description">Specifies The Attribute Name Of The Attribute Which Have To Be Set As It Is Shown In ADSIEdit.</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.RemoveSnsAdMultiValuedStringAttributeValue.Value">
            <summary>
            <para type="description">Specifies The Values Which Have To Be Removed From The Specified Attribute.</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.RemoveSnsAdMultiValuedStringAttributeValue.Attempts">
            <summary>
            <para type="description">
                Specifies The Number Of Attempts That Have To Be Made To Set The Specified Values To The Specified AD
                Attribute.
            </para>
            </summary>
        </member>
        <member name="T:SnsPsModule.RemoveSnsAdObject">
            <summary>
            <para type="synopsis">
                This CmdLet Deletes Specified Active Directory Object.
            </para>
            <para type="description">
                This CmdLet Deletes Specified Active Directory Object.
            </para>
            <list type="alertSet">
                <item>
                    <term> </term>
                    <description>
                        <para>AUTHOR: Svetoslav Nedyalkov Savov (svesavov@hotmail.com)</para>
                        <para>THIS CODE IS MADE AVAILABLE AS IS, WITHOUT WARRANTY OF ANY KIND. THE ENTIRE RISK</para>
                        <para>OF THE USE OR THE RESULTS FROM THE USE OF THIS CODE REMAINS WITH THE USER.</para>
                        <para></para>
                        <para></para>
                        <para></para>
                    </description>
                </item>
            </list>
            <example>
              <code>
                [SnsPsModule.SnsRemoveAdObject]$objResult = Remove-SnsAdObject `
                -DistinguishedName "CN=John Smith,OU=Users,DC=contoso,DC=com" `
                -DomainController "DC01.contoso.com";
              </code>
              <para></para>
            </example>
            </summary>
            <para type="link" uri="https://github.com/svesavov/SnsPsModule"> svesavov / SnsPsModule - </para>
            <para type="link" uri="https://www.powershellgallery.com/packages/SnsPsModule/"> PowerShell Gallery - </para>
            <para type="link" uri="https://www.linkedin.com/in/svetoslavsavov"> Svetoslav Savov on LinkedIn - </para>
        </member>
        <member name="P:SnsPsModule.RemoveSnsAdObject.DistinguishedName">
            <summary>
            <para type="description">Specifies The DistinguishedName Of The AD Object Which Have To Be Deleted.</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.RemoveSnsAdObject.DomainController">
            <summary>
            <para type="description">Specifies A Domain Controller Fully Qualified Domain Name.</para>
            <para type="description">If Not Provided The CmdLet Will Be Run Against Random Domain Controller.</para>
            <para type="description">Delays Caused By The Domain Replication Have To Be Considered If Omitted.</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.RemoveSnsAdObject.Attempts">
            <summary>
            <para type="description">Specifies The Number Of Attempts That Have To Be Made To Delete The Specified Object.</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.RemoveSnsAdObject.Force">
            <summary>
            <para type="description">Remove "Protect object from accidental deletion" flag before the object deletion.</para>
            </summary>
        </member>
        <member name="T:SnsPsModule.RenameSnsAdObject">
            <summary>
            <para type="synopsis">
                This CmdLet Renames Specified Active Directory Object With Specified NewName.
            </para>
            <para type="description">
                This CmdLet Renames Specified Active Directory Object With Specified NewName.
            </para>
            <list type="alertSet">
                <item>
                    <term> </term>
                    <description>
                        <para>AUTHOR: Svetoslav Nedyalkov Savov (svesavov@hotmail.com)</para>
                        <para>THIS CODE IS MADE AVAILABLE AS IS, WITHOUT WARRANTY OF ANY KIND. THE ENTIRE RISK</para>
                        <para>OF THE USE OR THE RESULTS FROM THE USE OF THIS CODE REMAINS WITH THE USER.</para>
                        <para></para>
                        <para></para>
                        <para></para>
                    </description>
                </item>
            </list>
            <example>
              <code>
                [SnsPsModule.SnsRenameAdObject]$objResult = Move-SnsAdObject `
                -DistinguishedName "CN=John Smith,OU=Users,DC=contoso,DC=com" `
                -DomainController "DC01.contoso.com" -NewName "John Mainard Smith";
              </code>
              <para></para>
            </example>
            </summary>
            <para type="link" uri="https://github.com/svesavov/SnsPsModule"> svesavov / SnsPsModule - </para>
            <para type="link" uri="https://www.powershellgallery.com/packages/SnsPsModule/"> PowerShell Gallery - </para>
            <para type="link" uri="https://www.linkedin.com/in/svetoslavsavov"> Svetoslav Savov on LinkedIn - </para>
        </member>
        <member name="P:SnsPsModule.RenameSnsAdObject.DistinguishedName">
            <summary>
            <para type="description">Specifies The DistinguishedName Of The AD Object Which Have To Be Renamed.</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.RenameSnsAdObject.DomainController">
            <summary>
            <para type="description">Specifies A Domain Controller Fully Qualified Domain Name.</para>
            <para type="description">If Not Provided The CmdLet Will Be Run Against Random Domain Controller.</para>
            <para type="description">Delays Caused By The Domain Replication Have To Be Considered If Omitted.</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.RenameSnsAdObject.NewName">
            <summary>
            <para type="description">Specifies The New Name Of The Of The Specified Active Directory Object.</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.RenameSnsAdObject.Attempts">
            <summary>
            <para type="description">Specifies The Number Of Attempts That Have To Be Made To Rename The Specified Object.</para>
            </summary>
        </member>
        <member name="T:SnsPsModule.ResetSnsAdPassword">
            <summary>
            <para type="synopsis">
                CmdLet Designed To Reset The Password Of Active Directory User Account.
            </para>
            <para type="description">
                 CmdLet Designed To Reset The Password Of Active Directory User Account.
            </para>
            <para type="description">
                The CmdLet Have Four Parameter Sets:
            </para>
            <para type="description">
                --ConnectionStringPassword - The AD Object Which Have To Be Modified Have To Be Provided In LDAP Connection String
                Form. Since The CmdLet Modifies And Verifies Attribute Values, It Is Required That Modifications And Validations
                Are Made Against One DomainController. Otherwise The Change Can Be Done On One DomainController And The
                Verification On Another. Which Will Cause Fail Positive In The Verification, Because The Change Can Be Replicated
                On The Second DomainController After A While. From That Perspective The CmdLet Does Accept Only LDAP Connection
                Strings Only With Included Valid Domain Controller. In This Parameter Set Have To Be Specified The New Password.
            </para>
            <para type="description">
                --ConnectionStringAutoGenerate - In This Parameter Set Have To Be Provided The ADSPath (ConnectionString) And Have
                To Be Specified The To The CmdLet To Auto Generate A Password With Specified Length. In This Parameter Set The
                AutoGeneratePasswordWithLength Parameter Cannot Be Omitted.
            </para>
            <para type="description">
                --DistinguishedNamePassword - The AD Object Which Have To Be Modified Have To Be Provided With Its
                DistinguishedName. Additionally A DomainController Have To Be Specified To The CmdLet. In Case The
                DomainController Is Not Specified The CmdLet Will Take The Users Logon Server And Will Assign It As Domain
                Controller. The Parameter Set Requires The New Password To Be Specified.
            </para>
            <para type="description">
                --DistinguishedNameAutoGenerate - In This Parameter Set Have To Be Specified The Users DistinguishedName, The
                Domain Controller Against Which The LDAP Queries Will Be Run And The Required Password Length For Auto Password
                Generation. In This Set The AutoGeneratePasswordWithLength Parameter Can Be Omitted. In That Case The CmdLet Will
                Auto Generate Password With 20 Characters.
            </para>
            <list type="alertSet">
                <item>
                    <term> </term>
                    <description>
                        <para>AUTHOR: Svetoslav Nedyalkov Savov (svesavov@hotmail.com)</para>
                        <para>THIS CODE IS MADE AVAILABLE AS IS, WITHOUT WARRANTY OF ANY KIND. THE ENTIRE RISK</para>
                        <para>OF THE USE OR THE RESULTS FROM THE USE OF THIS CODE REMAINS WITH THE USER.</para>
                        <para></para>
                        <para></para>
                        <para></para>
                    </description>
                </item>
            </list>
            <example>
              <code>
                [SnsPsModule.SnsAdPassReset]$objResult = Set-SnsAdStringAttribute `
                -ConnectionString "LDAP://DC01.contoso.com/CN=JohnSmith,OU=Users,DC=contoso,DC=com" `
                -Password "Pa$$w0rd" -UserMustChangePassword;
              </code>
              <para></para>
            </example>
            <example>
              <code>
                [SnsPsModule.SnsAdPassReset]$objResult = Set-SnsAdStringAttribute `
                -ConnectionString "LDAP://DC01.contoso.com/CN=JohnSmith,OU=Users,DC=contoso,DC=com" `
                -AutoGeneratePasswordWithLength 20 -UserMustChangePassword;
              </code>
              <para></para>
            </example>
            <example>
              <code>
                [SnsPsModule.SnsAdPassReset]$objResult = Set-SnsAdStringAttribute `
                -DistinguishedName "CN=JohnSmith,OU=Users,DC=contoso,DC=com" `
                -Password "Pa$$w0rd" -UserMustChangePassword;
              </code>
              <para></para>
            </example>
            <example>
              <code>
                [SnsPsModule.SnsAdPassReset]$objResult = Set-SnsAdStringAttribute `
                -DistinguishedName "CN=JohnSmith,OU=Users,DC=contoso,DC=com" `
                -UserMustChangePassword;
              </code>
              <para></para>
            </example>
            </summary>
            <para type="link" uri="https://github.com/svesavov/SnsPsModule"> svesavov / SnsPsModule - </para>
            <para type="link" uri="https://www.powershellgallery.com/packages/SnsPsModule/"> PowerShell Gallery - </para>
            <para type="link" uri="https://www.linkedin.com/in/svetoslavsavov"> Svetoslav Savov on LinkedIn - </para>
        </member>
        <member name="P:SnsPsModule.ResetSnsAdPassword.ConnectionString">
            <summary>
            <para type="description">Specifies An AD Connection String To The Ad Object Which Attribute Have to Be Modified.</para>
            <para type="description">For More Details Refer To MS Documentation https://bit.ly/2RGUIsO </para>
            <para type="description">For The Purpose Of The CmdLet Only The Syntax With DomainController Is Allowed.</para>
            <para type="description">Example: LDAP://DC01.contoso.com/CN=John Smith,OU=Users,DC=contoso,DC=com</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.ResetSnsAdPassword.DistinguishedName">
            <summary>
            <para type="description">Specifies DistinguishedName Of The AD Object Which Have To Be Modified.</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.ResetSnsAdPassword.DomainController">
            <summary>
            <para type="description">Specifies A Domain Controller Fully Qualified Domain Name.</para>
            <para type="description">If Not Provided The CmdLet Will Be Run Against Random Domain Controller.</para>
            <para type="description">Delays Caused By The Domain Replication Have To Be Considered If Omitted.</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.ResetSnsAdPassword.Password">
            <summary>
            <para type="description">Specifies The Password Which Have To Be Set To The User.</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.ResetSnsAdPassword.AutoGeneratePasswordWithLength">
            <summary>
            <para type="description">Specifies To Auto Generate A Password With The Specified Length.</para>
            <para type="description">If Omitted The Autogenerated Password Will Have Length 20 Characters.</para>
            <para type="description">The Generated Password Will Be Reverted As Property Of The Output Object.</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.ResetSnsAdPassword.Attempts">
            <summary>
            <para type="description">
                Specifies The Number Of Attempts That Have To Be Made To Set The Specified Values To The Specified AD
                Attribute.
            </para>
            </summary>
        </member>
        <member name="P:SnsPsModule.ResetSnsAdPassword.UserMustChangePassword">
            <summary>
            <para type="description">
                Specifies To Set "User must change password at next logon" Flag.
            </para>
            </summary>
        </member>
        <member name="T:SnsPsModule.SearchSnsAdObject">
            <summary>
            <para type="synopsis">
                CmdLet Designed To Perform LDAP Search Against The AD Using .NET ADSI Adapter Provider.
            </para>
            <para type="description">
                CmdLet Designed To Perform LDAP Search Against The AD Using .NET ADSI Adapter Provider.
            </para>
            <para type="description">
                Depending Of The CmdLet Arguments Are Possible 6 Scenarios:
            </para>
            <para type="description">
                --Scenario 1 - Specified DcSearch Switch Specified Search Root And Specified Domain Controller.
                The Search Is Performed Against The Domain Partition Of The Specified Domain Controller Using The Default LDAP
                Ports.
                The Search Is Restricted To The Specified Organizational Unit Or Container Or Domain.
                This Is The Most Recommended Scenario For Using Of This CmdLet.
            </para>
            <para type="description">
                --Scenario 2 - Specified DcSearch Switch Not Specified Search Root And Specified Domain Controller.
                The Search Is Performed Against The Domain Partition Of The Specified Domain Controller Using The Default LDAP
                Ports.
                However Because The Search Root Is Mandatory For .NET The CmdLet Will Assume As A DcSearch Root The Root Of The
                Logged On Domain And Will Specify It On Users Behalf.
                This Option Shall Be Used With Extra Care In MultiDomain Forests Where The Logged With In Account Might Be In
                Different Domain And The Search To Not Revert The Desired Results.
            </para>
            <para type="description">
                --Scenario 3 - Specified DcSearch Switch Specified Search Root And Not Specified Domain Controller
                The Search Is Performed Against The Domain Partition Of An Automatically Chosen by .NET Domain Controller Within
                The Domain Used In The Specified SearchRoot Using The Default LDAP Ports.
                The Search Is Restricted To The Specified Organizational Unit Or Container Or Domain.
                Use This Scenario With Extra Care As It Might Lead To Unexpected Results Especially If You Try To Read Recent
                Changes Not AD Replicated Yet.
            </para>
            <para type="description">
                --Scenario 4 - Specified DcSearch Switch Not Specified Search Root And Not Specified Domain Controller.
                Normally This Scenario Is Not Allowed However Because The DcSearch Is Specified The Function Assume That The
                Search Have To Be Executed Against The Root Of The Currently Logged In Domain And Specify The Domain As SearchRoot
                On Users Behalf.
                The Remaining Considerations Are The Same Like The DcSearch Without Specified Domain Controller.
            </para>
            <para type="description">
                --Scenario 5 - Specified GcSearch Switch Not Specified Search Root And Specified Domain Controller.
                The Search Is Performed Against The Global Catalog Partition Of The Specified Domain Controller Using The Default
                Global Catalog Ports.
                The Search Is Not Restricted To Any Domain Or Organizational Unit Or Container.
                If The Specified Domain Controller Is Not Global Catalog Server Then The Function Will Revert No Results Nor Error.
                Use The Global Catalog Search With Extra Care It Looks Very Easy And Obvious Choice But It Might Revert Unexpected
                Results Especially If The LDAP Query Contains Clauses Related With AD Attributes Not Present In The Global Catalog
                Partition.
                Additionally It Does Not Revert Properties Not Present In The Global Catalog Partition Even If They Are Specified
                This Might Lead To Wrong Impression That Those Properties Are Empty.
                It Is Always Preferable To Get A List With All The Domains And Domain Controllers Responsible For The
                Corresponding Domains And Loop The Search Against Each Of Them Instead Using Global Catalog Search.
                Another Known Issue Is when The Specified Global Catalog Server For The LDAP Search Temporary Have No Connection
                To Some Of The Domains Then The Objects From That Domains Are Filtered.
                Another Known Issue Is When The Specified Global Catalog Server Is Very Remote From Some Of The Domains The
                Results Are Reverted Extremely Slow.
            </para>
            <para type="description">
                --Scenario 6 - Specified ConnectionString.
                In This Scenario The User May Specify Whatever Connection String Want Which In General Will Need To Apply To Some
                Of The Scenarios Above.
                The CmdLet Intendedly Was Created To Be Not Capable To Search Windows Local Security Object With The
                ConnectionString Parameter It Is Still Possible.
            </para>
            <list type="alertSet">
                <item>
                    <term> </term>
                    <description>
                        <para>AUTHOR: Svetoslav Nedyalkov Savov (svesavov@hotmail.com)</para>
                        <para>THIS CODE IS MADE AVAILABLE AS IS, WITHOUT WARRANTY OF ANY KIND. THE ENTIRE RISK</para>
                        <para>OF THE USE OR THE RESULTS FROM THE USE OF THIS CODE REMAINS WITH THE USER.</para>
                        <para></para>
                        <para></para>
                        <para></para>
                    </description>
                </item>
            </list>
            <example>
              <code>
                [System.Object[]]$arrSearchResults = Search-SnsAdObject -LdapQuery $ldapQuery -DcSearch `
                -DomainController "server1.contoso.com" -SearchRoot "DC=contoso,DC=com";
              </code>
              <para>
                Run LDAP Query Against The Domain Partition Of Specified Domain Controller With Specified SearchRoot.
              </para>
              <para></para>
            </example>
            <example>
              <code>
                [System.Object[]]$arrSearchResults = Search-SnsAdObject -LdapQuery $ldapQuery -DcSearch `
                -DomainController "server1.contoso.com";
              </code>
              <para>
                Run LDAP Query Against The Domain Partition Of Specified Domain Controller Against The Current Domain.
              </para>
              <para></para>
            </example>
            <example>
              <code>
                [System.Object[]]$arrSearchResults = Search-SnsAdObject -LdapQuery $ldapQuery -DcSearch `
                -SearchRoot "DC=contoso,DC=com";
              </code>
              <para>
                Run LDAP Query Against The Domain Partition Of Random Domain Controller With Specified SearchRoot.
              </para>
              <para></para>
            </example>
            <example>
              <code>
                [System.Object[]]$arrSearchResults = Search-SnsAdObject -LdapQuery $ldapQuery -DcSearch;
              </code>
              <para>
                Run LDAP Query Against The Domain Partition Of Random Domain Controller Against The Current Domain.
              </para>
              <para></para>
            </example>
            <example>
              <code>
                [System.Object[]]$arrSearchResults = Search-SnsAdObject -LdapQuery $ldapQuery -GcSearch `
                -DomainController "server1.contoso.com";
              </code>
              <para>
                Run LDAP Query Against The Global Partition Of Specified Domain Controller.
              </para>
              <para></para>
            </example>
            <example>
              <code>
                [System.Object[]]$arrSearchResults = Search-SnsAdObject -LdapQuery $ldapQuery `
                -ConnectionString "LDAP://DC=contoso,DC=com";
              </code>
              <para>
                Run LDAP Query Using The Specified Connection.
              </para>
              <para></para>
            </example>
            </summary>
            <para type="link" uri="https://github.com/svesavov/SnsPsModule"> svesavov / SnsPsModule - </para>
            <para type="link" uri="https://www.powershellgallery.com/packages/SnsPsModule/"> PowerShell Gallery - </para>
            <para type="link" uri="https://www.linkedin.com/in/svetoslavsavov"> Svetoslav Savov on LinkedIn - </para>
        </member>
        <member name="P:SnsPsModule.SearchSnsAdObject.LdapQuery">
            <summary>
            <para type="description">Specifies The LDAP Query</para>
            <para type="description">The Query Must Comply With The Official Microsoft Recommendations https://bit.ly/2RFdUr2 </para>
            </summary>
        </member>
        <member name="P:SnsPsModule.SearchSnsAdObject.GcSearch">
            <summary>
            <para type="description">Specifies To The CmdLet To Execute Provided LDAP Query Against The Global Catalog Partition</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.SearchSnsAdObject.DcSearch">
            <summary>
            <para type="description">Specifies To The CmdLet To Execute Provided LDAP Query Against The Domain Partition</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.SearchSnsAdObject.SearchRoot">
            <summary>
            <para type="description">Specifies A Root Organizational Unit For The LDAP Search</para>
            <para type="description">If Not Provided The LDAP Query Will Be Run Against The Current Domain</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.SearchSnsAdObject.DomainController">
            <summary>
            <para type="description">Specifies A Domain Controller Fully Qualified Domain Name</para>
            <para type="description">If Not Provided The LDAP Query Will Be Run Against Random Domain Controller</para>
            <para type="description">Delays Caused By The Domain Replication Have To Be Considered If Omitted</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.SearchSnsAdObject.ConnectionString">
            <summary>
            <para type="description">Specifies An AD Connection String</para>
            <para type="description">For More Details Refer To MS Documentation https://bit.ly/2RGUIsO </para>
            </summary>
        </member>
        <member name="P:SnsPsModule.SearchSnsAdObject.ReturnProperties">
            <summary>
            <para type="description">Specifies Which AD Properties Will Be Included In The Output Search Object</para>
            <para type="description">!!! Use It With Extra Care !!!</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.SearchSnsAdObject.ResultSize">
            <summary>
            <para type="description">Specifies A Maximum Number Of Object That AD Search Reverts</para>
            <para type="description">The Restrictions From AD Side Are From 1 To 1000</para>
            <para type="description">If Not Specified Will Be Used The Threshold Specified In The AD</para>
            </summary>
        </member>
        <member name="T:SnsPsModule.SetSnsAdBooleanAttribute">
            <summary>
            <para type="synopsis">
                CmdLet Designed To Set The Specified Boolean Value On Specified Active Directory Attribute Of Specified Active
                Directory Object.
            </para>
            <para type="description">
                CmdLet Designed To Set The Specified Boolean Value On Specified Active Directory Attribute Of Specified Active
                Directory Object.
            </para>
            <para type="description">
                The CmdLet Have Two Parameter Sets:
            </para>
            <para type="description">
                --ConnectionString - The AD Object Which Have To Be Modified Have To Be Provided In LDAP Connection String Form.
                Since The CmdLet Modifies And Verifies Attribute Values, It Is Required That Modifications And Validations Are
                Made Against One DomainController. Otherwise The Change Can Be Done On One DomainController And The Verification
                On Another. Which Will Cause Fail Positive In The Verification, Because The Change Can Be Replicated On The Second
                DomainController After A While. From That Perspective The CmdLet Does Accept Only LDAP Connection Strings Only
                With Included Valid Domain Controller.
            </para>
            <para type="description">
                --DistinguishedName - The AD Object Which Have To Be Modified Have To Be Provided With Its DistinguishedName.
                Additionally A DomainController Have To Be Specified To The CmdLet. In Case The DomainController Is Not Specified
                The CmdLet Will Take The Users Logon Server And Will Assign It As Domain Controller.
            </para>
            <list type="alertSet">
                <item>
                    <term> </term>
                    <description>
                        <para>AUTHOR: Svetoslav Nedyalkov Savov (svesavov@hotmail.com)</para>
                        <para>THIS CODE IS MADE AVAILABLE AS IS, WITHOUT WARRANTY OF ANY KIND. THE ENTIRE RISK</para>
                        <para>OF THE USE OR THE RESULTS FROM THE USE OF THIS CODE REMAINS WITH THE USER.</para>
                        <para></para>
                        <para></para>
                        <para></para>
                    </description>
                </item>
            </list>
            <example>
              <code>
                [SnsPsModule.SnsAdBoolean]$objResult = Set-SnsAdBooleanAttribute `
                -ConnectionString "LDAP://DC01.contoso.com/CN=Group01,OU=Groups,DC=contoso,DC=com" `
                -Attribute "msExchHideFromAddressLists" -Value $true;
              </code>
              <para></para>
            </example>
            <example>
              <code>
                [SnsPsModule.SnsAdBoolean]$objResult = Set-SnsAdBooleanAttribute `
                -DistinguishedName "CN=Group01,OU=Groups,DC=contoso,DC=com" `
                -Attribute "msExchHideFromAddressLists" -Value $true;
              </code>
              <para></para>
            </example>
            </summary>
            <para type="link" uri="https://github.com/svesavov/SnsPsModule"> svesavov / SnsPsModule - </para>
            <para type="link" uri="https://www.powershellgallery.com/packages/SnsPsModule/"> PowerShell Gallery - </para>
            <para type="link" uri="https://www.linkedin.com/in/svetoslavsavov"> Svetoslav Savov on LinkedIn - </para>
        </member>
        <member name="P:SnsPsModule.SetSnsAdBooleanAttribute.ConnectionString">
            <summary>
            <para type="description">Specifies An AD Connection String To The Ad Object Which Attribute Have to Be Modified.</para>
            <para type="description">For More Details Refer To MS Documentation https://bit.ly/2RGUIsO </para>
            <para type="description">For The Purpose Of The CmdLet Only The Syntax With DomainController Is Allowed.</para>
            <para type="description">Example: LDAP://DC01.contoso.com/CN=John Smith,OU=Users,DC=contoso,DC=com</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.SetSnsAdBooleanAttribute.DistinguishedName">
            <summary>
            <para type="description">Specifies DistinguishedName Of The AD Object Which Have To Be Modified.</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.SetSnsAdBooleanAttribute.DomainController">
            <summary>
            <para type="description">Specifies A Domain Controller Fully Qualified Domain Name.</para>
            <para type="description">If Not Provided The CmdLet Will Be Run Against Random Domain Controller.</para>
            <para type="description">Delays Caused By The Domain Replication Have To Be Considered If Omitted.</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.SetSnsAdBooleanAttribute.Attribute">
            <summary>
            <para type="description">Specifies The Attribute Name Of The Attribute Which Have To Be Set As It Is Shown In ADSIEdit.</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.SetSnsAdBooleanAttribute.Value">
            <summary>
            <para type="description">Specifies The Value Which Have To Be Set On The Specified AD Attribute.</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.SetSnsAdBooleanAttribute.Attempts">
            <summary>
            <para type="description">
                Specifies The Number Of Attempts That Have To Be Made To Set The Specified Values To The Specified AD
                Attribute.
            </para>
            </summary>
        </member>
        <member name="T:SnsPsModule.SetSnsAdByteAttribute">
            <summary>
            <para type="synopsis">
                CmdLet Designed To Set The Specified Byte[] Value On Specified Active Directory Attribute Of Specified Active
                Directory Object.
            </para>
            <para type="description">
                CmdLet Designed To Set The Specified Byte[] Value On Specified Active Directory Attribute Of Specified Active
                Directory Object.
            </para>
            <para type="description">
                The CmdLet Have Two Parameter Sets:
            </para>
            <para type="description">
                --ConnectionString - The AD Object Which Have To Be Modified Have To Be Provided In LDAP Connection String Form.
                Since The CmdLet Modifies And Verifies Attribute Values, It Is Required That Modifications And Validations Are
                Made Against One DomainController. Otherwise The Change Can Be Done On One DomainController And The Verification
                On Another. Which Will Cause Fail Positive In The Verification, Because The Change Can Be Replicated On The Second
                DomainController After A While. From That Perspective The CmdLet Does Accept Only LDAP Connection Strings Only
                With Included Valid Domain Controller.
            </para>
            <para type="description">
                --DistinguishedName - The AD Object Which Have To Be Modified Have To Be Provided With Its DistinguishedName.
                Additionally A DomainController Have To Be Specified To The CmdLet. In Case The DomainController Is Not Specified
                The CmdLet Will Take The Users Logon Server And Will Assign It As Domain Controller.
            </para>
            <list type="alertSet">
                <item>
                    <term> </term>
                    <description>
                        <para>AUTHOR: Svetoslav Nedyalkov Savov (svesavov@hotmail.com)</para>
                        <para>THIS CODE IS MADE AVAILABLE AS IS, WITHOUT WARRANTY OF ANY KIND. THE ENTIRE RISK</para>
                        <para>OF THE USE OR THE RESULTS FROM THE USE OF THIS CODE REMAINS WITH THE USER.</para>
                        <para></para>
                        <para></para>
                        <para></para>
                    </description>
                </item>
            </list>
            <example>
              <code>
                [SnsPsModule.SnsAdByte]$objResult = Set-SnsAdByteAttribute `
                -ConnectionString "LDAP://DC01.contoso.com/CN=John Smith,OU=Users,DC=contoso,DC=com" `
                -Attribute "mS-DS-ConsistencyGuid" -Value ([GUID]"6546398f-6416-4ac7-9857-9a3a2914edf1").ToByteArray();
              </code>
              <para></para>
            </example>
            <example>
              <code>
                [SnsPsModule.SnsAdByte]$objResult = Set-SnsAdByteAttribute `
                -DistinguishedName "CN=John Smith,OU=Users,DC=contoso,DC=com" `
                -Attribute "mS-DS-ConsistencyGuid" -Value ([GUID]"6546398f-6416-4ac7-9857-9a3a2914edf1").ToByteArray();
              </code>
              <para></para>
            </example>
            </summary>
            <para type="link" uri="https://github.com/svesavov/SnsPsModule"> svesavov / SnsPsModule - </para>
            <para type="link" uri="https://www.powershellgallery.com/packages/SnsPsModule/"> PowerShell Gallery - </para>
            <para type="link" uri="https://www.linkedin.com/in/svetoslavsavov"> Svetoslav Savov on LinkedIn - </para>
        </member>
        <member name="P:SnsPsModule.SetSnsAdByteAttribute.ConnectionString">
            <summary>
            <para type="description">Specifies An AD Connection String To The Ad Object Which Attribute Have to Be Modified.</para>
            <para type="description">For More Details Refer To MS Documentation https://bit.ly/2RGUIsO </para>
            <para type="description">For The Purpose Of The CmdLet Only The Syntax With DomainController Is Allowed.</para>
            <para type="description">Example: LDAP://DC01.contoso.com/CN=John Smith,OU=Users,DC=contoso,DC=com</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.SetSnsAdByteAttribute.DistinguishedName">
            <summary>
            <para type="description">Specifies DistinguishedName Of The AD Object Which Have To Be Modified.</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.SetSnsAdByteAttribute.DomainController">
            <summary>
            <para type="description">Specifies A Domain Controller Fully Qualified Domain Name.</para>
            <para type="description">If Not Provided The CmdLet Will Be Run Against Random Domain Controller.</para>
            <para type="description">Delays Caused By The Domain Replication Have To Be Considered If Omitted.</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.SetSnsAdByteAttribute.Attribute">
            <summary>
            <para type="description">Specifies The Attribute Name Of The Attribute Which Have To Be Set As It Is Shown In ADSIEdit.</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.SetSnsAdByteAttribute.Value">
            <summary>
            <para type="description">Specifies The Value Which Have To Be Set On The Specified AD Attribute.</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.SetSnsAdByteAttribute.Attempts">
            <summary>
            <para type="description">
                Specifies The Number Of Attempts That Have To Be Made To Set The Specified Values To The Specified AD
                Attribute.
            </para>
            </summary>
        </member>
        <member name="T:SnsPsModule.SetSnsAdIadsiLargeIntegerAttribute">
            <summary>
            <para type="synopsis">
                CmdLet Designed To Set The Specified Int64 Value On Specified Active Directory Attribute Of Specified Active
                Directory Object.
            </para>
            <para type="description">
                CmdLet Designed To Set The Specified Int64 Value On Specified Active Directory Attribute Of Specified Active
                Directory Object.
            </para>
            <para type="description">
                The CmdLet Have Two Parameter Sets:
            </para>
            <para type="description">
                --ConnectionString - The AD Object Which Have To Be Modified Have To Be Provided In LDAP Connection String Form.
                Since The CmdLet Modifies And Verifies Attribute Values, It Is Required That Modifications And Validations Are
                Made Against One DomainController. Otherwise The Change Can Be Done On One DomainController And The Verification
                On Another. Which Will Cause Fail Positive In The Verification, Because The Change Can Be Replicated On The Second
                DomainController After A While. From That Perspective The CmdLet Does Accept Only LDAP Connection Strings Only
                With Included Valid Domain Controller.
            </para>
            <para type="description">
                --DistinguishedName - The AD Object Which Have To Be Modified Have To Be Provided With Its DistinguishedName.
                Additionally A DomainController Have To Be Specified To The CmdLet. In Case The DomainController Is Not Specified
                The CmdLet Will Take The Users Logon Server And Will Assign It As Domain Controller.
            </para>
            <list type="alertSet">
                <item>
                    <term> </term>
                    <description>
                        <para>AUTHOR: Svetoslav Nedyalkov Savov (svesavov@hotmail.com)</para>
                        <para>THIS CODE IS MADE AVAILABLE AS IS, WITHOUT WARRANTY OF ANY KIND. THE ENTIRE RISK</para>
                        <para>OF THE USE OR THE RESULTS FROM THE USE OF THIS CODE REMAINS WITH THE USER.</para>
                        <para></para>
                        <para></para>
                        <para></para>
                    </description>
                </item>
            </list>
            <example>
              <code>
                [SnsPsModule.SnsAdIadsiLargeInteger]$objResult = Set-SnsAdIadsiLargeIntegerAttribute `
                -ConnectionString "LDAP://DC01.contoso.com/CN=John Smith,OU=Users,DC=contoso,DC=com" `
                -Attribute "msExchRecipientTypeDetails" -Value 2147483648;
              </code>
              <para></para>
            </example>
            <example>
              <code>
                [SnsPsModule.SnsAdIadsiLargeInteger]$objResult = Set-SnsAdIadsiLargeIntegerAttribute `
                -DistinguishedName "CN=John Smith,OU=Users,DC=contoso,DC=com" `
                -Attribute "msExchRecipientTypeDetails" -Value 2147483648;
              </code>
              <para></para>
            </example>
            </summary>
            <para type="link" uri="https://github.com/svesavov/SnsPsModule"> svesavov / SnsPsModule - </para>
            <para type="link" uri="https://www.powershellgallery.com/packages/SnsPsModule/"> PowerShell Gallery - </para>
            <para type="link" uri="https://www.linkedin.com/in/svetoslavsavov"> Svetoslav Savov on LinkedIn - </para>
        </member>
        <member name="P:SnsPsModule.SetSnsAdIadsiLargeIntegerAttribute.ConnectionString">
            <summary>
            <para type="description">Specifies An AD Connection String To The Ad Object Which Attribute Have to Be Modified.</para>
            <para type="description">For More Details Refer To MS Documentation https://bit.ly/2RGUIsO </para>
            <para type="description">For The Purpose Of The CmdLet Only The Syntax With DomainController Is Allowed.</para>
            <para type="description">Example: LDAP://DC01.contoso.com/CN=John Smith,OU=Users,DC=contoso,DC=com</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.SetSnsAdIadsiLargeIntegerAttribute.DistinguishedName">
            <summary>
            <para type="description">Specifies DistinguishedName Of The AD Object Which Have To Be Modified.</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.SetSnsAdIadsiLargeIntegerAttribute.DomainController">
            <summary>
            <para type="description">Specifies A Domain Controller Fully Qualified Domain Name.</para>
            <para type="description">If Not Provided The CmdLet Will Be Run Against Random Domain Controller.</para>
            <para type="description">Delays Caused By The Domain Replication Have To Be Considered If Omitted.</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.SetSnsAdIadsiLargeIntegerAttribute.Attribute">
            <summary>
            <para type="description">Specifies The Attribute Name Of The Attribute Which Have To Be Set As It Is Shown In ADSIEdit.</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.SetSnsAdIadsiLargeIntegerAttribute.Value">
            <summary>
            <para type="description">Specifies The Value Which Have To Be Set On The Specified AD Attribute.</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.SetSnsAdIadsiLargeIntegerAttribute.Attempts">
            <summary>
            <para type="description">
                Specifies The Number Of Attempts That Have To Be Made To Set The Specified Values To The Specified AD
                Attribute.
            </para>
            </summary>
        </member>
        <member name="T:SnsPsModule.SetSnsAdInt32Attribute">
            <summary>
            <para type="synopsis">
                CmdLet Designed To Set The Specified Int32 Value On Specified Active Directory Attribute Of Specified Active
                Directory Object.
            </para>
            <para type="description">
                CmdLet Designed To Set The Specified Int32 Value On Specified Active Directory Attribute Of Specified Active
                Directory Object.
            </para>
            <para type="description">
                The CmdLet Have Two Parameter Sets:
            </para>
            <para type="description">
                --ConnectionString - The AD Object Which Have To Be Modified Have To Be Provided In LDAP Connection String Form.
                Since The CmdLet Modifies And Verifies Attribute Values, It Is Required That Modifications And Validations Are
                Made Against One DomainController. Otherwise The Change Can Be Done On One DomainController And The Verification
                On Another. Which Will Cause Fail Positive In The Verification, Because The Change Can Be Replicated On The Second
                DomainController After A While. From That Perspective The CmdLet Does Accept Only LDAP Connection Strings Only
                With Included Valid Domain Controller.
            </para>
            <para type="description">
                --DistinguishedName - The AD Object Which Have To Be Modified Have To Be Provided With Its DistinguishedName.
                Additionally A DomainController Have To Be Specified To The CmdLet. In Case The DomainController Is Not Specified
                The CmdLet Will Take The Users Logon Server And Will Assign It As Domain Controller.
            </para>
            <list type="alertSet">
                <item>
                    <term> </term>
                    <description>
                        <para>AUTHOR: Svetoslav Nedyalkov Savov (svesavov@hotmail.com)</para>
                        <para>THIS CODE IS MADE AVAILABLE AS IS, WITHOUT WARRANTY OF ANY KIND. THE ENTIRE RISK</para>
                        <para>OF THE USE OR THE RESULTS FROM THE USE OF THIS CODE REMAINS WITH THE USER.</para>
                        <para></para>
                        <para></para>
                        <para></para>
                    </description>
                </item>
            </list>
            <example>
              <code>
                [SnsPsModule.SnsAdInt32]$objResult = Set-SnsAdInt32Attribute `
                -ConnectionString "LDAP://DC01.contoso.com/CN=John Smith,OU=Users,DC=contoso,DC=com" `
                -Attribute "userAccountControl" -Value 512;
              </code>
              <para></para>
            </example>
            <example>
              <code>
                [SnsPsModule.SnsAdInt32]$objResult = Set-SnsAdInt32Attribute `
                -DistinguishedName "CN=John Smith,OU=Users,DC=contoso,DC=com" `
                -Attribute "userAccountControl" -Value 512;
              </code>
              <para></para>
            </example>
            </summary>
            <para type="link" uri="https://github.com/svesavov/SnsPsModule"> svesavov / SnsPsModule - </para>
            <para type="link" uri="https://www.powershellgallery.com/packages/SnsPsModule/"> PowerShell Gallery - </para>
            <para type="link" uri="https://www.linkedin.com/in/svetoslavsavov"> Svetoslav Savov on LinkedIn - </para>
        </member>
        <member name="P:SnsPsModule.SetSnsAdInt32Attribute.ConnectionString">
            <summary>
            <para type="description">Specifies An AD Connection String To The Ad Object Which Attribute Have to Be Modified.</para>
            <para type="description">For More Details Refer To MS Documentation https://bit.ly/2RGUIsO </para>
            <para type="description">For The Purpose Of The CmdLet Only The Syntax With DomainController Is Allowed.</para>
            <para type="description">Example: LDAP://DC01.contoso.com/CN=John Smith,OU=Users,DC=contoso,DC=com</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.SetSnsAdInt32Attribute.DistinguishedName">
            <summary>
            <para type="description">Specifies DistinguishedName Of The AD Object Which Have To Be Modified.</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.SetSnsAdInt32Attribute.DomainController">
            <summary>
            <para type="description">Specifies A Domain Controller Fully Qualified Domain Name.</para>
            <para type="description">If Not Provided The CmdLet Will Be Run Against Random Domain Controller.</para>
            <para type="description">Delays Caused By The Domain Replication Have To Be Considered If Omitted.</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.SetSnsAdInt32Attribute.Attribute">
            <summary>
            <para type="description">Specifies The Attribute Name Of The Attribute Which Have To Be Set As It Is Shown In ADSIEdit.</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.SetSnsAdInt32Attribute.Value">
            <summary>
            <para type="description">Specifies The Value Which Have To Be Set On The Specified AD Attribute.</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.SetSnsAdInt32Attribute.Attempts">
            <summary>
            <para type="description">
                Specifies The Number Of Attempts That Have To Be Made To Set The Specified Values To The Specified AD
                Attribute.
            </para>
            </summary>
        </member>
        <member name="T:SnsPsModule.SetSnsAdMultiValuedStringAttribute">
            <summary>
            <para type="synopsis">
                CmdLet Designed To Set The Specified Values On Active Directory Object Multi Valued Attribute Removing Any
                Existing Values.
            </para>
            <para type="description">
                CmdLet Designed To Set The Specified Values On Active Directory Object Multi Valued Attribute Removing Any
                Existing Values.
            </para>
            <para type="description">
                The CmdLet Have Two Parameter Sets:
            </para>
            <para type="description">
                --ConnectionString - The AD Object Which Have To Be Modified Have To Be Provided In LDAP Connection String Form.
                Since The CmdLet Modifies And Verifies Attribute Values, It Is Required That Modifications And Validations Are
                Made Against One DomainController. Otherwise The Change Can Be Done On One DomainController And The Verification
                On Another. Which Will Cause Fail Positive In The Verification, Because The Change Can Be Replicated On The Second
                DomainController After A While. From That Perspective The CmdLet Does Accept Only LDAP Connection Strings Only
                With Included Valid Domain Controller.
            </para>
            <para type="description">
                --DistinguishedName - The AD Object Which Have To Be Modified Have To Be Provided With Its DistinguishedName.
                Additionally A DomainController Have To Be Specified To The CmdLet. In Case The DomainController Is Not Specified
                The CmdLet Will Take The Users Logon Server And Will Assign It As Domain Controller.
            </para>
            <list type="alertSet">
                <item>
                    <term> </term>
                    <description>
                        <para>AUTHOR: Svetoslav Nedyalkov Savov (svesavov@hotmail.com)</para>
                        <para>THIS CODE IS MADE AVAILABLE AS IS, WITHOUT WARRANTY OF ANY KIND. THE ENTIRE RISK</para>
                        <para>OF THE USE OR THE RESULTS FROM THE USE OF THIS CODE REMAINS WITH THE USER.</para>
                        <para></para>
                        <para></para>
                        <para></para>
                    </description>
                </item>
            </list>
            <example>
              <code>
                [SnsPsModule.SnsAdMultiValuedString]$objResult = Set-SnsAdMultiValuedStringAttribute `
                -ConnectionString "LDAP://DC01.contoso.com/CN=Group01,OU=Groups,DC=contoso,DC=com"
                -Attribute "member" -Value "CN=John Smith,OU=Users,DC=contoso,DC=com";
              </code>
              <para></para>
            </example>
            <example>
              <code>
                [SnsPsModule.SnsAdMultiValuedString]$objResult = Set-SnsAdMultiValuedStringAttribute `
                -DistinguishedName "CN=Group01,OU=Groups,DC=contoso,DC=com" `
                -Attribute "member" -Value "CN=John Smith,OU=Users,DC=contoso,DC=com";
              </code>
              <para></para>
            </example>
            </summary>
            <para type="link" uri="https://github.com/svesavov/SnsPsModule"> svesavov / SnsPsModule - </para>
            <para type="link" uri="https://www.powershellgallery.com/packages/SnsPsModule/"> PowerShell Gallery - </para>
            <para type="link" uri="https://www.linkedin.com/in/svetoslavsavov"> Svetoslav Savov on LinkedIn - </para>
        </member>
        <member name="P:SnsPsModule.SetSnsAdMultiValuedStringAttribute.ConnectionString">
            <summary>
            <para type="description">Specifies An AD Connection String To The Ad Object Which Attribute Have to Be Modified.</para>
            <para type="description">For More Details Refer To MS Documentation https://bit.ly/2RGUIsO </para>
            <para type="description">For The Purpose Of The CmdLet Only The Syntax With DomainController Is Allowed.</para>
            <para type="description">Example: LDAP://DC01.contoso.com/CN=John Smith,OU=Users,DC=contoso,DC=com</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.SetSnsAdMultiValuedStringAttribute.DistinguishedName">
            <summary>
            <para type="description">Specifies DistinguishedName Of The AD Object Which Have To Be Modified.</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.SetSnsAdMultiValuedStringAttribute.DomainController">
            <summary>
            <para type="description">Specifies A Domain Controller Fully Qualified Domain Name.</para>
            <para type="description">If Not Provided The CmdLet Will Be Run Against Random Domain Controller.</para>
            <para type="description">Delays Caused By The Domain Replication Have To Be Considered If Omitted.</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.SetSnsAdMultiValuedStringAttribute.Attribute">
            <summary>
            <para type="description">Specifies The Attribute Name Of The Attribute Which Have To Be Set As It Is Shown In ADSIEdit.</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.SetSnsAdMultiValuedStringAttribute.Value">
            <summary>
            <para type="description">Specifies The Values Which Have To Be Set On The Specified Attribute.</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.SetSnsAdMultiValuedStringAttribute.Attempts">
            <summary>
            <para type="description">
                Specifies The Number Of Attempts That Have To Be Made To Set The Specified Values To The Specified AD
                Attribute.
            </para>
            </summary>
        </member>
        <member name="T:SnsPsModule.SetSnsAdUserMustChangePassword">
            <summary>
            <para type="synopsis">
                CmdLet Designed To Set "The user must change password at next logon" Flag On Specified Active Directory Account
                Object.
            </para>
            <para type="description">
                CmdLet Designed To Set "The user must change password at next logon" Flag On Specified Active Directory Account
                Object.
            </para>
            <para type="description">
                The CmdLet Have Two Parameter Sets:
            </para>
            <para type="description">
                --ConnectionString - The AD Object Which Have To Be Modified Have To Be Provided In LDAP Connection String Form.
                Since The CmdLet Modifies And Verifies Attribute Values, It Is Required That Modifications And Validations Are
                Made Against One DomainController. Otherwise The Change Can Be Done On One DomainController And The Verification
                On Another. Which Will Cause Fail Positive In The Verification, Because The Change Can Be Replicated On The Second
                DomainController After A While. From That Perspective The CmdLet Does Accept Only LDAP Connection Strings Only
                With Included Valid Domain Controller.
            </para>
            <para type="description">
                --DistinguishedName - The AD Object Which Have To Be Modified Have To Be Provided With Its DistinguishedName.
                Additionally A DomainController Have To Be Specified To The CmdLet. In Case The DomainController Is Not Specified
                The CmdLet Will Take The Users Logon Server And Will Assign It As Domain Controller.
            </para>
            <list type="alertSet">
                <item>
                    <term> </term>
                    <description>
                        <para>AUTHOR: Svetoslav Nedyalkov Savov (svesavov@hotmail.com)</para>
                        <para>THIS CODE IS MADE AVAILABLE AS IS, WITHOUT WARRANTY OF ANY KIND. THE ENTIRE RISK</para>
                        <para>OF THE USE OR THE RESULTS FROM THE USE OF THIS CODE REMAINS WITH THE USER.</para>
                        <para></para>
                        <para></para>
                        <para></para>
                    </description>
                </item>
            </list>
            <example>
              <code>
                [SnsPsModule.SnsAdUsrMustChangePass]$objResult = Set-SnsAdUserMustChangePassword `
                -ConnectionString "LDAP://DC01.contoso.com/CN=John Smith,OU=Users,DC=contoso,DC=com";
              </code>
              <para></para>
            </example>
            <example>
              <code>
                [SnsPsModule.SnsAdUsrMustChangePass]$objResult = Set-SnsAdUserMustChangePassword `
                -DistinguishedName "CN=John Smith,OU=Users,DC=contoso,DC=com";
              </code>
              <para></para>
            </example>
            </summary>
            <para type="link" uri="https://github.com/svesavov/SnsPsModule"> svesavov / SnsPsModule - </para>
            <para type="link" uri="https://www.powershellgallery.com/packages/SnsPsModule/"> PowerShell Gallery - </para>
            <para type="link" uri="https://www.linkedin.com/in/svetoslavsavov"> Svetoslav Savov on LinkedIn - </para>
        </member>
        <member name="P:SnsPsModule.SetSnsAdUserMustChangePassword.ConnectionString">
            <summary>
            <para type="description">Specifies An AD Connection String To The Ad Object Which Have to Be Modified.</para>
            <para type="description">For More Details Refer To MS Documentation https://bit.ly/2RGUIsO </para>
            <para type="description">For The Purpose Of The CmdLet Only The Syntax With DomainController Is Allowed.</para>
            <para type="description">Example: LDAP://DC01.contoso.com/CN=John Smith,OU=Users,DC=contoso,DC=com</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.SetSnsAdUserMustChangePassword.DistinguishedName">
            <summary>
            <para type="description">Specifies DistinguishedName Of The AD Object Which Have To Be Modified.</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.SetSnsAdUserMustChangePassword.DomainController">
            <summary>
            <para type="description">Specifies A Domain Controller Fully Qualified Domain Name.</para>
            <para type="description">If Not Provided The CmdLet Will Be Run Against Random Domain Controller.</para>
            <para type="description">Delays Caused By The Domain Replication Have To Be Considered If Omitted.</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.SetSnsAdUserMustChangePassword.Unset">
            <summary>
            <para type="description">Specifies To Remove "The user must change password at next logon" Flag.</para>
            <para type="description">Use It With Consciousness.</para>
            <para type="description">If You Have Rights To Do So, Most Probably You'll Be Responsible This To Never Happens.</para>
            <para type="description">At Least You'll Be Aware Of The Consequences.</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.SetSnsAdUserMustChangePassword.Attempts">
            <summary>
            <para type="description">
                Specifies The Number Of Attempts That Have To Be Made To Set The Specified Values To The Specified AD
                Attribute.
            </para>
            </summary>
        </member>
        <member name="T:SnsPsModule.SetRegistry">
            <summary>
            <para type="synopsis">
                CmdLet Designed To Modify Or Create Registry Values.
            </para>
            <para type="description">
                CmdLet Designed To Modify Or Create Registry Values.
            </para>
            <para type="description">
                The CmdLet Require The Run Space To Be Executed In Elevated Mode.
            </para>
            <list type="alertSet">
                <item>
                    <term> </term>
                    <description>
                        <para>AUTHOR: Svetoslav Nedyalkov Savov (svesavov@hotmail.com)</para>
                        <para>THIS CODE IS MADE AVAILABLE AS IS, WITHOUT WARRANTY OF ANY KIND. THE ENTIRE RISK</para>
                        <para>OF THE USE OR THE RESULTS FROM THE USE OF THIS CODE REMAINS WITH THE USER.</para>
                        <para></para>
                        <para></para>
                        <para></para>
                    </description>
                </item>
            </list>
            <example>
              <code>
                [System.Boolean[]]$bolSetRegistry = Set-Registry `
                -RegistryPath 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\WinRM\Client' `
                -RegistryName 'AllowBasic' -RegistryType 'DWord' -RegistryValue 1;
              </code>
              <para></para>
            </example>
            <example>
              <code>
                [System.Object[]]$objObject = Set-Registry `
                -RegistryPath 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\WinRM\Client' `
                -RegistryName 'AllowBasic' -RegistryType 'DWord' -RegistryValue 1 -PassThru;
              </code>
              <para></para>
            </example>
            </summary>
            <para type="link" uri="https://github.com/svesavov/SnsPsModule"> svesavov / SnsPsModule - </para>
            <para type="link" uri="https://www.powershellgallery.com/packages/SnsPsModule/"> PowerShell Gallery - </para>
            <para type="link" uri="https://www.linkedin.com/in/svetoslavsavov"> Svetoslav Savov on LinkedIn - </para>
        </member>
        <member name="P:SnsPsModule.SetRegistry.RegistryPath">
            <summary>
            <para type="description">Specifies The Full Absolute UNC Registry Path</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.SetRegistry.RegistryName">
            <summary>
            <para type="description">Specifies The Name Of The Registry Key</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.SetRegistry.RegistryType">
            <summary>
            <para type="description">Specifies The Type Of The Registry Key</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.SetRegistry.RegistryValue">
            <summary>
            <para type="description">Specifies The Value Of The Registry Key</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.SetRegistry.Attempts">
            <summary>
            <para type="description">Specifies The Number Of Attempts That The CmdLet Have To Make Before To Consider The Fulfilment As Failed.</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.SetRegistry.Force">
            <summary>
            <para type="description">Forces The CmdLet To Create The Registry Key Value In Case Does Not Exist.</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.SetRegistry.PassThru">
            <summary>
            <para type="description">Specify The Parameter Whenever You Need The Function To Revert Output Object.</para>
            </summary>
        </member>
        <member name="T:SnsPsModule.SetSnsAdStringAttribute">
            <summary>
            <para type="synopsis">
                CmdLet Designed To Set The Specified String Value On Specified Active Directory Attribute Of Specified Active
                Directory Object.
            </para>
            <para type="description">
                CmdLet Designed To Set The Specified String Value On Specified Active Directory Attribute Of Specified Active
                Directory Object.
            </para>
            <para type="description">
                The CmdLet Have Two Parameter Sets:
            </para>
            <para type="description">
                --ConnectionString - The AD Object Which Have To Be Modified Have To Be Provided In LDAP Connection String Form.
                Since The CmdLet Modifies And Verifies Attribute Values, It Is Required That Modifications And Validations Are
                Made Against One DomainController. Otherwise The Change Can Be Done On One DomainController And The Verification
                On Another. Which Will Cause Fail Positive In The Verification, Because The Change Can Be Replicated On The Second
                DomainController After A While. From That Perspective The CmdLet Does Accept Only LDAP Connection Strings Only
                With Included Valid Domain Controller.
            </para>
            <para type="description">
                --DistinguishedName - The AD Object Which Have To Be Modified Have To Be Provided With Its DistinguishedName.
                Additionally A DomainController Have To Be Specified To The CmdLet. In Case The DomainController Is Not Specified
                The CmdLet Will Take The Users Logon Server And Will Assign It As Domain Controller.
            </para>
            <list type="alertSet">
                <item>
                    <term> </term>
                    <description>
                        <para>AUTHOR: Svetoslav Nedyalkov Savov (svesavov@hotmail.com)</para>
                        <para>THIS CODE IS MADE AVAILABLE AS IS, WITHOUT WARRANTY OF ANY KIND. THE ENTIRE RISK</para>
                        <para>OF THE USE OR THE RESULTS FROM THE USE OF THIS CODE REMAINS WITH THE USER.</para>
                        <para></para>
                        <para></para>
                        <para></para>
                    </description>
                </item>
            </list>
            <example>
              <code>
                [SnsPsModule.SnsAdString]$objResult = Set-SnsAdStringAttribute `
                -ConnectionString "LDAP://DC01.contoso.com/CN=Group01,OU=Groups,DC=contoso,DC=com" `
                -Attribute "extensionAttribute1" -Value "Test";
              </code>
              <para></para>
            </example>
            <example>
              <code>
                [SnsPsModule.SnsAdString]$objResult = Set-SnsAdStringAttribute `
                -DistinguishedName "CN=Group01,OU=Groups,DC=contoso,DC=com" `
                -Attribute "extensionAttribute1" -Value "Test";
              </code>
              <para></para>
            </example>
            </summary>
            <para type="link" uri="https://github.com/svesavov/SnsPsModule"> svesavov / SnsPsModule - </para>
            <para type="link" uri="https://www.powershellgallery.com/packages/SnsPsModule/"> PowerShell Gallery - </para>
            <para type="link" uri="https://www.linkedin.com/in/svetoslavsavov"> Svetoslav Savov on LinkedIn - </para>
        </member>
        <member name="P:SnsPsModule.SetSnsAdStringAttribute.ConnectionString">
            <summary>
            <para type="description">Specifies An AD Connection String To The Ad Object Which Attribute Have to Be Modified.</para>
            <para type="description">For More Details Refer To MS Documentation https://bit.ly/2RGUIsO </para>
            <para type="description">For The Purpose Of The CmdLet Only The Syntax With DomainController Is Allowed.</para>
            <para type="description">Example: LDAP://DC01.contoso.com/CN=John Smith,OU=Users,DC=contoso,DC=com</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.SetSnsAdStringAttribute.DistinguishedName">
            <summary>
            <para type="description">Specifies DistinguishedName Of The AD Object Which Have To Be Modified.</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.SetSnsAdStringAttribute.DomainController">
            <summary>
            <para type="description">Specifies A Domain Controller Fully Qualified Domain Name.</para>
            <para type="description">If Not Provided The CmdLet Will Be Run Against Random Domain Controller.</para>
            <para type="description">Delays Caused By The Domain Replication Have To Be Considered If Omitted.</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.SetSnsAdStringAttribute.Attribute">
            <summary>
            <para type="description">Specifies The Attribute Name Of The Attribute Which Have To Be Set As It Is Shown In ADSIEdit.</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.SetSnsAdStringAttribute.Value">
            <summary>
            <para type="description">Specifies The Value Which Have To Be Set On The Specified AD Attribute.</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.SetSnsAdStringAttribute.Attempts">
            <summary>
            <para type="description">
                Specifies The Number Of Attempts That Have To Be Made To Set The Specified Values To The Specified AD
                Attribute.
            </para>
            </summary>
        </member>
    </members>
</doc>