Publish-Script

发布脚本。

语法

Publish-Script
       -Path <String>
       [-NuGetApiKey <String>]
       [-Repository <String>]
       [-Credential <PSCredential>]
       [-Force]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Publish-Script
       -LiteralPath <String>
       [-NuGetApiKey <String>]
       [-Repository <String>]
       [-Credential <PSCredential>]
       [-Force]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]

说明

cmdlet Publish-Script 将指定的脚本发布到联机库。

这是 Microsoft.PowerShell.PSResourceGet 中 cmdlet 的代理 Publish-PSResource cmdlet。 有关详细信息,请参阅 Publish-PSResource

示例

示例 1:创建脚本文件,向其添加内容并发布

cmdlet New-ScriptFileInfo 创建一个名为 的 Demo-Script.ps1脚本文件。 Get-Content 显示 的内容 Demo-Script.ps1。 cmdlet Add-Content 将函数和工作流添加到 Demo-Script.ps1

$newScriptInfo = @{
  Path = 'D:\ScriptSharingDemo\Demo-Script.ps1'
  Version = '1.0'
  Author = 'author@contoso.com'
  Description = "my test script file description goes here"
}
New-ScriptFileInfo @newScriptInfo
Get-Content -Path $newScriptInfo.Path

<#PSScriptInfo

.VERSION 1.0

.AUTHOR pattif@microsoft.com

.COMPANYNAME

.COPYRIGHT

.TAGS

.LICENSEURI

.PROJECTURI

.ICONURI

.EXTERNALMODULEDEPENDENCIES

.REQUIREDSCRIPTS

.EXTERNALSCRIPTDEPENDENCIES

.RELEASENOTES
#>

<#
.DESCRIPTION
 my test script file description goes here
#>
Param()

Add-Content -Path D:\ScriptSharingDemo\Demo-Script.ps1 -Value @"

Function Demo-ScriptFunction { 'Demo-ScriptFunction' }

Workflow Demo-ScriptWorkflow { 'Demo-ScriptWorkflow' }

Demo-ScriptFunction
Demo-ScriptWorkflow
"@
Test-ScriptFileInfo -Path D:\ScriptSharingDemo\Demo-Script.ps1

Version    Name                 Author                   Description
-------    ----                 ------                   -----------
1.0        Demo-Script          author@contoso.com       my test script file description goes here

Publish-Script -Path D:\ScriptSharingDemo\Demo-Script.ps1 -Repository LocalRepo1
Find-Script -Repository LocalRepo1 -Name "Demo-Script"

Version    Name                 Type       Repository    Description
-------    ----                 ----       ----------    -----------
1.0        Demo-Script          Script     LocalRepo1    my test script file description goes here

cmdlet Test-ScriptFileInfo 验证 Demo-Script.ps1。 cmdlet Publish-Script 将脚本发布到 LocalRepo1 存储库。 最后, Find-Script用于在 LocalRepo1 存储库中搜索Demo-Script.ps1

参数

-Confirm

提示你在运行 cmdlet 之前进行确认。

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Credential

Type:PSCredential
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Force

代理 cmdlet 会忽略此参数,因为它不受 支持 Publish-PSResource

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-LiteralPath

指定一个或多个位置的路径。 与 Path 参数不同, LiteralPath 参数的值完全按照输入的方式使用。 不会将任何字符解释为通配符。 如果路径包含转义字符,请用单引号将它们括起来。 单引号会告知 Windows PowerShell 不要将所有字符都解释为转义序列。

参数映射到 cmdlet 的 Publish-PSResourcePath 参数。

Type:String
Aliases:PSPath
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-NuGetApiKey

指定要用于将脚本发布到联机库的 API 密钥。 API 密钥是联机库中配置文件的一部分。 有关详细信息,请参阅 管理 API 密钥

参数映射到 cmdlet 的 Publish-PSResourceApiKey 参数。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Path

指定一个或多个位置的路径。 允许使用通配符。 默认位置为当前目录。

Type:String
Position:Named
Default value:<Current location>
Required:True
Accept pipeline input:True
Accept wildcard characters:True

-Repository

指定已通过运行 Register-PSRepository注册的存储库的友好名称。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

显示运行该 cmdlet 时会发生什么情况。 cmdlet 未运行。

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

输入

String

PSCredential

输出

Object

备注

PowerShell 库不再支持传输层安全性 (TLS) 版本 1.0 和 1.1。 必须使用 TLS 1.2 或更高版本。 使用以下命令可以确定使用的是 TLS 1.2:

[Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointManager]::SecurityProtocol -bor [Net.SecurityProtocolType]::Tls12