【问题标题】:Powershell ISE loading old version of scriptPowershell ISE 加载旧版本脚本
【发布时间】:2017-05-16 15:51:23
【问题描述】:

我在 Powershell ISE 中有一个脚本,我已通过点源将其添加到我的 ISE 配置文件(我拥有的唯一配置文件)中。每当我打开 ISE 时,加载的脚本版本是 3.7.2。但是,脚本的当前版本(点源指向的路径)是5.3。如果我在我的配置文件中复制点源行并将其粘贴并在 ISE 中运行,则脚本将正确显示为5.3。我什至从我的个人资料中删除了该行,并且在加载 ISE 时该命令仍然显示。

现在,脚本似乎被缓存在某个地方。我检查了我的 WindowsPowerShell\Modules 文件夹,但我只有 ImportExcelWASP 的模块。我从来没有把它变成一个模块,而且我没有看到它在Get-Module 的任何地方列出。目前,引用添加我的脚本的行已从我的配置文件中删除,检查$profile.Contains("Create-Cert") 返回False,这对我来说意味着它正在加载正确的文件。我尝试的另一件事是在 ISE 中对我的 $profile 进行点源,它似乎运行成功,但仍然没有当前版本,无论 $profile 中的点源是否存在。

Powershell 是否可以在其他地方存储此脚本的旧版本?我已经在我的计算机上搜索了对它的引用,但我什至找不到与 3.7.2 匹配的旧版本。

编辑:我刚刚尝试的另一个故障排除步骤是重命名我的配置文件,然后打开 ISE。当我这样做时,该命令不再显示在我的命令列表中,并且Get-Help Create-Cert 返回一个错误,因为它找不到它。然后我将我的配置文件的名称改回Microsoft.PowerShellISE_profile.ps1,再次关闭并打开ISE,并再次加载版本3.7.2 的命令。这几乎就像命令嵌入到配置文件本身一样,我什至认为这是不可能的。

我要注意的另一件事是该脚本存在于服务器上,而不是本地计算机上。我认为这无关紧要,因为服务器始终可以访问,但也许由于这个事实而存在一些缓存。

编辑 2: 在汤姆柯林斯的推荐下,我创建了一个新的配置文件,并在其中添加了与我的脚本有关的行,这一次它成功了。 ISE 加载时,它正确加载了版本5.3。然后我交换了旧配置文件和新配置文件的命名,突然它再次加载了正确的版本。我已经测试了几次关闭和打开它,现在它每次都加载5.3。我仍然完全不知道实际修复了什么,如果有人愿意提供更深入的解释,我愿意了解更多。

【问题讨论】:

  • 您是否尝试过清除您的 commandanalysis 文件夹?我怀疑这是问题所在,但值得一试。它位于:C:\Users\YOURUSERNAME\AppData\Local\Microsoft\Windows\PowerShell\CommandAnalysis.
  • @Robin 我以前没有,现在刚刚清除它,打开 ISE 备份,仍然是 3.7.2。不过还是谢谢你。
  • 我要采取的下一步是重命名原始配置文件,加载 ISE 以确认它没有加载,然后手动重建一个新的 ISE 配置文件文件,只使用脚本(以及最少的先决条件)。将其保存为新的配置文件并重新运行。如果这样可行,那么您的原始配置文件中的某些内容正在加载旧脚本。
  • @TomCollins 无论出于何种原因,创建新配置文件都会加载正确的版本。然后,将配置文件交换回来,仍然加载了正确的版本。如果您想将其作为答案提交,以便我接受,但我仍然对实际发生的事情感到迷茫。

标签: powershell


【解决方案1】:

添加我的分类作为答案。

我要采取的下一步是重命名原始配置文件,加载 ISE 以确认它没有加载,然后仅使用脚本(和最少的前置要求)手动重建一个新的 ISE 配置文件。将其保存为新的配置文件并重新运行。如果这样可行,那么您的原始配置文件中的某些内容正在加载旧脚本。

【讨论】:

    猜你喜欢
    • 2013-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-18
    • 2019-02-26
    • 1970-01-01
    • 2011-10-12
    • 1970-01-01
    相关资源
    最近更新 更多