3

操作系统:Windows 7 Embedded 64 位(使用的模板:应用程序兼容性)

在 SetupComplete.cmd 运行并且计算机重新启动后,我正在尝试运行另一个脚本 (SetupComplete2.cmd)。

我在 SetupComplete.cmd 中添加了这一行:

REG ADD "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce" /v Setup /t REG_SZ /d "cmd.exe /C C:\Windows\Setup\Scripts\SetupComplete2.cmd" /f

此命令在 Windows 上运行良好,我对其进行了多次测试,但由于某种原因从 SetupComplete.cmd 运行时它不起作用...

谁能告诉我我错过了什么?

或者,这里的任何人都可以建议在初始设置重新启动后只运行一次另一个脚本的方法吗?

我需要运行另一个脚本,因为我在 SetupComplete.cmd 脚本中重命名计算机,并且我在 SetupComplete2.cmd 中自动安装依赖于新计算机名称的应用程序,我无法重命名计算机并在之后立即安装应用程序,由于计算机重命名直到重新启动后才完全生效,我错了吗?

4

4 回答 4

2

几个链接似乎暗示它不仅仅是命令中的一个字符串。看看这个: http ://technet.microsoft.com/en-us/library/dd346765.aspx

还要考虑上下文。HKLM 条目将在 Local\System 帐户的上下文中运行。HKCU 条目将在用户的上下文中运行。你需要哪个?

于 2014-10-07T15:44:58.690 回答
0

根据 TechNet 文章“<a href="http://technet.microsoft.com/en-us/library/cc766314%28v=ws.10%29.aspx" rel="nofollow">添加自定义脚本到Windows Setup', “Setupcomplete.cmd 文件中的命令以本地系统权限执行。

肯特英格兰在他的回答中对如何解决这个问题提出了很好的建议。我要补充一点,您不需要创建本地管理员帐户,您只需激活内置管理员帐户并将其用于自动登录。

您还应该考虑使用Microsoft 部署工具包(MDT) 来部署 Windows。使用 MDT 的一些好处包括在使用“安装后”任务序列部署 Windows 之后安装软件,包括检查 WSUS 或 Windows 更新以获取最新更新。它还可以管理设备驱动程序和程序包,并且可以与 Windows 部署服务 (WDS) 一起使用,以允许 PXE 引导来交付您的映像。Windows Embedded PoSReady 7 是支持部署的操作系统之一。

希望这可以帮助,

编辑:我只是注意到 OP 很旧......我没有故意拖出旧帖子。

于 2013-06-17T19:49:39.250 回答
0

我正在尝试做同样的事情并遇到同样的问题。我已经在 HKLM 和 HKCU 上尝试过 RunOnce 和 RunOnce/Setup,但似乎没有任何效果。我不明白这个问题。

作为一种解决方法,我刚刚将我的第二个脚本添加到 Run 键

REG ADD HKLM\Software\Microsoft\Windows\CurrentVersion\Run /v Setup /t REG_SZ /d "cmd.exe /C C:\Windows\Setup\Scripts\SetupComplete2.cmd" /f

然后在第二个脚本中包含一个命令删除自身(必须是本地管理员,而不是具有管理员权限的另一个帐户,否则您会遇到 UAC 问题)

REG DELETE HKLM\Software\Microsoft\Windows\CurrentVersion\Run /v Setup /f
于 2013-04-11T14:38:35.403 回答
0

在通用化您的系统之前,创建一个本地管理员帐户(例如,sysadmin)并在其 HKCU 中放置一个 RunOnce 密钥以运行您想要的任何 .cmd 或 .bat 文件。然后在您的 unattend.xml 文件中,您在 OOBE 阶段包含“Microsoft-Windows-Shell-Setup”部分,并使用“AutoLogon”组件,您可以在其中指定系统管理员、密码和自动登录的次数(通常只有一次)。我假设您已经有一个 unattend.xml 并且知道如何修改它。

您还应该跳过机器和用户 OOBE 体验,以便初始化将在没有输入的情况下运行,直到它自动登录到系统管理员并向用户提供脚本。当然,您必须 sysprep /generalize 并捕获您的 .wim 文件等。这是我在 OOBE 期间找到的交互式输入的唯一方法。

您可能会发现您的脚本需要提升权限。我认为 RunOnce 在没有管理员权限的情况下运行命令,因此用户至少需要响应提升提示,并且您的脚本必须自动提升。提升批处理文件和命令脚本是另一个主题,您可能已经知道如何执行此操作。

于 2013-05-25T01:40:53.937 回答