PkgMgr.exe Dism.exe命令行工具 安装CAB和MSU格式更新包 要使用 DISM 命令在 Windows 中批量安装多个 CAB 或 MSU 文件,您可以编写一个批处理脚本。DISM (Deployment Image Servicing and Management) 是一个功能强大的工具,可用于管理 Windows 映像、安装、卸载、配置 Windows 功能、驱动程序等。

PkgMgr.exe /?

Windows Package Manager

注意:PkgMgr.exe 已被弃用。请更新您的脚本,

使用 DISM.exe 来安装、卸载、配置和更新 Windows 的功能和软件包。

查看 http://go.microsoft.com/fwlink/?LinkID=195329 获取更多信息。
/?,/h,/help - 显示此帮助。
/ip - 安装软件包。
/up - 卸载软件包。
/up:[(软件包名称1)..] - 卸载指定的软件包。
/iu:{更新名称1}[...] - 安装指定名称的更新。
/uu:{更新名称1}[..] - 卸载指定名称的更新。
/m:"(软件包目录)" - 指定软件包的位置。
/p:"(软件包名称)" - 指定软件包的标识。
/o:"[{启动驱动器路径};]{脱机 Windows 目录路径}" - 对脱机 Windows 映像执行操作。
/n:{无人参与文件} - 指定无人参与操作参数。
/s:[沙盒目录] - 指定要提取文件的目录。
/quiet - 无 UI 运行 pkgmgr.exe。如果需要重新启动,将在不提示的情况下执行重新启动。
/norestart - 阻止重新启动(当需要重新启动时)。
/l:{日志文件} - 指定诊断输出文件。


PkgMgr.exe 是 Windows 系统中用于管理 Windows 更新包和其他类型包的程序。CAB 文件是 Cabinet 文件的缩写,它是一种压缩文件格式,经常用于 Windows 系统中存储多个文件。MSU 文件是 Microsoft Update Standalone 的缩写,它是一种 Windows 更新包文件格式。
要使用 PkgMgr.exe 命令安装 CAB 或 MSU 文件,请按照以下步骤操作:
首先,找到要安装的 CAB 或 MSU 文件。
右键单击 CAB 或 MSU 文件,然后选择“属性”。
在“属性”窗口中,切换到“详细信息”选项卡。
在“属性”部分,找到“打开方式”部分,并选择“选择程序”。
在“打开方式”下拉菜单中,选择“命令提示符(管理员)”或“Windows 命令提示符”。
点击“确定”保存设置。
现在,您可以通过命令提示符安装 CAB 或 MSU 文件。打开命令提示符(以管理员身份),然后输入以下命令:
对于 CAB 文件:
复制
pkgmgr /add-package "C:\path\to\your\file.cab"
对于 MSU 文件:
复制
pkgmgr /add-package "C:\path\to\your\file.msu"
请将 C:\path\to\your\file.cab 或 C:\path\to\your\file.msu 替换为您要安装的 CAB 或 MSU 文件的路径。
按 Enter 键运行命令。如果命令成功执行,您将看到成功安装的消息。

 


dism /?

部署映像服务和管理工具
版本: 10.0.20348.681


DISM.exe [dism_options] {Imaging_command} [<Imaging_arguments>]
DISM.exe {/Image:<path_to_offline_image> | /Online} [dism_options]
         {servicing_command} [<servicing_arguments>]

描述:

  DISM 枚举、安装、卸载、配置和更新 Windows 映像
 中的功能和程序包。可以使用的命令取决于提供的映像
 以及映像是处于脱机还是运行状态。


FFU 命令:

  /Capture-Ffu            - 将物理磁盘映像捕获到新的 FFU 文件中。
  /Apply-Ffu              - 应用 .ffu 映像。
  /Split-Ffu              - 将现有 .ffu 文件拆分成多个只读
