我想要实现的目标:我想通过计划任务更新一批wim文件。因此,我安装了wims,添加更新包并卸下了wims。到目前为止,通过Windowsserver 2012r2上的PoSh4中包含的dism-module没有任何问题。
问题:
这不适用于Windows 10的wim文件,因为通过模块使用的dism版本比wim-image(10.x)的必要版本低(6.3.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工作后恢复它来完成此任务。
答案 0 :(得分:0)
我必须在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"
在每个新会话中使用。