无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 2279|回复: 14
打印 上一主题 下一主题

[求助] 请教关于路径带变量的运行注册表该如何编写

  [复制链接]
跳转到指定楼层
1#
发表于 2022-1-5 21:51:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
想在系统里集成2345看图王,使用setupcomplete已经静默安装成功,但是文件没有关联
于是在setupcomplete.cmd里面写了这样的语句
"%ProgramFiles%\2345pic\2345PicLoader.exe" -install 79 -invoke-platform-x64
还是没成功,
当然这个命令已经测试是在桌面下可以成功的,
于是考虑到桌面运行
又想在注册表[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce]里添加
想请教下 这种路径带变量的注册表该如何填写?

2#
 楼主| 发表于 2022-1-5 21:54:21 | 只看该作者
同时还有个疑问在setupcomplete里面使用
reg add "HKEY_CURRENT_USER\SOFTWARE\HashTab\Algorithms\CRC32" /v "Enabled" /d 0x00000001 /t REG_DWORD /f >NUL
这样的语句为啥也没执行?
回复

使用道具 举报

3#
发表于 2022-1-6 07:34:26 来自手机 | 只看该作者
setupcomplete里面是所有的都没执行还是执行了一部分?在远景里面看过一帖子里也提到类似问题,好像是在某些条件下setupcomplete不会执行

点评

部分未执行  详情 回复 发表于 2022-1-6 08:02
回复

使用道具 举报

4#
 楼主| 发表于 2022-1-6 08:02:47 来自手机 | 只看该作者
阿非 发表于 2022-1-6 07:34
setupcomplete里面是所有的都没执行还是执行了一部分?在远景里面看过一帖子里也提到类似问题,好像是在某 ...

部分未执行

点评

你看看这个帖子 https://bbs.pcbeta.com/viewthread-1917149-1-5.html  详情 回复 发表于 2022-1-6 09:32
回复

使用道具 举报

5#
发表于 2022-1-6 09:32:26 | 只看该作者

点评

远景打不开了 你哪边正常么  详情 回复 发表于 2022-1-6 14:24
回复

使用道具 举报

6#
发表于 2022-1-6 09:34:33 | 只看该作者
将相关键值类型设为REG_EXPAND_SZ试试?
回复

使用道具 举报

7#
发表于 2022-1-6 11:01:01 | 只看该作者
REG_EXPAND_SZ
类型可以写入环境变量
但是,好像,不执行啊
回复

使用道具 举报

8#
发表于 2022-1-6 11:14:25 | 只看该作者
本帖最后由 2010techon 于 2022-1-6 12:03 编辑

setupcomplete.cmd 最新的官方说明:
https://docs.microsoft.com/zh-cn/windows-hardware/manufacture/desktop/add-a-custom-script-to-windows-setup?view=windows-11
Windows 安装脚本

setupcomplete.cmd和ErrorHandler是 Windows 安装程序过程中或之后运行的自定义脚本。 它们可用于通过使用 cscript/wscript.echo 脚本来安装应用程序或运行其他任务。
%WINDIR%\Setup\Scripts\SetupComplete.cmd:此脚本以本地系统权限运行,并在用户看到桌面后立即启动。 使用 OEM 产品密钥时,此设置会被禁用,Enterprise 版本和 Windows 服务器操作系统除外。
%WINDIR%\Setup\Scripts\ErrorHandler.cmd:当安装程序遇到错误时,将自动运行此脚本。 它以本地系统权限运行。

Win7中关于SetupComplete.cmd的解释:
Windows 安装程序完成后运行自定义脚本

可以在 Windows 安装程序完成之后进行进一步自定义,方法是将命令添加到 %WINDIR%\Setup\Scripts\SetupComplete.cmd 文件。此文件使您能够在用户登录之前安装其他应用程序、运行自定义 Windows 脚本 (cscript/wscript) 或对系统进行其他修改。

因为在用户登录之前,该阶段用户配置HKCU(HKEY_CURRENT_USER)并未加载,所以在这里不能操作(或者说操作无效),需要通过其它方式实现。添加到HKLM注册表项下,或者修改默认用户的hive注册表配置文件,还可以在用户首次登陆后进行修改

在Win7中,执行sysprep封装后导入注册表:
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce]
"a"="reg add \"HKLM\\SOFTWARE\\Microsoft\\Microsoft Security Client\" /v OOBE /t REG_DWORD /d 0 /f"
"b"="regedit /s C:\\Windows\\UI+.reg"
"c"="cmd /c \"del /f /q C:\\Windows\\Panther\\unattend.xml\""
"d"="cmd /c \"del /f /q C:\\Windows\\System32\\sysprep\\unattend.xml\""
"e"="cmd /c \"del /f /q /s C:\\Windows\\Panther\\*.log\""

; 注意斜杠转义的用法\一次转义用\\ 二次转义用\\\
;"a"="reg add HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\RunOnce /v a /d \"reg add \\\"HKLM\\SOFTWARE\\Microsoft\\Microsoft Security Client\\\" /v OOBE /t REG_DWORD /d 0 /f\" /f"

记得以前在XP的 cmdlines.txt 里可以这么用:
[Commands]
"GUISetup.bat"
GUISetup.bat:
reg add HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce /v Ones /d %SystemDrive%\Drivers\Ones.bat /F>nul
reg import %SystemDrive%\Drivers\CFGSetup.reg>nul
Ones.bat:
@echo off&title 安装配置
if exist %SystemRoot%\GUISetup.bat (
rem 执行第一次修改操作
        reg import %SystemDrive%\Drivers\CFGSetup.reg
        rem 清理文件
        del /f /q %SystemRoot%\GUISetup.bat
        rem 添加注册表 登录后执行一次Ones.bat
        reg add HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce /v Ones /d %SystemDrive%\Drivers\Ones.bat /F>nul
) else (
        rem 登录后执行一次 最后清理文件
        regedit /s %SystemDrive%\Drivers\CFGSetup.reg
        del /f /q "%SystemDrive%\Drivers\CFGSetup.reg"
        del /f /q "%~f0"2>nul 3>nul
)
goto :EOF
------------------------------------------------------------------------------- 以上内容基于XP自动安装应答

