所以我试图在 Windows 2012 R2 服务器上安装 .net 3.5。我已经尝试通过添加功能和通过 DISM 都失败了。
通过添加功能 GUI 尝试时,我正在使用“指定备用路径”这失败并出现错误“安装多个角色、角色服务或功能之一失败”
当尝试通过 Elevated PowerShell 使用 DISM 时,我正在使用以下命令。
dism.exe /online /enable-feature /featurename:NetFX3 /Source:d:\sources\sxs
这失败了
错误:0x800f0906 无法下载源文件。使用“源”选项指定恢复功能所需的文件的位置。有关指定源位置的详细信息,请参阅 http://go.microsoft.com/fwlink/?LinkId=243077
DISM 日志文件位于 C:\Windows\Logs\DISM\dism.log
我已按照上面列出的 KB (243077) 为 SXS 文件夹设置组策略位置。重新启动,仍然是同样的错误。DSIM 日志显示以下内容
处理命令 enable-feature 时失败。- CPackageManagerCLIHandler::ExecuteCmdLine(hr:0x800f0906)
一个快速的谷歌显示很多人都遇到了这个问题,你应该卸载KB2966826 和 KB2966828 这个服务器还没有安装。
我还尝试了离线 .Net 安装程序,它说我必须通过 Windows 功能添加它。所有命令都以管理员身份并通过提升的提示运行。
在写这篇文章时,我搜索注意到“类似问题”并查看了这个Unable to install .net 3.5 on Windows server 2012
跑步
dism.exe /online /enable-feature /featurename:NetFX3 /all
产生与上述相同的错误。
我用来在 Windows 8.1 和 Server 2012 R2 上安装 .NET Framework 3.5 的命令是:
其中 D:\ 是已安装的 ISO 或 DVD 驱动器。与您的唯一区别是 /LimitAccess,但我认为这是重要的部分,因为它阻止它尝试联系 Windows Update 或 WSUS。无论出于何种原因,对于 Windows 8/8.1 和 Server 2012/2012R2 上的 .NET Framework 3.5,这方面(联系 Windows 更新)完全被破坏,并且总是会导致它失败。
另见:http: //blogs.technet.com/b/askcore/archive/2012/05/14/windows-8-and-net-framework-3-5.aspx
当我挂载 Windows 安装磁盘或使用物理 DVD 时,我遇到了同样的问题,这是我修复它的方法:
DISM.exe /online /enable-feature /featurename:NetFX3 /All /Source:C:\NetFX3 /LimitAccess
无论出于何种原因,我的光驱显示磁盘上的文件,但 DISM 不喜欢它,但将文件复制到 C: 似乎有效。
对我来说,解决方案是结合这些答案。我在一台装有 Windows Server 2012 R2 的机器上。
我尝试解决我手头没有操作系统 ISO 的事实。但无法让它工作。所以我不得不为 Windows Server 2012 R2 找到一个 ISO。
1.) 启动本地组策略编辑器或组策略管理控制台(WIN+R 并键入 gpedit.msc)。
2.) 展开计算机配置,展开管理模板,然后选择系统。
3.) 打开“为可选组件安装和组件修复组策略指定设置”设置,然后选择启用。
4.) 选择“直接联系 Windows 更新以下载修复内容而不是 Windows 服务器更新服务 (WSUS)”复选框。单击应用,单击确定。
wsus 设置
5.) 下载操作系统的 ISO 并安装映像。我在这里下载了一个: https ://www.technig.com/download-windows-server-2012-r2-essentials-iso-file/
*注意:这是一个 3Gb 文件。
6.) 打开提升的 Powershell 并运行:
DISM /在线 /Enable-Feature /FeatureName:NetFx3 /All /LimitAccess /Source:E:\sources\sxs
*注意:在这种情况下,ISO 已安装到“E:\ 驱动器”。
使用 Powershell 安装 Net 3.5
*这个线程是一个救生员。感谢所有贡献者,尤其是@Joshua McKinnon!
以上方法都不适合我。原来我配置了 WSUS 服务器。我可以安装它的唯一方法是
1) 注册
2) 转到计算机->HKEY_LOCAL_MACHINE->软件->策略->Microsoft->Windows->WindowsUpdate
3) 记下两个键的值:WUServer 和 WUStatusServer
4)删除/重命名这些键
5) 停止并启动 WindowsUpdate
6) 增加.Net3.5 功能
7) 放回密钥并重新启动 WindowsUpdate。
我希望它有帮助
互联网上有很多关于此的内容,其中大部分内容都在此处的答案中进行了总结。我们尝试了所有方法,但都没有奏效。即使指向 sxs 文件夹的各种副本,它仍然会出现“找不到源文件”错误的变体。
我终于将它指向另一个具有 .net 3.5 (c:\windows\winsxs)的完全修补的服务器上的 winsxs 文件夹的共享,并且它起作用了:
我的理论是安装过程正在寻找与服务器上当前 KB 匹配的源文件。我知道还有其他文章指出要删除两个特定的 KB,但那些没有出现在我们的已安装补丁列表中。
另请注意,添加/删除功能不适用于此共享。我不得不使用DISM。
当 DISM 命令跳过/Source开关指定的媒体并在线查找文件时,这意味着指定媒体中的源文件已损坏或不适用于您的服务器(版本不匹配)。
错误代码0x800f0906进一步证明了 Microsoft 记录的这种行为:https ://technet.microsoft.com/en-us/library/dn482067.aspx
帮助解决这个问题的最好办法是:
如果以上所有方法都失败,我强烈建议您提供 DISM 服务日志以进行任何进一步的故障排除,但在此阶段,我更倾向于进行完整的服务器重建。
您的 DISM 命令没有找到所需的资源,因为它正在“在线”检查源。如果为 Windows 更新服务指定了更新源,则 Windows 6.2+ 将(默认情况下)仅检查更新源服务器以进行组件安装/修复。
如果您不想将更新源(通常是 WSUS)服务器设置为修复/安装组件的源,则可以启用以下组策略:
确保选中此选项:
确保您的 Sources 媒体与您的 Windows 版本完全匹配。
我花了半天时间尝试使用 Server 2012 ISO 在 Server 2012 R2 上安装 .NET35。一旦来源正确,DISM 命令(来自this answer)就可以完美运行。
我有完全相同的问题。我的解决方案是从 Active Directory 中删除服务器,安装 .Net 3.5,然后添加回 AD。我确信它在某个层面与 WSUS 有关,但这为我们解决了这个问题。我们只是确保在添加到域之前在所有服务器上安装 3.5。
我已经能够通过使用服务器管理器添加功能向导并在那里指定备用源来解决这个问题。
从http://www.danielclasson.com/install-net-framework-35-server-2012/获得此信息
选项 1 对我也不起作用,选项 2 成功完成。