コンピュータ上のすべてのネットワーク共有を変更するバッチファイル

コンピュータ上のすべてのネットワーク共有を変更するバッチファイル

バッチファイルで //foo のすべてのシェアを //bar に変更する必要があります。R: //foo/foo と Z: //foo/bar があるとします。

R: //bar/foo と Z: //bar/bar を作成するバッチスクリプトが必要です。

誰かこれをどうやってやるか知っていますか? ネット使用で何とかループしようと思っていますが、今のところはそこまでです。自分でも調べるつもりですが、ちょっと急いでいるので、ここに投稿して、誰かすぐに知っている人がいないか見てみようと思いました。

ご協力ありがとうございます。

これはWindows XP用です。

答え1

バッチ ファイルでは次のように使用します。

@echo off
REM Delete existing Mapped Drives
net use * /d Y

REM Map New Network Drive
net use R: \\bar\foo /persistent:yes
net use Z: \\bar\bar

echo Drives Mapped.

ファイルがサーバーに配置されていれば、これをユーザーのログオンスクリプトパスに追加できます。ネットログオンフォルダ。

編集

質問をもう一度読みました。明らかに、多くのシェアを変更したい場合、私の方法は実用的ではありません。多くのシェアを変更する必要がある場合、アドバイスをいただけますか?

これがお役に立てば幸いです。ご質問があればお知らせください。

答え2

@echo off
REM delete the actual Network Drive
net use R: /DELETE
net use Z: /DELETE

REM Create the new Network Drive 
net use R: \\bar\foo
net use Z: \\bar\bar

再起動後もネットワーク ドライブを維持したい場合は、ネットワーク ドライバーをマップするときに net use コマンドに /persistent:yes を追加する必要があります。R の場合は次のようになります。

net use R: \\bar\foo /persistent:yes

答え3

おそらく、バッチファイルを使用するのが最善策でしょう。FOR コマンド。

変更したいディレクトリのリストを取得できる場合は、そのコマンドに入力ファイル (shares.txt など) を入力すると、各行が反復処理されます。リンクで説明されているように、かなり複雑なロジックを割り当てることができます。

もう 1 つの選択肢は VBScript ですが、特に大量の分析やロジックを必要としないこのようなものの場合は、より多くの時間の投資が必要になると思います。

答え4

Net Use はドライブ マッピングを変更しますが、コマンドはサーバーではなくクライアントで実行されるため、基礎となる共有は変更しません。

共有名の変更はありません。同じフォルダーに新しい共有を追加し、動作が確認されたら古い共有を削除できます。ただし、新しい共有には新しい共有権限が必要であり、パスが変更された場合は新しい NTFS 権限も設定する必要がある場合があります。

RmtShare、http://ss64.com/nt/rmtshare.html、OS によっては機能する場合があります。VBScript
も、共有アクセス許可を実行できるため、適切に機能します: MS スクリプト リポジトリ - 共有フォルダー。以下のリンク、ハイパーリンクが機能しません。

http://gallery.technet.microsoft.com/scriptcenter/en-us/site/search?f[0].Type=RootCategory&f[0].Value=storage&f[0].Text=Storage&f1.Type=サブカテゴリ&f1.Value=共有フォルダー&f1.Text=共有フォルダー

関連情報