<img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=1678611822423757&amp;ev=PageView&amp;noscript=1">

PowerShell ギャラリーへのスクリプト公開

Adam Bertram| January 14 2019

| IT insights, PowerShell

how-to-publish-scripts-to-the-powershell-gallery

優れた PowerShell スクリプトを作成したら、それを他の人たちと共有すると、まったく新しい世界が開けます。スクリプトを PowerShell ギャラリーに公開することで、コミュニティへの貢献ができ、人から認められたいという欲求が満たされ、交流することで自らの PowerShell スキルの向上にもつながります。

PowerShell ギャラリーに公開されるのは PowerShell モジュールやソフトウェアパッケージが多いですが、昔ながらのPS1スクリプトを公開することもできます。

PowerShell ギャラリーにコンテンツを公開するのは誰にでもできますが、まずアカウントを設定する必要があります。アカウントを設定したら、次に自分に割り当てられた固有のAPIキーが必要になりますが、APIキーは、PowerShell ギャラリーの自分のプロファイルにアクセスして見つけることができます。PowerShell Gallery API Key

PowerShell Gallery API KeyPowerShell ギャラリー API キー

APIキーが確認できたら、準備完了です。公開するスクリプトが必要なので、わかりやすい例としてばからしいほど単純なスクリプトをアップロード用に作成しました。このスクリプトを adbtest.ps1 と呼ぶことにします。

param(
    [Parameter(Mandatory)]
    [ValidateNotNullOrEmpty()]
    [string]$Name
)

Write-Host $Name

スクリプトを公開するには、Publish-Script コマンドレットを使います。最もシンプルな場合、2つのパラメータ、スクリプトへのパスと NuGetApiKey パラメータとして定義されるAPIキーを指定します。

ですが、スクリプトをそのまま公開しようとすると、すぐに問題が発生します。

PS> Publish-Script -Path C:\adbtest.ps1 -NuGetApiKey <ApiKey>

NuGet.exe is required to continue
PowerShellGet requires NuGet.exe to publish an item to the NuGet-based repositories. NuGet.exe must be available in 'C:\ProgramData\Microsoft\Windows\PowerShell\PowerShellGet\' or 'C:\Users\abertram\AppData\Local\Microsoft\Windows\PowerShell\PowerShellGet\, or under one
 of the paths specified in PATH environment variable value. NuGet.exe can be downloaded from https://nuget.org/nuget.exe. Do you want PowerShellGet to install NuGet.exe now?
[Y] Yes  [N] No  [S] Suspend  [?] Help (default is "Y"): y
9:01:33 AM : PSScriptInfo is not specified in the script file 'C:\adbtest.ps1'. You can use the Update-ScriptFileInfo with -Force or New-ScriptFileInfo cmdlet to add the PSScriptInfo to the script file.

PowerShell ギャラリーに公開するスクリプトには、事前にメタデータを追加しておく必要があります。このメタデータには、バージョン、作成者、GUIDなどが含まれます。必要な情報を追加するには、New-ScriptFileInfo コマンドを使用して新しいスクリプトを最初から作成するか、Update-ScriptFileInfo コマンドを使用して既存のスクリプトを更新します。Update-ScriptFileInfo コマンドによってスクリプトが変更されるかもしれない可能性を排除するために、筆者は常に新しいスクリプトを最初から作成するようにしています。

New-ScriptFileInfo コマンドを使って、新しく AdamsTestScript.ps1 というPS1スクリプトを作成して、前のスクリプトの内容をコピーしてこのスクリプトに貼り付けます。

PS> New-ScriptFileInfo -Path C:\AdamsTestScript.ps1 -Description 'This is a test description'
PS> Get-Content -Path 'C:\AdamsTestScript.ps1'

<#PSScriptInfo

.VERSION 1.0

.GUID 5611f619-12cf-4a85-863a-1b09f337e397

.AUTHOR abertram

.COMPANYNAME

.COPYRIGHT

.TAGS

.LICENSEURI

.PROJECTURI

.ICONURI

.EXTERNALMODULEDEPENDENCIES

.REQUIREDSCRIPTS

.EXTERNALSCRIPTDEPENDENCIES

.RELEASENOTES


#>

<#

.DESCRIPTION
 This is a test description

#>
param(
    [Parameter(Mandatory)]
    [ValidateNotNullOrEmpty()]
    [string]$Name
)

Write-Host $Name

これで本当にスクリプトを公開する準備が整ったので、もう一度、Publish-Script を実行します。

Publish-Script -Path C:\AdamsTestScript.ps1 -NuGetApiKey <ApiKey>

今度はエラーは返ってきません。スクリプトが実際に公開されたかどうかは、PS1拡張子なしの名前を入れて Find-Script コマンドを実行すれば確認できます。

PS> Find-Script -Name AdamsTestScript

Version    Name                                Repository           Description
-------    ----                                ----------           -----------
1.0        AdamsTestScript                     PSGallery            This is a test description

この時点で、誰にでも利用可能です。ギャラリーポータルからも見ることができます。managing PowerShell Gallery Itemsmanaging PowerShell Gallery Items

managing PowerShell Gallery ItemsManaging PowerShell Gallery Items

PowerShell を使って自動化する方法

Topics: IT insights, PowerShell

Default HTML block

コメントをどうぞ

メールアドレスは公開されません。アスタリスクマーク*のついたフィールドは必須項目です。

THIS POST WAS WRITTEN BY Adam Bertram

Adam Bertram is a 20-year veteran of IT. He’s currently an automation engineer, blogger, independent consultant, freelance writer, author, and trainer. Adam focuses on DevOps, system management, and automation technologies as well as various cloud platforms. He is a Microsoft Cloud and Datacenter Management MVP and efficiency nerd that enjoys teaching others a better way to leverage automation.

無料試用版

無料試用版をお気軽にお試しください。

無料試用版を試す

コンタクト

ご質問、ご意見をお寄せください。

連絡先

ブログの定期メール便

ブログを定期的にメール配信いたします。