我要达到的目标:我想通过计划任务更新一批wim文件。因此,在安装wims之前,请添加更新软件包并卸下wims。到目前为止,通过Windowsserver 2012r2上PoSh4中包含的dism模块,没有问题。
问题:
这不适用于Windows 10的wim文件,因为通过模块使用的dism版本低于(6.3.x)必要版本的wim镜像(10.x)。
我尝试了什么:
1)通过remove-module dism
删除库存的dism-module,并通过Import-Module 'C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\amd64\DISM'
导入dism-module。运行Get-WindowsEdition -Online -verbose
仍会提供Dism版本6.3.x
2)通过C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\amd64\DISM\dism.exe
或$env:path
和-f
在脚本中使用&
。在第一手尝试中,dism没有得到我尝试应用的论点。在第二次尝试中,不会将dism识别为命令。
我必须忽略了一些东西,但我无法弄清楚。
代码看起来如何? Args可能是例如:$mountpath = 'd:\autoupdating'$package = 'D:\updates\whatever.cab'$dismcommands = "/image:$mountpath /add-package /packagepath:$package
解决方案:
当我想要$dismcommands
时,PoSh或DISM会遇到严重问题。 DISM无法将字符串识别为可用命令。您可以通过以下方法轻松绕过此操作DISM.exe "/image:$mountpath /add-package /packagepath:$package"
可以正常工作。
此外,您需要修改$env:Path
变量以定位C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\amd64\DISM\
。我是通过备份$env:Path
,重置它并在完成WIn10.wim之后还原它来完成此操作的。
最佳答案
我必须在Windows 8.1 64bit上使用此代码来服务Win 10 wim(当然是从最新的ADK安装了DISM之后):
import-module "c:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\amd64\DISM"
$env:Path = "c:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\amd64\DISM;$env:Path"
在每个新 session 中使用。
关于powershell - 在脚本内的Srv2012r2上使用ADK的Dism v10,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36327085/