Guid файл остается действующим после перезагрузки устройства

Обновлено: 07.07.2024

Что такое GUID?

GUID (глобальный уникальный идентификатор) - это термин, используемый Microsoft для числа, которое ее программа генерирует, чтобы создать уникальную идентичность для объекта, такого как документ Word. Идентификаторы GUID широко используются в продуктах Microsoft для идентификации интерфейсов, наборов реплик, записей и других объектов. Разные виды объектов имеют разные виды GUID - например, база данных Microsoft Access использует 16-байтовое поле для создания уникального идентификатора для репликации.

Типы GUID

Существует 5 версий идентификаторов GUID, определенных в RFC 4122 , каждая с разными свойствами. Чтобы определить версию GUID, просто посмотрите на цифру версии, например, GUID версии 4 имеют формат xxxxxxxx-xxxx- 4 xxx- N xxx-xxxxxxxxxxxx, где N - это одно 5 значений 4, 8,9, A или B.

  • Версия 1: дата-время и MAC-адрес - Эта версия генерируется с использованием текущего времени и MAC-адреса клиента. Это означает, что если у вас есть GUID версии 1, вы можете выяснить, когда он был создан, проверив значение метки времени.
  • Версия 2: DCE Security - Эта версия специально не определена в RFC 4122, поэтому не должна генерироваться совместимыми генераторами. Он аналогичен GUID версии 1, за исключением того, что первые 4 байта метки времени заменяются пользовательским UID или GID POSIX, а старший байт последовательности часов заменяется доменом UID / GID POSIX.
  • Версия 3: MD5 хэш и пространство имен - Этот GUID генерируется путем взятия пространства имен (например, полного доменного имени) и заданного имени, преобразования в байты, объединения и хеширования. После указания специальных битов, таких как версия и вариант, полученные байты затем преобразуются в его шестнадцатеричную форму. Особое свойство этой версии заключается в том, что идентификаторы GUID, сгенерированные из одного и того же имени в одном и том же пространстве имен, будут идентичны, даже если они генерируются в разное время.
  • Версия 4: случайная - Этот тип GUID создается с использованием случайных чисел - из 128 битов в GUID 6 зарезервированы для специального использования (версия + вариантные биты), что дает нам 122 бита, которые могут быть заполнены случайным образом. Спецификация не определяет, как должны генерироваться случайные числа, они могут быть любыми, от псевдослучайных до криптографически безопасных, поэтому эти GUID, как и все другие GUID, следует использовать только для идентификации, а не для безопасности.
  • Версия 5: SHA-1 хэш и пространство имен - Эта версия идентична версии 3 за исключением того, что SHA-1 используется на этапе хеширования вместо MD5.

Разделы реестра, где нужно искать:

  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ Windows\CurrentVersion\Uninstall
  • HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\ Microsoft\Windows\CurrentVersion\Uninstall

Как узнать GUID приложения

Пример вызова компонента Windows диспетчер устройств:
shell. ,для запуска необходимо вызвать диалоговое окно «Выполнить» используя клавиши Win + R, прописать данный код и нажать«OK» Все значения хранятся в разделе реестра HKEY_CLASSES_ROOTCLSID. Зайдя в CLSID поиск, лучше всего производить методом перебора значений для правильного определения в значении должен присутствовать подраздел ShellFolder. Для поиска нужного необходимо иметь время и терпение. Итак, всё по порядку.

Как узнать из реестра GUID приложения в Windows -01

Как узнать из реестра GUID приложения в Windows -01

Раздел реестра HKEY_CLASSES_ROOTCLSID

Клавишами Win + R открываем диалоговое окно «Выполнить» вводим команду regedit - открыть редактор реестра. Для поиска заходим в раздел реестра HKEY_CLASSES_ROOTCLSID

Пример: нам нужен «Панели управления — Control Panel», методом перебора значений находим нужный, смотрим наличие подраздела ShellFolder.

Как узнать из реестра GUID приложения в Windows -02

Как узнать из реестра GUID приложения в Windows -02

Для того, чтобы извлечь и проверить правой клавишей мыши нажимаем на значение, в открывшемся меню выбираем пункт «Экспортировать», и сохраняем с расширением .reg

Как узнать из реестра GUID приложения в Windows -03

Как узнать из реестра GUID приложения в Windows -03

Созданный файл реестра лучше всего открыть программой Notepad ++ познакомиться с которой можно в категории сайта «Офис».Если Вам понравился текстовой редактор Notepad ++ и Вы его установили, то правой клавишей мыши нажимаем на созданный файл реестра. В открывшемся меню выбираем «открыть с помощью Notepad ++ таким образом можно ознакомиться со структурой и синтаксисом файла реестра.

Как узнать из реестра GUID приложения в Windows -04

Как узнать из реестра GUID приложения в Windows -04

Выделяем значение, с помощью клавиш Ctrl + C копируем, вызываем диалоговое окно «Выполнить» и с помощью клавиш Ctrl + V вставляем, перед фигурными скобками прописываем Shell. и нажимаем«OK».

Как узнать из реестра GUID приложения в Windows -05

Как узнать из реестра GUID приложения в Windows -05

Как узнать GUID через PowerShell

Для того, чтобы вы могли быстро извлечь информацию, о GUID ,я могу вам предложить небольшой скрипт:

$UninstallKeys = "HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall", "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall"
$null = New-PSDrive -Name HKA -PSProvider Registry -Root Registry::HKEY_USERS
$UninstallKeys += Get-ChildItem HKU: -ErrorAction SilentlyContinue | Where-Object < $_.Name -match 'S-\d-\d+-(\d+-)\d+$' > | ForEach-Object < "HKU:\$($_.PSChildName)\Software\Microsoft\Windows\CurrentVersion\Uninstall" >
foreach ($UninstallKey in $UninstallKeys) Get-ChildItem -Path $UninstallKey -ErrorAction SilentlyContinue | Where -([A-Z0-9]-)[A-Z0-9]>$'> | Select-Object @>, @>
>

GUID PowerShell

Еще один вариант воспользоваться вот такой конструкцией:

get - wmiobject Win32_Product | sort - object - property Name | Format - Table IdentifyingNumber , Name , LocalPackage - AutoSize

Тут мы еще вывели пути расположения MSI пакетов для удаления приложения и его ремонту.

Powershell поиск guid

Как узнать GUID через CMD

Откройте cmd от имени администратора и выполните команду, которая создаст на диске C:\ файл с отчетом

В D3D9 был такой параметр у интерфейса адаптера, как DeviceIdentifier, который представлял собой GUID видеокарты. Это легко можно посмотреть в DxDiag или CapsViewer за девятую версию.
В 10 и 11 версиях апи этот параметр был заменён на AdapterLuid, который представляет из себя LUID - т.е. идентификатор, валидный лишь до конца сессии. После перезапуска я не смогу опознать устройство по этому номеру.
Вопрос в следующем: как получить GUID адаптера в direct3d10/11, либо в обход оных?

Nomad
В D3D11/DXGI насколько я знаю GUID'а нет. При определённых манипуляциях его можно извлечь через Setup API, либо через D3D9.

[telepathy]
Если стоит задача рендерить каждый раз на одном и том же адаптере, то GUID для этого плохо подходит. Юзер может обновить драйвера, переставить видеокарту в другой слот и GUID изменится. Лучше запоминать адаптер по device/vendor/revision id.
[/telepathy]

Yamazaru
> [telepathy]
GUID (Globally Unique ID) на то же и гуид, что идентифицирует сущность уникально.
Если у меня Radeon 5770 то это vendor = AMD device = RADEON revision = 5770 (грубо говоря), но два одинаковых Radeon 5770 в системе различить не получится. Или я не прав?
Мне нужно запоминать конкретные девайсы и различать их, даже если они одной модели и вышли с одного завода.

Nomad
Инересная идея. Не знаю но догадываюсь, что никаких уникальных меток на платах просто нет. GUID который там может быть с чем-то ассоциирован генерируется системой при инициализации и от видеокарты никак не зависит.

Nomad
GUID лишь идентифицирует установленное в системе физическое или логическое устройство (не обязательно активное).
Идентифицирует по уникальным параметрам устройства (device/vendor, функции, класс) и по его расположению (PCI/bus_number/device_number/. ).
Device/vendor/subvendor и прочая хардварная информация прошитая на заводе неизменна, а вот класс, функции, расположение зависит от ОС и может изменяться юзером (переставил в соседний слот), либо самой системой (обновление драйверов).

> но два одинаковых Radeon 5770 в системе различить не получится. Или я не прав?
Если они выпущены одной фирмой в одной партии, то официальным "рекомендованным" WinAPI их различить нельзя.
Зачастую можно различить через vendor specific API (nvapi и подобное), либо парся реестр, потому что там у видеокарт бывает видно firmware version/date/serial number. Это в user mode. В kernel mode возможностей больше (вплоть до ковыряния в недокументированных портах или I2C).
Но универсального способа нет, всё это ведёт даже не к vendor, а к device specific коду и базе данных по каждому устройству и его ревизиям, которую ещё надо регулярно обновлять.

Так что если это нужно не для программы уровня Everest/GPU-Z, а для игры или подобного user level приложения, что советую не заморачиваться и использовать device/vendor. В худшем случае, если юзер сменит карту на точно такую же, то рендеринг будет идти на карте с точно такой же мощностью и возможностями.

