将软件集成到 Windows 映像中并进行静默安装,可以使用 DISM 和适当的安装程序命令。下面是具体的步骤和示例命令。

PS C:\Users\Administrator> Dism /Mount-Wim /?

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


 Dism /Mount-Wim /Mount-Wim /WimFile:<path_to_WIM_file>  [/Index:<image_index> | /Name:<image_name>]
 Dism /Mount-Wim   /MountDir:<target_mount_directory> [/ReadOnly] [/EA]

  将 WIM 文件安装到指定的目录,以便该文件可用于提供服务。
  使用 /ReadOnly 将装载的映像设置为具有只读权限。
  使用 /EA 借助扩展属性进行装载。
  具有多个映像的文件需要指定 /Index 或 /Name。

    示例:
      DISM.exe /Mount-Wim /WimFile:C:\test\images\myimage.wim /index:1   /MountDir:C:\test\offline

      DISM.exe /Mount-Wim /WimFile:C:\test\images\myimage.wim /index:1   /MountDir:C:\test\offline /ReadOnly


PS C:\Users\Administrator> dism /image /?

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


 dism /Image:<path_to_offline_image>

  这是脱机 Windows 映像的根目录的路径。此选项必须与服务命令一起使用。

    示例:
      DISM.exe /Image:C:\test\offline /Get-Packages


PS C:\Users\Administrator> dism /unmount-wim /?

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


 dism /Unmount-Wim /MountDir:<target_mount_directory> {/Commit | /Discard}
  [/EA]

  卸载 WIM 文件。使用 /Commit 保存更改或使用 /Discard
  放弃更改。
  使用 /EA 保存扩展属性。

    示例:
      DISM.exe /Unmount-Wim /MountDir:C:\test\offline /commit

      DISM.exe /Unmount-Wim /MountDir:C:\test\offline /discard


  C:\Users\Administrator> expand /?
Microsoft (R) 文件扩展实用程序   版权所有 (c) Microsoft Corporation。保留所有权利。

展开一个或多个压缩文件。

EXPAND [-R] Source Destination
EXPAND -R Source [Destination]
EXPAND -I Source [Destination]
EXPAND -D Source.cab [-F:Files]
EXPAND Source.cab -F:Files Destination

 EXPAND  -R            重命名展开的文件。
 EXPAND  -I            重命名展开的文件但忽略目录结构。
EXPAND   -D            显示来源中的文件列表。
EXPAND   Source        源文件规格。可使用通配字符。
 EXPAND  -F:Files      从 .CAB 文件展开的文件的名称。
 EXPAND  Destination   目标文件 | 路径规格。目标可以是目录。如果来源是多个文件且没有指定 -r,目标则必须是目录。


Windows ® Installer. V 5.0.26100.1150
 
msiexec /Option <Required Parameter> [Optional Parameter]
 
安装选项
</package | /i> <Product.msi>
安装或配置产品
/a <Product.msi>
管理安装 - 在网络上安装产品
/j<u|m> <Product.msi> [/t <Transform List>] [/g <Language ID>]
公布产品 - m 公布到所有用户,u 公布到当前用户
</uninstall | /x> <Product.msi | ProductCode>   卸载产品
显示选项
/quiet
安静模式,无用户交互
/passive
无人参与模式 - 只显示进度栏
/q[n|b|r|f]
设置用户界面级别
n - 无用户界面
b - 基本界面
r - 精简界面
f - 完整界面(默认值)
/help  帮助信息
重新启动选项
/norestart  安装完成后不重新启动
/promptrestart  必要时提示用户重新启动
/forcerestart  安装后始终重新启动计算机
日志选项
/l[i|w|e|a|r|u|c|m|o|p|v|x|+|!|*] <LogFile>
i - 状态消息
w - 非致命警告
e - 所有错误消息
a - 操作的启动
r - 操作特定记录
u - 用户请求
c - 初始用户界面参数
m - 内存不足或致命退出信息
o - 磁盘空间不足消息
p - 终端属性
v - 详细输出
x - 额外调试信息
+ - 扩展到现有日志文件
! - 每一行刷新到日志
* - 记录所有信息,除了 v 和 x 选项
/log <LogFile>
与 /l* <LogFile> 相同
更新选项
/update <Update1.msp>[;Update2.msp]  应用更新
/uninstall <PatchCodeGuid>[;Update2.msp] /package <Product.msi | ProductCode>  删除产品的更新
修复选项
/f[p|e|c|m|s|o|d|a|u|v] <Product.msi | ProductCode> 修复产品
p - 仅当文件丢失时
o - 如果文件丢失或安装了更旧的版本(默认值)
e - 如果文件丢失或安装了相同或更旧的版本
d - 如果文件丢失或安装了不同版本
c - 如果文件丢失或较验和与计算的值不匹配
a - 强制重新安装所有文件
u - 所有必要的用户特定注册表项(默认值)
m - 所有必要的计算机特定注册表项(默认值)
s - 所有现有的快捷键方式(默认值)
v - 从源运行并重新缓存本地安装包
设置公共属性
[PROPERTY=PropertyValue]
 
