技术开发 频道

微软新一代数据库新增PowerShell支持

        【IT168 专稿】接触过UNIX或者Linux 的朋友都知道此类系统有着功能强大、无所不能的壳程序,称之为Shell。微软公司于2006年第四季度正式发布PowerShell,它的出现标志着, 微软公司向服务器领域迈出了重要的一步, 不仅提供简便的图形化操作界面,同时提供类似于Unix, Linux等操作系统中强大的Shell管理模式。

  经过几年的努力,微软已逐步开发各服务器端产品对PowerShell 的支持。不懂PowerShell必将会被淘汰,今天我们就来看看SQL Server对PowerShell的支持。从实质上来说,SQL Server 2008应该是第一个支持Powershell的SQL Server版本,但是其功能不完善,极少有DBA会用到此功能。在SQL Server 2012中增加了更多的cmdlet,功能趋于完善,本文的目的就是介绍在SQL Server 2012环境下如何通过Powershell来实现对SQL Server服务器的管理。

  导入SQL Server的PS模块

  微软虽然针对不同的产品都有各自的Shell,但是这些产品都有相同的shell环境,而不同之处只是导入了不同的PS模块或者说是PowerShell插件。针对SQL Server 2012的管理也是如此,从PowerShell 管理 SQL Server 的方法是将 SQL Server的管理模块sqlps 模块导入到 Windows PowerShel环境中。 该模块将加载并注册 SQL Server 管理单元和管理程序集。

  首先,我们需要使用 Set-ExecutionPolicy cmdlet 设置相应的脚本执行策略。为了防止恶意脚本的执行,PowerShell有一个执行策略,默认情况下,这个执行策略被设为受限的也就是Restricted,意味着PowerShell脚本无法执行。我们可以使用Get-ExecutionPolicy查看当前的执行策略,如下图所示:

微软新一代数据库新增PowerShell支持

  默认情况下PowerShell脚本是不允许执行的,我们可以根据需要进行相应的人修改,可供选择的参数有:Restricted、RemoteSigned、AllSigned、Unrestricted。其中Restricted就是默认设置,脚本不能运行; RemoteSigned的意思是本地创建的脚本可以运行,但从网上下载的脚本不能运行,除非它们拥有由受信任的发布者签署的数字签名; AllSigned的意思是仅当脚本由受信任的发布者签名才能运行。Unrestricted则指脚本执行不受限制,不管来自哪里,也不管它们是否有签名,这是个完全放开的策略。我们在此是测试环境,我就直接放开,但方便的同时,就要面临一定的安全风险。如下图所示:

微软新一代数据库新增PowerShell支持

  接下来就可以加载SQLPS模块了,在此,我们使用 Import-Module cmdlet,默认情况下,会显示与 Encode-Sqlname 和 Decode-Sqlname 有关的警告,如果不希望显示此类警告信息,可以使用 DisableNameChecking 参数,如下图所示:

微软新一代数据库新增PowerShell支持

  此时就成功将 SQL Server 组件导入到 Windows PowerShell环境中。

0
相关文章