powershell - 找不到“WriteElementString”的重载和参数计数:“2”
问题描述
我正在创建一个 xml 文件并使用“get-service”并尝试获取正在运行的服务的名称和状态。如果我只使用“get-service -name”然后是服务的名称,我会得到我需要的数据。但是,它不会那样写入 xml 文件。因此,我试图 get-service -name “name of服务”| 选择对象名称,状态。这会引发“找不到重载...”
有什么建议么?
我曾尝试仅使用 get-service“服务名称”,但写入 xml 文件的内容再次只是服务名称。我试图通过管道传输选择对象名称、状态,并且如上所述引发了错误。
# Set the File Name Create The Document
$XmlWriter = [System.XML.XmlWriter]::Create("G:\TestEnvironmentScript\$env:COMPUTERNAME-State.xml", $xmlsettings)
# Write the XML Decleration and set the XSL
$xmlWriter.WriteStartDocument()
$xmlWriter.WriteProcessingInstruction("xml-stylesheet", "type='text/xsl' href='style.xsl'")
# Start the Root Element
$xmlWriter.WriteStartElement("morestuff")
$xmlWriter.WriteStartElement("ServerInformation") # <-- Start <Object>
$xmlWriter.WriteElementString("ServerName",$env:COMPUTERNAME)
$xmlWriter.WriteElementString("StateCheckTime",(Get-Date -Format G))
$xmlWriter.WriteStartElement("Services") # <-- Start <SubOject>
$XmlWriter.WriteElementString("nameofsomeservice",(Get-Service -Name Name-of-Some-Service | Select-Object Name, Status))
$xmlWriter.WriteEndElement() # <-- End <Object>
$xmlWriter.WriteEndElement() # <-- End <Root>
# End, Finalize and close the XML Document
$xmlWriter.WriteEndDocument()
$xmlWriter.Flush()
$xmlWriter.Close()
我只希望 xml 文档包含名称和状态。我可能只是对状态感到满意......
解决方案
'WriteElementString' 错误被抛出,因为正在传递的数据
(Get-Service -Name Name-of-Some-Service | Select-Object Name, Status)
就像
Name Status
---- ----
ServiceName Running
如果将服务结果放入变量中,则可以引用每个元素并获得所需的结果
# Set the File Name Create The Document
$XmlWriter = [System.XML.XmlWriter]::Create("G:\TestEnvironmentScript\$env:COMPUTERNAME-State.xml", $xmlsettings)
# Write the XML Decleration and set the XSL
$xmlWriter.WriteStartDocument()
$xmlWriter.WriteProcessingInstruction("xml-stylesheet", "type='text/xsl' href='style.xsl'")
# Start the Root Element
$xmlWriter.WriteStartElement("morestuff")
$xmlWriter.WriteStartElement("ServerInformation") # <-- Start <Object>
$xmlWriter.WriteElementString("ServerName",$env:COMPUTERNAME)
$xmlWriter.WriteElementString("StateCheckTime",(Get-Date -Format G))
$xmlWriter.WriteStartElement("Services") # <-- Start <SubOject>
$serviceState = (Get-Service -Name Name-of-Some-Service | Select-Object Name, Status)
$XmlWriter.WriteElementString("nameofsomeservice", ($serviceState.Name, $serviceState.Status))
$xmlWriter.WriteEndElement() # <-- End <Object>
$xmlWriter.WriteEndElement() # <-- End <Root>
# End, Finalize and close the XML Document
$xmlWriter.WriteEndDocument()
$xmlWriter.Flush()
$xmlWriter.Close()
推荐阅读
- java - 使用 POI 库时出现 ClassNotFoundException org.apache.commons.collections4.ListValuedMap
- java - 如何通过 Selenium 访问框架内的嵌套 html
- php - phpmailer无法发送电子邮件
- haskell - I think there is a type mismatch in default definition in instance Applicative Maybe in Haskell
- python - 如何用python进行离散优化
- gcc - 为什么在Makefile中的`-L`之后`-R`
- google-sheets - 带有逻辑语句的 Google 表格查询
- javascript - 将json列表传递给jinja模板烧瓶中的javascript(python)
- python - 如何在 pd.Excel() 数据框中使用 pandas python 在特定行中附加列?
- html - 应用 nth-child 不起作用