【问题标题】:PowerShell form does not return expected outputPowerShell 表单未返回预期输出
【发布时间】:2020-08-23 21:26:47
【问题描述】:

我正在测试表单创建:

https://gallery.technet.microsoft.com/scriptcenter/How-to-build-a-form-in-7e343ba3

但是,当我将函数中的代码替换为:

    $FilterCert = Get-ChildItem -Path Cert:LocalMachine\* -Recurse | Where-Object { $_.Issuer -Like "*Daddy*" }
    $FilterCert|Format-List PSComputerName, PSParentPath, Subject, Issuer, NotBefore, NotAfter

有趣的是,如果输入下一个代码,我可以看到输出:

    $FilterCert = Get-ChildItem -Path Cert:LocalMachine\* -Recurse | Where-Object { $_.Issuer -Like "*Daddy*" }
    $FilterCert|Remove-Item -WhatIf

这是什么魔法?

干杯

【问题讨论】:

  • 请显示周围的代码(事件处理程序或函数定义+调用它的代码)
  • 更改格式列表以选择?

标签: forms powershell


【解决方案1】:

如果您希望它的行为方式与示例相同,则需要将其通过管道传送到 Out-Gridview,就像示例中的 Service 函数一样:

Show-CertificateList
{
    $FilterCert = Get-ChildItem -Path Cert:LocalMachine\* -Recurse | Where-Object { $_.Issuer -Like "*Daddy*" }
    $FilterCert |Select-Object PSComputerName, PSParentPath, Subject, Issuer, NotBefore, NotAfter |Out-GridView
}

然后更新调用事件处理程序:

$Okbutton.Add_Click({Show-CertificateList})

如果您想要常规控制台输出结果,请使用 Out-Host 代替 Out-GridView

【讨论】:

  • 有没有办法在控制台中获取输出?例如。成绩单现在是空的。
  • @spricer 是的,只需通过管道发送到 Out-Host 而不是 Out-Gridview :)
猜你喜欢
  • 1970-01-01
  • 2020-02-08
  • 2015-06-16
  • 1970-01-01
  • 2021-08-27
  • 2011-04-12
  • 1970-01-01
  • 1970-01-01
  • 2020-07-28
相关资源
最近更新 更多