关于 PSSnapins

简短说明

介绍 Windows PowerShell 管理单元,并演示如何使用和管理它们。

详细说明

Windows PowerShell 管理单元是包含 Windows PowerShell 提供程序和/或 cmdlet 的 Microsoft .NET Framework 程序集。 Windows PowerShell 包含一组基本管理单元,但可以通过添加包含你创建或从其他人获取的提供程序和 cmdlet 的管理单元来扩展 Windows PowerShell 的强大功能和价值。

添加管理单元时,它包含的 cmdlet 和提供程序立即可用于当前会话,但更改仅影响当前会话。

若要将管理单元添加到所有将来的会话,请将它保存在 Windows PowerShell 配置文件中。 还可以使用 Export-Console cmdlet 将管理单元名称保存到控制台文件中,然后在将来的会话中使用它。 您甚至可以保存多个控制台文件,每个文件都有一组不同的管理单元。

注意:Windows PowerShell 管理单元 (PSSnapins) 可用于 Windows PowerShell 3.0 和 Windows PowerShell 2.0。 它们可能会在后续版本中被更改或不可用。 若要打包 Windows PowerShell cmdlet 和提供程序,请使用模块。 有关创建模块和将管理单元转换为模块的信息,请参阅 编写 Windows PowerShell 模块

查找 SNAP-INS

若要获取计算机上的 Windows PowerShell 管理单元列表,请键入:

Get-PSSnapin

若要获取每个 Windows PowerShell 提供程序的管理单元,请键入:

Get-PSProvider | Format-List name, pssnapin

若要获取 Windows PowerShell 管理单元中 cmdlet 的列表,请键入:

Get-Command -Module <snap-in_name>

安装 SNAP-IN

内置管理单元在系统中注册,并在启动 Windows PowerShell 时添加到默认会话。 但是,必须注册你创建或从其他人获取的管理单元,然后将管理单元添加到会话。

注册 SNAP-IN

Windows PowerShell 管理单元是用 .NET Framework 语言编写的程序,它被编译成 .dll 文件。 若要在管理单元中使用提供程序和 cmdlet,必须先注册管理单元(将其添加到注册表中)。

大多数管理单元都包含一个安装程序(.exe 或 .msi 文件),用于为您注册 .dll 文件。 但是,如果您收到作为 .dll 文件的管理单元,则可以在系统上注册它。 有关详细信息,请参阅 MSDN 库中 如何注册 Cmdlet、提供程序和主机应用程序

若要获取系统上所有已注册的管理单元或验证是否已注册管理单元,请键入:

Get-PSSnapin -registered

将 SNAP-IN 添加到当前会话

若要将已注册的管理单元添加到当前会话,请使用 Add-PSSnapin cmdlet。 例如,若要将 Microsoft SQL Server 管理单元添加到会话,请键入:

Add-PSSnapin sql

在命令完成后,管理单元中的提供程序和 cmdlet 可在会话中使用。 但是,除非您保存它们,否则它们仅在当前会话中可用。

保存 SNAP-INS

要在将来的 Windows PowerShell 会话中使用管理单元,请将 Add-PSSnapin 命令添加到您的 Windows PowerShell 配置文件中。 或者,将管理单元名称导出到控制台文件。

如果将 Add-PSSnapin 命令添加到配置文件中,则该命令在将来的所有 Windows PowerShell 会话中都可用。 如果在会话中导出管理单元的名称,则仅当需要管理单元时,才能使用导出文件。

若要将 Add-PSSnapin 命令添加到 Windows PowerShell 配置文件,请打开配置文件,粘贴或键入命令,然后保存配置文件。 有关详细信息,请参阅about_Profiles。

要将会话中的管理单元保存在控制台文件 (.psc1) 中,请使用 Export-Console cmdlet。 例如,要将当前会话配置中的管理单元保存到当前目录中的 NewConsole.psc1 文件中,请键入:

Export-Console NewConsole

有关更多信息,请参阅 Export-Console。

使用控制台文件打开 WINDOWS POWERSHELL

若要使用包含管理单元的控制台文件,请从 Cmd.exe 或其他 Windows PowerShell 会话中的命令提示符启动 Windows PowerShell(PowerShell.exe)。 使用 PsConsoleFile 参数指定包含管理单元的控制台文件。 例如,以下命令使用 NewConsole.psc1 控制台文件启动 Windows PowerShell:

PowerShell.exe -psconsolefile NewConsole.psc1

管理单元中的提供程序和 cmdlet 现在可在会话中使用。

删除 SNAP-IN

若要从当前会话中删除 Windows PowerShell 管理单元,请使用 Remove-PSSnapin cmdlet。 例如,若要从当前会话中删除 SQL Server 管理单元,请键入:

Remove-PSSnapin sql

此 cmdlet 将从会话中删除管理单元。 管理单元仍在加载,但它支持的提供程序和 cmdlet 不再可用。

BUILT-IN 命令

在 Windows PowerShell 2.0 和 Windows PowerShell 3.0 及更高版本的旧式主机程序中,随 Windows PowerShell 一起安装的内置命令打包在管理单元中,这些管理单元会自动添加到每个 Windows PowerShell 会话中。

从 Windows PowerShell 3.0 开始,在较新样式的主机程序(使用 InitialSessionState.CreateDefault2 方法启动会话的程序)中,内置命令打包在模块中。 Microsoft.PowerShell.Core 例外,它始终显示为管理单元。 默认情况下,Core 管理单元包含在每个会话中。 内置模块在首次使用时自动加载。

注意:远程会话(包括使用 New-PSSession cmdlet 启动的会话)是旧式会话,其中内置命令打包在管理单元中。

以下管理单元(或模块)随 Windows PowerShell 一起安装。

  • Microsoft.PowerShell.Core - 包含用于管理 Windows PowerShell 基本功能的提供程序和 cmdlet。 它包括 FileSystem、Registry、Alias、Environment、Function 和 Variable 提供程序以及基本 cmdlet,如 Get-Help、Get-Command 和 Get-History。

  • Microsoft.PowerShell.Host - 包含 Windows PowerShell 主机使用的 cmdlet,例如 Start-Transcript 和 Stop-Transcript。

  • Microsoft.PowerShell.Management - 包含用于管理基于 Windows 的功能的 cmdlet,例如 Get-Service 和 Get-ChildItem。

  • Microsoft.PowerShell.Security - 包含用于管理 Windows PowerShell 安全性的证书提供程序和 cmdlet,例如 Get-Acl、Get-AuthenticodeSignature 和 ConvertTo-SecureString。

  • Microsoft.PowerShell.Utility - 包含用于作对象和数据的 cmdlet,例如 Get-Member、Write-Host 和 Format-List。

  • Microsoft.WSMan.Management - 包含管理 Windows 远程管理服务的 WSMan 提供程序和 cmdlet,例如 Connect-WSMan 和 Enable-WSManCredSSP。

记录 SNAP-IN 事件

从 Windows PowerShell 3.0 开始,可以通过将模块和管理单元的 LogPipelineExecutionDetails 属性设置为 TRUE,在 Windows PowerShell 模块和管理单元中记录 cmdlet 的执行事件。 有关详细信息,请参阅 about_EventLogs

另请参阅

Add-PSSnapin

Get-PSSnapin

删除 PSSnapin

导出控制台

获取命令

about_Profiles

about_Modules

关键字

about_Snapins、about_Snap_ins、about_Snap