DISM.exe不是';t.NET3.5.1安装程序

DISM.exe不是';t.NET3.5.1安装程序,.net,powershell,windows-server-2016,.net,Powershell,Windows Server 2016,我有一个脚本试图在服务器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 我得到

我有一个脚本试图在服务器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无法找到源文件
。建议的解决方法是手动安装,但我需要自动安装,以便快速展开


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

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


通过winrar解包或尝试dotnetfx35.exe/?

尝试,先安装WS2016中的3.5

使用服务器管理器或添加Windows功能,然后尝试更新

是的,您可以在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

它是否验证文件本身是否存在?你提到了目录。不,只是路径。路径存在,文件在其中,但它无法识别,因此我猜测文件名是错误的,或者文件本身是错误的。但我找不到文档来证实在最新的Windows版本上安装..NET Framework 3.5.1不是由“dontetfx35.exe”以任何方式完成的。显然,服务器2016中默认未安装该软件