PnP.PowerShell - AADSTS700016: Application with identifier was not found in the directory

AADSTS700016: Application with identifier '31359c7f-bd7e-475c-86db-fdb8c937548e' was not found in the directory ''. This can happen if the application has not been installed by the administrator of the tenant or consented to by any user in the tenant. You may have sent your authentication request to the wrong tenant.

PnP.PowerShell

Pokud se Vám nedaří zaregistrovat do tenantu PnP.PowerShell a vrací se Vám výše uvedená chyba, zde je postup, jak ji lze celkem rychle vyřešit.

pnp.powershell AADSTS700016

Je potřeba zaregistrovat ID aplikace v Microsoft Entra pro PnP PowerShell. Po instalaci modulu PnP.PowerShell postupujte takto:

Register-PnPEntraIDAppForInteractiveLogin -ApplicationName "PnP PowerShell" -SharePointDelegatePermissions "AllSites.FullControl" -Tenant vastenant.onmicrosoft.com -Interactive

Tento příkaz zaregistruje aplikaci v Entra ID. Pozor na identifikátor tenantu (-Tenant) - musíte zadat fallback doménu vašeho tenantu.

PnP Powershell Entra ID registred App

V Entra ID si můžete ověřit, že je aplikace "PnP PowerShell" skutečně zaregistrovaná a rovnou si poznačte Application ID (= Client ID).

Občas se stane, že výše uvedený příkaz skončí chybou. Alternativně můžete použít příkaz v kontextu Globálního správce:

Register-PnPEntraIDApp -ApplicationName "PnP PowerShell" -Tenant vastenant.onmicrosoft.com -Interactive
pnp powershell grant permissions

Po úspěšném dokončení příkazu bude zaregistrovaná Enterprise Aplikace v Entra ID. I v tomto případě si poznačte Application ID.

Pnp PowerShell - Application ID

Jakmile je aplikace správně zaregistrovaná, lze se k PnP PowerShell připojit následujícím způsobem:

# Enterprise Application ID = Client ID
$ClientID = "cf1fd5c4-XXXXX-XXXXX-XXXXXX-YYYYYYYYYY"

# Connect to Sharepoint site - edit URL parameter
Connect-PnPOnline -url https://vastenant.sharepoint.com/sites/vaseSite -Interactive -ClientId $ClientID

Application ID lze také uložit do systémové proměnné. Já tuto variantu nepoužívám, protože se často hlásím do více tenantů a raději používám proměnné v kódu. Registrace systémové proměnné a připojení k Sharepoint site:

# Enterprise Application ID = Client ID
$ClientID = "cf1fd5c4-XXXXX-XXXXX-XXXXXX-YYYYYYYYYY"

# Add Enterprise Application ID to Environment variable
[System.Environment]::SetEnvironmentVariable("ENTRAID_CLIENT_ID", $ClientID, [EnvironmentVariableTarget]::User)

# Connect to SharePoint Online site
Connect-PnPOnline -Url "https://vastenant.sharepoint.com/sites/vaseSite" -Interactive
Miroslav Šraga

Sdílím své zkušenosti s Microsoft 365 a Azure. Návody, řešení problémů a postřehy ze správy IT.