在过去的几周里,我一直在互联网上搜索,以找出使用 psExec 在远程计算机上打开“计算器”时遇到的问题。最后我也在这里问了一个问题。我仍然没有这个问题的答案,但是获得这个问题的帮助变成了很多关于解决 psExec 问题的不同方法的来回答案和评论。我很感激我收到的帮助,所以我正在查看我得到的故障排除想法列表,并想 - 如果我可以搜索“troubleshoot psExec”并将此列表全部放在一个地方,那不是很好吗?而不是在大量不同的网站上挖掘一些有用的信息?
因此,考虑到这一点,并本着回答你自己的问题帖子的精神,我将列出我发现的所有故障排除方法,然后我会提出我的问题。我还不能添加很多链接,因为我是这个网站的新手,所以我对包含最少的信用和来源链接表示歉意。
\\targetmachine
命令部分,尝试使用计算机名称或 IP 地址。有时,一个可以工作,而另一个可以工作。-i
开关使程序在远程计算机上交互。-d
开关,以便cmd
在您正在执行的程序仍在运行时不会挂起。calc
,cmd
,或创建一个简单.bat
文件来测试),以检查您的语法是否错误。-d
切换,请运行您的程序并让它挂起一段时间,看看系统是否运行缓慢。有时某些程序会花费一些时间。psList
或psService
来检查您是否有权访问远程计算机\\targetcomputername\c$
。这将使您能够访问目标 C: 驱动器中的文件夹。cmd
以管理员身份运行-u
和-p
)。尝试使用您的常规帐户,然后尝试使用您的管理员帐户(如果您有的话)。-accepteula
-/accepteula
显然一种方式适用于某些系统,另一种方式适用于其他系统。-accepteula
两次,因为第一个命令有时会被“吞没”并且不会被执行(来自这篇文章)。psExec
在命令提示符下运行,以便您可以手动接受弹出的许可协议。(accepteula
应该这样做,但显然有时不起作用)admin$
目标计算机上的共享是否已打开psExec 下载页面以及 Sysinternals psExec 常见问题解答和论坛都是很好的资源。
我在这里写的这些故障排除想法都没有解决我的问题,所以这意味着还有更多的想法。还有什么办法可以解决像我这样的简单问题(只需打开一个简单的程序,如计算器)的 pExec 问题?
小智 0
A) \{目标机器}。 2015 年,我们将所有 *.bat 批处理文件更改为对 {targetmachine} 使用 IPAddress,而不是使用 ComputerName,这样就消除了调用 PsExec 时的“挂起”问题。2018 年,随着所有新的病毒安全措施到位,我们发现使用IPAddress 现在会导致 PsExec 挂起长达 3 分钟。因此,我们已将批处理文件切换回使用 ComputerName。
B) -p {密码}。我们中有 6 个人经常使用使用 PsExec 的批处理文件,并且我们的批处理文件被定制为使用我们的用户名和密码。在我们上次强制 3 个月的密码更新之后,我们意识到密码中没有特殊字符的用户(例如 @ ! ^ $)不再经历任何挂起时间,而那些具有特殊字符的用户经常经历 20 秒的挂起时间。(这很难排除故障,因为如果最近 3 分钟内未调用批处理文件,则具有特殊字符的用户只会经历 20 秒的挂起时间。如果最近运行过批处理文件,挂起时间就会消失。)
C)在任何 *.bat 批处理文件中使用@。同样,如果我们从任何调用 PsExec 或被 PsExec 调用的批处理文件中删除“@”字符,我们就会发现挂起时间就会消失(无论批处理文件运行后已经过了多长时间)。对于那些不熟悉 *.bat 文件编程的人来说,@ 字符会抑制屏幕上的“回显”,即使在批处理文件中将回显设置为“on”也是如此。
D)总结:2015 年代码
@echo off
@psexec \\199.245.27.107 -u DomainName\UserName -p MyP@$$W*rd cmd.exe /k c:\local_PsExec_commands.bat "%cd%" %1 %2
Run Code Online (Sandbox Code Playgroud)
2018年代码
echo off
psexec \\TargetComputer -u DomainName\UserName -p MyPassWord cmd.exe /k c:\local_PsExec_commands.bat "%cd%" %1 %2
Run Code Online (Sandbox Code Playgroud)
我们还从目标计算机上的所有“local_PsExec_commands.bat”文件中删除了“@”字符。
归档时间: |
|
查看次数: |
8097 次 |
最近记录: |