从Unix Shell脚本调用Powershell脚本

时间:2016-03-08 10:52:37

标签: linux shell powershell

我的Windows服务器上有一个powershell脚本,可以执行一些活动的目录操作。我希望使用shell脚本从另一台Linux机器调用该脚本。

我在Windows服务器上安装了powershell服务器,可以使用基于密钥的ssh身份验证与我的linux机器通信。

由于Windows本身不支持SSH连接,因此我在Windows服务器上安装了一个名为Powershell server(http://www.powershellserver.com/)的软件。

问题是,一旦执行ssh到Windows服务器的命令,我的脚本就会停止。

我的shell脚本如下:

#!/bin/bash
echo "script run"
GROUP=$1
ACCOUNT=$2
ssh Administrator@<Windowshostname>
sleep 10
echo "<pathtoscript>\scriptname.ps1 -group $GROUP -account $ACCOUNT"
sleep 5
echo "exit"
exit

我已经尝试过没有echo命令,它仍然挂起。知道我在这里做错了什么吗?我怎么能让它工作呢?

2 个答案:

答案 0 :(得分:0)

除非安装SSH守护程序,否则无法进入Windows框。 您有两种选择:

1-您需要通过Remote PowerShell(WINRM)进行连接。

2-安装SSH守护程序并通过SSH连接(检查here

3-您也可以使用PowerShell Web Access(Windows服务器。)

更新:如果您使用的是PowerShellServer.com,那么您可以尝试了解更多信息。

  • 在Windows Server中本地测试 scriptname.ps1

  • 在第一行编辑 scriptname.ps1 以在某处创建文件,并在执行后检查该文件是否存在。通过这种方式,您将知道脚本是否正在执行。

  • 执行 Get-ExecutionPolicy 并检查您是否可以运行脚本。通过临时 Set-ExecutionPolicy不受限制

  • 删除约束

答案 1 :(得分:0)

使用&#34;期待&#34;尝试操作。脚本现在一切正常。