PowerShell 面试题

2025年3月17日 | 阅读 8 分钟
PowerShell Interview Questions

以下是关于 PowerShell 的常见面试题及答案。

1) 什么是 PowerShell?

PowerShell 是一个可扩展的命令行 shell,专为系统管理员和高级用户设计,用于管理操作系统和进程。

它是一个构建在 .NET Framework 上的脚本环境。

它是一个平台无关的开源工具。


2) PowerShell 有哪些特性?

以下是 PowerShell 的各种特性或特点:

  1. PowerShell 的主要特点是它基于对象,而不是文本。
  2. PowerShell 命令是可自定义的。
  3. PowerShell 远程处理 (remoting) 是一个功能,它允许在远程系统上执行 cmdlet,这有助于开发人员从一台计算机管理一组远程计算机。
  4. 脚本调试也是 PowerShell 的一项重要功能,用于在 PowerShell 执行期间检查命令、脚本、函数和表达式。

3) 如何在 Windows 操作系统中启动 PowerShell?

PowerShell 已预装在所有最新版本的 Windows 中。我们需要按照以下步骤启动 PowerShell:

1. 搜索 Windows PowerShell。选择并单击。

PowerShell Interview Questions

2. PowerShell 窗口将打开。

PowerShell Interview Questions

4) PowerShell 中的管道是什么?

PowerShell 管道是由管道符 '|' 连接的一系列语句。在命令中,每个管道符用于将前一个命令的输出或结果发送到下一个命令。

以下框描述了管道的语法:


5) PowerShell 的执行策略是什么?

PowerShell 中的执行策略是一个概念,它控制 PowerShell 加载配置文件和执行脚本的条件。


6) 解释一下执行策略的类型?

以下是 PowerShell 中的六种执行策略类型:

PowerShell Interview Questions
  1. AllSigned
  2. RemoteSigned
  3. Restricted(受限)
  4. 未定义
  5. Bypass(绕过)
  6. Unrestricted

AllSigned

它是一种执行策略,只执行由受信任发布者使用数字签名签名的脚本。

RemoteSigned

PowerShell 将执行在本地计算机上编写的任何脚本。但从 Internet 下载的脚本需要受信任发布者的数字签名。

Restricted(受限)

此类型的执行策略不允许执行任何脚本,但允许单独的命令。此策略默认适用于 Windows 客户端计算机。

未定义

在当前范围内未设置或定义任何执行策略。

Bypass(绕过)

它主要设计用于 PowerShell 脚本被构建到更大应用程序中的配置。在此类策略中,不会提供警告和提示。

Unrestricted

此策略是非 Windows 计算机的默认策略。此策略执行未签名的脚本。


7) PowerShell 中的 Try、Catch 和 Finally 是什么?

Try: 这是脚本中您希望 PowerShell 监视错误的部分。如果此块中发生错误,自动变量 $Error 将存储该错误。然后,PowerShell 会搜索 Catch 块来处理错误。

Catch: 在 PowerShell 脚本中,这是处理 Try 块生成的错误的块。

Finally: 在 PowerShell 脚本中,这是释放脚本不再需要的资源的部分。


8) CIM 和 WMI 之间有什么区别?

下表描述了 CIM 和 WMI 之间的区别:

CMIWMI
CIM 代表通用信息模型(Common Information Model)。WMI 代表 Windows Management Instrumentation。
它是由 DMTF 公司开发的。它也由 Microsoft 开发。
它可以跨平台工作。它仅适用于 Windows。

9) $input 变量有什么作用?

$input 变量的功能使 PowerShell 函数能够访问来自管道的数据。


10) PowerShell 和 CMD 有什么区别?

以下是 PowerShell 和 CMD 之间的区别:

PowerShell命令提示符 (CMD)
1. 这是一个基于 .NET 框架的任务型命令行 shell 和相关的脚本语言。1. 它是 Microsoft Windows 操作系统的默认命令行解释器。
2. 它可以解释批处理和 PowerShell 的命令。2. 它只能解释批处理命令。
3. 它控制和自动化 Windows 服务器上的 Windows 操作系统和应用程序。3. 它执行控制台上指定的命令以调试问题。
4. PowerShell 生成的输出不仅仅是字符流(文本),而是一系列对象。4. 命令提示符生成的输出只是一个字符流(文本)。
5. 它既是 shell 也是脚本环境,支持创建大型文件来管理 Windows 操作系统。5. 它仅仅是一个 shell 环境,允许用户只执行简单的基本脚本来运行批处理文件。

11) 如何在 PowerShell 中使用注释?

与其他脚本语言一样,PowerShell 也支持单行或多行注释。

单行注释: “在每行开头使用(井号)# 符号的注释”。

单行注释的语法

多行注释: “在最后一行末尾和第一行开头使用 #(井号)符号的注释”。

多行注释的语法


12) 解释 PowerShell 中括号的含义?

花括号 {}: 这类括号用于块语句。

圆括号 (): 这些括号用于必需参数。

方括号 []: 这类括号用于定义可选项目。


13) PowerShell 中的变量是什么?

