ラップトップから(wifi)ネットワークハードドライブに接続したいのですが、たまにしか接続できません。 WinXP Explorerで「ネットワークドライブの割り当て」コマンドを使用する場合、ドライブのIPアドレスと名前、ルーター名とそのパスワードを入力する必要があります。覚えすぎです!
このアクティビティをスクリプト化する方法を探しています(任意の言語で)、次のようなものです。
map Z: \\10.0.1.1\DRIVENAME "ROUTERNAME\PW"
スクリプトがどの言語で書かれているかは特に気にしません。ところで、DOSの 'subst'コマンドは知っていますが、パスワード保護のため、この場合は使用できないと思います。
使用 Net Use
コマンド:
Net Use Z: \\10.0.1.1\DRIVENAME
編集1:また、パスワードは単純に追加する必要があると思います。
Net Use Z: \\10.0.1.1\DRIVENAME PASSWORD
このコマンドとその引数の詳細については、以下を参照してください。
Net Use ?
編集2: Tomalakがコメントで述べたように、後でそれをマップ解除できます
Net Use Z: \delete
これは機能しませんか(「ROUTERNAME」はルーターが予期するユーザー名であると想定しています)?
ネット使用Z: "\\ 10.0.1.1\DRIVENAME"/user: "ROUTERNAME" "PW"
または、小さなVBScriptを使用できます。
Option Explicit
Dim u, p, s, l
Dim Network: Set Network= CreateObject("WScript.Network")
l = "Z:"
s = "\\10.0.1.1\DRIVENAME"
u = "ROUTERNAME"
p = "PW"
Network.MapNetworkDrive l, s, False, u, p
Tomalak's 答えは私にとってうまくいきました(+1)
私の目的のために少しだけ変更する必要があり、パスワードは必要ありませんでした。これは企業ドメイン用です。
Option Explicit
Dim l: l = "Z:"
Dim s: s = "\\10.10.10.1\share"
Dim Network: Set Network = CreateObject("WScript.Network")
Dim CheckDrive: Set CheckDrive = Network.EnumNetworkDrives()
Dim DriveExists: DriveExists = False
Dim i
For i = 0 to CheckDrive.Count - 1
If CheckDrive.Item(i) = l Then
DriveExists = True
End If
Next
If DriveExists = False Then
Network.MapNetworkDrive l, s, False
Else
MsgBox l + " Drive already mapped"
End If
または、ドライブを切断したい場合:
For i = 0 to CheckDrive.Count - 1
If CheckDrive.Item(i) = l Then
WshNetwork.RemoveNetworkDrive CheckDrive.Item(i)
End If
Next
ネットワークドライブをマップせずに、[ログオン時に再接続する]の選択を解除するのはなぜですか?ドライブは、アクセスしようとしたときにのみ接続します。一部のアプリケーションは、それをポイントすると失敗することに注意してください。ただし、Windowsエクスプローラーから直接ファイルにアクセスしている場合は、これがうまく機能します。
Net Use コマンドを試す
ここでは JohnB のJScriptバリアント answer
// Below the MSDN page for MapNetworkDrive Method with link and in case if Microsoft breaks it like every now and then the path to the documentation of now.
// https://msdn.Microsoft.com/en-us/library/8kst88h6(v=vs.84).aspx
// MSDN Library -> Web Development -> Scripting -> JScript and VBScript -> Windows Scripting -> Windows Script Host -> Reference (Windows Script Host) -> Methods (Windows Script Host) -> MapNetworkDrive Method
var WshNetwork = WScript.CreateObject('WScript.Network');
function localNameInUse(localName) {
var driveIterator = WshNetwork.EnumNetworkDrives();
for (var i=0, l=driveIterator.length; i < l; i += 2) {
if (driveIterator.Item(i) == localName) {
return true;
}
}
return false;
}
function mount(localName, remoteName) {
if (localNameInUse(localName)) {
WScript.Echo('"' + localName + '" drive letter already in use.');
} else {
WshNetwork.MapNetworkDrive(localName, remoteName);
}
}
function unmount(localName) {
if (localNameInUse(localName)) {
WshNetwork.RemoveNetworkDrive(localName);
}
}