请查阅 Windows (R) Installer SDK 获得有关命令行语法的其他文档。
 
版权所有 (C) Microsoft Corporation. 保留所有权利。此软件的部分内容系基于 Independent JPEG Group 的工作。

C:\Users\Administrator>start /?
启动一个单独的窗口以运行指定的程序或命令。

START ["title"] [/D path] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED]
      [/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL]
      [/NODE <NUMA node>] [/AFFINITY <hex affinity mask>] [/WAIT] [/B]
      [/MACHINE <x86|amd64|arm|arm64>][command/program] [parameters]

    "title"     在窗口标题栏中显示的标题。
    path        启动目录。
    B           启动应用程序,但不创建新窗口。应用程序已忽略 ^C 处理。除非应用程序启用 ^C 处理,否则 ^Break 是唯一可以中断该应用程序的方式。
    I           新的环境将是传递给 cmd.exe 的原始环境,而不是当前环境。
    MIN         以最小化方式启动窗口。
    MAX         以最大化方式启动窗口。
    SEPARATE    在单独的内存空间中启动 16 位 Windows 程序。
    SHARED      在共享内存空间中启动 16 位 Windows 程序。
    LOW         在 IDLE 优先级类中启动应用程序。
    NORMAL      在 NORMAL 优先级类中启动应用程序。
    HIGH        在 HIGH 优先级类中启动应用程序。
    REALTIME    在 REALTIME 优先级类中启动应用程序。
    ABOVENORMAL 在 ABOVENORMAL 优先级类中启动应用程序。
    BELOWNORMAL 在 BELOWNORMAL 优先级类中启动应用程序。
    NODE        将首选非一致性内存结构(NUMA)节点指定为十进制整数。
    AFFINITY    将处理器关联掩码指定为十六进制数字。进程被限制在这些处理器上运行。将 /AFFINITY 和  /NODE 结合使用时,会对关联掩码进行不同的解释。指定关联掩码,就将 NUMA节点的处理器掩码向右移位以从零位开始一样。进程被限制在指定关联掩码和 NUMA 节点之间的那些通用处理器上运行。如果没有通用处理器,则进程被限制在指定的 NUMA 节点上运行。
    WAIT        启动应用程序并等待它终止。
    MACHINE     指定应用程序进程的系统架构。

    command/program
                如果它是内部 cmd 命令或批文件,则该命令处理器是使用 cmd.exe 的 /K 开关运行的。这表示运行命令之后,该窗口将仍然存在。

                如果它不是内部 cmd 命令或批处理文件,则它就是一个程序,并将作为一个窗口化应用程序或 控制台应用程序运行。

    parameters  这些是传递给 command/program 的参数。

注意: 在 64 位平台上不支持 SEPARATE 和 SHARED 选项。

通过指定 /NODE,可按照利用 NUMA 系统中的内存区域的方式创建进程。例如,可以创建两个完全通过共享内存互相通信的进程以共享相同的首选 NUMA 节点,从而最大限度地减少内存延迟。只要有可能,它们就会分配来自相同 NUMA 节点的内存,并且会在指定节点之外的处理器上自由运行。

    start /NODE 1 application1.exe
    start /NODE 1 application2.exe

这两个进程可被进一步限制在相同 NUMA 节点内的指定处理器上运行。在以下示例中,application1 在节点的两个低位处理器上运行,而 application2在该节点的其后两个处理器上运行。该示例假定指定节点至少具有四个逻辑处理器。请注意,节点号可更改为该计算机的任何有效节点号,而无需更改关联掩码。

    start /NODE 1 /AFFINITY 0x3 application1.exe
    start /NODE 1 /AFFINITY 0xc application2.exe

如果命令扩展被启用,通过命令行或 START 命令的外部命令调用会如下改变:

将文件名作为命令键入,非可执行文件可以通过文件关联调用。
    (例如,WORD.DOC 会调用跟 .DOC 文件扩展名关联的应用程序)。
    关于如何从命令脚本内部创建这些关联,请参阅 ASSOC 和FTYPE 命令。

执行的应用程序是 32 位 GUI 应用程序时,CMD.EXE 不等应用程序终止就返回命令提示符。如果在命令脚本内执行,该新行为则不会发生。

如果执行的命令行的第一个符号是不带扩展名或路径修饰符的字符串 "CMD","CMD" 会被 COMSPEC 变量的数值所替换。这防止从当前目录提取 CMD.EXE。

