DISM.exe无法识别.Net 3.5.1安装程序

时间:2018-01-05 16:13:44

标签: .net powershell windows-server-2016

我有一个脚本试图在Server 2016上安装某些功能。如果它检测到没有安装.Net 3.5.1,它会构建以下DISM.exe命令:

Start-Process -FilePath DISM.exe -ArgumentList "/Online /Enable-Feature /FeatureName:NetFx3 /All /LimitAccess /Source:`"$env:SPbits\PrerequisiteInstallerFiles\sxs`"" -NoNewWindow -Wait

我有sxs目录,并在其中放置了3.5.1安装程序,名为dotnetfx35.exe,这是MS给它的默认名称,但进程抛出错误说它无法找到源文件。那么文件名与DISM期望的不匹配,还是我的安装程序错误?我无法找到任何有关DISM正在寻找的文档,因此难以进行故障排除。

它抛出的错误是0x800f081f The source files could not be found。建议的解决方法是手动安装它,但我需要将其自动化以便快速推出。

快速编辑:在尝试执行DISM之前,脚本会验证目录是否存在,所以我知道这不是问题。

2 个答案:

答案 0 :(得分:1)

首先尝试安装3.5,这是在WS2016中

使用服务器管理器或Add-WindowsFeature,然后尝试更新。

是的,您可以在WS2016上使用3.5,它是一个可安装的功能,3.5.1不是。

(Get-CimInstance -ClassName CIM_OperatingSystem).Caption
Microsoft Windows Server 2016 Datacenter

Get-WindowsFeature -Name '*Net*Framework*' | Select Name,InstallState

Name                      InstallState
NET-Framework-Features       Installed
NET-Framework-Core           Installed
NET-Framework-45-Features    Installed
NET-Framework-45-Core        Installed
NET-Framework-45-ASPNET      Installed

答案 1 :(得分:-1)

尝试将dotnetfx35.exe解压缩到某个文件夹中,然后将文件夹路径用作DISM Source参数。

通过winrar解压缩或尝试使用dotnetfx35.exe /?