PSExec 关闭服务器列表

PSExec 关闭服务器列表

我继承了一个系统,它使用一个简单的 psexec 脚本和一个服务器列表,当温度达到阈值或 UPS 电池只剩几分钟时,会自动关闭列表中的服务器。这是由 AVTech 设备管理器执行的。它不再工作(而且可能自从我来到这里以来就没有工作过)。如果我从管理命令提示符(Windows Server 2012 r2)手动执行脚本,我会收到此错误

The filename, directory name, or volume label syntax is incorrect.

有问题的脚本如下所示

c:\avtech\psexec @c:\avtech\scripts\serverlist.txt c:\windows\system32\shutdown.exe -s -f -t 0 >"c:\avtech\log\shutdownlog.txt 2>&1

并且 serverlist.txt 文件当前只有一个条目

server.domain.local

如果我用实际的服务器名称替换 serverlist.txt 文件,它可以正常工作

C:\Windows\system32>C:\AVTECH\psexec \\server.domain.local c:\windows\system32\shutdown.exe -s -f -t 0 >c:\shutdownLog.txt 2>&1

所以一切都很好,如果我让 psexec 从该服务器列表中抓取。是的,服务器列表的路径是正确的。

毫无疑问,这里的某个地方存在一个简单而明显的错误,但是我对这种事情的经验很少,有什么想法吗?

答案1

与其为此摆弄 psexec,为什么不直接调用关机程序直接用/m交换机吗?

shutdown.exe -m \\server.domain.local -s -f -t 0

您甚至可以使用 for 命令将服务器列表保存在同一个文件中。请参阅用于文档如果您想使用非默认(空格和制表符)分隔符:

for /f %%SERVER in (c:\avtech\scripts\serverlist.txt) do (
    shutdown.exe -m %%SERVER -s -f -t 0
)

答案2

我可以推荐关机? 您似乎更倾向于使用 PsTools,但我不认为 PsExec 是合适的工具。

对于关机 -m,你可以用for 循环我想?

答案3

我倾向于像这样使用它:

psexec.exe \\LAB-PC1 -u LAB-Pc01\admin -p S3cret! -i -d cmd /c shutdown /r /f /t 1 

命令行分解:

(psexec 部分)

  • -i 交互式会话
  • -d 不等待进程终止

(cmd部分)

  • 远程主机上的 cmd Windows shell
  • /c 运行命令然后终止这里
  • 关闭windows关机命令
  • /r 重启 (如果要关机则输入 /h)
  • /f 强制关机,不等待进程
  • /t 1 1 秒超时

你可以用你的@server-list.txt 替换我的 \LAB-PC1,并将其应用于主机列表

编辑

C:\Users\LabAdmin\Desktop\push_software_installer>SO-psexec-server-list.cmd
C:\Users\LabAdmin\Desktop\push_software_installer>\\lab.local\central-store\Software\psTools\psexec
@server-list.txt -u LABDOMAIN\administrador -p S3cret!! -i -d cmd /c w32tm /monitor > output.txt

PsExec v1.98 - Execute processes remotely
Copyright (C) 2001-2010 Mark Russinovich
Sysinternals - www.sysinternals.com

Starting cmd on LAB-PC1...e on LAB-PC1...
cmd started on LAB-PC1 with process ID 30820.     <====
Couldn't access LAB-PC2-disabled:
O identificador Ú invßlido.
Couldn't access LAB-PC3-disabled:
O identificador Ú invßlido.
Couldn't access LAB-PC4-disabled:
O identificador Ú invßlido.
Couldn't access LAB-PC5-disabled:
O identificador Ú invßlido.
Connecting to LAB-PC5-disabled...
C:\Users\LabAdmin\Desktop\push_software_installer>`

我的服务器列表.txt

LAB-PC1
LAB-PC2-disabled
LAB-PC3-disabled
LAB-PC4-disabled
LAB-PC5-disabled

注意:我的实验室电脑语言是 PT-PT

它对我有用:)

希望能帮助到你

相关内容