Power-Shell get-service 命令行 - 如何扩展服务状态的可能值

Power-Shell get-service 命令行 - 如何扩展服务状态的可能值

如果我运行它,get-service它可能会返回不同的状态(0-4/正在运行、已停止、正在停止、正在运行)。我可以通过发出 PowerShell 命令行来扩展状态的可能值列表吗?

我尝试使用类似的方法来做到这一点| select $.status -Expand property,但无法获取该信息。

我想知道如何这样做(我知道我可以在文档中找到可能的值列表)。我需要在脚本的后续步骤的条件中使用这些值,并且我想确保我涵盖了所有可能返回的值。

答案1

Get-Service调用 .Net 并使用类中的构造函数创建对象System.ServiceProcess.ServiceController。您可以通过将 cmdlet 管道化来找出数据的“类型”,如下Get-Member所示:

Get-Service | Get-Member

Get-Member命令实际上是枚举 Get-Service 创建的对象的方法和属性以及它的 TypeName。输入命令后您可以立即看到 TypeName。

该 TypeName 对应于 .Net 类,然后您可以谷歌搜索(不是真的)。​​您必须仔细查看 msdn 页面,这需要对面向对象编程有基本的了解(我知道,又一次谷歌搜索)。最终您应该找到ServiceControllerStatus 枚举列出所有可能的值描述的页面。

返回的值实际上是整数,但 .Net 很贴心地将这些值转换为我们可以理解的内容。希望如果您稍微练习一下这个过程,您将能够应用相同的方法来查找 powershell 中其他对象的信息。

相关内容