Главная
» WINDOWS
»
Как сгенерировать GUID в PowerShell на Windows 10
Как сгенерировать GUID в PowerShell на Windows 10
Чтобы сгенерировать GUID в Windows 10, откройте Windows PowerShell и выполните команду [guid]::NewGuid(). Нажмите Enter, чтобы получить новый идентификатор в привычном формате 8-4-4-4-12. Для этой команды не требуется запускать PowerShell от имени администратора. Вы также можете использовать встроенный New-Guidкомандлет.
Сгенерируйте GUID с помощью PowerShell.
Откройте меню «Пуск», введите Windows PowerShell и выберите приложение. Достаточно обычного окна PowerShell; права администратора не требуются.
Найдите Windows PowerShell в меню «Пуск» и откройте приложение.
В PSкомандной строке введите следующую команду и нажмите Enter:
[guid]::NewGuid()
Выполнение команды выводит вновь сгенерированный GUID.
PowerShell отображает значение, аналогичное 9f2d6f48-1e3a-4f86-9a51-c781c6d3a20b. При каждом запуске метода создается новый GUID. Это значение является лишь идентификатором: само по себе оно не создает запись в реестре, схему электропитания, файл или компонент Windows.
Сохраните GUID в переменной.
Если вам потребуется использовать тот же GUID позже в скрипте, присвойте его переменной один раз. Затем обращайтесь к этой переменной вместо того, чтобы каждый раз генерировать новое значение:
$newId = [guid]::NewGuid()
$newId.ToString()
Присвойте результат один раз, чтобы это же значение было доступно на протяжении всей сессии или выполнения скрипта.
Переменная содержит Guidобъект .NET. Вызов функции .ToString()преобразует его в текст для отображения, логирования или в качестве параметра, ожидающего строку. Чтобы сохранить копию в текстовом файле на рабочем столе, выполните:
Эта команда записывает текущее значение переменной в указанный файл. Если вы закроете PowerShell до сохранения или копирования значения, временная переменная больше не будет доступна в новой сессии.
Вместо этого используйте командлет New-Guid.
Windows PowerShell 5.1 входит New-Guidв модуль Microsoft.PowerShell.Utility. Введите команду отдельно и нажмите Enter:
New-Guid
Встроенный командлет New-Guid является сокращенной альтернативой в Windows PowerShell 5.1.
Он возвращает объект GUID, как и [guid]::NewGuid(). Если PowerShell сообщает, что New-Guidне распознан, используйте статический метод, показанный выше, или проверьте хост с помощью $PSVersionTable.PSVersion. В документации Windows PowerShell 5.1 Microsoft указывает New-Guid как поддерживаемый командлет утилиты .
Разберитесь в формате GUID.
Стандартная строка GUID содержит 32 шестнадцатеричные цифры, разделенные четырьмя дефисами: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx. Тип .NET Guidтакже поддерживает другие текстовые форматы. Например, $newId.ToString("N")возвращает цифры без дефисов, в то время как $newId.ToString("B")заключает стандартную форму в фигурные скобки. Используйте формат, требуемый приложением или командой, получающей значение; не добавляйте фигурные скобки и не удаляйте дефисы, если этот интерфейс не принимает выбранный формат. См. документацию Microsoft по Guid.ToString для получения информации о поддерживаемых форматах.
Когда следует искать GUID вместо этого
Если вам нужен идентификатор для чего-то уже настроенного в Windows, ничего не генерируйте. Например, запустите powercfg /listв PowerShell или командной строке команду для отображения схем электропитания на этом ПК и их GUID. Возвращаемые значения идентифицируют существующие схемы; случайный результат не укажет ни на одну из них. В справочнике команд[guid]::NewGuid() Microsoft powercfg указана опция, которая перечисляет схемы электропитания, и отмечается, что она возвращает GUID схемы./list
В более общем смысле, GUID полезен только в том случае, если программное обеспечение или компонент Windows, получающий его, поддерживает GUID и хранит или распознает это значение. Создание идентификатора не приводит к его автоматической регистрации или привязке к элементу. Следуйте документации соответствующего компонента для получения информации о том, как связать значение с настройкой, объектом или записью.
Безопасно ли использовать GUID в качестве пароля или токена?
Нет. GUID предназначен для идентификации элемента, а не для использования в качестве пароля, ключа API или другого секрета. В документации Microsoft поясняется, что Guid.NewGuid()создание UUID версии 4 в Windows не рекомендуется, и не рекомендуется использовать его в криптографических целях. Для токенов аутентификации или секретных ключей используйте API криптографического генерации случайных чисел и рекомендации по безопасности для системы, которая будет проверять секрет. Перед использованием GUID в системах, чувствительных к безопасности, ознакомьтесь с официальными замечаниями по System.Guid.NewGuid .