1

我正在尝试从我的 c# 应用程序调用 Azure Powershell 命令(使用 windows auth 运行) Azure powershell sdk 安装在 Windows 2012 R2 机器上,用于“User1”,他也是网络和机器的管理员。使用的代码:

string psFile= @"C:\AVC\Vmstatus.ps1 -VmName testvm";
Runspace runspace = RunspaceFactory.CreateRunspace();
            runspace.Open();
            Pipeline pipeline = runspace.CreatePipeline();
            pipeline.Commands.AddScript(psFile);
            pipeline.InvokeAsync();
            WaitHandle[] handles = new WaitHandle[2];
            handles[0] = pipeline.Output.WaitHandle;
            handles[1] = pipeline.Error.WaitHandle;

            while (pipeline.PipelineStateInfo.State == PipelineState.Running)
            {
                switch (WaitHandle.WaitAny(handles))
                {
                    case 0: a = pipeline.Output.Read();
                        vm.ip = ((dynamic)a).IpAddress;
                        vm.vmStatus = ((dynamic)a).PowerState;
                        vm.vmName = ((dynamic)a).name;


                        break;
                    case 1: object b = pipeline.Error.Read();
                        throw new CryptographicException(b.ToString());
                }
            }

情景的

  1. 以 User1 身份登录时从 VS 2013 运行的代码 - 有效
  2. 以 User2 身份登录时从 Vs 2013 运行的代码 - 有效
  3. 从 iis 以 User1 身份运行的代码 -Works
  4. Wierdest of all=> 代码从 IIS 以 user2 身份运行而 USer1 登录到该框 - 工作
  5. 以用户 2 身份从 IIS 运行的代码 - 不起作用
  6. 以用户 2-Works 从普通的 powershell 运行
  7. 以用户 2-works 从 Azure powershell cmd 运行

我正在使用 VS 调试 IIS 应用程序,收到的异常是

System.Security.Cryptography.CryptographicException: The system cannot find the file specified.

FullyQualifiedErrorId = "Microsoft.WindowsAzure.Commands.Profile.ImportAzurePublishSettingsCommand"

深入研究问题:1)为用户1和用户2安装了证书

4

0 回答 0