New-PSDrive 在脚本和控制台中的不同行为

bja*_*ven 3 powershell

我在使用 powershell 时遇到了一个小问题,这可能很容易……如果我从控制台运行命令而不是从 .ps1 文件运行命令,我会得到不同的行为。命令;

New-PSDrive -PSProvider FileSystem -Name X -Root \\computer_name\x -Persist
Run Code Online (Sandbox Code Playgroud)

如果我从控制台运行它,我会得到我想要的行为,即出现在文件管理器中的持久 X: 驱动器。如果我从一个只包含这一行的脚本运行它,我就不会得到永久驱动器。

有什么想法吗?

Dav*_*ant 6

添加-Scope Global到您的 New-PSDrive 参数。

New-PSDrive -PSProvider FileSystem -Name X -Root \\computer_name\x -Persist -Scope Global
Run Code Online (Sandbox Code Playgroud)

文档中所述,默认情况下,范围是本地的。如果您阅读about_Scope,您会看到 local 表示当前范围,对于脚本来说,就是脚本本身。