![](/i/fill.gif) |
![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
OK, so I decided to try to use VBScript to actually do something *useful*.
Big mistake.
Anyway, apparently there's some sort of way to use LDAP to look up
properties of a user's account in Active Directory. But there's a
problem: you can't do anything until you discover the Distinguished Name
of the account object.
I've wasted literally 2 hours trying to find this trivial piece of
information. Given how vitally important it is, you'd think there would
be a field *somewhere* in the properties dialog that would tell you what
the ****ing DN is, but noooooo...
So I see that it's supposed to be possible to solve this using VBScript
too. There are at least a dozen websites that all contain code nearly
identical to this:
set trans = CreateObject("NameTranslate")
trans.Init 3, ""
trans.Set 3, "domain\user"
set name = trans.Get(1)
WScript.Echo name
Only trouble is... it doesn't work. I've tried rephrasing the code every
way I can think of, but still all I get is "error 800A01A8 on line 4".
Absolutely nothing I do will make this god-damned error go away so that
I can get to the actual data I want.
I give up.
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
> set trans = CreateObject("NameTranslate")
> trans.Init 3, ""
> trans.Set 3, "domain\user"
> set name = trans.Get(1)
> WScript.Echo name
>
> Only trouble is... it doesn't work. I've tried rephrasing the code every
> way I can think of, but still all I get is "error 800A01A8 on line 4".
> Absolutely nothing I do will make this god-damned error go away so that I
> can get to the actual data I want.
Try removing the "set" at the beginning of line 4. IIRC set is only used to
assign a reference of an object to your variable, not a value.
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Invisible wrote:
> set trans = CreateObject("NameTranslate")
> trans.Init 3, ""
> trans.Set 3, "domain\user"
> set name = trans.Get(1)
> WScript.Echo name
>
> Only trouble is... it doesn't work.
Oh my god.
Apparently you have to delete the word "set" on line 4. And then it
works perfectly. WTF?
2 hours to figure that out. Fantastic. >_<
It turns out that the DN is the user's real name, followed by the names
of all the millions of OUs that the object is in, followed by the domain
name. So my user account's DN is something like
CN=Andrew, OU=Information Technology, OU=Departments, OU=Regular
Users, OU=UK, OU=Sites, OU=Managed, DC=foo, DC=com
I much prefer referring to my user account by username. It's only 8
characters. :-P
Still, at least fetching the email address worked without a hitch. And
that was shortly followed by me obtaining the data I actually wanted:
the date of the last password change. (WHY is this not in the GUI in the
first place??)
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Invisible wrote:
> 2 hours to figure that out. Fantastic. >_<
I converted the script to JScript. This is much more familiar.
Apparently the conversion isn't too difficult; you've got to replace
"CreateObject" with "new ActiveXObject", and that's about it. The method
syntax is also more regular.
I especially love the way that I get a different answer this way... (The
date is formatted totally differently!)
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Invisible wrote:
> Invisible wrote:
>
>> 2 hours to figure that out. Fantastic. >_<
>
> I converted the script to JScript. This is much more familiar.
> Apparently the conversion isn't too difficult; you've got to replace
> "CreateObject" with "new ActiveXObject", and that's about it. The method
> syntax is also more regular.
>
> I especially love the way that I get a different answer this way... (The
> date is formatted totally differently!)
In case you didn't see it, I translated scott's VBScript example:
http://news.povray.org/4bd01976%241%40news.povray.org
into JScript:
http://news.povray.org/4bd20e90%40news.povray.org
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Invisible wrote:
> Apparently you have to delete the word "set" on line 4. And then it
> works perfectly. WTF?
Yes. "Set" assigns objects. "Let" (or nothing) assigns non-objects. Welcome
to OO BASIC. ;-)
> 2 hours to figure that out. Fantastic. >_<
That wasn't too bad.
> CN=Andrew, OU=Information Technology, OU=Departments, OU=Regular
> Users, OU=UK, OU=Sites, OU=Managed, DC=foo, DC=com
Welcome to X.500. (OR is it X.400?)
> I much prefer referring to my user account by username. It's only 8
> characters. :-P
And you can, until you want to know the *distinguished* name of the user.
That's why they call it that. It's distinguished from all other users.
That list of names at the top will normally walk up the heirarchy of naming
authorities, so it'll be you, at your department, at your company, as seen
in Windows, in the UK, in the World.
> (WHY is this not in the GUI in the first place??)
Don't you start.
--
Darren New, San Diego CA, USA (PST)
Linux: Now bringing the quality and usability of
open source desktop apps to your personal electronics.
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Invisible escreveu:
> OK, so I decided to try to use X to actually do something *useful*.
>
> Big mistake.
there, made a template for your posts.
--
a game sig: http://tinyurl.com/d3rxz9
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Invisible escreveu:
> Invisible wrote:
>
>> set trans = CreateObject("NameTranslate")
>> trans.Init 3, ""
>> trans.Set 3, "domain\user"
>> set name = trans.Get(1)
>> WScript.Echo name
>>
>> Only trouble is... it doesn't work.
>
> Oh my god.
>
> Apparently you have to delete the word "set" on line 4. And then it
> works perfectly. WTF?
>
> 2 hours to figure that out. Fantastic. >_<
yeah, nothing like good ol' RTFM instead of trial and error...
--
a game sig: http://tinyurl.com/d3rxz9
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
nemesis wrote:
> Invisible escreveu:
>> OK, so I decided to try to use X to actually do something *useful*.
>>
>> Big mistake.
>
> there, made a template for your posts.
I'm now tempted to feed Invisible's posts to a markov chain algorithm and
see what comes out of it...
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
nemesis wrote:
> yeah, nothing like good ol' RTFM instead of trial and error...
To be fair, this is old tech, so MS doesn't exactly make it easy to find the
documentation when you could be upgrading to VBNET.AWSOME.
--
Darren New, San Diego CA, USA (PST)
Linux: Now bringing the quality and usability of
open source desktop apps to your personal electronics.
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |