首页 > 解决方案 > 如何在 PS 后台作业和线程作业中跟踪 powershell 脚本调用模式?

问题描述

我想跟踪如何调用 PowerShell 脚本。 场景:我有一个父 PowerShell 脚本,它登录到 azure 并安装 PowerShell 模块。此脚本使用 ThreadJob 并行调用多个 PowerShell 脚本。在子脚本中,我正在检查脚本是否被另一个脚本调用或作为主脚本运行,并基于该选择是否需要登录和安装模块。

这就是我检查条件的方式

$scriptExecutionMode = "main"
if (![string]::IsNullOrEmpty((Get-Variable MyInvocation -Scope Local).Value.PSCommandPath)) {
    $scriptExecutionMode = "called"
}

问题是在线程作业或后台作业中,总是以调用模式为主,导致再次登录和安装模块。在某些情况下,我必须将这些脚本作为主要脚本运行,因此无法删除该部分。

标签: multithreadingazurepowershell

解决方案


推荐阅读