PowerShell 变量是用于存储数据的内存单元。您可以轻松地将各种类型的值存储在 PowerShell 变量中。在变量中,PowerShell 包含整数、字符串和对象。


14) 如何在 PowerShell 中声明和创建变量?

声明: 在 PowerShell 中,您可以使用变量名开头的 $(美元)符号来声明变量。以下语法描述了如何声明变量:

例如: $var

创建或初始化: 在 PowerShell 中,您可以使用赋值运算符将值赋给变量来创建变量。以下语法描述了如何声明变量:


15) 列出扩展 PowerShell 的两种方法?

  1. PSSnapins
  2. 模块

16) 列出管道输入工作的两种方法?

  1. ByValue (按值)
  2. ByPropertyName (按属性名)

17) 列出 PowerShell 中变量的不同类型?

以下是 PowerShell 中变量的三种类型:

PowerShell Interview Questions
  1. 用户创建的变量
  2. 自动变量
  3. 首选项变量

18) 什么是 PowerShell 中的自动变量,并列出常见的自动变量?

PowerShell 中有许多预定义变量,称为自动变量。这些变量主要存储有关 PowerShell 的信息,并由 PowerShell 创建和维护。任何用户都无法更改或更新这些变量的值。

以下是一些常见的自动变量:

  • $$
  • $?
  • $^
  • $_
  • $args
  • $Error
  • $foreach
  • $Home
  • $input
  • $null
  • $PSHome
  • $PWD

19) 解释 PowerShell 中的数组?

PowerShell 中的数组是一种数据结构,它在一个变量中存储值的集合。


20) PowerShell 中的哈希表是什么?

PowerShell 中的哈希表也称为字典或关联数组。它是一种紧凑的数据结构,用于通过键存储每个值。对于每个哈希表,PowerShell 中都有一个哈希表对象。

以下框描述了哈希表的语法:


21) 列出 PowerShell 中不同类型的运算符?

以下是 PowerShell 中不同类型的运算符:

  1. 算术运算符
  2. 赋值运算符
  3. 比较运算符
  4. 逻辑运算符
  5. 重定向运算符
  6. 拆分和连接运算符

22) 解释 PowerShell 中的比较运算符?

比较运算符在 PowerShell 中用于比较值。以下是四种类型的比较运算符:

  1. 相等比较运算符
  2. 匹配比较运算符
  3. 包含比较运算符
  4. 替换比较运算符

23) PowerShell 中的 cmdlet 是什么?

Cmdlet 是用 VB 或 C# 等 .NET 语言编写的命令,由 Windows PowerShell 引入。Cmdlet 将 Microsoft .NET 框架的对象返回到管道中的下一个命令。PowerShell cmdlet 遵循**动词-名词**模式,例如 **get-help、set-Item**。


24) PowerShell 中的循环是什么?

当您需要在 PowerShell 中多次执行命令块或语句时,请使用循环的概念。

以下是 PowerShell 中的几种循环类型:

PowerShell Interview Questions
  1. While 循环
  2. Do-While
  3. For 循环
  4. ForEach 循环

25) 解释 PowerShell 中不同类型的循环?

1. While 循环:此循环也称为入口控制循环。当给定条件评估为 True 时,它按顺序执行块中的命令。以下框描述了 while 循环的语法:

2. For 循环:在此循环中,如果条件返回 True 值,则块中的命令或语句逐个执行,否则循环终止。以下框描述了 For 循环的语法:

3. Do-While 和 Do-Until 循环

  • Do-while:此循环称为出口控制循环。此循环至少执行一次命令块,因为条件是在块之后检查的。在此循环中,如果条件为 True,则执行块中的命令。否则,循环终止。以下框描述了 Do-while 循环的语法:
  • Do-Until:此循环也称为出口控制循环。此循环也至少执行一次命令块,因为条件是在块之后检查的。在此循环中,如果条件为 False,则执行块中的命令。否则,循环终止。以下框描述了 Do-Until 循环的语法:

4. ForEach 循环:此循环在 PowerShell 中用于访问数组或对象、数字、字符串等的集合。以下框描述了 ForEach 循环的语法:


26) 名称是用于复制文件、注册表项或文件夹的命令?

Copy-Item 是一个命令,用于在文件系统驱动器中复制文件或文件夹,并在注册表驱动器中复制注册表项。


27) 名称是用于格式化数据的格式命令类型?

  1. Format-List
  2. Format-Table
  3. Format-Wide
  4. Format-Custom

28) 如何重命名变量?

以下示例描述了如何重命名变量:


29) 解释 PowerShell get-command?

get-command 是一个 cmdlet,用于显示计算机系统上所有已安装的命令。它显示所有命令、筛选器、别名、脚本和应用程序。


30) 如何执行 PowerShell 脚本?

要运行 PowerShell 脚本,您需要按照以下步骤操作:

步骤 1:在记事本等文本编辑器中键入命令。

步骤 2:将文件保存为 .ps1 扩展名。

步骤 3:打开 PowerShell 命令 shell,然后通过键入 PowerShell 文件名来执行该文件。