我需要将命令链接或管道传输到服务器上的远程PS会话。如何传递参数或命令来为Shell远程会话供电,并自动执行输入命令行参数的过程?
如果我在本地登录服务器,然后打开命令提示符并键入命令\参数,则可以正常运行。这适用于Windows 2012 Server。
打开一个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')" }
我只想自动化输入此用户名和密码并在远程计算机上同一命令提示符过程中依次运行这些命令的过程。我也愿意接受启动过程或其他形式的invoke-command。 写一个新的批处理文件放在服务器上是不可接受的。有什么想法吗?