起動時にネットワーク ドライブへのネットワーク ログインを要求するように Windows に指示できますか?

起動時にネットワーク ドライブへのネットワーク ログインを要求するように Windows に指示できますか?

私の Windows マシンには、NAS からマップされた 2 つのネットワーク ドライブがあります。両方のドライブで同じユーザー名/パスワード構成が必要ですが、Windows にこれを記憶させないようにしました。なぜなら、ファイルにアクセスするための最低限の要件として、少なくとも 1 つのパスワードを入力する必要があるからです。

このため、Windows はログイン時にネットワーク ドライブに接続せず、通常のエラーが発生します。すべてのネットワークドライブを再接続できませんでした

誰も驚かないだろうが、Windows はネットワーク共有のパスワードがわからない場合、何をすればよいのか分からない。

そこで、このプロセスを自動化する方法は次のとおりです。起動してログインした後、ウィンドウにアクセスしようとしたときに表示されるようなネットワーク ログイン ポップアップ ウィンドウを表示します。正常にログインしたら、Windows でネットワーク ドライブへの接続を試行します。

どうすればこれを達成できるでしょうか?

(Windows マシンでネットワーク ログインと同じユーザー名とログインを使用してこれを自動化できることはよくわかっていますが、通常は他の人に推奨しているとしても、私はそれをしたくありません)

答え1

私は基本的なバッチ スキルを使ってこれを実現しようとしました。これが私の考え出した結果です。

まず、フォルダー ウィンドウを別のプロセスとして起動するように Windows を構成します (すべてのフォルダーを同じ explorer.exe の下に保持するのではなく)。これにより、コマンド プロンプト/バッチ スクリプトを使用してフォルダーを閉じることができます。

フォルダを別のプロセスとして有効にする

次に、このバッチ ファイルを作成し、**C:\Users\Username\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup** に配置します (なぜ太字になっていないのでしょうか?)

@echo off
start explorer "D:\"
:loop
timeout 0
(net use | findstr OK) > nul 2>&1
if errorlevel 1 goto loop
taskkill /F /FI "WINDOWTITLE eq NETWORKDRIVELABEL*" /IM explorer.exe
start /wait explorer "G:\"
timeout 0
taskkill /F /FI "WINDOWTITLE eq NETWORKDRIVE2LABEL*" /IM explorer.exe
start /wait explorer "F:\"
timeout 0
taskkill /F /FI "WINDOWTITLE eq NETWORKDRIVE3LABEL*" /IM explorer.exe
start /wait explorer "H:\"
timeout 0
taskkill /F /FI "WINDOWTITLE eq NETWORKDRIVE4LABEL*" /IM explorer.exe
stop

ドライブ文字をシステムに適用されるものに置き換え、NETWORKDRIVELABEL を適切なネットワーク ドライブの名前に置き換えるだけです。ウィンドウ タイトルの完全な名前は「NETWORKDRIVELABEL (\SHARENAME) (DRIVELETTER)」であるため、これが必要ですが、完全なウィンドウ タイトルを記述する代わりに、星印 (*) を使用して、ウィンドウ タイトルが NETWORKDRIVELABEL で始まるすべてのエクスプローラー プロセスを閉じることを定義します。

これは、Windowsのファイルエクスプローラーでネットワーク共有「D:\」を開こうとします。ネットワーク共有なので、ログインを求めるプロンプトが表示されます。その後、プログラムが実行されるループが実行されます。net use | findstr OK(「net use」の出力で「OK」を探す)、OK が見つかるまで先に進みません (この部分では、ネットワーク ドライブが初期化されていないことを前提としています。findstr でより複雑な操作を行う方法がわかりません。bash の grep ほど便利ではありません)。

次に、ネットワーク ドライブが正しく接続されていることを検出するとすぐに、エクスプローラーで他のネットワーク ドライブを開いて閉じることで、他のネットワーク ドライブのマッピングを試みます。

バッチ ファイルの最後に stop コマンドを使用しないと、正常に終了しません (ユーザー入力を待機します)。

これを実行してもコマンド ウィンドウを非表示にする場合は、ここを参照してください。「コマンド ウィンドウ」を起動せずにバッチ ファイルを実行するにはどうすればよいでしょうか?

関連情報