Есть ли переменная PowerShell, которую можно проверить, чтобы узнать, выполняется ли сценарий в облачной оболочке Azure?

Что-то похожее на $IsLinux или $IsWindows.


person Doug Finke    schedule 11.01.2020    source источник


Ответы (2)


Из вашего описания я не уверен, как вы запустили свой скрипт. Если вы используете Start-Job для запуска сценария PowerShell в качестве фонового задания можно использовать Get-Job, чтобы увидеть файл State.

Start-Job -FilePath ./GetDate.ps1  
Get-Job

введите здесь описание изображения

person Joy Wang    schedule 13.01.2020
comment
Зачем мне делать start-job каждый раз, когда я запускаю скрипт в консоли Azure? Что если я захочу использовать один и тот же скрипт локально и в консоли, но сохранить данные в другом месте? Мне не нужен хак, мне нужно масштабируемое, переносимое и тестируемое решение. - person Doug Finke; 17.01.2020

Я бы предложил запустить команду в try/catch, специфичную для облачной оболочки, если это то, что вы ищете?

    try {
        $sessioninfo = Get-CloudDrive
        if ($sessioninfo) {
            Write-Host "Running in Cloud Shell mode..." -ForegroundColor Green
            $path = ($home + "/clouddrive/" + "report" + "-$(get-date -Format yyyyddMM_hhmmtt).csv")
        }   
    }
    catch {
        Write-Host "Running in local PowerShell session mode..." -ForegroundColor Yellow
        $path = "C:\localpath\report"+"-$(get-date -Format yyyyddMM_hhmmtt).csv"
    }    
person Matthew Blessing    schedule 28.12.2020