Add-Type在首次运行PowerShell脚本时不起作用

时间:2019-05-15 18:35:02

标签: sql powershell smo

我正在研究一个Powershell脚本,该脚本与本地SQL Server 2016数据库实例进行交互。当我在ISE中打开脚本并运行它时,它失败并显示错误:“验证是否已加载包含此类型的程序集”。如果我之后立即再次运行它,它将起作用。

我当前正在加载如下代码:

Add-Type -AssemblyName "Microsoft.SqlServer.Smo, Version=14.0.0.0, Culture=neutral, PublicKeyToken89845dcd8080cc91"

但是我以前尝试过

[reflection.assembly]::LoadWithPartialName("Microsoft.SqlServer.Smo") and got the same results.

我也尝试添加:

start-sleep -s 120

如果这只是与时间相关的问题,但这没有效果。

我希望程序集将在几秒钟内加载,然后立即可用。除了“验证包含这种类型的程序集是否已加载”之外,我还从丢失的程序集创建的对象上获得了NullReferenceExceptions。

1 个答案:

答案 0 :(得分:0)

我终于找到了答案。加载SMO程序集的正确和建议的方法是导入SqlServer模块:

Import-Module SqlServer

它包含在this Microsoft article