一、执行一键打开.bat文件
一键启动.bat内的指令为
start CentralServer.exe 1
start ControlServer.exe 1
start DBServer.exe 10
start DBServer.exe 11
本地powershell的指令为
$na = “XXX” #远程桌面用户名
$p2 = ConvertTo-SecureString “XXXXXXX” -AsPlainText -Force #将密码字符串转换成安全字符串
$A = New-Object System.Management.Automation.PSCredential($na,$p2)
Invoke-Command -ComputerName 1XX.1XX.1XX.1XX -Credential $A -ScriptBlock {
Set-Location D:\ServerDir
invoke-expression -command D:\ServerDir\一键启动.bat
}
在ise中运行脚本,脚本一直处于运行状态,点停止按钮也要等很久才能停止。能在远程进程中能查询到执行了.bat文件,但是不能在远程直接执行“一键关闭.bat”关闭,必须在ps上执行“一键关闭.bat”才能关闭。
二、第二次尝试
在远程添加一个start一键启动.ps1脚本
Set-Location D:\ServerDir
invoke-expression -command “D:\ServerDir\一键启动.bat”
并将本地powershell的指令改为
$na = “XXX” #远程桌面用户名
$p2 = ConvertTo-SecureString “XXXXXXX” -AsPlainText -Force #将密码字符串转换成安全字符串
$A = New-Object System.Management.Automation.PSCredential($na,$p2)
Invoke-Command -ComputerName 1XX.1XX.1XX.1XX -Credential $A -ScriptBlock {
invoke-expression -command D:\ServerDir\start一键启动.ps1
}
在ise中运行脚本,脚本一直处于运行状态,点停止按钮也要等很久才能停止。能在远程进程中能查询到执行了.bat文件,但是不能在远程直接执行“一键关闭.bat”关闭,必须在ps上执行“一键关闭.bat”才能关闭。
三、执行一键关闭.bat文件就没有问题
@echo off
taskkill /im ControlServer.exe /f
taskkill /im CentralServer.exe /f
$na = “XXX” #远程桌面用户名
$p2 = ConvertTo-SecureString “XXXXXXX” -AsPlainText -Force #将密码字符串转换成安全字符串
$A = New-Object System.Management.Automation.PSCredential($na,$p2)
Invoke-Command -ComputerName 1XX.1XX.1XX.1XX -Credential $A -ScriptBlock {
Set-Location D:\ServerDir
invoke-expression -command D:\ServerDir\一键关闭.bat
}