我在Powershell ISE中有一个脚本,我通过点源添加到我的ISE配置文件(我唯一的配置文件)中。每当我打开ISE时,加载的脚本版本为3.7.2
。但是,脚本的当前版本(点源指向的路径)是5.3
。如果我在我的个人资料中复制点源代码行并将其粘贴并在ISE中运行,则该脚本将正确显示为5.3
。我甚至从我的个人资料中删除了该行,并且在加载ISE时该命令仍会显示。
现在,似乎脚本正在某处缓存。我已经检查了我的WindowsPowerShell \ Modules文件夹,但我只有ImportExcel
和WASP
的模块。我从来没有把它变成一个模块,我没有在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:
在Tom Collins的推荐下,我创建了一个新的配置文件,并添加了关于我的脚本的行,这次它起作用了。加载ISE时,它正确加载版本5.3
。然后我交换了我的新旧配置文件的命名,突然它再次加载了正确的版本。我已经测试了几次关闭并打开它,现在它每次都加载5.3
。对于实际修复它的内容,我仍然完全失去了,如果有人愿意提供更深层次的解释,我愿意更多地了解。
答案 0 :(得分:0)
添加我的分类作为答案。
下一步我要重命名原始配置文件,加载ISE以确认它没有加载,然后只用脚本手动重建一个新的ISE配置文件(和最小的pre-reqs) 。将其保存为新的配置文件并重新运行。如果可以,那么原始配置文件中的某些内容正在加载旧脚本。