在我工作的地方,用户将他们的文件夹重定向到UNC路径以保存数据。这似乎影响了我的PowerShell,因为每次我启动powershell时,它都会尝试从UNC路径加载模块,这需要很长时间。这也影响了我使用cmdlet的方式,因为它会尝试在UNC路径中搜索cmdlet上下文。
当我查看$env:PSModulePath
的输出时,我可以看到UNC目录。但是它没有显示在系统的环境变量对话框编辑器中。
我怎样才能摆脱这个问题,这样Powershell就不会一直从UNC目录中寻找模块支持了?我知道我可以编辑一个现有的会话$env:PSModulePath,但是我希望它永远消失。
4条答案
按热度按时间yqyhoc1h1#
Microsoft文档页面about_PSModulePath对此进行了说明。默认情况下,PowerShell通过串联以下内容来构建
$env:PSModulePath
值:PSModulePath
系统环境变量的内容。您可以按如下方式找到“Documents”文件夹的路径:
如果除了系统环境变量
PSModulePath
之外,还定义了用户级环境变量PSModulePath
,它将替换$env:PSModulePath
中的“Documents”文件夹,该文件夹将不再包含UNC路径。dgtucam12#
要永久更改
PSModulePath
环境变量,可以在System.Environment
类上使用.NET方法SetEnvironmentVariable
。示例:
[Environment]::SetEnvironmentVariable("PSModulePath", "Some_Path", "Machine")
请记住,这将覆盖您之前在此变量上拥有的内容。因此,在运行此方法之前请确保
PSModulePath
肯定会有您可能需要的路径。此外,如果您的公司使用GPO来设置
PSModulePath
变量,则删除UNC路径的唯一方法是与负责处理该操作的管理员联系。fnx2tebb3#
我不知道为什么它没有显示在你的系统变量GUI中。你应该可以用下面的方法删除它:
izkcnapc4#
我解决这个问题的方法是在所有用户配置文件中设置模块路径
为我$PROFILE.AllUsersAllHosts返回了:
C:\程序文件\PowerShell\7\配置文件. ps1
我创建了该文件并添加了以下内容: