PowerShellのバージョンだけの症状です。これは問題の実際の原因ではありません。 zipアーカイブを扱う関連クラスは、.NET Framework 4.5(PowerShell v4の前提条件)のSystem.IO.Compression
名前空間に追加され、earlier versionsでは利用できません。 .NET Frameworkのバージョン4.5をインストールすると、PowerShell v2でもIO.Compression.ZipFile
クラスを使用できるようになります。 Add-Type
コマンドレットは前のPowerShell v3では使用できませんので
ただし、
[Reflection.Assembly]::LoadWithPartialName("System.IO.Compression.Filesystem")
で
Add-Type -Assembly "System.IO.Compression.Filesystem"
を交換する必要があります。
@FoxDeployにより示唆されるように、Shell.Application
COMオブジェクトであっても、.NET Frameworkの4.5せずに箱から出して動作します代替。しかし、CopyHere()
メソッドは非同期で実行されることに注意してください。つまり、実際のコピー操作が完了するのを待たずにすぐに戻ります。スクリプトから実行する場合は、スクリプトが終了したときにオブジェクトShell.Application
が自動的に破棄され、未完了のコピー操作が中止されるため、何らかの遅延を追加する必要があります。
私はこの質問をhttp://stackoverflow.com/questions/44030884/creating-zip-files-using-powershell/44031912#44031912 – randiel