最有用的 Powershell 命令:附示例的备忘单

已发表: 2023-07-23
内容
  • PowerShell 入门
  • 深入研究 PowerShell 命令结构
    • 管理文件和文件夹
    • 管理系统进程
    • 网络管理
    • 活动目录管理
    • 事件日志管理
    • 性能监控与分析
    • 远程处理和 PowerShell 会话
    • 安全和执行策略
  • 高级 PowerShell 技术
  • 下面 30 个附加 PowerShell 命令
  • 结论
  • 常问问题
    • 如何使用 Windows PowerShell 命令?
    • 如何在 Windows 7 中获取 PowerShell 命令列表?
    • 我可以在非 Windows 系统上使用 PowerShell 吗?
    • 我可以在 PowerShell 中编写脚本吗?
    • 我可以使用 PowerShell 管理基于云的环境吗?
最有用的 Powershell 命令:附示例的备忘单

如果您曾经有幸深入了解系统管理的世界,您可能遇到过 Windows PowerShell 和 PowerShell 命令。 它是一个方便的工具,是一种 shell 脚本语言,可让您访问操作系统的内部工作原理。

它超越了传统的命令提示符 (CMD),提供了更强大的功能、灵活性和控制力。

与使用简单命令行指令的 CMD 不同, Windows PowerShell使用更广泛的语言,利用一系列PowerShell 命令或 cmdlet 来执行复杂的系统任务。

作为系统管理员,您的工作可以通过您的武器库中的这个工具得到显着的改进。 这不仅仅是为了让事情变得更容易;而是为了让事情变得更容易。 它关乎效率、精度和自动化重复任务的能力。

PowerShell 入门

现在您已经熟悉了 PowerShell 是什么,是时候深入了解了。开始非常简单。 你有两条主要路线:

  • PowerShell 控制台
  • 集成脚本环境 (ISE)。

控制台是您的命令行界面。 这是您的命令到达和操纵系统的直接路径。 另一方面,ISE 是您编写脚本的游乐场。 您可以在一个友好的、以用户为中心的环境中编写、测试和调试 PowerShell 脚本。

为了帮助您顺利开展工作,我们将介绍一些基本的 PowerShell 命令

Powershell 命令获取帮助

描述:显示有关Windows PowerShell 命令和主题的帮助信息。

示例:键入 Get-Help Get-Process 将显示 Get-Process 命令的帮助。

顾名思义, Get-Help 是您了解 PowerShell 世界的指南 它是一个内置手册,可让您探索其他命令的功能。

Powershell获取命令

描述:检索 PowerShell 中所有可用命令的列表。

示例:输入 Get-Command -Module ActiveDirectory 将列出 ActiveDirectory 模块中可用的所有命令。

Windows PowerShell

Get-Command 是PowerShell 命令备忘单上的另一个有价值的工具 有了它,您可以查看 PowerShell 提供的每个命令。

深入研究 PowerShell 命令结构

PowerShell 命令围绕三个主要结构构建:cmdlet、别名和脚本。

Cmdlet (Command-let) 是 PowerShell 的核心。 它们是执行特定功能的轻量级命令。 与传统的可执行程序不同,cmdlet 是 .NET Framework 类对象 – 很拗口,对吧? 简而言之,它们是执行某些操作的代码片段,例如获取数据、更改系统设置或运行进程。

PowerShell获取进程

描述:检索所有正在运行的进程的列表

示例:输入 Get-Process 将显示系统上当前运行的所有进程。

别名只是 cmdlet 的快捷方式。 例如,您可以简单地键入dir ,而不是键入Get-ChildItem ,这样更快、更容易记住。

最后,脚本是包含一系列要按顺序运行的 cmdlet 的文本文件。 它们是自动化的支柱,使您无需手动输入即可运行复杂的任务。 有了这些知识和不断增加的PowerShell 命令列表,您就可以顺利成为 PowerShell 专家。

管理文件和文件夹

掌管文件系统可能是一项艰巨的任务。 幸运的是,PowerShell 提供了帮助。 借助一系列 cmdlet,您可以无缝管理文件和文件夹。

PowerShell 获取子项目

描述:显示指定位置的项目和子项目。

示例:输入 Get-ChildItem C:\Documents,您将看到 Documents 目录中的所有项目。

