首页 > 解决方案 > 如何将命令链接到远程 PS-Session 并自动化手动输入

问题描述

我需要将命令链接或管道到服务器上的远程 PS 会话。如何将参数或命令传递给 shell 远程会话并自动化提供命令行参数的过程

如果我在本地登录服务器并打开命令提示符并键入命令\参数,它工作正常。这适用于 Windows 2012 服务器。

打开 cmd 提示符。

1.) cd "D:\Oracle\Servers\AppSrv01\bin"  //Type this in cmd prompt
2.) oraadmin.bat -user myuser -pwd mypwd //Type this in cmd prompt
oraadmin>oraadminctrl.invoke('clearlogs') //Type this in cmd prompt
oraadmin>oraadminctrl.invoke('stopserver') //Type this in cmd prompt
oraadmin> exit //This will exit the oraadmin in cmd prompt
3.)exit //Type this in cmd prompt, exits the cmd prompt

这工作正常。现在我试图通过打开一个会话($ sess)对象在powershell中自动执行此操作,如下所示。

试过这个。但失败的“oraadminctrl.invoke”未被识别为内部或外部命令

$c = Invoke-Command -Session $sess {cmd.exe  /c “cd D:\Oracle\Servers\AppSrv01\bin && oraadmin -user admin -password mypassword && oraadminctrl.invoke('clearlogs') && oraadminctrl.invoke('stopserver')" }

我只想自动化输入这个用户名和密码的过程,并在远程机器上的同一个命令提示符进程上一个接一个地运行这些命令。我也对启动进程或其他形式的调用命令持开放态度。编写要放在服务器上的新批处理文件是不可接受的。知道该怎么做吗?

标签: powershellpowershell-3.0powershell-remoting

解决方案


推荐阅读