我正在尝试在 C# 中的 Powershell 中执行 SQL 查询。我已经使用 ActiveDirectory cmdlet 成功地做到了这一点,并希望更进一步。
我的第一个问题是,虽然以下格式适用于 ActiveDirectory(和 ISE),但它在 C# 中失败:
using (PowerShell pS = PowerShell.Create())
{
pS.AddCommand("import-module");
pS.AddArgument("sqlps");
pS.Invoke();
}
我早就将安全设置为无限制,但我得到的错误是:
CmdletInvocationException 未处理
文件 C:\Program Files (x86)\Microsoft SQL Server\110\Tools\PowerShell\Modules\sqlps\Sqlps.ps1 无法加载,因为在此系统上禁用了运行脚本。有关详细信息,请参阅http://go.microsoft.com/fwlink/?LinkID=135170上的 about_Execution_Policies 。
但是,如果我这样运行,我不会收到任何错误,尽管稍后的“Get-Module -all”调用没有显示模块的迹象:
using (PowerShell pS = PowerShell.Create())
{
pS.AddScript("Import-Module sqlps");
pS.Invoke();
}
如果我然后尝试导入 ActiveDirectory 模块并调用 Get-Module,它不会显示任何内容。
这里发生了什么?