Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - Доступность виртуализации

Ответить
Настройки темы
PowerShell - Доступность виртуализации

Новый участник


Сообщения: 6
Благодарности: 0

Профиль | Отправить PM | Цитировать


Подскажите пжлста как пошем узнать доступна ли в системе виртуализация. Спс заранее!

Отправлено: 18:29, 19-01-2021

 

Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


fgevat, в каком смысле — «виртуализация»? Так-то она доступна, начиная с Intel 386.

Отправлено: 18:48, 19-01-2021 | #2



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

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Phoenix

Ветеран


Сообщения: 1617
Благодарности: 246

Профиль | Отправить PM | Цитировать


Марку процессора и ОС нужно знать.

Отправлено: 18:55, 19-01-2021 | #3


Забанен


Сообщения: 793
Благодарности: 260

Профиль | Цитировать


Речь должно быть об этом, за номером 21:
Цитата docs.microsoft.com:
PF_VIRT_FIRMWARE_ENABLED
21
Virtualization is enabled in the firmware and made available by the operating system.
В сущности функция делает следующее:
Код: Выделить весь код
[Runtime.InteropServices.Marshal]::ReadByte([IntPtr]0x7ffe0289)
Phoenix, нужно знать скорее отладчик и приёмы работы с ним. На сей раз это не сарказм.

Отправлено: 19:05, 19-01-2021 | #4


Аватара для yurfed

Ветеран


Сообщения: 20046
Благодарности: 3123

Профиль | Отправить PM | Цитировать


Цитата Iska:
начиная с Intel 386. »
Да и не забыть включить фичу в БИОС, "Virtualization Technology" если такая фича имеется.

-------
Хочу ли я - Могу ли я - Говно ли я - Магнолия


Отправлено: 19:13, 19-01-2021 | #5


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата greg zakharov:
Код: Выделить весь код
[Runtime.InteropServices.Marshal]::ReadByte([IntPtr]0x7ffe0289)
»
У меня сие даёт «0».

А CPU-Z — это:



Так и должно быть?

Отправлено: 19:14, 19-01-2021 | #6


Ветеран


Сообщения: 1754
Благодарности: 965

Профиль | Цитировать


systeminfo.exe
Get-ComputerInfo

Отправлено: 19:30, 19-01-2021 | #7


Аватара для Phoenix

Ветеран


Сообщения: 1617
Благодарности: 246

Профиль | Отправить PM | Цитировать


Цитата greg zakharov:
Phoenix, нужно знать скорее отладчик и приёмы работы с ним. »
А я грешным делом подумал, что ТС про Hyper-V вопрошает.
Ну ок.

Отправлено: 19:48, 19-01-2021 | #8


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата Phoenix:
что ТС про Hyper-V вопрошает. »
Мы пока этого не знаем.

Отправлено: 19:57, 19-01-2021 | #9


Забанен


Сообщения: 793
Благодарности: 260

Профиль | Цитировать


Цитата Iska:
Так и должно быть?
Если виртуализация отключена в BIOS\UEFI, то да, если включена - скорее всего накосячил с адресом. Давайте разбираться. Код IsProcessorFeaturePresent:
Код: Выделить весь код
sub     rsp,28h
call    qword ptr [kernelbase!_imp_RtlIsProcessorFeaturePresent (00000001`801a8b10)]
nop     dword ptr [rax+rax]
xor     ecx,ecx
test    al,al
setne   cl       ; установка байта по условию ne
mov     eax,ecx
add     rsp,28h
ret
Мысленно нарисовали себе операцию ветвления, в которой задействуется RtlIsProcessorFeaturePresent - экспортируется ntdll.dll:
Код: Выделить весь код
cmp     ecx,40h
jae     ntdll!RtlIsProcessorFeaturePresent+0xe (00000001`80020c6e)
mov     eax,ecx
mov     al,byte ptr SharedUserData+0x274 (00000000`7ffe0274)[rax]
ret
xor     al,al
ret
Что мы видим? Функция тупо берёт соответствующий байт из поля ProcessorFeatures (смещение 0x274) структуры KUSER_SHARED_DATA. Поле представлено как массив из 64-х unsigned char. А далее вы знаете: номера фич совпадают с индексами в массиве. Короче, просто гляньте вывод:
Код: Выделить весь код
(0..63).ForEach{'{0}: {1}' -f $_, [Runtime.InteropServices.Marshal]::ReadByte([IntPtr](0x7ffe0274 + $_))}
Цитата Phoenix:
А я грешным делом подумал, что ТС про Hyper-V вопрошает.
Ну дык, мы сейчас все в телепатов обратились.

И исчо:
Код: Выделить весь код
((gp HKLM:\HARDWARE\DESCRIPTION\System\CentralProcessor\0).FeatureSet -band 0x08000000) -eq 0x08000000

Последний раз редактировалось greg zakharov, 19-01-2021 в 23:06.


Отправлено: 20:05, 19-01-2021 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - Доступность виртуализации

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Разное - [решено] Широкая доступность версии 1903 prozak128 Microsoft Windows 10 3 15-11-2019 21:42
2012 R2 - Доступность ВМ Tanechkamis Windows Server 2012/2012 R2 1 05-10-2018 15:23
Microsoft расширяет доступность групповых видеовызовов в Skype OSZone News Новости и события Microsoft 0 04-08-2015 09:30
Подскажите, как проверить доступность COM-порта. pingUIN Хочу все знать 5 29-09-2008 23:24




 
Переход