Форум программистов, компьютерный форум, киберфорум
PowerShell
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 14.06.2018
Сообщений: 19

Получение списка установленного софта на ПК пользователей в корпоративной сети предприятия

03.08.2018, 07:43. Показов 1803. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день.
Столкнулся с задачей описанной в заголовке.
Необходимо получить список софта установленного на пользовательских ПК и наполнить полученной информацией например EXEL файл.
Возможно кто то сталкивался с подобной задачей и есть какие то наработки.
буду признателен за помощь.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.08.2018, 07:43
Ответы с готовыми решениями:

1С 8.2. УФ. Получение списка Параметров Формы в режиме предприятия
Всех приветствую! Задача: Получить список декларативных параметров формы из вне (то есть вне формы). Например, есть ПолноеИмяФормы:...

Учет абонентов корпоративной связи предприятия
Помогите, нужно создать БД "Учет абонентов корпоративной связи предприятия" сам только начал изучать Делфи и не совсем понимаю как это...

Получение списка пользователей
Можно ли как-то данное окно вызвать средствами C#, чтобы пользователь в нём выбрал то, что ему надо, нажал ОК и далее получить данные из...

4
 Аватар для KDE777
1886 / 1108 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
06.08.2018, 10:38
Цитата Сообщение от Dennis87 Посмотреть сообщение
Необходимо получить список софта установленного на пользовательских ПК и наполнить полученной информацией например EXEL файл.
Вывод через Excel + Фильтрация по слову
Получить данные об установленных программах из удалённого реестра
0
0 / 0 / 0
Регистрация: 14.06.2018
Сообщений: 19
08.08.2018, 14:41  [ТС]
Добрый день
На основе прочитанной статьи попытался адаптировать код под себя, вот что вышло:

PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
clear-host
$comp = 'z1300139369160' # имя удаленного компа
$rk = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey('LocalMachine', $comp , 'Registry64')
$top = 'HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall'
$key = $rk.OpenSubKey($top)
$key.GetSubKeyNames() | ForEach-Object {
  $sub = $rk.OpenSubKey("$($top)\$_")
 
  New-Object PSObject -Property @{
    Top = $_
    DisplayName = $sub.GetValue('DisplayName')
  } | Select-Object Top, DisplayName
 
  $sub.Dispose()
} | Format-List | Out-File C:\Users\Nikiforov.D\Downloads\qwe.txt -Encoding Default
 
$key.Dispose()
$rk.Dispose()
При выполнении возникает ошибка:
Невозможно вызвать метод для выражения со значением NULL.
строка:6 знак:1
+ $key.GetSubKeyNames() | ForEach-Object {
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: ( [], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull

Невозможно вызвать метод для выражения со значением NULL.
строка:17 знак:1
+ $key.Dispose()
+ ~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: ( [], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull

подскажите что я сделал не так
0
 Аватар для KDE777
1886 / 1108 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
08.08.2018, 15:02
Цитата Сообщение от Dennis87 Посмотреть сообщение
подскажите что я сделал не так
В переменной $top не нужно писать "HKLM"

PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
clear-host
$comp = 'z1300139369160' # имя удаленного компа
 
$rk = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey('LocalMachine', $comp, 'Registry64')
$top = 'SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall'
$key = $rk.OpenSubKey($top)
 
$key.GetSubKeyNames() | ForEach-Object {
    $sub = $rk.OpenSubKey("$($top)\$_")
 
    New-Object PSObject -Property @{
        Top = $_
        DisplayName = $sub.GetValue('DisplayName')
    } | Select-Object Top, DisplayName
 
    $sub.Dispose()
} | Export-Csv C:\Users\Nikiforov.D\Downloads\qwe.csv -NoType -enc UTF8
 
$key.Dispose()
$rk.Dispose()
0
 Аватар для KDE777
1886 / 1108 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
09.08.2018, 13:02
+ ещё вариант:

PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#$computers = Import-Csv 'c:\Data\computers.csv'
$computers = 'localhost'
 
$regPath = "Microsoft\Windows\CurrentVersion\Uninstall"
$list = @()
 
foreach($comp in $computers)
{
 
 
    foreach ($UninstallKey in "SOFTWARE\$regPath","SOFTWARE\Wow6432Node\$regPath")
    {
        $reg = [microsoft.win32.registrykey]::OpenRemoteBaseKey('LocalMachine',$comp) 
        $regkey = $reg.OpenSubKey($UninstallKey) 
 
        foreach($key in $regkey.GetSubKeyNames())
        {
            $thisSubKey = $reg.OpenSubKey("$UninstallKey\$key")
 
            $Obj = New-Object PSObject -Property @{
            "ComputerName"    = $comp;
            "DisplayName"     = $thisSubKey.GetValue("DisplayName");
            "DisplayVersion"  = $thisSubKey.GetValue("DisplayVersion");
            "InstallLocation" = $thisSubKey.GetValue("InstallLocation");
            "Publisher"       = $thisSubKey.GetValue("Publisher")
            }
 
            $list += $obj; $thisSubKey.Dispose()
        }
        $reg.Dispose(); $regkey.Dispose()
    }
 
 
}
 
cls
$list | ? DisplayName | ? DisplayName -NotMatch 'Update' | ft -auto
#$list | Export-csv $CsvPath -Encoding utf8 -Force -NoTypeInformation -Delimiter ";"
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.08.2018, 13:02
Помогаю со студенческими работами здесь

Получение списка пользователей Windows
Получаем список всех локальных пользователей на компьютере Вариант №1 DirectoryEntry localMachine = new...

Получение списка всех пользователей
Пока пробую таким способом, но на точке остонова пишет пустой элемент dropDownUser. private ApplicationDbContext dbUser =...

Получение списка пользователей на сервере
Доброго, Не подскажете элегантный способ програмно получить полный список пользователей? Задача: Админ на сервере запускает базу, она...

Получение списка зарегистрированных пользователей
при регистрации пользователя, добавляются запись в базу данных aspnetdb.mdf в таблицу aspnet_Users... как получить список всех...

Возможно ли обновить ОС х32 до x64 без потери установленного софта?
Добрый день. Хотелось бы узнать - можно ли проапгрейдить виндоус 32 до 64 без потери установленных программ. Процессор поддерживает.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru