Question

Editing a host file with a batch file

Asked by: craizlee

Hello experts.

I'm trying copy an edited host and lmhosts.sam file to the c:/windows/system32/drivers/etc/ folder by running a batch file as follows:
_________________________________
cd\
cd c:/windows/system32/drivers/etc
copy \\server\host_files\hosts /y
copy \\server\host_files\lmhosts.sam /y
exit
_________________________________

However I'm only able to run this successfully when an account with administrative rights logs into the computer.  Is there any way to have this run successfully when regular users log into their accounts through login script?  Or does anyone have an alternate way to update this file with other means?

This Question has been solved and asker verified All Experts Exchange premium technology solutions are available to subscription members.

Subscribe now for full access to Experts Exchange and get

Instant Access to this Solution

  • Plus...
  • 30 Day FREE access, no risk, no obligation
  • Collaborate with the world's top tech experts
  • Unlimited access to our exclusive solution database
  • Never be left without tech help again

Subscribe Now

Asked On
2005-04-13 at 11:28:24ID21387597
Tags

batch

,

hosts

,

edit

Topic

Windows XP Operating System

Participating Experts
4
Points
500
Comments
26

Trusted by hundreds of thousands everyday for fast, accurate and reliable tech support.

  • "The time we save is the biggest benefit of Experts Exchange to Warner Bros. What could take multiple guys 2 hours or more each to find is accessed in around 15 minutes on Experts Exchange." Mike Kapnisakis, Warner Bros.
  • "Our team likes having a resource that is more secure than just using Google and most experts using this service really know their stuff. It's nice to look here first versus using Google." Dayna Sellner, Lockheed Martin
  • "Anytime that I've been stumped with a problem, 9 out of 10 times Experts Exchange has either the accepted solution or an open discussion of the potential solution to the problem." Kenny Red, eBay Inc.

See what Experts Exchange can do for you.

Got a question?

We've got the answer.

Experts Exchange has been collecting answers to technology questions since 1996…3 million and counting! If you have a question, chances are we already have your answer.

Screenshot of Experts Exchange Knowledgebase

Need individual assistance?

Our experts are ready to help.

If you can't find the exact answer you're looking for, ask our exclusive community of 50,000 experts. You’ll get a personalized answer from a trusted professional.

Screenshot of Experts Exchange Knowledgebase

Want to learn from the best?

Read articles from industry experts.

Thousands of free tech tips, tricks, how-to’s and tutorials are available in our peer reviewed articles section. See for yourself how smart our experts are, no login required.

Screenshot of an Article

Working on a long term project?

Store your work and research.

Save solutions to your questions, answers you’ve discovered through searching plus helpful articles in your personal knowledgebase for easy future access.

Screenshot of Experts Exchange Knowledgebase

Access the answers to your technology questions today.

Subscribe Now

30-day free trial. Register in 60 seconds.

What Makes Experts Exchange Unique?

Members of the expert community talk about why the experience at Experts Exchange is different than what you will find anywhere else.

Trusted by the world's most respected brands.

image of each brand's logo

Faithfully serving IT professionals since 1996.

Experts Exchange Logo

Try it out and discover for yourself.

Subscribe Now

30-day free trial. Register in 60 seconds.

Related Solutions

  1. Gracefully exit a looping batch file
    What are some good methods for allowing users to gracefully exit a looping batch file? ================= :loop rem allow graceful exit here goto :loop ================= I've tried using CHOICE to allow users to hit a specific key to get out, but it appears that the choice...
  2. Batch file: running notepad and exiting
    Hi all Silly little thing I can't seem to get around. I want to run the following batch file: _________________ @echo off ftp -i -n -s:c:\path\ftpscript.ftp notepad.exe "c:\documents and settings\my name\my documents\file.txt" exit _________________ Basically th...
  3. BATCH FILE
    Hi Does anyone know how to fire a PHP script using a BATCH file? Thanks
  4. Batch File
    Hi... I'm trying to create a batch file that is supposed to check a directory for specific file extensions and then delete them or move them to a different folder. After that it is supposed to send a message to the administrator or send an email to the administrator. Is t...
  5. batch file
    HI My prblem is when ever i create a word file and click save the same file should be saved as a different file in other drive and should be hidden.is it possible in batch file.. please let me know how to do it thanks

Free Tech Articles

  1. WARNING: 5 Reasons why you should NEVER fix a computer for free.
    It is in our nature to love the puzzle. We are obsessed. The lot of us. We love puzzles. We love the challenge. We thrive on finding the answer. We hate disarray. It bothers us deep in our soul. W...
  2. SCCM OSD Basic troubleshooting
    SCCM 2007 OSD is a fantastic way to deploy operating systems, however, like most things SCCM issues can sometimes be difficult to resolve due to the sheer volume of logs to sift through and the dispe...
  3. Migrate Small Business Server 2003 to Exchange 2010 and Windows 2008 R2
    This guide is intended to provide step by step instructions on how to migrate from Small Business Server 2003 to Windows 2008 R2 with Exchange 2010. For this migration to work you will need the fo...
  4. Create a Win7 Gadget
    This article shows you how to create a simple "Gadget" -- a sort of mini-application supported by Windows 7 and Vista. Gadgets can be dropped anywhere on the desktop to provide instant information, ...
  5. Outlook continually prompting for username and password
    There have been a lot of questions recently regarding Outlook prompting for a username and password whilst using Exchange 2007. There are a few reasons why this would happen and I will try to cover t...
  6. Backup Exchange 2010 Information Store using Windows Backup
    There seems to be quite a lot of confusion around the ability to backup Exchange 2010 using the built in Windows Backup feature. This stems from the omission of this feature prior to Exchange 2007 s...

Cloud Class Webinars

  1. Avoiding Bugs in Microsoft Access
    Alison Balter takes and in-depth look at avoiding bugs in Access. In this webinar you will learn about using the immediate window to debug your applications, invoking the debugger, using breakpoints to troubleshoot, stepping through code, setting the next statement to execute, ...
  2. Top 10 Best New Features in Visio 2010
    Scott Helmers gives live demonstrations of the top 10 new features in Visio 2010. This webinar will teach you how to create compelling diagrams by adding shapes to the page with a single click, linking the shapes in a diagram to data in Excel (or SQL Server, or SharePoint), ...
  3. IT Consultant Business Secrets Revealed
    Michael Munger, Experts Exchange tech pro and IT consultant, pulls back the curtain on his very successful businesses and answers question on every IT consultant and business owner should know about. He shares secrets on what he did to solve the 5 most common problems in IT, ...
  4. Disaster Recovery and Business Continuity
    Quest CTO, Mike Billon, gives an overview of the steps involved in building a dunamic disaster recovery plan. Through case studies and an examination of software/hardware tooles for monitoring and testing, you'll gain a better understandin of where you are, where you want ...
  5. Organize Your Visio Diagrams with Containers and Lists
    Scott Helmers uses cross functional flowcharts, wireframe diagrams, data graphic legends and seating charts to teach you: how to ustilize all three new structured diagram components in Visio 2010, the best practices for organizeing shapes in previous version of Visio, how to organize ...
  6. How to Us Objects, Properties, Events and Methods in Microsoft Access
    Alison Dalter gives an in-depbth look at objects, properties, events and methods in Microsoft Access. In this webinar you will learn about using the object browser, referring to objects, working with properties and methods, working with object variables, understanding the ...

Join the Community

Give a Little. Get a Lot.

Join the community of experts here and help other tech pros by answering question in your area of expertise. You can earn FREE access to all Experts Exchange's premium features and resources.

Join the Community

Answers

 

by: DoTheDEW335Posted on 2005-04-13 at 11:48:18ID: 13775382

you might be able to schedule it to run and have it "run as" an administrator. I'm not quite sure how you could schedule it to run when they logon though.

 

by: DoTheDEW335Posted on 2005-04-13 at 11:49:10ID: 13775392

depending on when you need it updated i meant. if you need it updated daily once, just use a scheduled event to run the batch file with admin rights, you'll just set it to run as then put in an admin name and pw.

 

by: craizleePosted on 2005-04-13 at 11:52:44ID: 13775421

You mean as a scheduled task?  Not sure how that really works.  Can it run while a user is logged on/off?  Also, how would I be able to schedule this to every computer on my network?  Over 250 pcs?

 

by: amirinamdarPosted on 2005-04-14 at 04:19:15ID: 13780458

Right click My Computer> Manage. Navigate to Local Users and Groups>Users in the left hand pane. In the right side, double click the user you want to add the script for and click on 'Profile' tab. You can add the batch file to the logon script. Unless the script is in the %Systemroot% folder, you will have to type the full path of the script.

 

by: DanCh99Posted on 2005-04-14 at 07:38:48ID: 13782040

The problem is coming up because the Hosts and LMHosts files are set for Read perms only for Users by default.  If you change this, then your batch file will work.
But this begs the question, what are you changing in it?  If it's just the odd IP address now and again, I'd create a batch file that you run manually, with a loop to apply it to each pc, and write a status error as well...
hth Danny

 

by: craizleePosted on 2005-04-14 at 10:12:45ID: 13783724

amir: This may be helpful if each user is all on one local machine.  I'd prefer not need to go to each individual machine and add the login script locally for each user.  That would take forever.  I've assigned this batch file through Active Directory Group Policy logon script, which is more suitable to add for network users.  However the problem is not running the script, it's the fact that because of permission levels, when the batch file runs, it comes back with an "Access Denied".

Dan: Is there a way to change the perms to read/write for each machine without having to physically go to each one and do it manually?

The reason I am replacing the host file is because I found that some had a list of IP addresses that point to our servers using their public IP addresses instead of their private addresses in which resolve through DNS.  I'm basically just replacing the host file to not have any addresses listed.  This was causing some problems accessing application and database servers remotely through vpn.

 

by: DoTheDEW335Posted on 2005-04-14 at 12:57:33ID: 13785281

If they log into the domain why not create a group policy for it.

 

by: DanCh99Posted on 2005-04-14 at 14:15:06ID: 13786062

group policy is the easiest way to deal with this.  

If you copy the file over one time, you can set the perms on the file before you copy it, and then they'll be there forever.  Then your login script would work.  However, by relaxing the perms, you do run the risk that a) users will fiddle, and b) that unwanted stuff can get to the files - adware redirects and pharming risks too.  

Batch file stuff:
the NET VIEW command, redirected to a text file can give a fairly tidy list of pcs on the domain
C:\> net view > c:\list.txt
might need a bit of tweaking to remove stuff at the start and end, and I think you need to be careful with the \\ too.  Open it in Word and use Find.. Replace.  Sorry, bit rusty on this.

then in a batch file
FOR /F " tokens=1 " %%i in (list.txt) do copy lmhosts.sam "%%i\C$\windows\system32\drivers\etc\" >>c:\results.txt

test with a list of a few pcs, and check the results.txt file for the outcome

 

by: craizleePosted on 2005-04-14 at 14:30:44ID: 13786221

Dan: Not sure what you mean by "If you copy the file over one time, you can set the perms on the file before you copy it, and then they'll be there forever."

also,

then in a batch file
FOR /F " tokens=1 " %%i in (list.txt) do copy lmhosts.sam "%%i\C$\windows\system32\drivers\etc\" >>c:\results.txt

Do i copy that line "FOR /F " tokens=1 " %%i in (list.txt) do copy lmhosts.sam "%%i\C$\windows\system32\drivers\etc\" >>c:\results.txt" exactly into the batch file?  What is %%i?

 

by: craizleePosted on 2005-04-19 at 09:56:24ID: 13817402

Is there any way to edit these files over the network an alternate way?

 

by: DoTheDEW335Posted on 2005-04-19 at 10:20:16ID: 13817707

I don't think it's what you want but the below will work:
You can access the Admin share (C$)
if you have admin un/pw for each client you can access them with the net use command.

NET USE
[devicename | *] [\\computername\sharename[\volume] [password | *]]
        [/USER:[domainname\]username]
        [/USER:[dotted domain name\]username]
        [/USER:[username@dotted domain name]
        [/SMARTCARD]
        [/SAVECRED]
        [[/DELETE] | [/PERSISTENT:{YES | NO}]]

NET USE {devicename | *} [password | *] /HOME

NET USE [/PERSISTENT:{YES | NO}]


eg..

net use * \\COMPUTER(or IP address)\c$ /user:administrator password

 

by: DoTheDEW335Posted on 2005-04-19 at 10:21:11ID: 13817716

You could even create a batch file to connect them to a certain drive letter (replace the *) and copy the host file then disconnect, and have it go through each computer. But you would have to type it all in a batch file.

 

by: KenneniahPosted on 2005-04-19 at 13:35:14ID: 13819353

Your batch file for copying should work fine as a computer startup script instead of a user logon script, as they run under the system account with admin rights.

In Group Policy
Computer Configuration --> Windows Settings --> Scripts (Startup/Shutdown)

 

by: craizleePosted on 2005-04-19 at 13:58:26ID: 13819489

Kenneniah:  Interesting.  I will try adding it to the domain policy and see what happens.

Thanks!

 

by: KenneniahPosted on 2005-04-19 at 14:11:20ID: 13819585

BTW, you'd have to do one of 2 things for it to work. First, would be to grant read access to the "Domain Computers" AD group to the network share the hosts files are located on so that the system accounts can connect to it.

Or, modifiy the script to map a drive using "net use" specifying a username and password, copying the files, then disconnecting the drive.

 

by: craizleePosted on 2005-04-19 at 15:45:53ID: 13820140

Ken:  That didn't seem to do anything.  Once I set the computer startup script, Start|Run|typed gpupdate /force, rebooted, all seemed well as it said it was running the startup script.  However when checking the host file, it looked to be the original, and not replaced.  Are you sure the startup script uses the system account with admin privileges?  I think the only obstacle here is permission level for the system folders.  There's got to be a way to accomplish this...

 

by: KenneniahPosted on 2005-04-19 at 16:29:12ID: 13820333

Yes, it does. Did you set permissions on the share folder for "Doman Computers" though? If not, the system account would now have been able to make the network connection to get the new host file.

 

by: craizleePosted on 2005-04-19 at 16:45:01ID: 13820407

yep.  I added "Domain Computers" will full control just to be sure.  Any other suggestions I could try?

 

by: KenneniahPosted on 2005-04-20 at 08:56:23ID: 13825886

Hmm, it could be using a null session when the system account is running the script. On the server computer, go to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters and edit "NullSessionShares". By default it should have something like "COMCFG DFS$" Add the name of the share the host files are in and give it a try.

 

by: KenneniahPosted on 2005-04-20 at 09:00:14ID: 13825922

More information about can be found at http://support.microsoft.com/kb/q289655/
Inlcuding how to allow NullSessionPipes if needed etc.

 

by: craizleePosted on 2005-04-21 at 10:18:16ID: 13836113

Ken:  Thanks for the suggestion, however I'm a little hesitant to edit the registry at this time as I'm not exactly sure how to add the name of the host file to the REG_MULTI_SZ value, as it states:

 "On a new line in the NullSessionPipes key, type the name of the pipe that you want to access with a null session."  

If you are more familiar with how to do this, let me know.  Also, this would require a reboot, and I won't be able to reboot the server during business hours, so I won't know if the results have taken any effect until the following day.  

 

by: KenneniahPosted on 2005-04-21 at 18:42:14ID: 13839750

You probably wouldn't need to set the Pipes section, as mostly that would deal more with applications needing access, not file sharing. I've got something similar working on a couple test machines just adding the sharename to NullSessionShares.

 

by: craizleePosted on 2005-04-21 at 21:14:45ID: 13840202

When I add the name of the share, how should I name it?  

\\server\share
or
share

not sure of the format.

 

by: KenneniahPosted on 2005-04-22 at 08:42:34ID: 13844055

Just the sharename, don't need server. Mine looks like....

COMCFG
DFS$
SHARED

20120131-EE-VQP-002

3 Ways to Join

30-Day Free Trial

The Experts

98% positive feedback on 31,087 answers since March 2000. angeliii is a Microsoft Most Valuable Professional for his work with MS SQL Server & Develoment.

He has also proven his knowledge of Visual Basic Programming, PHP Scripting and Oracle Databases.

The Experts

97% positive feedback on 10,752 answers since July 2000. lrmoore has more than 18 years experience in the networking industry.

The six-time Mircosoft MVPs specialties include firewalls, virtual private networking, and network management.

Testimonials

"...and excellent source for support... Kind of like having your very own IT dept." Electriciansnet

Testimonials

"I was apprehensive at signing up at first. However... it has already made my life as an IT administrator much easier." JaCrews

Testimonials

"WOW! You guys have great, active, and knowledgeable people on here." moore50

Business Clients

Business Clients

In the Press

"If you’ve got a question... Experts Exchange can supply an answer.”

In the Press

"...an invaluable aid for both IT professionals and those who require tech support."

In the Press

"where IT professionals provide quick answers on just about any topic"

Business Account Plans

Loading Advertisement...