![Windows 批处理文件:使用“以不同用户身份运行”在服务器上执行 .exe](https://linux22.com/image/1537556/Windows%20%E6%89%B9%E5%A4%84%E7%90%86%E6%96%87%E4%BB%B6%EF%BC%9A%E4%BD%BF%E7%94%A8%E2%80%9C%E4%BB%A5%E4%B8%8D%E5%90%8C%E7%94%A8%E6%88%B7%E8%BA%AB%E4%BB%BD%E8%BF%90%E8%A1%8C%E2%80%9D%E5%9C%A8%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E6%89%A7%E8%A1%8C%20.exe.png)
我想要创建一个批处理文件来执行在服务器上重新启动 CruiseControl.Net 的 .exe。这有两个复杂之处:
- 首先我需要远程访问服务器
- 其次我需要在“以其他用户运行”下运行 .exe
我见过一些使用 PSEXEC 连接到服务器的示例,但这是使用服务器连接凭据运行 bat 文件,而不是以其他用户身份运行 exe。
例如假设各个部分如下:
- 服务器名称:“Test-Server-01”
- 服务器用户名:“User1”
服务器密码:“Password1”
exe 位置:“Test-Server-01\d$\CC.exe”
- exe 用户名:“用户”
例子:
\\\Test-Server-01 -c test.bat -u User1 -p Password1
这将使用服务器的用户名和密码在服务器“Test-Server-01”上运行“test.bat”。然后我需要展开它以在“以不同用户身份运行”下运行该应用程序
问题:我怎样才能实现这个结果?
我目前正在从这里开始,从“以不同用户身份运行”开始,并在服务器上执行此 bat 文件。这可以正确启动 ccnet.exe,但位于错误的文件夹下。
CD "/D D:\Program Files (x86)\CruiseControl.NET\server"
RUNAS /user:[email protected] "D:\Program Files (x86)\CruiseControl.NET\server\ccnet.exe"
PAUSE
答案1
执行可以这样做:
psexec \\Test-Server-01 -u User -p Pass d:\local\path\to\CC.exe