当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 您必须了解的 PowerShell 命令

作者:精品下载站 日期:2024-12-14 03:43:34 浏览:14 分类:玩电脑

您必须了解的 PowerShell 命令


PowerShell 确实很强大,可以让你的日常工作变得更加轻松。

除了可以加载的所有模块之外,还有大量的 PowerShell 命令。但是您必须了解哪些 PowerShell 命令呢?

您可能已经知道一些命令,但您知道可以使用组合键完全自动完成所有可能的参数吗?或者搜索您之前输入的命令?

在本文中,我收集了 10 个基本的 PowerShell 命令和 25 个有用的命令,它们对您的日常工作确实有帮助。如果您还有其他建议,请在下面的评论中添加!

什么是 PowerShell 命令?

PowerShell 命令(更广为人知的名称是 cmdlet)是 PowerShell 脚本和模块的构建块。 Cmdlet 旨在执行特定任务,例如检索信息、修改设置或创建新实例。

PowerShell cmdlet 旨在易于使用并遵循一致的命名约定。 Cmdlet 名称由动词和名词组成,并用连字符分隔。例如,Get-Process cmdlet 用于检索有关正在运行的进程的信息,而 Set-ExecutionPolicy cmdlet 用于修改 PowerShell 执行策略。

PowerShell 还支持运行传统的命令行工具和脚本。这允许用户利用 PowerShell 脚本和模块中的现有工具和脚本。

10 个基本 PowerShell 命令

我们将从日常工作中最有用的 10 个基本 PowerShell 命令开始。了解这些命令可以让您更好地利用 PowerShell,并使您的工作变得更加轻松。

  1. Get-Help - 显示有关 PowerShell cmdlet 和概念的帮助信息。
  2. Get-Command - 列出 PowerShell 中所有可用的 cmdlet。
  3. Write-Host - 将输出直接写入控制台或其他主机。
  4. Get-History - 显示以前执行的命令的列表。
  5. Get-Content - 检索文件或其他项目的内容。
  6. Where-Object - 根据指定条件过滤输入对象。
  7. Format-List - 将输出格式化为列表。
  8. Format-Table - 将输出格式化为表格。
  9. Get-ChildItem - 列出指定位置的项目。
  10. 获取凭证 - 提示用户输入凭证。

1. 获取帮助

Get-Help cmdlet 显示有关 PowerShell 命令的详细帮助信息。它将显示 cmdlet 的语法以及您可以使用的参数。这是了解有关新 cmdlet 的更多信息的好方法。

例如,要显示有关 Get-Credential cmdlet 的帮助信息,请运行以下命令:

Get-Help Get-Credential

# Result
NAME
    Get-Credential

SYNTAX
    Get-Credential [-Credential] <pscredential>  [<CommonParameters>]
    Get-Credential [[-UserName] <string>] -Message <string>  [<CommonParameters>]

ALIASES
    None

大多数 cmdlet 还具有可以使用 Get-Help 命令查看的示例。要查看示例,您需要添加参数 -examples

Get-Help Connect-ExchangeOnline -Examples

# Result
NAME
    Connect-ExchangeOnline

