- Windows 10 Setup Script — скрипт для быстрой настройки Windows 10 после установки
- Примечание
- Как использовать Windows 10 Setup Script
- 7 скриптов для Windows, которые помогут сэкономить время
- Выключение и перезапуск
- Удаляем ненужное
- Управляем процессами
- Переименовываем группу файлов
- Ищем файлы
- Справка
- Находим данные
- Выключение и перезапуск
- Удаляем ненужное
- Управляем процессами
- Переименовываем группу файлов
- Ищем файлы
- Справка
- Находим данные
Windows 10 Setup Script — скрипт для быстрой настройки Windows 10 после установки
Обновлено: 25.09.2020. Только для Windows 10, версия 2004 и 20H2
- Скрипт переименован в Windows 10 Sophia Script.
- Скрипт переписан в виде модуля (около 270 функций) с файлом пресетов!
- Теперь его необходимо запуска через .\Preset.ps1
- Каждый «твик» в файле пресетов имеет соответствующую функцию для восстановления значения по умолчанию;
- Создайте свой собственный файл с пресетами!
- Незначительные изменения. Новые возможности не добавлены.
Windows 10 Setup Script представляет собой скрипт PowerShell, который следует запускать сразу после установки свежей копии Windows 10. Основная цель скрипта — предоставить администраторам широкие возможности для настройки операционной системы. Например, скрипт позволяет переопределить параметры конфиденциальности, удалить встроенные приложения и изменить системные настройки.
Примечание
Windows 10 Setup Script предназначен для опытных пользователей и задуман для запуска сразу после установки Windows 10. Так как скрипт вносит изменения в настройки и компоненты системы, настоятельно рекомендуется создать резервную копию перед запуском скрипта.
Как использовать Windows 10 Setup Script
Перед запуском скрипта нужно подготовиться. Во-первых нужно скачать скрипт (файл с расширением .ps1) для целевой версии Windows 10. Разработчик предлагает скрипты для Windows 10 версий 1903, 1909, 2004, 20H2 и Windows 10 LTSC 1809. Тестовая версия для Windows 10, версия 21H1 находится в разработке.
Windows 10 Setup Script — это продвинутый инструмент для опытных пользователей и системных администраторов, которые хотят изменить настройки новой установки Windows 10. Перед запуском сценария требуется некоторая подготовка, чтобы убедиться, что все настроено в соответствии с потребностями.
После того, как вы скачали и распаковали нужную версию, для настройки перед запуском необходимо открыть скрипт в текстовом редакторе или Visual Studio Code с расширением PowerShell. Хотя теоретически вы можете сразу запустить скрипт и использовать все значения по умолчанию, лучше предварительно посмотреть, какие изменения он будет вносить в систему.
Если вам сложно читать сам код скрипта, то можете ознакомиться с подробными комментариями. Скрипт для Windows 10 версии 2004 содержит в общей сложности 3488 строк, и их изучение займет некоторое время, даже если вы являетесь опытным пользователем.
С полным списком модификаций вы можете ознакомиться на странице проекта в GitHub. Приведем некоторые из них:
Название | Что делает |
---|---|
Set up Privacy & Telemetry | Настройка параметров конфиденциальности и телеметрии |
Turn off diagnostics tracking scheduled tasks | Отключение запланированных заданий диагностического отслеживания |
Set up UI & Personalization | Настройка интерфейса и персонализация |
Uninstall OneDrive «correctly» | «Корректное» удаление OneDrive |
Change %TEMP% environment variable path to %SystemDrive%\Temp | Изменение пути переменной среды %TEMP% на %SystemDrive%\Temp |
Change location of the user folders programmatically (without moving user files) within interactive menu using up/down arrows and Enter key to make a selection | Изменение расположения пользовательских папок программно (без перемещения файлов пользователя) в интерактивном меню с помощью стрелок вверх/вниз и клавиши Enter |
Uninstall UWP apps from all accounts with exception apps list with pop-up form written in WPF | Удаление приложений UWP из всех учетных записей с учетом исключений с помощью всплывающей формы, написанной на WPF |
Turn off Windows features | Отключение функций Windows |
Remove Windows capabilities with pop-up form written in WPF | Удаление возможностей Windows с помощью всплывающей формы, написанной на WPF |
Create a Windows cleaning up task in the Task Scheduler | Создание задачи очистки Windows в Планировщике заданий |
Unpin all Start menu tiles | Открепление всех плиток меню Пуск |
Pin shortcuts to Start menu using syspin.exe | Закрепить ярлыки в меню «Пуск» с помощью syspin.exe |
Three shortcuts are preconfigured to be pinned: Control Panel, «old style» Devices and Printers, and Command Prompt | Предварительно настроены для закрепления три ярлыка: Панель управления, «Устройства и принтеры» и Командная строка |
Turn on Controlled folder access and add protected folders using dialog menu | Включение контролируемого доступа к папкам и добавление защищаемых папок с помощью диалогового меню |
Add exclusion folder from Microsoft Defender Antivirus scanning using dialog menu | Добавление папки исключения для сканера антивируса Microsoft Defender с помощью диалогового меню |
Add exclusion file from Microsoft Defender Antivirus scanning using dialog menu | Добавление файла исключения для сканера антивируса Microsoft Defender с помощью диалогового меню |
Refresh desktop icons, environment variables and taskbar without restarting File Explorer | Обновление значков рабочего стола, переменных сред и панели задач без перезапуска проводника |
Используйте символ комментариев # для включения или отключения определенных настроек в скрипте. Просто поместите их перед командами, чтобы пропустить их при запуске скрипта. После внесения изменений сохраните скрипт.
Затем запустите скрипт в системе. Для этого необходимо настроить политику исключения, поскольку в противном случае Windows 10 откажется запускать скрипт.
- Откройте командную строку PowerShell с повышенными привилегиями, например путем отображения меню администратора с помощью комбинации Windows + X и выбора опции Windows PowerShell (администратор).
- Выполните команду:
- После этого запустите сценарий PowerShell или Start.cmd от имени администратора.
- Программа может предлагать некоторые варианты выбора, например список приложений, которые нужно удалить, в зависимости от вашей конфигурации скрипта.
А вы используете инструменты для управления параметрами конфиденциальности?
7 скриптов для Windows, которые помогут сэкономить время
Для исполнения следующих скриптов мы обратимся к PowerShell. Любой системный администратор (по профессии или в душе) знает его возможности и периодически пользуется, для всех остальных это просто интерфейс командной строки или иностранное слово. На популярных ресурсах вы можете найти уйму идей, как использовать PowerShell для развлечения и дела, здесь же мы рассмотрим лишь простые скрипты, которые помогут войти в курс дела.
Выключение и перезапуск
Итак, самая простая операция выключения вашего компьютера. Открываем блокнот, прописываем:
Сохраняем файл, как *.cmd (*- имя вашего файла, например shutdown.cmd) и не забудьте в типе выбрать “все файлы”. Всё, исполняемый файл по запуску выключит ваш компьютер. “-s”, в данном случае означает выключение, замените на “-r” — получите перезагрузку. “-t” — таймер, у нас он установлен на 0 секунд, но если установить на 60 — получите выключение через 60 секунд.
Удаляем ненужное
В различных сборках, предустановленных на компьютер или ноутбук, вы можете наткнуться на массу абсолютно ненужных пакетов приложений. Удалить их с помощью скрипта проще простого:
get-appxpackage -name *APPNAME* | remove-appxpackage
Как вы понимаете, *APPNAME* — название неинтересующей надстройки. Да, удалять эти пакеты можно стандартным путём или через специальные программы, но вы можете создать скрипт, который удалит их все одним двойным кликом.
Управляем процессами
Есть в PowerShell две полезные команды, которые позволят бороться с ветряными мельницами (процессами, снижающими быстродействие). Вывести их на экран можно просто прописав:
или информацию о конкретном сервисе под кодовым названием *NAME* (на этом месте должно быть название интересующего сервиса):
Но это можно сделать в диспетчере задач, а вот действительно полезным может оказаться создание файла, который по клику закрывал бы все процессы с повышенным потреблением ресурсов (браузеры, антивирусы и пр.). Для этого воспользуйтесь командой Stop-Service:
Stop-Service -Name *ANTIVIRUS*
Stop-Service -Name *BROWSER*
Названия для замены указаны в * *.
Переименовываем группу файлов
Ещё одна назойливая проблема: вы скопировали с фотоаппарата или телефона изображения. Огромная куча фотографий, которые называются однотипно вроде HGNMD034, где HGNMD — название общей директории, объединяющей файлы, например, отснятые за один день. Для того, чтобы сделать название этих файлов приятнее или иметь возможность объединить несколько папок, не получив при этом хронологическую путаницу из-за имен, можно использовать скрипт группового переименования:
$path = «$comp\desktop\journey\russia»
$filter = ‘*.jpg’
get-childitem -path $path -filter $filter |
rename-item -newname
В первой строке в кавычках укажите точный путь к файлам. Во второй строке — расширение файлов, подлежащих изменению. В последней строке вместо “HGNMD” — общее в названиях файлов, подлежащее замене, на что-то, вместо “RUSSIA” — имя, которое вы хотите присвоить. Если данный скрипт опять сохранить в качестве исполняемого файла, то подобные однотипные операции будут отнимать у вас всего несколько секунд времени.
Ищем файлы
Ещё одна простая задача, реализуемая на PowerShell — поиск файлов в директории. В данном случае рассмотрим поиск log-файлов:
Или чуть более сложный пример, когда поиск будет производиться ещё и в подпапках:
Get-ChildItem C:\Windows\* -Include *.log -Recurse -Force
Это чуть более правильная и полная запись, где “Include” — указывает на искомую часть, “Recurse” — на поиск во вложенных каталогах, “Force” — поиск включает в себя системные и скрытые файлы.
Справка
Итак, с общими принципами функционирования PowerShell мы более-менее разобрались. Если что-то непонятно — обратитесь к справочной информации следующим образом:
Это команда, которая выведет на экран все доступные команды с кратким описанием. Хотите подробнее? Нет ничего проще:
Get-Help -Name *CMDLET*
Где вместо *CMDLET* вставьте любую интересующую команду.
Находим данные
Теперь перейдём к простым скриптам, описанным чуть более сложными командами. Например, с помощью PowerShell вы можете выудить почти всю информацию о железе и комплектующих. Как вариант, вот скрипт для оценки уровня заряда аккумулятора:
Add-Type -AssemblyName System.Windows.Forms
[Windows.Forms.PowerStatus].GetConstructor(‘NonPublic, Instance’, $null, [Type[]]@(), $null ).Invoke($null)
Архитектура процессора удалённого компьютера:
[PSObject].Assembly.GetType( ‘System.Management.Automation.PsUtils’
).GetMethod(‘GetProcessorArchitecture’, [Reflection.BindingFlags]40
).Invoke($null, @())
Иногда важной задачей бывает проверка прав администратора у текущего пользователя. Вот простой способ на PowerShell:
[PSObject].Assembly.GetType(‘System.Management.Automation.Utils’).GetMethod(
‘IsAdministrator’, [Reflection.BindingFlags]40).Invoke($null, @())
На этом пока остановимся. Как вы наверное убедились, PowerShell не самый сложный, но очень полезный инструмент, который способен выполнять, как простейшие операции, так и достаточно сложные. Однако PowerShell не единственный инструмент для создания скриптов для Windows. Но об этом в следующий раз.
Если вы только недавно встали на путь программирования и ещё даже не пробовали поиграться с установленной операционной системой, то манипулирование с помощью скриптов может вызвать резонные вопросы необходимости и удобства. Однако, даже если опустить тот простой факт, что они помогают лучше понять, как функционирует ОС, в будущем при создании приложений, исполнение сценариев может оказаться крайне полезным навыком.
Для исполнения следующих скриптов мы обратимся к PowerShell. Любой системный администратор (по профессии или в душе) знает его возможности и периодически пользуется, для всех остальных это просто интерфейс командной строки или иностранное слово. На популярных ресурсах вы можете найти уйму идей, как использовать PowerShell для развлечения и дела, здесь же мы рассмотрим лишь простые скрипты, которые помогут войти в курс дела.
Выключение и перезапуск
Итак, самая простая операция выключения вашего компьютера. Открываем блокнот, прописываем:
Сохраняем файл, как *.cmd (*- имя вашего файла, например shutdown.cmd) и не забудьте в типе выбрать “все файлы”. Всё, исполняемый файл по запуску выключит ваш компьютер. “-s”, в данном случае означает выключение, замените на “-r” — получите перезагрузку. “-t” — таймер, у нас он установлен на 0 секунд, но если установить на 60 — получите выключение через 60 секунд.
Удаляем ненужное
В различных сборках, предустановленных на компьютер или ноутбук, вы можете наткнуться на массу абсолютно ненужных пакетов приложений. Удалить их с помощью скрипта проще простого:
get-appxpackage -name *APPNAME* | remove-appxpackage
Как вы понимаете, *APPNAME* — название неинтересующей надстройки. Да, удалять эти пакеты можно стандартным путём или через специальные программы, но вы можете создать скрипт, который удалит их все одним двойным кликом.
Управляем процессами
Есть в PowerShell две полезные команды, которые позволят бороться с ветряными мельницами (процессами, снижающими быстродействие). Вывести их на экран можно просто прописав:
или информацию о конкретном сервисе под кодовым названием *NAME* (на этом месте должно быть название интересующего сервиса):
Но это можно сделать в диспетчере задач, а вот действительно полезным может оказаться создание файла, который по клику закрывал бы все процессы с повышенным потреблением ресурсов (браузеры, антивирусы и пр.). Для этого воспользуйтесь командой Stop-Service:
Stop-Service -Name *ANTIVIRUS*
Stop-Service -Name *BROWSER*
Названия для замены указаны в * *.
Переименовываем группу файлов
Ещё одна назойливая проблема: вы скопировали с фотоаппарата или телефона изображения. Огромная куча фотографий, которые называются однотипно вроде HGNMD034, где HGNMD — название общей директории, объединяющей файлы, например, отснятые за один день. Для того, чтобы сделать название этих файлов приятнее или иметь возможность объединить несколько папок, не получив при этом хронологическую путаницу из-за имен, можно использовать скрипт группового переименования:
$path = «$comp\desktop\journey\russia»
$filter = ‘*.jpg’
get-childitem -path $path -filter $filter |
rename-item -newname
В первой строке в кавычках укажите точный путь к файлам. Во второй строке — расширение файлов, подлежащих изменению. В последней строке вместо “HGNMD” — общее в названиях файлов, подлежащее замене, на что-то, вместо “RUSSIA” — имя, которое вы хотите присвоить. Если данный скрипт опять сохранить в качестве исполняемого файла, то подобные однотипные операции будут отнимать у вас всего несколько секунд времени.
Ищем файлы
Ещё одна простая задача, реализуемая на PowerShell — поиск файлов в директории. В данном случае рассмотрим поиск log-файлов:
Или чуть более сложный пример, когда поиск будет производиться ещё и в подпапках:
Get-ChildItem C:\Windows\* -Include *.log -Recurse -Force
Это чуть более правильная и полная запись, где “Include” — указывает на искомую часть, “Recurse” — на поиск во вложенных каталогах, “Force” — поиск включает в себя системные и скрытые файлы.
Справка
Итак, с общими принципами функционирования PowerShell мы более-менее разобрались. Если что-то непонятно — обратитесь к справочной информации следующим образом:
Это команда, которая выведет на экран все доступные команды с кратким описанием. Хотите подробнее? Нет ничего проще:
Get-Help -Name *CMDLET*
Где вместо *CMDLET* вставьте любую интересующую команду.
Находим данные
Теперь перейдём к простым скриптам, описанным чуть более сложными командами. Например, с помощью PowerShell вы можете выудить почти всю информацию о железе и комплектующих. Как вариант, вот скрипт для оценки уровня заряда аккумулятора:
Add-Type -AssemblyName System.Windows.Forms
[Windows.Forms.PowerStatus].GetConstructor(‘NonPublic, Instance’, $null, [Type[]]@(), $null ).Invoke($null)
Архитектура процессора удалённого компьютера:
[PSObject].Assembly.GetType( ‘System.Management.Automation.PsUtils’
).GetMethod(‘GetProcessorArchitecture’, [Reflection.BindingFlags]40
).Invoke($null, @())
Иногда важной задачей бывает проверка прав администратора у текущего пользователя. Вот простой способ на PowerShell:
[PSObject].Assembly.GetType(‘System.Management.Automation.Utils’).GetMethod(
‘IsAdministrator’, [Reflection.BindingFlags]40).Invoke($null, @())
На этом пока остановимся. Как вы наверное убедились, PowerShell не самый сложный, но очень полезный инструмент, который способен выполнять, как простейшие операции, так и достаточно сложные. Однако PowerShell не единственный инструмент для создания скриптов для Windows. Но об этом в следующий раз.