在这个版本的Geek School中,我们将帮助您了解构建在Windows中的强大PowerShell脚本语言,它在IT环境中非常有用。
虽然本系列文章不是围绕考试展开的,但学习PowerShell是作为网络管理员可以做的最重要的事情之一,因此,如果有一件事你想学习,以帮助你的IT职业生涯,那就是它。另外,这很有趣。
PowerShell是微软提供的最强大的自动化工具,它既是shell,又是脚本语言。
请注意,此系列基于PowerShell 3,它与Windows 8和Server 2012一起提供。如果您运行的是Windows 7,请在继续之前下载PowerShell 3更新。
有两种与PowerShell进行即时交互的方式:控制台和集成脚本环境(也称为ISE)。ISE与PowerShell 2附带的可怕版本相比有了很大的改进,可以通过按Win+R键盘组合打开run框,然后键入PowerShell\u ISE并按enter来打开。
正如您所看到的,ISE使用了一个分割视图,这样您可以快速编写脚本,同时仍然可以在ISE的下半部分看到结果。ISE的下半部分(打印脚本结果的地方)也可以用作REPL提示符,与命令提示符非常相似。V3ISE最终在脚本窗格和交互控制台中添加了对intellisense的支持。
或者,您可以使用PowerShell控制台与PowerShell进行交互,这也是我将在本系列的大部分内容中使用的控制台。PowerShell控制台的行为与命令提示符非常相似—您只需输入命令,它就会输出结果。要打开Windows PowerShell控制台,请再次按Win+R键盘组合打开一个运行框,键入PowerShell,然后按enter。
像这样的REPL提示对于即时满足来说是很棒的:输入一个命令就可以得到结果。尽管控制台不提供intellisense,但它确实提供了一种称为tab completion的功能,其功能基本相同—只需开始键入命令,然后按tab键在可能的匹配项之间循环。
在以前版本的PowerShell中,安装Windows时会包含帮助文件。这在很大程度上是一个很好的解决方案,但给我们留下了一个重大的问题。当PowerShell帮助团队不得不停止处理帮助文件时,PowerShell开发人员仍然忙于编写代码和进行更改。这意味着在PowerShell发布时,帮助文件是不正确的,因为它们不包含对代码所做的较新更改。为了解决这个问题,PowerShell 3没有现成的帮助文件,并且包含了一个可更新的帮助系统。这意味着在您做任何事情之前,您都需要下载最新的帮助文件。您可以通过打开PowerShell控制台并运行:
Update-Help
恭喜你运行了你的第一个PowerShell命令!事实上,Update-Help命令有比仅仅运行它更多的选项,要查看它们,我们需要查看命令的帮助。要查看命令的帮助,只需将需要帮助的命令的名称传递给Get help命令的name参数,例如:
Get-Help –Name Update-Help
你可能想知道如何解释所有的文字无论如何,我的意思是,为什么有两个在语法部分下的信息很多,为什么有这么多括号的地方?首先:syntax部分下有两个信息块的原因是它们表示运行命令的不同方式。这些技术上称为参数集,一次只能使用一个(不能混合来自不同集的参数)。在上面的屏幕截图中,您可以看到顶部的参数集有一个SourcePath参数,而底部的参数集没有。原因是,如果您正在从网络上已下载的另一台计算机更新帮助文件,您将使用顶部的参数集(包括SourcePath的参数集),如果您只想从Microsoft获取最新的文件,则无需指定源路径。
为了回答第二个问题,有一个特定的语法帮助文件遵循,这里是:
虽然您应该学习阅读帮助文件语法,但如果您不确定某个特定参数,只需在get help命令的末尾附加–Full,然后向下滚动到parameters部分,在那里它将告诉您有关每个参数的更多信息。
Get-Help –Name Update-Help –Full
关于帮助系统,您最不需要知道的是如何使用它来发现命令,这实际上非常简单。你看,PowerShell几乎在任何地方都接受通配符,所以将它们与Get-Help命令一起使用可以让你轻松地发现命令。例如,我正在寻找处理Windows服务的命令:
Get-Help –Name *service*
当然,所有这些信息可能不是蝙蝠所能提供的,但是相信我,花点时间学习如何使用帮助系统。它随时都会派上用场,即使是那些已经做了多年的高级编剧。
如果不提到安全性,这就不是一个恰当的介绍。PowerShell团队最担心的是,PowerShell会成为脚本小子们最新、最强大的攻击点。他们已经采取了一些安全措施,以确保这不会发生,所以让我们看看他们。
最基本的保护形式来自这样一个事实:PS1文件扩展名(用于表示PowerShell脚本的扩展名)没有在PowerShell主机上注册,实际上是在Notepad上注册的。这意味着如果你双击一个文件,它将打开记事本而不是运行。
其次,不能只输入脚本的名称就从shell运行脚本,必须指定脚本的完整路径。因此,如果要在C驱动器上运行脚本,必须键入:
C:\runme.ps1
或者,如果您已经在C驱动器的根目录下,则可以使用以下命令:
.\runme.ps1
最后,PowerShell有一个叫做执行策略的东西,它可以阻止您运行任何旧脚本。事实上,默认情况下,您不能运行任何脚本,如果希望允许您运行脚本,则需要更改执行策略。有4个值得注意的执行策略:
要查看当前执行策略的设置,请打开PowerShell控制台并键入:
Get-ExecutionPolicy
对于本课程和大多数其他情况,RemoteSigned策略是最好的,因此请继续使用以下命令更改策略。
注意:这需要从提升的PowerShell控制**成。
Set-ExecutionPolicy RemoteSigned
这一次就到此为止了,各位,明天见,我们会有更多的动力地狱的乐趣。
免责声明:PowerShell命令的正确术语是cmdlet,从现在起,我们将使用这个正确的术语。在这个介绍中,把它们称为commands更合适。
如果你有任何问题,可以发推特给我@taybgibb,或者只留下评论。
文件加密和解密可以是一个工作位。但是,使用PowerShell扩展,可以将进程精简为一行命令。为此,我们需要安装Gpg4win和Powershell模块。使用脚本,我们可以自动化文件加密和解密过程。 ...
大多数用户从未听说过PowerShell,更不用说触摸它并试用了。这可能是因为这个名字,听起来像是只有铁杆IT极客才会使用的东西。或者是因为PowerShell的好处还不清楚。可能是因为最初的学习曲线。 ...
Windows PowerShell是一个优秀的配置管理和自动化框架。它由命令行shell和基于.NET的脚本语言组成。管理员使用PowerShell作为管理Windows、Linux和网络客户端的一种手段。 ...
...收件箱分心,Windows桌面上都有一个很有用的工具。它叫PowerShell。 ...
使用Windows10的PowerShellcmdlet,您可以轻松地添加应用程序,以便在启动时自动触发VPN连接。自动化这个任务意味着当你使用某些应用程序时,你甚至不必考虑连接到VPN。 要利用PowerShell中的此功能,如果您还没有VPN服务,则必须...
...多时间。 您可以在两个地方使用chocolate:命令提示符和PowerShell。下面介绍如何在两种环境中安装此软件包管理器,但实际上您只需要其中一种。随便挑你喜欢的。 从命令提示符安装并使用chocolate Chocolatey只有在以管理员身份...
Windows PowerShell具有内置的命令历史记录功能,可提供有关已运行命令的详细信息。与命令提示符一样,PowerShell只记住当前会话的命令历史记录。 如何使用命令行缓冲区 相关:极客学校:学习如何用PowerShell自动化Windows PowerShel...
...可以轻松地重命名一个或多个文件,但使用命令提示符或PowerShell,您还可以执行更多操作。再加上第三方重命名工具,可能性是无穷的。让我们看看每个选项及其工作原理。 在windows资源管理器中重命名多个文件 Windows资源管...
....1和7上执行此操作的几种不同方法。 简单的方法:使用powershell命令 相关:极客学校:学习如何用PowerShell自动化Windows PowerShell是Windows中最强大的工具之一,所以它当然可以做一些简单的事情,比如列出你安装的程序。事实上...
...尝试运行它。这不需要太多时间,可能会有帮助。 向powershell重新注册windows应用商店 如果所有这些都失败了,您可以尝试重新注册Windows应用商店,这是您可以重新安装它。为此,您需要使用PowerShell,这是一种内置于Windows中...