Вопрос или проблема
У меня есть семь систем Server 2019, которые я обслуживаю, и у них нет подключения к интернету или MECM или WSUS. До сих пор я обновлял их с помощью инструмента WSUS Offline, который я нашел, который загружает обновления и упаковывает их в ZIP. Вы запускаете исполняемый файл инструмента, и он проверяет вашу систему, чтобы узнать, что вам нужно, и устанавливает это. Он хорошо работает для ежемесячных патчей Windows. Он не очень хорошо работает для dotNet Framework или Windows Defender.
Следующее, что я сделал, чтобы попытаться получить патчи для dotNet, это я пошел на Скачать .NET Framework | Бесплатные официальные загрузки и скачал “NDP48-x86-x64-AllOS-ENU.exe”. Я передал это на сервер. Сначала я удаляю текущую версию:
# Удалить:
NDP481-x86-x64-AllOS-ENU.exe /passive /uninstall
Удаление прошло успешно.
Затем я пытаюсь установить патченую версию. Сначала я пробую:
# Установить:
NDP481-x86-x64-AllOS-ENU.exe /passive /promptrestart
Это не сработало, поэтому я убрал параметры и попробовал это:
NDP481-x86-x64-AllOS-ENU.exe /log .\dotnet.log
Вот скриншоты, как проходит установка:
Я перехожу к файлу журнала (который, кстати, является файлом html). Файл журнала говорит, что не может найти объект или свойство конкретного CAB файла. Но вы можете увидеть на следующем скриншоте, что CAB файл там:
Затем я перехожу к файлу CBS.log, на который ссылается файл журнала dot net (файл журнала CBS имеет более 101K строк). В этом файле CBS.log он видит этот CAB файл и извлекает из него файлы:
Затем он проходит через много строк, подобных этим, единственным различием является эта выделенная часть. Но это указанный номер KB из первоначальной ошибки.
Я знаю, что этот скриншот обрезан. Вот полная строка:
План: Пакет: Package_for_KB4486153~31bf3856ad364e35~amd64~~10.0.1.2919, Обновление: 4486153-1679_neutral_PACKAGE, текущий: Установлен, ожидание: По умолчанию, старт: Установлен, применимый: Установлен, нацеленный: Заменен, лимит: Установлен, выбранный: По умолчанию
После каждой строки, начинающейся с “План:”, есть множество строк “Appl:”:
Это продолжается около 20 итераций. Но затем он доходит до этой строки и не может найти родительский пакет:
2024-12-05 07:27:56, Info CBS План: Пакет: Package_for_KB4486153~31bf3856ad364e35~amd64~~10.0.1.2919, Обновление: 4486153-1685_neutral_PACKAGE, текущий: Установлен, ожидание: По умолчанию, старт: Установлен, применимый: Установлен, нацеленный: Заменен, лимит: Установлен, выбранный: По умолчанию
2024-12-05 07:27:56, Info CBS Appl: выявить родителя, Пакет: Package_6_for_KB4486153~31bf3856ad364e35~amd64~~10.0.1.2919, Родитель: Microsoft-Windows-Client-Features-WOW64-Package0017~31bf3856ad364e35~amd64~~10.0.16299.15, Диспозиция = Обнаружение, СравнениеВерсии: EQ, СравнениеСборки: GE, СравнениеИсправления: GE, Существование: присутствует
2024-12-05 07:27:56, Info CBS Appl: detectParent: родитель не найден, перейти в отсутствующий
2024-12-05 07:27:56, Info CBS Appl: выявить родителя, Пакет: Package_6_for_KB4486153~31bf3856ad364e35~amd64~~10.0.1.2919, Родитель: Microsoft-Windows-ServerCore-SKU-Foundation-WOW64-onecore-Package~31bf3856ad364e35~amd64~~10.0.16299.15, Диспозиция = Обнаружение, СравнениеВерсии: EQ, СравнениеСборки: GE, СравнениеИсправления: GE, Существование: присутствует
2024-12-05 07:27:56, Info CBS Appl: detectParent: родитель найден: Microsoft-Windows-ServerCore-SKU-Foundation-WOW64-onecore-Package~31bf3856ad364e35~amd64~~10.0.17763.1, состояние: Установлен
2024-12-05 07:27:56, Info CBS Appl: выявить родителя, Пакет: Package_6_for_KB4486153~31bf3856ad364e35~amd64~~10.0.1.2919, Родитель: Microsoft-Windows-CloudEdition~31bf3856ad364e35~amd64~~10.0.16299.15, Диспозиция = Обнаружение, СравнениеВерсии: EQ, СравнениеСборки: GE, СравнениеИсправления: GE, Существование: присутствует
2024-12-05 07:27:56, Info CBS Appl: detectParent: родитель не найден, перейти в отсутствующий
2024-12-05 07:27:56, Info CBS Appl: выявить родителя, Пакет: Package_6_for_KB4486153~31bf3856ad364e35~amd64~~10.0.1.2919, Родитель: Microsoft-Windows-CloudNEdition~31bf3856ad364e35~amd64~~10.0.16299.15, Диспозиция = Обнаружение, СравнениеВерсии: EQ, СравнениеСборки: GE, СравнениеИсправления: GE, Существование: присутствует
2024-12-05 07:27:56, Info CBS Appl: detectParent: родитель не найден, перейти в отсутствующий
2024-12-05 07:27:56, Info CBS Appl: выявить родителя, Пакет: Package_6_for_KB4486153~31bf3856ad364e35~amd64~~10.0.1.2919, Родитель: Microsoft-Windows-CoreCountrySpecificEdition~31bf3856ad364e35~amd64~~10.0.16299.15, Диспозиция = Обнаружение, СравнениеВерсии: EQ, СравнениеСборки: GE, СравнениеИсправления: GE, Существование: присутствует
2024-12-05 07:27:56, Info CBS Appl: detectParent: родитель не найден, перейти в отсутствующий
2024-12-05 07:27:56, Info CBS Appl: выявить родителя, Пакет: Package_6_for_KB4486153~31bf3856ad364e35~amd64~~10.0.1.2919, Родитель: Microsoft-Windows-CoreEdition~31bf3856ad364e35~amd64~~10.0.16299.15, Диспозиция = Обнаружение, СравнениеВерсии: EQ, СравнениеСборки: GE, СравнениеИсправления: GE, Существование: присутствует
2024-12-05 07:27:56, Info CBS Appl: detectParent: родитель не найден, перейти в отсутствующий
2024-12-05 07:27:56, Info CBS Appl: выявить родителя, Пакет: Package_6_for_KB4486153~31bf3856ad364e35~amd64~~10.0.1.2919, Родитель: Microsoft-Windows-CoreNEdition~31bf3856ad364e35~amd64~~10.0.16299.15, Диспозиция = Обнаружение, СравнениеВерсии: EQ, СравнениеСборки: GE, СравнениеИсправления: GE, Существование: присутствует
После этого я застрял еще больше. Я не знаю, где он ищет эти файлы, поэтому не могу подтвердить это или глубже разобраться в этой конкретной проблеме с файлом.
Я перезагрузил систему несколько раз.
Если кто-то может предложить какие-либо советы или помощь, я буду очень признателен.
Ответ или решение
Обновление .NET Framework в офлайновом режиме для серверов Windows 2019
Введение
В условиях, когда вы управляете серверами Windows 2019 без доступа в интернет и без централизованного управления обновлениями, таких как MECM или WSUS, возникает необходимость в эффективном способе применения обновлений, включая обновления .NET Framework и Windows Defender. В данной статье мы рассмотрим, как решить проблему с обновлением .NET Framework на офлайновых системах, основываясь на вашем опыте и предоставленных данных.
Проблема
Вы уже пробовали использовать утилиту WSUS Offline для установки обновлений Windows, что оказалось успешным для большинства обновлений. Однако проблема возникла при попытке обновления .NET Framework, где вы столкнулись с проблемами при установке патчей после удаления предыдущей версии. Логи установки указывают на ошибки, связанные с отсутствием родительских пакетов, что затрудняет дальнейшее разбирательство.
Решения
Вот несколько шагов и рекомендаций, которые могут помочь вам успешно обновить .NET Framework в офлайновом режиме:
1. Подготовка к Установке
Перед установкой новых пакетов .NET Framework убедитесь, что:
- Все устаревшие версии .NET Framework успешно удалены.
- Вы используете самую актуальную версию установщика. На момент написания, актуальная версия – это NDP48-x86-x64-AllOS-ENU.exe, но убедитесь, что она совпадает с выпущенными обновлениями.
2. Установка Патчей через Офлайн Установку
- На вашем офлайновом сервере создайте изолированный каталог, куда вы переместите все необходимые .NET пакеты, в том числе патчи.
- Запустите установку с параметрами, позволяющими получить более детальную информацию о процессе:
NDP481-x86-x64-AllOS-ENU.exe /log .\dotnet_install.log
3. Анализ Логов
- После завершения установки, проанализируйте лог-файл
dotnet_install.log
. Особенно обратите внимание на строки, связанные с отсутствующими пакетами или ошибками в развертывании (например, ошибки, связанные с файлами CAB). - Проводите анализ в
CBS.log
, если возникнут дальнейшие ошибки. Обратите внимание на упоминания о родительских пакетах и их состоянии.
4. Обновление Через Ручной Метод
Если автоматическая установка не сработала, попробуйте следующее:
- Заранее загрузите и установите все необходимые зависимые пакеты, которые могут быть необходимы для .NET Framework. Например, установите все актуальные обновления Windows, которые могут включать необходимые библиотеки.
- Убедитесь, что на сервере установлены все связанные с .NET Framework зависимости. Для этого может понадобиться директория
C:\Windows\servicing\Packages
.
5. Использование Инструментов Обновления
- Примените утилиты, такие как DISM (Deployment Image Servicing and Management), для сканирования и исправления проблем в компонентной базе:
DISM /Online /Cleanup-Image /CheckHealth DISM /Online /Cleanup-Image /ScanHealth DISM /Online /Cleanup-Image /RestoreHealth
Заключение
Обновление .NET Framework на изолированных серверах может быть сложной задачей. Важно провести правильный анализ логов для выявления ошибок и обеспечить наличие всех необходимых зависимостей. Убедитесь, что все патчи загружены должным образом и учтите, что некоторые версии .NET могут требовать установку дополнительных пакетов. Если у вас возникнут дополнительные вопросы или сложности, не стесняйтесь обращаться к специализированным форумам или службе поддержки Microsoft для получения более глубокого анализа вашей конкретной ситуации.
Это поможет вам не только решить текущую проблему, но и подготовить серверы к будущим обновлениям, минимизируя время простоя и увеличивая безопасность вашей инфраструктуры.