【问题标题】:How to format output in Posh Server (Powershell web server)?如何在 Posh Server(Powershell Web 服务器)中格式化输出?
【发布时间】:2013-10-02 16:06:50
【问题描述】:

我目前正在尝试使用 Powershell Web 服务器 PoSH (http://poshserver.net/) 来获取一些管理报告。但我不知道如何格式化输出。

从一开始:我使用默认快捷方式启动控制台,并具有管理员权限。我输入Import-Module PoSHServer,然后输入Start-PoSHServer。 Web 服务器启动,然后我创建一个简单的 index.ps1 文件,在正文部分只有一行代码:$(command)。

例如,我想使用Get-Service Mpssvc 命令,但我得到的是:

System.ServiceProcess.ServiceController

我试试Get-Service MpsSvc | Select Name,Status。输出:

@{Name=MpsSvc; Status=Running}

对于 cmdlet Get-Process 也是如此,我有一个包含进程列表的输出,但它看起来像这样:System.Diagnostics.Process (AcroRd32) ...

但是,一些 cmlet 就像 Get-Date(在 Posh 演示网页中使用)一样工作正常并且具有“正常”输出。

我阅读了文档,但没有任何示例可以帮助我。

如何编写 powershell 代码以获得“干净”和类似控制台的输出?

【问题讨论】:

  • Get-Service -Name "MpsSvc" 给你什么输出?
  • 同样的输出:System.ServiceProcess.ServiceController
  • 还有其他服务,例如lmhostsNetlogon 等?一样的输出?尝试以管理员身份运行。
  • 其他服务的输出相同。不带参数的Get-Service cmdlet 返回System.ServiceProcess.ServiceController 的列表。关于权限,无论如何都必须以管理员权限启动网络服务器。
  • 这一定是控制台问题。 Get-Service 似乎返回了正确的类型和对象,因为您可以选择属性并将它们作为哈希表返回。控制台似乎不知道如何解释它们。你是如何开始使用 powershell 的?尝试从 cmd 启动它。另外,afais,这与 poshserver 无关:Get-ServiceGet-Process 默认在 powershell 中加载。所以我没有想法......

标签: powershell poshserver


【解决方案1】:

我昨天刚下载并安装了 Posh-Server 后阅读了这篇文章。

如果您希望输出看起来像网页中的控制台,那么您可能从错误的角度看待这个问题,您需要考虑字符串而不是控制台。在示例中,您的代码应该在此处的字符串中运行。所以我在这里得到了提示,标准控制台格式化程序不适用,豪华服务器将使用它想要的任何东西将您返回的对象转换为字符串!。您的代码输出将使用它认为适用的任何格式化程序转换为字符串,除非您明确返回一个字符串 - 示例脚本正确地执行了该操作。所以在控制台上试试这个

get-process "power*" | out-string -width 80

然后在您的豪华服务器脚本中尝试。 你可能真的想要这个:

Get-Service MpsSvc | Select Name,Status | out-string -width 120

希望有所帮助 - 我认为这个项目中缺少示例是一件好事,因为这确实是一个非常简单的 Web 服务器;在你开始之前需要大量的概念思考:)。

【讨论】:

  • 谢谢,它有效。我认为 PoshServer 更容易,但在看到之后,我想知道还有哪些其他解决方案可以为 Powershell Admin 脚本提供 Web 界面。也许是 Poshboard...
猜你喜欢
  • 1970-01-01
  • 2016-01-26
  • 2022-07-20
  • 1970-01-01
  • 2023-01-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多