【问题标题】:Where can I put Powershell modules that will be accessed by multiple users?我可以将多个用户访问的 Powershell 模块放在哪里?
【发布时间】:2015-04-23 07:01:44
【问题描述】:

我使用了变量 $Env:PSModulePath ,它提供了两个路径。

> C:\Users\My User\Documents\WindowsPowerShell\Modules
> C:\Windows\system32\WindowsPowerShell\v1.0\Modules\

似乎只有我可以访问“我的用户”。但是我的模块将被多人使用,并且在卸载我的应用程序时[我正在通过 msi 安装我的模块],即使其他用户卸载它也应该被删除。

我可以为我的应用程序相关模块使用“C:\Windows\system32\WindowsPowerShell\v1.0\Modules\”吗?或者还有其他更好的地方吗?

【问题讨论】:

    标签: powershell powershell-module


    【解决方案1】:

    我可以使用“C:\Windows\system32\WindowsPowerShell\v1.0\Modules\”作为我的 应用相关模块?

    没有。如module installation guidelines“安装模块的规则” 部分所述,该位置不适合您。

    您可以自行决定要将多个用户共享的模块放置在何处。

    一些选项包括:

    • Program Files 中创建新文件夹,并将该路径添加到PSModulePath
    • 正如@Rubanov 所说,使用网络共享(尽管这意味着您需要更改执行策略以允许这样做)。
    • All Users 文件夹为例。

    【讨论】:

    • 您确定需要更改执行策略以导入模块吗?我们有RemoteSigned,我们可以毫无问题地从共享中导入模块(未签名)。
    • 我想我更喜欢第三个选项。微软可能应该为管理员安装的共享模块添加一个默认位置。
    • @Rubanov:我不能肯定地回答这个问题,因为这似乎是一个阴暗的区域。 social.technet.microsoft.com/Forums/scriptcenter/en-US/…
    【解决方案2】:

    您还可以将 psm1 文件放在共享驱动器上。然后用

    导入模块
    Import-Module -Name "\\SERVERNAME\Use-MyModule.psm1"
    

    您可以找到更多关于向PSModulePathhere 添加路径的信息。

    【讨论】:

      猜你喜欢
      • 2021-07-05
      • 1970-01-01
      • 2012-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-01
      • 2013-04-18
      • 1970-01-01
      相关资源
      最近更新 更多