Microsoft Tenant Abfrage via Powershell

Microsoft Tenant Abfrage via Powershell

Es ist mir schon mehrfach passiert, dass ich beim Anlegen eines Office 365 Tenants die Meldung bekommen habe, dass der gewählte Tenant Name bereits vergeben ist.
Da mich das immer wieder gewurmt hat, das nicht im Vorfeld klären zu können dachte ich mir, dass muss doch auch anderst gehen.
Lange Rede kure recherche, vielleicht gibt es eine Möglichkeit der Microsoft Tenant Abfrage via Powershell?
Ich habe div. Hinweise gefunden, dass man eine AJAX Datei ansprechen kann um eine Auswertung zu bekommen.
Also versuchen wir das ganze mal via Browser. Im Technet habe ich dann noch die Syntax gefunden um die API anzusprechen.
Um eine Abfrage via Powershell durchzuführen, reicht ein kleines PowerShell Script

param( $name )

$uri = "https://portal.office.com/Signup/CheckDomainAvailability.ajax"
$body = "p0=" + $name + "&assembly=BOX.Admin.UI%2C+Version%3D16.0.0.0%2C+Culture%3Dneutral%2C+PublicKeyToken%3Dnull&class=Microsoft.Online.BOX.Signup.UI.SignupServerCalls"

$response = Invoke-RestMethod -Method Post -Uri $uri -Body $body

$valid = $response.Contains("SessionValid")
if ($valid -eq $false)
{
  Write-Host -ForegroundColor Red $response
  Exit
}

$available = $response.Contains("<![CDATA[1]]>")
if ($available) {
  Write-Host -ForegroundColor Green "FREI"
} else {
  Write-Host -ForegroundColor Red "VERGEBEN"
}

Wir geben dem Script als Parameter lediglich den namen mit, den der Tenant bekommen soll. Den Rest sollte es dann von alleine machen.
Microsoft hat uns bereits einen Punkt gefertigt, an dem wir ansetzen können. https://portal.office.com/Signup/CheckDomainAvailability.ajax
Nun senden wir lediglich den von uns definierten Domain Namen an und bekommen eine Antwort ob frei oder vergeben.

Jetzt noch kurz die Antworten entsprechend einfärben. Vergeben wird rot angezeigt, Frei wird grün angezeigt.
Für dieses Script muss ausgehend der Port 443 also HTTPS erlaubt sein. Ansonsten wird das Script fehl schlagen.

Hier der Perma Link