Подтвердить что ты не робот

Не удается извлечь значение узлов XML с помощью powershell

Я пытаюсь извлечь некоторую информацию из xml файла и обновить/создать пул приложений по мере необходимости. Здесь xml, в котором я читаю:

<?xml version="1.0" encoding="utf-8"?>
<appPool name="MyAppPool">
  <enable32BitAppOnWin64>true</enable32BitAppOnWin64>
  <managedPipelineMode>Integrated</managedPipelineMode>
  <managedRuntimeVersion>v4.0</managedRuntimeVersion>
  <autoStart>true</autoStart>
</appPool>

Вот что я пытаюсь сделать с ним:

#read in the xml
$appPoolXml = [xml](Get-Content $file)

#get the name of the app pool
$name = $appPoolXml.appPool.name

#iterate over the nodes and update the app pool
$appPoolXml.appPool.ChildNodes | % {
     #this is where the problem exists
     set-itemproperty IIS:\AppPools\$name -name $_.Name -value $_.Value
}

$_.Name возвращает имя node, (т.е. enable32BitAppOnWin64), которое является правильным, но свойство .Value ничего не возвращает. Как извлечь нужные данные?

4b9b3361

Ответ 1

Исправленный ответ:

Вы хотите $_.'#text' вместо $_.Value.

Рассмотрим это также, которое использует свойство InnerText для объектов System.Xml.XmlElement:

$xml.appPool.ChildNodes | % {$.Name; $.InnerText};