极客学校:学习如何用powershell自动化windows

在这个版本的Geek School中,我们将帮助您了解构建在Windows中的强大PowerShell脚本语言,它在IT环境中非常有用。...

极客学校:学习如何用powershell自动化windows

在这个版本的Geek School中,我们将帮助您了解构建在Windows中的强大PowerShell脚本语言,它在IT环境中非常有用。

虽然本系列文章不是围绕考试展开的,但学习PowerShell是作为网络管理员可以做的最重要的事情之一,因此,如果有一件事你想学习,以帮助你的IT职业生涯,那就是它。另外,这很有趣。

介绍

PowerShell是微软提供的最强大的自动化工具,它既是shell,又是脚本语言。

请注意,此系列基于PowerShell 3,它与Windows 8和Server 2012一起提供。如果您运行的是Windows 7,请在继续之前下载PowerShell 3更新。

接控制台和ise

有两种与PowerShell进行即时交互的方式:控制台和集成脚本环境(也称为ISE)。ISE与PowerShell 2附带的可怕版本相比有了很大的改进,可以通过按Win+R键盘组合打开run框,然后键入PowerShell\u ISE并按enter来打开。

极客学校:学习如何用powershell自动化windows

正如您所看到的,ISE使用了一个分割视图,这样您可以快速编写脚本,同时仍然可以在ISE的下半部分看到结果。ISE的下半部分(打印脚本结果的地方)也可以用作REPL提示符,与命令提示符非常相似。V3ISE最终在脚本窗格和交互控制台中添加了对intellisense的支持。

极客学校:学习如何用powershell自动化windows

极客学校:学习如何用powershell自动化windows

或者,您可以使用PowerShell控制台与PowerShell进行交互,这也是我将在本系列的大部分内容中使用的控制台。PowerShell控制台的行为与命令提示符非常相似—您只需输入命令,它就会输出结果。要打开Windows PowerShell控制台,请再次按Win+R键盘组合打开一个运行框,键入PowerShell,然后按enter。

极客学校:学习如何用powershell自动化windows

像这样的REPL提示对于即时满足来说是很棒的:输入一个命令就可以得到结果。尽管控制台不提供intellisense,但它确实提供了一种称为tab completion的功能,其功能基本相同—只需开始键入命令,然后按tab键在可能的匹配项之间循环。

极客学校:学习如何用powershell自动化windows

极客学校:学习如何用powershell自动化windows

使用帮助系统

在以前版本的PowerShell中,安装Windows时会包含帮助文件。这在很大程度上是一个很好的解决方案,但给我们留下了一个重大的问题。当PowerShell帮助团队不得不停止处理帮助文件时,PowerShell开发人员仍然忙于编写代码和进行更改。这意味着在PowerShell发布时,帮助文件是不正确的,因为它们不包含对代码所做的较新更改。为了解决这个问题,PowerShell 3没有现成的帮助文件,并且包含了一个可更新的帮助系统。这意味着在您做任何事情之前,您都需要下载最新的帮助文件。您可以通过打开PowerShell控制台并运行:

Update-Help

极客学校:学习如何用powershell自动化windows

极客学校:学习如何用powershell自动化windows

恭喜你运行了你的第一个PowerShell命令!事实上,Update-Help命令有比仅仅运行它更多的选项,要查看它们,我们需要查看命令的帮助。要查看命令的帮助,只需将需要帮助的命令的名称传递给Get help命令的name参数,例如:

Get-Help –Name Update-Help

极客学校:学习如何用powershell自动化windows

你可能想知道如何解释所有的文字无论如何,我的意思是,为什么有两个在语法部分下的信息很多,为什么有这么多括号的地方?首先:syntax部分下有两个信息块的原因是它们表示运行命令的不同方式。这些技术上称为参数集,一次只能使用一个(不能混合来自不同集的参数)。在上面的屏幕截图中,您可以看到顶部的参数集有一个SourcePath参数,而底部的参数集没有。原因是,如果您正在从网络上已下载的另一台计算机更新帮助文件,您将使用顶部的参数集(包括SourcePath的参数集),如果您只想从Microsoft获取最新的文件,则无需指定源路径。

为了回答第二个问题,有一个特定的语法帮助文件遵循,这里是:

  • 参数名及其类型周围的方括号表示它是可选参数,如果没有它,命令将正常工作。
  • 参数名称周围的方括号表示参数是位置参数。
  • 尖括号中参数右边的东西告诉您参数所期望的数据类型。

虽然您应该学习阅读帮助文件语法,但如果您不确定某个特定参数,只需在get help命令的末尾附加–Full,然后向下滚动到parameters部分,在那里它将告诉您有关每个参数的更多信息。

Get-Help –Name Update-Help –Full

极客学校:学习如何用powershell自动化windows

关于帮助系统,您最不需要知道的是如何使用它来发现命令,这实际上非常简单。你看,PowerShell几乎在任何地方都接受通配符,所以将它们与Get-Help命令一起使用可以让你轻松地发现命令。例如,我正在寻找处理Windows服务的命令:

Get-Help –Name *service*

极客学校:学习如何用powershell自动化windows

当然,所有这些信息可能不是蝙蝠所能提供的,但是相信我,花点时间学习如何使用帮助系统。它随时都会派上用场,即使是那些已经做了多年的高级编剧。

安全

如果不提到安全性,这就不是一个恰当的介绍。PowerShell团队最担心的是,PowerShell会成为脚本小子们最新、最强大的攻击点。他们已经采取了一些安全措施,以确保这不会发生,所以让我们看看他们。

最基本的保护形式来自这样一个事实:PS1文件扩展名(用于表示PowerShell脚本的扩展名)没有在PowerShell主机上注册,实际上是在Notepad上注册的。这意味着如果你双击一个文件,它将打开记事本而不是运行。

其次,不能只输入脚本的名称就从shell运行脚本,必须指定脚本的完整路径。因此,如果要在C驱动器上运行脚本,必须键入:

C:\runme.ps1

或者,如果您已经在C驱动器的根目录下,则可以使用以下命令:

.\runme.ps1

最后,PowerShell有一个叫做执行策略的东西,它可以阻止您运行任何旧脚本。事实上,默认情况下,您不能运行任何脚本,如果希望允许您运行脚本,则需要更改执行策略。有4个值得注意的执行策略:

  • 受限:这是PowerShell中的默认配置。此设置意味着无论脚本的签名如何,都不能运行任何脚本。使用此设置,唯一可以在PowerShell中运行的是单个命令。
  • AllSigned:此设置不允许脚本在PowerShell中运行。脚本必须具有来自可信发布者的关联数字签名。在从受信任的发布者运行脚本之前,将出现一个提示。
  • RemoteSigned:此设置允许运行脚本,但要求从Internet下载的脚本和配置文件具有来自受信任发布者的关联数字签名。从本地计算机运行的脚本不需要签名。在运行脚本之前没有提示。
  • 无限制:这允许运行未签名的脚本,包括从Internet下载的所有脚本和配置文件。这将包括来自Outlook和Messenger的文件。这里的风险是运行没有任何签名或安全性的脚本。我们再次建议您不要使用此设置。

要查看当前执行策略的设置,请打开PowerShell控制台并键入:

Get-ExecutionPolicy

极客学校:学习如何用powershell自动化windows

对于本课程和大多数其他情况,RemoteSigned策略是最好的,因此请继续使用以下命令更改策略。

注意:这需要从提升的PowerShell控制**成。

Set-ExecutionPolicy RemoteSigned

极客学校:学习如何用powershell自动化windows

这一次就到此为止了,各位,明天见,我们会有更多的动力地狱的乐趣。


免责声明:PowerShell命令的正确术语是cmdlet,从现在起,我们将使用这个正确的术语。在这个介绍中,把它们称为commands更合适。


如果你有任何问题,可以发推特给我@taybgibb,或者只留下评论。

  • 发表于 2021-04-11 23:23
  • 阅读 ( 195 )
  • 分类:互联网

你可能感兴趣的文章

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

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

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

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

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

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

如何在linux上安装和使用powershell

Windows PowerShell是一个优秀的配置管理和自动化框架。它由命令行shell和基于.NET的脚本语言组成。管理员使用PowerShell作为管理Windows、Linux和网络客户端的一种手段。 ...

  • 发布于 2021-03-16 02:34
  • 阅读 ( 303 )

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

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

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

如何在Windows10中自动连接到特定应用的vpn

使用Windows10的PowerShellcmdlet,您可以轻松地添加应用程序,以便在启动时自动触发VPN连接。自动化这个任务意味着当你使用某些应用程序时,你甚至不必考虑连接到VPN。 要利用PowerShell中的此功能,如果您还没有VPN服务,则必须...

  • 发布于 2021-04-02 15:58
  • 阅读 ( 520 )

如何用巧克力糖将linux风格的apt-get安装带到windows上

...多时间。 您可以在两个地方使用chocolate:命令提示符和PowerShell。下面介绍如何在两种环境中安装此软件包管理器,但实际上您只需要其中一种。随便挑你喜欢的。 从命令提示符安装并使用chocolate Chocolatey只有在以管理员身份...

  • 发布于 2021-04-07 10:34
  • 阅读 ( 195 )

如何在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上创建已安装程序的列表

....1和7上执行此操作的几种不同方法。 简单的方法:使用powershell命令 相关:极客学校:学习如何用PowerShell自动化Windows PowerShell是Windows中最强大的工具之一,所以它当然可以做一些简单的事情,比如列出你安装的程序。事实上...

  • 发布于 2021-04-09 18:20
  • 阅读 ( 179 )

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

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

  • 发布于 2021-04-09 18:36
  • 阅读 ( 213 )
zdqd1245689
zdqd1245689

0 篇文章

相关推荐