普通用户如何安装和导入 Powershell 社区扩展?

普通用户如何安装和导入 Powershell 社区扩展?

我想使用 Powershell 作为我的 Visual Studio 命令提示符,并且发现执行此操作的途径是通过 Powershell 社区扩展,但我在安装和导入 Pscx 时遇到了问题。

从正常(即不以管理员身份运行)Powershell提示符;如果我运行,Install-Module Pscx我会收到错误

安装“C:\Program Files\WindowsPowerShell\Modules”中的模块需要管理员权限。使用具有管理员权限的帐户登录计算机,然后重试,或者通过在命令中添加“-Scope CurrentUser”来安装“D:\Documents\WindowsPowerShell\Modules”。您还可以尝试以提升的权限运行 Windows PowerShell 会话(以管理员身份运行)。

我采纳了建议并尝试运行Install-Module Pscx -Scope CurrentUser,没有报告任何错误。但是当我运行时,Import-Module Pscx我收到错误

未加载指定的模块“Pscx”,因为在任何模块目录中均未找到有效的模块文件。

运行后,Remove-Module Pscx我以管理员身份运行了 Powershell 提示符,在那里我可以安装和导入 Pscx,但这样做之后,我仍然无法从非管理员 Powershell 提示符导入它。我最后的尝试是(在管理员提示符中)删除模块并再次安装它,但当我在非管理员提示符中-Scope AllUsers尝试时,仍然会出现相同的错误。Import-Module Pscx

我从事开发人员工作已有 30 多年,但每次我尝试在 Powershell 中执行某些操作时,我都会感到自己很愚蠢。尽管有所有出色的文档,但我发现它并不容易使用。有人能帮助我摆脱当前的困境吗?我不仅想解决问题,还想了解发生了什么,希望它能帮助我真正理解为什么 Powershell 的行为看起来很奇怪,对我来说毫无意义。

我的 Powershell 版本是 5.0、build 10586、revision 494。

答案1

我已经知道问题出在哪里了。

Install-Modulewith-Scope CurrentUser在文件夹中安装了模块%USERPROFILE%\Documents\WindowsPowerShell\Modules,但此文件夹未包含在 PSModulePath 环境变量中,因此Import-Module找不到模块。一旦我弄清楚了这一点,我就会将以下内容添加到我的个人资料中,这样我就不会再遇到这种情况了。

if ($env:PSModulePath -notlike "*D:\Documents\WindowsPowerShell\Modules*")
{
  $env:PSModulePath = $env:PSModulePath + ";D:\Documents\WindowsPowerShell\Modules"
}

请注意,虽然我%USERPROFILE%已将C:\Users\SteveC我的 Documents 文件夹从我的 SSD C 驱动器移至我的 HDD D 驱动器,因此%USERPROFILE%\Documents解析为D:\Documents

答案2

  1. 从 CodePlex 下载 Pscx 包
  2. 将解压后的 Pscx 粘贴到 C:\WINDOWS\System32\WindowsPowerShell\v1.0\Modules 中
  3. 以管理员身份打开 Powershell 编辑器 ISE
  4. 跑步Install-Module Pscx -AllowClobber
  5. 完毕

相关内容