点评

十分感谢 明白HKCU为啥不能导入了 我再试下HKLM once  详情 回复 发表于 2022-1-6 14:23
回复

使用道具 举报

9#
 楼主| 发表于 2022-1-6 14:23:43 | 只看该作者
2010techon 发表于 2022-1-6 11:14
setupcomplete.cmd 最新的官方说明:
https://docs.microsoft.com/zh-cn/windows-hardware/ma ...

十分感谢
明白HKCU为啥不能导入了
我再试下HKLM once
回复

使用道具 举报

10#
 楼主| 发表于 2022-1-6 14:24:16 | 只看该作者
阿非 发表于 2022-1-6 09:32
你看看这个帖子
https://bbs.pcbeta.com/viewthread-1917149-1-5.html

远景打不开了 你哪边正常么

点评

远景那个帖子参考官方说明: https://docs.microsoft.com/zh-cn/troubleshoot/mem/configmgr/os-deployment-task-sequence-not-continue 和我发的第一个链接是同一问题。 8.1以上系统会有这个问题,使用 OEM 产品  详情 回复 发表于 2022-1-6 17:44
看这里:http://bbs.wuyou.net/forum.php?mod=redirect&goto=findpost&ptid=428384&pid=4459610&fromuid=374817  详情 回复 发表于 2022-1-6 17:35
回复

使用道具 举报

11#
发表于 2022-1-6 17:35:08 | 只看该作者
回复

使用道具 举报

12#
发表于 2022-1-6 17:43:42 | 只看该作者
变量换成%ProgramFiles(x86)%试试
回复

使用道具 举报

13#
发表于 2022-1-6 17:44:37 | 只看该作者
2012ccxbox 发表于 2022-1-6 14:24
远景打不开了 你哪边正常么

远景那个帖子参考官方说明:
https://docs.microsoft.com/zh-cn ... quence-not-continue
和我发的第一个链接是同一问题。
8.1以上系统会有这个问题,使用 OEM 产品密钥时,setupcomplete.cmd会被禁用,Enterprise 版本和 Windows 服务器操作系统除外。
回复

使用道具 举报

14#
发表于 2022-1-6 18:56:09 | 只看该作者
本帖最后由 2010techon 于 2022-1-6 19:14 编辑

注册表RunOnce路径里不支持环境变量,需使用绝对路径: "C:\Program Files\2345pic\2345PicLoader.exe"

或者使用命令添加: 添加到键值中的引号需要反斜杠来转义
  1. reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce /v Ones /d "\"%ProgramFiles%\2345pic\2345PicLoader.exe\" -install 79 -invoke-platform-x64" /f
复制代码
此命令会将环境变量转换为实际值,添加到注册表里的还是绝对路径



点评

非常感谢 已经正确注册 再次请教一个别的问题 使用下面的代码更改机器名可以成功 set pcname=c-20%date:~2,2%%date:~5,2%%date:~8,2%-%time:~0,2%%time:~3,2% reg add "HKEY_LOCAL_MACHINE\System\CurrentContro  详情 回复 发表于 2022-1-7 21:25

评分

参与人数 1无忧币 +5 收起 理由
2012ccxbox + 5 非常感谢

查看全部评分

回复

使用道具 举报

15#
发表于 2022-1-6 18:56:47 | 只看该作者
本帖最后由 2010techon 于 2022-1-6 18:59 编辑

发重复。删
回复

使用道具 举报

16#
 楼主| 发表于 2022-1-7 21:25:52 | 只看该作者
2010techon 发表于 2022-1-6 18:56
注册表RunOnce路径里不支持环境变量,需使用绝对路径: "C:\Program Files\2345pic\2345PicLoader.exe"

...

非常感谢 已经正确注册
再次请教一个别的问题
使用下面的代码更改机器名可以成功
set pcname=c-20%date:~2,2%%date:~5,2%%date:~8,2%-%time:~0,2%%time:~3,2%
reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ComputerName\ActiveComputerName" /v ComputerName /t reg_sz /d %pcname% /f >nul 2>nul
reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters" /v "NV Hostname" /t reg_sz /d %pcname% /f >nul 2>nul
reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters" /v Hostname /t reg_sz /d %pcname% /f >nul 2>nul
但是如果将set pcname=c-更改为set pcname=tcx-就不能正确进入桌面,只能重启是何原因呢?

点评

注意计算机名长度限制,不能超过15个字符 所以你如果要前面加内容就把后面的时间去掉  详情 回复 发表于 2022-1-10 14:22
回复

使用道具 举报

17#
发表于 2022-1-10 14:22:38 | 只看该作者
2012ccxbox 发表于 2022-1-7 21:25
非常感谢 已经正确注册
再次请教一个别的问题
使用下面的代码更改机器名可以成功
  1. C:\>echo,c-20%date:~2,2%%date:~5,2%%date:~8,2%-%time:~0,2%%time:~3,2%
  2. c-20220110-1419
复制代码

注意计算机名长度限制,不能超过15个字符
所以你如果要前面加内容就把后面的时间去掉

评分

参与人数 1无忧币 +5 收起 理由
2012ccxbox + 5 感谢解惑

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-4-25 22:41

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表