我想凝聚
psexec \\server taskill /f /t /fi "USERNAME eq $username" /im soffice*
psexec \\server taskill /f /t /fi "USERNAME eq $username" /im swriter*
psexec \\server taskill /f /t /fi "USERNAME eq $username" /im scalc*
psexec \\server taskill /f /t /fi "USERNAME eq $username" /im simpress*
进入一个psexec命令。通常我会尝试使用&
运算符so & so
,但由于我在PS中执行此操作,所以似乎并不喜欢这样。我尝试了()
和""
的数组,但它似乎也不喜欢它们。
结束只复制.cmd
(BAT)文件并在我的$PROFILE
本地创建快捷方式。
function flushlibra
{
param([string]$user = "")
if ($user -eq "")
{
$user = Read-Host "User to nuke LibraOffice proccesses: "
}
psexec -c "\\unc\path\to\flushlibra.cmd" $user
}
.cmd
档案
taskkill /f /t /fi "USERNAME eq %1" /im soffice*
taskkill /f /t /fi "USERNAME eq %1" /im swriter*
taskkill /f /t /fi "USERNAME eq %1" /im scalc*
taskkill /f /t /fi "USERNAME eq %1" /im simpress*
答案 0 :(得分:8)
psexec允许您远程调用批处理脚本,而不仅仅是单个命令。使用-c
开关指示应将脚本复制到远程系统。
所以如果你在本地有一个脚本KillProcs.cmd:
taskill /f /t /fi "USERNAME eq $username" /im soffice*
taskill /f /t /fi "USERNAME eq $username" /im swriter*
taskill /f /t /fi "USERNAME eq $username" /im scalc*
taskill /f /t /fi "USERNAME eq $username" /im simpress*
然后你可以像这样远程运行
psexec \\server -c c:\localpath\KillProcs.cmd
答案 1 :(得分:1)
如果您只想在一行上连接命令,请使用语句分隔符;
,例如:
psexec \\server taskill /f /t /fi "USERNAME eq $username" /im soffice*; psexec \\server taskill /f /t /fi "USERNAME eq $username" /im swriter* ; psexec \\server taskill /f /t /fi "USERNAME eq $username" /im scalc* ; psexec \\server taskill /f /t /fi "USERNAME eq $username" /im simpress*
从查看PSEXEC的用法来看,它似乎不允许您在PSEXEC的单个调用中指定多个程序。
BTW你可以使用PowerShell的远程处理功能 - 假设server
安装了WMF 2.0或更高版本,并启用了WSMan远程处理,例如:
Invoke-Command -ComputerName server {Stop-Process -Name soffice*,swriter*,scalc*,simpress* -Force}
如果你不能去远程路由,另一种方法是创建一个PowerShell函数:
function Stop-RemoteProcess([string]$ComputerName, [string[]]$Programs, [string]$UserName)
{
foreach ($program in $Programs)
{
psexec "\\$ComputerName" taskill /f /t /fi "USERNAME eq $UserName" /im $program
}
}
Stop-RemoteProcess server soffice*,swriter*,scalc*,simpress* JohnDoe
答案 2 :(得分:0)
我总是这样使用:)并且正常运作
psexec \\COMPUTER -e cmd /c (COMMAND1 ^& COMMAND2 ^& COMMAND3)