0

我与一群软件开发人员一起工作,我有一堆方便的 powershell 脚本来自动构建/部署等......我希望我所有的同事都能够安装和使用这些脚本。如果他们在我添加更多功能/修复错误时获得自动更新,那就太好了。

这些是私有脚本,不想像https://www.powershellgallery.com/这样就地发布

今天,我们团队中的每个开发人员都从 git 存储库下载这些脚本,并将此文件夹添加到$path. 此文件夹有一个 .bat 文件,可打开一个 powershell 控制台。在此控制台中,他们可以获得帮助并调用各种可用命令。今天,他们需要调用一个从 repo 中提取最新信息的命令。

我觉得应该有比这更好的东西,我正在寻找类似dotnet 全局工具的 powershell 脚本。

4

1 回答 1

1

至于这个……

这些是私人脚本,不想像

..然后在prem repo上构建你自己的。

如何做到这一点由微软和其他公司完整记录,如下所示:

设置内部 PowerShellGet 存储库

Powershell:您的第一个内部 PSScript 存储库

# Network share
# The other thing we should have is an empty folder on a network share. This will be the location of our repository. Your users will need to have access to this location if they are going to be loading content from it.


$Path = '\\Server\Share\MyRepository'


# If you just want to experiment with these commands, you can use a local folder for your repository. PowerShellGet does not care where the folder lives.


# Creating the repository
# The first thing we should do is tell PowerShellGet that our $Path is a script repository.

Import-Module PowerShellGet

$repo = @{
    Name = 'MyRepository'
    SourceLocation = $Path
    PublishLocation = $Path
    InstallationPolicy = 'Trusted'
}

Register-PSRepository @repo


# And we are done.

Get-PSRepository

Name         InstallationPolicy SourceLocation
----         ------------------ --------------
MyRepository Trusted            \\Server\Share\MyRepository
PSGallery    Untrusted          https://www.powershellgallery.com/api/v2/


# Other than creating a folder, there is no complicated setup to creating this repository. Just by telling PowerShellGet that the folder is a repository, it will consider it to be one. The one catch is that you need to run this command on each machine to register the repository.

或者建立你自己的内部 git 服务器。

Bonobo Git Server for Windows 是一个可以安装在 IIS 上的 Web 应用程序。它提供了一个简单的管理工具,并可以访问自托管在您的服务器上的 git 存储库。

https://bonobogitserver.com/features

https://bonobogitserver.com/install

OP 更新

至于你的后续:

一旦我在他们的本地计算机中获得文件,如何将其带入他们当前的 powershell 会话?

请记住,Import-Module 是关于要加载的已在本地计算机上的模块,而不是来自任何本地或远程 repo 的模块。您仍然必须安装模块形式,无论您的目标是什么。

如果您的模块已正确定义并安装在本地计算机上,如果您使用的是 PowerShell v3 及更高版本,则不需要 Import-Module,因为在正确设计和实施时,它们应该自动加载。

具体来说,您的后续问题是此问答的副本 How to install/update a PowerShell module from a local folder - setup an internal module repository

您应该只需要执行正常步骤即可从您的存储库中获取和使用该模块。

Find-Module -Name 'MyModule' -Repository MyRepository | 
Save-Module -Path "$env:USERPROFILE\Documents\WindowsPowerShell\Modules"

Install-Module -Name 'MyModule'

Import-Module -Name 'MyModule'

也可以看看:

更新模块

于 2019-05-01T04:21:07.903 回答