Pass through authentication does not work

Hi guys!

We have many NT domains and AD in our environment.

I have a list of computers in a text file (c:\Computers.txt (list of computers))

I need to connect to each machine with a specific local account for that machine.

On all these machines, a local account called eg. testusr has been set up, with the same password on all of them eg. password.

What I need to do is:
Change the following key on these computers in the file
HKU\.Default\Control Panel\Desktop\AutoEndTasks
Id like to change the value of AutoEndTasks from 0 to 1.

I have tried the following:

1) Created a local account on MY machine (where I wish to execute the script) with the same credentials as those on the target machines
eg. local account username = testusr, password = password

2) Tried to execute a script that connects to each target machine with passthrough authentication, but this fails. The problem is that I get prompted for <target computer name>\local user account.

What I need help with is:

How do I write a script that:

1) Reads a text file of computer names
2) When the script reads each computer name and tries to connect to that machine, it connects as
<computername>\testusr
eg. not as simply testusr (without the computer name>
3) If I log on to my machine as testusr, and then simply try to execute for example the following:

for /f %%a in (C:\Comptuers.txt) do reg add "\\%%a\hku\.default\Control Panel\Desktop" /v AutoEndTasks /d 1 /f

I get prompted for username and password.
If I put in <computername>\testusr, this will work, otherwise passthrough fails.

Ideally, I need to do the following:

a) Have a safety net, that is:
(i) When I try and connect to each machine, it tries alternate credentials in case the first try fails, or for example the account has been locked out, so something like this...
(ii) When trying to connect to each machine, try..
read the computers.txt file to get the computer name ---> then try connecting as <computername>\testusr
If this fails, then try connecting with a domain account (I can use the same credentials here)
If this fails, then log an error in a text file saying cannot connect, then move on to the next computer in the list.

Any help greatly appreciated.

Thank you.

S


LVL 1
Simon336697Asked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

sirbountyCommented:
Does this work for connecting?

for /f %%a in (C:\Comptuers.txt) do (
net use \\%%a\ipc$ /user:%%a\testusr
reg add "\\%%a\hku\.default\Control Panel\Desktop" /v AutoEndTasks /d 1 /f
)

0
Simon336697Author Commented:
You are incredible SB - so quick to respond to anyone who asks a question (thk u :))

I will let you know.

SB....is there any way to try alternate credentials in case the account for any reason is locked out?
0
Simon336697Author Commented:
SB!

Prior to running this script also, I would probably want to check, or upon first attempting to making a connection to each machine, to make sure I havent already got a connection to each one, and if so, to delete that connection and recreate one.
0
Cloud Class® Course: Amazon Web Services - Basic

Are you thinking about creating an Amazon Web Services account for your business? Not sure where to start? In this course you’ll get an overview of the history of AWS and take a tour of their user interface.

Simon336697Author Commented:
SB!

Would changing this script to a vbscript be the better way when trying to do this?
For example, if I wanted to try multiple accounts in case the first one failed, would it be better to create a sub for each try eg.different account

Sub()
connect with <computeraccount>\testusr
if fails go to next sub

Sub()
connect with <domain>\domainaccount
if fails go to next sub

Sub()
connect with sdsfsdfs
if fails go to next sub

Sub()
log an error in a text file

0
sirbountyCommented:
No, I don't really see the benefit to move to a vbs with this, given your scope.
It's just going to take me a bit to test this...I'll post something shortly.
0
sirbountyCommented:
Something like this 'may' work (admittedly I don't have the same scenario, so I might be off, or this may need further tweaking)


for /f %%a in (C:\Comptuers.txt) do call :process %%a
goto :eof

:process
set pc=%1
net use \\%pc%\ipc$ /user:%pc%\testusr
If %errorlevel%==0 goto connected
net use \\%pc%\ipc$ /user:domain\domUsr
If %errorlevel%==0 goto connected
echo An error occurred connecting to %pc% >> C:\error-report.log
goto :eof

:connected
reg add "\\%pc%\hku\.default\Control Panel\Desktop" /v AutoEndTasks /d 1 /f
0
Simon336697Author Commented:
Thanks SB...

The above looks like it will work.
Would you hard code the password for testusr in here?
0
sirbountyCommented:
You 'could' - but then pass-through authentication certainly won't be working.. ;^)
If the password is the same on both, it should pick it right up..
Otherise, simply change this line:

net use \\%pc%\ipc$ /user:%pc%\testusr password
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Simon336697Author Commented:
Works great mate!

S
0
sirbountyCommented:
Happy to help you again! :^)
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Windows Batch

From novice to tech pro — start learning today.