Yamazaru
Нужно лицензировать per-device. Сменили железо (даже на идентичное) - лицензия нарушена.
Ещё идеи как это реализовать?

Nomad
Стандартно к MAC адресу или HDD serial привязать нельзя?
Потому, что ничего похожего по стабильности идентификации в видеокартах не встречал.

Вообще, контроль по subvendor и revision id, хотя и не даёт уникальности, но довольно неплохо ограничивает возможность замены.
Так как даже у двух абсолютно одинаковых видеокарт из одной оптовой партии, они могут быть разными.

Nomad
Почему бы не использовать нормальное решение? HASP-ключи, например?

Событие с кодом 158

Событие с кодом 158 регистрируется для идентичных идентификаторов GUID диска.

Ошибка с кодом события 158 не влияет на функциональность или производительность клиентских систем Windows 10. Это событие предоставляет предупреждение о том, что несколько дисков в системе имеют одну и ту же идентификационную информацию (например, серийный номер, идентификаторы страницы 83 и т. Д.).


Каковы возможные причины ошибки Event ID 158?

Ошибка с кодом события 158 может быть вызвана любой из нескольких различных ситуаций. Две наиболее распространенные ситуации:

  1. Если доступно несколько путей к одному и тому же физическому диску, но многопутевый ввод-вывод Microsoft (MPIO) не включен, устройство доступно системе по всем доступным путям. Это приводит к тому, что одни и те же данные идентификатора устройства (такие как серийный номер устройства, идентификатор поставщика, идентификатор продукта и т. Д.) Отображаются несколько раз.
  2. Если виртуальные жесткие диски (VHD) дублируются с помощью операции копирования и вставки для создания дополнительных виртуальных машин (ВМ), ни одна из внутренних структур данных не изменяется. Следовательно, виртуальные машины имеют одинаковые идентификаторы GUID диска и одинаковую информацию об идентификаторе (например, серийный номер устройства, идентификатор поставщика, идентификатор продукта и т. Д.).

Включите MPIO для разрешения события с кодом 158

Кроме того, если несколько виртуальных жестких дисков определены как дубликаты, используйте ResetDiskIdentifier параметр командлета Windows PowerShell Set-VHD.

Бонусный совет: Обновите драйверы набора микросхем для ПК с Windows 10, и если вы используете SD-карту, вставленную в USB-кардридер, отсоедините кард-ридер от компьютера и подключайте его только при необходимости.

Доброго дня всем!

Случается, иногда так, что, когда вы пытаетесь установить ОС Windows на свой компьютер, можете увидеть ошибку вида: "Windows не может быть установлена на этот диск, т.к. на диске используется таблица разделов MBR. В системах EFI Windows можно установить только на GPT-диск" . А возможно, что ваша система просто не видит диск, размер которого больше 2 ТБ.

В этих случаях вы нуждаетесь в конвертировании MBR к GPT таблицы разделов, чтобы устранить сию проблему. Сделать это можно разными путями и способами, в этой статье я рассмотрю, как это можно выполнить без потери данных (см. способ 1, 2 и 3)!

ускорение ПК

Как преобразовать MBR к GPT

Способ 1: с помощью LiveCD-флешки

Этот способ универсальный : позволяет преобразовывать как MBR к GPT (так и наоборот), годится даже для работы с системным диском (который с ОС Windows).

По сути, LiveCD позволит нам иметь автономную Windows, которую в любой момент времени можно будет загрузить, просто подключив флешку к USB (даже если, на ПК извлечены все диски).

LiveCD-флешка от Стрельца — открываем утилиту от Paragon

LiveCD-флешка от Стрельца — открываем утилиту от Paragon

После ее загрузки — перед вами предстанут все диски, подключенные к компьютеру.

Конвертация из GPT в MBR

Конвертация из GPT в MBR

Важно: если вы преобразуете диск, на котором у вас установлена ОС Windows — она может перестать загружаться. В этом случае, возможно, придется переустановить ОС (это можно сделать без потери данных).

Применить — утилиты от Paragon

Применить — утилиты от Paragon

Операция выполнена

Теперь можно отключить LiveCD-флешку от USB-порта и перезагрузить компьютер.

Способ №2: в программе AOMEI Partition Assistant Standard Edition

Загрузку и установку программы не рассматриваю - она стандартна. После запуска, в главном окне программы можно сразу же узнать, какие из имеющихся дисков в системе в GPT, а какие в MBR (см. скриншот ниже).

Главное окно программы AOMEI Partition Assistant Standard Edition 6.6

Главное окно программы AOMEI Partition Assistant Standard Edition 6.6

Как вы заметили, "Диск 3" у меня MBR, и я преобразую его к GPT.

Для этого достаточно щелкнуть правой кнопкой мышки по самому диску (где прямо написано, что это "Диск 3", см. скрин ниже) , и в появившемся меню выбрать "Преобразовать в GPT диск".

Преобразовать в GPT диск

Преобразовать в GPT диск

Далее появится окно с просьбой о подтверждении - жмем OK.

Уверен!

После чего в левом углу экрана нужно подтвердить все команды, которые мы дали программе в текущем сеансе: жмем кнопку "Применить".

Применить изменения

Для выполнения текущей операции потребуется перезагрузка. Поэтому, прежде всего сохраните все свои открытые документы, а затем нажмите по кнопке "Перейти" в окне программы (см. пример ниже).

Соглашаемся на перезагрузку

Соглашаемся на перезагрузку

Последний штрих: соглашаемся на перезагрузку.

Перезагрузить сейчас

После перезагрузки устройства, вместо загрузки Windows будет запущена спец. утилита по конвертированию (см. пример ниже). Буквально в течение нескольких секунд мой диск на 1 ТБ был преобразован к GPT (еще раз отмечу: без потери данных).

После перезагрузки ПК - мой диск за считанные секунды был преобразован в GPT

После перезагрузки ПК - мой диск за считанные секунды был преобразован в GPT

Вот, собственно, и все действия.

Если вы хотите преобразовать системный диск (т.е. тот диск, на котором у вас установлена Windows и с которого вы в данный момент загрузились) — то у вас ничего не получится. В этом случае есть два варианта:

1) вынуть диск из ПК/ноутбука, подключить его к другому устройству и выполнить операцию преобразования;

2) создать загрузочную флешку (можно сделать в том же AOMEI Partition Assistant Standard, либо через LiveCD), и уже загрузившись с нее провести операцию.

Сделать загрузочный CD-мастер

Сделать загрузочный CD, мастер

Способ №3: в программе MiniTool Partition Wizard

После запуска программы пред вами предстанет список всех накопителей, подключенных к системе (HDD, SSD, USB флешки и пр.). Обратите внимание, что рядом с названием диска указывается его таблица разделов (MBR, GPT).

Для преобразования из одной в другую: просто щелкните правой кнопкой мышки по нужному диску и в меню выберите "Convert MBR Disk to GPT Disk" (пример на скрине ниже).

MiniTool Partition Wizard

MiniTool Partition Wizard

Далее нужно согласиться с выполнением операцией, которую вы задали. Для этого в верхнем меню MiniTool Partition Wizard нужно нажать на "галочку" (Apply).

Apply (согласиться)

Затем всплывет еще одно предупреждение, после подтверждения выполнения операции - диск будет преобразован. Если вы преобразовываете не системный диск (т.е. не тот, на котором у вас установлена ОС Windows) - то операция занимает 1-2 мин. (см. скрин ниже).

Диск был преобразован в GPT

Диск был преобразован в GPT

Способ №4: в командной строке или управление дисками (с удалением всей информации!)

Если вы столкнулись с ошибкой "В системах EFI Windows можно установить только на GPT-диск" при установке Windows: то для того, чтобы открыть командную строку, нажмите сочетание кнопок Shift+F10.

В остальных случаях, для запуска командной строки, откройте диспетчер задач (сочетание кнопок Ctrl+Shift+Esc) , нажмите "файл/новая задача" и впишите команду CMD (отметьте галочкой, что задача должна быть выполнена от администратора!).

    введите команду diskpart и нажмите Enter;

diskpart

list disk

select disk N

clean

Convert

Чтобы его открыть, нужно:

  1. нажать сочетание кнопок Win+R ;
  2. ввести команду diskmgmt.msc и нажать Enter.

diskmgmt.msc - запускаем управление дисками

diskmgmt.msc - запускаем управление дисками

Чтобы узнать какая разметка на диске (MBR или GPT), просто щелкните по диску правой кнопкой мышки (в том месте, где пишется "Диск 0", "Диск 1" и пр., см. пример ниже), и откройте свойства .

Свойства диска

Далее во вкладке "Тома" будет указан стиль раздела:

  • "Таблица разделов с GUID. " - это GPT;
  • о разметке MBR будет указано прямо.

Таблица с GUID

Для преобразования MBR к GPT - вы должны сначала полностью удалить все разделы на диске (важно! при удалении раздела - вы потеряете все данные на диске!) . Если разделы не будут удалены - то кнопка "Преобразования в GPT" у вас будет просто не активной (как на скрине ниже).

Преобразовать в GPT диск (чтобы функция была активной, нужно удалить все разделы на диске!)

Преобразовать в GPT диск (чтобы функция была активной, нужно удалить все разделы на диске!)

Как удалить том на диске (удаление раздела)

Как удалить том на диске (удаление раздела)

На этом у меня пока всё. Ваши решения - приветствуются ниже в комментариях!

Читайте также: