在脚本中的Srv2012r2上使用ADK的Dism v10

时间:2016-03-31 07:39:54

标签: powershell dism

我想要实现的目标:我想通过计划任务更新一批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工作后恢复它来完成此任务。

1 个答案:

答案 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"

在每个新会话中使用。