mupan7
Goto Top

Skript für das Reporting 2008 R2 anpassen auf 2014

Hallo ihr,

eine Systemvoraussetzung unseres Produkts ist das Microsoft SQL Server Reporting. Folgendes Skript hat mit SQL Server Express 2008 schon vielen Kunden-Admins das Leben leichter gemacht:

# Configuration of Reporting Services MCN

# "Parameters to check" block
$SqlInstance = "SQLEXPRESS"
# End of "Parameters to check" block


# configuration parameters setup
$RSNameSpace = "root\Microsoft\SqlServer\ReportServer\RS_" + $SqlInstance + "\V12\Admin" # \V10\ für MSSQL 2008 R2
$DBServer = $env:ComputerName + "\" + $SqlInstance
$UseBuiltInServiceAccount = $true
$VirtualDirectoryReportServer = "ReportServer"
$VirtualDirectoryReportManager = "Reports"
$DBName = "ReportServer"
$DbConnCredType = 2 # 0: Windows, 1: SQL Server, 2: Windows service
$DBUserName = ""
$DBPassword = ""
$Lcid = 1033 # Detect / copy e.g. from system locale?
$IsSharePointMode = $false
$IsRemote = $false
$IsWindowsUser = $true

write-host ""
write-host "----- Output -----"

$SSRS = Get-WmiObject -Class "MSReportServer_ConfigurationSetting" -Namespace $RSNameSpace -ComputerName $env:ComputerName -Filter "InstanceName = 'SQLEXPRESS'"
$SSRS.InstanceName

#--setup RS Service Account
write-host ""
write-host "Setup RS Service Account..."
$SSRS.SetServiceState($false, $false, $false)
$SSRS.SetWindowsServiceIdentity($UseBuiltInServiceAccount, "", "")
$SSRS.SetServiceState($true, $true, $true)

#--setup virtual directories
write-host ""
write-host "Setup virtual directories ..."
$SSRS.SetVirtualDirectory("ReportServerWebService", $VirtualDirectoryReportServer, $Lcid)
$SSRS.SetVirtualDirectory("ReportManager", $VirtualDirectoryReportManager, $Lcid)
$SSRS.RemoveURL("ReportServerWebService", "http://+:80", $Lcid)
$SSRS.RemoveURL("ReportManager", "http://+:80", $Lcid)
$SSRS.ReserveURL("ReportServerWebService", "http://+:80", $Lcid)
$SSRS.ReserveURL("ReportManager", "http://+:80", $Lcid)

# Create Reporting Services Database
write-host ""
write-host "Generating and executing database creation script ..."
$script = $SSRS.GenerateDatabaseCreationScript($DBName, $Lcid, $IsSharePointMode)
$OutFile = $Env:temp + "\rs.dbcreate.sql"
$script.Script | Out-File $OutFile
SQLCMD.EXE -S $DBServer -i $OutFile
		
# Setup database connection
write-host ""
write-host "Setup database connection ..."
$SSRS.SetDatabaseConnection($DBServer, $DBName, $DbConnCredType, $DBUserName, $DBPassword)

write-host "------------------"

Die Anpassung an SQL Server Express 2014 schien mit der Änderung des WMI-Namespace getan zu sein. Aber, auch wenn das Skript ohne Fehlermeldung durchgelaufen ist und die Ausgabe suggeriert, dass alles wie immer geklappt hat, beim Öffnen von http://localhost/reports im IE findet der so eingerichtete Reporting Server seine DB nicht. Die augenfälligste Änderung seit 2012 sind die Per-Service-User. Aber wenn ich die Credentials des Reporting-Service-Users für das Abspulen des generierten GenerateDatabaseScripts mit sqlcmd angeben müsste und sollte, wie mache ich das? Wie schreibe ich den, ist das Passwort leer? Die gleichen Fragen gelten für den Ruf von SetDatabaseConnection.

Interaktiv geht's. Bloß was macht der Reporting Services Configuration Manager in 2014 anderscht? Kann man dessen Skripte abfangen und so rauskriegen, wie er das Skript ausführt und die DB Connection aufsetzt? Denn der macht unter der Haube ja nix anderes als ich hier, sieht man ja auch an seiner Ausgabe.

Der RS Configuration Manager 2008 R2 hat nach dem GenerateDatabaseCreationScript noch ein Rechte-Generations-Skript erzeugt, das ich aber nicht benötigt habe, um das Reporting unter 2008 R2 zum Laufen zu kriegen. Vielleicht ist das jetzt anders? Ich werde das mal probieren, die Syntax kriege ich über MSDN raus. Würde mich trotzdem freuen, wenn jemand auch zu dieser Frage Erfahrung und Wissen beizusteuern hätte.

P.S.: Die Locale ID in $Lcid müsste sich doch auch irgendwie ermitteln lassen, oder? Da ich annehme, sie bezieht sich auf die MS-SQL-Server-Installation, nicht auf die Windows-Locale, müsste ich sie vielleicht in der registry abfragen?

Danke für's Mitdenken, Informationen und Erfahrungsberichte. Auch Beispielcode für die kritischen Zeilen ist natürlich gern gesehen, muss aber nicht.

Content-ID: 293543

Url: https://administrator.de/contentid/293543

Ausgedruckt am: 22.11.2024 um 10:11 Uhr

mupan7
mupan7 19.01.2016 um 19:36:05 Uhr
Goto Top
azure.microsoft.com/en-us/documentation/articles/virtual-machines-sql-server-create-native-mode-report-server-powershell/?cdn=disable

Da steht unter Punkt 5. ein Beispielskript, ich glaube, das beantwortet meine Fragen. Jetzt brauch ich »bloß« noch eine jungfräuliche VM ... na ja ... face-wink