cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Highlighted
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
Highlighted
Super User II
Super User II

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)

Highlighted
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

Highlighted

Hola problema resuelto gracias

Highlighted
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
    

Highlighted

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

Highlighted

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

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

Helpful resources

Announcements
Community Conference

Power Platform Community Conference

Check out the on demand sessions that are available now!

Community Conference

Microsoft Power Platform Communities

Check out the Winners!

secondImage

Create an end-to-end data and analytics solution

Learn how Power BI works with the latest Azure data and analytics innovations at the digital event with Microsoft CEO Satya Nadella.

Top Solution Authors