Install network printers if in same ip range

Hello,

we currently use a diferent batch files that installs about 20 printers on a users machine,depending on which floor they are on. we have to run this manually for each user. i would like to create a script / batch file to check what the ip address of the client is if matches criteria to call a certain batch file for the floor that the user is logged onto.

i hope this makes sense.
rgoddard2008Asked:
Who is Participating?
 
MikeKaneCommented:
There was a question very similar to this that I Robsampson and I worked on :
http://www.experts-exchange.com/Programming/Languages/Visual_Basic/VB_Script/Q_23749378.html?sfQueryTermInfo=1+case+select+strcsubnet

Use the same script and replace the Map Network Drive with a map printer statement instead and it would work for you as well.
0
 
gblundCommented:
Perhaps this could be in your interest. KixtArt is a tool which can help you set up scripts - here is the link for kixart http://www.kixtart.org/

With this tool i am sure you can make a script that checks for ip address and then connects them to the right printers. If you google for kixtart scripts you can easilly find examples on how to do this - if you connects printer based on groupmemberships instead.

Good luck
0
 
oBdACommented:
What are those "certain criterias"? Do you have different subnets per floor, or are they all in the same subnet, but different ranges?
0
 
rgoddard2008Author Commented:
same subnet different gateway and range of ip

example 192.168.1 = floor one
               192.168.2 = floor two
0
 
oBdACommented:
If you're using the standard network masks for a 192.168 private subnet (255.255.255.0), then your examples are on different subnets.
The script below will calculate the client's correct subnet based on the subnet mask, and you can then use the subnet to call the different batch scripts:
@echo off
setlocal
 
for /f "tokens=2 delims=:" %%a in ('ipconfig ^| find /i "IP Address"') do set IP=%%a
set IP=%IP: =%
for /f "tokens=2 delims=:" %%a in ('ipconfig ^| find /i "Subnet"') do set Mask=%%a
set Mask=%Mask: =%
for /f "tokens=1-4 delims=." %%a in ("%IP%") do (
  set s1=%%a
  set s2=%%b
  set s3=%%c
  set s4=%%d
)
for /f "tokens=1-4 delims=." %%a in ("%Mask%") do (
  set /a s1 "&=" %%a
  set /a s2 "&=" %%b
  set /a s3 "&=" %%c
  set /a s4 "&=" %%d
)
set LocalNet=%s1%.%s2%.%s3%.%s4%
echo Local Subnet: %LocalNet%
if "%LocalNet%"=="192.168.1.0" call Floor1.bat
if "%LocalNet%"=="192.168.2.0" call Floor2.bat

Open in new window

0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.