I often need a tenant ID for a given customer, the usual method to get it is to log in to the Azure portal and find it there. But what if you want to get the tenant ID programmatically? Without actually logging in? And you only know the log in name of a user? Or just one of the customer’s domain names?

Then this’ll help you out!
function get-tenantIdFromLogin(){ <# .SYNOPSIS Retrieves an Office 365 / Azure AD tenant ID for a given user login name (email address) .EXAMPLE $tenantId = get-tenantIdFromLogin -Username you@domain.com .PARAMETER Username the UPN of a user .NOTES filename: get-tenantIdFromLogin.ps1 author: Jos Lieben blog: www.lieben.nu created: 8/3/2019 #> Param( [Parameter(Mandatory=$true)]$Username ) $openIdInfo = Invoke-RestMethod "https://login.windows.net/$($Username.Split("@")[1])/.well-known/openid-configuration" -Method GET return $openIdInfo.userinfo_endpoint.Split("/")[3] }
Obviously, you can also get the tenant ID by just filling out bogus info in front of the user’s login (e.g. bogus@ogd.nl), it’ll still work as only the domain part of the login is really used.
Hope this helps someone 🙂
Git link: https://gitlab.com/Lieben/assortedFunctions/blob/master/get-tenantIdFromLogin.ps1
Got it… ignore above comment
How to run it? If I run PS script , nothis happens. Doesn’t prompt to enter any user if.