[运维笔记] PowerShell (模块).模块的查找、安装、卸载、更新、保存、发布

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
简介: [运维笔记] PowerShell (模块).模块的查找、安装、卸载、更新、保存、发布

[运维笔记] PowerShell (库/模块).库的查找、安装、卸载、更新、保存、发布


0. 相关命令速查表

包管理相关命令

命令 功能
Find-Package 在可用的软件包源中查找软件包。
Find-PackageProvider 返回可用于安装的包管理包提供程序列表。
Get-Package 返回使用PackageManagement安装的所有软件包的列表。
Get-PackageProvider 返回连接到包管理的包提供程序列表。
Get-PackageSource 获取为包提供程序注册的包源列表。
Import-PackageProvider 将包管理包提供程序添加到当前会话。
Install-Package 安装一个或多个软件包。
Install-PackageProvider 安装一个或多个包管理包提供程序。
Register-PackageSource 为指定的包提供程序添加包源。
Save-Package 将包保存到本地计算机,而不安装它们。
Set-PackageSource 替换指定包提供程序的包源。
Uninstall-Package 卸载一个或多个软件包。
Unregister-PackageSource 移除注册的包源。

包获取

命令 功能
Find-Command 在模块中查找PowerShell命令。
Find-DscResource 查找所需的状态配置资源。
Find-Module 在存储库中查找符合指定条件的模块。
Find-RoleCapability 在存储库中查找符合指定条件的模块。
Find-Script 查找一个脚本
Get-InstalledModule 获取计算机上由PowerShellGet安装的模块列表。
Get-InstalledScript 获取已安装的脚本。
Get-PSRepository 获取PowerShell存储库。
Install-Module 从存储库中下载一个或多个模块,并将其安装在本地计算机上。
Install-Script 安装脚本。
New-ScriptFileInfo 使用元数据创建脚本文件。
Publish-Module 将指定模块从本地计算机发布到在线库。
Publish-Script 发布脚本。
Register-PSRepository 注册PowerShell存储库。
Save-Module 将模块及其依赖项保存在本地计算机上,但不安装该模块。
Save-Script 保存脚本。
Set-PSRepository 为注册的存储库设置值。
Test-ScriptFileInfo 验证脚本的注释块。
Uninstall-Module 卸载模块。
Uninstall-Script 卸载脚本。
Unregister-PSRepository 注销存储库。
Update-Module 将指定模块的最新版本从在线库下载并安装到本地计算机。
Update-ModuleManifest 更新模块清单文件。
Update-Script 更新脚本。
Update-ScriptFileInfo 更新脚本的信息。

1. 查找 PowerShell 库(模块)

模块是一个独立的可重用单元,允许对 PowerShell 代码进行分隔、组织和抽象化。 模块可以包含一个或多个模块成员,它们是命令(如 cmdlet 和函数)和项(如变量和别名)。 这些成员的名称可以专用于模块,也可以被导出到导入了模块的会话中。—— powershell doc

