Запуск сценариев powershell на удаленной машине - PullRequest
2 голосов
/ 14 мая 2019

Я пытаюсь выполнить скрипт powershell на удаленном компьютере.Скрипт открывает приложение блокнота, создает файл и сохраняет его.Я запускаю сценарий с приведенной ниже командой на исходном компьютере:

Invoke-Command -ComputerName "na18actxdc" -ScriptBlock {D: \ NMAutomation \ trial_2.ps1}

Команда выполняется в течение длительного временина исходной машине и ломается.Но текстовый файл не создан.Может ли кто-нибудь помочь здесь, пожалуйста?

Однако тот же сценарий, когда выполняется с удаленного компьютера, выполняется быстрее, и текстовый файл сохраняется.Я попробовал ту же концепцию с помощью скриптов autoit и опций psexec.Ни один из них не работает.

Код на удаленной машине:

Import-Module "C:\Program Files (x86)\AutoIt3\AutoItX\AutoItX.psd1"
Invoke-AU3Run -Program notepad.exe
$windowtitle ="Untitled - Notepad"
Wait-AU3WinActive($windowtitle)
$windowhandle = Get-AU3WinHandle -Title $windowtitle
Show-AU3WinActivate -WinHandle $windowhandle 
Send-AU3Key("I'm in notepad"); 
$windowhandle = Get-AU3WinHandle($windowtitle);
$controlHandle = Get-AU3ControlHandle -WinHandle $windowhandle -Control  "Edit1"
Send-AU3ControlKey -ControlHandle $controlHandle -Key "{ENTER}simulate key strokes - line 1" -WinHandle $windowhandle
Close-AU3Win($windowtitle)
$windowtitlesaveas = "Save As"
$windowhandlesaveas = Get-AU3WinHandle ($windowtitlesaveas)
$controlHandlesaveas = Get-AU3ControlHandle -WinHandle $windowhandlesaveas -Control "Edit1"
$windowhandlesaveas -NewText "sample"
$controlHandlesaveas -Key "sample"
Invoke-AU3ControlClick -Title "Notepad" -Control "Button1" -NumClicks 1 
Wait-AU3WinActive("Save As")
Set-AU3ControlText -Title "Save As" -Control "Edit1" -NewText "sample" 
Send-AU3ControlKey -Title "Save As" -Control "Button1" -Key "{ENTER}"

Ответы [ 2 ]

0 голосов
/ 14 мая 2019

Я думаю, что здесь происходит следующее: Invoke-Command -ComputerName "na18actxdc" -ScriptBlock {D:\NMAutomation\trial_2.ps1} ps1 не выполняется, а просто открывается в процессе блокнота.

Я полагаю, что вам нужно попытаться заставить его запустить PowerShell.

Invoke-Command -ComputerName "na18actxdc" -ScriptBlock {PowerShell.exe -File D:\NMAutomation\trial_2.ps1}

0 голосов
/ 14 мая 2019

С Microsoft :

КАК ЗАПУСТИТЬ СЦЕНАРИЙ НА ДИСТАНЦИОННЫХ КОМПЬЮТЕРАХ

Чтобы запустить локальный сценарий на удаленных компьютерах, используйте параметр FilePath в Invoke-Command.

Например, следующая команда запускает сценарий Sample.ps1 на компьютерах S1 и S2:

1012 * PowerShell *

Invoke-Command -ComputerName S1, S2 -FilePath C: \ Test \ Sample.ps1

Результаты скрипта возвращаются на локальный компьютер. Вам не нужно копировать файлы.

Изменить

  Invoke-Command -ComputerName "na18actxdc" -ScriptBlock {D:\NMAutomation\trial_2.ps1}

до

   Invoke-Command -ComputerName "na18actxdc" -FilePath D:\NMAutomation\trial_2.ps1

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...