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
Solved

Urgent Help need creating a NETSH login script

Posted on 2009-07-14
18
437 Views
Last Modified: 2012-05-07
Here is my problem. I need to create a login script that will update the static DNS and WINS informatino on client workstation ONLY if these settings are already staticalyy assigned.

In a nutshell this script needs to check to see if the DNS settings are DHCP or Static basised. If they are DHCP the script should not run

Please help
0
Comment
Question by:compdigit44
  • 9
  • 8
18 Comments
 
LVL 30

Expert Comment

by:Britt Thompson
ID: 24853704
Looks like someone already needed that here:http://www.experts-exchange.com/Networking/Misc/Q_21326998.html

@leew
for /f "tokens=3" %%a in ('netsh interface ip show config ^| find /i "DHCP Enabled"') do set DHCP=%%a
If /i "%dhcp%" == "Yes" (
    netsh interface ip set dns "Local Area Connection" dhcp
) Else (
    netsh interface ip set dns "Local Area Connection" static 10.0.0.3
)

You could actually avoid the environment variable entirely with this:

for /f "tokens=3" %%a in ('netsh interface ip show config ^| find /i "DHCP Enabled"') do (
If /i "%%a" == "Yes" (
    netsh interface ip set dns "Local Area Connection" dhcp
) Else (
    netsh interface ip set dns "Local Area Connection" static 10.0.0.3
)
)
0
 
LVL 69

Expert Comment

by:Qlemo
ID: 24853749
Or, more comprehensive,

netsh int ip dump | findstr "dns wins" | findstr source=static && (
  rem your netsh commands here
)

0
 
LVL 19

Author Comment

by:compdigit44
ID: 24855104
This is not quite what I was looking for...

I need this script to run ONLY on clients who have STATIC DNS & WINS enteries. please note some clients are set to DHCP for there TCP/IP settings but DNS is startic. I need this script to look for all static DNS & WINS and update these enteries only!!!!!!!!!!!!!!!!!!!!!!!
0
Back Up Your Microsoft Windows Server®

Back up all your Microsoft Windows Server – on-premises, in remote locations, in private and hybrid clouds. Your entire Windows Server will be backed up in one easy step with patented, block-level disk imaging. We achieve RTOs (recovery time objectives) as low as 15 seconds.

 
LVL 69

Expert Comment

by:Qlemo
ID: 24856998
My script should work for exactly this situation. It's checking the DNS and WINS entries only for being static.
0
 
LVL 19

Author Comment

by:compdigit44
ID: 24858502
OK this is what my scritp looks like. Right now I just paused on screen and never changes my static DNS / WINS settings

netsh int ip dump | findstr "dns wins" | findstr source=static && (netsh interface ip set dns "Local Area Connection" static 1.2.3.4
netsh interface ip add dns "Local Area Connection" 1.2.3.4 index=2
netsh interface ip set wins "Local Area Connection" static 1.2.3.4
netsh interface ip add wins "Local Area Connection" 1.2.3.4index=2)
0
 
LVL 69

Expert Comment

by:Qlemo
ID: 24859878
Just tried, and it works fine for me. Does it output the config lines found?
0
 
LVL 19

Author Comment

by:compdigit44
ID: 24860670
Whn I just run the first part of the script:

netsh int ip dump | findstr "dns wins" | findstr source=static
It works and list the connection information "IF" it has static DNS & WINS enteries which is what  want. The problem is this inforamtion is not beening replacement with the correct DNS & WINS information from my scrupt. Don't I need an if statement somewhere??????
0
 
LVL 69

Expert Comment

by:Qlemo
ID: 24861464
No, the && is like an IF. If the previous command "succeeds", i.e. returns a errolevel of 0, the command after && is executed. You can try by using

netsh int ip dump | findstr "dns wins" | findstr source=static && echo --- It is STATIC ---


The complete command as you posted above should give the same output, plus the results of your netsh commands, which should be 4 times "OK!".

0
 
LVL 19

Author Comment

by:compdigit44
ID: 24862254
Do I need the ( ) ??? in this script?
0
 
LVL 19

Author Comment

by:compdigit44
ID: 24862293
Right now the script RUN and updates the DNS but it RUNS on my client who have DNS set by DHCP which is what I do not want
0
 
LVL 69

Expert Comment

by:Qlemo
ID: 24863471
You need the () to build a single block executed only if the condition applies (findstr finding "source=static"). If you omit the parentheses, only the first command is executed conditional, the remainder always.
0
 
LVL 19

Author Comment

by:compdigit44
ID: 24865178
Still now working... the script is working but it is running no matter if the current DNS settings are DHCP or static... :-(
0
 
LVL 69

Expert Comment

by:Qlemo
ID: 24870201
Your are doing something wrong. You confirmed that
netsh int ip dump | findstr "dns wins" | findstr source=static
is displaying the correct lines.
netsh int ip dump | findstr "dns wins" | findstr source=static && echo --- It is STATIC
Should display the same lines, and the text "--- It is STATIC" if any of the entries contain source=static.
netsh int ip dump | findstr "dns wins" | findstr source=static && ^
(
netsh interface ip set dns "Local Area Connection" static 1.2.3.4
netsh interface ip add dns "Local Area Connection" 1.2.3.4 index=2
netsh interface ip set wins "Local Area Connection" static 1.2.3.4
netsh interface ip add wins "Local Area Connection" 1.2.3.4index=2
)
Is applied if at least one of DNS or WINS setting is static.

0
 
LVL 19

Author Comment

by:compdigit44
ID: 24870222
Do I need the ^ after the &&?
0
 
LVL 69

Expert Comment

by:Qlemo
ID: 24870239
If you write the ( into the next line - yes. Instead you can use

netsh int ip dump | findstr "dns wins" | findstr source=static && (
netsh interface ip set dns "Local Area Connection" static 1.2.3.4
netsh interface ip add dns "Local Area Connection" 1.2.3.4 index=2
netsh interface ip set wins "Local Area Connection" static 1.2.3.4
netsh interface ip add wins "Local Area Connection" 1.2.3.4index=2
)

if you like that more.
0
 
LVL 19

Author Comment

by:compdigit44
ID: 24870332
I noticed that when this script runs it updates both my Local Area Connection and Network Adapter Local but I do not see Network Adapter Connection listed any where
0
 
LVL 69

Accepted Solution

by:
Qlemo earned 500 total points
ID: 24872245
Ok, we have to be more specific then:

netsh int ip dump | findstr "dns wins" | findstr /c:"Local Area Connection" | findstr source=static && (
netsh interface ip set dns "Local Area Connection" static 1.2.3.4
netsh interface ip add dns "Local Area Connection" 1.2.3.4 index=2
netsh interface ip set wins "Local Area Connection" static 1.2.3.4
netsh interface ip add wins "Local Area Connection" 1.2.3.4index=2
)

0
 
LVL 19

Author Closing Comment

by:compdigit44
ID: 31603463
This worked perfectly....

Thanks Again
0

Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

Question has a verified solution.

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

Suggested Solutions

Title # Comments Views Activity
Lync conversation  history save in outlook 2007 1 26
Poll Active Directory user information 11 43
Azure Expertise required 1 28
Antivirus in server 3 20
When you start your Windows 10 PC and got an "Operating system not found" error or just saw  "Auto repair for startup" or a blinking cursor with black screen. A loop for Auto repair will start but fix nothing.  You will be panic as there are no back…
This article runs through the process of deploying a single EXE application selectively to a group of user.
This tutorial will walk an individual through the steps necessary to join and promote the first Windows Server 2012 domain controller into an Active Directory environment running on Windows Server 2008. Determine the location of the FSMO roles by lo…
Two types of users will appreciate AOMEI Backupper Pro: 1 - Those with PCIe drives (and haven't found cloning software that works on them). 2 - Those who want a fast clone of their boot drive (no re-boots needed) and it can clone your drive wh…

829 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