我正在构建无人值守的 win7 安装,并遇到了最后一个问题:
我当前的进程将在安装后阶段安装一堆程序,然后运行一些批处理脚本和注册表项来清理开始菜单、桌面和上下文菜单。
一切似乎都正常,除了第一次登录和准备桌面等之后,一些图标和上下文菜单项在第一次登录时返回/生成。
我已经编写了一个批处理文件来纠正这些不必要的更改,但我无论如何也想不出如何让它自动运行后准备阶段已经完成。
我试过了:
- 让我的脚本将其复制到开始菜单的启动中 - 这不起作用,因为它没有管理员权限
- 让我的脚本将以管理员身份运行的快捷方式复制到启动中 - 这不起作用,因为我认为启动不会执行以管理员身份运行的快捷方式?
- 在安装后阶段运行所有指令 - 这不起作用,因为我删除的一些内容似乎是在桌面准备阶段生成的
我需要能够在桌面准备后首次登录时自动运行此脚本,并将该功能构建到我的无人值守 ISO 中。如果不必接受 UAC 提示就好了,但我认为这是不可能的 - 所以 UAC 提示是可以接受的。
要清楚的是,如果我手动执行我编写的这个脚本,并接受 UAC 提示,它完美地完成了我想要的一切。我只是似乎无法让它在正确的时间自动触发。
有没有办法可以在 Windows 安装媒体中完全完成此操作?
答案1
如果我理解正确的话,你希望 PC 默默地执行批处理作为管理员重启后。
如果是这种情况,我建议在重新启动之前在“RunOnce”注册表项中插入一个字符串值,以启动获取管理员权限的 Visual Basic 脚本(这可能会要求用户输入,通常只需单击“是”),然后启动批处理。我知道这有点笨重,但这就是我让它为我工作的方式。下面的 VBS:
Set UAC = CreateObject("Shell.Application")
UAC.ShellExecute "cmd.exe", "/c FILEPATH", "", "runas", 1