PHWinfo banniere

Titres
PORTAIL ANNUAIRE ARTICLES COMPARATEUR HÉBERGEURS DEVIS FORUMS RÉDUCTEUR D'URL
Précédent   PHWinfo > Forums Hébergement > Forum Hébergement serveur > ms.win.server.scripting > Re: Amateur Scripter Question
S'inscrire FAQ Membres Recherche Messages du jour Marquer les forums comme lus
Re: Amateur Scripter Question

Réponse
 
LinkBack Outils de la discussion
Vieux 25/09/2007, 18h14   #1
Richard Mueller [MVP]
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Amateur Scripter Question

meek wrote:

>I can't get my script to work on objects nestled in 2 OU levels deep. They
> only work in the 1st OU level. For example: OU=United States, OU=New
> York.
> If the object is in the New York OU, it doesn't work. If I move it up to
> the
> United States OU it works. Is there something extra you need to do to
> touch
> objects nestled 2 OU's deep?


If the components of the AdsPath are comma delimited as in your example,
your ADSI binding string is in Little-Endian form. This is the default (I
have never seen anyone use the alternative Big-Endian form). The components
are listed in order from the lowest level to the highest. The last
components in the AdsPath are the domain. The first component is the
relative distinguished name of the specific object you are referencing.

In your example, "ou=United States" resides in "ou=New York", which doesn't
seem likely. I assume the components are listed in the wrong order. To bind
to the user "cn=Jim Smith" in "ou=United States", which is in the root of
the domain "MyDomain.com", you would use:

Set objUser1 = GetObject("LDAP://cn=Jim Smith,ou=United
States,dc=MyDomain,dc=com")

If "ou=New York" is in "ou=United States" ("ou=New York" is a child of the
parent "ou=United States"), you would bind to the user "cn=Mary Johnson" in
"ou=New York with:

Set objUser2 = GetObject("LDAP://cn=Mary Johnson,ou=New York,ou=United
States,dc=MyDomain,dc=com")

Does this ?

--
Richard Mueller
Microsoft MVP Scripting and ADSI
Hilltop Lab - http://www.rlmueller.net
--


  Réponse avec citation
Vieux 25/09/2007, 20h22   #2
meek
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Amateur Scripter Question

Thanks Rich. You are absolutely correct. I had the order wrong. However,
after changing the order, I get an error stating the item doesn't exist. Let
me take another look to see if I goofed something up. Thanks for the
immediate response.

One more thing, once I get this script working, how to I apply it to all
users in the OU? Would I just use the %username% in the place of the
username and home directory folder name?
--
Change your thoughts and you change your world.


"Richard Mueller [MVP]" wrote:

> meek wrote:
>
> >I can't get my script to work on objects nestled in 2 OU levels deep. They
> > only work in the 1st OU level. For example: OU=United States, OU=New
> > York.
> > If the object is in the New York OU, it doesn't work. If I move it up to
> > the
> > United States OU it works. Is there something extra you need to do to
> > touch
> > objects nestled 2 OU's deep?

>
> If the components of the AdsPath are comma delimited as in your example,
> your ADSI binding string is in Little-Endian form. This is the default (I
> have never seen anyone use the alternative Big-Endian form). The components
> are listed in order from the lowest level to the highest. The last
> components in the AdsPath are the domain. The first component is the
> relative distinguished name of the specific object you are referencing.
>
> In your example, "ou=United States" resides in "ou=New York", which doesn't
> seem likely. I assume the components are listed in the wrong order. To bind
> to the user "cn=Jim Smith" in "ou=United States", which is in the root of
> the domain "MyDomain.com", you would use:
>
> Set objUser1 = GetObject("LDAP://cn=Jim Smith,ou=United
> States,dc=MyDomain,dc=com")
>
> If "ou=New York" is in "ou=United States" ("ou=New York" is a child of the
> parent "ou=United States"), you would bind to the user "cn=Mary Johnson" in
> "ou=New York with:
>
> Set objUser2 = GetObject("LDAP://cn=Mary Johnson,ou=New York,ou=United
> States,dc=MyDomain,dc=com")
>
> Does this ?
>
> --
> Richard Mueller
> Microsoft MVP Scripting and ADSI
> Hilltop Lab - http://www.rlmueller.net
> --
>
>
>

  Réponse avec citation
Vieux 25/09/2007, 21h16   #3
Richard Mueller [MVP]
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Amateur Scripter Question

You can bind to the OU object, filter on all child objects of class "user",
and enumerate. In brief:
==========
' Bind to OU.
Set objOU = GetObject("LDAP://ou=New Your,ou=United
States,dc=MyDomain,dc=com")

' Filter on user objects.
objOU.Filter = Array("user")

' Enumerate all users in the OU.
For Each objUser in objOU
' Display user NT name and home directory.
Wscript.Echo objUser.sAMAccountName & ", " & objUser.homeDirectory
Next
=========
I can't tell what you are trying to accomplish. The above just spits out all
user names and their home directories. As with most administrative scripts,
it should be run at a command prompt with the cscript host. The output can
be redirected to a text file. For example, if the above program is in the
file Example.vbs:

cscript //nologo Example.vbs > report.txt

--
Richard Mueller
Microsoft MVP Scripting and ADSI
Hilltop Lab - http://www.rlmueller.net
--

"meek" <meek@discussions.microsoft.com> wrote in message
news:4347A542-FC00-4117-8BC3-20A4215F3804@microsoft.com...
> Thanks Rich. You are absolutely correct. I had the order wrong. However,
> after changing the order, I get an error stating the item doesn't exist.
> Let
> me take another look to see if I goofed something up. Thanks for the
> immediate response.
>
> One more thing, once I get this script working, how to I apply it to all
> users in the OU? Would I just use the %username% in the place of the
> username and home directory folder name?
> --
> Change your thoughts and you change your world.
>
>
> "Richard Mueller [MVP]" wrote:
>
>> meek wrote:
>>
>> >I can't get my script to work on objects nestled in 2 OU levels deep.
>> >They
>> > only work in the 1st OU level. For example: OU=United States, OU=New
>> > York.
>> > If the object is in the New York OU, it doesn't work. If I move it up
>> > to
>> > the
>> > United States OU it works. Is there something extra you need to do to
>> > touch
>> > objects nestled 2 OU's deep?

>>
>> If the components of the AdsPath are comma delimited as in your example,
>> your ADSI binding string is in Little-Endian form. This is the default (I
>> have never seen anyone use the alternative Big-Endian form). The
>> components
>> are listed in order from the lowest level to the highest. The last
>> components in the AdsPath are the domain. The first component is the
>> relative distinguished name of the specific object you are referencing.
>>
>> In your example, "ou=United States" resides in "ou=New York", which
>> doesn't
>> seem likely. I assume the components are listed in the wrong order. To
>> bind
>> to the user "cn=Jim Smith" in "ou=United States", which is in the root of
>> the domain "MyDomain.com", you would use:
>>
>> Set objUser1 = GetObject("LDAP://cn=Jim Smith,ou=United
>> States,dc=MyDomain,dc=com")
>>
>> If "ou=New York" is in "ou=United States" ("ou=New York" is a child of
>> the
>> parent "ou=United States"), you would bind to the user "cn=Mary Johnson"
>> in
>> "ou=New York with:
>>
>> Set objUser2 = GetObject("LDAP://cn=Mary Johnson,ou=New York,ou=United
>> States,dc=MyDomain,dc=com")
>>
>> Does this ?
>>
>> --
>> Richard Mueller
>> Microsoft MVP Scripting and ADSI
>> Hilltop Lab - http://www.rlmueller.net
>> --
>>
>>
>>



  Réponse avec citation
Vieux 27/09/2007, 03h43   #4
meek
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Amateur Scripter Question

Rich,

Thanks again. I did goof yesterday. I had the username spelled
incorrectly. Once correcting this, I was successfully able to run the script
and make the changes.
Just to let you know, we moved our user's home folder from a previous
server, to our new SAN. We have redirected their "My Documents" folder to
the new server using group policy. However, the Home folder listed on the
profile tab in the active directory object properties still has the path to
the old server. I wanted to make a script to change this for all 500 users
automatically. I do have the script working on individual users, but need to
know how to get it to run for all the users. We currently have about 5 top
level OUs that have about 30 sub OUs and some of those sub OUs have OUs. If
I understand your response, I must bind to the OU and run the script for all
users?
--
Change your thoughts and you change your world.


"Richard Mueller [MVP]" wrote:

> You can bind to the OU object, filter on all child objects of class "user",
> and enumerate. In brief:
> ==========
> ' Bind to OU.
> Set objOU = GetObject("LDAP://ou=New Your,ou=United
> States,dc=MyDomain,dc=com")
>
> ' Filter on user objects.
> objOU.Filter = Array("user")
>
> ' Enumerate all users in the OU.
> For Each objUser in objOU
> ' Display user NT name and home directory.
> Wscript.Echo objUser.sAMAccountName & ", " & objUser.homeDirectory
> Next
> =========
> I can't tell what you are trying to accomplish. The above just spits out all
> user names and their home directories. As with most administrative scripts,
> it should be run at a command prompt with the cscript host. The output can
> be redirected to a text file. For example, if the above program is in the
> file Example.vbs:
>
> cscript //nologo Example.vbs > report.txt
>
> --
> Richard Mueller
> Microsoft MVP Scripting and ADSI
> Hilltop Lab - http://www.rlmueller.net
> --
>
> "meek" <meek@discussions.microsoft.com> wrote in message
> news:4347A542-FC00-4117-8BC3-20A4215F3804@microsoft.com...
> > Thanks Rich. You are absolutely correct. I had the order wrong. However,
> > after changing the order, I get an error stating the item doesn't exist.
> > Let
> > me take another look to see if I goofed something up. Thanks for the
> > immediate response.
> >
> > One more thing, once I get this script working, how to I apply it to all
> > users in the OU? Would I just use the %username% in the place of the
> > username and home directory folder name?
> > --
> > Change your thoughts and you change your world.
> >
> >
> > "Richard Mueller [MVP]" wrote:
> >
> >> meek wrote:
> >>
> >> >I can't get my script to work on objects nestled in 2 OU levels deep.
> >> >They
> >> > only work in the 1st OU level. For example: OU=United States, OU=New
> >> > York.
> >> > If the object is in the New York OU, it doesn't work. If I move it up
> >> > to
> >> > the
> >> > United States OU it works. Is there something extra you need to do to
> >> > touch
> >> > objects nestled 2 OU's deep?
> >>
> >> If the components of the AdsPath are comma delimited as in your example,
> >> your ADSI binding string is in Little-Endian form. This is the default (I
> >> have never seen anyone use the alternative Big-Endian form). The
> >> components
> >> are listed in order from the lowest level to the highest. The last
> >> components in the AdsPath are the domain. The first component is the
> >> relative distinguished name of the specific object you are referencing.
> >>
> >> In your example, "ou=United States" resides in "ou=New York", which
> >> doesn't
> >> seem likely. I assume the components are listed in the wrong order. To
> >> bind
> >> to the user "cn=Jim Smith" in "ou=United States", which is in the root of
> >> the domain "MyDomain.com", you would use:
> >>
> >> Set objUser1 = GetObject("LDAP://cn=Jim Smith,ou=United
> >> States,dc=MyDomain,dc=com")
> >>
> >> If "ou=New York" is in "ou=United States" ("ou=New York" is a child of
> >> the
> >> parent "ou=United States"), you would bind to the user "cn=Mary Johnson"
> >> in
> >> "ou=New York with:
> >>
> >> Set objUser2 = GetObject("LDAP://cn=Mary Johnson,ou=New York,ou=United
> >> States,dc=MyDomain,dc=com")
> >>
> >> Does this ?
> >>
> >> --
> >> Richard Mueller
> >> Microsoft MVP Scripting and ADSI
> >> Hilltop Lab - http://www.rlmueller.net
> >> --
> >>
> >>
> >>

>
>
>

  Réponse avec citation
Réponse


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Fuseau horaire GMT +1. Il est actuellement 01h47.


Édité par : vBulletin® version 3.7.4
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0 RC5 Tous droits réservés.
Version française #16 par l'association vBulletin francophone
PHWinfo est un site Éducation Sans Frontières ©2000-2008
Ad Management by RedTyger
©Tous droits réservés par les parties respectives
Page generated in 0,17324 seconds with 12 queries