Powershell reg запрос и формирование таблицы - PullRequest
0 голосов
/ 17 сентября 2018
$array = @()
$path="C:\Reports\Software.txt"
$programs = Get-Content -Path $Path;
foreach ($program in $programs) 
{
$system64=Get-ItemProperty 
HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | 
Select DisplayName, DisplayVersion | where {$_.DisplayName -like 
"*$program*"};
$system32=Get-ItemProperty 
HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*  | Select 
DisplayName, DisplayVersion| where {$_.DisplayName -like "*$program*"};

if ($system64)
{
Write-Host "npp query = "$system64""
Write-Host "npp query = "$system32""
Write-Host -ForegroundColor green "$program already installed!"

        $array += $system64
}
elseif ($system32)
{
Write-Host "npp query = "$system64""
Write-Host "npp query = "$system32""
Write-Host -ForegroundColor green "$program already installed!" 
$array +=  $system32
}
else
{
$array +=  $program
}
}
$array |Export-Csv C:\Reports\Software.csv -NoType 

Я пытаюсь создать таблицу с определенным программным обеспечением, имеющимся у меня на компьютере, и его версией.

Я хотел бы, чтобы программа не выходила, чтобы ввести имя программного обеспечения под заголовком DisplayName ипод заголовком DisplayVersion поставить Not Installed.

Работает нормально, если программное обеспечение существует, но если его нет, оно не помещает имя под заголовком и не ставит пустую строку в файле excel.

пример, который я беру сейчас:

DisplayVersion DisplayName                                              
Gimp            2.8.22
7-Zip           18.01

Notepad++       7.5.8

Что я хочу

DisplayVersion DisplayName
Gimp            2.8.22                                                     
7-Zip           18.01
Adobe Acrobat   Not Installed                       
Notepad++       7.5.8

какие-либо предложения?

1 Ответ

0 голосов
/ 17 сентября 2018

Дайте этому попытку в своем операторе else:

$array += @(1 | Select-Object @{Name="DisplayName";Expression={$program}},@{Name="DisplayVersion";Expression={'not installed'}})

С этим вы создадите пользовательский объект и добавите его в свой массив.

Надеюсь, это поможет.

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