极客学校:写你的第一个完整的powershell脚本

几周前,Geek向您展示了如何使用命令提示符来查找您的计算机上一次启动的时间。在上一次安装Geek School for PowerShell时,我们将编写一个可重用的PowerShell命令来完成同样的任务。...

极客学校:写你的第一个完整的powershell脚本

几周前,Geek向您展示了如何使用命令提示符来查找您的计算机上一次启动的时间。在上一次安装Geek School for PowerShell时,我们将编写一个可重用的PowerShell命令来完成同样的任务。

请务必阅读本系列之前的文章:

  • 了解如何使用PowerShell自动化Windows
  • 学习在PowerShell中使用cmdlet
  • 学习如何在PowerShell中使用对象
  • 在PowerShell中学习格式化、过滤和比较
  • 学习在PowerShell中使用远程处理
  • 使用PowerShell获取计算机信息
  • 在PowerShell中使用集合
  • 了解如何在PowerShell中使用作业
  • 了解如何扩展PowerShell
  • 学习PowerShell变量、输入和输出

写你的第一个剧本

我们需要做的第一件事是找到一种方法来获取我们所寻找的信息。因为我们处理的是管理信息,所以我们可能需要研究一下使用WMI,它确实有一个名为Win32\u OperatingSystem的类,允许您查看有关操作系统的详细信息,包括上次启动的时间。

极客学校:写你的第一个完整的powershell脚本

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

Get-WmiObject -Class Win32_OperatingSystem –ComputerName localhost |

Select-Object -Property CSName,LastBootUpTime

注意:我不得不把代码分成两行,这样就可以把所有的代码都放进屏幕截图中,但是可以随意在一行中输入。如果选择将其拆分为两行,请确保管道字符是第1行的最后一个字符。

极客学校:写你的第一个完整的powershell脚本

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

极客学校:写你的第一个完整的powershell脚本

WMI时间可能有点神秘。我们的意思是,如果你看一下LastBootUpTime属性,它显示2013-03-19在18:26:21,但是出于某种原因,WMI人员决定将所有这些连接到一个字符串中。幸运的是,我们不必担心手动解析字符串,因为有一种更简单的方法,尽管更高级。您需要将代码的“选择对象”部分更改为如下所示:

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

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

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

极客学校:写你的第一个完整的powershell脚本

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

极客学校:写你的第一个完整的powershell脚本

既然我们对脚本的基本功能感到满意,就需要保存它。为简单起见,我们将其另存为:

C:\Get-LastBootTime.ps1

极客学校:写你的第一个完整的powershell脚本

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

C:\Get-LastBootTime.ps1

极客学校:写你的第一个完整的powershell脚本

太好了!我们的脚本按预期工作,但是脚本仍然存在一个问题。我们硬编码了我们想要得到最后一次启动时间的计算机的名称。我们应该提供一个参数,这样无论是谁使用脚本,都可以选择运行脚本的计算机,而不是硬编码值。要做到这一点,请转到脚本的顶部并执行以下操作。

param( [string]$ComputerName )

然后用$ComputerName变量替换硬编码的localhost值。您的脚本现在应该如下所示:

极客学校:写你的第一个完整的powershell脚本

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

help C:\Get-LastBootTime.ps1

极客学校:写你的第一个完整的powershell脚本

太棒了,现在我们可以指定要使用新的ComputerName参数获得上次启动时间的计算机的名称。不幸的是,仍然有一些事情是错误的。首先,ComputerName参数是可选的,其次,这是我见过的最难看的帮助,所以让我们快速解决这些问题。要使ComputerName参数成为必需参数,请将param块的内容更改为以下内容。

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

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

<# .SYNOPSIS Shows when last your PC started up. .DESCRIPTION This is a WMI wrapper function to get the time that your PC last started up. .PARAMETER ComputerName The name of the Computer you want to run the command against. .EXAMPLE Get-LastBootTime -ComputerName localhost .LINK www.tl80.cn #>

一旦所有这些都完成了,你应该得到这样一个脚本。

