function Register-FQDN
{
 $FQDN = $args[0]
 echo "`n Creating a new identifier for $FQDN ..."
    echo "`n $FQDN"
 New-ACMEIdentifier -Dns $FQDN -Alias $FQDN | select status, Expires
 Get-ACMEIdentifier -IdentifierRef $FQDN
 echo "`n Completing the challenge for the new identifier for $FQDN ..."
    $challenge = Complete-ACMEChallenge $FQDN -Verbose -Regenerate -ChallengeType dns-01 -Handler manual -HandlerParameters @{ WebSiteRef = $FQDN } #| select Identifier, status, Expires *>&1 >> $acmelog
 
    $rec = ($challenge.Challenges | Where-Object {$_.type -eq "dns-01"}).challenge.recordname
    $data = ($challenge.Challenges | Where-Object {$_.type -eq "dns-01"}).challenge.recordvalue
    Store-DNS $rec $data
 echo "`n Submitting the new identifier for $FQDN ..."
 Submit-ACMEChallenge $FQDN -ChallengeType dns-01 | select Identifier, status, Expires *>&1 >> $acmelog
    do 
    {
        $auth = ((Update-ACMEIdentifier $FQDN -ChallengeType dns-01).Challenges | Where-Object {$_.Type -eq "dns-01"}).status
        if($auth -eq "invalid") {break}
        echo "`n Waiting for a valid authorization ... Current status is $auth"
    Start-Sleep -s 3        
    }until ($auth -eq "valid")
    Update-ACMEIdentifier $FQDN | select Identifier, status, Expires *>&1 >> $acmelog
}
function Find-Zone
{
    $z = $args[0]
    $za = $z.Split('.')
    $c = 0
    $zt = $za[$c..$za.Length]
     while ((Get-DnsServerZone -ComputerName $dnsserver |  Where-Object {$_.ZoneName -like '*'+($zt -join '.') } | Measure-Object).Count -ne 1)
            {
                $c += 1
                $zt = $za[$c..$za.Length]
            }
    return ($zt -join '.'),((Compare-Object $za $zt -PassThru) -join '.')
}
function Store-DNS 
{
    $rec = $args[0]
    $data = $args[1]
    $zones = Find-Zone $rec
    $zone = $zones[0]
    $rr = $zones[1]
    # Ensure that the old record isn't there still
    Remove-DnsServerResourceRecord -ComputerName $dnsserver -ZoneName $zone -Name $rr -RRType Txt
    Add-DnsServerResourceRecord -ComputerName $dnsserver -ZoneName $zone -Name $rr -Txt -DescriptiveText $data
}
#NOTE: Uncoment and edit the lines below
#---------------------------------------
$dnsserver = "server02"Complete-ACMEChallenge -VaultProfile my-vault -IdentifierRef my-
domain-com -ChallengeType http-01 -Handler manual -HandlerParameters
@{WriteOutPath = "c:\Users\me\inst.txt&"}