可提高windows管理技能的powershell cmdlet

Powershell是命令行工具和脚本语言的等价部分。它使您能够通过您用来管理计算机的相同命令使计算机自动化。...

Powershell是一个完美的方式,一个新的编码器开始在Windows上。Powershell是命令行工具和脚本语言的等价部分。它使您能够通过您用来管理计算机的相同命令使计算机自动化。如果您有一个现代的Windows系统,那么您已经有了Powershell。它的大多数用途都是以Windows为中心的,但您也可以在Mac或Linux机器上安装Powershell。

powershell-cmdlets

使用powershell

有两种方法可以使用Powershell。有一个基本的命令行窗口,用于运行命令或调用预先编写的脚本。然后是ISE,它将CLI窗口与基本开发环境结合起来。使用它,您可以编写和测试脚本。

ISE有一个可搜索的命令列表,您可以在不打开文件的情况下使用其终端窗口。命令列表允许您构造并**命令。如果您正在进行更高级的开发,请安装Microsoft的Visual Studio代码。代码包括对Git版本控制和其他语言的支持。

powershell command line

Powershell的独特之处在于它完全由命令构建,微软称之为cmdlet。如果您使用命令行或编写复杂的脚本,则这些命令是相同的。因此,当您使用这些命令时,您可以考虑如何将它们串在一起以创建第一个脚本。

基础知识:获取命令、获取帮助、获取成员

所有Powershell命令都采用动词-名词的形式。动词通常是:Get、Set和New。

Get命令允许您查看所有可用的命令。在运行Get命令时,您会看到有大量以这些命令开头的命令。

深入研究cmdlet的名称,您会发现它们都具有相似的结构。您可以按名称调用它们,就像使用Get命令一样。使用参数会改变您获得的信息。但是,如果您只使用过带有默认选项的命令,您如何找到如何使用高级参数?

powershell get-help

将Get-Help cmdlet与Get命令一起使用可显示有关cmdlet的详细信息。我们使用具有以下语法的cmdlet:

Get-Help Get-Command

然后您将看到有关参数的基本信息。如果要查看参数详细信息和一些用法示例,请添加-Full参数。

如果只想查看示例,可以运行:

Get-Help Get-Command -Examples

此cmdlet仅返回帮助文件中的示例。这些例子很有帮助,因为它们包括描述。此帮助文本解释了cmdlet和参数在运行时的作用。

help window

如果要将帮助文件弹出到单独的窗口中,可以使用-ShowWindow。所以如果你跑:

Get-Help Get-Command -ShowWindow

Powershell弹出一个包含完整帮助文件的窗口。您不需要在这里使用Full参数,因为窗口会拉取完整的文章。

随着Powershell越来越高级,您会发现使用get Member的频率越来越高。这是一种查看返回数据中哪些字段可用以及可以运行的其他方法的简单方法。通常,cmdlet会有一个-Property参数,允许您调用它们。

使用文件:get childitem、remove item、move item、copy item

现在您已经了解了cmdlet的工作方式以及如何获得帮助,让我们进行一些更改。可以使用get ChildItem命令获取任何文件夹的内容。例如,可以使用驱动器号获取整个驱动器的文件。输入:

Get-ChildItem E:\

缩写为:

Get-ChildItem -Path E:\

运行此命令时,会得到一个文件列表,其中包含上次写入时间、长度属性下的大小、名称和模式。模式是文件或文件夹的属性。可能的条目包括:

  • 只读
  • 隐藏
  • 系统
  • 号码簿
  • 档案文件
  • 装置
  • 正常
  • 暂时的
  • 稀疏文件
  • 重分析点
  • 压缩的
  • 离线
  • 未索引内容
  • 加密的

如果要获取路径中所有子目录的内容,则需要使用-Recurse参数。那就跑吧:

Get-ChildItem -Path E:\ -Recurse

您的文件将作为路径中每个文件夹的单独列表显示。

powershell get-childitem

要限制返回的数据,可以使用几个不同的参数:-File、-Hidden和-ReadOnly。如果要过滤掉文件名,可以在Path参数中使用通配符。要返回目录中的所有.doc文件,请输入:

Get-ChildItem -Path E:\*.doc

再次添加-递归,如果你想从所有的子文件夹以及。

如果要删除文件,请使用:

Remove-Item -Path E:\OldFile.txt

要跳过确认每个文件,请添加参数-Confirm$false(Powershell有两个布尔值常量:$true和$false)。要强制删除只读或隐藏文件,请使用-force参数。

移动文件同样简单。要将所有内容从闪存驱动器移动到文件夹中的本地驱动器,请使用:

Move-Item -Path E:\* -Destination C:\FlashDriveArchive

您还可以在路径中命名单个文件以仅移动该文件。要复制而不是移动文件,请使用与copy-Item cmdlet相同的语法。

监控和使用流程和服务

每个Windows用户都知道任务管理器。但是,有一种更快的方法可以从Powershell中查看当前正在运行的进程,即Get Process。如果您想知道此表中所有条目的含义,请使用管道命令获取成员。输入cmdlet:

Get-Process | Get-Member

Get成员输出与Get进程关联的方法和属性的列表。上面的信息是你感兴趣的。你可以看到各种类型的内存都有别名。

powershell get-process

我们还可以从这个输出中看到,我们可以获得Product属性,从而为流程提供更友好的名称。让我们更改输出,以便它有更好的信息供我们使用:

Get-Process | Select-Object Product, NPM, CPU, Name, ID | Sort-Object CPU -Descending

(下一节将提供有关“选择对象”和“排序对象”的详细信息。)

现在您已经从Get Process命令获得了ID,可以使用stop-Process cmdlet停止它。因此,如果您发现Chrome进程占用了您所有的资源,请在前面的命令中查找ID。然后,运行:

Stop-Process -ID 45960

将49560替换为资源占用者的ID。

使用文件路径,可以使用Powershell启动进程。要启动Chrome,请运行以下命令:

Start-Process -Filepath "C:\Program Files (x86) GoogleChromeApplicationchrome.exe"

(由于空格的原因,文件路径周围需要引号。)-ArgumentList参数允许您将命令行选项传递给应用程序。对于Chrome,您可以使用--Incognito标志强制它以匿名模式启动。整个cmdlet是:

Start-Process -Filepath "C:\Program Files (x86) GoogleChromeApplicationchrome.exe" -ArgumentList "--incognito"

powershell get-service

您可以通过服务来完成大多数相同的事情。“获取服务”显示计算机上运行的所有服务的列表。与启动和停止服务相同,您可以使用启动服务和停止服务。

使用数据:排序对象,选择对象,其中对象

当您使用cmdlet中的数据时,它可能并不总是您想要的顺序。在这些情况下,您需要使用Sort对象。您可以对创建的变量调用Sort对象,但它主要由另一个cmdlet管道使用。在上面的例子中,我们通过管道将一个对象的输出传递给另一个对象并对其进行排序。让我们创建一个由三个随机数组成的数组,并通过管道对对象进行排序。

括号里的任何东西都先运行。创建一个简单数组:

$(Get-Random), $(Get-Random), $(Get-Random)

一定要注意分隔这些值的逗号。所以要看到随机数排序运行:

$(Get-Random), $(Get-Random), $(Get-Random) | Sort-Object

如果要反转此命令,cmdlet将从最小值输出到最大值,并按降序添加。

powershell sort-object

通过管道cmdlet获取成员时,属性多于默认输出。可以使用“选择对象”来选择特定的特性。

就像Sort Object一样,您可以通过管道cmdlet使用Select Object。例如,要生成服务及其状态使用表:

Get-Service | Select-Object DisplayName, Status

虽然输出所有这些数据很好,但如果您只想看到特定的数据呢?Get ChildItem有一些内置的筛选,但大多数命令没有。在这些情况下,使用Where对象。

powershell where-object

再次返回到服务,这一次您只会得到正在运行的服务。输入cmdlet:

Get-Service | Where-Object Status -eq "Running"

比较中的-eq是=的Powershell。在Powershell中,可以使用字母组合执行比较:

  • 等式:等于
  • ne:不相等
  • lt:小于
  • gt:大于
  • ge:大于或等于
  • le:小于或等于
  • like:在通配符比较中使用like

格式帮助:格式表和格式列表。

对于这些不同的cmdlet,大多数输出都是表格式的。这将以带有标题的行和列显示数据。要单独显示列出的条目及其属性,请通过管道将cmdlet设置为列表格式。

powershell format-list

有时您的输出对于Powershell窗口来说太宽了。当这种情况发生时,Powershell会强制它进入一个列表输出。为了确保将其保留在表格格式中,请将输出管道化为表格格式。

从命令行到脚本:下一步

一旦您习惯了,编写脚本就是在文本文件中输入cmdlet并保存它。如果你对尝试编写脚本感到紧张,不要紧张。Microsoft在每个cmdlet上都有大量的文档。这超出了已经很长的帮助文档,所以一定要查看Technet[不再可用]。

如果您正在学习Powershell,请在评论中告诉我们您最想做什么。如果你有更多的经验,我们很乐意听到更多的高级主题,你想看到涵盖。

  • 发表于 2021-03-13 13:26
  • 阅读 ( 282 )
  • 分类:编程

你可能感兴趣的文章

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

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

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

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

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

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

如何在linux上安装和使用powershell

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

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

如何在windows 10上复制或移动文件和文件夹

...示文件资源管理器的所有技巧,以及如何在命令提示符和PowerShell中使用它们。您甚至可以将“复制到”和“移动到”添加到文件资源管理器的上下文菜单中。 在Windows 10中复制文件或文件夹时,所选项目将被复制并保存在所选的...

  • 发布于 2021-04-02 06:41
  • 阅读 ( 273 )

Windows10中重命名文件和文件夹的6种方法

...将使用以下命令: ren "Home Movie.ogv" "First Birthday.ogv" 使用powershell重命名文件和文件夹 在命令行环境中重命名文件和文件夹时,Windows PowerShell甚至比命令提示符更强大、更灵活。虽然我们只讨论命名文件的表面,但您可以做一些...

  • 发布于 2021-04-02 09:15
  • 阅读 ( 247 )

如何在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
  • 阅读 ( 280 )

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

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

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

如何在远程计算机上运行powershell命令

PowerShell远程处理允许您在远程Windows系统上运行PowerShell命令或访问完整的PowerShell会话。它类似于SSH,用于访问其他操作系统上的远程终端。 PowerShell在默认情况下是锁定的,因此在使用它之前必须启用PowerShell远程处理。如果您...

  • 发布于 2021-04-07 12:13
  • 阅读 ( 244 )

为什么windows powershell命令称为cmdlet?

在使用Windows PowerShell时,您可能遇到了cmdlet这个术语,并发现自己有些困惑。cmdlet是否与命令完全不同,或者只是它们的PowerShell名称?今天的超级用户问答帖子回答了一位好奇的读者的问题。 今天的问答环节是由SuperUser提供的...

  • 发布于 2021-04-08 02:40
  • 阅读 ( 1165 )

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

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

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

0 篇文章

相关推荐