Изменить RSReportServer.config с помощью PowerShell - PullRequest
0 голосов
/ 01 апреля 2020

Как добавить / изменить тег Типы аутентификации в файле RSReportServer.config с помощью PowerShell? В настоящее время у меня есть

<Authentication>  
      <AuthenticationTypes>  
         <RSWindowsNegotiate/>   
      </AuthenticationTypes>  
      <EnableAuthPersistence>true</EnableAuthPersistence>  
   </Authentication>

Я хочу добавить еще две строки в тег AuthenticationTypes

<Authentication>  
      <AuthenticationTypes>  
         <RSWindowsNegotiate/>  
         <RSWindowsNTLM/>
         <RSWindowsBasic/>  
      </AuthenticationTypes>  
      <EnableAuthPersistence>true</EnableAuthPersistence>  
   </Authentication>

1 Ответ

1 голос
/ 01 апреля 2020

Это упрощенный c подход с учетом деталей вопроса.

$x = [xml](Get-Content -Path '<pathToFile>\RSReportServer.config')
$node = $x.Authentication.AuthenticationTypes
$node.AppendChild($x.CreateNode([System.Xml.XmlNodeType]::Element,'RSWindowsNTLM',$null))
$node.AppendChild($x.CreateNode([System.Xml.XmlNodeType]::Element,'RSWindowsBasic',$null))
$x.Save('<pathToFile>\RSReportServer.config')

Вы по сути выбираете свой родительский узел ($node). Используйте метод AppendChild(), чтобы добавить вновь созданный узел. Вы можете легко создать узел, используя метод CreateNode(), предоставленный экземпляром XmlDocument ($x).

Вы должны использовать полный путь к файлу конфигурации при использовании метода Save().


Для более динамичного подхода c вы можете создать коллекцию узлов для добавления. Затем l oop через коллекцию и добавить только недостающие узлы в узел AuthenticationTypes.

$NodesToAdd = 'RSWindowsNegotiate','RSWindowsNTLM','RSWindowsBasic'
$x = [xml](Get-Content -Path '<pathToFile>\RSReportServer.config')
$node = $x.Authentication.AuthenticationTypes
foreach ($item in $NodesToAdd) {
    if (!$node.Item($item)) {
    $node.AppendChild($x.CreateNode([System.Xml.XmlNodeType]::Element,$item,$null))
    }
}
$x.Save('<pathToFile>\RSReportServer.config')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...