2013-07-21 43 views
0

我想在管理权限用户登录时自动启动我的应用程序。我发现这个问题:How to run a program automatically as admin on Windows startup?但它不能解决我的问题。如果我使用schtasks,有两个问题:第一个问题是,它不会在vista,xp,...上的用户桌面上运行(请参阅第2个答案的注释)。第二个问题是对onlogon参数的描述以管理员权限登录时开始

任务在用户(任何用户)登录时运行。您可以指定日期,或在用户下次登录时运行任务。

请参阅http://technet.microsoft.com/en-us/library/bb490996.aspx。我想创建一个设置界面,允许每个用户开启和关闭登录。

那么有没有更好的解决方案,也将在Windows XP上工作?

回答

0

Schtasks /Create /TN admin /RU SYSTEM /SC ONLOGON /TR C:\admin\admin.bat
正在接近可为计划任务本身完成的最佳工作。以用户管理员而非SYSTEM身份运行任务可能会显示UI,如下所示:Schtasks /Create /TN admin /RU "<administrator username>" /SC ONLOGON /TR C:\admin\admin.bat

在任务启动的任何批处理文件中都有很大的灵活性。

如果 “C:\ ADMIN \ admin.bat” 是

set there=0 
for /F %%G in ('find "%username%" C:\access\users.txt') do if ("%%G") EQU ("%username%") set there=1 
if ("%there%") EQU ("1") start "real" "cmd" "/C "C:\admin\real.bat"" 

和 “C:\ ADMIN \ real.bat” 包含任何你真的要执行(因此得名),这脚本应该解决让用户选择程序是否启动的问题,方法是在“C:\ access \ users.txt”中添加或删除自己。

要解释,for/F行解析当前用户名称的“users.txt”文件,如果用户的用户名在一行中逐字列出,则将“there”设置为1。接下来,“if”行检测用户名是否确实存在于文件中,并且只在第二批文件启动时才会启动。

+0

非常感谢,但我也试过。最后我创建了一个很好的服务:) –