无忧启动论坛

标题: 求助大佬们,Win11PE怎么添加msi安装包支持啊,不想用wimbuilder2制作 [打印本页]

作者: lh955    时间: 2023-8-3 08:05
标题: 求助大佬们,Win11PE怎么添加msi安装包支持啊,不想用wimbuilder2制作
如题,我用wimbuilder制作win11pe不太好用,就自己做了一个,想知道怎么让pe支持安装.msi格式的文件,要不然有的程序不能运行,我是要做全能版pe,需要这个,求大佬教教我,谢谢
作者: Bluebells    时间: 2023-8-3 10:03
所需的文件列表:
\Windows\Installer    ;这是一个目录,内容可以为空,但必须存在,不然在安装时会报错
\Windows\System32\coml2.dll
\Windows\System32\msi.dll
\Windows\System32\msiexec.exe
\Windows\System32\msihnd.dll
\Windows\System32\msimsg.dll
\Windows\System32\msisip.dll
\Windows\System32\en-US\msimsg.dll.mui
\Windows\System32\zh-CN\msiexec.exe.mui
\Windows\System32\zh-CN\msimsg.dll.mui
所需的服务项:msiserver
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\msiserver]
作者: smile_eer    时间: 2023-8-3 15:52
Bluebells 发表于 2023-8-3 10:03
所需的文件列表:
\Windows\Installer    ;这是一个目录,内容可以为空,但必须存在,不然在安装时会报错 ...

给力!!!
作者: ningzhonghui    时间: 2023-8-3 16:59
smile_eer 发表于 2023-8-3 15:52
给力!!!

确实给力,同求,怎么加  VBS 和 HTA组件,关键是注册表不知怎么提取
作者: li就是    时间: 2023-8-9 18:21
Bluebells 发表于 2023-8-3 10:03
所需的文件列表:
\Windows\Installer    ;这是一个目录,内容可以为空,但必须存在,不然在安装时会报错 ...

酷啊
作者: 忧心的启    时间: 2025-1-4 23:03
学习学习,感谢分享。
作者: 蒲公英    时间: 2025-1-4 23:20
点赞
作者: brant8    时间: 2025-1-20 22:30

谢谢分享
作者: kcyou    时间: 2025-2-19 13:42
还是不行,提示没有启用installer服务
作者: 我来了丷    时间: 2025-2-20 16:12
学习一下,看有没有大佬给我点积分!!好人一生平安!谢谢大佬!
作者: idboygirl    时间: 2025-3-8 08:14
Bluebells 发表于 2023-8-3 10:03
所需的文件列表:
\Windows\Installer    ;这是一个目录,内容可以为空,但必须存在,不然在安装时会报错 ...

谢谢分享
作者: martin313    时间: 2025-3-8 08:45
本帖最后由 martin313 于 2025-3-8 09:03 编辑
kcyou 发表于 2025-2-19 13:42
还是不行,提示没有启用installer服务

文件列表清单:--------------------------------------------------------
Windows\Installer
Windows\System32\msiexec.exe
Windows\System32\msi.dll
Windows\System32\msihnd.dll
Windows\System32\msiltcfg.dll
Windows\System32\msimsg.dll
Windows\System32\msisip.dll
Windows\System32\zh-CN\msiexec.exe.mui
Windows\System32\zh-CN\msimsg.dll.mui
Windows\SysWOW64\msiexec.exe
Windows\SysWOW64\msi.dll
Windows\SysWOW64\msihnd.dll
Windows\SysWOW64\msiltcfg.dll
Windows\SysWOW64\msimsg.dll
Windows\SysWOW64\msisip.dll

注册表如下:----------------------------------------------------------------------------------------------------------
call RegCopyEx Services "msiserver"
call RegCopy "HKLM\software\Classes\.msi"
call RegCopy "HKLM\software\Classes\.msp"
call RegCopy "HKLM\software\Classes\IMsiServer"
call RegCopy "HKLM\software\Classes\AppID\{000C101C-0000-0000-C000-000000000046}"
call RegCopy "HKLM\software\Classes\{000C101C-0000-0000-C000-000000000046}"
call RegCopy "HKLM\software\Classes\{000C101D-0000-0000-C000-000000000046}"
call RegCopy "HKLM\software\Classes\{000C103E-0000-0000-C000-000000000046}"
call RegCopy "HKLM\software\Classes\{000C1090-0000-0000-C000-000000000046}"
call RegCopy "HKLM\software\Classes\{000C1094-0000-0000-C000-000000000046}"
call RegCopy "HKLM\software\Classes\{BE0A9830-2B8B-11D1-A949-0060181EBBAD}"
call RegCopy "HKLM\software\Classes\{000C1092-0000-0000-C000-000000000046}"
call RegCopy "HKLM\software\Classes\Interface\{000C101C-0000-0000-C000-000000000046}"
call RegCopy "HKLM\software\Classes\Interface\{000C101D-0000-0000-C000-000000000046}"
call RegCopy "HKLM\software\Classes\Interface\{000C1025-0000-0000-C000-000000000046}"
call RegCopy "HKLM\software\Classes\Interface\{000C1033-0000-0000-C000-000000000046}"
call RegCopy "HKLM\software\Classes\Interface\{000C1090-0000-0000-C000-000000000046}"
call RegCopy "HKLM\software\Classes\Interface\{000C1093-0000-0000-C000-000000000046}"
call RegCopy "HKLM\software\Classes\Interface\{000C1095-0000-0000-C000-000000000046}"
call RegCopy "HKLM\software\Classes\Interface\{000C1096-0000-0000-C000-000000000046}"
call RegCopy "HKLM\software\Classes\Interface\{000C1097-0000-0000-C000-000000000046}"
call RegCopy "HKLM\software\Classes\Interface\{000C1098-0000-0000-C000-000000000046}"
call RegCopy "HKLM\software\Classes\Interface\{000C1099-0000-0000-C000-000000000046}"
call RegCopy "HKLM\software\Classes\Interface\{000C109A-0000-0000-C000-000000000046}"
call RegCopy "HKLM\software\Classes\Interface\{000C109B-0000-0000-C000-000000000046}"
call RegCopy "HKLM\software\Classes\Interface\{000C109C-0000-0000-C000-000000000046}"
call RegCopy "HKLM\software\Classes\Interface\{000C109D-0000-0000-C000-000000000046}"
call RegCopy "HKLM\software\Classes\Interface\{000C109E-0000-0000-C000-000000000046}"
call RegCopy "HKLM\software\Classes\Interface\{000C109F-0000-0000-C000-000000000046}"
call RegCopy "HKLM\software\Classes\Interface\{000C10A0-0000-0000-C000-000000000046}"
call RegCopy "HKLM\software\Classes\Interface\{000C10A1-0000-0000-C000-000000000046}"
call RegCopy "HKLM\software\Classes\Msi.Package"
call RegCopy "HKLM\software\Classes\Msi.Patch"
call RegCopy "HKLM\software\Classes\WindowsInstaller.Installer"
call RegCopy "HKLM\software\Classes\WindowsInstaller.Message"
call RegCopy "HKLM\software\Microsoft\Cryptography\OID"
call RegCopy "HKLM\software\WOW6432Node\Microsoft\Cryptography\OID"
call RegCopy "HKLM\software\Microsoft\Windows\CurrentVersion\Installer"
call RegCopy "HKLM\software\Classes\TypeLib\{000C1092-0000-0000-C000-000000000046}"
call RegCopy "HKLM\software\Classes\WOW6432Node\CLSID\{000C103E-0000-0000-C000-000000000046}"
call RegCopy "HKLM\software\Classes\WOW6432Node\CLSID\{000C1090-0000-0000-C000-000000000046}"
call RegCopy "HKLM\software\Classes\WOW6432Node\CLSID\{000C1094-0000-0000-C000-000000000046}"
call RegCopy "HKLM\software\Classes\WOW6432Node\CLSID\{fdb00e52-a214-4aa1-8fba-4357bb0072ec}"





作者: kcyou    时间: 2025-3-10 12:44
martin313 发表于 2025-3-8 08:45
文件列表清单:--------------------------------------------------------
Windows\Installer
Windows ...

谢谢
作者: kcyou    时间: 2025-3-28 21:09
请教call RegCopy命令怎么用,是在批处理中用吗
作者: winpefk    时间: 2025-3-29 20:30
kcyou 发表于 2025-3-28 21:09
请教call RegCopy命令怎么用,是在批处理中用吗

这个应该是你要的,因为 call RegCopy明显是外部脚本,我问AI给你生成了一个.

# 批处理脚本:复制注册表项从 HKU/SOFTWARE/ 到 HKU/PE/

