我正在尝试创建一个运行脚本的网站。我正在重新考虑这一点,我在大约3周前就开始研究这个问题了,我能够运行一个脚本并检索结果。现在我得到这个"方法没有实现"错误,代码没有变化......
public partial class SiteMaster : MasterPage
{
public static Runspace runspace = RunspaceFactory.CreateRunspace();
public static Command login = new Command("select-azurermprofile");
public static Collection<PSObject> UpdateVMsList()
{
ArrayList resourceGroups = GetRGs();
string rgsForPS = FormatRGs(resourceGroups);
PowerShell ps = PowerShell.Create();
string scr = @"C:\Users\dimas\Source\Repos\runPSsite\slnSite\slnSite\PS\Get-AzureRMVMParallel.ps1 -ResourceGroupNames " +
rgsForPS + "; $error;";
ps.Runspace = Runspace.DefaultRunspace;
Collection<PSObject> res = ps.Invoke();
// here goes the treatment of my res variable
}
}
我使用的是首页加载的母版页。我在代码的最后一行放置了一个断点,res
包含这个:
{Microsoft.Azure.Commands.Profile.Models.PSAzureContext}
{Method 'AuthenticateAsync' in type 'Microsoft.Azure.Commands.Common.Authentication.KeyStoreApplicationCredentialProvider' from assembly 'Microsoft.Azure.Commands.Common.Authentication, Version=2.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' does not have an implementation.}
第一行是预期的,我正在运行自己的登录脚本,该脚本使用使用Save-AzureRMProfile
cmdlet创建的配置文件。
当我运行脚本Get-AzureRMVMParallel.ps1
时会发生第二行,但如果我使用有效的ResourceGroup参数运行Get-AzureRMVM
,则会发生同样的情况。
如果我打开PowerShell ISE,运行AzureLogin.ps1然后使用相同的参数调用get-azurermvmparallel,它就可以工作。
感谢您抽出宝贵时间阅读,我们将不胜感激。
迪马斯
答案 0 :(得分:0)
我对这部分代码有类似的问题,它本周早些时候工作但已经开始失败了。我认为它可能与在Azure中升级的PowerShell有关:https://github.com/Azure/azure-powershell/releases/tag/v4.2.0-July2017
鉴于您的代码已停止工作,它是否可以相关?
更新:这为我们解决了问题:https://feedback.azure.com/forums/246290-automation/suggestions/16590229-get-azurermvm-failing-in-azure-automation