什么是 Windows PowerShell?

Windows PowerShell 是一种面向对象的脚本语言,基于 .NET Framework 构建,用于 Windows 环境。它主要用于执行管理和报告操作,同时也能跨多个平台和应用程序(包括 Windows 操作系统)自动化管理任务。这是一本适合初学者学习 PowerShell 的实用指南。

你知道吗?/ PowerShell - 简短历史

2002 年之前 - 自动化和集成脚本工具几乎不存在。IT 管理员必须使用多种工具和语言,如 DOS Shell、VBScript 和 Windows Basic 脚本来管理他们的 Windows 环境。

2002 年 - Jeffrey Snover 发布了 Monad 宣言,介绍 Monad 作为“下一代管理自动化平台”。

近二十年来,PowerShell 多次被优化,发展到现在的版本 PowerShell 7.0。

Windows PowerShell 如何简化 AD 管理和报告?

PowerShell 为传统的 Windows 命令提示符增添了简便性、高效性和灵活性。它通常是集成 Windows 环境中不同应用管理任务的首选工具。事实上,它随 Windows Server 2008 之后发布的所有 Windows 操作系统版本预装,免去了单独安装的麻烦。由于支持 .NET 对象并能访问所有 .NET 库,它还可以与 C# 或 Visual Basic 等脚本语言协同工作。这份 PowerShell 教程对编程知识要求不高,适合初学者。

小白秘籍: ADManager Plus 提供了一个简单且用户友好的 GUI,比运行复杂的 PowerShell 脚本更轻松高效地完成关键的 Active Directory、Exchange 和 Office 365(Microsoft 365)管理任务。立即免费试用

如何启动 PowerShell?

许多 PowerShell 初学者最常问的问题是“如何启动 PowerShell?”PowerShell 在较新版本的 Windows 操作系统中预装。按照以下步骤启动它:

  1. 在开始菜单中搜索 Windows PowerShell。
  2. Click on the application, and select Run as Administrator as shown in the following image to launch it.
    搜索并运行Windows PowerShell
  3. If you have an earlier version installed and want to upgrade Windows PowerShell to its latest version, click here.

    在上图中,你还可以看到另一个结果,Windows PowerShell ISE 弹出。想知道它是什么吗?继续阅读,了解 PowerShell 与 PowerShell ISE 的区别!

什么是 Windows PowerShell ISE?

Windows PowerShell ISE 是一个集成脚本环境。它是 PowerShell 的默认编辑器,适用于运行和测试代码,以及调试和修复错误。该宿主应用程序还包含系统管理员常用的 cmdlet 和模块列表。

