我要达到的目标:我想通过计划任务更新一批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/

10-11 02:06