大家好,由于没有关于将 PowerShell 软件包列入黑名单的讨论(至少我认为没有),所以我在这里问你。我在 Stackoverflow 上问过同样的问题,但那里的主题无关,所以我希望它不会出现在这里。
我们目前在 3 台不同的服务器上使用 Docker,并使用 BcContainerHelper 包创建容器并在其上运行 Business Central。但有时同事会安装过时的包,这可能会导致问题。
现在我要问的是:有什么方法可以阻止通过 Powershell 安装某些软件包?我想到了一种黑名单,其中包含所有禁止安装的软件包。这可能吗,我还没有找到有关将软件包列入黑名单或阻止安装的任何信息?
我希望有一个相当简单的解决方案,即使它有点复杂,我也会非常感谢任何建议。
快乐创作并问候 Silent3rror
答案1
我不知道有任何内置方法来拒绝 PS 包;但有付费工具可以让你管理 PS 模块,例如PowerShell 模块管理器
它带有一项功能,允许您禁用模块,请参阅;https://info.sapien.com/index.php/how-to/powershell-module-manager-how-to/disabling-modules-with-powershell-modulemanager
这可能不完全是您所想的那样,但它看起来也没什么特别。
答案2
不可以,您不能阻止特定的包。
- 您可以将存储库设置为受信任或不受信任。
- 您可以构建自己的内部存储库,并将模块放置在那里以供您的人员安装,并警告他们使用此存储库之外的任何东西都可能/将被视为 RPE(恢复生成事件)。
- 您可以阻止用户通过 PowerShell JEA/constrained 端点使用命令。
https://powershell.org/2019/03/secure-your-powershell-session-with-jea-and-constrained-endpoints
您还可以启用 PowerShell 审核并监视这些感兴趣的模块,然后向用户发出警报并删除它们或要求他们删除它们,或者仅在通过事件日志看到它们时删除它们,然后提醒用户删除以及原因。
然而,即使你试图阻止他们,他们也可以在本地保存模块,给它起一个新名字,然后运行它。
再次强调,这是一个人力资源/威胁管理问题,必须直接向违规者提出。就像用户违反安全/风险管理政策一样。再次强调,大多数组织都存在 RPE。