已拆分 FFU 文件。
  /Optimize-Ffu           - 优化 FFU 文件,使其其可应用于不同大小的存储

WIM 命令:

  /Apply-CustomDataImage  - 冻结自定义数据映像中包含的文件。
  /Capture-CustomImage    - 将自定义设置捕获到 WIMBoot 系统上的增量 WIM 文件中。
                            捕获的目录包括所有
                            子文件夹和数据。
  /Get-WIMBootEntry       - 显示指定磁盘卷的
                            WIMBoot 配置项。
  /Update-WIMBootEntry    - 更新指定磁盘卷的
                            WIMBoot 配置项。
  /List-Image             - 显示指定映像中的文件
                            和文件夹的列表。
  /Delete-Image           - 从具有多个卷映像的 WIM 文件
                            删除指定的卷映像。
  /Export-Image           - 将指定映像的副本导出到其他
                            文件。
  /Append-Image           - 将其他映像添加到 WIM 文件中。
  /Capture-Image          - 将驱动器的映像捕获到新的 WIM 文件中。
                            捕获的目录包含所有子文件夹和
                            数据。
  /Get-MountedWimInfo     - 显示有关安装的 WIM 映像的信息。
  /Get-WimInfo            - 显示有关 WIM 文件中的映像的信息。
  /Commit-Wim             - 保存对安装的 WIM 映像的更改。
  /Unmount-Wim            - 卸载安装的 WIM 映像。
  /Mount-Wim              - 从 WIM 文件安装映像。
  /Remount-Wim            - 恢复孤立的 WIM 安装目录。
  /Cleanup-Wim            - 删除与损坏的已安装 WIM
                            映像关联的资源。

通用映像处理命令:

  /Split-Image            - 将现有 .wim 文件拆分为多个
                               只读拆分 WIM (SWM) 文件。
  /Apply-Image            - 应用一个映像。
  /Get-MountedImageInfo   - 显示有关安装的 WIM 和 VHD 映像的
                            信息。
  /Get-ImageInfo          - 显示有关 WIM、VHD 或 FFU 文件中映像的
                                 信息。
  /Commit-Image           - 保存对装载的 WIM 或 VHD 映像的更改。
  /Unmount-Image          - 卸载已装载的 WIM 或 VHD 映像。
  /Mount-Image            - 从 WIM 或 VHD 文件装载映像。
  /Remount-Image          - 恢复孤立的映像装载目录。
  /Cleanup-Mountpoints    - 删除与损坏的已安装映像
                            关联的资源。

映像规格:

  /Online                 - 以正在运行的操作系统为目标。
  /Image                  - 指定脱机 Windows 映像的根目录的路径。

DISM 选项:

  /English                - 用英文显示命令行输出。
  /Format                 - 指定报告输出格式。
  /WinDir                 - 指定 Windows 目录的路径。
  /SysDriveDir            - 指定名为 BootMgr 的系统加载程序文件的路径。
  /LogPath                - 指定日志文件路径。
  /LogLevel               - 指定日志(1-4)中所示的输出级别。
  /NoRestart              - 取消自动重新启动和重新启动提示。
  /Quiet                  - 取消除错误消息之外的所有输出。
  /ScratchDir             - 指定暂存目录的路径。

若要获得有关这些 DISM 选项及其参数的详细信息,请在紧挨着 /? 之前指定一个选项。

  示例:
    DISM.exe /Mount-Wim /?
    DISM.exe /ScratchDir /?
    DISM.exe /Image:C:\test\offline /?
    DISM.exe /Online /?

要使用 DISM 命令在 Windows 中批量安装多个 CAB 或 MSU 文件,您可以编写一个批处理脚本。DISM (Deployment Image Servicing and Management) 是一个功能强大的工具,可用于管理 Windows 映像、安装、卸载、配置 Windows 功能、驱动程序等。

以下是一个示例批处理脚本,用于批量安装一个文件夹中的多个 CAB 或 MSU 文件:

