是否可以使用psexec
在远程计算机上执行命令,而无需在远程计算机上拥有pipe理员权限?
我尝试运行psexec \\<machine> -u <username> -p <password>
,其中<username>
和<password>
是非pipe理员凭据,但是我得到“访问被拒绝”错误
我可以使用相同的凭据远程桌面到远程机器没有任何问题。
我的本地计算机正在运行Windows 7 Enterprise 64位,而远程计算机正在运行Windows Server 2008 64位。 我在本地机器上拥有pipe理员权限。
编辑 :对所有压制这个问题的人来说,我并不是想规避任何forms的安全措施。 我已经可以通过远程桌面远程机器运行远程机器上的进程并运行它。 我只是在寻找一种命令行方式来做一些我已经可以通过GUI来做的事情。
如发现在: https : //stackoverflow.com/questions/534426/psexec-help-需要
您需要对目标拥有pipe理员权限,因为psexec会在目标上启动一个Windows服务,您需要pipe理员权限才能执行此操作。
psexec将psexecsvc文件复制到pipe理员共享中,然后使用远程pipe理使用该文件启动服务。 它打开命名pipe道并将其用于进一步的通信。 当它完成后它自己收拾。
虽然我无法find说同样的事情的官方文件。
要求在本机上是本地pipe理员。
编辑:或作为计划任务运行命令。 或者在PsExec中使用-l开关:以有限的用户身份运行进程(剥离pipe理员组并仅允许分配给用户组的权限)。 在Windows Vista上,该进程以低完整性运行。 看到这里: http : //technet.microsoft.com/en-us/sysinternals/bb897553 。 对不起,但RTFM!
例如:要以限制用户权限运行Internet Explorer,请使用以下命令:
psexec -l -d“c:\ program files \ internet explorer \ iexplore.exe”
请注意,密码以明文forms传输到远程系统。
不,不是一个有用的方式。 你为什么要这样做,而不是pipe理员?
使用Powershell命令可能会更好:
一个解决scheme是使用AutoIT脚本从工作站按计划login到远程桌面。 让您的“启动”文件夹通过批处理脚本或另一个AutoIT脚本执行您的过程(以便您可以取消其他工作)。 这不是命令行,但它可以在你的系统pipe理员给你的参数中自动执行你的工作。 希望它有帮助。
可能有办法做到这一点。 这可能与在机器上编辑WMI权限一样简单。 如果这是不可能的,那么使用像WinRM这样的东西肯定会奏效。
尽pipe如此,所有这一切都是为你辩护。 您根本没有pipe理员访问机器的权限。 因此,你不能做任何必要的改变来实现这一目标。 你需要用你的系统pipe理员来解决这个问题,而不是要求我们帮你绕过他。 记住一件事非常清楚,我们这里的大多数是系统pipe理员,我们不喜欢用户试图绕过我们。 这不会使我们很有可能帮助您尝试绕过系统pipe理员。
`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); } }`
为什么有人不只是说这是不可能的? 我需要做类似的事情(远程执行一个SAS程序),如果我进入该服务器的RDP,我确实有权访问(即我有login访问服务器。我有文件系统访问源代码文件夹,我有访问运行SAS)。
没有系统pipe理员是他/她的正确的思想是要授予我完全的pipe理员权限在该框只是远程执行。 基本上PSTools是一个系统pipe理员工具,不能用于部署实际的IT系统解决scheme。