1

アップロードを実行する PowerShell スクリプトがあり、アップロードしたばかりのファイルについて RESTful 要求を実行する必要があります。現在、非非同期メソッドとしてうまく機能しています

Start-BitsTransfer -Source $fullPath -Destination "https://www.example.com/bitsupload/$Guid.$SourceFile" -Credential $Credential -TransferType Upload

$web = New-Object Net.WebClient
$web.DownloadString("https://www.example.com/newbitspost/?filename=$Guid.$SourceFile&filedescription=$Description&Friendlyname=$SourceFile")

ただし、これをバックグラウンドで実行して、エンド ユーザーがウィンドウを閉じることができるようにしたいと考えています (さらに重要なことに、最終的な目標であるログオフ)。

に追加できることはわかって-AsynchronousStart-BitsTransferますが、転送の完了後にその GET 要求を実行する方法がわかりません。


偽陽性の Duplicate question リンクのおかげで (他の質問の回答は実際には問題を解決することはなく、後で手動で何かを実行する方法を示しているだけです) 私の質問は次のように/SetNotifyCmdLine要約されます

4

1 に答える 1

2

答えは:できません。

少なくとも、PowerShell v2 で BITS コマンドレット / BitsTransfer モジュールを使用しないでください。唯一の選択肢は、非推奨の機能を使用するか、BITS API と連携するカスタム ソリューションを展開することです。役に立つかもしれないSharpBITS.NETというプロジェクトがあります。

あなたが達成したいことについての詳細は、他の人が代替案を提供するのにも役立つかもしれません。ファイルをアップロードする前に RESTful GET を実行できますか? または、おそらくアップロードの一部として-クエリ文字列にパラメーターを埋め込みますか? また、ユーザーがログインせずにバックグラウンドでアップロードを行うことの意味、または別のユーザーがログインしている場合、またはコンピューターをシャットダウンした場合 (または転送を中断した場合) に何が起こるかについても検討します。たとえば、ログイン スクリプトで BITS 転送ジョブのステータスをチェックし、その時点でアクションを実行する方が理にかなっている場合があります。ログオフしない場合は、ウィンドウを非表示にして、BITS ジョブを定期的にポーリングして完了を確認することもできます。

私はこれらが理想的ではないことを知っています-そして、受け入れられた答えを受け取る価値さえないかもしれません. 彼らが助けてくれることを願っています。

于 2012-10-01T16:58:08.417 に答える