附录 - 复习问题的答案

本附录提供了在每个章节末尾找到的评审问题的简明答案。 使用它来验证理解并强化关键概念。

第 1 章 - PowerShell 入门

  1. 使用 $PSVersionTable 自动变量。
  2. 仅当您需要绕过用户帐户控制(UAC)时,才需在本地计算机上进行任务提升。
  3. Windows客户端系统上的默认执行策略是 Restricted,这会阻止运行脚本。
  4. 用于 Get-ExecutionPolicy 确定当前执行策略。
  5. 使用 Set-ExecutionPolicy (例如, Set-ExecutionPolicy -ExecutionPolicy RemoteSigned)。

第 2 章 - 帮助系统

  1. 否。 DisplayName 参数是通过名称指定的,而不是通过位置。
  2. Get-Process 具有六个参数集。
  3. 使用 Get-Command -Noun EventLog
  4. 使用 Get-Process -Name powershell
  5. 运行 Update-Help(在 Windows PowerShell 中提升为管理员),下载并安装最新的帮助内容。

第 3 章 - 发现对象、属性和方法

  1. Get-Process 生成对象 System.Diagnostics.Process
  2. 通过管道将命令传递给 Get-Member.
  3. 检查对象是否具有执行该操作的方法。
  4. 使用命令 PassThru 的参数(如果有)。
  5. 运行命令一次,并将结果存储在变量中,以避免在原型制作时反复生成大量输出。

第 4 章 - One-Liners 和管道

  1. PowerShell 单行脚本是一条连续的管道,不管它跨越多少物理行。
  2. 自然换行符可以出现在管道(|)、逗号(,)、左括号([ ])、大括号({ })和括号(( ))等字符上。
  3. 应通过减少通过管道传递的数据量来筛选以改进性能和效率。
  4. 命令可以按值(按类型)或属性名称接受管道输入。
  5. 由于PowerShell 库中的大多数内容都是社区贡献的,可能未经审查,因此应在使用前对其进行评审和测试。

第 5 章 - 格式、别名、提供程序、比较

  1. 因为格式化 cmdlet 会生成格式对象,这会中断管道,并且不能由大多数其他命令使用。
  2. 使用 Get-Alias -Name % 来确定具体的 cmdlet。
  3. 由于别名减少了可读性和可移植性,使脚本更难让其他人理解。
  4. 使用 Get-ChildItem -Path HKLM:\, HKCU:\ 列出这两个配置单元中的注册表项。
  5. 默认情况下, -replace 运算符不区分大小写,而该方法 .Replace() 区分大小写。

第 6 章 - 流控制

  1. ForEach-Object 从管道中以流式处理的方式逐个处理项目,而 foreach 语句则处理已加载到内存的集合中的项目。
  2. while循环在运行之前评估其条件,因此如果条件为 false,则可能完全不运行,与do whiledo until不同,后者至少运行一次,并在运行后评估条件。
  3. break 完全退出循环,同时 continue 跳过当前迭代并继续执行下一个循环。

第 7 章 - 使用 WMI

  1. WMI cmdlet(例如, Get-WmiObject)较旧且使用 DCOM,而 CIM cmdlet(例如) Get-CimInstance较新,默认情况下使用 WSMan。
  2. WSMan(Windows远程管理)。
  3. CIM 会话允许重复使用连接、支持备用凭据、提高性能并简化管理多个远程连接。
  4. 创建会话New-CimSessionOption选项,例如,使用 DCOM,并将其传递给New-CimSession,然后使用该会话。Get-CimInstance
  5. 使用 Remove-CimSession

第 8 章 - PowerShell 远程处理功能

  1. 使用 Enable-PSRemoting
  2. 使用 Enter-PSSession
  3. 它允许你使用持久性会话,而不是使用每个命令指定计算机名称和凭据。
  4. 是的,可以在一对一交互式远程处理方案中使用 PowerShell 会话(PSSession)。
  5. 本地运行 cmdlet 使用方法返回实时对象,而远程命令返回不带方法的反序列化对象。

第 9 章 - 函数

  1. 使用 Get-Verb
  2. [CmdletBinding()] 属性添加到函数。
  3. 当函数对系统状态进行更改或执行可能影响的操作时。
  4. 指定 -ErrorAction Stop
  5. 若要记录如何使用函数,以便你和其他人可以轻松理解它并查找帮助 Get-Help

第 10 章 - 脚本模块

  1. 创建一个 .psm1 文件并将函数放入其中。
  2. 使用批准的谓词可确保一致性、避免警告并提高可发现性。
  3. 使用 New-ModuleManifest
  4. .psm1文件中使用Export-ModuleMember或在.psd1文件的FunctionsToExport字段中指定函数。
  5. 该模块必须位于与模块相同的文件夹中,该文件夹位于列出的路径中 $env:PSModulePath,并且包含相应的模块文件(.psm1 或清单)。

最终说明

  • 这些答案是有意简洁的,以强化关键概念。
  • 重新访问章节,以便更深入地了解。