2015-04-23 52 views
0

我使用了变量$ Env:PSModulePath,它提供了两条路径。我可以在哪里放置将被多个用户访问的Powershell模块?

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

看起来像我的用户将只能为我访问。但我的模块将被多人使用,并且在卸载我的应用程序时[我正在通过msi安装我的模块],即使其他用户卸载它也应该被删除。

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

回答

1

您还可以将您的psm1文件放在共享驱动器上。然后导入模块

Import-Module -Name "\\SERVERNAME\Use-MyModule.psm1" 

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

2

我可以在我的 应用程序相关模块中使用“C:\ Windows \ system32 \ WindowsPowerShell \ v1.0 \ Modules \”吗?

号即如第指出,“规则安装模块”的module installation guidelines地方是不适合你。

您可以自己决定要在哪里放置为多个用户共享的模块。

一些选项包括:

  • Program Files创建新的文件夹,并添加路径到PSModulePath
  • 使用网络共享(尽管这意味着您需要更改执行策略以允许执行此操作),正如@Rubanov所述。例如
  • 使用All Users文件夹。
+0

您确定需要更改导入模块的执行策略吗?我们有'RemoteSigned',我们可以从一个共享导入模块(没有签名),没有问题。 – Rubanov

+1

我认为我更喜欢第三种选择。微软可能应该为管理员安装的共享模块添加一个默认位置。 –

+0

@Rubanov:我无法肯定回答这个问题,因为这似乎是阴暗区域。 https://social.technet.microsoft.com/Forums/scriptcenter/en-US/37024f85-bece-4646-8c3e-376dc2b32e9b/powershell-scripts-wont-run-from-a-network-drive?forum=ITCG –

相关问题