PowerShell可以在Windows 10中处理的15个高级任务

对于新手用户而言,PowerShell可能是一个非常令人生畏的前景。在2016年,基于文本的界面有些古怪和古怪的事情-但是精通语言可以帮助您以前所未有的方式来控制计算机。

专家可以使用PowerShell来执行与系统的所有领域有关的各种任务,但是只有掌握了基本知识和大量练习之后,才能精通这种工作。通过了解这15个任务,您可以开始了解PowerShell是什么,并了解其功能的适用范围。

要开始执行这些任务中的任何一个,您需要打开一个提升的PowerShell提示。为此,请在Windows搜索栏中键入Powershell,右键单击相应的结果,然后选择以管理员身份运行

只需在搜索栏中键入PowerShell,然后按 CTRL + SHIFT + ENTER 即可得到相同的结果。

设置日期和时间

有很多设置日期的方法多种多样,但是以下PowerShell命令的简单性使其适合新手。但是,在非您自己的计算机上调整这些参数时,请务必小心-系统时钟对齐不当会对Active Directory环境造成严重破坏。

要开始使用,请打开提升的PowerShell提示符并输入以下命令:

Set-Date -date "12/25/2016 7:30 AM"

按Enter键,您的计算机应该会感觉是圣诞节。然后,您可以通过使用相同的命令将系统返回正确的时间和日期来测试您的学习,也可以通过“设置"应用程序让PC再次自动设置其时间和日期。

在某些情况下在这种情况下,您可能需要调整日期和时间,而不是直接更改日期和时间。为了完成此任务,我们将使用与之前相同的 Set-Date cmdlet,但方法略有不同:

Set-Date (Get-Date).AddDays(2)

上面,您可以看到我们正在运行该命令将检索计算机上当前设置的日期,然后触发另一个将月份中的日期增加到所需值的过程。我们还可以使用 AddHours AddMinutes AddSeconds 来微调此调整,或者使用数字前面的减号返回

验证文件和文件夹

PowerShell命令可以使您轻松检查计算机上是否存在文件和文件夹,而无需花费时间在文件中闲逛资源管理器。使用 Test-Path cmdlet来验证指定路径的末尾是否存在任何问题,这很简单。例如,要在名为Documents的文件夹中找到名为PowerShell.xls的文件,我将使用类似以下的命令(显然,您的路径将根据文件夹层次结构而有所不同):

Test-Path c:\Users\Brad\Documents\PowerShell.xls

您无需知道确切的文件名即可运行扫描。星号可以用作通配符,如果您要搜索特定的文件类型,则非常有用,例如:

Test-Path c:\Users\Brad\Documents\*.xls

一旦您可以准确地键入文件路径,PowerShell可以用于快速有效地重命名文件和文件夹。只需记住使用 Rename-Item cmdlet打开,然后输入现有路径,然后输入所需的名称即可,如下所示:

Rename-Item c:\Users\Brad\Documents\PowerShellisDifficult.xls PowerShellisEasy.xls

使用PowerShell轻松移动文件和文件夹已使用 Rename-Item cmdlet。只需将命令的一部分替换为您将新名称指定为新位置的位置即可:

Move-Item c:\Users\Brad\Documents\PowerShellisEasy.xls c:\Users\Brad\Important Documents

使用我们之前使用的通配符将其合并,然后可以从一个文件夹中快速移动特定类型的文件到另一个:

Move-Item c:\Users\Brad\Documents\*.xls c:\Users\Brad\Important Documents

打开程序

Invoke-Item cmdlet直接从PowerShell提示符下打开应用程序或文件:

Invoke-Item c:\Windows\System32\notepad.exe

但是,只要该应用程序在Windows路径中,就可以通过将其命名为PowerShell来简单地执行以下操作:

notepad

该cmdlet实际上可以更好地用于打开文件,但是事先需要注意的一个小警告。使用 Invoke-Item 初始化文件将在设置为默认程序的任何程序中将其打开,因此请事先进行设置以满足您的需求:

Invoke-Item c:\PCPC.me\Hello.txt

> Invoke-Item cmdlet与我们之前使用的通配符星号结合使用时,确实会发光。在军械库中使用此命令,可以快速打开整个文件夹中的文件:

Invoke-Item c:\PCPC.me\*.txt

读取文本文件

PowerShell基于文本的界面永远不会能够与VLC竞争其可以显示的文件类型数量。但是,它非常适合使用 Get-Content 命令显示.txt文件的内容:

Get-Content c:\PCPC.me\Hello.txt

但是,您可能只想预览文本文件而不是显示整个文档,特别是如果文档特别大的话。在这种情况下,我们可以使用 -totalcount 参数:

Get-Content c:\PCPC.me\Hello.txt -totalcount 5

如上所示,结果仅显示文档的前五行。

您可以使用 Add-Content cmdlet来读取.txt文档的内容,这比上一步还可以:

Add-Content c:\PCPC.me\Hello.txt "written by Brad Jones"

但是,这只会放入添加的文本

此处,您可以使用特殊字符来指定要添加的内容。新行:

Add-Content c:\PCPC.me\Hello.txt "`nwritten by Brad Jones"

在使用PowerShell时,您可能会发现一些更重要的特殊字符足以将其提交到内存中。使用`b将导致退格,`b将产生水平制表符。同时,`将产生单引号,而`将产生双引号。

无论是要查找具有匿名名称的特定文件,还是只想知道多少代码如果在一天的编程过程中设法完成生产,PowerShell提供了一种非常有效的方法来测量文本文件中的行数。使用以下命令:

Get-Content c:\PCPC.me\Hello.txt | Measure Object

现在,我们正在统一使用两个cmdlet,而且,只要深入了解PowerShell,这将变得越来越重要。

安全性和系统管理

如果您的计算机表现出异常行为,则您可能无法访问通常用于诊断问题的渠道。在这样的情况下,知道如何使用PowerShell检索相同的信息可能非常方便。

Get-Service 是值得一记的cmdlet,因为它被称为将会显示计算机上安装的所有服务以及它们的当前状态:

Get-Service

但是,我们可以使用更复杂的命令来规定我们要查看的服务类型:

Get-Service | Where-Object {$_.status -eq "stopped"}

这将仅显示通过检查每个单个对象的状态(在命令中由 $ _ 表示)停止的当前服务。我们可以将已停止替换为正在运行,以接收相反的一组服务。

一旦确定服务是引起问题的原因,我们可以直接从PowerShell重新启动它:

Restart-Service dbupdate

我们还可以使用一个参数,该参数允许我们通过其显示名称来引用该服务,而不是系统使用的可能引起混淆的名称:

Restart-Service -displayname "Dropbox Update Service"

某些服务问题可能无法通过简单的重新启动来解决。如果您的问题是由麻烦的服务导致的,该服务默认在启动时打开,则可以使用PowerShell更改以下设置:

Set-Service dbupdate -startuptype "manual"

根据您要完成的操作,您还可以使用“自动"和“已禁用"代替“手册"一词。

如果某个应用卡在其初始屏幕或无法初始化,则可能会令人沮丧。向Windows 10的过渡着重于应用程序而不是传统程序,这种类型的软件通常不会给用户提供很多解决问题的机会。

但是,PowerShell可以用来为这种类型的解决方案提供解决方案。问题-感谢PCPC.me读者Gary Beaty的提示:

Get-AppXPackage -AllUsers | Foreach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}

这是迄今为止我们使用过的最复杂的命令,如果您不太了解所有内容,请不要灰心元素在起作用。但是,基于对cmdlet,参数等概念的了解以及本文其他地方使用的一些技术,您应该能够尝试至少解压缩上面发生的某些事情。

下一步

这十五种技术只是介绍PowerShell的功能。进一步挖掘其功能将需要一点编码知识,或者至少是学习的意愿–但是花点时间会收获很多。

Microsoft的Windows PowerShell用户手册是一个不错的起点。从那里开始,值得检查PowerShell subreddit。请注意,董事会中的绝大多数用户都是专家,因此一开始您可能会觉得不合常理。但是,这里是查看经验丰富的用户的能力并受到启发来提高您的技能的好地方。

您是否正在寻求PowerShell的帮助?还是准备好并愿意分享您的见解?为什么不加入下面的评论部分中的对话?

标签: 命令提示符 计算机维护 PowerShell