我正在创建一个xml文件,使用"get- service“并试图获取正在运行的服务的名称和状态。如果我只是使用" get -service service“然后是服务的名称,我将获得我需要的数据。但是,它不会以这种方式写入xml文件。因此,我尝试使用get-service -name "name of service”| select-object name,status。这会抛出“无法找到重载...”
有什么建议吗?
我尝试只使用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文档包含名称和状态。我可能只是对现状感到满意...
发布于 2019-02-15 02:24:02
由于(Get-Service -Name Name-of-Some-Service | Select-Object Name, Status)传递的数据如下所示,因此引发了'WriteElementString‘错误
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()https://stackoverflow.com/questions/54696391
复制相似问题