此 cmdlet 是用于文件管理的PowerShell 命令列表中的重要成员 它不仅列出文件和文件夹,还可以深入研究目录,揭示其中隐藏的宝藏。

PowerShell 新项目

描述:创建一个新项目,例如文件或文件夹。

示例:键入New-Item -Path 。-名称“file.txt” -ItemType“文件” -值“powershell new-item 演示文件当前目录。”

并观察新文件 file.txt 在您的 Documents 文件夹中出现。

Windows PowerShell 新项目

管理系统进程

现在,我们来谈谈系统流程。 将他们视为戏剧制作的后台工作人员,在幕后辛勤工作,以确保演出顺利进行。 PowerShell 提供命令来监视、操作和管理这些无名英雄。

PowerShell获取进程

描述:检索指定进程列表的状态。
示例:输入 Get-Process 将显示计算机上当前运行的所有进程。

以上是Windows 10中最常用的用于管理系统进程的PowerShell命令之一。 它提供了屏幕后面发生的情况的快照。

使用服务

就像系统进程一样,服务是保持系统平稳运行的关键齿轮。 有些程序在后台运行,通过 PowerShell,您可以密切关注它们。

描述:检索本地或远程计算机上的服务状态。

示例:当您运行 Get-Service 时,您将获得计算机上所有服务的状态更新。

PowerShell命令停止服务

描述:停止一项或多项正在运行的服务。

示例:Stop-Service -Name“serviceName”将停止指定的服务。

这些PowerShell 命令示例仅介绍了您可以使用 PowerShell 执行的操作的表面。 PowerShell 的真正优点在于它的灵活性以及可以在多大程度上进行定制以满足您的特定需求。

网络管理

管理网络可能感觉就像尝试解决一个包含无限块的拼图游戏。 幸运的是,借助 PowerShell,您并非没有工具可以使这项工作变得更轻松。 以下是几个可以为您提供帮助的顶级 PowerShell 命令。

PowerShell 命令 NetConnection

描述:显示连接的诊断信息。

示例:键入 Test-NetConnection 以测试计算机的网络连接。

Windows PowerShell 测试-NetConnection

PowerShell 命令 NetIP 地址

描述:显示 IP 地址配置。

示例:运行 Get-NetIPAddress 可显示您计算机的 IP 地址详细信息。

这些 cmdlet 可以帮助诊断问题并揭示基本的网络配置详细信息。

活动目录管理

在网络管理领域,Active Directory (AD) 是办公室的管理者,跟踪每个网络资源。 PowerShell 包含有用的命令,使管理 AD 变得轻而易举。

PowerShell 命令获取 ADUser

描述:检索一个用户对象或执行搜索以检索多个用户对象。

示例:Get-ADUser -Filter * 将显示 AD 中所有用户的列表。

Powershell 命令 New-ADUser

描述:创建一个新的 AD 用户。

示例:使用 New-ADUser -Name “JohnDoe” 等命令,您可以创建一个名为 JohnDoe 的新用户。

事件日志管理

事件日志就像系统的日记,记录系统的想法和行为。 它们是排除故障的宝贵工具。 以下是如何在 Windows 10 中运行与事件日志交互的 PowerShell 命令。

PowerShell 命令 Get-EventLog

描述:获取事件日志中的事件或事件日志列表。

示例:Get-EventLog -LogName 系统将显示系统事件日志。

清除事件日志

描述: 清除指定事件日志中的所有条目。

示例:Clear-EventLog -LogName “Application” 将清除您的应用程序事件日志。

重要的是要记住,虽然这些是一些最常见的 PowerShell 命令,但还有无数其他命令需要探索。 PowerShell 的适应性和强大的功能使其成为任何系统管理员不可或缺的工具。

性能监控与分析

就像一支调音良好的管弦乐队一样,您的系统需要定期微调才能发挥最佳性能。 性能监控可确保您的系统资源得到有效利用。 以下是一些 Windows PowerShell 命令,可让您一窥其幕后真相。

PowerShell 命令获取进程

描述:检索指定进程列表的状态。

示例:运行 Get-Process 显示当前在您的计算机上运行的所有进程。

在 Windows PowerShell 上运行 Get-Process

测量命令 PowerShell

描述:测量运行脚本块所需的时间。

示例:Measure-Command {Get-Process} 将显示执行 Get-Process 命令所需的时间。

获取计数器 PowerShell

描述:从本地和远程计算机获取性能计数器数据。

示例:Get-Counter -Counter“\Processor(_Total)\% Processor Time”将为您提供 CPU 使用情况统计信息。


另请阅读:如何提高 Windows 上的硬盘性能?


远程处理和 PowerShell 会话

PowerShell 的一个关键优势在于其管理远程计算机的能力。 您可以与远程计算机建立会话或持久连接。 如果没有这些 cmdlet,您的 PowerShell 命令备忘单将不完整。

输入 PSSession PowerShell

描述:启动与远程计算机的交互式会话。

示例:Enter-PSSession -ComputerName Server01 允许您直接与 Server01 交互。

新 PSSession PowerShell

描述:创建一个新的 PowerShell 会话。

示例:New-PSSession -ComputerName Server02 创建与 Server02 的新会话。

删除 PSSession PowerShell

描述:关闭一个或多个 PowerShell 会话。

示例:Remove-PSSession -Session $s 关闭存储在 $s 变量中的会话。

使用 PowerShell 配置文件

与您的个人配置文件一样, PowerShell 配置文件是在 Powershell 启动时运行的脚本,它定义您的环境。 以下是一些用于管理您的配置文件的cmdlet PowerShell命令。

测试路径 PowerShell

描述: 确定路径的所有元素是否存在。

示例:Test-Path $profile 将验证配置文件是否存在。

PowerShell 新项目

描述:创建一个新项目,例如文件或文件夹。

示例:如果 Test-Path $profile 返回 False,New-Item -Type file -Path $profile -Force 将创建一个新配置文件。

PowerShell 记事本

描述:在记事本中打开文件。

示例:记事本 $profile 在记事本中打开您的个人资料,允许您对其进行编辑。

Windows PowerShell 记事本命令

通过理解和利用这些命令,您可以自定义 PowerShell 环境以适合您的偏好和工作方式。

安全和执行策略

在 PowerShell 领域,安全性就像一个坚定的看门人,确保脚本和命令安全执行。 以下是一些基本的 PowerShell 命令,可帮助您定义和理解执行策略。

PowerShell 获取执行策略

描述:获取当前会话的执行策略。

示例:Get-ExecutionPolicy 显示您当前的执行策略。

PowerShell 设置执行策略

描述:设置 PowerShell 会话的执行策略。

示例:Set-ExecutionPolicy RemoteSigned 将策略设置为仅运行由可信发布者签名的脚本。

PowerShell 获取 AuthenticodeSignature

描述:获取脚本或文件的数字签名。

示例:Get-AuthenticodeSignature C:\Scripts\Test.ps1 显示 Test.ps1 脚本的数字签名。

高级 PowerShell 技术

当您深入研究 PowerShell 的海洋时,您会发现它不仅仅包含基本的 cmdlet。 高级功能提供了更大的灵活性和功能,让您可以更聪明地工作,而不是更辛苦。 下面是一些PowerShell 命令示例来说明各种可能性。

PowerShell 命令:调用命令

描述:在本地和远程计算机上运行命令。

示例:Invoke-Command -ComputerName Server01 -ScriptBlock {Get-Process} 在 Server01 上运行 Get-Process 命令。

PowerShell 导出-CSV

描述:将 .NET 对象转换为 CSV 字符串并将结果存储在 CSV 文件中。

示例:获取进程|Export-Csv -Path .\ProcessList.csv 将进程列表保存到 CSV 文件中。

Windows PowerShell 进程列表

PowerShell 转换为 Json

描述:将对象转换为其 JSON 表示形式。

示例:获取进程|ConvertTo-Json 将进程列表转换为 JSON 格式。

PowerShell 选择对象

描述:选择一个对象或一组对象的指定属性。它还可以从数组中选择唯一的对象。

示例:获取进程|Select-Object -Property Name,ID 仅显示进程的名称和 ID。

PowerShell 位置对象

描述:过滤来自管道的输入,允许控制将沿命令序列传递的对象。

示例:获取进程|Where-Object {$_.CPU -gt 10} 显示使用超过 10 个 CPU 单元的进程。

PowerShell ForEach-对象

描述:对一组输入对象中的每一个执行操作。

示例:获取进程|ForEach-Object { $_.Name + ” ” + $_.Id } 显示进程名称及其 ID 的列表。