Copy Code
@echo off
set "filesDirectory=C:\Path\To\Your\Files"

REM 安装 CAB 文件
for %%F in ("%filesDirectory%\*.cab") do (
    echo Installing %%~nxF...
    dism /Online /Add-Package /PackagePath:"%%~fF"
)

REM 安装 MSU 文件
for %%F in ("%filesDirectory%\*.msu") do (
    echo Installing %%~nxF...
    start /wait wusa.exe "%%~fF" /quiet /norestart
)

echo All installations completed.
pause

请将 %filesDirectory% 变量的值替换为存放 CAB 或 MSU 文件的目录路径。脚本首先在指定目录中查找所有的 CAB 和 MSU 文件,然后依次安装它们。

  • 对于 CAB 文件,使用 dism /Online /Add-Package 命令进行安装。
  • 对于 MSU 文件,使用 wusa.exe (Windows Update Standalone Installer) 进行安装,并通过参数 /quiet 和 /norestart 指定安装过程静默且不重新启动计算机。

确保以管理员权限运行批处理脚本,以便顺利完成安装过程。完成后,脚本会显示 "All installations completed." 并暂停以便您查看输出信息。

要在批处理脚本中允许用户自定义输入文件夹,您可以使用 set /p 命令提示用户输入文件夹路径。以下是更新后的脚本:

Copy Code
@echo off

REM 提示用户输入文件夹路径
set /p filesDirectory=请输入存放 CAB 或 MSU 文件的文件夹路径:

REM 检查文件夹是否存在
if not exist "%filesDirectory%" (
    echo 错误:指定的文件夹路径不存在。
    pause
    exit /b
)

REM 安装 CAB 文件
for %%F in ("%filesDirectory%\*.cab") do (
    echo Installing %%~nxF...
    dism /Online /Add-Package /PackagePath:"%%~fF"
)

REM 安装 MSU 文件
for %%F in ("%filesDirectory%\*.msu") do (
    echo Installing %%~nxF...
    start /wait wusa.exe "%%~fF" /quiet /norestart
)

echo All installations completed.
pause

现在,脚本会提示用户输入存放 CAB 或 MSU 文件的文件夹路径,并进行检查以确保路径存在。然后,它会在指定的文件夹中查找 CAB 和 MSU 文件,并依次安装它们。

 


DISM 命令安装 CAB 或 MSU 文件,您需要使用以下命令:

  1. 安装 CAB 文件:

    Copy Code
    dism /online /add-package /packagepath:C:\path\to\your\package.cab
  2. 安装 MSU 文件:

    Copy Code
    dism /online /add-package /packagepath:C:\path\to\your\package.msu

在上述命令中,将 "C:\path\to\your\package.cab" 或 "C:\path\to\your\package.msu" 替换为实际的 CAB 或 MSU 文件的路径。


批量安装多个 CAB 或 MSU 文件,您可以创建一个文本文件,列出要安装的每个文件的路径,然后使用 "for /f" 命令循环读取该文件并逐个执行 DISM 命令。

以下是一个示例:

  1. 创建一个文本文件(例如 packages.txt),并将要安装的 CAB 或 MSU 文件的路径逐行写入该文件:
Copy Code
C:\path\to\package1.cab
C:\path\to\package2.cab
C:\path\to\package3.msu
  1. 打开命令提示符(或 PowerShell)并运行以下命令:
Copy Code
for /f %i in (packages.txt) do dism /online /add-package /packagepath:%i

这将循环读取 packages.txt 文件中的每一行,并使用 DISM 命令逐个安装 CAB 或 MSU 文件。

请注意,如果您在批处理脚本中使用此命令,请将 %i 更改为 %%i,以适应批处理的语法。


除了使用循环读取文件的方式,还有其他几种方法可以批量安装 CAB 或 MSU 文件:

  1. 使用 PowerShell 脚本:您可以编写一个 PowerShell 脚本来批量安装 CAB 或 MSU 文件。以下是一个示例:
powershellCopy Code
$packages = Get-Content -Path "C:\path\to\packages.txt"
foreach ($package in $packages) {
    Add-WindowsPackage -Online -PackagePath $package
}

将 "C:\path\to\packages.txt" 替换为存储要安装的 CAB 或 MSU 文件路径的文本文件的实际路径。然后,运行该 PowerShell 脚本即可批量安装文件。


Windows 中批量安装多个 CAB 或 MSU 文件,您可以使用 PowerShell 脚本来完成这项任务。以下是一个简单的 PowerShell 脚本示例,用于批量安装多个 CAB 或 MSU 文件:

powershellCopy Code
# 设置要安装的 CAB 或 MSU 文件的目录路径
$filesDirectory = "C:\Path\To\Your\Files"

# 获取目录中所有的 CAB 和 MSU 文件
$cabFiles = Get-ChildItem -Path $filesDirectory -Filter *.cab
$msuFiles = Get-ChildItem -Path $filesDirectory -Filter *.msu

# 安装 CAB 文件
foreach ($file in $cabFiles) {
    Write-Host "Installing $($file.Name)..."
    Expand-WindowsPackage -PackagePath $file.FullName -Path $env:SystemDrive
}

# 安装 MSU 文件
foreach ($file in $msuFiles) {
    Write-Host "Installing $($file.Name)..."
    Start-Process -FilePath "wusa.exe" -ArgumentList "/quiet", "/norestart", $file.FullName -Wait
}

您需要替换 $filesDirectory 变量的值为您存放 CAB 或 MSU 文件的目录路径。该脚本首先获取指定目录中的所有 CAB 和 MSU 文件,然后依次安装它们。

  • 对于 CAB 文件,使用 Expand-WindowsPackage 命令进行安装。
  • 对于 MSU 文件,使用 wusa.exe (Windows Update Standalone Installer) 进行安装,并通过参数 /quiet 和 /norestart 指定安装过程静默且不重新启动计算机。

请确保在运行脚本之前以管理员权限打开 PowerShell 控制台,以确保安装过程顺利完成。此外,根据您的需求,您可能需要自定义安装参数以满足特定的要求。

在 CMD(命令提示符)中编写批处理脚本来批量安装多个 CAB 或 MSU 文件也是可行的。以下是一个示例批处理脚本,用于在 Windows 中批量安装 CAB 或 MSU 文件:

Copy Code
@echo off
set "filesDirectory=C:\Path\To\Your\Files"

REM 安装 CAB 文件
for %%F in ("%filesDirectory%\*.cab") do (
    echo Installing %%~nxF...
    Expand-WindowsPackage -PackagePath "%%~fF" -Path %SystemDrive%
)

REM 安装 MSU 文件
for %%F in ("%filesDirectory%\*.msu") do (
    echo Installing %%~nxF...
    start /wait wusa.exe "%%~fF" /quiet /norestart
)

echo All installations completed.
pause

您需要将 %filesDirectory% 变量的值替换为存放 CAB 或 MSU 文件的目录路径。脚本首先在指定目录中查找所有的 CAB 和 MSU 文件,然后依次安装它们。

  • 对于 CAB 文件,使用 Expand-WindowsPackage 命令进行安装。
  • 对于 MSU 文件,使用 wusa.exe (Windows Update Standalone Installer) 进行安装,并通过参数 /quiet 和 /norestart 指定安装过程静默且不重新启动计算机。

请注意,在批处理脚本中,%%~nxF 是用于获取文件名和扩展名的特殊语法。

确保以管理员权限运行批处理脚本,以便顺利完成安装过程。完成后,脚本会显示 "All installations completed." 并暂停以便您查看输出信息。

 
posted @ 2024-02-10 19:43  suv789  阅读(1842)  评论(0)    收藏  举报