我需要在用户使用他的凭据登录之前启动批处理脚本。
我该怎么办?
谢谢大家
答案 0 :(得分:2)
您可以查看此How to launch a program before the shell (Explorer) starts.
如果要在shell启动之前启动应用程序,可以在注册表中为Userinit
值添加值。在这个键中:
HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Winlogon
有一个名为Userinit
的值。更改它,以便您的程序在userinit.exe之前运行。例如,要在shell /其他所有其他内容初始化之前启动记事本:
C:\窗口\ system32 \ Notepad.exe的,C:\ Windows \ System32下\的userinit.exe
使用逗号分隔应该启动的程序。
因此,对于批处理文件,只需添加绝对路径而不是记事本示例
答案 1 :(得分:0)
如果您可以编辑系统的注册表,则可以运行regedit.exe并将浏览添加到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices
。添加具有任意名称的新字符串值,并将完整批处理路径作为值。
我认为每次启动Windows时都会执行此操作。不确定它是否会在从休眠期唤醒后运行。
不要误认为HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
,每次用户登录时(感谢Harry Johnston)或HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
,每次用户登录时都会发生这种情况。
答案 2 :(得分:0)
您可以从本地注册表中编辑2个键
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
如果HKLM(HKEY_LOCAL_MACHINE)被修改,它将影响整个机器,因此无论谁登录,批处理文件都将运行,而HKCU(HKEY_CURRENT_USER)只会在修改注册表时影响当前登录的用户。您还可以添加,修改或验证批处理文件中上述任一键的当前存在,只需打开命令提示符并键入REG /?
即可查看可用命令。