- Вопрос или проблема
- Обновление 1
- Обновление 2
- Ответ или решение
- 1. Проверка наличия обновлений и исправление системы
- 2. Установка .NET Framework 3.5
- 3. Подготовка ISO-образа Windows Server 2012 R2
- 4. Использование PowerShell для установки SMTP-сервера
- 5. Установка роли через DISM
- 6. Проверка групповых политик
- 7. Дополнительные шаги
- Заключение
Вопрос или проблема
У меня есть виртуальная машина на VirtualBox с Windows Server 2012 R2 Standard, которая используется для некоторых задач разработки. Я хотел установить SMTP сервер, чтобы иметь возможность отправлять электронные письма оттуда, однако каждый раз, когда я это делаю, я получаю страницу с ошибкой, которая выглядит так:
Я использовал эту ссылку https://docs.microsoft.com/en-gb/biztalk/install-and-config-guides/appendix-d-create-the-smtp-server#install-smtp-server, чтобы получить информацию о том, как установить SMTP сервер.
После того как это не сработало в первый раз, я немного поискал в интернете и нашел решение, которое говорило, что если обновление Windows отключено, то нужно вручную предоставить источники, но у меня установлено обновление Windows и оно работает, так как оно проверило наличие обновлений сегодня утром.
Тем не менее, я все же загрузил .iso файл Windows Server 2012 R2 с https://www.microsoft.com/de-de/evalcenter/evaluate-windows-server-2012-r2#evaluation_521 и попробовал два способа:
- Добавить .iso через VirtualBox (Устройства -> Оптические диски -> Выбрать файл диска…) так, чтобы он находился по адресу
D:\
- Извлечь .iso на моем компьютере в папку, чтобы он находился по адресу
C:\Downloads\Win10
Я снова прошел через установщик и нажал “Указать альтернативный путь источника” на экране подтверждения и попробовал оба решения:
Но установка все равно не завершилась и возникла та же ошибка, что и на изображении выше, сообщающая, что исходные файлы отсутствуют.
Но, как видно на следующем экране, видно, что это должно работать:
Обновление 1
Так что я тогда попробовал сделать это через PowerShell “Install-WindowsFeature -Name SMTP-Server -Source D:\sources\sxs”, но это завершается ошибкой:
Install-WindowsFeature : Запрос на добавление или удаление функций на указанном сервере не удался.
Установка одной или нескольких ролей, сервисов ролей или функций не удалась.
Исходные файлы не удалось загрузить.
Используйте параметр "source", чтобы указать местоположение файлов, необходимых для восстановления функции. Для получения дополнительной информации о том, как указать местоположение источника, смотрите http://go.microsoft.com/fwlink/?LinkId=243077. Ошибка: 0x800f0906
At line:1 char:1
+ Install-WindowsFeature -Name SMTP-Server -Source D:\sources\sxs\
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (@{Vhd=; Credent...Name=localhost}:PSObject) [Install-WindowsFeature],
Exception
+ FullyQualifiedErrorId : DISMAPI_Error__Cbs_Download_Failure,Microsoft.Windows.ServerManager.Commands.AddWindowsFeatureCommand
Что странно, так как видно, что я использую параметр source
. Когда я добавляю /source
, то мне говорят, что этот параметр не поддерживается.
Я даже пробовал с Dism
, но когда я использую Dism.exe /online /Get-Features
, в списке нет SMTP сервера, а когда я использую Dism.exe /online /enable-feature /featurename:SMTP-Server /Source:D\sources\sxs /all
, мне говорят, что нет функции с именем SMTP-Server
.
Обновление 2
Я также следовал этому руководству https://docs.microsoft.com/en-gb/windows-hardware/manufacture/desktop/configure-a-windows-repair-source#configure-group-policy-for-feature-on-demand, чтобы установить свои источники восстановления с Windows Update вместо WSUS, но ошибка осталась прежней. :/
Попробуйте использовать DISM для восстановления работоспособности вашей ОС
Dism /Online /Cleanup-Image /RestoreHealth
Если снова возникнет ошибка отсутствующих источников, вы можете добавить /Source:c:\test\mount\windows
, если вы смонтируете wim файл с помощью dism – убедитесь, что wim соответствует вашей ОС!
SMTP сервер требует .NET 3.5, успешно ли он установлен? Если нет, попробуйте установить его отдельно и посмотрите, связана ли проблема с установкой .NET.
Запустите ISO Windows 2012 R2 из Windows и выберите опцию обновления. Это сохранит все настройки и приложения, исправляя системные файлы.
Ответ или решение
Чтобы разрешить проблему с установкой дополнительных ролей и функций на Windows Server 2012 R2 Standard, связанную с отсутствующими исходными файлами, следуйте следующему пошаговому руководству:
1. Проверка наличия обновлений и исправление системы
-
Проверьте, что Windows Update активен:
Убедитесь, что настройки Windows Update включены и система регулярно загружает обновления. Это может помочь в получении необходимых файлов. -
Восстановление целостности системы:
Откройте командную строку с правами администратора и выполните команду:DISM /Online /Cleanup-Image /RestoreHealth
Эта команда попытается восстановить поврежденные системные файлы.
2. Установка .NET Framework 3.5
SMTP-сервер в Windows Server 2012 R2 требует .NET Framework 3.5. Убедитесь, что он установлен.
- Откройте PowerShell или командную строку с правами администратора.
- Выполните команду:
Install-WindowsFeature -Name NET-Framework-Core
Проверьте, успешно ли завершилась установка.
3. Подготовка ISO-образа Windows Server 2012 R2
Вы правильно загрузили ISO-образ с сайта Microsoft. Давайте убедимся, что он правильно смонтирован и доступен:
-
Монтирование ISO-образа:
Запустите VirtualBox, убедитесь, что ISO-образ смонтирован в виртуальную машину. -
Проверка пути к источнику:
Убедитесь, что путь к источнику правильный. Например, если ISO смонтирован наD:\
, проверьте, что вы действительно можете видеть папкуD:\sources\sxs
.
4. Использование PowerShell для установки SMTP-сервера
Попробуйте установить SMTP-сервер, указав правильный источник:
Install-WindowsFeature -Name SMTP-Server -Source D:\sources\sxs
Если это не сработает, попробуйте использовать другой метод:
5. Установка роли через DISM
Если PowerShell не работает, попробуйте использовать DISM:
- Откройте командную строку с правами администратора.
- Выполните следующие команды:
dism /online /enable-feature /featurename:SMTP-Server /Source:D:\sources\sxs /All
6. Проверка групповых политик
Если вы все еще сталкиваетесь с проблемами, проверьте настройки групповых политик для функции "Отказ в обслуживании":
- Откройте редактор местной групповой политики (gpedit.msc).
- Перейдите к
Computer Configuration -> Administrative Templates -> System -> Features on Demand
. - Убедитесь, что ваши источники настроены на использование Windows Update.
7. Дополнительные шаги
Если ничего из вышеперечисленного не сработало:
- Переустановите исходную версию Windows с той же ISO, используя опцию "Обновление", которая сохранит ваши настройки и приложения, но восстановит системные файлы.
- Убедитесь, что ваш ISO-образ не поврежден. Попробуйте загрузить его еще раз.
Заключение
Следуя этим шагам, вы должны устранить проблему с отсутствующими исходными файлами и успешно установить SMTP-сервер на Windows Server 2012 R2 Standard. Если у вас по-прежнему возникают трудности, сообщите о том, на каком этапе вы столкнулись с проблемами, для дальнейшего анализа.