如何通过Powershell更新AppDynamics .net代理?

时间:2019-04-15 22:16:40

标签: .net xml powershell appdynamics

对于编码不是什么新手,但是我之前一直在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>

2 个答案:

答案 0 :(得分:0)

您处在正确的轨道上,但不是在说您有错误或显示错误。但是,根据您到目前为止的经验,我确定您已经知道PowerShell提供了用于处理XML的cmdlet。

使用---

Get-Command -Name '*xml*' | ft -a  

或使用---

从MS PowerShellGallery.com获取其他XML模块。
Find-Module -Name '*xml*' | ft -a 

---并安装适合您所需目标的一个。

当然,有很多关于该主题的示例和视频。搜索“使用XML的PowerShell”会给您带来很多成功。

PowerShell Data Basics: XML

在大多数情况下,您会发现与已发布的内容非常相似。但是,您说要添加节点/元素,但这不在您的文章中,因此,类似下面的内容应该会有所帮助。

$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的信息

它无法做的是更新的东西,例如“多个业务应用程序”和“自定义节点名称”配置。 (您也无法在安装向导中这样做)