Expiring Today—Celebrate National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17


Adding a homedirectory drive letter in  a batch script

Posted on 2004-09-06
Medium Priority
Last Modified: 2008-05-30
I have written a batch script which sets up a bunch of user accounts but have just realised the functionality of the NET USER command is somewhat restrictive in as far as one is unable to specify a network drive letter for the homedirectory. Does anyone know of a utility that includes this functionality?

Thanking you in advance

Question by:The__Saint
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 5
  • 2
  • 2
  • +4
LVL 57

Expert Comment

by:Pete Long
ID: 11990676
Mapping Drives and Printers From Command


These command can be executed from either command line, Batch File OR Login Scripts

This command maps a drive "Z:\" to a shared directory on a server called "Server1"

net use z: \\server1\sharename\

If you need permissions to use this network resource toy can also enter the username and password. (See Security Below)

net use z: \\server1\sharename\ /user:username password

The above commands will work until a user logs out or the machine is rebooted, to make the mapping permanent you need to use a "Persistent switch"

net use z: \\server1\sharename\ /user:username password /Y


The Syntax is the same but this time you are mapping an "lpt" port (Line Printer Terminal) All the rules above apply so the full command is,

net use lpt1 \\machinename\sharename\ /user:username password /Y


RUNDLL32 PRINTUI.DLL,PrintUIEntry /dn /n\\COMPUTERNAME\PRINTERNAME      // removes printer    
RUNDLL32 PRINTUI.DLL,PrintUIEntry /in /n\\COMPUTERNAME\PRINTERNAME       // adds printer

Zero Administration Kit

How to Use Con2prt.exe to Connect to a Network Printer


If you do need to use  username and password, this has obvious security implications, Consider using NSIS

For instructions on its use see http://www.experts-exchange.com/Operating_Systems/Win2000/Q_20710867.html
LVL 104

Expert Comment

ID: 11991326
If the environment is all Windows XP then you can this with the "set" command - this is built in. I think it is also in Windows 2000, but I had some problems with it.

Set Homedrive=U:\
Set Homepath=\

If it is a mixed environment then you will need the "setx" Resource Kit utility.

If you are using setx don't forget to put the actual exe file in to netlogon share along with the batch file so that the logon script finds it.


Author Comment

ID: 11992037
Sorry, I think I need to clarify slightly.
For the record this is an AD environment but the problem I have applies just as much to an NT environment. What I want to change are the properties of a user account, hence the example I used with NET USER. NET USER will change the script path for a user account, the profile path and the local drive path for the homefolder amongst other things. However I am unable to make it select the 'Connect' path and specify a drive letter. NET USER won't allow this but I find it difficult to believe there isn't a utility out there which provides this functionality.
Don't Cry: How Liquid Web is Ensuring Security

WannaCry is just the start. Read how Liquid Web is protecting itself and its customers against new threats.

LVL 17

Expert Comment

ID: 11992189
I guess you are looking for the command: addusers.exe from Windows Resource Kit

Author Comment

ID: 11992817
This would have been perfect had the user accounts not been already created! The users in question had the accounts themselves created a few months ago in order to use webmail and now they are going live properly. Therefore I need a utility which will manipulate an existing account.

Expert Comment

ID: 11993808
While this is not a free tool, it is offered as a 30-day trial:


It will do batch changes to user accounts, which is what you are looking for.

Hope this helps...

Author Comment

ID: 11994849
Cheers but it looks like the lite version is limited to only 5 users at a time and is a little much for what I need. Specifically I would like a command line utility. Sorry to be picky!



Author Comment

ID: 11995086
I have selected all users within the OU I wish to change and changed the drive letter en mass (which I hadn't realised initially I could do). This has fixed my issue. I've still not found a command line utility though.
LVL 13

Expert Comment

ID: 11998200
Do you want to set or change the home directory?

Why not just do this using vbscript

I knocked up the followed command file to move home directories for around 150 staff. Scripting it really cuts down on unneccesary errors due to typos/tiredness

rem copyhome.cmd by Hans Stiles
rem Script to copy contents of home directory from SERVERA to SERVERB
rem share new on SERVERB directory, set share and file permissions
rem modify home directory information for the user account
rem and then unshare old directory on SERVERA

@echo off

xcopy \\servera\d$\users\%1 d:\users\%1 /e /v /i /h /k /o /x

net share %1$=d:\users\%1 /grant:%1,CHANGE /grant:"domain admins",FULL

cacls d:\users\%1 /T /E /G %1:C

echo Set oUser = GetObject("WinNT://ourpdc/%1")>c:\movehome.vbs
echo oUser.HomeDirectory = "\\serverb\%1$">>c:\movehome.vbs
echo oUser.SetInfo>>c:\movehome.vbs
echo Set oUser = Nothing>>c:\movehome.vbs
echo strShareName = "%1$">>c:\movehome.vbs
echo Set objfServer = GetObject("WinNT://servera/lanmanserver")>>c:\movehome.vbs
echo objfServer.Delete "Fileshare", strShareName>>c:\movehome.vbs
echo Set objfServer= Nothing>>c:\movehome.vbs

cscript c:\movehome.vbs > NUL

del c:\movehome.vbs


The function oUSer.HomeDirDrive  would be used to manipulate the drive letter.
LVL 13

Expert Comment

ID: 11998228
I realise there is more code than you need here, but I thought the entire fiule would give you an idea of how you could create a command file that called a vb script.  I basically dumped a list of all users in to a text file and setup a command file as follows:

copyhome usera
call copyhome userb
call copyhome userc

kicked it off when I got home, went out for the evening, came home, cleared up any errors, claimed a day off in lieu :)

LVL 85

Accepted Solution

oBdA earned 600 total points
ID: 12000347
Since you've mentioned AD, plus you said you were able to select multiple users, you're running a W2k3 domain.
If you have the W2k Resource Kit, you can use cusrmgr.exe from there to change the drive letter using a command line.
In addition, MS finally came up with some nice AD command line tools in W2k3., that you can use as well.
dsmod.exe user <User-DN> -hmdrv H:
To obtain the user dn (which you probably won't want to type), you can use dsquery:
dsquery.exe user -samid <Username>
These can be combined in a batch script:

@echo off
set User=%1
dsquery.exe user -samid %User% | dsmod.exe -hmdrv H:

The new command-line tools for Active Directory in Windows Server 2003

Author Comment

ID: 12005194
This is just what I was looking for. I hadn't realised cusrmgr went much further than passwords (should have checked, but you forget about these things) although this must be run on the domain controller. DSMOD in particular looks very useful so thanks and thanks as always to everyone who has contributed.
LVL 85

Expert Comment

ID: 12005565
cusrmgr doesn't need to be run on the DC; simply specify a DC's name with the -m switch.

Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

If you’re involved with your company’s wide area network (WAN), you’ve probably heard about SD-WANs. They’re the “boy wonder” of networking, ostensibly allowing companies to replace expensive MPLS lines with low-cost Internet access. But, are they …
A bad practice commonly found during an account life cycle is to set its password to an initial, insecure password. The Password Reset Tool was developed to make the password reset process easier and more secure.
Monitoring a network: why having a policy is the best policy? Michael Kulchisky, MCSE, MCSA, MCP, VTSP, VSP, CCSP outlines the enormous benefits of having a policy-based approach when monitoring medium and large networks. Software utilized in this v…
Sometimes it takes a new vantage point, apart from our everyday security practices, to truly see our Active Directory (AD) vulnerabilities. We get used to implementing the same techniques and checking the same areas for a breach. This pattern can re…

730 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question