Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
EUGENEG
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

1 ACCEPTED SOLUTION
v-easonf-msft
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

View solution in original post

6 REPLIES 6
bihumano
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 
v-easonf-msft
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

lbendlin
Super User
Super User

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
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.