Comments 143
Win10-Initial-Setup-Script
Да. Я намного дальше него продвинулся. Но когда-то ориентировался именно на его наработки; так сказать, курс. Вообще лучше проверить по названиям функций. Всё-таки прочитать файл пресета особо много времени не займет. Не проводить же аудит 6000 строк. :)
ansible-role-windows-initial-setup
Популярный, но по сути заброшенный много месяцев назад. Весь в багах, плохо написанный код и интерфейс на Windows Forms. :)
P.S. Для тех, кто хочет пойти дальше: мы ищем человека, знающего C#, чтобы помочь дописать графическую оболочку к модулю. Ранний образец, основанный на скетчах.Не рассматривали вариант веб-приложения, когда пользователь может зайти и выбрать через веб-UI нужные опции (в группах или по-отдельности), или воспользоваться готовыми шаблонами?
А в результате компилить ps1 скрипт для прогонки на пользовательском компе.
В этом случае скрипт на базе самой актуальной версии и меньше беспокойств у пользователя с установкой проги.
есть прогресс?
Конечно. Закончили уже версию 1.x.
https://github.com/Sophia-Community/SophiApp
Анонс от апреля: https://t.me/SophiaNews/746
1) она типа неудаляемая у вас? как минимум до перезагрузки? убил через диспетчер - всё равно папка не удаляется.
2) есть ли "бэкап" - т.е. сохранить настройки текущей ОС перед обновлением? или всё завново настраивать - вспоминать, какие флажки ставил три года назад?
Она полностью портативная. Никакие процессы не держат ее после закрытия.
Бэкапа нет, но будет в 2.0. Много, чего планируется во второй версии...
что портативная - это понятно.
закрывается. в процессах ничего вроде как нет. и - не удаляется с диска, как бывает, если "не закрылось". проверю ещё - может, антивирус проверяет, бывало такое, что удалить не даёт "занят другим процессом".
-----
2.0 ждать долговато... тем более с "много чего планируется" - неизвестно, когда план до внедрения бэкапа дойдёт.
настройка объёктивно требуется редко - только после глобального обновления. мне вот через три года понадобилась.
понимаю, что можно гонять однажды настроенный скрипт - но иногда вставляют что-то новое при обнове, и всё равно надо лезть и настраивать
спасибо
У слова «compilaiton» именно тот смысл, который вы описали — сборка (из кусочков).
https://gallery.technet.microsoft.com/scriptcenter/PS2EXE-GUI-Convert-e7cb69d5
В данном случае скорее подойдет термин «сборка (build)» из кусков в единое целое. Или компоновка.
dictionary.cambridge.org/us/dictionary/english/compilation
— the act of collecting information from a variety of places to arrange it in a book, report, or list: [ U ] The compilation of all his speeches took several months.
Oxford English and Spanish Dictionary, Thesaurus, and Spanish to English Translator:
www.lexico.com/en/definition/compilation
The action or process of producing something, especially a list, book, or report, by assembling information collected from other sources.
В IT исторически закреплено как раз таки значение получения бинарного артефакта, как правило подлежащего линковке потом (но этот этап можно и пропустить, и существуют компиляторы-линкеры, сразу производящие готовый к запуску артефакт) — в противовес трансляции, которая порождает из текста исходного кода другой текст или альтернативное его представление (вариант байт-кода, в котором каждому кодону языка, или даже целой конструкции, — но не символу! — сопоставляется не исполняемое кодовое значение, ZX-Basic как пример).
Позже к нему добавилась приставка trans- для случаев уже в историческом значении: собрать ворох в у едину кучку (*Script, транспилируемые в JS).
При этом еще особняком стоит компиляция в байт-код: некоторые отказываются считать ее компиляцией, нарекая разновидностью трансляции.
Могу сделать:
1. админку для заполнения вами списка функций, включая категории (вы их называете region) и локализации (версии описаний для разных языков)
2. пользовательское дерево (иерархический список)
Пример дерева можно посмотреть здесь: compliancegear.com, страничка «Loan Lifecycle»
3. генерацию ps1 скрипта на основании выбранных пунктов в №2.
Пиастры не возьму, банеров и моргающих картинок не будет, сухо — дерево опций и генератор для пользователей.
Пишу здесь, а не в личку, т.к. желательно услышать мнение общества на инициативу — есть смысл от такой реализации?
Telegram-бота! Модно, современно.
- Замучили обновления не во время?
- Да!
- Параноите по поводу телеметрии?
- Бывает...
- Вот вам ссылка на скрипт.
К счастью, нет. Трояны я не распространяю. :)
Это в первую очередь автоматизация чего-либо, а уже потом так называемый твикер.
(нужна регистрация, так это варезный раздел ru-board)
В каком месте там трояны, и чем отличается функционал?
Посыл проекта не отключить все, что только можно (в 10 это уже не прокатит; знаем, плавали), а просто автоматизировать какую-либо настройку только официальными методами, ничего не ломая. Тем более опен-сорс. Хотя качество кода не фонтан, конечно )
Не увидел внятного описания отличия функционала. Как обычно делают хорошие маркетологи — рисуют табличку со своим и чужим функционалом, и ставят галочки где что есть.
Там загружался втайне от пользователя произвольный код с сервера разработчика и выполнялся под полными административными правами, независимо от наличия какой-либо лицензии.
Позже автору вредоносного ПО заблокировали аккаунт на хостинге и разделегировали домен, потому ему срочно пришлось удалять вредоносный функционал из своего поделия, дабы восстановить работоспособность своего сайта. В нынешних версиях этого функционала быть не должно (но учитывая репутацию автора, нет никаких гарантий, что он не внедрит его снова, замаскировав намного лучше).
Как по мне этого вполне достаточно как рядовому, так и достаточно продвинутому пользователю, проще и понятней.
Но за работу в любом случае спасибо.
Я против отключения телеметрии: во-первых, ее без брандмауэра не отключить, если на то речь пошла, а, во-вторых, не надо сравнивать это поделие из 2016 года, которое после продажи левое конторе ещё и троян распространяла? Разницу надо понимать.
Ваш скрипт точно так же могут модифицировать и где-нибудь выложить. 99.9% людей шесть тысяч строк перепроверять не будут.
У меня к ней одна серьёзная претензия — слишком много вваливает в hosts, из-за чего могут не работать некоторые вполне полезные сервисы, типа answers.ms, live.com или работа скайп.
Это всё сарказм, возможно не уместный. Не принимайте всерьёз.
Кнопка "Хорошо" лишь скрывает окошко. Пользователь волен создавать или не создавать задачу.
Ну, окно просто есть. Уведомление, так сказать.
Но это так в стиле 10ки, созавать диалоговые окна, в которых нет выбора. Уведомлять пользователя о событиях, на которые он не может повлиять. И это в скрипте по тюнингу 10ки. Возникает диссонанс типа «зачем вам менять что-то в 10ке, если вы делаете то-же самое, что и 10ка». Ну такое, не знаю, забавно, что-ли.
Это как раз хороший пример плохого UI. Если это просто информационное сообщение, в нём вообще не должно быть кнопок (а «убираться» оно должно само, используя механизмы уведомлений, средствами ОС). Но ещё лучший вариант — как раз «прокачать» это окошко, сделав его из бесполезного (и даже раздражающего — потому что его надо закрывать) — управляющим. Добавить таймер обратного отсчёта (со временем, когда начнётся очистка, а окно само закроется) и пару кнопок — Пауза и Отмена (хотя тут можно подумать, какие элементы нужны)… Думаю, frip как раз об этом… Мне это окошко тоже сразу резануло по глазам… ))
з.ы. ну и да, это всё — шашечки… Спасибо за проделанную работу, будем попробовать! До сих пор OOSU10 вполне устраивал. Но выбор и открытость — это всегда хорошо!
Поддерживает ли данный скрипт Windows Insider Preview и как быть с возможными глюками при будущих обновлениях? MS вообще не рекомендует даже реестр менять, а возможные глюки от подобных твикеров уже были. У меня, например, перестали открываться свойства моего компьютера после очередного Insider Preview обновления.
Например есть такие «скрипты» после настройки/установки которых что-то да отваливается, xbox game center, магазин или еще что-то, ваш скрипт таким не страдает? Тут только настройка и сама windows будет работать и обновляться дальше без проблем?
-PackageTypeFilter Bundle
). Все включается и выключается только официальным путем. Да, из любого состояние можно восстановить, но таким не промышляю. ```xbox game center``` и прочие Xbox* по умолчанию не отмечены на удаление. Также принудительно запрещено удаление компонентов вроде Microsoft.DesktopAppInstaller
, чем грешат многие так называемые твикеры.Так и есть: github.com/farag2/Windows-10-Sophia-Script/blob/4dec50be79a17b3ecee3b32e987850453ab72aca/Sophia/Preset.ps1#L667
но т.к. крайне спорные дефолтные настройки, не хотелось бы запустить не будучи уверенным что он делает.
#Включить ограничение Windows на 260 символов в пути
#Изменить путь переменной среды для %TEMP% на %SystemDrive%\Temp
отключение гибернации и еще десяток.
#Включить ограничение Windows на 260 символов в пути
Опечатался и по ошибке раскомментировал.
из очевидного > сменился дефолтный язык ввода на русский. остальное пока не понял, может еще выплывет.
сетевухи тут нет, не знаю, что случится с энергосбережением в таком случае.
Основные претензии к предыдущей версии были две:
Никто не хотел лезть в 3 500 строк кода и комментировать тот или иной раздел, чтобы он в дальнейшем не выполнялся;
Если необходимо было откатиться на значение по умолчанию, никто не мог разобраться, что именно надо делать
Пользуюсь вашим скриптом годовой давности с прошлой статьи. Спасибо за него. Как раз я один из немногих, кто просмотрел его весь и закомментил для себя те изменения, которые мне нужны в использовании. После этого откатывать ничего не нужно.
А с новым скриптом придется разбираться, но скорее старым буду пользоваться.
if ($RU)
{
}
else
{
}
В powershell можно добавить поддержку интернационализации в проект. Количество строк скриптов уменьшится и это упростит трансляцию в разные другие языки.
https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_script_internationalization?view=powershell-7
https://plattsoft.net/2015/08/24/internationalization-with-import-localizeddata
https://livebook.manning.com/book/powershell-in-depth/chapter-28/4
Буду признателен, если укажешь, как надо. Я самоучка полностью: многое не знаю.
Хочу предложить еще одну идею. У вас по всему коду идут функции вида Enable/Disable
Например:
# Do not show suggested content in the Settings app (current user only)
# Не показывать рекомендуемое содержимое в приложении "Параметры" (только для текущего пользователя)
function DisableSuggestedContent
{
New-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager -Name SubscribedContent-338393Enabled -PropertyType DWord -Value 0 -Force
New-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager -Name SubscribedContent-353694Enabled -PropertyType DWord -Value 0 -Force
New-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager -Name SubscribedContent-353696Enabled -PropertyType DWord -Value 0 -Force
}
# Show suggested content in the Settings app (current user only)
# Показывать рекомендуемое содержимое в приложении "Параметры" (только для текущего пользователя)
function EnableSuggestedContent
{
New-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager -Name SubscribedContent-338393Enabled -PropertyType DWord -Value 1 -Force
New-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager -Name SubscribedContent-353694Enabled -PropertyType DWord -Value 1 -Force
New-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager -Name SubscribedContent-353696Enabled -PropertyType DWord -Value 1 -Force
}
По сути это дублирование кода, кроме того в документации к New-ItemProperty все пути реестра указываются в кавычках.
function SetSuggestedContent
{
param([ValidateSet(0,1)] [int] $NewValue = 0)
New-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "SubscribedContent-338393Enabled" -PropertyType DWord -Value $NewValue -Force
New-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "SubscribedContent-353694Enabled" -PropertyType DWord -Value $NewValue -Force
New-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "SubscribedContent-353696Enabled" -PropertyType DWord -Value $NewValue -Force
}
# вызов функции превращается в
SetSuggestedContent -NewValue 1
SetSuggestedContent
# можно и явно передавать
SetSuggestedContent -NewValue 0
# при вызове с неправильным значением получим ошибку
SetSuggestedContent -NewValue 2
# т.к. у параметра прописана валидация из набора [int] 0 или 1
# для [string] будет аналогично
Резюмируя, рефакторинг кода позволит скрипту полинять где-то на 40% кода т.к. большая часть функций отличаются только цифрой изменяемого параметра в реестре. В комментариях к функции надо будет явно указать значения параметров (0,1) и что они делают. Уменьшится количество комментариев, функций и строк.
man по функции new-itemproperty
docs.microsoft.com/en-us/powershell/module/microsoft.powershell.management/new-itemproperty?view=powershell-7
man по валидаторам переменных: riptutorial.com/powershell/example/29958/parameter-validation
man по функциям:
docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_functions_advanced_methods?view=powershell-7
Все пути реестра указываются в кавычках
А зачем всегда брать в кавычки, если в пути нет пробелов?
Плюс личная привычка из других языков, что строки явно должны быть в кавычках.
Я понимаю, что можно на кавычки вообще забить и использовать их только в строках с пробелами, это дело вкуса и читаемости кода.
Так что данное предложение можно рассматривать, как сомнительное с точки зрения полезности. Это скорее украшательства.
New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{31C0DD25-9439-4F12-BF41-7FF4EDA38722}\PropertyBag" -Name ThisPCPolicy -PropertyType String -Value Hide -Force
Просто удобнее читать.
New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{31C0DD25-9439-4F12-BF41-7FF4EDA38722}\PropertyBag" -Name "ThisPCPolicy" -PropertyType "String" -Value "Hide" -Force
Функцию из примера можно еще уменьшить:
function SetSuggestedContent
{
param([ValidateSet(0,1)] [int] $NewValue = 0)
$keys = @("SubscribedContent-338393Enabled","SubscribedContent-353694Enabled","SubscribedContent-353696Enabled")
foreach ($key in $keys){
New-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name $key -PropertyType DWord -Value $NewValue -Force
}
}
github.com/farag2/Windows-10-Sophia-Script/releases
Но он самый первый в списке:
Microsoft.549981C3F5F10
Defender я никогда не буду предлагать удалить. Это удел всяких Win 10 Tweaker.
Становления владельцем всех файлов и папок, и было бы просто прекрасно.
Я это не добавлял, так как практически не сталкиваюсь с необходимостью, но все уже изобретено до меня.
www.tenforums.com/tutorials/3841-add-take-ownership-context-menu-windows-10-a.html
Регистрация не нужна.
На 7 после этого начинал бузить ThrustedInstaller уже.
Дословно уже не вспомнить, но начинаются проблемы с установкой/удалением компонент, апдейтов и msi.
Например hiberfil.sys и pagefile.sys — при 16ГБ памяти на 64ГБ ssd внезапно из ниоткуда появляется куча места.
Кэш инсталлера, в котором лежат гигабайты уже ненужной, но свято хранимой фигни, и интерфейса к обслуживанию которой — нет.
Загрузиться с WinPE и пожать оффлайново системный диск.
И, таки да, на ssd тех времен оно реально занимает место и чаще заставляет контроллер судорожно собирать мусор — тормозить ;D
назойливый сервис
Он ни разу ни назойливый и никак не мешает работать.
пользователь уже был владельцем всех файлов и папок.
Пользователь итак владелец всех тех папок, которыми он должен быть. Нет никакого смыла становиться владельцем папки Windows, так так это повлечет скорее всего смерть ОС. Я не понимаю, зачем это надо.
Хотя на работе есть один дурачок (главный админ), который до сих пор так делает, и не зарастает к нему народная тропа погибших ОС. У — умелец.
Данный скрипт для тюнинга скорее обычной ОС, борьба с телеметрией и прочими назойливыми особенностями ОС, задачи немного разные.
Теперь файлы локализации вынесены в отдельные psd1 файлы, и можно переводить на другие языки. :)
Не думали ли разделить пресет на две части, пресет для общесистемных настроек, и пресет для текущего пользователя?
3 недели потребовалось, чтобы одобрили статью. :D
.\Sophia.psd1
В итоге смог запустить только ps1, psd1 просто открывается в «блокноте» вместо запуска. Пробовал варианты решений из интернета, ничего не сработало.
Решил тут уточнить у автора.
Потому что смысла тестировать на x86 нет: никто не использует 10 настолько маломощных машинах. Всё-таки надо или современный ПК, или сидеть на 7/8.1.
Ну, да. Но я не щнаюя зачем на машинах 2010 года ставить что-то современное. Как работать на таком ведре? А главное зачем? 10 — удел мощных ПК.
Я в ручную проделал часть вещей из этого скрипта и x32 машинки оживали. Например принес знакомый новый дешевый ноут — только из магазина. Внутри amd. Тормозит при первом же запуске, без каких-то установленных сторонних программ. Там этот скрипт оживил машину, но заметно лучше стало при замене HDD на SSD.
Браузер вполне убедительная причина, если необходимый сайт не работает. Есть отдельная публикация про страдания на ХР habr.com/ru/post/373803
Если есть желание, можно переделать все пути в реестре.
я давно уже перестал рассматривать матери даже с АМ2 и 775, а уже там х64 во все поля был, всякие 754 и 478 не знаю даже, для чего могут пригодиться
на процессорах же с поддержкой х64 нет смысла ставить х32, никакого профита в быстродействии это не даст
Это ещё надо объяснить местным уникумам на местах, которые до сих пор сидят на XP, считая прогресс варварством, и покупают мышки пользователям по 100 р.
на процессорах же с поддержкой х64 нет смысла ставить х32, никакого профита в быстродействии это не даст
32-битную Windows ставят обычно там, где до 4 ГБ памяти
Впрочем при таком раскладе Win10 - не самый оптимальный вариант, т.к. памяти ей будет постоянно не хватать
Все эти манипуляции делаются в доменной сети, решил попробовать скрипт, никакие значения в блокноте не менял, подскажите пожалуйста что можно сделать?
Плюс проблема с сетевым принтером его видит он пингуется, но на отрез не подключается.
Заранее спасибо.
Скрипт настройки Windows 10. Часть II