bin/SnsPsModule.xml

<?xml version="1.0"?>
<doc>
    <assembly>
        <name>SnsPsModule</name>
    </assembly>
    <members>
        <member name="T:SnsPsModule.AddSnsAdGroupMember">
            <summary>
             <para type="synopsis">Adds Specified Members To Specified AD Group.</para>
             <para type="description">Adds Specified Members To Specified AD Group.</para>
             <para type="description">
                 Within Active Directory Exists A Threshold Related With The Number Of Values That Can Be Retrieved From A Single
                 Attribute. That Threshold Depends From The Domain And The Forest Functional Level At The Time When The First
                 Domain Controller Was Promoted. With The Consequent Elevation Of The Domain And The Forest Functional Level The
                 Threshold Remains Intact And Not Modified.
             </para>
             <para type="description">
                 In Order To Avoid That Limitation Whenever A Group Contains Large Number Of Members, The CmdLet Performs The
                 Verification Via Evaluating The Members "memberOf" Attribute. Although It Is Multivalued Attribute As Well And Is
                 Affected By The Same Limitation, The Possibility A User To Be Member Of That Many Groups Is Not Likely. Moreover
                 The Users Access Token Will Break Because Of The Large Number Of Groups Long Before The Limitation About Number Of
                 Displayed Values To Be Reached. For Example For The Forests Initially Built With Windows 2000 The Limitation Is
                 1000. So It Is Likely To Have Groups With More Than 1000 Members, But It Is Not Likely To Have A User Member Of
                 That Many Groups.
             </para>
             <para type="description">
                 Verification Of The Groups Adding Via Evaluation Of The Added Object "memberOf" Attribute Introduce Some
                 Limitations As Well. The CmdLet Needs To Perform More Queries Against The Active Directory And Need To Handle More
                 Data, Which Means That From Performance Perspective It Is Slower In Relation With The Other CmdLets. Additionally
                 The Verification Might Not Work As Expected Whenever A User From One Domain In A Forest Is Added To A Group
                 Located In Different Domain In The Same Forest.
             </para>
             <para type="description">
                 In The Cases When Is Need To Manage The Group Membership Of Groups With Small Number Of Members Is Preferable To
                 Be Used "Add-SnsAdMultiValuedStringAttributeValue" CmdLet Against The Group Object And Attribute "member". This
                 Applies As Well For The Scenarios Whenever The Added Member Is From Different Domain Than The Managed Group.
             </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.SnsAdGroupMember]$objResult = Add-SnsAdGroupMember `
                 -GroupIdentity "CN=Group01,OU=Groups,DC=contoso,DC=com" `
                 -MemberIdentity "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.MemberIdentity">
            <summary>
            <para type="description">Specifies The Identity Of An AD Object To Be Added As Member Into The Specified Group.</para>
            <para type="description">As Identity Can Be Used The Value In One Of The Following AD Attributes:</para>
            <para type="description">"DistinguishedName"</para>
            <para type="description">"objectGUID"</para>
            <para type="description">"objectSid"</para>
            <para type="description">"AdsPath"</para>
            <para type="description">
                Whenever The CmdLet Will Be Used To Add Multiple User Accounts From Different AD Domains In Multi Domain
                Forest Must Be Used "AdsPath" With Included Domain Controller From The Corresponding Domain Where The
                Specified Domain Object Is Located.
            </para>
            <para type="description">
                Whenever "AdsPath" Is Used Without The Domain Controller In It, The CmdLet Will Add The Specified With
                "DomainController" Parameter One Or Will Add The Current Logon Server If "DomainController" Parameter Is Not
                Specified.
            </para>
            </summary>
        </member>
        <member name="P:SnsPsModule.AddSnsAdGroupMember.GroupIdentity">
            <summary>
            <para type="description">Specifies The Identity Of AD Group To Be Modified.</para>
            <para type="description">As Identity Can Be Used The Value In One Of The Following AD Attributes:</para>
            <para type="description">"DistinguishedName"</para>
            <para type="description">"objectGUID"</para>
            <para type="description">"objectSid"</para>
            <para type="description">"AdsPath"</para>
            <para type="description">
                Whenever "AdsPath" Is Used Without The Domain Controller In It, The CmdLet Will Add The Specified With
                "DomainController" Parameter One Or Will Add The Current Logon Server If "DomainController" Parameter Is Not
                Specified.
            </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 The Logon Server.</para>
            <para type="description">This Prevents Issues Related With AD Replication.</para>
            <para type="description">
                In Multi Domain Forests Specifying Of Domain Controller Responsible For The AD Domain Where The AD Objects Are
                Located Is Required.
            </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">Adds Values To AD Object Multi Valued String Attribute Preserving The Existing Values.</para>
            <para type="description">Adds Values To AD Object Multi Valued String Attribute Preserving The Existing Values.</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 `
                -Identity "CN=Group01,OU=Groups,DC=contoso,DC=com" -Attribute "msExchExtensionCustomAttribute1" `
                -Value "TestValue01";
              </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.Identity">
            <summary>
            <para type="description">Specifies The Identity Of An Active Directory Object To Be Modified.</para>
            <para type="description">As Identity Can Be Used The Value In One Of The Following AD Attributes:</para>
            <para type="description">"DistinguishedName"</para>
            <para type="description">"objectGUID"</para>
            <para type="description">"objectSid"</para>
            <para type="description">"AdsPath"</para>
            <para type="description">
                Whenever "AdsPath" Is Used Without The Domain Controller In It, The CmdLet Will Add The Specified With
                "DomainController" Parameter One Or Will Add The Current Logon Server If "DomainController" Parameter Is Not
                Specified.
            </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 The Logon Server.</para>
            <para type="description">This Prevents Issues Related With AD Replication.</para>
            <para type="description">
                In Multi Domain Forests Specifying Of Domain Controller Responsible For The AD Domain Where The AD Objects Are
                Located Is Required.
            </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>
            <para type="description">
                Although The CmdLet Can Be Used To Add Values To Any Multi Valued String Attribute. It Is Not Good Idea To Be
                Used For Adding Of Group Members. The Active Directory Have A Limitation Related With The Reverted Number Of
                Values Within An Attribute. Therefore If The Group Members Are Above The Threshold, The Adding Verification
                Will Fail Because The New Member Will Be Not Among The Reverted Results. For That Purpose Is Preferable To Be
                Used The CmdLets With Noun SnsAdGroupMember From This Module.
            </para>
            </summary>
        </member>
        <member name="P:SnsPsModule.AddSnsAdMultiValuedStringAttributeValue.Value">
            <summary>
            <para type="description">Specifies The Members Which Have To Be Added To 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">Clears The Specified AD Attribute Value For The Specified AD Object.</para>
            <para type="description">Clears The Specified AD Attribute Value For The Specified AD 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.SnsAdClearAttribute]$objResult = Clear-SnsAdAttribute `
                -Identity "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.Identity">
            <summary>
            <para type="description">Specifies The Identity Of An Active Directory Object To Be Modified.</para>
            <para type="description">As Identity Can Be Used The Value In One Of The Following AD Attributes:</para>
            <para type="description">"DistinguishedName"</para>
            <para type="description">"objectGUID"</para>
            <para type="description">"objectSid"</para>
            <para type="description">"AdsPath"</para>
            <para type="description">
                Whenever "AdsPath" Is Used Without The Domain Controller In It, The CmdLet Will Add The Specified With
                "DomainController" Parameter One Or Will Add The Current Logon Server If "DomainController" Parameter Is Not
                Specified.
            </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 The Logon Server.</para>
            <para type="description">This Prevents Issues Related With AD Replication.</para>
            <para type="description">
                In Multi Domain Forests Specifying Of Domain Controller Responsible For The AD Domain Where The AD Objects Are
                Located Is Required.
            </para>
            </summary>
        </member>
        <member name="P:SnsPsModule.ClearSnsAdAttribute.Attribute">
            <summary>
            <para type="description">Specifies The Attribute Name Of The Attribute Which Have To Be Cleared 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 Set The Specified Values To The Specified AD
                Attribute.
            </para>
            </summary>
        </member>
        <member name="T:SnsPsModule.ConvertFromSnsIADsLargeInteger">
            <summary>
            <para type="synopsis">Converts AD Specific IADsLargeInteger Objects To Regular System.Int64 Struct.</para>
            <para type="description">Converts AD Specific 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]::FromFileTime($(ConvertFrom-SnsIADsLargeInteger $([ADSI]"LDAP://$($strDN)").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>
            </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">Converts IP V4 Address String To System.UInt32</para>
            <para type="description">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">Extracts HTML Content From A Web Page As A String.</para>
            <para type="description">Extracts 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 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">Moves The Specified AD Object Into Specified AD Parent Container.</para>
            <para type="description">Moves The Specified AD Object Into Specified AD 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 -DomainController "DC01.contoso.com" `
                -Identity "CN=John Smith,OU=Users,DC=contoso,DC=com" -Destination "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.Identity">
            <summary>
            <para type="description">Specifies The Identity Of An Active Directory Object To Be Modified.</para>
            <para type="description">As Identity Can Be Used The Value In One Of The Following AD Attributes:</para>
            <para type="description">"DistinguishedName"</para>
            <para type="description">"objectGUID"</para>
            <para type="description">"objectSid"</para>
            <para type="description">"AdsPath"</para>
            <para type="description">
                Whenever "AdsPath" Is Used Without The Domain Controller In It, The CmdLet Will Add The Specified With
                "DomainController" Parameter One Or Will Add The Current Logon Server If "DomainController" Parameter Is Not
                Specified.
            </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 The Logon Server.</para>
            <para type="description">This Prevents Issues Related With AD Replication.</para>
            <para type="description">
                In Multi Domain Forests Specifying Of Domain Controller Responsible For The AD Domain Where The AD Objects Are
                Located Is Required.
            </para>
            </summary>
        </member>
        <member name="P:SnsPsModule.MoveSnsAdObject.Destination">
            <summary>
            <para type="description">Specifies The Identity Of The Of The Destination Active Directory Parent Container.</para>
            <para type="description">As Identity Can Be Used The Value In One Of The Following AD Attributes:</para>
            <para type="description">"DistinguishedName"</para>
            <para type="description">"objectGUID"</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.MoveSnsAdObject.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.NewSnsAdObject">
            <summary>
            <para type="synopsis">Creates Active Directory Objects.</para>
            <para type="description">The CmdLet Can Create:</para>
            <para type="description">-- Active Directory Account.</para>
            <para type="description">-- Active Directory Group.</para>
            <para type="description">-- Active Directory Contact.</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.SnsAdNewObject]$objResult = New-SnsAdObject `
                -FirstName "John" -LastName "Smith" -OU "OU=Users,DC=contoso,DC=com";
              </code>
              <para>
                Creates AD Account With Name "John Smith" Inside OU "Users" With sAMAccountName "John.Smith", DisplayName "John Smith", FirstName "John" And LastName "Smith".
              </para>
              <para></para>
            </example>
            <example>
              <code>
                [SnsPsModule.SnsAdNewObject]$objResult = New-SnsAdObject -AdGroup `
                -OU "OU=Groups,DC=contoso,DC=com" -Name "Accountants" -GroupScope "Universal" -GroupType "Distribution";
              </code>
              <para>Creates Universal Distribution Group In OU "Groups" (Not MailEnabled).</para>
              <para></para>
            </example>
            <example>
              <code>
                [SnsPsModule.SnsAdNewObject]$objResult = New-SnsAdObject -AdContact `
                -FirstName "John" -LastName "Smith" -OU "OU=Contacts,DC=contoso,DC=com";
              </code>
              <para>Creates AD Contact In OU "Contacts" (Not MailEnabled).</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.NewSnsAdObject.OU">
            <summary>
            <para type="description">Specifies The Identity Of The Of The New Object AD Parent Container.</para>
            <para type="description">As Identity Can Be Used The Value In One Of The Following AD Attributes:</para>
            <para type="description">"DistinguishedName"</para>
            <para type="description">"objectGUID"</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.NewSnsAdObject.AdAccount">
            <summary>
            <para type="description">Specifies To Be Created An AD User Account.</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.NewSnsAdObject.AdGroup">
            <summary>
            <para type="description">Specifies To Be Created An AD Group.</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.NewSnsAdObject.AdContact">
            <summary>
            <para type="description">Specifies To Be Created An AD Contact.</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.NewSnsAdObject.Name">
            <summary>
            <para type="description">Specifies The Name Of The New AD Object.</para>
            <para type="description">
                If Omitted Will Be Used The Value For The DisplayName No Matter Whether It Is Specified Or Autogenerated. From
                The DisplayName Value Are Removed All Invalid Characters.
            </para>
            <para type="description">For Valid Characters Are Considered:</para>
            <para type="description">-- All English Alphabet Characters Capital And Lower</para>
            <para type="description">-- All Numeric Characters</para>
            <para type="description">-- Space ( )</para>
            <para type="description">-- Dash (-)</para>
            <para type="description">-- Underscore (_)</para>
            <para type="description">-- Comma (,)</para>
            <para type="description">-- Apostrophe (')</para>
            <para type="description">-- Dot (.)</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.NewSnsAdObject.SamAccountName">
            <summary>
            <para type="description">Specifies The sAMAccountName Of The New AD Object.</para>
            <para type="description">
                The sAMAccountName For The AD Accounts Is Mandatory. If The Parameter Is Omitted The CmdLet Will Autogenerate
                It Using Name Parameter Value Replacing The Spaces With Dot (.). In Case The Autogenerated Value Is Longer
                Than 20 Characters Will Be Used Only The First 20 Ones.
            </para>
            <para type="description">
                The sAMAccountName For The AD Groups Is Not Mandatory. If The Parameter Is Omitted The CmdLet Will
                Autogenerate It Using Name Parameter Value. In Case The Autogenerated Value Is Longer Than 20 Characters Will
                Be Used Only The First 20 Ones.
            </para>
            </summary>
        </member>
        <member name="P:SnsPsModule.NewSnsAdObject.UserPrincipalName">
            <summary>
            <para type="description">Specifies The UserPrincipalName (UPN) Of The New AD Account.</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.NewSnsAdObject.Password">
            <summary>
            <para type="description">Specifies A Password To Be Set To The New AD Account.</para>
            <para type="description">If Omitted The CmdLet Will Set Random Password.</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.NewSnsAdObject.DisplayName">
            <summary>
            <para type="description">Specifies The DisplayName Of The New AD Object.</para>
            <para type="description">
                If Omitted And Whenever Is Applicable The DisplayName Will Be Autogenerated Via Concatenation Of The Specified
                FirstName And LastName.
            </para>
            <para type="description">
                If Still Without Value, "DisplayName" Will Be Set, With The Value Provided In "Name" Parameter.
            </para>
            </summary>
        </member>
        <member name="P:SnsPsModule.NewSnsAdObject.FirstName">
            <summary>
            <para type="description">Specifies The FirstName Of The New AD Account Or Contact.</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.NewSnsAdObject.LastName">
            <summary>
            <para type="description">Specifies The LastName Of The New AD Account Or Contact.</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.NewSnsAdObject.Manager">
            <summary>
            <para type="description">Specifies The Manager / ManagedBy Of The New AD Object.</para>
            <para type="description">As Manager / ManagedBy Can Be Used The Value In One Of The Following AD Attributes:</para>
            <para type="description">"DistinguishedName"</para>
            <para type="description">"objectGUID"</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.NewSnsAdObject.GroupScope">
            <summary>
            <para type="description">Specifies The GroupScope Of The New AD Group.</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.NewSnsAdObject.GroupType">
            <summary>
            <para type="description">Specifies The GroupType Of The New AD Group.</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.NewSnsAdObject.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 The Logon Server.</para>
            <para type="description">This Prevents Issues Related With AD Replication.</para>
            <para type="description">
                In Multi Domain Forests Specifying Of Domain Controller Responsible For The AD Domain Where The AD Objects Are
                Located Is Required.
            </para>
            </summary>
        </member>
        <member name="P:SnsPsModule.NewSnsAdObject.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.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>
                $arrInput | New-SnsChart -Path 'C:\Cha.png' -ChartType "Column" -AxisXTitle "Date" -AxisYTitle "Events Number" `
                -LegendTitle "Event Severity" -SeriesColor @("Green", "Yellow", "Red") -Title "Events Per Date" `
                -SeriesTitle @("Information Events", "Warning Events", "Error Events");
              </code>
              <para></para>
            </example>
            <example>
              <code>
                New-SnsChart -Path 'C:\Cha.jpg' -ChartType "Column" -RawData $rrInput -AxisXColumn "Date" -AxisYColumn "Message" `
                -SeriesColumn "Severity" -AxisXTitle "Date" -AxisYTitle "Events Number" -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>
            <para type="description">Allowed Chart Types Are:</para>
            <para type="description">
                "Column", "RangeColumn", "StackedColumn", "Bar", "RangeBar", "StackedBar", "Line", "FastLine", "StepLine",
                "Spline", "SplineRange", "Area", "SplineArea", "StackedArea", "Range"
            </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.Colors">
            <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 Name Within The RawData Which Identifies The Data Series.</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.NewSnsChart.AxisXColumn">
            <summary>
            <para type="description">Specifies A Column Name 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>
            <para type="description">Normally That Would Be A Non Nullable Column Or The Objects Unique Identity / Primary Key.</para>
            </summary>
        </member>
        <member name="T:SnsPsModule.NewSnsHtmlHeader">
            <summary>
            <para type="synopsis">Creates XHTML 1.0 Strict Web Page Header And CSS3 Template.</para>
            <para type="description">Creates 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 Size And 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 Format The Links In Way To Inherit The Stile From Their Parent In Order To Look Like Regular Text.</para>
            </summary>
        </member>
        <member name="T:SnsPsModule.NewSnsPassword">
            <summary>
            <para type="synopsis">Command Line Random Password Generator.</para>
            <para type="description">Command Line Random 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">Creates A Chart Based On The Specified Statistical Or Raw Data And Exports It On A File.</para>
            <para type="description">Creates A Chart 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. Sometimes Those Automation Scripts Produce Reports Which Need To Be Sent On Emails. If The
                Reports Needs To Be Provided To Other Systems 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 Interface Forms And Are Not Available Natively In PowerShell.
            </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 Set 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 Segments In The Chart), And The Column That Will Be Used To Calculate The AxisY
                Values.
            </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. 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 The Produced Chart To Have
                            Segments For Each Millisecond. 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. Must 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-SnsPieChart -Path 'C:\Chart.png' -Title "Actions" -LegendTitle "Completed Actions" -Enable3D `
                -AddYValue -ShowPercent -PassThru -EntryColor @("Green", "Yellow", "Red")";
              </code>
              <para></para>
            </example>
            <example>
              <code>
                New-SnsPieChart -Path 'C:\Chart.jpg' -Title "Actions" -LegendTitle "Completed Actions" -Enable3D -AddYValue `
                -ShowPercent -PassThru -RawData $rrInput -AxisXColumn "Message" -AxisYColumn "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.Colors">
            <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 Analyzed 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">Provides Command Line Interface (CLI) To The Built Into MS Windows ZIP Functionality.</para>
            <para type="description">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">Removes The Specified AD Group Members From The Specified AD Group.</para>
             <para type="description">Removes The Specified AD Group Members From The Specified AD Group.</para>
             <para type="description">
                 Within Active Directory Exists A Threshold Related With The Number Of Values That Can Be Retrieved From A Single
                 Attribute. That Threshold Depends From The Domain And The Forest Functional Level At The Time When The First
                 Domain Controller Was Promoted. With The Consequent Elevation Of The Domain And The Forest Functional Level The
                 Threshold Remains Intact And Not Modified.
             </para>
             <para type="description">
                 In Order To Avoid That Limitation Whenever A Group Contains Large Number Of Members, The CmdLet Performs The
                 Verification Via Evaluating The Members "memberOf" Attribute. Although It Is Multivalued Attribute As Well And Is
                 Affected By The Same Limitation, The Possibility A User To Be Member Of That Many Groups Is Not Likely. Moreover
                 The Users Access Token Will Break Because Of The Large Number Of Groups Long Before The Limitation About Number Of
                 Displayed Values To Be Reached. For Example For The Forests Initially Built With Windows 2000 The Limitation Is
                 1000. So It Is Likely To Have Groups With More Than 1000 Members, But It Is Not Likely To Have A User Member Of
                 That Many Groups.
             </para>
             <para type="description">
                 Verification Of The Groups Members Removal Via Evaluation Of The Removed Object "memberOf" Attribute Introduce
                 Some Limitations As Well. The CmdLet Needs To Perform More Queries Against The Active Directory And Need To Handle
                 More Data, Which Means That From Performance Perspective It Is Slower In Relation With The Other CmdLets.
                 Additionally The Verification Might Not Work As Expected Whenever A User From One Domain In A Forest Is Removed
                 From A Group Located In Different Domain In The Same Forest.
             </para>
             <para type="description">
                 In The Cases When Is Need To Manage The Group Membership Of Groups With Small Number Of Members Is Preferable To
                 Be Used "Remove-SnsAdMultiValuedStringAttributeValue" CmdLet Against The Group Object And Attribute "member". This
                 Applies As Well For The Scenarios Whenever The Removed Member Is From Different Domain Than The Managed Group.
             </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.SnsAdGroupMember]$objResult = Remove-SnsAdGroupMember `
                 -GroupIdentity "CN=Group01,OU=Groups,DC=contoso,DC=com" `
                 -MemberIdentity "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.MemberIdentity">
            <summary>
            <para type="description">Specifies The Identity Of An AD Object To Be Removed As Member From The Specified Group.</para>
            <para type="description">As Identity Can Be Used The Value In One Of The Following AD Attributes:</para>
            <para type="description">"DistinguishedName"</para>
            <para type="description">"objectGUID"</para>
            <para type="description">"objectSid"</para>
            <para type="description">"AdsPath"</para>
            <para type="description">
                Whenever The CmdLet Will Be Used To Add Multiple User Accounts From Different AD Domains In Multi Domain
                Forest Must Be Used "AdsPath" With Included Domain Controller From The Corresponding Domain Where The
                Specified Domain Object Is Located.
            </para>
            <para type="description">
                Whenever "AdsPath" Is Used Without The Domain Controller In It, The CmdLet Will Add The Specified With
                "DomainController" Parameter One Or Will Add The Current Logon Server If "DomainController" Parameter Is Not
                Specified.
            </para>
            </summary>
        </member>
        <member name="P:SnsPsModule.RemoveSnsAdGroupMember.GroupIdentity">
            <summary>
            <para type="description">Specifies The Identity Of AD Group To Be Modified.</para>
            <para type="description">As Identity Can Be Used The Value In One Of The Following AD Attributes:</para>
            <para type="description">"DistinguishedName"</para>
            <para type="description">"objectGUID"</para>
            <para type="description">"objectSid"</para>
            <para type="description">"AdsPath"</para>
            <para type="description">
                Whenever "AdsPath" Is Used Without The Domain Controller In It, The CmdLet Will Add The Specified With
                "DomainController" Parameter One Or Will Add The Current Logon Server If "DomainController" Parameter Is Not
                Specified.
            </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 The Logon Server.</para>
            <para type="description">This Prevents Issues Related With AD Replication.</para>
            <para type="description">
                In Multi Domain Forests Specifying Of Domain Controller Responsible For The AD Domain Where The AD Objects Are
                Located Is Required.
            </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">Removes The Specified Values From AD Object Multi Valued Attribute Preserving The Remaining Ones.</para>
            <para type="description">Removes The Specified Values From AD Object Multi Valued Attribute Preserving The Remaining Ones.</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 `
                -Identity "CN=Group01,OU=Groups,DC=contoso,DC=com" -Attribute "msExchExtensionCustomAttribute1" `
                -Value "TestValue";
              </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.Identity">
            <summary>
            <para type="description">Specifies The Identity Of An Active Directory Object To Be Modified.</para>
            <para type="description">As Identity Can Be Used The Value In One Of The Following AD Attributes:</para>
            <para type="description">"DistinguishedName"</para>
            <para type="description">"objectGUID"</para>
            <para type="description">"objectSid"</para>
            <para type="description">"AdsPath"</para>
            <para type="description">
                Whenever "AdsPath" Is Used Without The Domain Controller In It, The CmdLet Will Add The Specified With
                "DomainController" Parameter One Or Will Add The Current Logon Server If "DomainController" Parameter Is Not
                Specified.
            </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 The Logon Server.</para>
            <para type="description">This Prevents Issues Related With AD Replication.</para>
            <para type="description">
                In Multi Domain Forests Specifying Of Domain Controller Responsible For The AD Domain Where The AD Objects Are
                Located Is Required.
            </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>
            <para type="description">
                Although The CmdLet Can Be Used To Add Values To Any Multi Valued String Attribute. It Is Not Good Idea To Be
                Used For Adding Of Group Members. The Active Directory Have A Limitation Related With The Reverted Number Of
                Values Within An Attribute. Therefore If The Group Members Are Above The Threshold The Removal Verification
                Will Be Always True Even If The CmdLet Fail Because The Member Might Not Be Among The Reverted Results. For
                That Purpose Is Preferable To Be Used The CmdLets With Noun SnsAdGroupMember From This Module.
            </para>
            </summary>
        </member>
        <member name="P:SnsPsModule.RemoveSnsAdMultiValuedStringAttributeValue.Value">
            <summary>
            <para type="description">Specifies The Members 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">Deletes Specified Active Directory Object.</para>
            <para type="description">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 `
                -Identity "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.Identity">
            <summary>
            <para type="description">Specifies The Identity Of An Active Directory Object To Be Modified.</para>
            <para type="description">As Identity Can Be Used The Value In One Of The Following AD Attributes:</para>
            <para type="description">"DistinguishedName"</para>
            <para type="description">"objectGUID"</para>
            <para type="description">"objectSid"</para>
            <para type="description">"AdsPath"</para>
            <para type="description">
                Whenever "AdsPath" Is Used Without The Domain Controller In It, The CmdLet Will Add The Specified With
                "DomainController" Parameter One Or Will Add The Current Logon Server If "DomainController" Parameter Is Not
                Specified.
            </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 The Logon Server.</para>
            <para type="description">This Prevents Issues Related With AD Replication.</para>
            <para type="description">
                In Multi Domain Forests Specifying Of Domain Controller Responsible For The AD Domain Where The AD Objects Are
                Located Is Required.
            </para>
            </summary>
        </member>
        <member name="P:SnsPsModule.RemoveSnsAdObject.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.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 AD Object With Specified NewName.</para>
            <para type="description">This CmdLet Renames Specified AD 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 `
                -Identity "CN=John Smith,OU=Users,DC=contoso,DC=com" `
                -DomainController "DC01.contoso.com" -NewName "John Maynard 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.Identity">
            <summary>
            <para type="description">Specifies The Identity Of An Active Directory Object To Be Modified.</para>
            <para type="description">As Identity Can Be Used The Value In One Of The Following AD Attributes:</para>
            <para type="description">"DistinguishedName"</para>
            <para type="description">"objectGUID"</para>
            <para type="description">"objectSid"</para>
            <para type="description">"AdsPath"</para>
            <para type="description">
                Whenever "AdsPath" Is Used Without The Domain Controller In It, The CmdLet Will Add The Specified With
                "DomainController" Parameter One Or Will Add The Current Logon Server If "DomainController" Parameter Is Not
                Specified.
            </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 The Logon Server.</para>
            <para type="description">This Prevents Issues Related With AD Replication.</para>
            <para type="description">
                In Multi Domain Forests Specifying Of Domain Controller Responsible For The AD Domain Where The AD Objects Are
                Located Is Required.
            </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 Set The Specified Values To The Specified AD
                Attribute.
            </para>
            </summary>
        </member>
        <member name="T:SnsPsModule.ResetSnsAdPassword">
            <summary>
            <para type="synopsis">Resets The Password Of A Specified Active Directory User Account.</para>
            <para type="description">Resets The Password Of A Specified Active Directory User Account.</para>
            <para type="description">The CmdLet Have Two Parameter Sets:</para>
            <para type="description">--Password - In This Parameter Set Have To Be Specified The New Password.</para>
            <para type="description">--Generate - In This Parameter Set The CmdLet Auto Generates A Password With Specified Length.</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 = Reset-SnsAdPassword `
                -InputObject "CN=John Smith,OU=Users,DC=contoso,DC=com" `
                -Password "Pa$$w0rd" -UserMustChangePassword;
              </code>
              <para></para>
            </example>
            <example>
              <code>
                [SnsPsModule.SnsAdPassReset]$objResult = Reset-SnsAdPassword `
                -InputObject "CN=John Smith,OU=Users,DC=contoso,DC=com" `
                -AutoGeneratePasswordWithLength 20 -UserMustChangePassword;
              </code>
              <para></para>
            </example>
            <example>
              <code>
                [SnsPsModule.SnsAdPassReset]$objResult = Reset-SnsAdPassword `
                -InputObject "CN=John Smith,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.Identity">
            <summary>
            <para type="description">Specifies The Identity Of An Active Directory Object To Be Modified.</para>
            <para type="description">As Identity Can Be Used The Value In One Of The Following AD Attributes:</para>
            <para type="description">"DistinguishedName"</para>
            <para type="description">"objectGUID"</para>
            <para type="description">"objectSid"</para>
            <para type="description">"AdsPath"</para>
            <para type="description">
                Whenever "AdsPath" Is Used Without The Domain Controller In It, The CmdLet Will Add The Specified With
                "DomainController" Parameter One Or Will Add The Current Logon Server If "DomainController" Parameter Is Not
                Specified.
            </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 The Logon Server.</para>
            <para type="description">This Prevents Issues Related With AD Replication.</para>
            <para type="description">
                In Multi Domain Forests Specifying Of Domain Controller Responsible For The AD Domain Where The AD Objects Are
                Located Is Required.
            </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="P:SnsPsModule.ResetSnsAdPassword.ResetTwice">
            <summary>
            <para type="description">Specifies To Reset The Users Account Password Twice.</para>
            <para type="description">In Certain Occasions There Is A Need The Password To Be Reset Twice.</para>
            <para type="description">For Example: https://bit.ly/3HMsU0y </para>
            <para type="description">
                Whenever This Feature Is Used The CmdLet Will Reset The Users Password Once With Randomly Generated Password
                With Length 256 Characters. Afterward Will Reset The Users Password Again As Per The Specified Parameters.
            </para>
            </summary>
        </member>
        <member name="T:SnsPsModule.SearchSnsAdObject">
            <summary>
            <para type="synopsis">Performs LDAP Search Against The AD Using .NET ADSI Adapter Provider.</para>
            <para type="description">Performs 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 To The Search Root.</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">Sets The Specified Boolean Value On Specified AD Attribute Of Specified AD Object.</para>
            <para type="description">Sets The Specified Boolean Value On Specified AD Attribute Of Specified AD 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.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.Identity">
            <summary>
            <para type="description">Specifies The Identity Of An Active Directory Object To Be Modified.</para>
            <para type="description">As Identity Can Be Used The Value In One Of The Following AD Attributes:</para>
            <para type="description">"DistinguishedName"</para>
            <para type="description">"objectGUID"</para>
            <para type="description">"objectSid"</para>
            <para type="description">"AdsPath"</para>
            <para type="description">
                Whenever "AdsPath" Is Used Without The Domain Controller In It, The CmdLet Will Add The Specified With
                "DomainController" Parameter One Or Will Add The Current Logon Server If "DomainController" Parameter Is Not
                Specified.
            </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 The Logon Server.</para>
            <para type="description">This Prevents Issues Related With AD Replication.</para>
            <para type="description">
                In Multi Domain Forests Specifying Of Domain Controller Responsible For The AD Domain Where The AD Objects Are
                Located Is Required.
            </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">Sets The Specified Byte[] Value On Specified AD Attribute Of Specified AD Object.</para>
            <para type="description">Sets The Specified Byte[] Value On Specified AD Attribute Of Specified AD 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.SnsAdByte]$objResult = Set-SnsAdByteAttribute `
                -Identity "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.Identity">
            <summary>
            <para type="description">Specifies The Identity Of An Active Directory Object To Be Modified.</para>
            <para type="description">As Identity Can Be Used The Value In One Of The Following AD Attributes:</para>
            <para type="description">"DistinguishedName"</para>
            <para type="description">"objectGUID"</para>
            <para type="description">"objectSid"</para>
            <para type="description">"AdsPath"</para>
            <para type="description">
                Whenever "AdsPath" Is Used Without The Domain Controller In It, The CmdLet Will Add The Specified With
                "DomainController" Parameter One Or Will Add The Current Logon Server If "DomainController" Parameter Is Not
                Specified.
            </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 The Logon Server.</para>
            <para type="description">This Prevents Issues Related With AD Replication.</para>
            <para type="description">
                In Multi Domain Forests Specifying Of Domain Controller Responsible For The AD Domain Where The AD Objects Are
                Located Is Required.
            </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">Sets The Specified Int64 Value On Specified AD Attribute Of Specified AD Object.</para>
            <para type="description">Sets The Specified Int64 Value On Specified AD Attribute Of Specified AD 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.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.Identity">
            <summary>
            <para type="description">Specifies The Identity Of An Active Directory Object To Be Modified.</para>
            <para type="description">As Identity Can Be Used The Value In One Of The Following AD Attributes:</para>
            <para type="description">"DistinguishedName"</para>
            <para type="description">"objectGUID"</para>
            <para type="description">"objectSid"</para>
            <para type="description">"AdsPath"</para>
            <para type="description">
                Whenever "AdsPath" Is Used Without The Domain Controller In It, The CmdLet Will Add The Specified With
                "DomainController" Parameter One Or Will Add The Current Logon Server If "DomainController" Parameter Is Not
                Specified.
            </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 The Logon Server.</para>
            <para type="description">This Prevents Issues Related With AD Replication.</para>
            <para type="description">
                In Multi Domain Forests Specifying Of Domain Controller Responsible For The AD Domain Where The AD Objects Are
                Located Is Required.
            </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">Sets The Specified Int32 Value On Specified AD Attribute Of Specified AD Object.</para>
            <para type="description">Sets The Specified Int32 Value On Specified AD Attribute Of Specified AD 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.SnsAdInt32]$objResult = Set-SnsAdInt32Attribute `
                -Identity "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.Identity">
            <summary>
            <para type="description">Specifies The Identity Of An Active Directory Object To Be Modified.</para>
            <para type="description">As Identity Can Be Used The Value In One Of The Following AD Attributes:</para>
            <para type="description">"DistinguishedName"</para>
            <para type="description">"objectGUID"</para>
            <para type="description">"objectSid"</para>
            <para type="description">"AdsPath"</para>
            <para type="description">
                Whenever "AdsPath" Is Used Without The Domain Controller In It, The CmdLet Will Add The Specified With
                "DomainController" Parameter One Or Will Add The Current Logon Server If "DomainController" Parameter Is Not
                Specified.
            </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 The Logon Server.</para>
            <para type="description">This Prevents Issues Related With AD Replication.</para>
            <para type="description">
                In Multi Domain Forests Specifying Of Domain Controller Responsible For The AD Domain Where The AD Objects Are
                Located Is Required.
            </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">Sets The Specified Values On AD Object Multi Valued String Attribute While Removing Any Existing Values.</para>
            <para type="description">Sets The Specified Values On AD Object Multi Valued String Attribute While Removing Any Existing Values.</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 `
                -Identity "CN=Group01,OU=Groups,DC=contoso,DC=com" -Attribute "msExchExtensionCustomAttribute1" `
                -Value "TestValue01", "TestValue02";
              </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.Identity">
            <summary>
            <para type="description">Specifies The Identity Of An Active Directory Object To Be Modified.</para>
            <para type="description">As Identity Can Be Used The Value In One Of The Following AD Attributes:</para>
            <para type="description">"DistinguishedName"</para>
            <para type="description">"objectGUID"</para>
            <para type="description">"objectSid"</para>
            <para type="description">"AdsPath"</para>
            <para type="description">
                Whenever "AdsPath" Is Used Without The Domain Controller In It, The CmdLet Will Add The Specified With
                "DomainController" Parameter One Or Will Add The Current Logon Server If "DomainController" Parameter Is Not
                Specified.
            </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 The Logon Server.</para>
            <para type="description">This Prevents Issues Related With AD Replication.</para>
            <para type="description">
                In Multi Domain Forests Specifying Of Domain Controller Responsible For The AD Domain Where The AD Objects Are
                Located Is Required.
            </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>
            <para type="description">
                Although The CmdLet Can Be Used To Set Values In Any Multi Valued String Attribute. It Is Not Good Idea To Be
                Used For Modifying Group Members. The Active Directory Have A Limitation Related With The Reverted Number Of
                Values Within An Attribute. Therefore If The Group Members Are Above The Threshold The Verification Will Fail
                Because The Member Will Be Not Among The Reverted Results. For That Purpose Is Preferable To Be Used The
                CmdLets With Noun SnsAdGroupMember From This Module.
            </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.SetSnsAdProtectFromAccidentalDeletion">
            <summary>
            <para type="synopsis">Sets "Protect object from accidental deletion" Flag On Specified AD Objects.</para>
            <para type="description">Sets "Protect object from accidental deletion" Flag On Specified AD Objects.</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.SnsAdProtectFromAccidentalDeletion]$objResult = Set-SnsAdProtectFromAccidentalDeletion `
                -InputObject "CN=John Smith,OU=Users,DC=contoso,DC=com";
              </code>
              <para></para>
            </example>
            <example>
              <code>
                [SnsPsModule.SnsAdProtectFromAccidentalDeletion]$objResult = Set-SnsAdProtectFromAccidentalDeletion `
                -InputObject "CN=John Smith,OU=Users,DC=contoso,DC=com" -Unprotect;
              </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.SetSnsAdProtectFromAccidentalDeletion.Identity">
            <summary>
            <para type="description">Specifies The Identity Of An Active Directory Object To Be Modified.</para>
            <para type="description">As Identity Can Be Used The Value In One Of The Following AD Attributes:</para>
            <para type="description">"DistinguishedName"</para>
            <para type="description">"objectGUID"</para>
            <para type="description">"objectSid"</para>
            <para type="description">"AdsPath"</para>
            <para type="description">
                Whenever The CmdLet Will Be Used To Modify Multiple User Accounts In Different AD Domain In Multi Domain
                Forest Must Be Used "AdsPath" With Included Domain Controller From The Corresponding Domain Where The
                Specified Domain Object Is Located.
            </para>
            <para type="description">
                Whenever "AdsPath" Is Used Without The Domain Controller In It, The CmdLet Will Add The Specified With
                "DomainController" Parameter One Or Will Add The Current Logon Server If "DomainController" Parameter Is Not
                Specified.
            </para>
            </summary>
        </member>
        <member name="P:SnsPsModule.SetSnsAdProtectFromAccidentalDeletion.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 The Logon Server.</para>
            <para type="description">This Prevents Issues Related With AD Replication.</para>
            <para type="description">
                In Multi Domain Forests Specifying Of Domain Controller Responsible For The AD Domain Where The AD Objects Are
                Located Is Required.
            </para>
            </summary>
        </member>
        <member name="P:SnsPsModule.SetSnsAdProtectFromAccidentalDeletion.Unprotect">
            <summary>
            <para type="description">Specifies To Remove "Protect object from accidental deletion" Flag.</para>
            </summary>
        </member>
        <member name="P:SnsPsModule.SetSnsAdProtectFromAccidentalDeletion.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">Sets "The user must change password at next logon" Flag On Specified Active Directory Account.</para>
            <para type="description">Sets "The user must change password at next logon" Flag On Specified Active Directory Account.</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 `
                -InputObject "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.Identity">
            <summary>
            <para type="description">Specifies The Identity Of An Active Directory Object To Be Modified.</para>
            <para type="description">As Identity Can Be Used The Value In One Of The Following AD Attributes:</para>
            <para type="description">"DistinguishedName"</para>
            <para type="description">"objectGUID"</para>
            <para type="description">"objectSid"</para>
            <para type="description">"AdsPath"</para>
            <para type="description">
                Whenever The CmdLet Will Be Used To Modify Multiple User Accounts In Different AD Domain In Multi Domain
                Forest Must Be Used "AdsPath" With Included Domain Controller From The Corresponding Domain Where The
                Specified Domain Object Is Located.
            </para>
            <para type="description">
                Whenever "AdsPath" Is Used Without The Domain Controller In It, The CmdLet Will Add The Specified With
                "DomainController" Parameter One Or Will Add The Current Logon Server If "DomainController" Parameter Is Not
                Specified.
            </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 The Logon Server.</para>
            <para type="description">This Prevents Issues Related With AD Replication.</para>
            <para type="description">
                In Multi Domain Forests Specifying Of Domain Controller Responsible For The AD Domain Where The AD Objects Are
                Located Is Required.
            </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">Modifies Or Creates Registry Key Values.</para>
            <para type="description">Modifies Or Creates Registry Key Values.</para>
            <para type="description">The CmdLet Requires 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">Sets The Specified String Value On Specified AD Attribute Of Specified AD Object.</para>
            <para type="description">Sets The Specified String Value On Specified AD Attribute Of Specified AD 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.SnsAdString]$objResult = Set-SnsAdStringAttribute `
                -Identity "CN=John Smith,OU=Users,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.Identity">
            <summary>
            <para type="description">Specifies The Identity Of An Active Directory Object To Be Modified.</para>
            <para type="description">As Identity Can Be Used The Value In One Of The Following AD Attributes:</para>
            <para type="description">"DistinguishedName"</para>
            <para type="description">"objectGUID"</para>
            <para type="description">"objectSid"</para>
            <para type="description">"AdsPath"</para>
            <para type="description">
                Whenever "AdsPath" Is Used Without The Domain Controller In It, The CmdLet Will Add The Specified With
                "DomainController" Parameter One Or Will Add The Current Logon Server If "DomainController" Parameter Is Not
                Specified.
            </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 The Logon Server.</para>
            <para type="description">This Prevents Issues Related With AD Replication.</para>
            <para type="description">
                In Multi Domain Forests Specifying Of Domain Controller Responsible For The AD Domain Where The AD Objects Are
                Located Is Required.
            </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>