gpt4 book ai didi

powershell - 获取对给定 PowerShell 模块的所有引用

转载 作者:行者123 更新时间:2023-12-02 23:56:31 25 4
gpt4 key购买 nike

有没有办法找到引用给定模块 (.psm1) 的脚本文件列表?换句话说,获取在脚本代码中使用模块中定义的至少 1 个 cmdlet 的所有文件。

显然,由于 PowerShell 3.0 及更高版本,我的大部分脚本文件在某处的代码中没有明确的 Import-Module MODULE_NAME,因此我无法使用该文本进行搜索。

我知道我可以使用 Get-ChildItem -Path '...' -Recurse | Select-String 'TextToSearchFor' 以在文件内搜索特定字符串,但这与搜索对模块的任何 cmdlet 的任何引用不同。我可以搜索模块中的每个 cmdlet,但我想知道是否有更好的方法。

澄清:我只是查看一个受控环境的内部,我将所有脚本都放在一个文件位置。

最佳答案

根据具体情况,调用堆栈可能会很有趣。在这种情况下,您需要修改要查找的函数,以便在运行时收集有关调用堆栈的信息并将其记录在某处。随着时间的推移,您可能有足够的日志来做出一些好的假设。

function yourfunction {
$stack = Get-PSCallStack
if ($stack.Count -gt 1) {
$stack[1] # log this to a file or whatever you need
}
}

这在你的场景中可能根本不起作用,但我想我把它作为一个选项放在那里。

关于powershell - 获取对给定 PowerShell 模块的所有引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44332868/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com