Solved

vbs script almost works. Need help with a field name

Posted on 2011-02-17
4
936 Views
Last Modified: 2012-05-11
I found this vbs script which is supposed to list all members in an Active Directory with their "Logon Script". If I comment out the line which is supposed to get the" Logon Script" value, the thing will run and generate the list of AD users.

If I uncomment that line, the thing runs, but fails at the line requesting the logon scirpt, with this

 "findNoLogonScriptUsers.vbs(56, 1) ADODB.Recordset: Item cannot be found in the collection corresponding to the requested name or ordinal."

A little research says either I spelled it wrong or I'm asking for a non-existant field.

What I want is the "logon script". I see this value in the AD gui, on the Profile tab. We use several scripts and I type only the name of the script in the gui, the OS knows the path

Here are 2 lines from the vbs script
=============================
strName = adoRecordset.Fields("sAMAccountName").Value

strScript = adoRecordset.Fields("scriptPath").value
=============================

The first apparently works, the second fails.

Is "scriptPath" the field name for the gui "Logog Script" field?

How would I get a list of AD field names? I mean pull it off my system. (Win Svr 2003, also using Exchange Server 2007)

I'm a noobie at this stuff, I'd appreciate any help. If this doesn't work, I can just get it manually
0
Comment
Question by:cgunix
  • 2
4 Comments
 
LVL 21

Accepted Solution

by:
snusgubben earned 250 total points
ID: 34919905
"scriptPath" is the correct name.

List of fields: http://fsuid.fsu.edu/admin/lib/WinADLDAPAttributes.html

Try this and see if it works. Edit the LDAP string to match your domain:


On Error Resume Next
Set objUser = GetObject _
  ("LDAP://cn=username,ou=your_ou,dc=domain,dc=com")
objUser.GetInfo
 
strScript = objUser.Get("scriptPath")
 
WScript.echo "scriptPath: " & strScript
0
 
LVL 65

Assisted Solution

by:RobSampson
RobSampson earned 250 total points
ID: 34922549
Hi, scriptPath is the correct attribute, but you need to make sure your query is returning it as an available field.

This would mean your SELECT query needs to include it:
SELECT adsPath, samAccountName, scriptPath FROM .....

or your ADO filter needs to include it:
<LDAP://DC=domain,DC=com>;(&(objectClass=user);adsPath,samAccountName,scriptPath;subtree

Regards,

Rob.
0
 

Author Closing Comment

by:cgunix
ID: 34926821
Thanks for the help, but I couldn't make it work and can't spend more time on it - I just don't know enough about vbs syntax to follow your instructions. I made some progress, but it is my lack, not yours. I can do the task I need manually.

Thanks

LC
0
 
LVL 65

Expert Comment

by:RobSampson
ID: 34931025
If you post the part of your code that performs the query, we can test it and modify it for you.

Rob.
0

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

This article outlines the process to identify and resolve account lockout in an Active Directory environment.
Always backup Domain, SYSVOL etc.using processes according to Microsoft Best Practices. This is meant as a disaster recovery process for small environments that did not implement backup processes and did not run a secondary domain controller that ne…
This tutorial will walk an individual through the process of transferring the five major, necessary Active Directory Roles, commonly referred to as the FSMO roles from a Windows Server 2008 domain controller to a Windows Server 2012 domain controlle…
This tutorial will walk an individual through the process of configuring their Windows Server 2012 domain controller to synchronize its time with a trusted, external resource. Use Google, Bing, or other preferred search engine to locate trusted NTP …

749 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