这些有用的 PowerShell 命令演示了可用来进一步利用 Powershell 强大功能的高级技术。 从调用远程计算机上的命令到过滤和格式化输出,可能性是巨大的。

请记住,当您不确定如何运行 PowerShell 命令时,Get-Help cmdlet 是您的好帮手 只需键入 Get-Help,然后键入您需要帮助的 cmdlet。 这个顶级 PowerShell 命令列表只是一个开始; PowerShell 的潜力仅受您的想象力的限制。

下面 30 个附加 PowerShell 命令

命令描述
输出文件将输出发送到文件。
排序对象按属性值对对象进行排序。
设置变量设置变量的值。
读取主机从控制台读取一行输入。
写主机将自定义输出写入主机。
添加内容向指定项目添加内容,例如向文件添加行。
复制项目将项目从一个位置复制到另一个位置。
测试路径测试路径是否存在,如果路径存在则返回 True,否则返回 False。
获取日期获取当前日期和时间。
清除主机清除主机程序中的显示。
比较对象比较两组对象。
转换为Html 将 .NET 对象转换为可在 Web 浏览器中显示的 HTML。
获取凭证根据用户名和密码获取凭证对象。
随机获取获取随机数或从集合中随机选择对象。
新对象创建 .NET Framework 或 COM 对象的实例。
重命名项目重命名 Windows PowerShell 提供程序命名空间中的项目。
开始-睡眠将脚本中的活动暂停指定的时间段。
写输出将指定对象发送到管道中的下一个命令。
分割路径返回路径的指定部分。
连接路径将路径和子路径合并为单个路径。
ForEach-对象对输入对象集合中的每个项目执行操作。
地点对象根据属性值从集合中选择对象。
启动进程在本地计算机上启动一个或多个进程。
格式列表将输出格式化为属性列表,其中每个属性都显示在单独的行上。
格式表将输出格式化为表格。
导出-Clixml 创建一个或多个对象的基于 XML 的表示并将其存储在文件中。
导入Clixml 导入 CliXML 文件并重新创建保存的对象。
转换自-CSV 将 CSV 字符串中的对象属性转换为原始对象的 CSV 版本。
转换为 CSV 将 .NET 对象转换为一系列 CSV 字符串。
选择字符串查找字符串和文件中的文本。

结论

到目前为止,您应该拥有完整的PowerShell 命令列表并清楚地了解它们的潜力。 无论您是自动化任务、管理网络资源还是解决问题,PowerShell 都是任何 Windows 用户或管理员不可或缺的工具。

这些PowerShell cmdlet只是触及了可能的表面。 随着您对控制台越来越熟悉,您会发现自己发现了新的命令和制作完全满足您需求的脚本。

请记住,每当您需要有关特定 cmdlet 的更多信息时, Get-Help cmdlet 始终可以提供PowerShell 命令帮助只需键入 Get-Help,然后键入您需要帮助的 cmdlet。

常问问题

如何使用 Windows PowerShell 命令?

使用 Windows PowerShell 命令很简单。 您可以在 PowerShell 控制台中键入命令并按 Enter 键。 如果您需要特定命令的帮助,只需键入 Get-Help,然后键入您想要更好地理解的命令。

如何在 Windows 7 中获取 PowerShell 命令列表?

您可以通过在控制台中键入 Get-Command 并按 Enter 键来获取 Windows 7 上 PowerShell 中的命令列表。 这将显示您可以使用的所有可用 cmdlet 和功能。

为什么我的 Windows PowerShell 无法理解任何命令?

如果 PowerShell 无法理解您的命令,可能是由于语法错误。 检查您的命令是否有拼写错误或不正确的参数。 另外,请确保您为尝试执行的命令使用正确版本的 PowerShell。

我可以在非 Windows 系统上使用 PowerShell 吗?

是的你可以。 随着PowerShell Core的出现,微软的PowerShell不再局限于Windows。 您也可以在 macOS 和 Linux 上使用它。

我可以在 PowerShell 中编写脚本吗?

绝对地! PowerShell 不仅是一个命令行界面,也是一种脚本语言。 您可以创建脚本来自动执行重复性任务,这可以节省大量时间和精力。

我可以使用 PowerShell 管理基于云的环境吗?

是的,PowerShell 是用于管理基于云的环境的强大工具。 许多云提供商(包括 Microsoft Azure 和 Amazon AWS)提供 PowerShell 模块来与其服务交互。