趣闻: PowerShell ISE 高度可定制,允许用户选择字体的配色方案!

  • PowerShell 中的 cmdlet 是什么? 

    PowerShell cmdlet 执行时返回一个 Microsoft .NET 对象。cmdlet 是在 PowerShell 管道中执行的单一命令。它们种类多样,包括二进制(C#)cmdlet、高级脚本函数、工作流和 CDXML。cmdlet 始终采用动词-名词格式。例如,Get-Help 是用于调用 PowerShell 主题或命令帮助的 cmdlet。

    等等,这听起来像命令。cmdlet 和命令是一样的吗?

    PowerShell cmdlet 是 PowerShell 命令的轻量级版本,但它们不同于其他命令行环境中传统使用的命令。与命令不同,cmdlet 不能单独执行。同样,cmdlet 不处理解析或输出格式化。由于 cmdlet 是面向记录的,通常一次处理一个对象。

  • 如何在 PowerShell 中使用 cmdlet? 

    Get-Help cmdlet 是任何开始学习 PowerShell 的人都非常重要且有用的 cmdlet。它帮助你了解 PowerShell 中使用的其他 cmdlet。让我们看看它是如何工作的。

    启动 PowerShell 并输入 "Get-Help",如下图所示。

    启动PowerShell并输入Get-Help以查看可用帮助主题

    按 Enter,你将看到如下输出:

    使用 Get-Help <cmdlet name> 显示有关任何 cmdlet 的详细信息

    如果你想了解某个特定 cmdlet,而不是所有可用的 cmdlet,请使用语法 "Get-help "。例如,如果想获取用于创建新项目的 cmdlet(即 "New-Item")的信息,请按下图输入该 cmdlet:

    运行 Get-ExecutionPolicy 查看当前的执行策略

    也可以试试这些:

    你可以尝试其他 cmdlet,比如 Get-Service,它返回机器上安装的所有服务列表。

    Get-Command cmdlet 返回所有命令、cmdlet、别名、函数、过滤器、脚本和应用程序的详尽列表。

  • 什么是 PowerShell 脚本,如何执行? 

    PowerShell 脚本通常保存为 .ps1 文件。默认情况下,Windows 通过阻止运行恶意脚本来保护你的机器,因此将 .ps1 文件视为恶意文件。不过,你可以右键点击 .ps1 文件,选择“用 PowerShell 运行”来执行它。如果你的策略设置为“Restricted”,可能无法运行脚本,除非将 .ps1 文件的策略更改为“Unrestricted”。请按照以下步骤确定并更改策略设置:

    1. 以管理员身份启动 PowerShell。
    2. Run the "Get-ExecutionPolicy" command. It will return information about the default execution policy as shown in this image.
      使用 Set-ExecutionPolicy <Policy Name> 修改执行策略
    3. 要更改执行策略,请运行命令 "Set-ExecutionPolicy "。例如,如果您想将执行设置更改为 "Unrestricted",则命令为:

    Set-ExecutionPolicy Unrestricted

    策略名称 描述
    Restricted 不允许运行任何脚本。这是默认设置。
    All Signed 仅允许受信任开发者签名的脚本运行。
    Remote Signed 允许运行本地创建的脚本。远程创建的脚本仅在由受信任开发者签名时允许运行。
    Unrestricted 任何脚本都可以无限制地运行。
    使用 Get-Help Cmdlet 获取有关 cmdlet 及其用法的信息

    您也可以通过在 cmd 中输入 PowerShell 脚本的完整路径来运行 PowerShell 脚本,例如 "C:\PS\samplescript.ps1"。

  • 组成 PowerShell 脚本的组件  

    PowerShell 脚本由许多不同的元素组成。您可以使用这些元素创建自己的自定义 cmdlet。

    它们包括:

    • 参数
    • 别名
    • 注释
    • 变量
    • 数组
    • 管道

    参数

    PowerShell 参数跟在每个 cmdlet 后的连字符后面。每个 cmdlet 可以有多个参数,代表不同的功能。例如,当您使用 cmdlet,

    Get-Service -Name T*

    星号 (*) 作为通配符,表示显示所有以字母 T 开头的服务。在此示例中,"Name" 是参数。

    有趣的事实: 当您使用 PowerShell ISE 时,在您在 cmdlet 后输入连字符后,它会自动列出所有兼容的参数。试试看!

    别名

    别名是 cmdlet 名称的简写。例如,您可以使用 "Help"(别名)代替 "Get-Help" cmdlet。两者都会返回相同的结果,如下图所示。

    在 PowerShell 中排序服务,使用 Get-Service | Sort-Object -Property Name 按字母顺序列出服务。
    PowerShell 变量示例,使用 $ 符号定义,后跟名称和赋值。

    注释

    PowerShell 注释的作用与其他脚本语言中的注释相同。它们有助于使用脚本的人更好地理解其目的。PowerShell 脚本中的注释以井号 (#) 符号开头。

    管道

    管道用于允许数据从一个 cmdlet 流向另一个 cmdlet。例如,您可以使用两个不同的 cmdlet 列出所有服务,然后按特定顺序排序,或者使用管道一次性列出并排序。以下示例按名称顺序排序服务。

    Get-Service | Sort-Object -Property Name

    PowerShell 数组示例,用于以结构化、顺序的方式存储多个值

    变量

    PowerShell 变量是用于存储值的内存块。PowerShell 变量以 "$" 符号开头,后跟变量名和 "=" 符号,再后跟值。变量名可以是数字、字母,甚至包含下划线。这些不区分大小写的变量是基于对象的,而非基于文本的。

    PowerShell 语法:

    $<variable name> = "<variable value>"

    示例:

    PowerShell 脚本组件 变量

    数组

    PowerShell 数组是一种数据结构,包含一组按顺序编号排列的元素或对象。数组可以包含一个或多个项目。项目可以是字符串、整数、对象、另一个数组,或这些的组合。项目的索引从 0(零)开始,依次为 1、2……

    PowerShell 语法:

    $ = @('<value1>','<value2>'...'<value n>')

    示例:

    PowerShell 脚本组件 数组
  • 用于 Active Directory 管理的 PowerShell 脚本  

    管理 Active Directory (AD) 的 PowerShell cmdlet 可在“Active Directory module for PowerShell”模块中找到,该模块可从开始菜单启动。如果未安装,您可以从以下链接为 Windows 10Windows 8.1Windows 8 或 Windows 7 安装。

    AD 的 PowerShell 命令帮助您轻松管理 AD 对象。许多 AD 管理任务都可以通过 PowerShell Active Directory 脚本高效完成。

Powershell 库

无缝身份和访问管理

  • 无需脚本管理AD用户、计算机、联系人、组等。
  • 超过200个预置报告及自定义报告生成器
  • 轻松遵守SOX、HIPAA、GDPR等IT法规合规性
  • 请输入企业邮箱地址
  • IN
  • 点击‘立即下载ADManager Plus’即表示您同意根据隐私政策处理个人数据。

谢谢!

您的下载正在进行中,几秒钟后即可完成!
如果遇到任何问题,请手动下载 这里