Servidor de informes local: Powershell para actualizar la cadena de conexión

Un usuario Pregunto ✅

steveearle86

Hola,

Tengo un servidor de informes de PowerBI en las instalaciones y he realizado una copia de seguridad y restaurado la base de datos de producción en un servidor de prueba. Quiero actualizar las cadenas de conexión en el servidor de prueba para que las fuentes de datos apunten a la base de datos en el servidor de prueba.

mi codigo es el siguiente

$ReportServerURI = "http://MyServer/Reports"

$powerBIs = Get-RsFolderContent -RsFolder '/Path/To/My/Folder' -ReportServerUri $ReportServerURI -Recurse | Where-Object -Property "Name" -EQ "My Report";
$pbi = $powerBIs[0]
$rds = Get-RsRestItemDataSource -WebSession $session -RsItem $pbi.Path | Where-Object {$_.DataModelDataSource.Kind -eq "SQL"}
$rds[0].ConnectionString = "myNewServer;DatabaseName"
Set-RsRestItemDataSource -WebSession $session -RsItem $pbi.Path -DataSources $rds -RsItemType PowerBIReport;

Si ejecuto el código hasta el primer comando Set-RsRestItemDataSource y luego hago lo siguiente:

  • navegue a /Path/To/My/Folder en la GUI web
  • Haga clic en las elipses
  • Haz clic en Administrar
  • Haga clic en Fuentes de datos

Puedo ver que la cadena de conexión se actualizó para la fuente de datos que mi código actualizó. Sin embargo, si hago clic en «Probar credenciales» para esa fuente de datos, falla (a pesar de que esas credenciales tienen acceso a DatabaseName en myNewServer)

Puedo actualizar las credenciales manualmente y luego la prueba se realiza correctamente.

Si luego creo un nuevo plan de actualización programada y hago clic en «Actualizar ahora», aparece un error:

[0] -1055784932: se requieren credenciales para conectarse a la fuente SQL. (Fuente en myOldSever;DatabaseName.). La excepción fue generada por la interfaz IDbCommand.
[1] -1055129594: La operación actual se canceló porque falló otra operación en la transacción.

parece que la actualización programada todavía usa la cadena de conexión original que acabo de actualizar. ¿Cómo puedo obtener el plan de actualización programado para usar la nueva cadena de conexión actualizada?

Hola @steveearle86, algunas cosas:

  1. ¿Puede decirme qué versión de ReportServer está utilizando? Nuestra versión actual es Power BI Report Server de enero de 2021. Información aquí: Notas de la versión de enero de 2021. Si no está en enero de 2021, ¿puede actualizar primero a esta versión?
  2. Después de actualizar a la versión de enero de 2021, ¿puede habilitar el registro detallado e intentar la serie de acciones nuevamente? Puede encontrar información aquí: PBIRS Habilitar registro detallado
  3. Finalmente, es por diseño que deberá proporcionar credenciales para la nueva conexión, incluso si resultan ser el mismo nombre de usuario/contraseña.

steveearle86

En respuesta a gsprague

Hola,

Gracias por su respuesta. estamos en versión Versión 1.9.7604.41261 (octubre de 2020) en la actualidad. Tenemos planes de actualizar a enero de 2021 pero, irónicamente, nos gustaría resolver esto primero si es posible, ya que nos permite crear un entorno de prueba.

En cuanto a su tercer punto, tiene sentido (y pensé que podría ser el caso) puedo permitirlo en mi secuencia de comandos, sin embargo, primero necesito entender por qué la actualización no funciona después de una actualización manual de las credenciales.

He habilitado el registro detallado para nuestro servidor, ¿dónde se registra la información?

En respuesta a steveearle86

Para la versión de enero de 2021, el registro detallado contiene información adicional en los registros para diagnosticar errores de actualización programada. En la misma versión, también solucionamos algunos errores de actualización programados.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *