You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取PowerShell多层调用场景下最初启动的脚本名称

获取PowerShell多层调用链初始启动脚本的方案

你可以通过读取PowerShell完整调用栈的方式获取最底层的启动脚本,不受调用深度限制,具体实现方式如下:

  • 核心原理:Get-PSCallStack cmdlet会返回完整的当前会话调用栈数组,数组索引0对应当前执行位置,数组最后一个元素对应整个调用链的初始入口。
# 读取完整调用栈
$fullCallStack = Get-PSCallStack
# 取栈底的初始调用记录
$rootEntry = $fullCallStack[$fullCallStack.Count - 1]
# 获取初始启动脚本的绝对路径
$rootScriptPath = $rootEntry.ScriptName

# 输出验证
Write-Host "整个调用链的初始启动脚本为:$rootScriptPath"

如果调用链的起点是PowerShell交互窗口直接执行的命令、而非.ps1脚本启动,ScriptName属性会返回空值,此时可以读取$rootEntry.Position.Text属性获取初始执行的命令内容。
该方案兼容PowerShell 3.0及以上所有版本,不管嵌套多少层cmdlet、.ps1脚本,只要是PowerShell会话内发起的调用,都会被完整记录在调用栈中。

内容的提问来源于stack exchange,提问作者deetle

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 03:54:02