《PowerShell V3——SQL Server 2012数据库自动化运维权威指南》——1.6 导入SMO程序集...

    xiaoxiao2024-03-19  127

    本节书摘来自异步社区出版社《PowerShell V3—SQL Server 2012数据库自动化运维权威指南》一书中的第1章,第1.6节,作者:【加拿大】Donabel Santos,更多章节内容可以访问云栖社区“异步社区”公众号查看。

    1.6 导入SMO程序集

    在使用SMO库之前,需要导入程序集。在SQL Server 2012中,这个步骤比以前容易得多。

    1.6.1 准备

    SQL管理对象(SQL Management Objects,SMO)必须已经安装在你的机器上。

    1.6.2 如何做…

    在这个方案中,我们将导入SQLPS模块。

    1.打开PowerShell控制台或者PowerShell ISE,或者你喜欢的PowerShell编辑器。

    2.输入import-module命令。

    Import-Module SQLPS

    3.确认模块被导入。

    Get-Module

    1.6.3 如何实现…

    导入SMO程序集的方法在不同PowerShell版本之间有所不同。

    在PowerShell V1中,可以使用Load()或LoadWithPartialName()方法导入程序集。LoadWithPartialName()接受程序集的部分名称,从应用程序目录或者全局程序集缓存(Global Assembly Cache,GAC)导入。

    [void][Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer. Smo")

    尽管LoadWithPartialName()仍被支持,仍然保留了流行的导入程序集方法,但这个方法不应该再被使用,因为它将会在将来的版本中被废弃。

    Load()需要程序集的完整标识名。

    [void][Reflection.Assembly]::Load("Microsoft.SqlServer.Smo, Version=9.0.242.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91")

    在PowerShell V2中,可以通过Add-Type添加程序集。

    Add-Type -AssemblyName "Microsoft.SqlServer.Smo"

    在PowerShell V3中,不再需要逐个导入程序集,只需导入SQLPS。

    Import-Module SQLPS

    如果你正在使用特定的SQL Server版本,可能在有些情况下你仍然需要导入特定的DLL版本,或者你可能只想导入特定的程序集而不是导入整个SQLPS模块。在这种情况下,Add-Type仍然是导入程序集的有效方法。

    1.6.4 更多…

    当你导入SQLPS模块时,你可能会看到关于冲突或未经批准之类的语言。

    这意味着有些cmdlets不需要遵守PowerShell命名规范,但模块和它包含的cmdlets仍然全部导入到你的主机。为了阻止该警告,导入模块时使用-DisableNameChecking参数。

    1.6.5 可参阅

    安装SMO的方法

    最新回复(0)