2016-03-08 4 views
1

У меня есть сценарий powershell на моем сервере Windows, который выполняет некоторые активные операции с каталогом. Я хочу вызвать этот скрипт с другого компьютера Linux, используя сценарий оболочки.Сценарий вызова Powershell из скрипта оболочки Unix

Я установил сервер powershell на моем сервере Windows и могу установить связь с моей машиной Linux, используя аутентификацию на основе ключа ssh.

Поскольку Windows не поддерживает соединения SSH самостоятельно, я установил программное обеспечение под названием Powershell server (http://www.powershellserver.com/) на моем сервере Windows.

Проблема заключается в том, что мой сценарий просто останавливается после выполнения команды для ssh на сервер Windows.

Мой сценарий оболочки ниже:

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

Я попытался без эхо-команды, а также и он до сих пор висит. Любая идея, что я должен делать неправильно здесь? Как я могу заставить его работать, пожалуйста?

+0

Я думаю, что вам просто нужен 'ssh Administrator @ Winhost 'sleep 10;/path/to/script -group $ GROUP -account $ ACCOUNT" ' –

ответ

0

Вы не можете использовать ssh в окне Windows, если вы не установите демон SSH. У вас есть два варианта:

1- Вам необходимо подключиться через Remote PowerShell (WINRM).

2- Установите SSH демон и подключиться через SSH (Check here)

3- Вы можете также использовать PowerShell Web Access

UPDATE (серверов Windows.): Если вы используете PowerShellServer.com то некоторые вещи, которые вы можете сделать, чтобы попытаться понять больше.

  • Тест scriptname.ps1 локально в Windows Server

  • редактировать свои scriptname.ps1 в первой строке, чтобы создать файл где-то и после проверки выполнения, если этот файл существует. Таким образом, вы узнаете, выполняется ли скрипт или нет.

  • Выполнение Get-ExecutionPolicy и проверка выполнения сценариев. Удалить ограничения на временном Set-ExecutionPolicy неограниченном

+0

Я могу подключиться к окну Windows с помощью команды ssh, поскольку я установил powershell сервера на моей виртуальной машине Windows. SSH Администратор @ PowerShell Сервер: SSH-Enabled PowerShell Доступ для Windows (в powershellserver.com) PS C: \ ProgramData> –

+0

Но Windows по умолчанию не позволяет SSH. Что вы установили в ванильную Windows? –

+0

http: //www.powershellserver.com/ –

0

Попробованного операцию с использованием «ожидать» сценария, и все это хорошо работает в настоящее время.