远程资源

PowerShell5.0开始,提供了PowerShellGet模块,可以通过相关命令管理来自远程资源(模块和脚本)。

管理仓库

仓库决定从何处下载资源。

使用Get-PSRepository命令,可以查看已有仓库。

Get-PSRepository

默认安装了名为PSGallery的仓库,地址是https://www.powershellgallery.com/api/v2/

如果没有默认仓库,可以使用Register-PSRepository -Default注册默认仓库。

使用Set-PSRepository命令,可以设置仓库,比如设置信任级别。

Set-PSRepository -Name PSGallery -InstallationPolicy Trusted

如果不设置信任级别,默认是不信任,每次安装时都会提示要求确认。

管理远程模块

查找模块

使用Find-Module命令,可以查找模块。

Find-Module *yaml*

你也可以在https://www.powershellgallery.com/packages网页上查找模块,然后安装。

安装模块

使用Install-Module可以安装模块。

Install-Package  powershell-yaml

powershell-yaml模块提供了ConvertTo-Yaml格式化对象到yaml格式。

如果提示需要管理员权限,可以使用-Scope CurrentUser,安装到当前用户目录。

模块安装后,可以像使用一般模块一样使用。

$PSVersionTable | ConvertTo-Yaml

Install-Module不仅可以安装模块,也可以安装脚本。但对脚本进行其他操作时,需要通过脚本相关命令。

查看已安装模块

使用Get-InstalledModule可以查看已安装模块。

卸载模块

使用Uninstall-Module命令,可以卸载模块。

Uninstall-Module只能用于卸载Install-Module安装的模块,不能删除其他模块。

Uninstall-Package  powershell-yaml

更新模块

使用Update-Module命令可以更新模块。

下载模块

使用Save-Module可以下载但并不安装模块。

发布模块

使用Publish-Module可以发布自己的模块到仓库,这要求注册账号。

管理远程脚本

管理远程脚本和管理远程模块类似,只是命令使用Script结尾的命令。

使用Install-Module命令同样可以安装脚本,但进行其他操作时必须使用对应的Script结尾的脚本命令。

远程脚本和一般脚本相比,使用特殊格式的注释说明脚本信息。

使用New-ScriptFileInfo可以创建带信息的脚本。

<#PSScriptInfo
.VERSION 1.0
.GUID 91d3db94-56e6-4dbd-b471-d6b43c4b2e72
.AUTHOR
.COMPANYNAME
.COPYRIGHT
.TAGS
.LICENSEURI
.PROJECTURI
.ICONURI
.EXTERNALMODULEDEPENDENCIES
.REQUIREDSCRIPTS
.EXTERNALSCRIPTDEPENDENCIES
.RELEASENOTES
.PRIVATEDATA
#>
<# 
.DESCRIPTION
 注释信息
#>
Param()

安装的远程脚本默认安装在脚本目录,可以将脚本目录添加到Path环境变量,简化后续使用。