对于编码不是什么新手,但是我之前一直在python中工作,并且摆脱了我的Powershell和xml的困扰。我们正在尝试自动化AppDynamics的.net代理的部署,并且减少了部署并进行了升级。现在,我试图包括在IIS上运行的特定应用程序和层。因此,这里再次摆脱了锈蚀,但是我正在尝试找到一个简单的脚本来更新config.xml,以添加应用程序并从IIS更新层。这不是一个复杂的xml文件,但是任何帮助或指导都会有所帮助
只是试图找到正确的语法来正确更新节点和参数
#Current work
$config = "mylocation\config.xml"
$configuration = $config
[xml]$xml = New-Object XML
$xml.load($configuration)
#what will make this work !!! I have tried a few things but it's been a
while and I am having to read up on xml again :|
$xml.Save($configuration)
#what I need updated
<?xml version="1.0" encoding="utf-8"?>
<appdynamics-agent xmlns:xsd="http://stuff.com" xmlns:xsi="http://stuff.com">
<controller host="test.saas.appdynamics.com" port="123" ssl="true" enable_tls12="true">
<applications> #need to create this
<application default="true" name="app1" /> #need to add the default='true' if there is more than one app
<application name="App2"/> #this
</applications> #this
<account name="testacct" password="123456" />
</controller>
<machine-agent />
<app-agents>
<IIS>
<applications> #there by default with the default settings
<application controller-application="app1" path="/app1path" site="WebSite1"> # need to add this
<tier name="app1-1" /> #and this
</application> #this too
<application controller-application="app2" path="/app2path" site="WebSite2"> #some more
<tier name="app2-2" /> #you guessed it
</application> #this as well
</applications> #ends with this
</IIS>
</app-agents>
</appdynamics-agent>
答案 0 :(得分:0)
您处在正确的轨道上,但不是在说您有错误或显示错误。但是,根据您到目前为止的经验,我确定您已经知道PowerShell提供了用于处理XML的cmdlet。
使用---
Get-Command -Name '*xml*' | ft -a
或使用---
从MS PowerShellGallery.com获取其他XML模块。Find-Module -Name '*xml*' | ft -a
---并安装适合您所需目标的一个。
当然,有很多关于该主题的示例和视频。搜索“使用XML的PowerShell”会给您带来很多成功。
在大多数情况下,您会发现与已发布的内容非常相似。但是,您说要添加节点/元素,但这不在您的文章中,因此,类似下面的内容应该会有所帮助。
$xml = [xml](Get-Content C:\file.xml)
$elem = $xml.Configuration.ConfigSections.AppendChild($xml.CreateNode([System.Xml.XmlNodeType]::Element,'section',$null))
$elem.SetAttribute('name','something')
$xml.Save('C:\file.xml')
或者甚至直接在IIS服务器上使用WebAdministration module。
答案 1 :(得分:0)
您应该签出AppDynamics代理安装的PowerShell扩展:https://www.appdynamics.com/community/exchange/extension/dotnet-agent-installation-with-remote-management-powershell-extension/
它应该能够处理您要尝试执行的操作,而无需手动生成xml,检查pdf中的高级选项并阅读有关Add-IISApplicationMonitoring cmdlet的信息
它无法做的是更新的东西,例如“多个业务应用程序”和“自定义节点名称”配置。 (您也无法在安装向导中这样做)