我正在寻找一种方式,我可以自动启动某个程序在具有pipe理员权限的用户权限login的用户。
我已经尝试使用任务调度程序,但它没有工作,因为你必须input格式machine \ user的用户名,我们的pxe-image-deployment-system自动修补机器名称,以便input的域\用户停止工作。
更新 :
runas.exe命令似乎也不适用于此任务。 如果使用/ user:machinename \ Administrator / savcred,则映像后无效。 用户build议使用的是\ Administrator或localhost \ Administrator,但两者都无法在我的XP SP3机器上运行。
UPDATE2 :
在程序中,我需要执行此function正在使用:
[DllImport("user32.dll")] public static extern int ExitWindowsEx(int uFlags, int dwReserved);
当使用Alan Kurasbuild议的程序时,这个function是失败的,这对我来说是不可行的。
UPDATE3 :
是! 我明白了,我想! 在另一个用户上下文中运行时似乎不能使用ExitWindowsEx。
我只是将我的应用程序切换到WTSLogoffSession,现在它正在工作!
如果由于您的部署系统而使用内置函数来完成此任务,则存在一个解决scheme,该解决scheme适用于发送某些可以以pipe理员身份运行的程序,而无需知道密码。
基本上你需要创build包含pipe理员密码的程序,并且可以获得作为另一个用户运行的指定权限。 有几个程序出现在我脑海里:
这些程序可以encryption你的脚本,用户名和密码,并在用户环境中以本地pipe理员的身份自动运行。
另外,如果你知道一些编程语言,你可以自己写。 只要阅读关于模仿(例如在C#中 )
编辑2:进入我脑海中的第二件事。 如果您在获取computername时遇到问题您可以尝试使用%COMPUTERNAME%variables(如%COMPUTERNAME%\ Administrator)并检查是否有效。
我通过使用另一种runas程序CPAU解决了这个问题。
这是一个围绕布什的方法,但是当我们使用Clonezilla PXE对机器进行映像时,我们在XP“Startup”文件夹中有一个batch file,在第一次login时就会启动它。 batch file将添加4个或5个计划任务,然后删除自己。
您可以使用“SCHTASKS / Create”添加任务。 这里有一个例子,如果你有兴趣使用这种方法。
SCHTASKS /Create /RU username /RP password /SC hourly /D * /M * /TN taskname /TR C:\folder\process.bat /ST 12:00 /SD 06/20/2012 /F
SCHTASKS /创build/? 会为您提供帮助信息。
简单。 像msindlebuild议的那样,你需要把快捷方式放在启动文件夹中,但是如果它需要以pipe理员身份运行,你必须a)在第一次运行时提供pipe理员凭证,以及b)使用一些命令线路交换机。 例如,下面是我如何运行ADUC作为域pipe理员,同时作为受限用户login到我的机器。 (快捷方式的“目标”字段。)
%windir%\system32\runas.exe /user:domain\adminuser /savcred "mmc %windir%\system32\dsa.msc"
第一位调用runas.exe,这是什么让你作为一个不同的用户在XP中运行程序,/用户指定的用户(如果你想本地帐户,用户的机器名称,而不是域名),/ savcred允许要保存的凭证(input一次后),最后一位是被调用的程序 – 带有dsa(ADUC)pipe理单元的Microsoftpipe理控制台。
编辑:
我也成功了:
%windir%\system32\runas.exe /user:.\username /savcred "mmc %windir%\system32\dsa.msc"
和:
%windir%\system32\runas.exe /user:localhost\username /savcred "mmc %windir%\system32\dsa.msc"
但是,根据下面的评论,这可能不是正常的行为。
这适用于我:
在运行你的程序的快捷方式的目标字段中添加粗体文本如下C:\ WINDOWS \ system32 \ runas.exe / user:用户名/ savcred “program_path \ program_name.exe”
PS也检查你的Windows系统path!
用户名必须是用户名,在哪个帐户中安装了program_name.exe
你可以把所有用户启动文件夹中的程序的快捷方式,并给域用户的权利,该程序的安装目录? 如果这不是一个选项,请尝试这样做: http : //www.sevenforums.com/tutorials/208799-programs-documents-run-user-logon.html
它为赢7,但我会想象XP有相同的function。