【问题标题】:Where is the best place to Add-PSSnapin SqlServerCmdletSnapin* and SqlServerProviderSnapin*?Add-PSSnapin SqlServerCmdletSnapin* 和 SqlServerProviderSnapin* 的最佳位置在哪里?
【发布时间】:2016-01-23 13:48:23
【问题描述】:

我创建了一些 psm1 文件,并将以下几行放在每个 psm1 文件的顶部,

Set-StrictMode -Version 2
Add-PSSnapin SqlServerCmdletSnapin*
Add-PSSnapin SqlServerProviderSnapin*

但是,它得到了警告

警告:从模块“mymodule”中导入的一些命令的名称包括未经批准的动词,这些动词可能会使它们 不易被发现。要查找带有未批准动词的命令,请使用 Verbose 再次运行 Import-Module 命令 范围。要获得批准的动词列表,请键入 Get-Verb。

如果多次导入模块会出现以下错误。

Add-PSSnapin :已添加具有相同密钥的项目。 在行:1 字符:1 + 添加-PSSnapin SqlServerCmdletSnapin* + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [Add-PSSnapin], ArgumentException + FullyQualifiedErrorId : System.ArgumentException,Microsoft.PowerShell.Commands.AddPSSnapinCommand Add-PSSnapin :已添加具有相同密钥的项目。 在行:2 字符:1 + 添加-PSSnapin SqlServerProviderSnapin* + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [Add-PSSnapin], ArgumentException + FullyQualifiedErrorId : System.ArgumentException,Microsoft.PowerShell.Commands.AddPSSnapinCommand

或者有没有办法在系统启动时为每个用户加载这些管理单元?

【问题讨论】:

    标签: powershell


    【解决方案1】:

    警告只是说SqlServerCmdletSnapinSqlServerProviderSnapin 的作者为其功能使用了一些“未经批准”的名称。但是这些功能可以正常工作,尽管 MS 认为它们可能“不易被发现”(当用户从​​ PS 控制台搜索命令,如编写“Get-”和按 Tab-Tab-Tab... 时)。

    所以你把它们放在顶部是对的,只需添加-ErrorAction SilentlyContinue 即可消除警告:

    Add-PSSnapin SqlServerCmdletSnapin* -ErrorAction SilentlyContinue 
    Add-PSSnapin SqlServerProviderSnapin* -ErrorAction SilentlyContinue
    

    至于为每个用户加载这些管理单元,有几个选项可以使用配置文件来完成。阅读Understanding the Six PowerShell Profiles 文章。

    【讨论】:

      猜你喜欢
      • 2011-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多