Runbook 测试窗格未显示写入输出

Runbook test pane is not showing Write-Output

我是自动化的新手,也是 Powershell 的新手,所以我希望这是一个简单的修复。 :)

我正在尝试获取 运行 的一些代码。据我所知,它确实 运行,但测试窗格没有显示任何内容。基于此线程:Azure powershell runbook don't show any output,我确实尝试重新发布代码并清除浏览器缓存,但这对我的情况没有帮助,所以我认为代码有问题?

这是我的(通用化)代码:

workflow DB_DailyTasks 
{
    Write-Output "Code starting"

    inlinescript 
    {
        [string] $SqlServerName = "myDb.database.windows.net"
        $Credential = Get-AutomationPSCredential -Name "myDatabase-automation"
        # Setup credentials   
        $ServerName = $Using:SqlServerName
        $UserId = $Using:Credential.UserName
        $Password = ($Using:Credential).GetNetworkCredential().Password

        # Execute the udp_myProc procedure

        # Create connection for each individual database
        $DatabaseConnection = New-Object System.Data.SqlClient.SqlConnection
        $DatabaseCommand = New-Object System.Data.SqlClient.SqlCommand

        Write-Output "ConnectionState is: $(DatabaseConnection.State)"

        $DbName = "myDb"

        # Setup connection string for $DbName
        $DatabaseConnection.ConnectionString = "Server=$ServerName; Database=$DbName; User ID=$UserId; Password=$Password;"
        $DatabaseConnection.Open();

        Write-Output "ConnectionState is: $(DatabaseConnection.State)"

        # Create command for a specific database $DBName
        $DatabaseCommand.Connection = $DatabaseConnection

        Write-Output "Running udp_myProc procedure"

        $DatabaseCommand.CommandText = "EXECUTE [dbo].[udp_myProc]"
        $NonQueryResult = $DatabaseCommand.ExecuteNonQuery()

        # Close connection to $DbName
        $DatabaseConnection.Close()        
    }
}

...这是我尝试测试时在测试窗格中看到的内容:

...这对于了解它是否真的 运行 没有太大帮助。

提前感谢您提供的任何帮助! :)

[编辑] 代码绝对不是 运行ning。存储过程将条目插入到历史记录 table 中,但没有记录 运行ning 用于测试或当我 运行 发布的输出时。

有趣的是,当我 运行 发布输出时,没有错误也没有警告,但它确实在“输出”选项卡中显示 "This job does not have any output"。

[编辑 #2]:它也不会在我的本地计算机上写入任何内容??

[编辑 #3]:将内联脚本块内的 Write-Output 替换为 Write-Host。在 Azure 管理控制台或我的本地计算机上都没有变化。

我猜您创建的是 PowerShell 运行手册,而不是 PowerShell Workflow 运行手册。如果这是正确的,那么您的 Runbook 代码 声明 一个名为 DB_DailyTasks 的工作流,但永远不会 调用 它。例如,您可以 声明 一个函数,但不会期望它因此自动 被调用

除非您确定需要 工作流 ,而不是常规的 PowersShell 运行手册,否则我建议您从代码中删除 workflowInlineScript,并处理常规 PowerShell。

但是,如果您真的需要它作为工作流程(不推荐,除非您必须使用检查点和 parallelforeach -parallel 之类的东西),然后创建 "PowerShell Workflow" 类型:它以不同的方式对待 workflow 关键字,因此您的代码是正确的。