Private/Get-CallingScript.ps1

function Get-CallingScript{
    
    $scriptName = (Get-PSCallStack | Where-Object { $_.Command.substring($_.Command.Length-3,3) -eq 'ps1'} | Select-Object -First 1  | select -ExpandProperty Command) -replace '.ps1',''

    if([string]::IsnullOrEmpty($scriptName)){

        $callstackCount = Get-PSCallStack| Where-Object { $_.Command -ne '<ScriptBlock>'} | Measure-OBject | select-object -ExpandProperty Count

        $scriptName = (Get-PSCallStack | Where-Object { $_.Command.substring($_.Command.Length-3,3) -eq 'ps1'} | Select-Object -First 1 -skip ($callstackCount-1)  | select -ExpandProperty Command) -replace '.ps1',''
    }
    if([string]::IsnullOrEmpty($scriptName)){
        Write-Log "Cannot get the calling script" Error -ErrorAction Stop
    }
    Write-Output $scriptName
}