Geek学校:写你的第一个完整的PowerShell脚本

几个星期前,The Geek向您展示了如何使用命令提示符找到您的计算机上次启动的时间。 在最后一次安装PowerShell的Geek学校时,我们将编写一个可重用的PowerShell命令来做同样的事情。

请务必阅读本系列中的前几篇文章:

编写你的第一个脚本

我们需要做的第一件事是找到一种方法来访问我们寻找的信息。 因为我们处理管理信息,我们可能需要看看使用WMI,它确实有一个名为Win32_OperatingSystem的类,它允许您查看有关操作系统的详细信息,包括上次启动它。

image

现在我们知道我们在哪里可以找到我们寻找的信息,打开ISE并键入以下内容。

Get-WmiObject -Class Win32_OperatingSystem -ComputerName localhost |

Select-Object -Property CSName,LastBootUpTime

注意:我不得不拆分我的代码在两行,以便它所有适合的屏幕截图,但随意键入它在一行。 如果你选择将它分成两行,请确保管道字符是第1行的最后一个字符。

image

现在点击绿色的“运行脚本”按钮或按键盘上的F5键来测试代码。

image

WMI时间可能有点神秘。 我们的意思是,如果你看看LastBootUpTime属性,它说2013-03-19在18:26:21,但由于某些原因,WMI的家伙决定将所有这一切连接到一个单一的字符串。 幸运的是,对于我们,我们不必担心手动解析字符串,因为有一个更简单的方法来做,虽然更高级。 您将需要更改代码的Select-Object部分,如下所示:

Select-Object -Property CSName,@ {n =“Last Booted”;

e = {[Management.ManagementDateTimeConverter] :: ToDateTime($ _。LastBootUpTime)}}

我们在这里做的是创建一个名为“Last Booted”的自定义属性,并指定其值必须是在当前管道对象的LastBootUpTime属性上调用ToDateTime静态方法的结果。 您的代码现在应该如下所示。

image

运行代码现在将产生一个更加可读的上次引导时间。

image

现在我们对脚本的基本功能感到满意,我们需要保存它。 为了简单起见,我们将其保存为以下内容:

C:\ Get-LastBootTime.ps1

image

现在切换到ISE的下半部分并运行以下命令:

C:\ Get-LastBootTime.ps1

image

大! 我们的脚本按预期工作,但是我们的脚本还有一个问题。 我们硬编码了我们想要获得最后引导时间的计算机的名称。 而不是硬编码值,我们应该提供一个参数,以便谁使用脚本可以选择他们运行脚本的计算机。 为此,请转到脚本的顶部并执行以下操作。

帕拉姆
[string] $ ComputerName

然后用$ ComputerName变量替换硬编码的localhost值。 您的脚本现在应该是这样:

image

保存脚本,然后返回到ISE的下半部分,并查看脚本的帮助。

help C:\ Get-LastBootTime.ps1

image

真棒,所以现在我们可以指定我们想要获得上次引导时间使用我们的新ComputerName参数的计算机的名称。 不幸的是,还有一些东西出了问题。 首先,ComputerName参数是可选的,其次,这是我见过的最有帮助的,所以让我们快速修复这些问题。 要使ComputerName参数成为强制性,请将param块的内容更改为以下内容。

[Parameter(Mandatory = $ true)] [string] $ ComputerName

至于做一个更好的帮助文件,最常见的方法是使用基于注释的帮助。 这意味着我们只需在顶部的脚本中添加一个额外的长注释。

<#
。概要
显示最后一次您的PC启动。
。描述
这是一个WMI包装函数,以获取您的PC上次启动的时间。
.PARAMETER ComputerName
要对其运行命令的计算机的名称。
。例
Get-LastBootTime -ComputerName localhost
。链接
www.howtoip.com
#>

一旦做了,你应该得到一个像这样的脚本。

image

让我们现在去看看我们的新帮助文件。

image

啊,看起来很棒! 现在我们的脚本完成了,我们有最后一件事:测试。 为此,我将退出ISE,并回到PowerShell控制台,以便我们可以确保没有异常。

image

如果你从一个简单的一个班轮开始,只是继续建立它像我们在本指南,你会得到它的悬挂在任何时间。 这就是这一次的人们,看到你在下一个安装的Geek学校。

赞 (0)
分享到:更多 ()