极客学校:写你的第一个完整的powershell脚本

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

极客学校:写你的第一个完整的powershell脚本

啊,看起来太好了!现在我们的脚本已经完成了,我们还有最后一件事要做:测试。为此,我将退出ISE并返回PowerShell控制台,以便确保没有异常。

极客学校:写你的第一个完整的powershell脚本

如果你从一个简单的一行开始,就像我们在本指南中所做的那样继续构建它,你将很快掌握它的窍门。这一次就到此为止,各位,下次安装极客学校时再见。

  • 发表于 2021-04-11 22:17
  • 阅读 ( 159 )
  • 分类:互联网

你可能感兴趣的文章

powershell foreach、while和其他循环的工作原理

学习编程的关键第一步是使用循环。谢天谢地,PowerShell将随着您的技能不断增长。 ...

  • 发布于 2021-03-11 23:17
  • 阅读 ( 443 )

使用此powershell脚本在windows中自动执行文件加密

文件加密和解密可以是一个工作位。但是,使用PowerShell扩展,可以将进程精简为一行命令。为此,我们需要安装Gpg4win和Powershell模块。使用脚本,我们可以自动化文件加密和解密过程。 ...

  • 发布于 2021-03-13 21:58
  • 阅读 ( 346 )

使用powershell而不是批处理脚本的5个原因

大多数用户从未听说过PowerShell,更不用说触摸它并试用了。这可能是因为这个名字,听起来像是只有铁杆IT极客才会使用的东西。或者是因为PowerShell的好处还不清楚。可能是因为最初的学习曲线。 ...

  • 发布于 2021-03-15 16:49
  • 阅读 ( 281 )

7个简单的windows脚本,为您节省时间和精力

... 使用powershell编写脚本 ...

  • 发布于 2021-03-15 21:37
  • 阅读 ( 281 )

如何使用windows powershell发送电子邮件

...收件箱分心,Windows桌面上都有一个很有用的工具。它叫PowerShell。 ...

  • 发布于 2021-03-17 17:00
  • 阅读 ( 424 )

如何轻松地从Windows10中删除臃肿软件

...去除。也有一些不同的删除选项:使用传统的卸载、使用PowerShell命令和第三方安装程序。 ...

  • 发布于 2021-03-22 17:00
  • 阅读 ( 367 )

如何在windows 10上安装powershell 7

微软于2020年3月4日宣布PowerShell 7.0。这是PowerShell、Microsoft跨平台命令行shell和脚本语言的最新主要更新。下面是什么新的,以及如何在Windows PC上安装它。 powershell 7有什么新功能? 最新版本PowerShell 7是在以前的PowerShell Core 6.1基...

  • 发布于 2021-04-02 11:09
  • 阅读 ( 283 )

如何在windows powershell中使用命令历史记录

Windows PowerShell具有内置的命令历史记录功能,可提供有关已运行命令的详细信息。与命令提示符一样,PowerShell只记住当前会话的命令历史记录。 如何使用命令行缓冲区 相关:极客学校:学习如何用PowerShell自动化Windows PowerShel...

  • 发布于 2021-04-08 03:50
  • 阅读 ( 281 )

如何在windows中批量重命名多个文件

...可以轻松地重命名一个或多个文件,但使用命令提示符或PowerShell,您还可以执行更多操作。再加上第三方重命名工具,可能性是无穷的。让我们看看每个选项及其工作原理。 在windows资源管理器中重命名多个文件 Windows资源管...

  • 发布于 2021-04-08 21:05
  • 阅读 ( 207 )

如何修复windows应用商店中卡住的下载

...尝试运行它。这不需要太多时间,可能会有帮助。 向powershell重新注册windows应用商店 如果所有这些都失败了,您可以尝试重新注册Windows应用商店,这是您可以重新安装它。为此,您需要使用PowerShell,这是一种内置于Windows中...

  • 发布于 2021-04-09 18:36
  • 阅读 ( 212 )
roy960864
roy960864

0 篇文章

相关推荐