gpt4 book ai didi

c# - 有没有办法对 Azure Powershell Cmdlet 进行子类化,或者类似的方法?

转载 作者:太空宇宙 更新时间:2023-11-03 13:47:41 25 4
gpt4 key购买 nike

我正在编写一些 powershell cmdlet 来自动配置 Azure 订阅。用例之一是让开发人员配置自己的环境。目前这需要大约 20 个步骤并且容易出错。与使用 Microsoft 的 Azure GUI 和一组指令相比,向他们提供一些默认的 azure cmdlet 最终会出现更多错误。我想要一个脚本来帮助他们完成配置过程,并抽象出大量的簿记和错误检查。

我尝试在 Powershell 脚本中完成所有这些操作,但这变得很困惑:

Function SelectSubscription()
{
$match = $False;
while(!($match))
{
Write-Host "Enter a subscription from the following list:";
DisplaySubscriptions;
$global:subscription = Read-Host " ";

(Get-AzureSubscription).GetEnumerator() | ForEach-Object
{
if ($_.SubscriptionName -eq $subscription)
{
Write-Host "Setting default subscription to: $subscription";
Set-AzureSubscription -DefaultSubscription $subscription;
$match = $True;
};
};
if (!($match))
{
Write-Host "That does not match an available subscription.`n";
};
};
}

(这会显示您可以通过 .publishsettings 文件看到的当前订阅,并提示您从中进行选择。如果您的输入无效,则会再次询问。)

我想要的是一个像 Set-MyAzureSubscription 这样的自定义 cmdlet,其中包含所有这些逻辑。稍后我可以将其连接到 Get-Help

因此,我在 VS2010 中设置为创建 cmdlet,并且我想从自定义 cmdlet 内部调用 Get-AzureSubscription。我可以通过打开 powershell 脚本的实例来调用 cmdlet...然后以编程方式粘贴文本...但这似乎不太理想。

有关该方法的更多信息,请参见:Call azure powershell cmdlet from c# application fails

还有其他方法可以做到这一点吗?这就是我迄今为止在 C# 中所拥有的。

namespace Automated_Deployment_Cmdlets
{
[Cmdlet(VerbsCommon.Set, "CustomSubscription", SupportsShouldProcess=true)]
class CustomSubscription : PSCmdlet
{
[Parameter(Mandatory=true, ValueFromPipelineByPropertyName=true)]
public string DefaultSubscription { get; set; }

protected override void ProcessRecord()
{
base.ProcessRecord();
// Call Get-AzureSubscription, then do some stuff -- as above.
}
}
}

最佳答案

这个MSDN topic展示如何从 C# cmdlet 实现中轻松调用另一个 cmdlet。

关于c# - 有没有办法对 Azure Powershell Cmdlet 进行子类化,或者类似的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14742380/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com