Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Доступность виртуализации (http://forum.oszone.net/showthread.php?t=347695)

fgevat 19-01-2021 18:29 2946876

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

Iska 19-01-2021 18:48 2946882

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

Phoenix 19-01-2021 18:55 2946884

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

greg zakharov 19-01-2021 19:05 2946887

Речь должно быть об этом, за номером 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, нужно знать скорее отладчик и приёмы работы с ним. На сей раз это не сарказм.

yurfed 19-01-2021 19:13 2946890

Цитата:

Цитата Iska
начиная с Intel 386. »

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

Iska 19-01-2021 19:14 2946891

Цитата:

Цитата greg zakharov
Код:

[Runtime.InteropServices.Marshal]::ReadByte([IntPtr]0x7ffe0289)
»

У меня сие даёт «0».

А CPU-Z — это:



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

Foreigner 19-01-2021 19:30 2946894

systeminfo.exe
Get-ComputerInfo

Phoenix 19-01-2021 19:48 2946896

Цитата:

Цитата greg zakharov
Phoenix, нужно знать скорее отладчик и приёмы работы с ним. »

А я грешным делом подумал, что ТС про Hyper-V вопрошает.
Ну ок.

Iska 19-01-2021 19:57 2946899

Цитата:

Цитата Phoenix
что ТС про Hyper-V вопрошает. »

Мы пока этого не знаем.

greg zakharov 19-01-2021 20:05 2946903

Цитата:

Цитата 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

Iska 19-01-2021 20:33 2946905

Цитата:

Цитата greg zakharov
Короче, просто гляньте вывод: »

Скрытый текст
Код:

PS C:\> (0..64).ForEach{'{0}: {1}' -f $_, [Runtime.InteropServices.Marshal]::ReadByte([IntPtr](0x7ffe0274 + $_))}
0: 0
1: 0
2: 1
3: 1
4: 0
5: 0
6: 1
7: 0
8: 1
9: 1
10: 1
11: 0
12: 1
13: 1
14: 1
15: 0
16: 0
17: 1
18: 0
19: 0
20: 0
21: 0
22: 0
23: 0
24: 0
25: 0
26: 0
27: 0
28: 0
29: 0
30: 0
31: 0
32: 0
33: 0
34: 0
35: 0
36: 0
37: 0
38: 0
39: 0
40: 0
41: 0
42: 0
43: 0
44: 0
45: 0
46: 0
47: 0
48: 0
49: 0
50: 0
51: 0
52: 0
53: 0
54: 0
55: 0
56: 0
57: 0
58: 0
59: 0
60: 0
61: 0
62: 0
63: 0
64: 255

PS C:\>


greg zakharov 19-01-2021 20:38 2946906

А в BIOS\UEFI всё включено?
Стоп! А версия винды какая? Фича распознаётся начиная с восьмёрки.

Iska 20-01-2021 07:13 2946933

Цитата:

Цитата greg zakharov
А версия винды какая? Фича распознаётся начиная с восьмёрки. »

Оно самое. Windows 7 SP1 x64.

greg zakharov 20-01-2021 10:26 2946948

Iska, что касательно семёрки, то в ней многие вещи, являющиеся вполне привычными в последующих версиях, только формировались (хотя официально и подавались под соусом инновационных технологий, но это на совести MS). Правда сейчас сложно вспомнить выводит ли systeminfo.exe что-то о виртуализации, но вроде в диспетчере задач там был такой параметр. В принципе, можно нарисовать cpuid на pwsh (благо это не столь большая наука) и пошукать в листе 0x80000001 (вроде бы в нем водятся данные о VT-x и AMD-x). Более пока идей никаких.

Iska 20-01-2021 21:01 2947023

Подождём, что скажет автор темы, а то он после десяти вечера более не появлялся.

fgevat 20-01-2021 23:00 2947048

в моем случае вопрос решен

Phoenix 21-01-2021 03:20 2947054

Цитата:

Цитата fgevat
в моем случае вопрос решен »

В твоём случае, таких как ты, в бан пожизненный надо отправлять.
За хамско-потребительское отношение к виртуальному сообществу, т.е. к людям.

greg zakharov 22-01-2021 12:20 2947224

Цитата:

Цитата Phoenix
За хамско-потребительское отношение к виртуальному сообществу...

Звучит так, будто вы состоите в интимных отношениях с виртуализацией.


Время: 14:32.

Время: 14:32.
© OSzone.net 2001-