Форум программистов, компьютерный форум, киберфорум
Администрирование Windows
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
 Аватар для Dinkin
783 / 556 / 136
Регистрация: 31.05.2013
Сообщений: 3,182
Записей в блоге: 3

Wmi получение данных об установленом софте

23.08.2018, 14:23. Показов 2986. Ответов 57
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго!
Через WMI запрос (SELECT * FROM Win32_Product) получаю список установленого софта на ПК. Но в этом списк много лишнего, такое как пачи или компонент и тд.
Можно ли как то отфильтровать по параметром, что бы получить точно такой же список как и через форму "Программы и компоненты" на ОС?....
Делалал через поиск по реестру, там еще больше лишнего.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.08.2018, 14:23
Ответы с готовыми решениями:

Получение данных по компьютеру без WMI
Каким образом можно получить ProcessorID без использования конкретно ManagementObjectSearcher? Добавлено через 19 секунд Может каким...

Получение версии BIOS-а без использования WMI
Необходимо получить информацию из SMBIOS Structure Table Entry Point под названиями SMBIOSMajorVersion и SMBIOSMinorVersion. Была попытка...

[C#+WMI]Можно ли через WMI узнать температуру процессора и ядер?
Можно ли через WMI узнать температуру процессора и ядер? Щас лопачу сайты вожусь но русскоязычной документации по WMI нету :( А тем...

57
 Аватар для Dinkin
783 / 556 / 136
Регистрация: 31.05.2013
Сообщений: 3,182
Записей в блоге: 3
28.08.2018, 17:38  [ТС]
Студворк — интернет-сервис помощи студентам
Просканил на своем компе, все норм, видимо дело в правах..Спасибо! Думаю еще обращсь к вашей помощи, по результатам дальнейших тестов.
0
7690 / 2887 / 1110
Регистрация: 06.06.2017
Сообщений: 9,816
28.08.2018, 17:39
Так скрипт и надо на своём (а не удалённом) компе запускать. )
0
 Аватар для Dinkin
783 / 556 / 136
Регистрация: 31.05.2013
Сообщений: 3,182
Записей в блоге: 3
28.08.2018, 17:43  [ТС]
ну тоесть в RemoteComp я подставляю свой комп, все норм, если другой в локалке, то выдает ошибку = )
0
7690 / 2887 / 1110
Регистрация: 06.06.2017
Сообщений: 9,816
28.08.2018, 18:03
А, ясно. Ну, на своём достаточно этого.
В общем, решайте с правами.

Добавлено через 14 минут
Вообще не было смысла проверять с именем своей машины, т.к. в этом случае проблемная часть просто не отрабатывает.
0
 Аватар для Dinkin
783 / 556 / 136
Регистрация: 31.05.2013
Сообщений: 3,182
Записей в блоге: 3
28.08.2018, 18:15  [ТС]
Запустил с правами админа, тажа ошибка)

Добавлено через 3 минуты
А а такой вопрос, что делает скрипт, читает ветки реестра?
0
7690 / 2887 / 1110
Регистрация: 06.06.2017
Сообщений: 9,816
28.08.2018, 18:16
Именно с wscript.exe?
А как поведёт себя скрипт, если закомментировать 13-19 строки?

Добавлено через 1 минуту
Не читает, а записывает, чтобы получить доступ для WSHController.
0
 Аватар для Dinkin
783 / 556 / 136
Регистрация: 31.05.2013
Сообщений: 3,182
Записей в блоге: 3
28.08.2018, 18:23  [ТС]
Цитата Сообщение от FlasherX Посмотреть сообщение
А как поведёт себя скрипт, если закомментировать 13-19 строки?
Выдает ошибку компиляции.

Цитата Сообщение от FlasherX Посмотреть сообщение
Не читает, а записывает, чтобы получить доступ для WSHController.
Хех,в первый раз слышу про такое. Просто я не первый год ищу инфу, как получить аналогичный список, как только не делал, и вот впервые столкнулся, что мне кто то через скрипт показал. И конечно стало инетерсно, откуда этот скрипт, читает информацию =))
0
7690 / 2887 / 1110
Регистрация: 06.06.2017
Сообщений: 9,816
28.08.2018, 18:43
Цитата Сообщение от Dinkin Посмотреть сообщение
Выдает ошибку компиляции.
А можно целиком текст?
Цитата Сообщение от Dinkin Посмотреть сообщение
Хех,в первый раз слышу про такое.
Имелось в виду в закомментированной части. А так он лезет на другую машину, читает список из "Программы и компоненты", записывает в файл на шаре и открывает его в умолчательном редакторе. В реестре же он делает одну запись и выполняет wscript.exe -regserver для удалённого запуска через WSHController.
1
 Аватар для Dinkin
783 / 556 / 136
Регистрация: 31.05.2013
Сообщений: 3,182
Записей в блоге: 3
28.08.2018, 18:52  [ТС]
FlasherX, Во первых, спасибо что продолжаете работать над моей проблемой и вот сам
Вот так я закоментил
Кликните здесь для просмотра всего текста

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
RemoteComp = "LOCAL0396"             ' имя удалённого компьютера
SharePath  = "D:\\folder"  ' папка на шаре, куда сохранится список
 
Set FSO = CreateObject("Scripting.FileSystemObject")
File = FSO.BuildPath(SharePath, RemoteComp & "-AllPrograms.txt")
If StrComp(RemoteComp, CreateObject("WScript.Network").ComputerName, 1) = 0 Then
   For Each I In CreateObject("Shell.Application").NameSpace("shell:::{7B81BE6A-CE2B-4676-A29E-EB907A5126C5}").Items
      List = List & vbCrLf & I.Name
   Next
   With FSO.CreateTextFile(File, 1) .Write Mid(List, 3) : .Close : End With
Else
   If Not FSO.FolderExists(SharePath) Then MsgBox "Нет папки " & SharePath & "!", 4144 : WSH.Quit
   'With GetObject("winmgmts:{impersonationLevel=Impersonate}!")
   '   For Each Comp in Array(".", RemoteComp)
    '     .Get("\\" & Comp & "\root\default:StdRegProv").SetStringValue _
    '     2147483650, "SOFTWARE\Microsoft\Windows Script Host\Settings", "Remote", "1"
     '    .Get("\\" & Comp & "\root\CIMV2:Win32_Process").Create "wscript.exe -regserver"
    '  Next
   'End With
   Set RScript = WSH.CreateObject("WSHController").CreateScript(WSH.ScriptFullName, RemoteComp)
   RScript.Execute : Do : WSH.Sleep 50 : Loop Until RScript.Status = 2
   CreateObject("Shell.Application").ShellExecute File
End If


и картинка ошибки
Кликните здесь для просмотра всего текста

Цитата Сообщение от FlasherX Посмотреть сообщение
читает список из "Программы и компоненты"
А где этот список он читает, где он там лежит то?)
0
7690 / 2887 / 1110
Регистрация: 06.06.2017
Сообщений: 9,816
28.08.2018, 19:01
Система x64? Если скрипт запустить так?: %WinDir%\SysWOW64\wscript.exe "Path\2\script.vbs"
Цитата Сообщение от Dinkin Посмотреть сообщение
А где этот список он читает, где он там лежит то?)
В смысле "где лежит"? )) Скрипт перебирает элементы виртуальной папки.
0
 Аватар для Dinkin
783 / 556 / 136
Регистрация: 31.05.2013
Сообщений: 3,182
Записей в блоге: 3
28.08.2018, 19:04  [ТС]
Цитата Сообщение от FlasherX Посмотреть сообщение
Система x64? Если скрипт запустить так?: %WinDir%\SysWOW64\wscript.exe "Path\2\script.vbs"
Такая же ошибка =)

Цитата Сообщение от FlasherX Посмотреть сообщение
В смысле "где лежит"? )) Скрипт перебирает элементы списка виртуальной папки.
А как в эту папку подпают списки, или как к ней получить путь?)
0
7690 / 2887 / 1110
Регистрация: 06.06.2017
Сообщений: 9,816
28.08.2018, 19:37
Цитата Сообщение от Dinkin Посмотреть сообщение
Такая же ошибка =)
В папках system32 и SysWOW64 нет wshcon.dll? Можно скачать и зарегить.
Цитата Сообщение от Dinkin Посмотреть сообщение
А как в эту папку подпают списки, или как к ней получить путь?)
Почему списки-то? Там собираемая системой через msi-установщики коллекция установленных объектов. Доступ к виртуальным папкам осуществляется через GUID (CLSID key). В 7-ой строке см.: shell:::{7B81BE6A-CE2B-4676-A29E-EB907A5126C5}
То же самое будет, если ::{GUID} заменить именем объекта: shell:ChangeRemoveProgramsFolder
1
 Аватар для Dinkin
783 / 556 / 136
Регистрация: 31.05.2013
Сообщений: 3,182
Записей в блоге: 3
28.08.2018, 23:53  [ТС]
Цитата Сообщение от FlasherX Посмотреть сообщение
В папках system32 и SysWOW64 нет wshcon.dll
Есть) Мне кажется проблема в скрипте, так как я в разных локальных системах как только не проверял, под разными правами, везде одна и таже ошибка =)

