Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell 导出的Azure Automation图形Runbook定义(.graphrunbook)如何编码/加密?_Powershell_Azure_Azure Automation - Fatal编程技术网

Powershell 导出的Azure Automation图形Runbook定义(.graphrunbook)如何编码/加密?

Powershell 导出的Azure Automation图形Runbook定义(.graphrunbook)如何编码/加密?,powershell,azure,azure-automation,Powershell,Azure,Azure Automation,这是从Azure门户导出后.graphrunbook的(修剪)内容 { "SchemaVersion" : "1.2", "RunbookDefinition" : "AAA....AAA=" } runbook定义可能是基于XML或XAML的,虽然这看起来像是base64编码的文本,但将其解码会导致大部分仍然编码/难以辨认 上下文:我正在开发一个改进版的Sync-VsoGitRunbook,它可以与ARM一起使用,不需要任意的文件夹层次结构(通过自动确定依赖项),还可以

这是从Azure门户导出后.graphrunbook的(修剪)内容

{ 
    "SchemaVersion" : "1.2", 
    "RunbookDefinition" : "AAA....AAA=" 
}
runbook定义可能是基于XML或XAML的,虽然这看起来像是base64编码的文本,但将其解码会导致大部分仍然编码/难以辨认

上下文:我正在开发一个改进版的Sync-VsoGitRunbook,它可以与ARM一起使用,不需要任意的文件夹层次结构(通过自动确定依赖项),还可以部署图形运行手册——因为为什么不呢!对于本机和工作流来说,这些基本上都已完成,这只是最后一个要实现的部分


我目前没有使用任何图形运行手册,但如果/一旦我们使用,我希望它们符合体系结构。我还计划在包装/清理代码后将其开源。

使用Azure Automation图形创作SDK


使用Azure自动化图形创作SDK


使用Azure Automation图形创作SDK是唯一受支持的检查和修改.graphrunbox文件内容的方法。例如,这样的脚本将为您提供runbook使用的命令列表:

param(
    [Parameter(Mandatory = $true)]
    $RunbookPath,

    $GraphicalAuthoringSDKPath = 'C:\Program Files (x86)\Microsoft Azure Automation Graphical Authoring SDK'
)

function Get-RunbookActivities($Runbook, $ActivityType)
{
    $Runbook.Activities | %{ $_ -as $ActivityType } | ?{ $_ }
}

Add-Type -Path $GraphicalAuthoringSDKPath\Orchestrator.GraphRunbook.Model.dll

$SerializedRunbook = Get-Content $RunbookPath

$Runbook = [Orchestrator.GraphRunbook.Model.Serialization.RunbookSerializer]::Deserialize($SerializedRunbook)

@{
    'Invoked runbooks' = Get-RunbookActivities $Runbook Orchestrator.GraphRunbook.Model.InvokeRunbookActivity |
                            %{ $_.RunbookActivityType.CommandName }

    'Commands' = Get-RunbookActivities $Runbook Orchestrator.GraphRunbook.Model.CommandActivity |
                            %{ "$($_.CommandType.ModuleName)/$($_.CommandType.CommandName)" }

    'Code activity content' = Get-RunbookActivities $Runbook Orchestrator.GraphRunbook.Model.WorkflowScriptActivity |
                            %{ $_.Process }
}
此脚本提供的数据不完整:它仅列出runbook图表上显示为方框的活动。但是,还有其他方法可以将PS代码引入到运行手册中(例如链接条件、重试条件、活动参数中的PS表达式等)。如果您对这些数据也感兴趣,则可以改进脚本:可以使用此API检索图形运行手册中存储的所有数据


请从Chris提供的链接下载SDK的最新版本。最新版本包含一些重要的修复。

使用Azure Automation Graphical Authoring SDK是唯一受支持的检查和修改.graphrunbox文件内容的方法。例如,这样的脚本将为您提供runbook使用的命令列表:

param(
    [Parameter(Mandatory = $true)]
    $RunbookPath,

    $GraphicalAuthoringSDKPath = 'C:\Program Files (x86)\Microsoft Azure Automation Graphical Authoring SDK'
)

function Get-RunbookActivities($Runbook, $ActivityType)
{
    $Runbook.Activities | %{ $_ -as $ActivityType } | ?{ $_ }
}

Add-Type -Path $GraphicalAuthoringSDKPath\Orchestrator.GraphRunbook.Model.dll

$SerializedRunbook = Get-Content $RunbookPath

$Runbook = [Orchestrator.GraphRunbook.Model.Serialization.RunbookSerializer]::Deserialize($SerializedRunbook)

@{
    'Invoked runbooks' = Get-RunbookActivities $Runbook Orchestrator.GraphRunbook.Model.InvokeRunbookActivity |
                            %{ $_.RunbookActivityType.CommandName }

    'Commands' = Get-RunbookActivities $Runbook Orchestrator.GraphRunbook.Model.CommandActivity |
                            %{ "$($_.CommandType.ModuleName)/$($_.CommandType.CommandName)" }

    'Code activity content' = Get-RunbookActivities $Runbook Orchestrator.GraphRunbook.Model.WorkflowScriptActivity |
                            %{ $_.Process }
}
此脚本提供的数据不完整:它仅列出runbook图表上显示为方框的活动。但是,还有其他方法可以将PS代码引入到运行手册中(例如链接条件、重试条件、活动参数中的PS表达式等)。如果您对这些数据也感兴趣,则可以改进脚本:可以使用此API检索图形运行手册中存储的所有数据


请从Chris提供的链接下载SDK的最新版本。最新版本包含一些重要的修复。

这并不能完全回答问题。你能提供更多的细节吗?很好,谢谢克里斯。如果可能的话,我想知道更多一点。但这应该让我开始。我会随着我发现的更多内容而更新。这个博客系列似乎也是一个良好的开端。我希望将其视为集成VS开发的NuGet软件包。克里斯,作为这项工作的一部分,我尝试创建一个基本的图形运行手册,从自动化帐户执行对等(工作流)运行手册。(可能不支持本机-将来会支持吗?)编辑器允许添加和配置这些运行手册,但无法测试或发布它们-导致反序列化错误。我创建了另一个S/O问题:这并不能完全回答这个问题。你能提供更多的细节吗?很好,谢谢克里斯。如果可能的话,我想知道更多一点。但这应该让我开始。我会随着我发现的更多内容而更新。这个博客系列似乎也是一个良好的开端。我希望将其视为集成VS开发的NuGet软件包。克里斯,作为这项工作的一部分,我尝试创建一个基本的图形运行手册,从自动化帐户执行对等(工作流)运行手册。(可能不支持本机-将来会支持吗?)编辑器允许添加和配置这些运行手册,但无法测试或发布它们-导致反序列化错误。我创建了另一个S/O问题:RE:“最新版本包含一些重要的修复程序。”这确实突出了此程序集需要NuGet软件包。RE:“最新版本包含一些重要的修复程序。”这确实突出了此程序集需要NuGet软件包。