Windows Server 2012 R2(64ビット)を使用しています。 PowerShellバージョン4が利用可能です。ファイルを圧縮および解凍しようとしています。 Write-Zipコマンドを実行すると、次のエラーがスローされます。
Write-Zip:「Write-Zip」という用語は、コマンドレット、関数、スクリプトファイル、または操作可能なプログラムの名前として認識されません。名前のスペルを確認するか、パスが含まれていた場合は、パスが正しいことを確認してから再試行してください。
修正するにはどうすればよいですか?サーバーにZip/winrarをインストールする必要がありますか?または、ファイルをZip/unzipする他のコマンドはありますか?
Write-Zip
は http://pscx.codeplex.com/ の一部であると思われるため、使用するには別のインストールが必要です。
ただし、フォルダーからZipアーカイブを作成するだけの場合は、次を実行できます。
$source = "c:\temp\source"
$archive = "c:\temp\archive.Zip"
Add-Type -Assembly "system.io.compression.filesystem"
[io.compression.zipfile]::CreateFromDirectory($source, $archive)
これは、.NET FrameworkクラスCreateFromDirectory
のZipFile
メソッドを利用します。 $source
フォルダー内にあるファイルからZipアーカイブを作成し、$archive
変数で定義されているアーカイブを作成します。注: ZipFile クラスは.NET Framework 4.5で導入されました
カスタムPowerShellオブジェクトNew-Object -ComObject Shell.Application
を使用し、フラグ付きのファイルをコピーして解凍することができます。
$filePath = "foo.Zip"
$Shell = New-Object -ComObject Shell.Application
$zipFile = $Shell.NameSpace($filePath)
$destinationFolder = $Shell.NameSpace("C:\Program Files\WindowsPowerShell\Modules")
$copyFlags = 0x00
$copyFlags += 0x04 # Hide progress dialogs
$copyFlags += 0x10 # Overwrite existing files
$destinationFolder.CopyHere($zipFile.Items(), $copyFlags)
これは、Windowsの「コア」エディションでは機能しません。可能であれば、powershell 5にアップグレードし、Expand Archive
を使用します。
Write-Zipのインストールが正しく実行されなかった可能性があります。環境パラメーターPSModulePathの誤った手動編集が原因である可能性があります。
悪い(元の)値:
PSModulePath = %SystemRoot%\system32\WindowsPowerShell\v1.0\Modules\;C:\Program Files (x86)\PowerShell Community Extensions\Pscx3\;C:\Program Files\Intel\
適切な値(問題を修正):
PSModulePath = C:\Program Files (x86)\PowerShell Community Extensions\Pscx3\;%SystemRoot%\system32\WindowsPowerShell\v1.0\Modules\;C:\Program Files\Intel\
PowerShell V5( https://www.Microsoft.com/en-us/download/details.aspx?id=50395 )にアップグレードできる場合、ネイティブに含まれています。 https://richardspowershellblog.wordpress.com/2014/10/25/powershell-5-Zip-and-unzip/
PowerShellバージョン4の場合、この検索 http://www.powershellgallery.com/items?q=Zip&x=0&y= を使用できる場合があります。また、これはあなたが探していることをするように見えます: https://www.powershellgallery.com/packages/Microsoft.PowerShell.Archive/1.0.1.
モジュールをインストールするには、次を入力する必要があります。
install-module -name <module name>
お役に立てれば。ありがとう、ティム。