Windows services 如何在本地系统帐户下运行CMD.exe?
我目前正在运行Vista,我想手动完成与Windows服务相同的操作。因为Windows服务是在本地系统帐户下运行的,所以我想模拟同样的行为。基本上,我想在本地系统帐户下运行CMD.EXE 我在网上找到了建议使用DOS任务调度器AT命令启动CMD.exe的信息,但我收到了一条Vista警告,“由于安全性增强,此任务将在除此之外的时间运行,但不会以交互方式运行。”下面是一个示例命令:Windows services 如何在本地系统帐户下运行CMD.exe?,windows-services,user-accounts,Windows Services,User Accounts,我目前正在运行Vista,我想手动完成与Windows服务相同的操作。因为Windows服务是在本地系统帐户下运行的,所以我想模拟同样的行为。基本上,我想在本地系统帐户下运行CMD.EXE 我在网上找到了建议使用DOS任务调度器AT命令启动CMD.exe的信息,但我收到了一条Vista警告,“由于安全性增强,此任务将在除此之外的时间运行,但不会以交互方式运行。”下面是一个示例命令: AT 12:00 /interactive cmd.exe 另一个解决方案建议通过服务控件(sc.exe)创建辅
AT 12:00 /interactive cmd.exe
另一个解决方案建议通过服务控件(sc.exe)创建辅助Windows服务,该控件仅启动CMD.exe
C:\sc create RunCMDAsLSA binpath= "cmd" type=own type=interact
C:\sc start RunCMDAsLSA
在这种情况下,服务无法启动并导致以下错误消息:
FAILED 1053: The service did not respond to the start or control request in a timely fashion.
第三个建议是通过计划任务启动CMD.exe。虽然您可以在各种帐户下运行计划任务,但我不认为本地系统帐户是其中之一
我也尝试过使用Runas,但我认为我遇到了与运行计划任务时相同的限制
到目前为止,我的每一次尝试都以失败告终。有什么建议吗?找到了一个答案,通过在binPath参数中添加/k start似乎可以解决问题。因此,这将给你:
sc create testsvc binpath=“cmd/K start”type=own type=interact
然而,Ben说这对他不起作用,当我在Windows Server 2008上尝试时,它确实在本地系统下创建了cmd.exe进程,但它不是交互式的(我看不到窗口)
我不认为有一个简单的方法来满足你的要求,但我想知道你为什么要这么做?您只是想看看运行服务时发生了什么吗?似乎您可以使用日志来确定发生了什么,而不必作为本地系统运行exe…如果您可以编写一个不需要交互的批处理文件,请尝试将该批处理文件作为服务运行,做需要做的事。我建议您制定出服务真正需要的最低权限集,并使用它,而不是过于特权的本地系统上下文。例如
交互式服务在Windows Vista和Windows Server 2008上不再工作,或者至少不再显示UI,原因是。虽然我没有亲自测试,但我有充分的理由相信上述at命令解决方案将适用于XP、2000和Server 2003。根据my和Bryant的测试,我们发现相同的方法不适用于Vista或Windows Server 2008——很可能是由于增加了安全性和/交互开关被弃用 然而,我遇到了这个演示了from(于2006年7月被微软收购)的使用。我通过以下方式启动了命令行,突然间我像magic一样在本地管理员帐户下运行:
psexec -i -s cmd.exe
PSTools运行良好。这是一套轻量级的、有良好文档记录的工具,为我的问题提供了适当的解决方案
非常感谢那些提供帮助的人。另一种方法是,如果您以。。。(对于有安全增强功能的人来说,交互式不起作用,但这并不重要),当盒子打开时,将服务投入使用 框类型并将系统放入用户框并放入C:\Users\Windows\system32\cmd.exe离开其余部分单击“确定”并单击“取消”您已经有一个带有cmd的窗口,并作为系统运行,现在请自己执行其他步骤,因为我建议您了解它们
cd\
。这会将您置于驱动器的根目录中,psexec位于该目录中psexec-i-s cmd.exe
whoami
;它会说“系统”start explorer.exe
cmd.exe
作为系统
通过附加调试器,我们可以在Windows XP/Vista/7/8.1中通过CMD
轻松访问内核:
REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\osk.exe" /v Debugger /t REG_SZ /d "C:\windows\system32\cmd.exe"
以管理员身份运行CMD
然后在下列情况下使用此命令:
CMD REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\osk.exe" /v Debugger /t REG_SZ /d "C:\windows\system32\cmd.exe"
然后运行osk
(在Screenkeyboard上)。如果您通过process explorer进行检查,它仍然不会以系统完整性级别运行,但如果您可以在服务会话中使用osk,它将以NT Authority\system
所以我想你必须在安全桌面上运行它
以管理员身份启动任何文件。当UAC提示出现时,只需按Win+U并启动OSK
,它将启动CMD
。然后在提升的提示中,键入whoami
,您将获得NT Authority\System
。然后,您可以从系统命令行启动资源管理器并使用系统配置文件,