получение информации из xml-файла через Power Shell при попытке удалить приложение - PullRequest
0 голосов
/ 11 декабря 2018

У меня возникла проблема с разбором xml-файла

<DisplayName>Remote_Take_Over_S1_0002</DisplayName>

Я пытаюсь получить вышеуказанную информацию из "C:\ProgramData\App-V\1BBEDDA5-595E-4CF7-834A-B282C4981469\0C71FE9F-F1C0-47F9-9518-E94898B6424F\AppxManifest.xml"

Я знаю, как и с чего начатьно я дошел до этого.

            $ComputerName = $txb_hostname.Text

        $RemoteParentPath = Join-Path -Path "\\$ComputerName" -ChildPath 'c$\ProgramData\App-V'

        $RemoteManifestPaths = Get-ChildItem -Path $RemoteParentPath -Recurse -Filter 'AppxManifest.xml' | Select-Object -ExpandProperty FullName

        foreach ($manifestFile in $RemoteManifestPaths)
        {
             $xml = [xml](Get-Content -Path $manifestFile -Raw)
             $xml.SelectSingleNode('//*[local-name()="DisplayName"]/text()').Value 
             LogWrite $xml
        } 

Любые идеи?

Ошибки сейчас Вы не можете вызвать метод для выражения с нулевым значением.В строке: 6 символов: 5

Get-Content: Невозможно найти путь 'H: \ AppxManifest.xml', поскольку он не существует.В строке: 5 символов: 18

удалось отсортировать вышеуказанные ошибки

1 Ответ

0 голосов
/ 11 декабря 2018

Полагаю, вы ищете все файлы AppxManifest.xml по пути c:\ProgramData\App-V на удаленном компьютере (или в данном случае на текущем компьютере, использующем путь UNC к файлу), а затем управляете этим файлом XML вкаким-то образом;может быть, чтобы получить значение DisplayName?

Если так, попробуйте что-то вроде этого:

[string]$ComputerName = $env:COMPUTERNAME
[string]$RemoteParentPath = Join-Path -Path "\\$ComputerName" -ChildPath 'c$\ProgramData\App-V'
[string[]]$RemoteManifestPaths = Get-ChildItem -Path $RemoteParentPath -Recurse -Filter 'AppxManifest.xml' | Select-Object -ExpandProperty FullName
foreach ($manifestFile in $RemoteManifestPaths) {
    $xml = [xml](Get-Content -Path $manifestFile -Raw)
    $xml.SelectSingleNode('//DisplayName/text()').Value
}  

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...