BitsTransfer モジュールは、BITS ジョブを操作するためのネイティブ PowerShell メソッドを公開しているため、このモジュールを使用することをお勧めします。開始するには、PowerShell に BITS モジュールを読み込むよう指示するだけです。
Import-Module BitsTransfer
Get-Commandを実行して、追加された新しい BITS コマンドレットを確認すると、次のように表示されます。
PS C:\> Get-Command *-bits*
CommandType Name
----------- ----
Cmdlet Add-BitsFile
Cmdlet Complete-BitsTransfer
Cmdlet Get-BitsTransfer
Cmdlet Remove-BitsTransfer
Cmdlet Resume-BitsTransfer
Cmdlet Set-BitsTransfer
Cmdlet Start-BitsTransfer
Cmdlet Suspend-BitsTransfer
あなたが最も興味を持っているのはStart-BitsTransferでしょう:
Start-BitsTransfer -Source http://localhost/BigInstaller.msi
コマンドレットは画面に進行状況バーを表示し、ダウンロードが完了するまで待機します。ダウンロードが完了するまで、スクリプトの次のコマンドは実行されません。
非同期タスクの場合、-Asynchronous
パラメーターを Start-BitsTransfer コマンドレットに追加すると、ダウンロードがキューに入れられ、バックグラウンドで実行されます。これらのダウンロードは、Get-BitsTransferおよびComplete-BitsTransferコマンドレットで管理できます。
PS C:\> Start-BitsTransfer -Source http://localhost/BigInstaller.msi -Async
JobId DisplayName TransferType JobState
----- ----------- ------------ --------
da7bab7f-fbfd-432d-8... BITS Transfer Download Connecting
PS C:\> Get-BitsTransfer
JobId DisplayName TransferType JobState
----- ----------- ------------ --------
da7bab7f-fbfd-432d-8... BITS Transfer Download Transferred
# finish and jobs that have transferred (e.g. write them to destination on disk)
PS C:\> Get-BitsTransfer | ? {$_.JobState -eq "Transferred"} | Complete-BitsTransfer