リブートをまたいでSUBSTマッピングを永続化するには?
Windows (XP またはそれ以降) には、SUBST が作成するような永続的なドライブマッピングを作成する方法が組み込まれていますか? サードパーティのツール psubst を見つけました。サードパーティのツールを使用せずにそれを行う方法はありますか?
Windows (XP またはそれ以降) には、SUBST が作成するような永続的なドライブマッピングを作成する方法が組み込まれていますか? サードパーティのツール psubst を見つけました。サードパーティのツールを使用せずにそれを行う方法はありますか?
まあ、 Wikipediaによると.
C:\>SUBST /? Associates a path with a drive letter. SUBST [drive1: [drive2:]path] SUBST drive1: /D drive1: Specifies a virtual drive to which you want to assign a path. [drive2:]path Specifies a physical drive and path you want to assign to a virtual drive. /D Deletes a substituted (virtual) drive. Type SUBST with no parameters to display a list of current virtual drives.
ということで、subst
を使ってドライブ文字とパスを関連付けることができます。Persistent SUBSTコマンド(psubst) ](https://code.google.com/p/psubst/)というソフトウェアが便利そうで、起動時から実行するためのソリューションを提供してくれています。
https://code.google.com/p/psubst/#Inconstancy
不変性
しかし、システムを再起動すると仮想ディスクが破壊されてしまいます。どうすればよいでしょうか?ディスクは起動後に作成することができます。しかし、起動の初期段階でディスクが必要な場合はどうすればよいのでしょうか?例えば、サービスを実行するためにディスクが必要な場合はどうすればいいのでしょうか?
REGEDIT4 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\DOS Devices] "Z:"="\??\C:\Documents and Settings\All Users\Shared Documents"
拡張子
.REG
のテキストファイルを作成して実行するだけで十分です。次回のシステム起動時には、ログオン時に仮想ディスクが存在することになります。ディスク名とパスを定義する必要があります。パスのバックスラッシュはそれぞれ2倍になることに注意してください。
Windowsの場合、以下のようにレジストリエディタを実行します。
Start “ Run… (または Win+R を押す)
タイプを入力します。regedit
Windows Vista以上では、UACがポップアップ表示されるので、"Yes”をクリックします。
HKEY_CURRENT_USER
にインストールすることで、ユーザーごとに異なる設定ができるというメリットがあります。私は、システムサービスがデバイスに依存しない限り、ユーザースペースのセットアップを固執する方が好きです。
REGEDIT4
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run]
"F Drive"="subst F: D:\mount\db"
"G Drive"="subst G: D:\mount\log"
ソース。http://networkadminkb.com/KB/a446/how-to-use-drive-letters-mount-points-the-same-disk-drive.aspx ](http://networkadminkb.com/KB/a446/how-to-use-drive-letters-mount-points-the-same-disk-drive.aspx)
リンク先のページに答えがあります。サードパーティのツールは必要ありませんが、そのページで詳しく説明されているように、簡単なレジストリエントリでできます。
以下の内容を含む「mapdrive.reg」という名前のテキストファイルを作成してください。
REGEDIT4
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\DOS Devices]
"Z:"="\??\C:\Documents and Settings\All Users\Shared Documents"
あとはダブルクリックするだけでセットアップができるようになります。
これを見つけたのは、起動時のサブスクリプトの改善を探していたからです - それらは問題なく動作しましたが、ドライブがまだマップされていなかったため、起動時にフォルダがクラッシュした後に実行されることがありました。
最初にレジストリを編集しましたが、うまくいきませんでした。これはsubstを使用していませんが、"どのようにして再起動時にSUBSTマッピングを永続的にするか?"という質問に答えてくれます。substを使わないでください… (適切な'computerName'と'pathName'を挿入する):
net use u: "\computerName\c$\pathName" /persistent:yes
私はこれを ローカルドライブのマッピングについてのこの議論 での Hank Arnold の提案から適応させた。\myComputerNameCが効くかもしれないと推測していたが、$を適用することを知らなかった。
“net use "コマンドを試す前に、
\computerName\c$
に移動して、'computerName'が正しいことを確認してみてね。
オリジナルのPSubstにはいくつかの制限があり、作者が結論を出しているようなので、私はいくつかの問題点を修正し、機能と柔軟性を追加して、私のニーズに合わせて新しいバージョンをコーディングしなければなりませんでした。
PSubstバージョン3のバッチファイルはこちら https://github.com/cyberponk/psubst
Windows 7, Windows 8, Windows 10, Windows Server 2012に対応
注:この作品は原著者を貶める意図はなく、以下のように本当に必要だからこそ存在したものです。
newtorkの管理者として、私はネットワークドライブのサブシステムを作成したり、異なるネットワークユーザーをいじったりする必要が常にあります。
誰もがWindowsの専門家ではないので、ウェブで読んだコメントをもとに、エラー処理機能を備えた自動管理者昇格が役立つだろうと考えました。
何人かの人が引数の順番で苦労していたので、スクリプトがどの順番でも引数で動作するようにするのがベストだと考えました。
追加された機能は全て思い出せませんが、全ての追加は純粋に必要に迫られて行われました。他の人が私のようなトラブルに遭遇しないように、コードを共有しています。これによって、共有と助けになること以外の意図はありません。
私は davrさんの回答 を展開しています。なぜなら、マップされたドライブから削除されたファイルは、ごみ箱に行く代わりに永久に削除されてしまうからです。このREGファイルは、ごみ箱を有効にする方法について説明している このTechNetの記事からまとめた情報 に基づいています。この例では、Qドライブを「OneDrive - Test」フォルダにマッピングし、Qドライブのごみ箱を有効にしています。状況に合わせてパスと名前を変更してください。
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\DOS Devices]
"Q:"="\??\C:\Users\Tony\OneDrive - Test"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{9147E464-33A6-48E2-A3C9-361EFD417DEF}]
"RelativePath"="Q:\"
"Category"=dword:00000004
"Name"="Q_Mapped_OneDrive"
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\BitBucket\KnownFolder\{9147E464-33A6-48E2-A3C9-361EFD417DEF}]
"MaxCapacity"=dword:0000c7eb
"NukeOnDelete"=dword:00000000
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{9147E464-33A6-48E2-A3C9-361EFD417DEF}]
"RelativePath"="Q:\"
"Category"=dword:00000004
"Name"="Q_Mapped_OneDrive"
[HKEY_CURRENT_USER\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\BitBucket\KnownFolder\{9147E464-33A6-48E2-A3C9-361EFD417DEF}]
"MaxCapacity"=dword:0000c7eb
"NukeOnDelete"=dword:00000000
このようにマップされたドライブが1台しかない場合は、GUID {9147E464-33A6-48E2-A3C9-361EFD417DEF}を使用しても問題ありません。複数のマップされたドライブを持っている場合は、それぞれがお気に入りの GUID ジェネレーターからの GUID に一致させる必要があります。
ここでは、reg.exe
を使用して、Run
ハイブのHKEY_CURRENT_USER
レジストリサブキーに必要なエントリを追加する2つの例を示します。これらの例は必要に応じて変更することができます。現在のユーザとして cmd
の非階層ウィンドウを開き、適応された行を貼り付けます。
最も単純な使用例。
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /v "Map I" /t REG_SZ /d "subst I: \"C:\path\to\folder\"" /f
ここで、SUBST
の path 引数には環境変数が埋め込まれています。
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /v "Map J" /t REG_EXPAND_SZ /d "subst J: \"^%DROPBOX_HOME^%\Notes\"" /f
2 番目の例では、2 つの文字エスケープがあることに注意してください。バックスラッシュはパス引数を囲むダブルクォートの内側に、キャレットは環境変数のパーセンテージ記号に使用されます。ダブルクォートは常に必要なわけではありませんが、スペースを含むフォルダ名の問題を避けるために、ダブルクォートを使用することをお勧めします。