|
|
1
2
关于问题的第一部分,您可以使用
错误操作告诉Cmdlet如果出现错误,ErrorVariable将在您选择的变量中放入任何错误(示例中为your variable)。 $?自动变量包含上一个操作的执行状态。如果它是假的,只需检查$yourvariable的内容就可以知道哪里出了问题,并用它做你想做的任何事情(比如在你的案例中把它写在一个文件中)。 您也可以使用
这会将Cmdlet的错误流重定向到您选择的文件… 关于问题的第二部分:$lastexitcode包含最后一个可执行文件的返回代码。 您是否考虑过使用PowerShell2的远程处理功能进行更多控制? 希望有帮助 C语言 |
|
|
2
2
按如下方式使用“尝试并捕获”
|
|
|
3
1
你的问题很多。 以下是我从PSExec之类的控制台应用程序中读取结果的步骤: [System.Diagnostics.ProcessStartInfo]$info = New-Object System.Diagnostics.ProcessStartInfo
$info.WorkingDirectory = "C:\"
$info.UseShellExecute = $false
$info.RedirectStandardOutput = $true
$info.CreateNoWindow = $true
[System.Diagnostics.Process]$proc = [System.Diagnostics.Process]::Start($info)
if (($proc -ne $null) -and ($proc.id -ne 0)) { [void]$proc.WaitForExit($timeOutMs); }
$proc.StandardOutput.ReadToEnd();
注意,这是未经测试的代码,但它来自一些有用的东西,为了简单起见,我做了一些编辑。 现在,您可以处理psexec的文本输出并进行相应的处理。 |
|
|
4
0
我使用PowerShell脚本删除旧文件。这将向屏幕输出一条消息,这同样可以轻松地将消息写入事件日志。 Details here . 可以使用write event log命令写入事件日志。很好的细节 on MSDN 和 TechNet . 出现大量信息 in the search engines 对此也是如此。 |