是否可以psexec
在没有远程机器管理员权限的情况下在远程机器上执行命令?
我尝试运行psexec \\<machine> -u <username> -p <password>
,其中<username>
和
<password>
是非管理员凭据,但出现“访问被拒绝”错误
我可以使用相同的凭据将桌面远程连接到远程机器,没有任何问题。
我的本地机器运行的是 Windows 7 Enterprise 64 位,远程机器运行的是 Windows Server 2008 64 位。我在本地机器上确实有管理员权限。
编辑:致所有反对这个问题的人:我不是想规避任何形式的安全措施。我已经可以通过远程桌面进入远程机器并运行它在远程机器上运行该进程。我只是在寻找一种命令行方式来做一些我已经可以通过 GUI 做的事情。
我试图从 psexec捕获远程进程的输出(即不是psexec 自己的输出)。因此,例如,我可以运行“ipconfig”并将输出打印到日志文件。
我试过了:
psexec \\myserver ipconfig > output.log
psexec \\myserver ipconfig >> output.log
psexec \\myserver ipconfig 2> output.log
psexec \\myserver ipconfig > output.log 2>&1
Run Code Online (Sandbox Code Playgroud)
最后只给出 psexec 输出。
我不确定所有这些之间有什么区别,但我在其他地方寻找答案时看到了它们的建议。
谁能给我一个示例命令行,将 ipconfig 的输出捕获到文件中?
编辑 1:我希望日志文件保存在本地机器上,而不是远程机器上。
编辑2:
这是我从运行“psexec \\myserver ipconfig”中得到的:
C:\TempDll>psexec \\myserver ipconfig PsExec v1.95 - 远程执行进程 版权所有 (C) 2001-2009 Mark Russinovich Sysinternals - www.sysinternals.com ipconfig 在 myserver 上退出,错误代码为 0。 C:\TempDll>
剧本相当直接。只是尝试启动一堆 Windows 服务。在目标机器上执行本地工作正常。当通过 PsExec 完成时,该脚本实际上也能正常执行,直到我在 CMD 提示符下按“回车”键,它才会返回。这是一个问题,因为这是从 TeamCity 调用的,它使 Agent 挂起,等待 PsExec 返回。
我尝试了以下方法:
exit
和exit 0
< NUL
根据此 SF 问题中的答案,在 PsExec 调用的末尾添加一个>
标准输出重定向这就是我实际调用 psexec 的方式:
psexec \\target -u domain\username -p password powershell c:\path\script.ps1
Run Code Online (Sandbox Code Playgroud)
无论我做什么,它都会挂起,直到我在 cmd 提示符下本地。按回车后,我收到消息:
powershell exited on target with error code 0.
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用以下命令从 Win 7 机器连接到 Win2k8R2 机器:
psexec \MACHINE_NAME_HERE -u MACHINE_NAME_HERE\Administrator -p PASSWORD_HERE 记事本
当我尝试这个时,我收到错误消息:
无法访问 MACHINE_NAME_HERE 访问被拒绝。
我尝试省略 -p 并手动输入密码,但同样的问题仍然存在。
当我检查我试图访问的机器时,我在安全事件查看器中看到管理员登录成功,所以我知道用户名密码是正确的,并且机器正在接受我的登录,但我也注意到它尝试还使用我的域帐户登录,该帐户不在远程计算机的管理员列表中。如果我将我的域帐户添加到远程机器,那么一切正常,但在这种情况下,它违背了目的,有时我需要能够在域上没有时在机器上运行命令。
该机器也设置为使用简单模型进行共享和安全。
通过我刚才的问题启发这里,我一直在尝试与PSEXEC。
目标是从另一台 WindowsXP 机器上跳出一些相当简单的脚本/程序,并且由于 PowerShell 2 还没有在 XP 上进行远程处理,PSexec 似乎可以很好地解决我的问题。
但是,除了“访问被拒绝”错误之外,我什么也得不到。
这是我迄今为止尝试过的:
我有一对 WindowsXP MCE 机器,它们在没有服务器或域控制器的工作组中联网。
我在两台机器上都关闭了“简单文件共享”。
在安全策略下,本地帐户的网络访问:共享和安全模型设置为经典,而不是两台机器的来宾。
我知道密码的每台计算机都有一个管理用户。:)
尽管如此,像“ > psexec \\otherComputer -u adminUser cmd
”这样的命令会提示输入密码(就像它应该的那样)然后退出:
Couldn't access otherComputer:
Access is denied.
Run Code Online (Sandbox Code Playgroud)
所以,在这一点上,我转向社区。我在这里错过了什么步骤?
我有一个在 CherryPy 服务器中运行的 Python Web 应用程序,它作为 Windows 服务运行。我有一个批处理文件来部署这个应用程序,但我仍然需要远程桌面到服务器才能重新启动服务。有没有办法编写这个脚本?
我试过:
psexec \\server "net restart cherrypyservice"
Run Code Online (Sandbox Code Playgroud)
但这似乎不起作用。
我正在尝试远程启动安装,但我不想禁用 UAC。如果我使用 psexec 远程启动进程,安装程序将停止等待 UAC 提示。其他任务,例如临时文件清理、服务重新启动等,都会导致访问被拒绝错误。psexec 是否可以绕过 UAC,例如使用管理员登录但使用 TrustedInstaller 权限或类似的权限?
顺便说一下,我的目标是 Windows 2008 R2,但我认为这个问题也适用于 Vista、2008 和 Windows 7。
我有一个在 TeamCity 中运行的 powershell 命令。当我尝试使用此 .ps 文件中的 psexec 远程运行批处理文件时,我看到一旦远程执行开始,就没有任何反应。我尝试了多个论坛讨论的几种方法,但没有用。
Main.ps
:
Invoke-Command -ScriptBlock {C:\PSInstall.bat}
Run Code Online (Sandbox Code Playgroud)
PSInstall.bat
:
C:\Tools\psexec.exe -i -d "\\server2" -u "domain\admin" -p "abcd" -f -w cmd "C:\Install.bat"
Run Code Online (Sandbox Code Playgroud)
我的构建日志:
[11:32:02]C:\BuildAgent\work\603cfc01a3fe22bb\Tools>C:\Tools\psexec.exe -i -d "\\server2" -u "domain\admin" -p "abcd" -f -w cmd "C:\Install.bat"
[11:32:02]
[11:32:02]PsExec v1.98 - Execute processes remotely
[11:32:02]Copyright (C) 2001-2010 Mark Russinovich
[11:32:02]PsExec executes a program on a remote system, where remotely executed console
[11:32:02]Sysinternals - www.sysinternals.com
[11:32:02]applications execute interactively.
Run Code Online (Sandbox Code Playgroud)
我被困在这一点上,不知道发生了什么,非常感谢任何帮助。我已经在远程机器上设置了 EULA。
我只是想知道是否有人知道使用 psexec 会导致 PCI DSS 审核失败的任何原因。
我一直无法找到信息,尽管总是被告知管理员不能在 CDE 或周围环境中的任何内容上使用它。
我想知道 FUD 是否与同名的 MetaSpolit 脚本有关?不知道这有什么作用,但我听说它可能引起了混乱。
任何人都可以说明这是否可以合法使用或是否受到高度反对/禁止?
从正确的角度来看,psexec 与在设备(例如打印机等)上启用 telnet 的处理方式相同。
谢谢
我有一个在 Windows Server 2003 上作为本地系统运行的 Windows 服务,我正在尝试使用 PsExec 作为另一个用户(使用-u -p
参数)运行命令,但我不断收到Access is denied. PsExec could not start
错误消息。
可以执行以下操作来复制问题:
C:\Documents and Settings\me>PsExec.exe -s cmd
PsExec v2.11 - Execute processes remotely
Copyright (C) 2001-2014 Mark Russinovich
Sysinternals - www.sysinternals.com
Microsoft Windows [Version 5.2.3790]
(C) Copyright 1985-2003 Microsoft Corp.
C:\WINNT\system32>whoami
nt authority\system
C:\WINNT\system32>PsExec.exe -u DOMAIN\my-user -p mypass cmd
PsExec v2.11 - Execute processes remotely
Copyright (C) 2001-2014 Mark Russinovich
Sysinternals - www.sysinternals.com
Access is denied.
PsExec could not start cmd: …
Run Code Online (Sandbox Code Playgroud) pstools ×10
windows ×3
local-system ×1
pci ×1
pci-dss ×1
powershell ×1
python ×1
remoting ×1
teamcity ×1
uac ×1