Private/Invoke-Azcli.ps1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
function Invoke-Azcli {
    <#
    .SYNOPSIS
        This function is a wrapper for azure cli
    .PARAMETER Arguments
        The arguments to be passed on to az
    #>


    [CmdletBinding()]
    param (
        [Parameter(Mandatory=$false,Position=1)]
        [String]$Arguments
    )

    $Output = Invoke-Expression -Command "az $Arguments"

    try {
        # Lets try to convert the json output
        Write-Output (ConvertFrom-Json -InputObject (-join $Output))
    } catch {
        # If we cant parse it, just write the output to the pipeline
        Write-Output $Output
    }

}