Совсем забыл, что сетевые иена, надо с двух слешей начинать...если так, то ошибка другая
Миниатюры
Wmi получение данных об установленом софте  
0
7690 / 2887 / 1110
Регистрация: 06.06.2017
Сообщений: 9,816
29.08.2018, 00:49
Цитата Сообщение от Dinkin Посмотреть сообщение
Есть)
С регистрацией?
Цитата Сообщение от Dinkin Посмотреть сообщение
Мне кажется проблема в скрипте
Вообще там синтаксис верный.
Он же ругается на создание объекта. Отделим корневой объект. Есть ругань?:
Visual Basic
1
Set WSHController = WSH.CreateObject("WSHController")
Цитата Сообщение от Dinkin Посмотреть сообщение
Совсем забыл, что сетевые иена, надо с двух слешей начинать...если так, то ошибка другая
16 строка исходника не могла такое показать. И она в последнем случае закомментирована.
Сетевое имя тут как раз нельзя начинать с двух бэкслэшей.
И путь с буквой диска к каталогу для файла тоже не должен иметь сдвоенных черт. Там ошибка, хотя к данной проблеме не относится. К тому же буква должны быть подключена как у исходной машины, так и у испытуемой, иначе надо задавать UNC-путь.
0
 Аватар для Dinkin
783 / 556 / 136
Регистрация: 31.05.2013
Сообщений: 3,182
Записей в блоге: 3
29.08.2018, 11:34  [ТС]
Цитата Сообщение от FlasherX Посмотреть сообщение
Отделим корневой объект
Эм не понял ...что там закоментить или убрать надо?)
0
7690 / 2887 / 1110
Регистрация: 06.06.2017
Сообщений: 9,816
29.08.2018, 11:59
Выполнить как отдельный скрипт.
0
 Аватар для Dinkin
783 / 556 / 136
Регистрация: 31.05.2013
Сообщений: 3,182
Записей в блоге: 3
29.08.2018, 12:08  [ТС]
FlasherX, Да срабатывает)
0
7690 / 2887 / 1110
Регистрация: 06.06.2017
Сообщений: 9,816
29.08.2018, 12:22
Dinkin, значит, дело в разрешении, установку которого мы закомментировали. Попробуйте вручную на испытуемой машине выполнить:
Visual Basic
1
2
3
4
5
With GetObject("winmgmts:{impersonationLevel=Impersonate}!")
   .Get("\\.\root\default:StdRegProv").SetStringValue _
   2147483650, "SOFTWARE\Microsoft\Windows Script Host\Settings", "Remote", "1"
   .Get("\\.\root\CIMV2:Win32_Process").Create "wscript.exe -regserver"
End With
А после на своей (строки оставить закомментированными) выполнить код #30. Только SharePath исправить как полагается.
0
 Аватар для Dinkin
783 / 556 / 136
Регистрация: 31.05.2013
Сообщений: 3,182
Записей в блоге: 3
29.08.2018, 12:35  [ТС]
Выдает точно такую же ошибку, как с крине у #30, может я там что лишнее закоментил и вы не обратили внимания?
0
7690 / 2887 / 1110
Регистрация: 06.06.2017
Сообщений: 9,816
29.08.2018, 12:52
Там закомментированы ровно те строки, на которые я указал. Ту машину можно было ещё перезапустить на всякий.
Проверим её видимость в РГ:
Visual Basic
1
2
3
4
RemoteComp = "LOCAL0396"
For Each N In CreateObject("Shell.Application").NameSpace(18).Items
    If N.Name = RemoteComp Then Test = True : Exit For
Next : If Test Then MsgBox "Есть.", 4160 Else MsgBox "Нет.", 4144
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.08.2018, 12:52

Поставщик HiPerfCooker_v1 зарегистрирован в пространстве имен WMI Root\WMI с правами локальной системы
Поставщик HiPerfCooker_v1 зарегистрирован в пространстве имен WMI Root\WMI с правами локальной системы. Это может привести к нарушениям...

Переход на Windows 7 64-bit при установленом Ubuntu
У меня сейчас стоит Window 7 32-bit и Ubuntu. Я хочу поставить Windows 7 64-bit и оставить Ubuntu. Возможно ли это сделать без удаления...

Как получить сведения о системе, оборудовании и установленом ПО на c#?
Как получить сведения о системе, оборудовании и установленом ПО на c#?Если можете помочь, то прошу откликнуться как можно скорее!Диплом...

Перевод полученных данных через WMI в понятное представление
Здравствуйте, допустим у меня есть код который получает информацию о процессоре (или о чем ни будь другом в системе), но некоторые значения...

Можно ли в данном случае сделать лаконичней ? Сбор данных WMI
Приходится собирать данные о машине. Я использую WMI. Приходится выводить их на консоль. И также в файл. Вопрос, можно ли сделать (на...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru