如何在目标计算机上使用没有管理员特权的psexec?


27

是否可以psexec在没有远程管理员权限的情况下在远程机器上执行命令?

我尝试运行psexec \\<machine> -u <username> -p <password>,其中<username> <password>是非管理员凭据,但出现“访问被拒绝”错误

我可以使用相同的凭据将远程桌面迁移到远程计算机,而不会出现任何问题。

我的本地计算机运行的是Windows 7 Enterprise 64位,而远程计算机运行的是Windows Server 2008 64位。我在本地计算机上具有管理员权限。

编辑:对所有反对这个问题的人:我不是在试图规避任何安全措施。我已经可以通过远程桌面进入远程计算机并运行它来在远程计算机上运行该进程。我只是在寻找一种命令行方式来完成已经可以通过GUI执行的操作。


这是一个很糟糕的问题,因为在此站点上,我们反对最终用户询问我们如何规避安全系统。也许您应该阅读以下内容:meta.serverfault.com/questions/1659/…,然后阅读常见问题解答。
John Gardeniers

7
并不是要绕过任何安全系统。我正在尝试做一些我已经可以通过GUI进行的操作,而不是通过命令行,我觉得这更方便。请向我解释这是如何构成规避安全系统的。
HC4-恢复莫妮卡

4
很多时候,作为管理员的人有充分的理由找到无需使用全部管理权限即可运行流程的方法。当然,有时候这是不可能的,或者是不切实际的,但是如果对系统进行一些调整可以使完全打开系统与将系统配置为使用更受限的帐户进行访问之间有所不同,那么通常需要在更有限的帐户下运行的工作。
香农·瓦格纳

8
我以工作角色管理Windows,Linux和UNIX主机,如果要攻击用户提出的问题来解决用户的问题,我很快就会失业。此人没有要求规避行政权利的方法。他正在寻求一种使用权限有限的PSEXEC来运行自己已经有权通过GUI运行的进程的方法。
罗伯特·埃伯斯

Answers:


26

如位于:https : //stackoverflow.com/questions/534426/psexec-help-needed

在psexec的一部分上启动目标上的Windows服务时,您需要在目标上具有管理员权限,并且您需要具有管理权限才能执行此操作。

psexec将psexecsvc文件复制到管理共享,然后使用远程管理启动使用该文件的服务。它打开命名管道,并将其用于进一步的通信。完成后,它会自动整理。

尽管我找不到官方文件说同样的话。


5

要求成为计算机上的本地管理员。

编辑:或将命令作为计划任务运行。或以受限用户的身份在PsExec:Run进程中使用-l开关(剥离Administrators组,仅允许分配给Users组的特权)。在Windows Vista上,该过程以低完整性运行。参见此处:http : //technet.microsoft.com/zh-cn/sysinternals/bb897553。很抱歉,但是RTFM!

例如:若要以受限用户权限运行Internet Explorer,请使用以下命令:

psexec -l -d“ c:\ program files \ internetexplorer \ iexplore.exe”

请注意,密码以明文形式传输到远程系统。


1
系统管理员将不允许这样做,也没有必要。在Linux上没有必要。
HC4-恢复莫妮卡

4
@ HighCommander4,在Linux上是否有必要有什么区别?这是Windows环境。停止比较苹果和桔子。
John Gardeniers

2
@John:我只是在解释说我没有在做任何需要管理员特权的事情。我有两台计算机,每台计算机上都有一个帐户,并且我试图从另一台计算机远程启动一台计算机上的进程。在我看来,这是很自然的事情,而且要求管理员特权才能做到这一点似乎很荒谬。
HC4-恢复莫妮卡

@ HighCommander4,您要尝试执行的操作(通过管理方式访问远程计算机)确实需要Windows上的管理员访问权限。尽管这对您来说似乎很荒谬,但对于那些必须管理Windows网络的人来说,这是完全有意义的。
John Gardeniers

4
@约翰:用自己的帐户运行程序的“管理”是什么?
HC4-恢复莫妮卡

2

不,不是有用的方式。您为什么要这样做而不成为管理员?


2
请您的域管理员为您完成。除非您做的很腥,否则应该不会有问题吧?
萨法多2011年

2
请我的域管理员为我做什么?我已经可以通过使用非管理员帐户远程桌面进入计算机并在该帐户下运行该进程来运行该进程,即该进程本身不需要管理员特权即可运行。我只希望能够从命令行执行此操作,而不必将远程桌面插入计算机。
HC4-恢复莫妮卡

1
是否可以在没有管理员权限的Windows Server上安装ssh?如果是这样,您能指出我一个链接吗?我尝试过OpenSSH,但似乎需要管理员权限。
HC4-恢复莫妮卡

1
@tony roth:您不需要高权限的权限就可以在Linux上运行SSH守护程序。您只需要提升权限即可在特权端口(0-1023)上运行它。您可以将客户端和服务器都配置为使用非特权端口,而无需在任何一台计算机上提升权限。
HC4-恢复莫妮卡

2
实际上,通过在非特权端口上运行SSH守护进程,我已经设法在Windows服务器上设置了OpenSSH,而没有任何管理员权限。继续批评我,因为我敢于主动提高我的工作效率,而无需先咨询神圣系统管理员。
HC4-恢复莫妮卡


0

一种解决方案是使用AutoIT脚本按计划从工作站登录到远程桌面。让您的“启动”文件夹通过批处理脚本或另一个AutoIT脚本执行您的过程(这样您就可以在进行其他工作时取消它)。这不是命令行,但是可以在sysadmin给您的参数内自动完成工作。希望能帮助到你。


-1

可能有一种方法可以做到这一点。它可能与在计算机上编辑WMI权限一样简单。如果不可能,那么使用WinRM之类的工具肯定可以。

不过,所有这些对您来说都是没有意义的。您根本没有对该计算机的管理员访问权限。因此,您无法进行任何必要的更改以实现此目的。您需要与系统管理员一起解决此问题,而不是请我们帮助您解决他的问题。非常清楚地记住一件事,我们中的大多数人都是系统管理员,我们不喜欢试图绕过我们的用户。这并不能使我们很可能帮助您尝试解决系统管理员的问题。


2
我看不到我要如何“四处走动”。系统管理员希望我能够在该计算机上运行进程,否则我将无法将远程桌面插入其中。我想要的是一种使用命令行而不是远程桌面GUI来运行过程的方法。现在,我可以对系统管理员进行调试,或者我可以自己找到一种方法。我认为专业的系统管理员社区会尽力帮助我,而不是教我。
HC4-恢复莫妮卡

@HighCommander-答案是系统管理员必须向您提供此功能。您无法自己执行此操作,因为您对计算机没有管理权限。如果他们真的同意,那么请他们给予您所需的权利,使其能够执行您需要做的事情。
杰森·伯格

-1

`const string subkey =“ Software \ Sysinternals \ PsExec”;

        if (Environment.Is64BitOperatingSystem)
        {
            // For 64 Bit PC
            RegistryKey registryKey64 = RegistryKey.OpenBaseKey(RegistryHive.CurrentUser, RegistryView.Registry64);
            RegistryKey NDPKey64 = registryKey64.OpenSubKey(subkey);
            if (NDPKey64 != null)
            {
                Registry.CurrentUser.OpenSubKey(subkey, true).SetValue("EulaAccepted", 1, RegistryValueKind.DWord);
            }
            else
            {
                RegistryKey regKey64 = registryKey64.OpenSubKey("Software", true);
                regKey64.CreateSubKey("Sysinternals\\PsExec", RegistryKeyPermissionCheck.ReadWriteSubTree);
                Registry.CurrentUser.OpenSubKey(subkey, true).SetValue("EulaAccepted", 1, RegistryValueKind.DWord);
            }
        }
        else
        {
            //For 32 bit PC
            RegistryKey registryKey32 = Registry.CurrentUser.OpenSubKey(subkey);
            if (registryKey32 != null)
            {
                Registry.CurrentUser.OpenSubKey(subkey, true).SetValue("EulaAccepted", 1, RegistryValueKind.DWord);
            }
            else
            {
                RegistryKey regKey32 = Registry.CurrentUser.OpenSubKey("Software", true);
                regKey32.CreateSubKey("Sysinternals\\PsExec", RegistryKeyPermissionCheck.ReadWriteSubTree);
                Registry.CurrentUser.OpenSubKey(subkey, true).SetValue("EulaAccepted", 1, RegistryValueKind.DWord);
            }
        }`

4
引起系统注意的一种肯定的解决方法是发布对旧问题的相同答案。只是在没有解释的情况下转储代码也不是一件好事。请更新您的答案,并提供有关代码功能以及如何解决操作问题的解释。
user9517支持GoFundMonica 2012年

1
好的,有时即使已安装PsExec,也不会在请求时调用其他exe。问题与将EulaAccepted DWORD值设置为1有关。我找不到讨论此问题的页面,因此在此处添加。
Shyam

-1

为什么有人不仅仅说不可能呢?我需要执行类似的操作(Remote Exec SAS程序),如果我将RDP插入该服务器(即,我具有对该服务器的登录访问权限,可以访问源代码文件夹,并且具有文件系统访问权限),则可以执行该操作访问以运行SAS)。

没有sysadmin是他/她的正确想法,不会授予我该设备上的全部admin权限只是为了远程执行。基本上,PSTools是一个sysadmin工具,不适用于实际IT系统解决方案的部署。


1
这位大佬根本没有回答这个问题。
Flup

实际上确实如此。+1
阿米特·奈杜
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.