在PowerShell中模块分为清单、脚本和二进制模块三种类型:

  • 清单模块是一个包含模块信息的文件,它控制该模块使用的特定方面;
  • 脚本模块是一个 PowerShell 脚本文件,其文件扩展名为 .psm1
  • 二进制模块包含用于定义 cmdlet 和提供程序的类类型。 与脚本模块不同,二进制模块是以编译语言编写(如C、C#)的。二进制模块是一个 .NET 程序集(即 DLL),它是针对 PowerShell 库编译的。

1.1 在 PSGallery 主页中查找

微软为PowerShell提供了一个中央存储库,地址为https://www.powershellgallery.com/。这就与 Python 的 Pypi、Nodejs 的 npm 为其对应的语言提供的中央存储仓库类似:

通过在该网站的搜索框中搜索,你可以找到一些相关的库资源。

1.2 使用 Find-Module 命令查找库(模块)

1.2.1 命令功能与语法

该命令用于在存储库中查找符合指定条件的模块,其语法格式如下:

Find-Module
    [[-Name] <string[]>]
    [-MinimumVersion <string>]
    [-MaximumVersion <string>]
    [-RequiredVersion <string>]
    [-AllVersions]
    [-IncludeDependencies]
    [-Filter <string>]
    [-Tag <string[]>]
    [-Includes <string[]>]
    [-DscResource <string[]>]
    [-RoleCapability <string[]>]
    [-Command <string[]>]
    [-Proxy <uri>]
    [-ProxyCredential <pscredential>]
    [-Repository <string[]>]
    [-Credential <pscredential>]
    [-AllowPrerelease]
    [<CommonParameters>]

1.2.2 参数含义

- AllowPrerelease:包括标记为预发布的结果模块。

类型: SwitchParameter
Position: Named
默认值: None
接收管道输入: False
接受通配符: False

-AllVersions:指定在结果中包含模块的所有版本。您不能使用具有最小反转最大反转所需反转参数的全反转参数

类型: SwitchParameter
Position: Named
默认值: None
接收管道输入: False
接受通配符: False

-Command:指定在模块中查找的命令阵列。命令可以是一个函数或工作流。

类型: String[]
Position: Named
默认值: None
接收管道输入: False
接受通配符: False

-Credential

指定有权为指定的包提供商或源安装模块的用户帐户。

类型: PSCredential
Position: Named
默认值: None
接收管道输入: True
接受通配符: False

-DscResource

指定包含 DSC 资源的模块的名称或名称的一部分。根据 PowerShell 惯例,当您提供多个参数时,执行搜索。

类型: String[]
Position: Named
默认值: None
接收管道输入: False
接受通配符: False

-Filter:根据包管理提供商特定的搜索语法指定筛选器。对于 NuGet 模块,此参数相当于使用PSGallery网站上的搜索栏进行搜索。

类型: String
Position: Named
默认值: None
接收管道输入: False
接受通配符: False

-IncludeDependencies:表示此操作包括所有依赖于名称参数中指定的模块的模块。

类型: SwitchParameter
Position: Named
默认值: None
接收管道输入: False
接受通配符: False

- Includes:仅返回包含特定类型的电源壳功能的模块。例如,您可能只想查找包含DscResource模块。

类型: String[]
可以接受的参数: DscResource, Cmdlet, Function, RoleCapability
Position: Named
默认值: None
接收管道输入: False
接受通配符: False

-MaximumVersion:指定模块的最大版本或最新版本,以包含在搜索结果中。最大反转必需反转不能在同一命令中使用。

类型: String
Position: Named
默认值: None
接收管道输入: True
接受通配符: False

-MinimumVersion:指定模块的最低版本以包含在结果中。不能在同一命令中使用最小反转必需的转用

类型: String
Position: Named
默认值: None
接收管道输入: True
接受通配符: False

-Name :指定要在存储库中搜索的模块的名称。接受模块名称的逗号分离列表。通配符被接受。

类型: String[]
Position: 0
默认值: None
接收管道输入: True
接受通配符: False

-Proxy :指定请求的代理服务器,而不是直接连接到 Internet 资源。

类型: Uri
Position: Named
默认值: None
接收管道输入: True
接受通配符: False

-ProxyCredential

指定有权使用代理参数指定的代理服务器的用户帐户。

类型: PSCredential
Position: Named
默认值: None
接收管道输入: True
接受通配符: False

-Repository

使用存储库参数指定用于搜索模块的存储库。注册多个存储库时使用。接受一个逗号分离的存储库列表。要注册存储库,请使用 。要显示注册的存储库,请使用 。Register-PSRepository``Get-PSRepository

类型: String[]
Position: Named
默认值: None
接收管道输入: False
接受通配符: False

-RequiredVersion

指定模块的确切版本编号以包含在结果中。所需的反转不能在相同的命令中使用为最小反转最大反转

类型: String
Position: Named
默认值: None
接收管道输入: True
接受通配符: False

-RoleCapability

指定一系列角色功能。

类型: String[]
Position: Named
默认值: None
接收管道输入: False
接受通配符: False

-Tag

指定一系列标签。示例标签包括 DesiredStateConfiguration, DSC, DSCResourceKit,,或者 PSModule.

类型: String[]
Position: Named
默认值: None
接收管道输入: False
接受通配符: False

2. 安装 PowerShell 库

2.1 安装 PowerShell 模块是做什么

创建 PowerShell 模块后,你可能需要在系统上安装该模块,以便你或其他人可以使用它。一个PowerShell模块的模块文件包括.psm1二进制程序集、模块清单(.psd1文件)和任何其他相关文件。比如以下是一个名为logger的模块:

而安装模块的过程包括将模块文件复制到该计算机的目录中。

2.2 为什么需要 安装 模块

安装模块是为了能够导入这些安装好的模块,模块在本文也称作库。导入就像Python等语言中的import那样。你在使用Python进行编程时,通常使用pip包管理工具为Python安装各种第三方模块,在不创建使用Python“虚拟隔离环境”时,这些模块被安装在Python包目录中的“side-packdges”目录下,这样只要你使用的是该Python运行环境,你便可以在系统任何位置的脚本直接导入这些包。 PowerShell与此类似。

2.3 模块安装到哪里去

2.3.1 PSModulePath 环境变量简介

Cmdlet 需要根据PSModulePath 环境变量的值来查找模块,这不像Python会从默认的"Lib\site-packages"开始查找,因为你也可以自己指定该环境变量的值。这包括为供自己使用而创建的模块、从其他方获取的模块以及分发给其他人的模块。因此,你需要尽可能将所有模块安装在 PSModulePath 环境变量中列出的路径中

2.3.2 如何查看当前的 PSModulePath 环境变量

【方法1】

$Env:PSModulePath

执行效果如图:

【方法2】

[Environment]::GetEnvironmentVariable("PSModulePath")

执行效果如图:

默认情况下,PSModulePath 环境变量值包含以下系统和用户模块目录(但你可以对此值进行添加和编辑):

alias 备注
$PSHome\Modules %Windir%\System32\WindowsPowerShell\v1.0\Modules 此位置专门用于 Windows 附带的模块。 请勿将模块安装到此位置。
$Home\Documents\WindowsPowerShell\Modules %UserProfile%\Documents\WindowsPowerShell\Modules -
$Env:ProgramFiles\WindowsPowerShell\Modules %ProgramFiles%\WindowsPowerShell\Modules -

【方法3】

你也可以用过Get-ChildItem Env:命令查看所有的环境变量,当然这种查看方式在这里没有单独查看“PSModulePath”环境变量的$Env:PSModulePath或者[Environment]::GetEnvironmentVariable("PSModulePath")直接。

Get-ChildItem Env:

2.3.3 增改 PSModulePath 环境变量条目

# 获取PSModulePath 到变量 $p
$p = [Environment]::GetEnvironmentVariable("PSModulePath")
# 对变量 $p 直接生猛地拼接字符串就好了,因为它就是字符串。
# 每增加一条时需要使用英文的分号(“;”)隔开。
$p += ";C:\Program Files (x86)\MyCompany\Modules\"
# 然后将更改后的变量值重新设置为 PSModulePath 环境变量即可:
[Environment]::SetEnvironmentVariable("PSModulePath",$p)

其中SetEnvironmentVariable命令用于设置环境变量。

2.3.4 默认安装位置

在仅仅指定模块名时,默认安装位置为PSModulePath 环境变量中的第一条记录所指向的位置。比如,我的电脑上第一条为C:\Users\李俊才\Documents\PowerShell\Modules;,执行以下安装:

Install-Module -Name Logger

打开该目录,如图:

可以看到Logger和它的一个名为ColoredText的依赖模块都被安装到了此目录下。

当然,我们没有必要手动打开该目录进行查询已经安装好的模块,PowerShell为我们提供了Get-InstalledModule命令,其语法格式如下:

Get-InstalledModule
   [[-Name] <String[]>]
   [-MinimumVersion <String>]
   [-RequiredVersion <String>]
   [-MaximumVersion <String>]
   [-AllVersions]
   [-AllowPrerelease]
   [<CommonParameters>]

其参数如解释下:

-AllowPrerelease

包括在标记为预发布的结果模块中。

类型: SwitchParameter
Position: Named
默认值: None
接受管道输入 : False
接受通配符 False

-AllVersions

指示您想要获取模块的所有可用版本。你不能使用 带有 MinimumVersion, MaximumVersion,或者 RequiredVersion 参数的AllVersions 参数。

类型: SwitchParameter
Position: Named
默认值: None
接受管道输入 : False
接受通配符 False

-MaximumVersion

指定要获取的模块的最大版本或最新版本。 MaximumVersionRequiredVersion 参数是互斥的;不能在同一命令中同时使用这两个参数。

类型: String
Position: Named
默认值 : None
接受管道输入 : True
接受通配符 False

-MinimumVersion

指定要获取的单个模块的最低版本。 MinimumVersionRequiredVersion 参数是互斥的;不能在同一命令中同时使用这两个参数。

类型: String
Position: Named
默认值 : None
接受管道输入 : True
接受通配符 False

-Name

指定要获取的模块名称数组。

类型: String[]
Position: 0
默认值 : None
接受管道输入 : True
接受通配符 False

-RequiredVersion

指定要获取的模块的确切版本。

类型: String
Position: Named
默认值 : None
接受管道输入: True
接受通配符 False

【例子1】:查询本地已经安装的模块

运行结果如图所示:

需要注意这上面的模块时用户安装到的PSModulePath对应目录的模块,而并非系统上安装的所有PowerShell模块。要查看系统上安装的所有模块,需要使用Get-Module -ListAvailable命令。

【例子2】

Get-Module -ListAvailable

Out[]:

Directory: C:\Users\李俊才\Documents\PowerShell\Modules
ModuleType Version    PreRelease Name                                PSEdition ExportedCommands
---------- -------    ---------- ----                                --------- ----------------
Script     1.0.6                 ColoredText                         Desk      {Format-Color, cprint}
Script     1.0.7                 Logger                              Desk
    Directory: C:\program files\powershell\7\Modules
ModuleType Version    PreRelease Name                                PSEdition ExportedCommands
---------- -------    ---------- ----                                --------- ----------------
Manifest   7.0.0.0               CimCmdlets                          Core      {Get-CimAssociatedInstance, Get-CimClass, Get-CimInstance, Get-CimSession…}
Manifest   1.2.5                 Microsoft.PowerShell.Archive        Desk      {Compress-Archive, Expand-Archive}
Manifest   7.0.0.0               Microsoft.PowerShell.Diagnostics    Core      {Get-WinEvent, New-WinEvent, Get-Counter}
Manifest   7.0.0.0               Microsoft.PowerShell.Host           Core      {Start-Transcript, Stop-Transcript}
Manifest   7.0.0.0               Microsoft.PowerShell.Management     Core      {Add-Content, Clear-Content, Get-Clipboard, Set-Clipboard…}
Manifest   7.0.0.0               Microsoft.PowerShell.Security       Core      {Get-Acl, Set-Acl, Get-PfxCertificate, Get-Credential…}
Manifest   7.0.0.0               Microsoft.PowerShell.Utility        Core      {Export-Alias, Get-Alias, Import-Alias, New-Alias…}
Manifest   7.0.0.0               Microsoft.WSMan.Management          Core      {Disable-WSManCredSSP, Enable-WSManCredSSP, Get-WSManCredSSP, Set-WSManQuickConfig…}
Script     1.4.7                 PackageManagement                   Desk      {Find-Package, Get-Package, Get-PackageProvider, Get-PackageSource…}
Script     2.2.5                 PowerShellGet                       Desk      {Find-Command, Find-DSCResource, Find-Module, Find-RoleCapability…}
Script     2.0.5                 PSDesiredStateConfiguration         Core      {Configuration, New-DscChecksum, Get-DscResource, Invoke-DscResource}
Script     7.0.0.0               PSDiagnostics                       Core      {Disable-PSTrace, Disable-PSWSManCombinedTrace, Disable-WSManTrace, Enable-PSTrace…}
Script     2.1.0                 PSReadLine                          Desk      {Get-PSReadLineKeyHandler, Set-PSReadLineKeyHandler, Remove-PSReadLineKeyHandler, Get-PSReadLineOption…}
Binary     2.0.3                 ThreadJob                           Desk      Start-ThreadJob
    Directory: C:\Program Files\WindowsPowerShell\Modules
ModuleType Version    PreRelease Name                                PSEdition ExportedCommands
---------- -------    ---------- ----                                --------- ----------------
Script     5.1.2                 Azure                               Desk      {Get-AzureAutomationCertificate, Get-AzureAutomationConnection, New-AzureAutomationConnection, Remove-AzureAutomationConnection…}
Manifest   0.5.0                 Azure.AnalysisServices              Desk      {Add-AzureAnalysisServicesAccount, Restart-AzureAnalysisServicesInstance, Export-AzureAnalysisServicesInstanceLog, Sync-AzureAnalysisServicesInstance}
Script     4.2.1                 Azure.Storage                       Desk      {Get-AzureStorageTable, New-AzureStorageTableSASToken, New-AzureStorageTableStoredAccessPolicy, New-AzureStorageTable…}
Script     5.7.0                 AzureRM                             Desk
Script     0.6.6                 AzureRM.AnalysisServices            Desk      {Resume-AzureRmAnalysisServicesServer, Suspend-AzureRmAnalysisServicesServer, Get-AzureRmAnalysisServicesServer, Remove-AzureRmAnalysisServicesServer…}
Script     5.1.2                 AzureRM.ApiManagement               Desk      {Add-AzureRmApiManagementRegion, Get-AzureRmApiManagementSsoToken, New-AzureRmApiManagementHostnameConfiguration, New-AzureRmApiManagementRegion…}
Script     0.1.3                 AzureRM.ApplicationInsights         Desk      {Get-AzureRmApplicationInsights, New-AzureRmApplicationInsights, Remove-AzureRmApplicationInsights, Set-AzureRmApplicationInsightsPricingPlan…}
Script     4.3.2                 AzureRM.Automation                  Desk      {Get-AzureRMAutomationHybridWorkerGroup, Get-AzureRmAutomationJobOutputRecord, Import-AzureRmAutomationDscNodeConfiguration, Export-AzureRmAutomationDscConfiguration…}
Script     4.0.4                 AzureRM.Backup                      Desk      {Backup-AzureRmBackupItem, Enable-AzureRmBackupContainerReregistration, Get-AzureRmBackupContainer, Register-AzureRmBackupContainer…}
Script     4.0.6                 AzureRM.Batch                       Desk      {Remove-AzureRmBatchAccount, Get-AzureRmBatchAccount, Get-AzureRmBatchAccountKeys, New-AzureRmBatchAccount…}
Script     0.14.1                AzureRM.Billing                     Desk      {Get-AzureRmBillingInvoice, Get-AzureRmBillingPeriod, Get-AzureRmEnrollmentAccount}
Script     4.2.2                 AzureRM.Cdn                         Desk      {Get-AzureRmCdnProfile, Get-AzureRmCdnProfileSsoUrl, New-AzureRmCdnProfile, Remove-AzureRmCdnProfile…}
Script     0.9.4                 AzureRM.CognitiveServices           Desk      {Get-AzureRmCognitiveServicesAccount, Get-AzureRmCognitiveServicesAccountKey, Get-AzureRmCognitiveServicesAccountSkus, Get-AzureRmCognitiveServicesAccountUsage…}
Script     4.6.0                 AzureRM.Compute                     Desk      {Remove-AzureRmAvailabilitySet, Get-AzureRmAvailabilitySet, New-AzureRmAvailabilitySet, Update-AzureRmAvailabilitySet…}
Script     0.3.1                 AzureRM.Consumption                 Desk      Get-AzureRmConsumptionUsageDetail
Script     0.2.5                 AzureRM.ContainerInstance           Desk      {New-AzureRmContainerGroup, Get-AzureRmContainerGroup, Remove-AzureRmContainerGroup, Get-AzureRmContainerInstanceLog}
Script     1.0.4                 AzureRM.ContainerRegistry           Desk      {New-AzureRmContainerRegistry, Get-AzureRmContainerRegistry, Update-AzureRmContainerRegistry, Remove-AzureRmContainerRegistry…}
Script     4.2.2                 AzureRM.DataFactories               Desk      {Remove-AzureRmDataFactory, Get-AzureRmDataFactoryRun, Get-AzureRmDataFactorySlice, Save-AzureRmDataFactoryLog…}
Script     0.5.3                 AzureRM.DataFactoryV2               Desk      {Set-AzureRmDataFactoryV2, Update-AzureRmDataFactoryV2, Get-AzureRmDataFactoryV2, Remove-AzureRmDataFactoryV2…}
Script     4.2.3                 AzureRM.DataLakeAnalytics           Desk      {Get-AzureRmDataLakeAnalyticsDataSource, New-AzureRmDataLakeAnalyticsCatalogCredential, Remove-AzureRmDataLakeAnalyticsCatalogCredential, Remove-AzureRmDataLakeAnalyticsCatalogSecret…}
Script     5.2.0                 AzureRM.DataLakeStore               Desk      {Get-AzureRmDataLakeStoreTrustedIdProvider, Remove-AzureRmDataLakeStoreTrustedIdProvider, Remove-AzureRmDataLakeStoreFirewallRule, Set-AzureRmDataLakeStoreTrustedIdProvider…}
Script     4.0.4                 AzureRM.DevTestLabs                 Desk      {Get-AzureRmDtlAllowedVMSizesPolicy, Get-AzureRmDtlAutoShutdownPolicy, Get-AzureRmDtlAutoStartPolicy, Get-AzureRmDtlVMsPerLabPolicy…}
Script     4.1.2                 AzureRM.Dns                         Desk      {Get-AzureRmDnsRecordSet, New-AzureRmDnsRecordConfig, Remove-AzureRmDnsRecordSet, Set-AzureRmDnsRecordSet…}
Script     0.3.2                 AzureRM.EventGrid                   Desk      {New-AzureRmEventGridTopic, Get-AzureRmEventGridTopic, Set-AzureRmEventGridTopic, New-AzureRmEventGridTopicKey…}
Script     0.6.3                 AzureRM.EventHub                    Desk      {New-AzureRmEventHubNamespace, Get-AzureRmEventHubNamespace, Set-AzureRmEventHubNamespace, Remove-AzureRmEventHubNamespace…}
Script     4.1.2                 AzureRM.HDInsight                   Desk      {Get-AzureRmHDInsightJob, New-AzureRmHDInsightSqoopJobDefinition, Wait-AzureRmHDInsightJob, New-AzureRmHDInsightStreamingMapReduceJobDefinition…}
Script     4.0.4                 AzureRM.Insights                    Desk      {Get-AzureRmMetricDefinition, Get-AzureRmMetric, Remove-AzureRmLogProfile, Get-AzureRmLogProfile…}
Script     3.1.2                 AzureRM.IotHub                      Desk      {Add-AzureRmIotHubKey, Get-AzureRmIotHubEventHubConsumerGroup, Get-AzureRmIotHubConnectionString, Get-AzureRmIotHubJob…}
Script     4.3.0                 AzureRM.KeyVault                    Desk      {Add-AzureKeyVaultCertificate, Set-AzureKeyVaultCertificateAttribute, Stop-AzureKeyVaultCertificateOperation, Get-AzureKeyVaultCertificateOperation…}
Script     4.0.3                 AzureRM.LogicApp                    Desk      {Get-AzureRmIntegrationAccountAgreement, Get-AzureRmIntegrationAccountCallbackUrl, Get-AzureRmIntegrationAccountCertificate, Get-AzureRmIntegrationAccount…}
Script     0.17.2                AzureRM.MachineLearning             Desk      {Move-AzureRmMlCommitmentAssociation, Get-AzureRmMlCommitmentAssociation, Get-AzureRmMlCommitmentPlanUsageHistory, Remove-AzureRmMlCommitmentPlan…}
Script     0.4.2                 AzureRM.MachineLearningCompute      Desk      {Get-AzureRmMlOpCluster, Get-AzureRmMlOpClusterKey, Test-AzureRmMlOpClusterSystemServicesUpdateAvailability, Update-AzureRmMlOpClusterSystemService…}
Script     0.2.1                 AzureRM.MarketplaceOrdering         Desk      {Get-AzureRmMarketplaceTerms, Set-AzureRmMarketplaceTerms}
Script     0.9.2                 AzureRM.Media                       Desk      {Sync-AzureRmMediaServiceStorageKeys, Set-AzureRmMediaServiceKey, Get-AzureRmMediaServiceKeys, Get-AzureRmMediaServiceNameAvailability…}
Script     5.4.2                 AzureRM.Network                     Desk      {Add-AzureRmApplicationGatewayAuthenticationCertificate, Get-AzureRmApplicationGatewayAuthenticationCertificate, New-AzureRmApplicationGatewayAuthenticationCertificate, Remove-AzureRmApplicationGatewayAuthenticationCertificate…}
Script     4.1.1                 AzureRM.NotificationHubs            Desk      {Get-AzureRmNotificationHub, Get-AzureRmNotificationHubAuthorizationRules, Get-AzureRmNotificationHubListKeys, Get-AzureRmNotificationHubPNSCredentials…}
Script     4.3.2                 AzureRM.OperationalInsights         Desk      {New-AzureRmOperationalInsightsAzureActivityLogDataSource, New-AzureRmOperationalInsightsCustomLogDataSource, Disable-AzureRmOperationalInsightsLinuxCustomLogCollection, Disable-AzureRmOperationalInsightsIISLogCollection…}
Script     4.1.4                 AzureRM.PowerBIEmbedded             Desk      {Remove-AzureRmPowerBIWorkspaceCollection, Get-AzureRmPowerBIWorkspaceCollection, Get-AzureRmPowerBIWorkspaceCollectionAccessKeys, Get-AzureRmPowerBIWorkspace…}
Script     4.6.0                 AzureRM.Profile                     Desk      {Disable-AzureRmDataCollection, Disable-AzureRmContextAutosave, Enable-AzureRmDataCollection, Enable-AzureRmContextAutosave…}
Script     4.1.2                 AzureRM.RecoveryServices            Desk      {Get-AzureRmRecoveryServicesBackupProperty, Get-AzureRmRecoveryServicesVault, Get-AzureRmRecoveryServicesVaultSettingsFile, New-AzureRmRecoveryServicesVault…}
Script     4.1.2                 AzureRM.RecoveryServices.Backup     Desk      {Backup-AzureRmRecoveryServicesBackupItem, Get-AzureRmRecoveryServicesBackupManagementServer, Get-AzureRmRecoveryServicesBackupContainer, Unregister-AzureRmRecoveryServicesBackupContainer…}
Script     0.2.4                 AzureRM.RecoveryServices.SiteRecov… Desk      {Edit-AzureRmRecoveryServicesAsrRecoveryPlan, Get-AzureRmRecoveryServicesAsrAlertSetting, Get-AzureRmRecoveryServicesAsrEvent, Get-AzureRmRecoveryServicesAsrFabric…}
Script     4.1.2                 AzureRM.RedisCache                  Desk      {Remove-AzureRmRedisCachePatchSchedule, New-AzureRmRedisCacheScheduleEntry, Get-AzureRmRedisCachePatchSchedule, New-AzureRmRedisCachePatchSchedule…}
Script     0.3.3                 AzureRM.Relay                       Desk      {New-AzureRmRelayNamespace, Get-AzureRmRelayNamespace, Set-AzureRmRelayNamespace, Remove-AzureRmRelayNamespace…}
Script     5.5.2                 AzureRM.Resources                   Desk      {Get-AzureRmProviderOperation, Remove-AzureRmRoleAssignment, Get-AzureRmRoleAssignment, New-AzureRmRoleAssignment…}
Script     0.16.3                AzureRM.Scheduler                   Desk      {Disable-AzureRmSchedulerJobCollection, Enable-AzureRmSchedulerJobCollection, Get-AzureRmSchedulerJobCollection, Get-AzureRmSchedulerJob…}
Script     4.1.2                 AzureRM.ServerManagement            Desk      {Invoke-AzureRmServerManagementPowerShellCommand, Get-AzureRmServerManagementSession, New-AzureRmServerManagementSession, Remove-AzureRmServerManagementSession…}
Script     0.6.4                 AzureRM.ServiceBus                  Desk      {New-AzureRmServiceBusNamespace, Get-AzureRmServiceBusNamespace, Set-AzureRmServiceBusNamespace, Remove-AzureRmServiceBusNamespace…}
Script     0.3.4                 AzureRM.ServiceFabric               Desk      {Add-AzureRmServiceFabricApplicationCertificate, Add-AzureRmServiceFabricClientCertificate, Add-AzureRmServiceFabricClusterCertificate, Add-AzureRmServiceFabricNode…}
Script     5.0.6                 AzureRM.SiteRecovery                Desk      {Get-AzureRmSiteRecoveryFabric, New-AzureRmSiteRecoveryFabric, Remove-AzureRmSiteRecoveryFabric, Stop-AzureRmSiteRecoveryJob…}
Script     4.4.0                 AzureRM.Sql                         Desk      {Get-AzureRmSqlDatabaseTransparentDataEncryption, Get-AzureRmSqlDatabaseTransparentDataEncryptionActivity, Set-AzureRmSqlDatabaseTransparentDataEncryption, Get-AzureRmSqlDatabaseUpgradeHint…}
Script     4.2.3                 AzureRM.Storage                     Desk      {Get-AzureRmStorageAccount, Get-AzureRmStorageAccountKey, New-AzureRmStorageAccount, New-AzureRmStorageAccountKey…}
Script     4.0.4                 AzureRM.StreamAnalytics             Desk      {Get-AzureRmStreamAnalyticsFunction, Get-AzureRmStreamAnalyticsDefaultFunctionDefinition, New-AzureRmStreamAnalyticsFunction, Remove-AzureRmStreamAnalyticsFunction…}
Script     4.0.1                 AzureRM.Tags                        Desk      {Remove-AzureRmTag, Get-AzureRmTag, New-AzureRmTag}
Script     4.0.3                 AzureRM.TrafficManager              Desk      {Disable-AzureRmTrafficManagerEndpoint, Enable-AzureRmTrafficManagerEndpoint, Set-AzureRmTrafficManagerEndpoint, Get-AzureRmTrafficManagerEndpoint…}
Script     4.0.2                 AzureRM.UsageAggregates             Desk      Get-UsageAggregates
Script     4.2.2                 AzureRM.Websites                    Desk      {Get-AzureRmAppServicePlan, Set-AzureRmAppServicePlan, New-AzureRmAppServicePlan, Remove-AzureRmAppServicePlan…}
Script     1.0.1                 Microsoft.PowerShell.Operation.Val… Desk      {Get-OperationValidation, Invoke-OperationValidation}
Binary     1.0.0.1               PackageManagement                   Desk      {Find-Package, Get-Package, Get-PackageProvider, Get-PackageSource…}
Script     3.4.0                 Pester                              Desk      {Describe, Context, It, Should…}
Script     1.0.0.1               PowerShellGet                       Desk      {Install-Module, Find-Module, Save-Module, Update-Module…}
Script     2.0.0                 PSReadline                          Desk      {Get-PSReadLineKeyHandler, Set-PSReadLineKeyHandler, Remove-PSReadLineKeyHandler, Get-PSReadLineOption…}
    Directory: C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules
ModuleType Version    PreRelease Name                                PSEdition ExportedCommands
---------- -------    ---------- ----                                --------- ----------------
Manifest   1.0.0.0               AppBackgroundTask                   Core,Desk {Disable-AppBackgroundTaskDiagnosticLog, Enable-AppBackgroundTaskDiagnosticLog, Set-AppBackgroundTaskResourcePolicy, Unregister-AppBackgroundTask…}
Manifest   2.0.1.0               Appx                                Core,Desk {Add-AppxPackage, Get-AppxPackage, Get-AppxPackageAutoUpdateSettings, Get-AppxPackageManifest…}
Script     1.0.0.0               AssignedAccess                      Core,Desk {Clear-AssignedAccess, Get-AssignedAccess, Set-AssignedAccess}
Manifest   1.0.0.0               BitLocker                           Core,Desk {Unlock-BitLocker, Suspend-BitLocker, Resume-BitLocker, Remove-BitLockerKeyProtector…}
Manifest   2.0.0.0               BitsTransfer                        Core,Desk {Add-BitsFile, Complete-BitsTransfer, Get-BitsTransfer, Remove-BitsTransfer…}
Manifest   1.0.0.0               BranchCache                         Core,Desk {Add-BCDataCacheExtension, Clear-BCCache, Disable-BC, Disable-BCDowngrading…}
Manifest   1.0.3.0               DeliveryOptimization                Core,Desk {Get-DeliveryOptimizationLog, Get-DeliveryOptimizationLogAnalysis, Delete-DeliveryOptimizationCache, Disable-DeliveryOptimizationVerboseLogs…}
Manifest   1.0.0.0               DirectAccessClientComponents        Core,Desk {Disable-DAManualEntryPointSelection, Enable-DAManualEntryPointSelection, Get-DAClientExperienceConfiguration, Get-DAEntryPointTableItem…}
Script     3.0                   Dism                                Core,Desk {Add-AppProvisionedSharedPackageContainer, Add-AppxProvisionedPackage, Add-WindowsDriver, Add-WindowsCapability…}
Manifest   1.0.0.0               DnsClient                           Core,Desk {Resolve-DnsName, Clear-DnsClientCache, Get-DnsClient, Get-DnsClientCache…}
Manifest   1.0.0.0               EventTracingManagement              Core,Desk {Start-EtwTraceSession, New-EtwTraceSession, Get-EtwTraceSession, Update-EtwTraceSession…}
Script     2021.3.23…            Get-NetView                         Core,Desk Get-NetView
Script     1.1.0.0               IISAdministration                   Core,Desk
Manifest   2.1.0.0               International                       Core,Desk {Copy-UserInternationalSettingsToSystem, Get-WinDefaultInputMethodOverride, Set-WinDefaultInputMethodOverride, Get-WinHomeLocation…}
Manifest   1.0.0.0               Kds                                 Core,Desk {Add-KdsRootKey, Get-KdsRootKey, Test-KdsRootKey, Set-KdsConfiguration…}
Manifest   3.0.0.0               Microsoft.PowerShell.Diagnostics    Core,Desk {Get-WinEvent, Get-Counter, Import-Counter, Export-Counter…}
Manifest   1.0.0.0               Microsoft.PowerShell.LocalAccounts  Core,Desk {Add-LocalGroupMember, Disable-LocalUser, Enable-LocalUser, Get-LocalGroup…}
Manifest   1.0.0                 Microsoft.Windows.Bcd.Cmdlets       Core,Desk {Copy-BcdEntry, Disable-BcdElementBootDebug, Disable-BcdElementBootEms, Disable-BcdElementDebug…}
Manifest   1.0                   MMAgent                             Core,Desk {Disable-MMAgent, Enable-MMAgent, Set-MMAgent, Get-MMAgent…}
Manifest   2.0.0.0               NetAdapter                          Core,Desk {Disable-NetAdapter, Disable-NetAdapterBinding, Disable-NetAdapterChecksumOffload, Disable-NetAdapterEncapsulatedPacketTaskOffload…}
Manifest   1.0.0.0               NetConnection                       Core,Desk {Get-NetConnectionProfile, Set-NetConnectionProfile}
Manifest   1.0.0.0               NetEventPacketCapture               Core,Desk {New-NetEventSession, Remove-NetEventSession, Get-NetEventSession, Set-NetEventSession…}
Manifest   2.0.0.0               NetLbfo                             Core,Desk {Add-NetLbfoTeamMember, Add-NetLbfoTeamNic, Get-NetLbfoTeam, Get-NetLbfoTeamMember…}
Manifest   1.0.0.0               NetNat                              Core,Desk {Get-NetNat, Get-NetNatExternalAddress, Get-NetNatStaticMapping, Get-NetNatSession…}
Manifest   2.0.0.0               NetQos                              Core,Desk {Get-NetQosPolicy, Set-NetQosPolicy, Remove-NetQosPolicy, New-NetQosPolicy}
Manifest   2.0.0.0               NetSecurity                         Core,Desk {Get-DAPolicyChange, New-NetIPsecAuthProposal, New-NetIPsecMainModeCryptoProposal, New-NetIPsecQuickModeCryptoProposal…}
Manifest   1.0.0.0               NetSwitchTeam                       Core,Desk {New-NetSwitchTeam, Remove-NetSwitchTeam, Get-NetSwitchTeam, Rename-NetSwitchTeam…}
Manifest   1.0.0.0               NetTCPIP                            Core,Desk {Get-NetIPAddress, Get-NetIPInterface, Get-NetIPv4Protocol, Get-NetIPv6Protocol…}
Manifest   1.0.0.0               NetworkConnectivityStatus           Core,Desk {Get-DAConnectionStatus, Get-NCSIPolicyConfiguration, Reset-NCSIPolicyConfiguration, Set-NCSIPolicyConfiguration}
Manifest   1.0.0.0               NetworkSwitchManager                Core,Desk {Disable-NetworkSwitchEthernetPort, Enable-NetworkSwitchEthernetPort, Get-NetworkSwitchEthernetPort, Remove-NetworkSwitchEthernetPortIPAddress…}
Manifest   1.0.0.0               NetworkTransition                   Core,Desk {Add-NetIPHttpsCertBinding, Disable-NetDnsTransitionConfiguration, Disable-NetIPHttpsProfile, Disable-NetNatTransitionConfiguration…}
Manifest   1.0.0.0               PcsvDevice                          Core,Desk {Get-PcsvDevice, Start-PcsvDevice, Stop-PcsvDevice, Restart-PcsvDevice…}
Manifest   1.0.0.0               PKI                                 Core,Desk {Add-CertificateEnrollmentPolicyServer, Export-Certificate, Export-PfxCertificate, Get-CertificateAutoEnrollmentPolicy…}
Manifest   1.0.0.0               PnpDevice                           Core,Desk {Get-PnpDevice, Get-PnpDeviceProperty, Enable-PnpDevice, Disable-PnpDevice}
Manifest   1.1                   PrintManagement                     Core,Desk {Add-Printer, Add-PrinterDriver, Add-PrinterPort, Get-PrintConfiguration…}
Binary     1.0.12                ProcessMitigations                  Core,Desk {Get-ProcessMitigation, Set-ProcessMitigation, ConvertTo-ProcessMitigationPolicy}
Script     3.0                   Provisioning                        Core,Desk {Install-ProvisioningPackage, Export-ProvisioningPackage, Install-TrustedProvisioningCertificate, Export-Trace…}
Manifest   1.0.0.0               ScheduledTasks                      Core,Desk {Get-ScheduledTask, Set-ScheduledTask, Register-ScheduledTask, Unregister-ScheduledTask…}
Manifest   2.0.0.0               SecureBoot                          Core,Desk {Confirm-SecureBootUEFI, Set-SecureBootUEFI, Get-SecureBootUEFI, Format-SecureBootUEFI…}
Manifest   2.0.0.0               SmbShare                            Core,Desk {Get-SmbShare, Remove-SmbShare, Set-SmbShare, Block-SmbShareAccess…}
Manifest   2.0.0.0               SmbWitness                          Core,Desk {Get-SmbWitnessClient, Move-SmbWitnessClient, gsmbw, msmbw…}
Manifest   1.0.0.1               StartLayout                         Core,Desk {Export-StartLayout, Import-StartLayout, Export-StartLayoutEdgeAssets, Get-StartApps}
Manifest   2.0.0.0               Storage                             Core,Desk {Add-InitiatorIdToMaskingSet, Add-PartitionAccessPath, Add-PhysicalDisk, Add-StorageFaultDomain…}
Manifest   2.0.0.0               TLS                                 Core,Desk {New-TlsSessionTicketKey, Enable-TlsSessionTicketKey, Disable-TlsSessionTicketKey, Export-TlsSessionTicketKey…}
Manifest   1.0.0.0               TroubleshootingPack                 Core,Desk {Get-TroubleshootingPack, Invoke-TroubleshootingPack}
Manifest   2.0.0.0               TrustedPlatformModule               Core,Desk {Get-Tpm, Initialize-Tpm, Clear-Tpm, Unblock-Tpm…}
Binary     2.1.639.0             UEV                                 Core,Desk
Manifest   2.0.0.0               VpnClient                           Core,Desk {Add-VpnConnection, Set-VpnConnection, Remove-VpnConnection, Get-VpnConnection…}
Manifest   1.0.0.0               Wdac                                Core,Desk {Get-OdbcDriver, Set-OdbcDriver, Get-OdbcDsn, Add-OdbcDsn…}
Manifest   2.0.0.0               Whea                                Core,Desk {Get-WheaMemoryPolicy, Set-WheaMemoryPolicy}
Manifest   1.0.0.0               WindowsDeveloperLicense             Core,Desk {Get-WindowsDeveloperLicense, Unregister-WindowsDeveloperLicense, Show-WindowsDeveloperLicenseRegistration}
Script     1.0                   WindowsErrorReporting               Core,Desk {Enable-WindowsErrorReporting, Disable-WindowsErrorReporting, Get-WindowsErrorReporting}
Manifest   1.0.0.0               WindowsSearch                       Core,Desk {Get-WindowsSearchSetting, Set-WindowsSearchSetting}
Manifest   1.0.0.0               WindowsUpdate                       Core,Desk Get-WindowsUpdateLog

如图:

3. 卸载已安装的 PowerShell 模块

使用Uninstall-Module命令可以卸载一个已安装的 PowerShell 模块。其语法格式如下:

Uninstall-Module
         [-Name] <String[]>
         [-MinimumVersion <String>]
         [-RequiredVersion <String>]
         [-MaximumVersion <String>]
         [-AllVersions]
         [-Force]
         [-AllowPrerelease]
         [-WhatIf]
         [-Confirm]
         [<CommonParameters>]
Uninstall-Module
         [-InputObject] <PSObject[]>
         [-Force]
         [-WhatIf]
         [-Confirm]
         [<CommonParameters>]

需要注意的是,与安装模块时会自动安装模块的依赖不同,该命令仅仅会卸载指定的模块本身而不会卸载掉该模块的任何依赖模块。

参数说明

- AllowPrerelease

允许您卸载标记为预发行的模块。

类型: SwitchParameter
Position: Named
默认值: None
接受管道输入: False
接受通配符字符: False

-AllVersions

指定要包含模块的所有可用版本。您不能使用具有最小反转最大反转所需反转参数的全反转参数

类型: SwitchParameter
Position: Named
默认值: None
接受管道输入: False
接受通配符字符: False

-Confirm

在运行之前提示进行确认 。Uninstall-Module

类型: SwitchParameter
别名: cf
Position: Named
默认值: False
接受管道输入: False
接受通配符字符: False

-Force

无需请求用户确认即可运行的强制力。Uninstall-Module

类型: SwitchParameter
Position: Named
默认值: None
接受管道输入: False
接受通配符字符: False

-InputObject

接受PS 存储信息对象。例如,输出到变量并使用该变量作为输入对象参数。Get-InstalledModule

类型: PSObject[]
Position: 0
默认值: None
接受管道输入: False
接受通配符字符: False

-MaximumVersion

指定要卸载的模块的最大版本或最新版本。。不能在同一命令中使用 MinimumVersionRequiredVersion 参数。

类型: String
Position: Named
默认值: None
接受管道输入: True
接受通配符字符: False

-MinimumVersion

指定卸载模块的最低版本。不能在同一命令中使用 MinimumVersionRequiredVersion 参数。

类型: String
Position: Named
默认值: None
接受管道输入: True
接受通配符字符: False

-Name

指定要卸载的模块名称阵列。

类型: String[]
Position: 0
默认值: None
接受管道输入: True
接受通配符字符: False

-RequiredVersion

指定要卸载的模块的确切版本编号。

类型: String
Position: Named
默认值: None
接受管道输入: True
接受通配符字符: False

-WhatIf

显示如果Uninstall-Module运行会发生什么。cmdlet没有运行。

类型: SwitchParameter
别名: wi
Position: Named
默认值: False
接受管道输入: False
接受通配符字符: False

4. 更新 PowerShell 模块

更新 PowerShell 模块是值将指定模块的最新版本从在线模块库下载并安装到本地计算机。可以使用Update-Module命令,其语法格式如下:

Update-Module
      [[-Name] <String[]>]
      [-RequiredVersion <String>]
      [-MaximumVersion <String>]
      [-Credential <PSCredential>]
      [-Scope <String>]
      [-Proxy <Uri>]
      [-ProxyCredential <PSCredential>]
      [-Force]
      [-AllowPrerelease]
      [-AcceptLicense]
      [-PassThru]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]

