我在使用网络位置自动加载我为我的部门编写的自定义 PowerShell 模块时遇到了一个奇怪的问题。我在台式机和笔记本电脑的注册表中添加了网络文件夹的路径,两者都出现了同样的问题。我将模块保存到该文件夹,现在每次启动 PowerShell 时,无论是 ISE 还是控制台,都会显示“准备首次使用的模块”消息,但永远不会消失:
奇怪的是,我仍然能够毫无问题地使用模块中的功能,并且在我运行命令后消息消失,但在那之前它只是停留在那里。我已经让它单独放置了几个小时,看看它是否会消失,但直到我运行某些东西它才会消失。对我来说这没什么大不了的,但我要与我的团队分享这个模块,这可能会让他们感到困惑,而且这有点烦人,所以我想弄清楚为什么这条消息会留下来。有人看过这个吗?
最佳答案
因此,经过一些测试后,我发现,无论出于何种原因,当您将 UNC 网络路径添加到 PSModulePath 注册表项以将路径永久添加到 $env:PSModulePath 变量时,就会发生这种行为。我将注册表项中的路径更改为映射的驱动器路径,带有驱动器号,指向相同的网络位置,但我没有收到烦人的挥之不去的消息。看来 PowerShell 只是不喜欢以“\”开头的模块路径。
关于PowerShell 自动加载自定义模块 "preparing modules"消息卡住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44790057/