我对 Windows Server 上的 dism 语法以及在某些情况下它需要的参数感到困惑/add-package
。我试过了,但在网上找不到好的(明确的)参考资料。
情况是,我正在尝试维护系统/online
;我设法 /remove-package 了整个包,因此我尝试使用 重新添加它/add-package
,这应该很简单,从 DVD 上的 install.wim 开始。但是,Microsoft 网站上没有清楚地解释所需的参数,对于/add-package
实时系统,令人惊讶的是,我无法正确完成。我还尝试将 安装install.wim
为文件夹并从中安装/add-package
,但同样找不到使其工作的语法。非常感谢您的帮助。
DISM
/get-feature
需要 .WIM 或文件夹作为可以找到该功能的源。什么才算有效位置?尤其是,必须安装 .WIM 还是指向install.wim
(或install.wim:index
)就足够了?如果.WIM + index
可以直接引用,语法是什么?使用 添加包时
/add-package
,包路径/文件本身是否是足够的标识符,还是还必须提供包名称或其他标识符? 如果是这样,哪些标识符有效以及如何找到它们?如果包文件位于 wim 中(例如安装 DVD
install.wim
),是否需要指定该 .WIM 中的路径,或者仅指定 .WIM(或 .WIM+index)是否足够?dism /image:X:\MOUNTEDWIM /get-packages
在已安装的 Windows install.wim 上,仅显示似乎与安装相关的少数软件包;我预期在源中的许多软件包均未列出。但尝试更具体一点,使用dism /image:X:\MOUNTEDWIM\Windows\servicing\Packages /get-packages
,完全失败。出了什么问题?install.wim:2
如果软件包被意外删除,那么将整个已删除的软件包添加到实时/在线系统(例如,从 DVD 或已安装的文件夹,或两者之一)的语法是什么/removed
? 我将使用什么标识符或路径以及其他参数?
我尝试过的语法失败(使用源 DVD -> install.wim 文件):
- dism /online /add-package /packagepath:“Microsoft-Windows-PACKAGE~amd64~~6.3.9600.16384”/limitaccess /source:“X:\sources\install.wim”
- dism /online /add-package /软件包名称:名称 /软件包路径:“X:\sources\install.wim\”
- dism /online /enable-feature /featurename:名称 /All /Source:“X:\sources\install.wim”/LimitAccess
- dism /online /get-features /来源:“X:\sources\install.wim”/LimitAccess
- dism /online /add-package /packagepath:“Microsoft-Windows-PACKAGE~amd64~~6.3.9600.16384”/source:install.wim
- dism /online /add-package /packagepath:install.wim
- dism /online /add-package /packagepath:install.wim /ignorecheck
语法失败(相同的 install.wim 文件,作为文件夹安装):
- dism /online /add-package /软件包名称:名称/all /软件包路径:X:\MOUNTEDWIM\Windows
- dism /online /add-package /软件包名称:NAME /软件包路径:X:\MOUNTEDWIM\Windows
- dism /获取软件包/图像:X:\MOUNTEDWIM\Windows
- dism /获取包/包路径:X:\MOUNTEDWIM\Windows
- dism /图像:X:\MOUNTEDWIM /获取软件包
(没有一个是正确的!)
答案1
开关/Add-Package
无法按照您尝试使用的方式工作。您可以通过以下方式查看正确的语法:
DISM /Online /Add-Package /?
正如其他人提到的,应该使用在线系统的 AIK 中的 DISM 二进制文件
- 在你的情况下,DISM 二进制文件来自 Windows 7 AIK,而不是 Windows 8 或 10 ADK
- Windows 8+ 中的 DISM 二进制文件与 Windows 7 二进制文件完全不同,后者缺少 Windows 8+ 中 DISM 二进制文件的功能(ImageX 已被弃用,其功能已转入 DISM 二进制文件)
- Windows 8+ 中的 DISM 二进制文件与 Windows 7 二进制文件完全不同,后者缺少 Windows 8+ 中 DISM 二进制文件的功能(ImageX 已被弃用,其功能已转入 DISM 二进制文件)
- 我创建了一个脚本,它将自动安装 ADK(在您的情况下是 AIK),然后创建一个独立的 DISM 文件夹。
验证文件是否正确以添加包
DISM /Online /Get-PackageInfo {/PackagePath:"<path_to_package>" | /PackageName:"<name_in_image>"}
/PackagePath
可以指向 .cab 文件或文件夹(不是 .msu 文件)。.cab 文件的路径应指向包的原始来源,而不是文件在映像上的安装位置。
DISM /Image:"<path_to_image>" /Get-PackageInfo {/PackagePath:"<path_to_package>" | /PackageName:"<name_in_image>"}
在线系统:添加包裹
科技网:参见限制(链接底部)
DISM /Image:"<path_to_image>" /Add-Package /PackagePath:"<path_to_package>" [/IgnoreCheck] [/PreventPending]
- 指向
/PackagePath
目录、.cab 或 .msu 文件。- 对于大多数包,或者至少是我过去添加的包,语言文件也必须存在于包目录中相应的语言文件夹中(即 .\PackageDir\en-us)。
- 对于大多数包,或者至少是我过去添加的包,语言文件也必须存在于包目录中相应的语言文件夹中(即 .\PackageDir\en-us)。
- 附加开关:
/IgnoreCheck
:如果适用性检查失败,则跳过软件包的安装/PreventPending
:如果包或 Windows 映像有待处理的在线操作,则跳过该包的安装。
离线系统:添加包
DISM /Image:"<path_to_image>" /Add-Package /PackagePath:"<path_to_package>" [/IgnoreCheck] [/PreventPending]