cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Helper I
Helper I

Error de PowerShell al intentar actualizar el conjunto de datos de PowerBi

El siguiente error se produce cuando intento ejecutar un script powershell para powerbi

Error:

Invoke-RestMethod : El servidor remoto devolvió un error: (401) No autorizado.
En la línea:74 char:1
+ Invoke-RestMethod -Uri $uri –Headers $authHeader –Method POST –Verbos ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-RestMethod], WebException
+ FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeRestMethodCommand

Guión

• Este script de ejemplo llama a la API de Power BI para desencadenar progastáticamente una actualización para el conjunto de datos
A continuación, llama a la API de Power BI para obtener progammaticalmente el historial de actualización de ese conjunto de datos
Para obtener documentación completa sobre las API de REST, consulte:
https://msdn.microsoft.com/en-us/library/mt203551.aspx

• Instrucciones:
# 1. Instalar PowerShell (https://msdn.microsoft.com/en-us/powershell/scripting/setup/installing-windows-powershell) y los cmdlets de Azure PowerShell (https://aka.ms/webpi-azps)
# 2. Configurar un conjunto de datos para la actualización en el servicio Power BI: asegúrese de que el conjunto de datos puede
• Actualizado con éxito
# 3. Rellene los parámetros a continuación
# 4. Ejecute el script de PowerShell

• Parámetros: ¡rellénalos antes de ejecutar el script!
# =====================================================

• Una manera fácil de obtener el ID de grupo y conjunto de datos es ir a la configuración del conjunto de datos y hacer clic en el conjunto de datos
Que te gustaría refrescarte. Una vez que lo haga, la URL en la barra de direcciones mostrará el ID de grupo y
• ID de conjunto de datos, en el formato:
• app.powerbi.com/groups/'groupID'/settings/datasets/'datasetID'

$groupID : "EX": el identificador del grupo que hospeda el conjunto de datos. Use "yo" si este es su Mi espacio de trabajo
$datasetID : "EX": el identificador del conjunto de datos que hospeda el conjunto de datos

• ID de cliente de AAD
Para obtener esto, vaya a la página siguiente y siga los pasos para aprovisionar una aplicación
https://dev.powerbi.com/apps
• Para que el ejemplo funcione, asegúrese de que tiene los siguientes campos:
• Tipo de aplicación: aplicación nativa
• URL de redirección: urn:ietf:wg:oauth:2.0:oob
• Nivel de acceso: todas las API del conjunto de datos
$clientId de la $clientId "EX"

• Parámetros finales ?

• Llama a la biblioteca de autenticación de Active Directory (ADAL) para autenticarse en AAD
función GetAuthToken
{
if(-not (Get-Module AzureRm.Profile))
Import-Module AzureRm.Profile
}

$redirectUri "urn:ietf:wg:oauth:2.0:oob"

$resourceAppIdURI "https://analysis.windows.net/powerbi/api"

$authority "https://login.microsoftonline.com/common/oauth2/authorize";

$authContext - New-Object "Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext" -ArgumentList $authority

$authResult á $authContext.AcquireToken($resourceAppIdURI, $clientId, $redirectUri, "Auto")

$authResult de retorno
}

• Obtener el token de autenticación de AAD
$token - GetAuthToken

• Creación del encabezado de la API rest con token de autorización
$authHeader de la casa de los valores de la página de
'Content-Type'''application/json'
'Autorización'-$token. CreateAuthorizationHeader()
}

• Dar formato correctamente a la ruta de los grupos
$groupsPath ""
si ($groupID -eq "me")
$groupsPath "myorg"
•otra cosa?
$groupsPath : "myorg/groups/$groupID"
}

• Actualizar el conjunto de datos
$uri "https://api.powerbi.com/v1.0/$groupsPath/datasets/$datasetID/refreshes"
Invoke-RestMethod -Uri $uri –Headers $authHeader –Method POST –Verbose

• Compruebe el historial de actualización
$uri "https://api.powerbi.com/v1.0/$groupsPath/datasets/$datasetID/refreshes"
Invoke-RestMethod -Uri $uri –Headers $authHeader –Method GET –Verbose

6 REPLIES 6
Frequent Visitor

He estado usando powershell para actualizar los conjuntos de datos powerbi desde el principio de los tiempos y recientemente está recibiendo este error:

¿Esta solución sigue funcionando para el resto de ustedes?

Invoke-RestMethod -Uri $uri –Headers $authHeader –Method GET –Verbose
VERBOSE: POST https://api.powerbi.com/v1.0/myorg/groups/editedtohidden/datasets/editedtohidden/refreshes con la carga de 0 bytes
Invoke-RestMethod : Se cerró la conexión subyacente: se produjo un error inesperado en un envío.
En line:74 char:1
+ Invoke-RestMethod -Uri $uri –Headers $authHeader –Method POST –Verbos ...
+ + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
    . . . . . . . . . . . . . . . . . .          . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . WebException
    + FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeRestMethodCommand
 
VERBOSE: GET https://api.powerbi.com/v1.0/myorg/groups/editedtohidden/datasets/editedtohidden/refreshes con la carga útil de 0 bytes
Invoke-RestMethod : Se cerró la conexión subyacente: se produjo un error inesperado en un envío.
En la línea:78 char:1
+ Invoke-RestMethod -Uri $uri –Headers $authHeader –Method GET –Verbose
+ ? •
    CategoryInfo :          InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-RestMethod], WebException
    

parece que olvidó especificar la carga de autenticación.

Tuve que añadir esta línea al código:

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 
Community Support
Community Support

Hola , @EUGENEG

¿Podría decirme si su problema ha sido resuelto?
Si es así, marque las respuestas útiles o agregue su respuesta como Respondida para cerrar este hilo.
Más gente aprenderá cosas nuevas aquí. Si no lo ha hecho, por favor no dude en preguntar.

Saludos
Equipo de soporte de la comunidad _ Eason

Hola problema resuelto gracias

Super User III
Super User III

El encabezado de autenticación es incorrecto (como dice el mensaje de error). Puede validar con el probador de API en línea

por ejemplo https://docs.microsoft.com/en-us/rest/api/power-bi/datasets/refreshdatasetingroup (pulse el botón de probarlo)

Helpful resources

Announcements
secondImage

Happy New Year from Power BI

This is a must watch for a message from Power BI!

December Update

Check it Out!

Click here to read more about the December 2020 Updates!

Community Blog

Check it Out!

Click here to read the latest blog and learn more about contributing to the Power BI blog!

Get Ready for Power BI Dev Camp

Get Ready for Power BI Dev Camp

Mark your calendars and join us for our next Power BI Dev Camp!.

Top Solution Authors
Top Kudoed Authors