![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - Видеоадаптер |
|
PowerShell - Видеоадаптер
|
Забанен Сообщения: 27 |
Каким образом можно узнать модель видеокарты и ассоциированный с ней раздел реестра? Через WMI можно получить только первое, а второе как сделать?
|
|
Отправлено: 09:35, 16-06-2017 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать jkadaba, а что именно Вы подразумеваете под:
Цитата jkadaba:
|
|
Отправлено: 10:21, 16-06-2017 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Забанен Сообщения: 793
|
Также хотелось бы задать вопрос касательно ассоциированного раздела реестра, но все же попробую телепатировать что же имелось в виду. Вроде бы как упомянался WMI, так вот если внимательно посмотреть на вывод:
среди прочего можно заметить свойство PNPDeviceID, указывающее на значения в реестре по пути HKLM\SYSTEM\CurrentControlSet\PCI; там можно найти любую интересующую Вас информацию, а в подразделе, вроде бы, Control есть параметр ActiveService, указывающий на соответсвующий сервис, данные по которому можно отыскать в HKLM\SYSTEM\CurrentControlSet\Services. В принципе, если речь шла о сопутствующем сервисе, можно задействовать WinAPI'шную функцию EnumDisplayDevice(A|W). Например: Скрытый текст
function Get-DisplayDevices { <# .SYNOPSIS Gets information about the display devices in the current session. .NOTES Author: greg zakharov typedef struct _DISPLAY_DEVICE { // A | W DWORD cb; // +0x000 | +0x000 TCHAR DeviceName[32]; // +0x004 | +0x004 TCHAR DeviceString[128]; // +0x024 | +0x044 DWORD StateFlags; // +0x0a4 | +0x144 TCHAR DeviceID[128]; // +0x0a8 | +0x148 TCHAR DeviceKey[128]; // +0x128 | +0x248 } DISPLAY_DEVICE, *PDISPLAY_DEVICE; sizeof(DISPLAY_DEVICE) // 0x1a8 | 0x348 #> begin { $user32, $STATE_FLAGS = (New-Delegate user32 -Signature @{ EnumDisplayDevicesW = [Func[[Byte[]], UInt32, [Byte[]], UInt32, Boolean]] }), @{ AttachedToDesktop = 0x00000001 MultiDriver = 0x00000002 PrimaryDevice = 0x00000004 MirroringDrive = 0x00000008 VgaCompatible = 0x00000010 Removable = 0x00000020 UnsfaeModesOn = 0x00080000 DeviceTSCompatible = 0x00200000 Disconnect = 0x02000000 Remote = 0x04000000 ModeSpruned = 0x08000000 } } process { $ddw = New-Object Byte[](0x348) # DISPLAY_DEVICEW # set size of the DISPLAY_DEVICEW structure before use it $ddw[0] = 0x048 $ddw[1] = 0x003 $i = 0 while ($user32.EnumDisplayDevicesW.Invoke($null, $i, $ddw, 0)) { New-Object PSObject -Property @{ DeviceName = [Text.Encoding]::Unicode.GetString($ddw[4..35]) DeviceString = [Text.Encoding]::Unicode.GetString($ddw[68..195]) StateFlags = $( $f = [BitConverter]::ToUInt32($ddw[324..327], 0) foreach ($key in $STATE_FLAGS.Keys) { if (($f -band $STATE_FLAGS[$key]) -eq $STATE_FLAGS[$key]) { $key } } ) DeviceID = [Text.Encoding]::Unicode.GetString($ddw[328..455]) DeviceKey = [Text.Encoding]::Unicode.GetString( $ddw[584..839] ).Trim("`0") -replace '\\registry\\machine', 'HKLM' } | Select-Object DeviceName, DeviceString, StateFlags, DeviceID, DeviceKey $i++ } } end {} } Вывод примера выше довольно объемный, но Вас это не должно смущать. Основное видеоустройство помечано как PrimaryDevice в StateFlags;DeviceID - то же, что и PNPDeviceID, а DeviceKey указывает на Services в реестре. Хотя в принципе можно все то же получить с помощью командлетов Get-WmiObject, Get-ItemProperty путем простого сопоставления значений реестра. |
Отправлено: 11:15, 16-06-2017 | #3 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Драйвер - [решено] Видеоадаптер в Виндовс 10 | kievskiy17 | Microsoft Windows 10 | 0 | 13-07-2016 21:17 | |
BSOD - Не подключается видеоадаптер | Mr.lol | Хочу все знать | 2 | 09-01-2016 18:38 | |
ВИДЕОАДАПТЕР ноута The DEAD | SiP02 | Ноутбуки | 2 | 21-06-2010 15:24 | |
Драйвер - [решено] отключен видеоадаптер | kuzjka | Microsoft Windows 2000/XP | 5 | 24-11-2009 12:26 | |
Не устанавливается видеоадаптер | inikonov | Microsoft Windows 2000/XP | 15 | 08-09-2003 20:14 |
|