Использование POWERShell CmdLet для вывода списка установленного программного обеспечения и извлечения имени программного обеспечения
У меня есть сценарий POWERSHELL, чтобы проверить наличие предопределенного списка программного обеспечения: $SoftList = "Microsoft Visual C++ 2005 Redistributable","TotoInexistant","GIMP 2.6.11"
определить список программного обеспечения, которое я хочу проверить.
Я использую цикл для сравнения названия каждого программного обеспечения в приведенном выше списке, чтобы выполнить команду следующим образом:
foreach($i in $SoftList)
{
$x = Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* |
select DisplayName, Publisher, InstallDate | Where-Object {$_.DisplayName -like $i}
$x
$x.DisplayName >> ListOf.txt # or we can to display it on screen
}
Проблема, с которой я сталкиваюсь, заключается в том, что $x.DisplayName не записывает имя для "Microsoft Visual C++ 2005 Redistributable". Как извлечь имя программного обеспечения из переменной $ x?
2 ответа
Спасибо за вашу помощь, я нашел решение, на самом деле переменная $x для Microsoft Visual C++ 2005 Redistributable
массив, может быть потому, что он установлен дважды,Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* |
select DisplayName, Publisher, InstallDate
вернуть две строки, содержащие информацию о Microsoft Visual C++ 2005 Redistributable
, чтобы получить displayName в этом случае я адаптирую свой скрипт следующим образом:
if($x-is [array])
{
for($k=0;$k-le $x.length-1;$k++)
{
$x[$k].DisplayName
}
}
Можете ли вы попробовать эту версию? Он использует ваш код с исправлениями Арко.
$SoftList = "Microsoft Visual C++ 2005 Redistributable","TotoInexistant","GIMP"
foreach($i in $SoftList)
{
$x = Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* |
select DisplayName, Publisher, InstallDate | Where-Object {$_.DisplayName -like $("$i*")}
$x.DisplayName
$x.DisplayName | Out-File "ListOf.txt" -Append -Force
}
Я получаю вывод:
Microsoft Visual C++ 2005 Redistributable (x64)
GIMP 2.8.14