以下是一个批处理脚本,用于将指定的注册表项从 HKU/SOFTWARE/ 复制到 HKU/PE/ 对应位置,并处理权限问题:

```batch
@echo off
setlocal enabledelayedexpansion

:: 检查是否以管理员身份运行
net session >nul 2>&1
if %errorLevel% neq 0 (
    echo 此脚本需要以管理员权限运行。
    echo 请右键点击脚本并选择"以管理员身份运行"。
    pause
    exit /b
)

:: 检查参数是否正确
if "%~1"=="" (
    echo 用法: call CopyReg HKU/Software/Classes/.msi
    exit /b
)

:: 获取参数并处理路径
set "source_path=%~1"
set "target_path=!source_path:HKU/SOFTWARE/=HKU/PE/SOFTWARE/!"

:: 显示操作信息
echo 正在将注册表项从 [!source_path!] 复制到 [!target_path!]

:: 获取当前用户的SID
for /f "tokens=2 delims=}" %%a in ('whoami /user /fo list ^| findstr SID') do (
    set "user_sid=%%a"
    set "user_sid=!user_sid:~1!"
)

:: 检查源路径是否存在
reg query "!source_path!" >nul 2>&1
if %errorLevel% neq 0 (
    echo 错误: 源注册表路径 [!source_path!] 不存在
    exit /b
)

:: 导出源注册表项到临时文件
set "temp_file=%temp%\reg_temp.reg"
reg export "!source_path!" "!temp_file!" /y >nul 2>&1
if %errorLevel% neq 0 (
    echo 错误: 无法导出注册表项 [!source_path!]
    exit /b
)

:: 修改临时文件中的路径
powershell -Command "(gc '!temp_file!') -replace 'HKEY_USERS\\SOFTWARE', 'HKEY_USERS\\PE\\SOFTWARE' | Out-File '!temp_file!' -Encoding ascii"

:: 导入到目标路径
reg import "!temp_file!" >nul 2>&1
if %errorLevel% neq 0 (
    echo 错误: 无法导入注册表项到 [!target_path!]
    echo 可能是权限不足,尝试修改目标项权限...
   
    :: 尝试获取目标项的所有权
    set "target_key=!target_path:HKEY_USERS\=!"
    set "target_key=!target_key:\= !"
   
    :: 使用regini修改权限
    set "perm_file=%temp%\reg_perm.txt"
    echo HKEY_USERS\PE [!target_key!]> "!perm_file!"
    echo [!user_sid!]:F >> "!perm_file!"
   
    regini "!perm_file!" >nul 2>&1
   
    :: 再次尝试导入
    reg import "!temp_file!" >nul 2>&1
    if %errorLevel% neq 0 (
        echo 错误: 仍然无法导入注册表项到 [!target_path!]
        del "!temp_file!" >nul 2>&1
        del "!perm_file!" >nul 2>&1
        exit /b
    )
   
    del "!perm_file!" >nul 2>&1
)

:: 清理临时文件
del "!temp_file!" >nul 2>&1

echo 注册表项复制成功: [!source_path!] -> [!target_path!]
endlocal
```

## 使用说明

1. 将此脚本保存为 `CopyReg.bat`
2. 按指定方式调用:`call CopyReg HKU/Software/Classes/.msi`
3. 脚本会自动处理路径转换和权限问题

## 功能说明

1. **权限检查**:确保脚本以管理员权限运行
2. **路径转换**:自动将 `HKU/SOFTWARE/` 转换为 `HKU/PE/SOFTWARE/`
3. **注册表操作**:
   - 检查源路径是否存在
   - 导出源注册表项
   - 修改路径后导入到目标位置
4. **权限处理**:
   - 如果第一次导入失败,会尝试获取目标项的所有权
   - 使用当前用户的SID设置完全控制权限
   - 再次尝试导入

## 注意事项

1. 此脚本需要管理员权限运行
2. 对于某些受保护的注册表项,即使有管理员权限也可能无法修改
3. 脚本会创建临时文件并在完成后自动删除

如果遇到特别受保护的注册表项,可能需要使用更高级的工具如 `psexec` 以 `TrustedInstaller` 身份运行。
作者: youxia1220    时间: 2025-4-19 23:36
谢谢分享




欢迎光临 无忧启动论坛 (http://bbs.c3.wuyou.net/) Powered by Discuz! X3.3