別の資格情報 (VBS スクリプトが実行されている資格情報ではない) を使用して、VBS スクリプト内からネットワーク共有にアクセスする良い方法はありますか?
目的は、次の 2 つのタスクを実行することです。
- リモート共有ファイル構造をプログラムでナビゲートして、いくつかのリモート ファイルが存在することを確認し、一方のファイルをもう一方のファイルにコピーします (両方ともリモート)。
- ローカル ドライブ (ローカル ユーザー名/アクセス許可でアクセス) からリモート ドライブ (別の資格情報でアクセス) にファイルをコピーする
私が知る限り、FSO (Scripting.FileSystemObject) は、それを使用するアプリケーションの資格情報で常に実行されるため、FSO (Scripting.FileSystemObject) は対象外です。これは、ローカル マシンのユーザーになります。(?)
「net use」を使用してリモート共有資格情報を提供し、robocopyなどでファイルをコピーするバッチファイル(または「cmd.exe」への拡張呼び出し)を準備するためにグーグルで見つけた唯一の実行可能なアプローチ、同じコマンドシェル「セッション」内から。これは、ローカル ドライブからリモート共有にファイルをコピー/展開する場合には問題なく機能しますが、この方法でファイル システムのブラウジングを行うのは非常に複雑で脆弱です (FSO で行うように)。
私が考えたもう 1 つの可能性は、2 つのスクリプト セッションを使用することです。スクリプトを呼び出し (コマンド ラインで別の資格情報を指定)、cmd.exe セッションを実行します。最初に「ネット使用」を実行して、リモート共有を一時的な共有にマップします。次に、「実際に何かを行う」モードでそれ自体を実行し、FSO を使用します。それが完了すると (cmd.exe シェルに戻って)、「ネット使用」で一時ドライブを再び切断します。これは扱いにくく (複数のウィンドウ、一時ドライブなど)、うまくいくかどうかさえわかりません。
どちらかの方法を知っている人、または実行可能な代替手段を知っている人はいますか? (Windows 2000 マシンでは VBScript / WScript に固執します - PowerShell はありません!)