Configuration Manager – Domyślny URL raportów w konsoli administratora

Projekt bez nazwy(60)

Konsola administratora Configuration Manager-a daje możliwość uruchamiania raportów poprzez przeglądarkę internetową. Można zauważyć, że domyślny URL zapisany jest w samej konsoli:

Niestety nie przewidziano tutaj przycisku „Change URL”, co przydałoby się w przypadku przejścia na protokół HTTPS, albo chociaż dla wymuszenia nazwy FQDN serwera raportowego w miejsce nazwy NetBIOS.

Jak zmienić domyślny URL nie uciekając się do reinstalacji serwera raportowego (SRS Reporting Point) lub bezpośredniej edycji danych w tabeli SQL?

 

Jak zwykle sterowanie Configuration Manager-em zapewnia WMI. Trzeba więc połączyć się z SMS WMI Provider-em (zazwyczaj umieszczony na CM Primary Site Server), do przestrzeni nazewniczej root\SMS\Site_{SMSSITECODE}, a następnie posługując się zapytaniem WQL uzyskać domyślny URL.

Interesująca nas właściwość zapisana jest w instancji klasy SMS_EmbeddedProperty jako właściwość Value2, która na szczęście jest określona jako zapisywalna.[1]

Zamianę URL ReportManager (a następnie ReportServer) można przeprowadzić za pomocą skryptu Powershell[2]:

 

#Zmiana domyslnego URL w konsoli CM dla raportów

$property = „ReportManagerUri”

#$property = „ReportServerUri”

$SMSSITECODE = „P00”

$SMSWMIPROVIDER = „WIN-DCLAB-CM”

$str1 = „http://win-dclab-sql/”

$str2 = „http://win-dclab-sql.dc.lab/”

 

$NAMESPACE = „root\SMS\Site_” + $SMSSITECODE

$QUERY = 'SELECT * FROM SMS_SCI_SYSRESUSE WHERE rolename = „SMS SRS Reporting Point”’

 

$RP = get-wmiobject -Namespace $NAMESPACE -Computername $SMSWMIPROVIDER  -Query $QUERY

 

$props = $RP.props

$prop = $props | WHERE {$_.PropertyName -eq $property}

 

$NewURL = $prop.Value2.Replace($str1, $str2)

 

$prop.Value2 = $NewURL

$RP.props = $props

$RP.Put()

 

W skrypcie należy zmienić wartości zmiennych, aby odpowiadały używanym nazwom ($SMSWMIPROVIDER , $str1 , $str2), a także wstawić właściwy kod CM Site ($SMSSITECODE)

 

W efekcie dwukrotnego użycia skryptu (raz dla $property = „ReportManagerUri” , a następnie $property = „ReportServerUri”) otrzymujemy:

[1] https://learn.microsoft.com/en-us/mem/configmgr/develop/reference/core/servers/configure/sms_embeddedproperty-server-wmi-class

[2] Ustawienie wartości bazuje na skrypcie opisanym w https://techcommunity.microsoft.com/t5/configuration-manager-archive/content-distribution-priorities/ba-p/273393

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.

W ten sposób odwołania do raportów wykorzystywać będą pełną nazwę DNS-ową (FQDN). Używając analogicznej konstrukcji można zastąpić protokół http przez HTTPS, co oczywiście wymaga wcześniejszego przygotowania serwera raportowego.