【例子1】更新所有模块

Update-Module

【例子2】由模块名更新指定模块(-Name)

Update-Module -Name logger

【例子3】更新某个模块到指定版本(-RequiredVersion xxx

Update-Module -Name SpeculationControl -RequiredVersion 1.0.14

【例子4】不经过确认下更新一个模块(-Force

Update-Module -Name SpeculationControl -Force

5. 保存 PowerShell 模块(源码)

使用Save-Module命令可以从存储库中下载模块及该模块的依赖保存到本地目录,但不会安装它。其语法如下:

Save-Module
    [-Name] <String[]>
    [-MinimumVersion <String>]
    [-MaximumVersion <String>]
    [-RequiredVersion <String>]
    [-Repository <String[]>]
    [-Path] <String>
    [-Proxy <Uri>]
    [-ProxyCredential <PSCredential>]
    [-Credential <PSCredential>]
    [-Force]
    [-AllowPrerelease]
    [-AcceptLicense]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

【例子1】:以名字保存某个模块及其依赖到某个目录下:

Save-Module -Name logger -Path .\modules

执行该命令后,名为“logger”的PowerShell库及其以来库被保存在在当前目录的 modules 子目录下,如图所示。

【例子2】指定模块的特定版本(该例来于官方文档)

Save-Module -Name PowerShellGet -Path C:\Test\Modules -Repository PSGallery -MaximumVersion 2.1.0

安装后,你可以在ps窗口中输出安装目录:

Get-ChildItem -Path C:\Test\Modules\PowerShellGet\

Out[]:

Directory: C:\Test\Modules\PowerShellGet
Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----         7/1/2019     13:40                2.1.0

【例子3】查找并保存模块的特定版本(该例来于官方文档)

Find-Module -Name PowerShellGet -Repository PSGallery -RequiredVersion 1.6.5 | Save-Module -Path C:\Test\Modules

安装后,你可以在ps窗口中输出安装目录:

Get-ChildItem -Path C:\Test\Modules\PowerShellGet
Directory: C:\Test\Modules\PowerShellGet
Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----         7/1/2019     14:04                1.6.5

6. 发布你的 PowerShell 模块

将指定模块从本地计算机发布到在 PowerShell 模块库,这样其它的开发者也包括你自己就可以通过Save-ModuleInstall-Module等命令获得你发布的模块了。想要发布你的模块需要使用Publish-Module命令,其语法格式如下:

Publish-Module
       -Name <String>
       [-RequiredVersion <String>]
       [-NuGetApiKey <String>]
       [-Repository <String>]
       [-Credential <PSCredential>]
       [-FormatVersion <Version>]
       [-ReleaseNotes <String[]>]
       [-Tags <String[]>]
       [-LicenseUri <Uri>]
       [-IconUri <Uri>]
       [-ProjectUri <Uri>]
       [-Exclude <String[]>]
       [-Force]
       [-AllowPrerelease]
       [-SkipAutomaticTags]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Publish-Module
       -Path <String>
       [-NuGetApiKey <String>]
       [-Repository <String>]
       [-Credential <PSCredential>]
       [-FormatVersion <Version>]
       [-ReleaseNotes <String[]>]
       [-Tags <String[]>]
       [-LicenseUri <Uri>]
       [-IconUri <Uri>]
       [-ProjectUri <Uri>]
       [-Force]
       [-SkipAutomaticTags]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]

Publish-Module命令通过使用作为用户档案的一部分存储在图库中的API key,将模块发布到在线 NuGet-based的模块库。您可以通过模块的名称或模块的路径来指定要发布的模块。

当按名称指定模块时,Publish-Module 发布通过运行Get-Module -ListAvailable <Name> 找到的第一个模块。如果你指定要发布的模块的最低版本,Publish-Module将发布第一个版本大于或等于你指定的最低版本的模块。

发布模块需要显示在模块库页面上的元数据。必需的元数据包括模块名称、版本、描述和作者。虽然大多数元数据取自模块清单,但一些元数据必须在发布模块参数中指定,如 Tag, ReleaseNoteIconUriProjectUri、 和LicenseUri,因为这些参数与基于NuGet的库中的字段匹配。

【例子】发布你的模块

Publish-Module -Name "YourModule" -NuGetApiKey "12e6d435-7fe4-3bf7-9161-5273wf36def7"

【例子2】发布模块时使用元数据

Publish-Module -Name "YourModule" -NuGetApiKey "12e6d435-7fe4-3bf7-9161-5273wf36def7" -LicenseUri "http://jcstdio.tech/license" -Tag "xxxx ","XXX" -ReleaseNote "Xxx xxx."
相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore &nbsp; &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
1月前
|
存储 运维 安全
2024.3.18隐语训练营第1讲笔记:数据可信流通,从运维信任到技术信任
数据二十条提出了要建立数据可信流通体系,使得数据可以安全的流转起来。但由于在数据流通中存在的各种风险,使得信任四要素全部遭到破坏,导致信任降级甚至崩塌。为了应对这些风险,要实现从运维信任到技术信任的转变,针对信任的各个要素,提出了解决方案。最后简要介绍了安全可信基础设施的融合布局。
44 3
|
1天前
|
存储 运维 Shell
Ansible自动化运维工具安装和基本使用
Ansible 是一款无代理的IT自动化工具,通过SSH连接目标主机执行配置管理、应用部署和云端管理任务。它使用YAML编写的Playbook定义任务,核心组件包括Playbook、模块、主机清单、变量等。Ansible的优势在于易用、功能强大、无须在目标主机安装额外软件,并且开源。安装过程涉及配置网络源、yum安装和SSH密钥设置。通过定义主机清单和使用模块进行通信测试,确保连接成功。
Ansible自动化运维工具安装和基本使用
|
1天前
|
运维 网络协议 Linux
【运维系列】Centos7安装并配置PXE服务
PXE是Intel开发的预启动执行环境,允许工作站通过网络从远程服务器启动操作系统。它依赖DHCP分配IP,DNS服务分配主机名,TFTP提供引导程序,HTTP/FTP/NFS提供安装源。要部署PXE服务器,需关闭selinux和防火墙,安装dhcpd、httpd、tftp、xinetd及相关服务,配置引导文件和Centos7安装源。最后,通过syslinux安装引导文件,并创建pxelinux.cfg/default配置文件来定义启动参数。
5 0
|
1天前
|
运维 网络协议 Linux
【运维系列】Centos7安装并配置postfix服务
安装CentOS7的Postfix和Dovecot,配置Postfix的`main.cf`文件,包括修改完全域名、允许所有IP、启用邮箱等。然后,配置Dovecot的多个配置文件以启用auth服务和调整相关设置。重启Postfix和Dovecot,设置开机自启,并关闭防火墙进行测试。最后,创建邮箱账户并在Windows邮箱客户端中添加账户设置。
9 0
|
1月前
|
运维 安全 区块链
隐语训练营第1讲笔记:数据可信流通,从运维信任到技术信任
数据可信流通需要从运维信任转向技术信任,需要安全可信基础设施的融合布局。
42 1
|
1月前
|
存储 运维 安全
[隐私计算实训营笔记]第一课——数据可信流通,从运维信任到技术信任
本课以数据要素可信流通,重构技术信任体系为主题,介绍了信任四要素,以及其对应破环的原因,因此需要从运维信任走向技术信任的路线,并最终完成安全可信基础设施的融合布局。 感谢授课人韦韬老师~
|
1月前
|
运维 安全 数据安全/隐私保护
|
3月前
|
存储 Ubuntu Linux
windows可以安装Ubuntu,ubuntu上也可以安装Powershell
powerhsell除了可以在windows上使用外,还可以在Ubuntu上部署开发环境。下面介绍Ubuntu上安装powershell的方法。
50 0
|
5月前
|
Shell Linux 开发工具
windows中cmd和PowerShell批处理命令
之前在 Git 批量删除本地分支,有用到 Linux 或 MacOS 下的批处理命令,这个命令中的 grep、xargs 本身是 Shell script,在 windows 中的 cmd 和 PowerShell 中是不能用的
51 0