假设您想要安装一个 PowerShell 模块。为此,您可能需要管理员访问权限。然后,您将全局更改系统,也许只是为了测试。是否可以告诉 PowerShell 使用类似于您在 Python 中使用 venv 的隔离配置环境?
答案1
不是沙盒/虚拟环境,但为了避免为每个人安装/需要管理员权限:
Install-Module ModuleName -Scope CurrentUser
CurrentUser 将模块安装在只有计算机的当前用户才能访问的位置。例如:
$home\Documents\PowerShell\模块
https://docs.microsoft.com/en-us/powershell/module/powershellget/install-module
答案2
您可以使用(现在)免费且开源的 沙盒,在沙箱中执行所有操作,只需单击即可丢弃。
Windows 沙盒 是微软自己的沙盒产品,可能不如 Sandboxie 方便,但可能能更好地集成到 Windows 中。
答案3
另外,请记住,模块可以安装在中央服务器上,然后可以使用隐式远程处理来使用它们。如果您不想,则无需在本地安装模块。在该中央服务器上,您可以下载所有 PSGallery 模块、内部存储库,并设置您的环境以从那里安装以及从中更新
这些使用远程模块,通过隐式/显式 Powershell Remoting......
New-PSSEssion
Enter-PSSEssion
- https://devblogs.microsoft.com/scripting/an-introduction-to-powershell-remoting-part-four-sessions-and-implicit-remoting
- https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_remote_faq
...对于 ADDS 来说是一个有据可查的事情......
- https://devblogs.microsoft.com/scripting/use-powershell-active-directory-cmdlets-without-installing-any-software ...Exchange、O365、Azure 等,但并没有明确谈论其他模块。
您建立一个远程会话并将模块 cmdlet 代理到您的主机,因此只有在您处于存在的会话中时它们才可用。
您还可以从远程服务器通过 UNC 路径导入模块。