Windows の新しい展開では、Windows PowerShell 5.1 には、PowerShell ギャラリーと対話するために必要な NuGet コンポーネントは含まれません。 PowerShellGet には、PowerShell ギャラリーに接続できる限り、これらのコンポーネントを更新するロジックが含まれています。 コンピューターがインターネットに接続されていない場合は、信頼できるソースから切断されたコンピューターに必要なファイルをコピーする必要があります。
PowerShellギャラリーと連携するために、コマンドによって更新されたNuGetプロバイダーが必須です。
Publish-*コマンドはリソースを公開するために nuget.exe を使用します。
インターネットに接続されたマシンに最新バージョンのPowerShellGetをインストールしてください
PowerShellGetの最新バージョンをインストールするには、以下のコマンドを実行します:
Install-Module -Name PowerShellGet -Repository PSGallery
Nでプロンプトに 答えて NuGetプロバイダーをインストールしてください。
NuGet provider is required to continue
PowerShellGet requires NuGet provider version '2.8.5.201' or newer to interact with NuGet
-based repositories. The NuGet provider must be available in 'C:\Program Files\PackageMan
agement\ProviderAssemblies' or 'C:\Users\user1\AppData\Local\PackageManagement\ProviderAs
semblies'. You can also install the NuGet provider by running 'Install-PackageProvider -N
ame NuGet -MinimumVersion 2.8.5.201 -Force'. Do you want PowerShellGet to install and imp
ort the NuGet provider now?
[Y] Yes [N] No [S] Suspend [?] Help (default is "Y"): Y
VERBOSE: Installing NuGet provider.
Yに答えると、PowerShellGetはNuGetプロバイダーとnuget.exeコマンドラインツール(必要に応じて)をインストールします。
注
PowerShellGetをインストールすると、自動的にPackageManagementの最新バージョンがインストールされます。
必要なファイルを隔離されたコンピュータにコピーしてください
インターネット接続されたマシンにアップデートをインストールした後、信頼できるオフラインプロセスを通じて独立したノードに手動でコンポーネントをコピーします。
PowerShellGet モジュールと PackageManagement モジュールをオフライン コンピューターにコピーします。 ソースマシン上のモジュールを特定するには、以下のコマンドを使用します。
Get-Module PowerShellGet, PackageManagement -ListAvailable | Sort-Object Version -Descending | Select-Object Path -First 2結果は以下の出力に似ているはずです。
Path ---- C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\2.2.5\PowerShellGet.psd1 C:\Program Files\WindowsPowerShell\Modules\PackageManagement\1.4.8.1\PackageManagement.psd1モジュールフォルダー全体を隔離されたマシンの同じ場所にコピーしてください。 例えば、モジュールが
PowerShellGet\2.2.5に位置し、PackageManagement\1.4.8.1フォルダーを$env:PROGRAMFILES\WindowsPowerShell\Modulesの下の同じフォルダ名に割り当てている場合などです。注
ファイルを
$env:PROGRAMFILESにコピーするには管理者権限が必要です。nuget.exeを分離されたマシンにコピーしてください。 PowerShellGetは以下の場所にインストールnuget.exe:$env:LOCALAPPDATA\Microsoft\Windows\PowerShell\PowerShellGet\nuget.exeもしその場所にファイルがなければ、どこか別の場所にインストールされているか、PowerShellGetで.NET CLI(
dotnet.exe)を見つけます。 https://aka.ms/psget-nugetexeから最新バージョンのnuget.exeをダウンロードできます。ターゲットコンピュータの
$env:LOCALAPPDATA\Microsoft\Windows\PowerShell\PowerShellGet\nuget.exeにnuget.exeコピーしてください。
コピーしたファイルのブロックを解除してください
他のコンピュータからファイルをコピーすると、Windowsがそのファイルをブロックすることがあります。 コピーされたファイルのブロックを解除するには、ターゲットマシンで以下のコマンドを実行してください。
$getChildItemSplat = @{
Path = @(
"$env:PROGRAMFILES\WindowsPowerShell\Modules\PowerShellGet"
"$env:PROGRAMFILES\WindowsPowerShell\Modules\PackageManagement"
"$env:LOCALAPPDATA\Microsoft\Windows\PowerShell\PowerShellGet\nuget.exe"
)
Recurse = $true
}
Get-ChildItem @getChildItemSplat | Unblock-File
PowerShell Gallery