вывод psexec powershell

Я пытаюсь удаленно выполнить скрипт powershell следующим образом:

psexec -i \\host -u user -p pass PowerShell C:\tst\tst.ps1

Исходный код для tst.ps1:

$TempLogFilePath = "$(Get-Date -u "%Y-%m-%d")-LogFileEventLog.log"
Start-Transcript -Path "$TempLogFilePath" -Append
echo (Get-Date –f o)

Stop-Transcript
Exit 0

Когда команда запуска для удаленного выполнения этого скрипта, скрипт находится на удаленном компьютере, на локальном компьютере ничего не выводится. Команда запущена в cmd.exe. Как я могу получить вывод на локальную консоль?


person Shampoo    schedule 24.10.2012    source источник
comment
Существует ли C:\tst\tst.ps1 на удаленном хосте? Разрешено ли выполнение сценария (Get-ExecutionPolicy)?   -  person Ansgar Wiechers    schedule 24.10.2012
comment
Да, скрипт существует, скрипт находится на удаленном компьютере, выполнение разрешено. PsExec v.1.98.   -  person Shampoo    schedule 24.10.2012
comment
Вы пробовали psexec ... powershell -NoLogo -File C:\tst\tst.ps1?   -  person Ansgar Wiechers    schedule 24.10.2012
comment
Как это поможет мне? Он не запускает логотип на powershell, но не помогает мне получать возвращаемые значения на выходе   -  person Shampoo    schedule 24.10.2012
comment
Как насчет PSRemoting? New-PSSession и тому подобное? Вы можете записать стенограмму на удаленную систему и скопировать ее обратно на исходный компьютер.   -  person vonPryz    schedule 24.10.2012
comment
с какой стати вы используете psexec, когда powershell уже имеет возможность удаленного запуска команд?   -  person phuclv    schedule 01.07.2021


Ответы (1)


PsExec.exe \\host -u domain\user -p pass cmd /c "echo . | %SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe C:\WINDOWS\system32\Hello.ps1"

Эта конструкция поможет вам запустить удаленный скрипт powershell, но скрипт должен быть расположен на удаленном компьютере.

и вторая конструкция

Param(
[alias("sp")]
[string]$script_path,
[alias("u")]
[string]$user_name,
[alias("p")]
[string]$password,
[alias("h")]
[string]$host_name
)
$pass = convertto-securestring $password -asplaintext -force
$mycred = new-object -typename System.Management.Automation.PSCredential -argumentlist $user_name,$pass
invoke-command -credential $mycred -computername $host_name -filepath $script_path

но я не знаю, как я могу передать строку аргументов для выполнения удаленного скрипта с параметром

person Shampoo    schedule 29.10.2012