从Unix Shell脚本调用Powershell脚本

k5ifujac  于 2022-11-16  发布在  Shell
关注(0)|答案(2)|浏览(220)

我的Windows服务器上有一个powershell脚本,它执行一些活动目录操作。我希望使用shell脚本从另一台Linux机器上调用该脚本。
我已经在我的Windows服务器上安装了Powershell服务器,可以使用 * 基于SSH身份验证的密钥 * 与我的Linux机器通信。
由于Windows本身不支持SSH连接,我在Windows服务器上安装了一个名为Powershell服务器(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命令,但它仍然挂起。你知道我在这里做错了什么吗?我怎么才能让它工作呢?

iszxjhcz

iszxjhcz1#

除非安装SSH守护程序,否则无法通过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不受限制
4ioopgfo

4ioopgfo2#

使用“expect”脚本尝试了该操作,现在一切正常。

相关问题