【发布时间】:2018-05-03 09:28:02
【问题描述】:
我正在使用 C# 执行 PowerShell 脚本:
using (PowerShell powerShellInstance = PowerShell.Create())
{
string query = string.Format(@"$server = ""{0}""
$db = ""master""
$sql = ""SELECT DISTINCT hostprocess FROM master.dbo.sysprocesses""
$user = ""{1}""
$pass = ""{2}""
$processId = Invoke-sqlcmd -Server $server -Database $db -Username $user -Password $pass -Query $sql | select -ExpandProperty hostprocess
Write-Output $processId", Server, DbUserName, DbPass);
powerShellInstance.AddScript(query);
var results = powerShellInstance.Invoke();
}
当我在 PowerShell 控制台中运行脚本时,它返回 2 个字符串值。但在 C# 中,results 有 2 个元素,但它们为空。这里有什么问题,为什么通过 C# 执行时行为不同?
【问题讨论】:
-
我已经尝试修复格式 - 您可能想检查我没有更改含义;如果你想进一步调整,点击“编辑”
-
请不要在收到您想要的答案后删除问题。这剥夺了未来的读者可以学习的潜在好材料,并阻止现有的回答者因他们提供的帮助而获得荣誉。
标签: c# powershell