我编写的 cmdlet 脚本运行良好。我想在任何目录中使用它。我可以将其放在 PATH 上的目录中来实现这一点。
但是,它实际上并未作为 cmdlet“安装”。它的命令名称始终带有“.ps1”扩展名。
必须编写并安装模块吗?
更大的问题是,我组中的每个人都应该能够使用该脚本。这是否意味着将其纳入“所有用户、所有主机”配置文件脚本?用户应该使用 -NoProfile 运行 PowerShell 进行生产流程。如果创建了 .psm1,PowerShell 会始终加载它吗?
答案1
将您的 cmdlet 转换为 PowerShell 模块,然后将其放入服务器范围的 PowerShell 模块的公共位置。即使使用-noprofile
您的 cmdlet,所有用户都可以使用。
关于如何在线创建 PowerShell 模块的资源有很多,这是一个不同的问题。
答案2
当我遇到类似问题时,我将脚本重写为使用 cmdlet 绑定的函数。然后我将函数定义放在我的 $PROFILE 中,以便我始终可以使用它。
根据您真正想要做的事情,这可能会对您有用。