SYNOPSIS
    This cmdlet is available only in the Exchange Online PowerShell module. For more information, see About the Exchange Online PowerShell module (https://aka.ms/exov3-module).
    -------------------------- Example 1 --------------------------
    Connect-ExchangeOnline -UserPrincipalName [email protected]

    This example connects to Exchange Online PowerShell using modern authentication, with or without multi-factor authentication (MFA). We aren't using the UseRPSSession parameter, so the connection uses REST and doesn't require Basic authentication to be enabled in WinRM on the local computer.
    -------------------------- Example 2 --------------------------
    Connect-ExchangeOnline -UserPrincipalName [email protected] -UseRPSSession

2. 获取命令

Get-Command cmdlet 列出了 PowerShell 中所有可用的 cmdlet。此命令可用于探索可用的 cmdlet 并了解有关其参数和用法的更多信息。

要列出名称中包含“process”一词的所有可用 cmdlet,请运行以下命令:

Get-Command *process*

3. 写主机

Write-Host cmdlet 将输出直接写入控制台。此命令可用于向用户显示信息或显示用于故障排除目的的信息。除了 Write-Host 之外,您还可以使用 Write-Warning 写入警告消息或使用 Write-Error 写入错误消息。

编写文本“Hello, World!”在控制台中,运行以下命令:

Write-Host "Hello, World!"

4. 获取历史记录

使用 PowerShell 时,您可能经常使用向上键来查找之前使用过的命令。您在 PowerShell 会话中工作的时间越长,您可能需要执行的命令就越多。

但您是否知道可以使用 Get-History cmdlet 来查看您使用过的所有命令? PowerShell 会跟踪您在会话期间输入的命令。默认情况下,它会记住最后 4096 个条目!

只需输入 Get-History 即可查看您最近使用过的所有命令:

Get-History

[玩转系统] 您必须了解的 PowerShell 命令

在示例中,我只有 8 个条目,因此很容易找到您要查找的命令。但是,当您有更多条目时,很高兴知道我们还可以通过向其传递 Where-object 来搜索/过滤 Get-History cmdlet:

Get-History | Where-Object {$_.Commandline -like "*EXOMailbox*"}

# Result
  Id CommandLine
  -- -----------
   4 Get-EXOMailbox -Filter "RecipientType -eq 'UserMailbox'"
   6 Get-EXOMailbox -Filter "RecipientType -eq 'UserMailbox'"
   7 Get-EXOMailbox -Filter "RecipientType -eq 'UserMailbox'" | Select Name,EmailAddresses

5. 获取内容

Get-Content cmdlet 检索文件或其他项目的内容。该命令可用于读取文件的内容或检索其他类型的数据。

要检索名为“example.txt”的文件的内容,请运行以下命令:

Get-Content example.txt

6.Where对象

Where-Object cmdlet 根据指定条件过滤输入对象。该命令可用于从较大的数据集中选择特定项目。通常,当您从系统或资源检索信息时,会返回多个记录。通过在其后面传递Where-Object cmdlet,我们可以过滤结果。

例如,要从给定目录中获取所有大于 10 MB 的文件,我们可以运行以下命令。 Get-ChildItem 将获取所有文件,而Where-Object cmdlet 仅选择大于-gt 给定大小的文件。

$path = "C:\temp\files\"

# Set file size
$sizeInMb = 10

# Calculate actual file size
$size = $sizeInMb*1024*1024

# Delete all files that are larger then given size
Get-ChildItem -Path $Path -Recurse -File | Where-Object { $_.length -gt $size }

7. 格式列表/格式表

Format-ListFormat-Table cmdlet 将命令的输出格式化为列表或表格。格式化输出使结果更易于阅读。

当您想要查看 cmdlet 的所有结果时,通常会使用 Format-List,简称为 fl。 PowerShell 中的 Cmdlet 通常仅返回选定的数据。通过在其后面传递Format-List cmdlet,您可以看到所有数据。例如,cmdlet Get-LocalUser 仅返回用户帐户的基本信息:

Get-LocalUser Admin

# Result
Name  Enabled Description
----  ------- -----------
admin False

但是当我们在后面添加Format-List时,我们就可以看到用户账户的所有信息:

Get-LocalUser Admin | fl

# Result
AccountExpires         :
Description            :
Enabled                : False
FullName               :
PasswordChangeableDate : 27-6-2019 12:20:44
PasswordExpires        :
UserMayChangePassword  : True
PasswordRequired       : False
PasswordLastSet        : 27-6-2019 12:20:44
LastLogon              : 27-9-2022 13:43:46
Name                   : admin
SID                    : S-1-5-21-3190960386-960769250-3760335402-1001
PrincipalSource        : Local

Format-Table 将结果格式化为表格。默认情况下,大多数返回多个条目的 cmdlet 会将结果格式化为表格。否则,您可以使用 Format-Table cmdlet。如果这些列不适合您的控制台,那么将 -Autosize 参数添加到 cmdlet 会有所帮助

Get-Hotfix | ft -AutoSize

9. 获取子项

Get-ChildItem 命令用于检索指定路径中的文件和/或目录列表。它类似于命令提示符中的 dir 命令。 Get-ChildItem cmdlet 的唯一优点是我们可以使用筛选器和其他参数来仅选择我们需要的结果。

例如,要从目录 c:\test 及其子文件夹中获取所有 txt 文件,我们可以在 PowerShell 中使用以下命令:

Get-ChildItem -Path C:\Test\*.txt -Recurse

10. 获取凭证

Get-Credential 命令用于提示用户输入用户名和密码。它返回一个 PSCredential 对象,可用于在其他命令中对用户进行身份验证。

$cred = Get-Credential
Connect-MsolService -Credential $cred

这将提示用户输入用户名和密码,然后使用返回的凭据连接到 Microsoft Online Services。

25 个有用的 PowerShell 命令

我们可以使用超过 200 个 PowerShell 命令。我不会在本文中列出所有命令,但以下是 PowerShell 的25 个最有用命令:

  1. 获取随机:生成随机数或从集合中选择随机项目。
  2. Get-Content:检索文件的内容并将其作为 PowerShell 中的对象输出。
  3. Get-Clipboard:检索剪贴板的内容。
  4. 获取日期:检索当前日期和时间。
  5. Out-File:将输出发送到文件而不是控制台。
  6. Out-GridView:在交互式网格视图中显示数据,以便于探索。
  7. Import-CSV:从 CSV 文件导入数据并根据数据创建对象。
  8. Export-CSV:将数据导出到 CSV 文件。
  9. 复制项目:将文件或目录从一个位置复制到另一个位置。
  10. Move-Item:将文件或目录从一个位置移动到另一个位置。
  11. Remove-Item:删除文件或目录。
  12. 测试路径:检查指定位置是否存在文件或目录。
  13. New-PSDrive:创建映射到数据存储中某个位置的新 PowerShell 驱动器(别名)。
  14. Enter-PSSession:创建与远程计算机的交互式会话。
  15. Start-Process:在本地或远程计算机上启动新进程(可执行)。
  16. Select-String:搜索文件或输入对象中的文本模式。
  17. 开始记录:开始记录当前 PowerShell 会话的记录。
  18. Start-Sleep:将脚本或 cmdlet 的执行暂停指定的时间。
  19. Measure-Command:测量脚本块或命令的执行时间。
  20. Measure-Object:计算对象的统计属性,例如总和、平均值、最小值或最大值。
  21. 比较对象:比较两组对象并显示差异。
  22. ConvertTo-HTML:将 PowerShell 对象转换为 HTML 格式以便于显示。
  23. ConvertTo-SecureString:将加密的标准字符串转换为安全字符串。
  24. 设置别名:创建或更改 cmdlet 或命令的别名(快捷方式)。
  25. Sort-Object:按指定属性对对象进行排序。

11. 随机获取

编写脚本时,使用随机函数生成随机整数并不罕见。但是 PowerShell 中的 Get-Random cmdlet 不仅仅可以生成整数。例如,它还能够从数组中选择随机条目。

Get-Random cmdlet 使用 RandomNumberGenerator 类,该类允许它生成加密安全的随机性。默认情况下,它返回 0 到 2,147,483,647 之间的整数。但当然,我们指定了最小值和最大值。

Get-Random -Minimum -50 -Maximum 150

# Result
111

Get-Random 还可以用于从数组中选择随机项:

$array = 'apple','pear','raspberry','kiwi','banana','melon','blueberry'

$array | Get-Random

# Result
raspberry

12. 获取内容

Get-Content cmdlet 读取文件的内容并将其作为对象返回。您可以使用此 cmdlet 读取文本文件、日志文件和其他类型的文件。默认情况下,Get-Content 将文件内容作为单个字符串返回。但是,您可以使用 -Delimiter 参数将文件拆分为单独的行或其他段。

在本文中了解有关 Get-Content cmdlet 的更多信息。

# Read the contents of a text file
Get-Content -Path "C:\Temp\example.txt"

# Read the contents of a file and display only the first 5 lines
Get-Content -Path "C:\Temp\example.txt" -TotalCount 5

13. 获取剪贴板

Get-Clipboard cmdlet 检索 Windows 剪贴板的内容。您可以使用此 cmdlet 获取已复制到剪贴板的文本、图像和其他类型的数据。

# Get the contents of the clipboard as text
Get-Clipboard -Format Text

# Get the contents of the clipboard as an image
Get-Clipboard -Format Image

但我们不仅可以从剪贴板检索数据,还可以使用 PowerShell 将数据复制到剪贴板。只需在命令后面添加 clip 即可将结果存储在剪贴板上:

Get-Content -path "c:\temp\fruits.txt" | clip

现在,您只需将内容粘贴到您想要的任何程序中即可。要在 PowerShell 中查看/粘贴剪贴板的内容,请使用 Get-Clipboard

Get-Clipboard

# Result
BlueBerry;StrawBerry;BlackBerry;RaspBerry;CranBerry;

[玩转系统] 您必须了解的 PowerShell 命令

14. 约会

Get-Date cmdlet 返回本地计算机上的当前日期和时间。您可以使用此 cmdlet 执行日期和时间计算并以特定格式显示日期和时间。

请务必阅读本文以了解有关 Get-Date cmdlet 的更多信息。

# Get the current date and time
Get-Date

# Get the date and time 10 days from now
Get-Date -Date (Get-Date).AddDays(10)

# Get the date and time in a specific format
Get-Date -Format "yyyy-MM-dd hh:mm:ss"

15. 输出文件

Out-File cmdlet 将输出发送到文件。您可以使用此 cmdlet 将命令或脚本的输出保存到文本文件、CSV 文件或其他类型的文件中。对于 CSV 文件,最好使用 Export-CSV cmdlet。

# Save the output of a command to a text file
Get-Service | Out-File -FilePath "C:\Temp\services.txt"

# Save the output of a command to a CSV file
Get-Process | Select-Object Name, CPU | Out-File -FilePath "C:\Temp\processes.csv" -Encoding UTF8

16. 网格视图

当测试脚本或在 PowerShell 中工作时,我们经常直接在控制台中输出结果。我们可以使用 format-table 或短格式将结果集格式化为表格。但是对于大型数据集,这并不总是最佳选择。概述中的数据可能被截断或缺少列。

[玩转系统] 您必须了解的 PowerShell 命令

网格视图输出是一个很好的解决方案。它将在新窗口中以良好的可搜索、可排序视图输出所有数据。该表包含所有列,您可以对其进行排序和搜索。

Get-EXOMailbox | Out-Gridview

[玩转系统] 您必须了解的 PowerShell 命令

在左上角,您可以向结果集添加过滤器,以便您轻松找到所需的正确数据:

[玩转系统] 您必须了解的 PowerShell 命令

现在是PowerShell中gridview最好的部分,我们可以选择我们需要的项目并将它们传递回PowerShell。为此,您需要将参数 -PassThru 添加到 cmdlet:

Get-EXOMailbox | Out-Gridview -PassThru

选择您需要的记录,然后按确定。您可以仅在其后面通过管道选择,或将结果存储在变量中。

[玩转系统] 您必须了解的 PowerShell 命令

17. 导入-CSV

Import-CSV cmdlet 用于将数据从 CSV 文件导入到 PowerShell。它将 CSV 文件数据转换为可以使用其他 cmdlet 轻松操作的对象。当您需要处理存储在 CSV 文件中的大型数据集时,这非常有用。

在本文中阅读有关 Import-CSV cmdlet 的更多信息。

Import-CSV C:\data\employees.csv | Format-Table

18. 导出-CSV

Export-CSV 命令也是使用 PowerShell 检索数据时非常有用的命令之一。我们都知道 Excel 在进一步处理数据方面非常出色。 Export-CSV 命令根据您的数据生成 CSV 文件。

后面添加NoTypeInformation和Encoding参数。第一个将删除 CSV 文件中的标头信息,后者确保使用正确的编码。

在本文中阅读有关 Export-CSV 的更多信息。

Get-EXOMailbox | Export-CSV -path c:\temp\mailbox.csv -NoTypeInformation -Encoding UTF8

19. 复制项目

Copy-Item cmdlet 用于将文件和目录从一个位置复制到另一个位置。它允许您指定源位置和目标位置,还提供覆盖现有文件或保留其属性的选项。当您需要备份或传输文件和目录时,这非常有用。

在本文中了解有关 Copy-Item cmdlet 的更多信息。

例如,以下命令将文档文件夹复制到文件夹 d:\backup。

Copy-Item -Path C:\data\documents -Destination d:\backup -Recurse

20. 移动项目

我们还可以在 Move-Item cmdlet 的帮助下使用 PowerShell 移动项目。它类似于 Copy-Item cmdlet,但它不是创建副本,而是将文件和目录移动到新位置。当您需要在计算机内或不同计算机之间移动文件和目录时,这非常有用。

假设您要将名为“report.docx”的文件从桌面移动到名为“documents”的文件夹。您可以使用以下命令将文件移动到“documents”文件夹。

Move-Item -Path C:\users\username\desktop\report.docx -Destination C:\data\documents

21. 删除项目

Remove-Item cmdlet 用于删除文件或目录。它还可以删除目录及其子目录中的文件。您可以使用 -Recurse 参数递归删除目录及其内容。它还可以删除只读文件、隐藏文件和系统文件。但是,在删除任何只读或隐藏文件之前,它会提示您进行确认。

在本文中了解有关删除项目 cmdlet 的更多信息。

要删除文件,可以使用以下命令:

Remove-Item C:\Temp\file.txt

22. 测试路径

Test-Path cmdlet 用于检查指定位置是否存在文件或目录。如果文件或目录存在,则返回 True,如果不存在,则返回 False。在处理文件或目录时,您确实应该经常使用 cmdlet。阅读本文中有关 Test-Path cmdlet 的所有内容。

要检查文件是否存在,可以使用以下命令:

Test-Path C:\Temp\file.txt

23. 新PSDrive

New-PSDrive cmdlet 用于创建新的 Windows PowerShell 驱动器,该驱动器“映射”到数据存储中的某个位置,例如网络驱动器、本地计算机上的目录或注册表钥匙。创建的驱动器的行为类似于普通的 Windows 驱动器,可以使用标准 Windows 命令进行访问。

例如,要创建映射到网络共享的新驱动器,您可以在 PowerShell 中使用以下命令。在本文中了解有关 New-PSDrive cmdlet 的更多信息。

New-PSDrive -Name "N" -PSProvider FileSystem -Root "\Server\Share"

24. 输入-PSSession

需要在服务器上运行 PowerShell 命令?大多数人会打开远程桌面,在服务器上启动 PowerShell 会话,但实际上没有必要这样做。借助 PowerShell,我们可以使用 Enter-PSSession cmdlet 启动与远程计算机的交互式会话。

要启动交互式会话,只需键入:

Enter-PSSession -Computername LazySrvLab02

# Result
[LazySrvLab02]: PS C:\>

您现在可以在服务器上运行 PowerShell 命令,就像直接在服务器上工作一样。如果您需要使用不同的凭据进行身份验证,请使用参数 -credential 指定您要使用的用户名。系统将提示您输入密码。

要退出远程会话,请输入 Exit-PSSession

25. 启动进程

Start-Process cmdlet 用于启动新进程,例如可执行文件或脚本,并可选择向其传递参数。您可以在启动进程时指定文件路径、参数、工作目录和其他参数。当您需要从脚本或命令行启动进程时,此 cmdlet 非常有用。

Start-Process -FilePath "C:\Program Files\MyApp\MyApp.exe" -ArgumentList "-Option1", "-Option2"

26. 选择字符串

Select-String cmdlet 在给定输入(文本文件、字符串等)中搜索特定字符串模式,并输出与该模式匹配的任何行。这类似于 Unix/Linux 系统中的 grep 命令。

假设您有一个日志文件,您想要搜索包含单词“错误”的行。您可以使用Select-String 来执行此操作。下面的命令将搜索日志文件并输出包含单词“error”的所有行。在本文中阅读有关 PowerShell Select-String 命令的更多信息。

Select-String -Path C:\logs\logfile.txt -Pattern "error"

27. 开始记录

Start-Transcript cmdlet 创建 PowerShell 会话的副本,其中包括输入的所有命令及其输出。转录内容保存到文本文件中。

要创建转录本,您需要运行以下命令来开始录制。完成后,您可以使用 cmdlet Stop-Transcript。在本文中了解有关 Start-Transcript 的更多信息。

Start-Transcript -Path C:\transcript.txt

28. 开始睡眠

Start-Sleep cmdlet 将 PowerShell 会话暂停指定的时间。这对于创建在执行下一个命令之前需要等待一定时间的脚本非常有用。

以下命令将脚本暂停 10 秒。在本文中了解有关 PowerShell Start-Sleep 命令的更多信息:

Start-Sleep -Seconds 10

29. 测量命令

Measure-Command cmdlet 测量命令运行所需的时间。这对于优化脚本和识别性能瓶颈很有用。

假设您有一个想要优化的脚本。您可以使用 Measure-Command 来测量特定命令运行所需的时间。例如,以下命令将测量将文件从一个位置复制到另一个位置所需的时间:

Measure-Command {Copy-Item -Path C:\files\file.txt -Destination D:\backup\file.txt}

该命令的输出将显示经过的时间以及其他统计信息,例如使用的 CPU 时间和执行的垃圾收集次数。

30. 测量对象

Measure-Object cmdlet 计算数字对象的属性,例如总和、平均值、最小值、最大值和标准差。它对于分析其他 PowerShell 命令的输出很有用。

假设我们要计算目录中所有文件的平均大小。我们可以使用 Get-ChildItem cmdlet 检索目录中的文件,并将输出通过管道传输到 Measure-Object cmdlet 以计算平均大小:

Get-ChildItem C:\temp | Measure-Object -Property Length -Average

31. 比较对象

Compare-Object cmdlet 比较两组对象并返回差异。它对于查找两组数据之间的差异很有用。

例如,让我们与带有水果的数组进行比较:

$fruits = "apple","kiwi","pear"
$basket = "kiwi","raspbery"

Compare-Object -IncludeEqual $fruit $basket

# Result
InputObject SideIndicator
----------- -------------
kiwi        ==
raspbery    =>
grape       <=
pear        <=

32. 转换为 Html

ConvertTo-Html cmdlet 将 PowerShell 对象转换为 HTML 格式。它对于生成报告并以更易读的格式显示数据非常有用。

假设我们想要生成计算机上正在运行的进程的 HTML 报告。我们可以使用 Get-Process cmdlet 检索正在运行的进程,并将输出通过管道传输到 ConvertTo-Html cmdlet 以生成 HTML 报告:

Get-Process | ConvertTo-Html | Out-File C:\temp\processes.html

33. ConvertTo-SecureString

ConvertTo-SecureString cmdlet 将纯文本字符串转换为安全字符串,该字符串可用于以更安全的方式存储敏感数据,例如密码或 API 密钥。它对于防止未经授权访问敏感数据非常有用。

例如,我们希望将密码存储在变量中以便在脚本中使用。我们可以使用 Read-Host cmdlet 提示用户输入密码,然后将输出通过管道传输到 ConvertTo-SecureString cmdlet 以将其转换为安全字符串:

$password = Read-Host "Enter password" -AsSecureString
$cred = New-Object System.Management.Automation.PSCredential ("username", $password)

34. 设置别名

Set-Alias cmdlet 为当前 PowerShell 会话中的 cmdlet 或其他命令元素创建或更改别名(备用名称)。这有助于节省键入长命令名称的时间或为常用命令创建自定义缩写。

在此示例中,我们为 ls 命令创建别名 l。现在,我们可以简单地输入 l,而不是输入 ls 来列出文件。

Set-Alias -Name l -Value ls

35. 对象排序

Sort-Object cmdlet 根据一个或多个属性按升序或降序对对象进行排序。它可用于对任何类型的对象进行排序,例如文件、目录、注册表项或 PowerShell 对象。

在此示例中,我们使用 Get-ChildItem 获取当前目录中的文件和目录列表。然后,我们将该输出传送到 Sort-Object 以按名称降序对列表进行排序,最后使用 Select-Object 仅显示排序列表中的前 10 项。

Get-ChildItem | Sort-Object -Property Name -Descending | Select-Object -First 10

额外提示

Ctrl + 空格键

这实际上并不是一个 PowerShell 命令,但您希望早点知道这个组合键。使用 cmdlet 时,我们经常键入连字符 -,然后按 Tab 键浏览 cmdlet 具有的所有可能参数。

但您知道您可以一次查看所有参数吗?要尝试此操作,请键入 cmdlet 并按 Ctrl + Space

[玩转系统] 您必须了解的 PowerShell 命令

它将显示您可以与 cmdlet 一起使用的所有名词和参数。现在,您需要习惯按 Ctrl + 空格键,但您也可以在 PowerShell 配置文件中设置以下内容:

Set-PSReadlineKeyHandler -Key Tab -Function Complete

这样,您只需键入连字符并按 Tab 两次即可列出所有参数。

设置严格模式

PowerShell 中的 Set-StrictMode 命令建立并强制执行编码规则。默认情况下,严格模式是关闭的,这可能会导致真正的混乱。例如,当严格模式关闭时,PowerShell 会将未初始化的变量威胁为 $null0

请注意以下代码:

$username = 'adelev'
Get-EXOMailbox $usename | Set-mailbox -Hiddenfromaddresslist:$true

在上面的示例中,我在 Get-ExoMailbox 命令中拼错了 $username 变量。如果未启用严格模式,PowerShell 会将拼写错误的变量 $usename 处理为 $null,结果是 cmdlet 将获取所有邮箱并将它们全部隐藏起来。地址列表。

当您将 StrictMode 设置为版本 2 时,PowerShell 将抛出一个错误,指出该变量未设置。

Set-StrictMode -Version 2

[玩转系统] 您必须了解的 PowerShell 命令

我建议将 Set-StrictMode -Version 2 命令添加到您的 PowerShell 配置文件中。

总结

借助PowerShell,我们总能学到新的东西,并改进我们的脚本或工作方法,让我们的工作变得更轻松。这些 PowerShell 命令确实可以帮助您。像 Set-StrictMode 这样的命令和完整的自动完成功能是最好了解和使用的命令之一。

我希望您发现此 PowerShell 命令列表很有用,或者如果您有任何问题或建议,请在下面发表评论!

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