无法转换参数“1”,值为:“”,表示“InsertBefore”

时间:2012-08-23 13:47:00

标签: powershell-v2.0

我试图将一个子节点()添加到reportserver.config文件中,但是我得到了一个错误,我实际上并不知道如何努力。以下是我的所作所为。

$ webConfigPath =" C:\ Program Files \ Microsoft SQL Server \ MSRS10_50.SNDPRO \ Reporting Services \ ReportServer \ rsreportserver.config"

$ xml = [xml](get-content $ webConfigPath)

$ child = $ xml.CreateElement(" RSWindowsNegotiate")

$ xml.Configuration.Authentication.AuthenticationTypes.InsertBefore($ child," $ xml.Configuration.Authentication.AuthenticationTypes.RSWindowsNTLM")

$ xml.Save($ webConfigPath)

错误是:无法转换参数" 1",值为:"",for" InsertBefore"输入" System.Xml.XmlNode":"无法转换"" type" System.String"的值输入" System.Xml.XmlNode"。"

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

我认为使用空XML元素作为属性时,powershell会做一些奇怪的事情(在本例中为RSWindowsNTLM)。试试这个:

$RSWindowsNTLM = $xml.Configuration.Authentication.AuthenticationTypes.SelectSingleNode("RSWindowsNTLM");
$xml.Configuration.Authentication.AuthenticationTypes.InsertBefore($child, $RSWindowsNTLM)