如果执行的命令行的第一个符号没有扩展名,CMD.EXE 会使用PATHEXT 环境变量的数值来决定要以什么顺序寻找哪些扩展名。PATHEXT 变量的默认值是:

        .COM;.EXE;.BAT;.CMD

    请注意,该语法跟 PATH 变量的一样,分号隔开不同的元素。

查找可执行文件时,如果没有相配的扩展名,看一看该名称是否与目录名相配。如果确实如此,START 会在那个路径上调用Explorer。如果从命令行执行,则等同于对那个路径作 CD /D。


将软件集成到 Windows 映像中并进行静默安装,可以使用 DISM 和适当的安装程序命令。下面是具体的步骤和示例命令。

1. 准备工作

  • 确保你有一个已挂载的 Windows 映像。
  • 确保你有软件的安装程序,并且支持静默安装。

2. 挂载映像

首先,挂载你的 WIM 文件(如果还没有挂载的话):

bashCopy Code
Dism /Mount-Wim /WimFile:"C:\Path\To\YourImage.wim" /index:1 /MountDir:"C:\Path\To\Mount"

3. 集成软件

假设你有一个可执行的安装程序,例如 setup.exe,并且它支持静默安装。可以使用 Dism 命令的 Add-Package 选项集成软件包(如 .msu.cab 文件)。如果是 .exe 文件,通常需要使用 cmd 进行静默安装。

示例命令:

bashCopy Code
Dism /Image:"C:\Path\To\Mount" /Add-Package /PackagePath:"C:\Path\To\YourSoftware.cab"

4. 静默安装软件

如果你的软件是一个可执行文件,并且支持静默安装,可以在映像中创建一个脚本以在第一次登录时安装。通常会将安装命令添加到 FirstLogonCommands 中。

示例 Unattend.xml 中的静默安装命令:

xmlCopy Code
<FirstLogonCommands>
    <SynchronousCommand wcm:action="add">
        <Order>1</Order>
        <CommandLine>"C:\Path\To\YourSoftware\setup.exe" /silent</CommandLine>
        <Description>Install YourSoftware silently</Description>
    </SynchronousCommand>
</FirstLogonCommands>

5. 卸载映像

完成所有操作后,记得卸载映像并提交更改:

bashCopy Code
Dism /Unmount-Wim /MountDir:"C:\Path\To\Mount" /Commit

注意事项

  • 静默安装参数:每个安装程序的静默安装参数可能不同,具体请参考该软件的文档。
  • 测试:建议在虚拟机上测试集成和安装过程,以确保没有问题。
  • 权限:确保在以管理员身份运行命令提示符时执行这些命令。

使用 DISM 命令的 Add-Package 选项来集成软件包(如 .msu.cab 文件)非常简单。以下是具体的示例和步骤。

1. 准备工作

确保你有一个已挂载的 Windows 映像,并且你要集成的包(如 .msu.cab 文件)已准备好。

2. 挂载映像

如果还没有挂载映像,请先挂载它:

bashCopy Code
Dism /Mount-Wim /WimFile:"C:\Path\To\YourImage.wim" /index:1 /MountDir:"C:\Path\To\Mount"

3. 集成软件包

假设你有一个 .cab 文件,例如 example.cab,可以使用以下命令将其集成到映像中:

bashCopy Code
Dism /Image:"C:\Path\To\Mount" /Add-Package /PackagePath:"C:\Path\To\example.cab"

集成 .msu 文件

如果你有一个 .msu 文件,首先需要将其提取为 .cab 文件,因为 DISM 不支持直接集成 .msu 文件。可以使用以下命令进行提取:

bashCopy Code
Expand -F:* "C:\Path\To\example.msu" "C:\Path\To\Extracted"

然后使用提取出的 .cab 文件进行集成:

bashCopy Code
Dism /Image:"C:\Path\To\Mount" /Add-Package /PackagePath:"C:\Path\To\Extracted\example.cab"

4. 卸载映像并提交更改

完成后,记得卸载映像并提交更改:

bashCopy Code
Dism /Unmount-Wim /MountDir:"C:\Path\To\Mount" /Commit

其他注意事项

  • 检查状态:在集成软件包后,可以使用以下命令检查映像的状态:

    bashCopy Code
    Dism /Image:"C:\Path\To\Mount" /Get-Packages
  • 多个包:可以一次性添加多个包,只需重复 Add-Package 命令或列出多个路径。

  • 错误处理:如果遇到错误,请检查日志文件,通常位于 C:\Windows\Logs\DISM\dism.log


在 Windows 映像中集成 .exe.msi 软件包并进行静默安装,可以使用 DISM 和适当的命令行参数。以下是步骤和示例。

1. 准备工作

确保你有以下内容:

  • 一个已挂载的 Windows 映像。
  • 软件的安装程序,例如 .exe 或 .msi 文件。

2. 挂载映像

如果尚未挂载映像,请使用以下命令挂载它:

bashCopy Code
Dism /Mount-Wim /WimFile:"C:\Path\To\YourImage.wim" /index:1 /MountDir:"C:\Path\To\Mount"

3. 集成 .msi 软件包

可以使用 DISM 直接集成 .msi 软件包。假设你有一个名为 example.msi 的文件:

bashCopy Code
Dism /Image:"C:\Path\To\Mount" /Add-Package /PackagePath:"C:\Path\To\example.msi"

4. 集成 .exe 软件包

对于 .exe 文件,通常需要使用静默安装参数。你不能直接用 DISM 集成 .exe 文件,因此建议使用批处理文件或脚本在首次登录时执行安装。

示例静默安装命令:

假设你的 .exe 文件支持 /silent/quiet 选项,你可以在 Unattend.xml 文件中添加该命令:

xmlCopy Code
<FirstLogonCommands>
    <SynchronousCommand wcm:action="add">
        <Order>1</Order>
        <CommandLine>"C:\Path\To\YourSoftware\setup.exe" /silent</CommandLine>
        <Description>Install YourSoftware silently</Description>
    </SynchronousCommand>
</FirstLogonCommands>

5. 卸载映像并提交更改

完成后,记得卸载映像并提交更改:

bashCopy Code
Dism /Unmount-Wim /MountDir:"C:\Path\To\Mount" /Commit

其他注意事项

  • 静默安装参数:不同的安装程序可能有不同的静默安装参数,请参考该程序的文档。
  • 测试:在虚拟机中测试映像和安装流程,以确保一切正常。

静默安装软件的命令通常取决于安装程序的类型和开发者。以下是一些常见的静默安装命令示例,适用于不同类型的安装程序:

1. MSI 安装包

对于使用 Windows Installer 的 MSI 包,可以使用 msiexec 命令:

cmdCopy Code
msiexec /i "C:\Path\To\YourSoftware.msi" /quiet /norestart

2. EXE 安装程序

许多 EXE 安装程序支持静默安装参数,常见的包括:

  • InstallShield 安装程序
cmdCopy Code
setup.exe /s /v"/qn"
  • NSIS 安装程序
cmdCopy Code
setup.exe /S
  • Inno Setup 安装程序
cmdCopy Code
setup.exe /VERYSILENT /NORESTART

3. Chocolatey 包管理器

如果你使用 Chocolatey 安装软件,可以使用以下命令:

cmdCopy Code
choco install packagename -y

4. Scoop 包管理器

使用 Scoop 安装软件时,可以使用:

cmdCopy Code
scoop install packagename

5. PowerShell 脚本

在 PowerShell 中,你也可以进行静默安装,例如:

powershellCopy Code
Start-Process "C:\Path\To\YourSoftware.exe" -ArgumentList "/silent" -NoNewWindow -Wait

6. 自定义安装程序

一些自定义的安装程序可能有自己的静默参数,通常可以在它们的文档中找到,例如:

cmdCopy Code
setup.exe --quiet

在使用静默安装命令时,请务必查阅特定软件的文档,以确定适用的参数。不同的安装程序有不同的静默选项,确保使用正确的参数可以避免安装失败。


一些常见安装程序和它们的静默安装命令的进一步说明:

7. MSI 安装选项

对于 MSI 文件,除了 /quiet 选项外,还可以使用以下选项:

  • /passive:提供用户界面,但不需要用户交互。
  • /l*v "C:\Path\To\logfile.txt":生成安装日志。

示例:

cmdCopy Code
msiexec /i "C:\Path\To\YourSoftware.msi" /passive /norestart /l*v "C:\Path\To\install.log"

8. 常见 EXE 安装参数

  • WiX Toolset
cmdCopy Code
setup.exe /quiet /norestart
  • Zipped 安装程序:有些程序会解压到临时目录,通常需要首先解压。

9. 利用 SCCM 或 MDT

如果在企业环境中使用 System Center Configuration Manager (SCCM) 或 Microsoft Deployment Toolkit (MDT),可以使用以下方式进行静默安装:

  • 在部署脚本中添加:
cmdCopy Code
start /wait setup.exe /silent

10. 特定应用的静默安装命令

  • Google Chrome
cmdCopy Code
ChromeSetup.exe --silent --install
  • Mozilla Firefox
cmdCopy Code
Firefox Setup.exe -silent -install
  • 7-Zip
cmdCopy Code
7z920-x64.exe /S

11. 查看所有支持的参数

很多安装程序可以通过 /help/? 来查看支持的命令行参数:

cmdCopy Code
setup.exe /help

cmdCopy Code
setup.exe /?

静默安装命令的关键是理解不同安装程序的参数。始终建议在尝试批量部署之前,先在测试环境中验证命令。


 

posted @ 2024-10-26 03:00  suv789  阅读(1020)  评论(0)    收藏  举报