从powershell启动PsExec的日志记录输出

从powershell启动PsExec的日志记录输出,powershell,logging,psexec,Powershell,Logging,Psexec,我正在从powershell启动PsExec,它工作正常。太好了。但我不能让它记录任何东西。它创建了一个空文件 $InstallerFolder = "\\dc01\e" $Domain = "domain" $DomainUser = "admin" $Password = "password" $nodes = Get-Content "$InstallerFolder\Side-Scripts\nodes.txt" foreach ($node in $nodes) { $Argu

我正在从powershell启动PsExec,它工作正常。太好了。但我不能让它记录任何东西。它创建了一个空文件

$InstallerFolder = "\\dc01\e"
$Domain = "domain"
$DomainUser = "admin"
$Password = "password"



$nodes = Get-Content "$InstallerFolder\Side-Scripts\nodes.txt"

foreach ($node in $nodes) {
$Arguments = @()
$Arguments += "\\$node"
$Arguments += "-u"
$Arguments += "$Domain\$DomainUser"
$Arguments += "-p"
$Arguments += "$Password"
$Arguments += "-h"
$Arguments += "`"$InstallerFolder\Side-Scripts\start.bat`""
$Arguments += ">>`"$InstallerFolder\logs\$node.txt`""
$Arguments += "-n"
$Arguments += "120"

Start-Process -Filepath "$InstallerFolder\Side-Scripts\PsExec.exe" $Arguments -NoNewWindow


}
exit;
我也试过了 1> 2> > 同样的结果


提前感谢。

您可以尝试将重定向的输出发送到变量,然后将该输出发送到如下所示的文件,而不是将重定向放在psexec行中

$InstallerFolder = "\\dc01\e"
$Domain = "domain"
$DomainUser = "admin"
$Password = "password"

$psexec = "$InstallerFolder\Side-Scripts\PsExec.exe"

$nodes = Get-Content "$InstallerFolder\Side-Scripts\nodes.txt"

foreach ($node in $nodes) {
    $commandOutput = ((&$psexec \\$node `"$InstallerFolder\Side-Scripts\start.bat`" -u $Domain\$DomainUser -p $Password -h -n 120) | Out-String)
    $commandOutput | out-file "$InstallerFolder\logs\$node.txt"
}

您是否尝试过启动流程的-redirectstandardoutput参数?谢谢。但这会给我powershell的输出,不是吗?我需要psexec生成的输出。没有时间进行测试,但是如果在psexec执行后需要输出,那么这可能会起作用:$output=Start Process-Filepath$InstallerFolder\Side Scripts\psexec.exe$Arguments-nonewindow;写入主机$outputNah,仍然只是powershell输出。它将为您提供powershell输出是什么意思-重定向标准输出为您提供通过标准输出接收的输出。。。试一试,如果它不能满足您的需求,那么您必须澄清并提供样品。谢谢您,并对延误表示歉意。文件已创建,但为空。