none
Posh-SSH + IIS RRS feed

  • Вопрос

  • Коллеги, добрый день!

    Есть связка IIS + PHP + PowerShell

    Задача - запустить скрипт PowerShell через сайт

    Все работает исправно, скрипт запускается, но есть одна проблема - не выполняются некоторые команды скрипта. Если скрипт запускать вручную, то все отрабатывает исправно, если через веб форму, то выполняется только Get-Process

    Get-Process >> C:\1\1.txt
    
    $mikrotik = "192.168.2.1"
    $mkUser = "user"
    $mkPassword = "password"
    $cmdMk = 'beep;'
    
    $pscred = New-Object Management.Automation.PSCredential($mkUser, (ConvertTo-SecureString $mkPassword -AsPlainText -Force))
    $ssh = New-SSHSession $mikrotik -AcceptKey -Credential $pscred
    $out = (Invoke-SSHCommand $ssh -Command $cmdMk -EnsureConnection).Output
    Remove-SSHSession $ssh
    
    Get-Process >> c:\1\2.txt

    Не отрабатывает именно SSH команды.

    Повторюсь - если запустить вручную, то все работает исправно.

    PS Get-Process чисто для диагностики

    23 ноября 2017 г. 7:55

Ответы

  • От какого пользователя запускается данное приложение?

    Где расположен модуль для работы с SSH?

    Для теста сохранить модуль на диске C: и сделать:

    Import-Module -Name C:\Path

    • Помечено в качестве ответа Sergey Ya 23 ноября 2017 г. 8:32
    23 ноября 2017 г. 8:14
    Отвечающий

Все ответы

  • От какого пользователя запускается данное приложение?

    Где расположен модуль для работы с SSH?

    Для теста сохранить модуль на диске C: и сделать:

    Import-Module -Name C:\Path

    • Помечено в качестве ответа Sergey Ya 23 ноября 2017 г. 8:32
    23 ноября 2017 г. 8:14
    Отвечающий

  • 1. От Администратор_Домена

    2.  Локально, в C:\Users\Администратор_Домена\Documents\WindowsPowerShell\Modules\Posh-SSH\Posh-SSH.psd1

    3.  Скинул модуль в C:\Posh-SSH , прописал: 

    Import-Module -Name C:\Posh-SSH

    Все заработало :/

    Не понимаю почему раньше не срабатывало. Ведь скрипт стартовал от учетной записи Администратора Домена, следовательно у этой учетной записи есть доступ к файлу C:\Users\Администратор_Домена\Documents\WindowsPowerShell\Modules\Posh-SSH\Posh-SSH.psd1

    Не могли бы вы мне разжевать, уж очень интересно, если не сложно.

    Спасибо! :)





    • Изменено Sergey Ya 23 ноября 2017 г. 8:35
    23 ноября 2017 г. 8:32
  • Добавить в скрипт и посмотреть лог:

    whoami - должно быть Администратор_Домена

    $PSVersionTable - должно быть 3 и выше

    $env:PSModulePath - должен содержать C:\Users\Администратор_Домена\Documents\WindowsPowerShell\Modules\

    Start-Transcript -Path C:\1\log.txt

    whoami

    $PSVersionTable.PSVersion.ToString()

    $env:PSModulePath.split(";")

    Get-Item $env:UserProfile\Documents\WindowsPowerShell\Modules\Posh-SSH

    Stop-Transcript


    23 ноября 2017 г. 8:45
    Отвечающий