Как стать автором
Обновить
11
0
Alex Kusmenko @FrankSinatra

Пользователь

Отправить сообщение
Рекомендации официальные от Microsoft
Название принтера, версия драйверов, перепроверить включение direct (не Direct) у всех устройств с type 3 драйверами. Из какой программы пытаетесь печатать. Какой принтер по умолчанию выбран. В общем вопросов много.
Дело в том, что падает не только у владельцев принтеров kyocera, но и у владельцев 1с при запуске конфигурации. forum-1c.ru/index.php?topic=77046.0

«причиной возникновения проблемы заключается в несовместимости накопительных обновлений March 2021 Patch операционной системы Windows 10 с драйверами периферийного оборудования фирмы Kyocera, а также Oki, Ricoh, Konica Minolta, Zebra и, возможно, других. Кроме этого были отмечены проблемы с печатью на некоторых моделях принтеров других производителей (Epson, Brother, Lexmark) в виде непечатаемых вертикальных белых полос или наоборот печать полностью черных блоков вместо штрихкодов.»
Описано в «Чтобы проверить тип вашего драйвера принтера, выполните следующие действия:» со скриншотом, правая колонка — тип драйвера.
Это обновление для системы безопасности направлено на улучшение качества работы ОС. Основные изменения в этом обновлении:

Устранение уязвимости безопасности с повышением привилегий, задокументированных в CVE-2021–1640, связанных с заданиями печати, отправленными в порты FILE:" После установки обновлений Windows 9 марта 2021 г. и более поздних версий задания печати, которые находятся в состоянии ожидания, перед перезапуском службы подзапуска печати или перезапуском ОС остаются в состоянии ошибки. Вручную удалите затронутые задания печати и повторно перенапечатыйте их в очередь печати, когда служба очереди печати очереди печати находится в сети.

Обновления для системы безопасности оболочки Windows, основы Windows, управления Windows, приложений Windows, управления учетной записью Windows (UAC), основных сетей Windows, гибридной облачной сети Windows, виртуализации Windows, ядра Windows, графического компонента Microsoft, Internet Explorer, устаревшей версии Microsoft Edge и Windows Media.
надо выключать обновления на 7 дней иначе оно будет продолжать устанавливаться.
Дело в том, что я на 1909 enterprise удалил это обновление без каких-то особых трудностей. Возможно после установки обновления, производилась очистка диска или у нас различные редакции 1909.
На сколько я понимаю происходящее это Printing without the Printer Driver (Direct Print).
1) Если компьютер падает в бсоды:
  • искать драйверы type 4 (они же v4) для своего принтера
  • добавить атрибут direct
  • попробовать откатиться до точки восстановления, которая должна создаваться перед установкой обновления
  • прочесть по ссылке remontka.pro/uninstall-required-update-windows-10 способ удаления таких обновлений, сделать точку восстановления, перекреститься и сделать все шаги, которые там представлены.

2) Если компьютер не падает в бсоды:
  • подождать, когда Microsoft найдет в себе силы и исправит свои же ошибки.
Microsoft в своих же примерах обычно все записывает в кавычках, если тип данных string. Тут приходится выбирать между удобочитаемостью и лаконичностью кода. Опять-таки дело вкуса.
Предложение про кавычки преследовало скорее эстетическое единообразие кода и организацию нормальной подсветки строк в редакторах.
Плюс личная привычка из других языков, что строки явно должны быть в кавычках.
Я понимаю, что можно на кавычки вообще забить и использовать их только в строках с пробелами, это дело вкуса и читаемости кода.
Так что данное предложение можно рассматривать, как сомнительное с точки зрения полезности. Это скорее украшательства.

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
    }
}
Ведь отлично же получилось, читать приятнее, строк меньше.
Хочу предложить еще одну идею. У вас по всему коду идут функции вида 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
Назначение VMware OS Optimization Tool скорее для оптимизации Windows, работающей в виртуальных средах, где важно открутить вообще всё ненужное, чтобы оптимизировать потребление ресурсов, но в принципе можно сделать шаблон и для обычной ОС при желании.
Данный скрипт для тюнинга скорее обычной ОС, борьба с телеметрией и прочими назойливыми особенностями ОС, задачи немного разные.
Всегда думал что компиляция это трансляция исходной программы в низкоуровневый код с дальнейшим получением на выходе бинарника. В принципе бинарник из ps1 тоже можно получить, но это нельзя назвать компиляцией.
https://gallery.technet.microsoft.com/scriptcenter/PS2EXE-GUI-Convert-e7cb69d5
В данном случае скорее подойдет термин «сборка (build)» из кусков в единое целое. Или компоновка.
я прикрепил ссылки выше на документацию по интернационализации, там все просто в понимании
Не хочу показаться занудой, но возможно имеет смысл избавиться по всему файлу от кусков кода вида.
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
От словосочетания «компилить ps1» аж в дрожь бросило. А нельзя как-то по простому, галочки поставил на веб форме, текстовый файлик с командами получил, профит. Это же можно реализовать на JS без шума и пыли с красивой мордой на том же vue.js.
Странно. Ожидал предвзятой реакции на продвижение данной CMS на хабре. Сам являюсь ее разработчиком, поделюсь своим списком.
Редактор:TinyMCE Advanced
Для безопасности и тюнинга: iThemes Security/ откручиваю REST, XML RPC, меняю login URL.
Для добавления капчи: reCaptcha by BestWebSoft
Для seo: Yoast SEO
Для гибкой настройки страниц: Page Builder от SiteOrigin и SiteOrigin Бандл Виджетов
Для добавления слайдеров: MetaSlider
Для добавления карт: Oi Яндекс.Карты для WordPress
Для просмотра картинок: WP Lightbox 2

Отдельно надо добавить, что на веб-сервере обязательным требованием является включенное и адекватно настроенное кеширование и актуальная версия php, что улучшает производительность данной CMS.
Возможно стоило в проект внедрить паттерн «Комманда», все строковые сообщения убрать в отдельные темплейты, чтобы не засорять код контроллера и их рендеринг перенести в View-ы, где по сути им и место.
Дело в том, что служба индексирования Windows Search (он же C:\WINDOWS\system32\SearchIndexer.exe /Embedding) выключен. Могу только предположить, что такие симптомы проявляются у тех, кто отключал кортану и другие службы поисковые для ускорения работы ОС.

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность