1

我开发了一个 Web 角色来管理在本地工作但在部署在云服务中时不工作的 Azure VM。

我已经通过与云服务的 RDP 连接执行了 PowerShell 中的 web 角色中的 cmd,所以我知道 PowerShell v3.0 和 Azure cmd 工作正常。

第一步我有一些权限和证书问题但解决了,现在的问题是我在事件查看器中看不到任何错误。

我正在使用 System.Automation.dll 的 PowerShell.Create()

string script = "Set-ExecutionPolicy Unrestricted -Force
script = "Import-Module \"D:\\Program Files (x86)\\Microsoft SDKs\\Windows Azure\\PowerShell\\Azure\" 2 >> C:\errorp.out";
script = "Set-AzureSubscription –DefaultSubscription \"Test Environment\"";
script = "Get-AzureVM " + vm

我正在尝试使用“2 >> C:\errorp.out”在所有命令中获取错误(实际上在所有命令中,但没有在此处复制),但它会创建一个空白文件。

我是否缺少任何额外的配置才能做到这一点?

4

2 回答 2

1

$error 变量将包含您的错误历史记录。例如

$error | format-list -property *
于 2013-08-19T14:32:27.553 回答
0

愚蠢的错误:我正在为脚本的每一行创建一个新的 shell

var shell = PowerShell.Create();

因此,在第二行中,在执行“Import-Module Azure”之后,第二个 shell 无法访问 Azure 命令。感谢@Rick 向我介绍了 $error,我得到了这个,但是可以在 C# 中工作,我所做的是:

if (shell.Streams.Error.Count > 0)
{
   for (int i = 0; i < shell.Streams.Error.Count; i++)
   {
      ResultBox.Text += "Error: " + shell.Streams.Error[i] + "\r\n";
   }
}
于 2013-08-20T14:35:35.400 回答