目前,我正在运行Vista和我谨手动完成相同的操作我的Windows服务。因为Windows服务下运行的地方系统的帐户,我要仿效这一同样的行为。基本上,我想跑CMD.EXE 根据当地的系统的帐户。

我发现在线信息,这表明空空CMD.exe 使用DOS任务计划在命令,但是我接到一个Vista警告说,"由于加强安全保障,这一任务将运行在时间除外,但不能以交互方式。" 这里是一样的命令:

AT 12:00 /interactive cmd.exe

另一个解决方案,建议创建一个二级Windows服务,通过业务控制(sc.exe)它只是启动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 通过计划的任务。虽然你可能会运行计划的任务在各种账户,我不相信当地的系统中的账户是他们中的一个。

我已经尝试使用的运行方式以及,但是认为我是运行到同样的限制以发现当运行计划的任务。

因此,到目前为止,每个我的尝试都以失败告终。任何建议?

有帮助吗?

解决方案

虽然我没有亲自进行测试,我有个好理由相信,上述命令的解决方案将工作XP、2000和服务器2003年。每次我和布莱恩特的测试,我们已经确定,同一办法不起作用Vista或Windows服务器--2008年最可能是由于增加安全性和交互式交换被废弃。

然而,我遇到了这个 文章 这表明了使用 PSTools微软 (这是获得通过Microsoft在日,2006年。) 我启动了命令行通过以下突然我是在当地管理的账户喜欢魔术:

psexec -i -s cmd.exe

PSTools运作良好。这是一个轻便,以及记录的工具,它提供了一个适当的办法,解决我的问题。

非常感谢那些提供帮助。

其他提示

  1. 下载psexec.exe 从微软.
  2. 把它放在你的C:\驱动器。
  3. 登录作为一个标准的或管理的用户和使用的以下命令: cd \.这个地方你根目录你的驱动器,在哪里psexec位。
  4. 使用以下命令: psexec -i -s cmd.exe 在哪里-我是用于交互式和s是为系统的帐户。
  5. 命令完成后,记录的外壳将启动。类型 whoami;它会说'系统"
  6. 打开任务管理器.杀explorer.exe.
  7. 从高级命令壳类型 start explorer.exe.
  8. 当资源管理器启动通知的名称为"系统"在开始。现在你可以删除一些文件在system32目录,作为管理员你不能删除,或者作为管理员,你就必须努力改变的权限,删除这些文件。

用户试图重新命名或deleate系统的文件在任何受保护的目录windows应该知道,所有的窗户的文件的保护ACL的同时,重新命名的文件,你必须改变所有者和替换TrustedInstaller其拥有的文件和作出的任何用户喜欢的用户所属的管理集团作为所有者的文件,然后试图重新命名后,它更改的权限, 它将工作,并同时运行windows资源管理器与核privilages你是有点方面受到限制的网络访问由于安全原因,它仍然是一个研究课题为我的访问回来

找到一个答案 在这里, 这似乎解决的问题通过增加/k开始的binPath参数。这样就会给你:

sc create testsvc binpath= "cmd /K start" type= own type= interact

然而,本说,没有为他工作时,我尝试过了在Windows服务器2008年,它没有创建的cmd.exe 过程根据当地的系统,但这不是交互式(我不能看到窗口)。

我不认为这是一个简单的方法来做什么你要问,但我想知道你为什么这样做呢?你只是想看看发生了什么事当您服务吗?好像你可以使用记录,以确定哪些是发生的事情,而不是具有运行的exe作为本地系统...

我会推荐你的工作最低许可设置的,你服务真的需求和使用,而不是太荣幸地系统上下文。例如, 当地的服务.

交互式服务,不再工作-或至少不再显示UI-on Windows Vista和Windows服务器由于2008年 会议0隔离.

一个替代方案,这是过程中的黑客,如果你进入运行。(交互式不工作的人的安全enhancments但不会事项),当箱打开放服务进入 箱型和放系统进入用户框并把C:\Users\Windows\system32\cmd.exe 剩下的点击ok,唯宝,你已经有了一个窗口cmd在它和运行为的系统现在做的其他步骤为自己是因为我说你知道他们

使用安全桌面运行 cmd.exe 作为 system

我们可以得到核访问过 CMD 在Windows XP/Vista/7/8.1很容易地通过附加一个调试器:

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"
  1. 运行 CMD 作为管理员

  2. 然后使用这种命令在提升:

     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"
    
  3. 然后运行 osk (onscreenkeyboard).它仍不能运行有系统的完整性水平,如果你检查过程的资源管理器,但是如果你可以使用融服务的会议,它将运行为 NT Authority\SYSTEM

所以我想你已经运行了它在安全桌面上。

开始任何文件作为管理员。当UAC提示出现,只要按下 赢得+U 并开始 OSK 它将开始 CMD 代替。然后在升高的迅速、类型 whoami 你会得到 NT Authority\System.在那之后,你可以开始资源管理器系统的命令和使用该系统配置,但是你是有限的你可以做什么,在通过网络系统的权限于安全原因。我会添加更多的解释,后来作为我发现了它一年前。

简要解释如何发生这种情况

运行 Cmd.exe 根据当地的系统不使用账户 PsExec.这种方法的运行调试的陷阱的技术,被发现早些时候,以及这种技术有其自身的好处,它可以被用来陷阱的一些狡猾/恶意蠕虫或恶意软件在调试和运行一些其他可执行软件,而不是停止传播或损害暂时的。在这里,这个注册的关键陷阱屏幕上的键盘为windows地调试和运行cmd.exe 而不是但cmd会仍然运行与登录用户的特权,但是如果我们运行cmd在session0我们可以得到系统的外壳。因此,我们在这里补充的另一个想法,我们跨越cmd在安全桌面记安全桌面运行在会议0下的帐户系统和我们得到系统的外壳。所以当你跑什么作为升高,你必须回答的UAC迅速和UAC提示在黑暗的、不交互式的桌面和一旦你看到它你必须按下 赢得+U 然后选择 OSK 你会得到 CMD.exe 下运行的地方系统的权限。甚至有更多的方式来获得当地的系统的访问 CMD

还有另一种方式。有一个程序,称为PowerRun它允许用于提升cmd运行。即使TrustedInstaller的权利。它允许为控制台和GUI命令。

如果你可以写的一批文件,并不需要交互式,尝试运行,批量文件作为一种服务,以做什么,需要做的事情。

我用的 RunAsTi 用以运行为 TrustedInstaller (高高的权限).该工具可以用于即使在恢复模式的窗户(模式输入通过这样做 Shift+Restart), psexec 用不在那里工作。但是,你需要添加你的 C:\WindowsC:\Windows\System32 (不 X:\WindowsX:\Windows\System32)的路径 PATH 环境变量,否则 RunAsTi 不会的工作,在恢复模式,它只会打印: AdjustTokenPrivileges为SeImpersonateName:不是所有的特权或团体引用的是分配给该叫.

使用任务计划、计划的运行CMDKEY下运行的系统适当的参数/添加:/user:和/通过:

没有必要安装任何东西。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top