Assigning a Network Drive 2
To assign a network drive from the command line, you usually use net use. However, this alone will cause the assignment information to disappear every time the PC is restarted. This can be resolved by using the persistent command, but then the credential information will not be retained.
- Open Explorer and assign a network drive.
- Specify the network path and assign the drive.
- Enter the credential information and click Save Credential Information.
On this page, we will introduce an easy-to-understand method for expressing the above operations in a batch file.
Source Code
First of all, here’s the conclusion.
You can achieve it with the following code.
cmdkey /add:%server1% /user:%username% /pass:%password%
net use O: %directory%
Variable name | Content |
---|---|
%server1% | Server name to connect to (the part after \ in \〇〇…) |
%username% | Credentials (username) |
%password% | Credentials (password) |
%directory% | Network path to assign |
By applying the above and executing it, both the network drive and credentials will be retained.
How to use cmdkey
and net use
In the previous example, we used the cmdkey
and net use
commands to assign a network drive that won’t disappear even after restarting.
Let’s explain the role of each command.
cmdkey
The cmdkey
command is a function for manipulating Windows credentials.
When accessing a server for the first time from File Explorer, you may be prompted to enter your credentials.
The cmdkey
command has the same role as this input.
Options for cmdkey
cmdkey /add:%server% /user:%username% /pass:%password%
add | IP address or computer name |
user | Account name of the connection |
pass | Password of the connection |
net use
command
The net use
command is a function for operating network drives.
In addition to the allocation used this time, it is possible to disconnect, display a list of allocated drives, and more.
net use options
net use %drive_letter% %directory% %password% /user:%username% /savecred
First argument | Drive letter to assign (corresponding to the C: of the system drive) |
Second argument | Directory path to assign as a network drive |
Third argument | Password for the connection destination |
/user | Account name for the connection destination |
/savecred | If credentials are required, save the entered account name and password. |
/persistent | net use Automatically restore the drive information set by this net use command even after the next logon. |
Example of assigning a network drive
Here, we will introduce how to assign a network drive based on actual cases.
Prompting the user for a username and password
It is not desirable from a security standpoint to directly write the username and password in the batch file.
If you want to prompt the user for a username and password when the batch file is executed, implement it as follows:
@echo off
setlocal
set /p username=Enter your username:
set /p password=Enter your password:
cmdkey /add:server_name /user:%username% /pass:%password%
net use O: directory
endlocal
Regarding the command that receives input from the user, it is explained in detail on the following page.
Assigning network drives to multiple IP addresses
If you have multiple servers or NAS devices at home or in the office, you may want to assign multiple network drives at the same time.
In such cases, you can simply prepare two batch files, one with the code introduced in this article and the other with the code to actually start the process, to achieve this.
Here, we will implement the first batch file as network.cmd
and the second batch file as start.cmd
.
@echo off
setlocal
cmdkey /add:%1 /user:%2 /pass:%3
echo Added credentials for %1
net use %4: %5
echo Assigned %5 to drive %4
endlocal
@echo off
setlocal
call network.cmd server_name1 username1 password1 O: directory1
call network.cmd server_name2 username2 password2 P: directory2
call network.cmd server_name3 username3 password3 Q: directory3
call network.cmd server_name4 username4 password4 R: directory4
endlocal
If you want to learn more about the call
command, please refer to the following article.
By executing the above code, you can assign to four network drives at once.
When executed, it will be displayed as follows: