我有一个脚本试图在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之前,脚本会验证目录是否存在,所以我知道这不是问题。
答案 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 /?