Вопрос или проблема
Проблема
Когда я открываю SystemPropertiesAdvanced.exe
(или control 'sysdm.cpl,,3'
) > “Загрузка и восстановление”, и отмечаю “Время отображения списка операционных систем”, затем устанавливаю его значение по умолчанию в 30 секунд, его флажок (и значение) сразу же сбрасываются после перезагрузки окна:
Это несмотря на то, что у меня есть несколько записей EFI, включая локально установленные операционные системы.
Запрос
Следовательно, как я могу установить его, чтобы он не сбрасывался сам?
Потенциальный обходной путь
(Преобразовано из cmd
‘s .bat
в pwsh
‘s .PS1
), stackoverflow.com/revisions/4710497/1
утверждает:
#!/usr/bin/env pwsh
#Requires -RunAsAdministrator
#Requires -PSEdition 'Core'
#Requires -Version 7.5
If ([OperatingSystem]::IsWindows() -Eq $True) {
$Timeout = Read-Host
sudo bcdedit /timeout $Timeout
}
Тем не менее, я еще не проверял, действительно ли:
- Это действительно делает то, что утверждается в ответе (ответ довольно неописательный); и:
- Его метод установки значения не приводит к сбросу.
Я еще не выяснил это, потому что буду вдали от своего ПК на несколько часов. Возможно, мне следовало задать это позже, но я предпочел сделать это заранее и иметь больше информации, когда смогу этим заняться.
Ответ или решение
Временные настройки списка операционных систем в Windows: Решение проблемы
Введение
Ваша проблема заключается в том, что при установке опции "Время для отображения списка операционных систем" в Windows она автоматически скрывается после перезагрузки окна свойств системы. Этот вопрос может быть фрустрирующим, особенно когда у вас есть несколько EFI-записей, и вы хотите видеть их при загрузке.
Причины проблемы
Существует несколько возможных причин, по которым галочка "Время для отображения списка операционных систем" в окне "Система" сбрасывается:
-
Проблемы с правами доступа: Возможно, у вашей учетной записи нет достаточных прав для изменения настроек загрузки. Перед изменением параметров рекомендуется проверить, запущено ли приложение с правами администратора.
-
Проблемы с конфигурацией загрузчика: Если у вас установлена несколько операционных систем, могут возникнуть конфликты в конфигурации загрузчика, особенно если они были установлены некорректно.
-
Ошибки в реестре: Неправильные или отсутствующие записи в реестре могут также привести к тому, что настройки сбрасываются.
Решение проблемы
Для решения этой проблемы вы можете попытаться изменить значение времени отображения списка операционных систем непосредственно через командную строку с помощью утилиты bcdedit
. Ваш скрипт PowerShell, который вы привели, является хорошим началом. Вот его уточненная версия:
#!/usr/bin/env pwsh
#Requires -RunAsAdministrator
#Requires -PSEdition 'Core'
#Requires -Version 7.5
If ([OperatingSystem]::IsWindows() -Eq $True) {
$Timeout = Read-Host "Введите время в секундах (например, 30)"
try {
cmd /c bcdedit /timeout $Timeout
Write-Host "Настройка времени успешна. Новое время отображения: $Timeout секунд."
} catch {
Write-Host "Произошла ошибка при установке времени: $_"
}
}
Тестирование метода
Перед тем как применять указанный метод, важно:
-
Запуск от имени администратора: Убедитесь, что PowerShell запущен от имени администратора, иначе изменения могут не вступить в силу.
-
Проверка изменений: После выполнения скрипта проверьте, сохранились ли изменения, снова открыв
SystemPropertiesAdvanced.exe
. -
Журналирование ошибок: Если происходит сбой, запись ошибок в консоль поможет вам идентифицировать проблему.
Заключение
Надеюсь, это поможет вам установить желаемое время отображения списка операционных систем в Windows. Если указанный метод не сработает, возможно, стоит рассмотреть другие подходы, такие как: переустановка загрузчика Windows или восстановление реестра. В случае серьезных проблем с конфигурацией, возможно, потребуется обратиться за помощью к специалисту по IT.