psexec 远程计算机名
Posted
技术标签:
【中文标题】psexec 远程计算机名【英文标题】:psexec remote computer name 【发布时间】:2014-05-23 04:58:33 【问题描述】:我大多是这种东西的新手,遇到了一个我不知道如何解决的问题。基本上,它正在查看 test.txt 并使用其中的计算机名称列表,并在每个文件上运行批处理文件。如果我能找到一种插入远程计算机名称的方法,我会很高兴,但我不知道该怎么做。我进行了一些研究,发现有些人说您可以将 %COMPUTERNAME^% 与 ^ 一起使用,使其能够返回远程计算机名称,而不是我从中运行命令的名称。如果我执行以下操作,这将起作用:
psexec @c:\test.txt cmd /c echo %COMPUTERNAME^%
但是,如果我尝试在要运行的文件的路径中使用它,它就不起作用,只是尝试使用“%COMPUTERNAME%”作为实际名称而不是解析它。这是我正在尝试使用的命令:
psexec @c:\test.txt elevate \\%COMPUTERNAME%\c$\IE10fix.bat
我正在尝试在一长串计算机名称上运行此批处理文件,它必须以本地管理员身份运行,这就是我使用 elevate 的原因。如果有人可以提供远程计算机名称问题的解决方案,或者甚至是另一种方法,我将非常感激。
【问题讨论】:
为什么您认为需要在每个命令中替换计算机名称?如果批处理文件在每台目标机器上,只需使用本地路径,例如psexec @c:\test.txt elevate C:\IE10fix.bat
。如果它在单个服务器上,请使用服务器的路径,例如psexec @c:\test.txt elevate \\server\c$\IE10fix.bat
.
如果您尝试使用 UNC 路径,它将不起作用。我在其他地方读到这是 psexec 的限制。我只是脑子里放了个屁。使用本地路径就可以了。谢谢!
【参考方案1】:
如果您尝试执行 UNC 路径可执行文件,则应使用网络管理员帐户而不是本地帐户。
psexec @c:\test.txt -u domain\username \\server\c$\IE10fix.bat
UNC 路径失败的原因是本地帐户无权访问网络资源
【讨论】:
这是有道理的,但我有一个特定的原因需要使用本地管理员帐户来执行此特定任务。不过感谢您提供的信息,它将在将来很有用。 尝试创建一个文件夹 c:\test\IE10fix.bat 并将此文件夹共享给“所有人”。然后试试:psexec @c:\test.txt \\server\test\IE10fix.bat
【参考方案2】:
您也可以只使用系统帐户来绕过限制,但就路径而言,您可以只指向运行脚本的位置,而不是应对本地计算机然后尝试从那里运行。
psexec @c:\test.txt -s "%~DP0IE10fix.bat"
这从文本中提取并作为系统帐户运行(如果您希望它对用户保持沉默,则通常使用)然后从您正在执行的批处理文件的位置运行 IE10fix.bat。因此,您必须将 IE10fix.bat 放在与运行此命令的 .bat 相同的位置。
【讨论】:
以上是关于psexec 远程计算机名的主要内容,如果未能解决你的问题,请参考以下文章