Windows Vista Tips

Windows Vista Tips > Newsgroups > Windows Server > Scripting > Is there a script which will report which OU a server resides in, given an Active Directory 2003 domain?

Reply
Thread Tools Display Modes

Is there a script which will report which OU a server resides in, given an Active Directory 2003 domain?

 
 
Spin
Guest
Posts: n/a

 
      10-07-2008
Gurus,

Is there a script which will report which OU a server resides in, given an
Active Directory 2003 domain?

--
Spin


 
Reply With Quote
 
 
 
 
Jorge Silva
Guest
Posts: n/a

 
      10-07-2008
Hi
Doing a simple find using ADUC will show you where the server is.
--
I hope that the information above helps you.
Have a Nice day.

Jorge Silva
MCSE, MVP Directory Services

Please no e-mails, any questions should be posted in the NewsGroup
This posting is provided "AS IS" with no warranties, and confers no rights.


"Spin" <> wrote in message
news:...
> Gurus,
>
> Is there a script which will report which OU a server resides in, given an
> Active Directory 2003 domain?
>
> --
> Spin
>


 
Reply With Quote
 
Spin
Guest
Posts: n/a

 
      10-07-2008
"Jorge Silva" <> wrote in message
news:0E2E0AEB-3A25-4CC2-877B-...
> Hi
> Doing a simple find using ADUC will show you where the server is.
> --
> I hope that the information above helps you.
> Have a Nice day.
>
> Jorge Silva
> MCSE, MVP Directory Services


I need a report dumping the OU membership of all servers, in a spreadsheet
sorted by server name alphabetically.


 
Reply With Quote
 
Adrian
Guest
Posts: n/a

 
      10-07-2008
You can use [ DSQUERY Computer -limit 0 ] put that into excel and modify that
data to suit your needs.

"Spin" wrote:

> Gurus,
>
> Is there a script which will report which OU a server resides in, given an
> Active Directory 2003 domain?
>
> --
> Spin
>
>
>

 
Reply With Quote
 
John Policelli [MVP - DS]
Guest
Posts: n/a

 
      10-07-2008
I find ADFind.exe to be more efficient and produce better output.

If you use the following, you will get a list of the DN of each computer
object outputted to CSV format:
adfind -b dc=domain,dc=com -f "objectcategory=computer" -dn -csv
-nocsvheader >Results.txt

If you are looking for computers in a specific OU, called Servers for
example, then the following will work too:
adfind -b dc=domain,dc=com -f "objectcategory=computer" -incldn Servers -dn
>Results.txt



--
John Policelli

Blog: http://johnpolicelli.wordpress.com

This posting is provided "AS IS" with no warranties and confers no rights!
Always test before proceeding.


"Adrian" wrote:

> You can use [ DSQUERY Computer -limit 0 ] put that into excel and modify that
> data to suit your needs.
>
> "Spin" wrote:
>
> > Gurus,
> >
> > Is there a script which will report which OU a server resides in, given an
> > Active Directory 2003 domain?
> >
> > --
> > Spin
> >
> >
> >

 
Reply With Quote
 
Al Dunbar
Guest
Posts: n/a

 
      10-08-2008

"Spin" <> wrote in message
news:...
> Gurus,
>
> Is there a script which will report which OU a server resides in, given an
> Active Directory 2003 domain?
>


type this command:

dsquery user -samid username

/Al


 
Reply With Quote
 
Richard Mueller [MVP]
Guest
Posts: n/a

 
      10-08-2008

"Spin" <> wrote in message
news:...
> "Jorge Silva" <> wrote in message
> news:0E2E0AEB-3A25-4CC2-877B-...
>> Hi
>> Doing a simple find using ADUC will show you where the server is.
>> --
>> I hope that the information above helps you.
>> Have a Nice day.
>>
>> Jorge Silva
>> MCSE, MVP Directory Services

>
> I need a report dumping the OU membership of all servers, in a spreadsheet
> sorted by server name alphabetically.
>
>


I have an example VBScript program to document all servers in the domain
linked here:

http://www.rlmueller.net/Enumerate%20Servers.htm

The program outputs the Distinguished Name of each machine, which indicates
the OU/container the computer resides in. If you run the script at a command
prompt with the cscript host, the output can be redirected to a text file.

--
Richard Mueller
MVP Directory Services
Hilltop Lab - http://www.rlmueller.net
--


 
Reply With Quote
 
Richard Mueller [MVP]
Guest
Posts: n/a

 
      10-08-2008

"Richard Mueller [MVP]" <rlmueller-> wrote in
message news:...
>
> "Spin" <> wrote in message
> news:...
>> "Jorge Silva" <> wrote in message
>> news:0E2E0AEB-3A25-4CC2-877B-...
>>> Hi
>>> Doing a simple find using ADUC will show you where the server is.
>>> --
>>> I hope that the information above helps you.
>>> Have a Nice day.
>>>
>>> Jorge Silva
>>> MCSE, MVP Directory Services

>>
>> I need a report dumping the OU membership of all servers, in a
>> spreadsheet sorted by server name alphabetically.
>>
>>

>
> I have an example VBScript program to document all servers in the domain
> linked here:
>
> http://www.rlmueller.net/Enumerate%20Servers.htm
>
> The program outputs the Distinguished Name of each machine, which
> indicates the OU/container the computer resides in. If you run the script
> at a command prompt with the cscript host, the output can be redirected to
> a text file.
>
> --
> Richard Mueller
> MVP Directory Services
> Hilltop Lab - http://www.rlmueller.net
> --
>


More code is required to sort the server names and write the output to an
Excel spreadsheet. You can use a disconnected recordset to sort the names.
The following VBScript program worked in my domain (Excel must be installed
on the client where this runs):
==========
Option Explicit

Dim objRootDSE, strDNSDomain, adoConnection, adoCommand, strQuery
Dim adoRecordset, strComputerDN, strOS
Dim adoResults, strOU, strName, intIndex
Dim objExcel, objSheet, intRow, strExcelPath

Const adVarChar = 200
Const MaxCharacters = 255

' Specify spreadsheet.
strExcelPath = "c:\Scripts\Servers.xls"

' Determine DNS domain name from RootDSE object.
Set objRootDSE = GetObject("LDAP://RootDSE")
strDNSDomain = objRootDSE.Get("defaultNamingContext")

' Use ADO to search Active Directory for all computers.
Set adoCommand = CreateObject("ADODB.Command")
Set adoConnection = CreateObject("ADODB.Connection")
adoConnection.Provider = "ADsDSOObject"
adoConnection.Open "Active Directory Provider"
adoCommand.ActiveConnection = adoConnection

strQuery = "<LDAP://" & strDNSDomain _
& ">;(objectCategory=computer);" _
& "sAMAccountName,distinguishedName,operatingSystem; subtree"

adoCommand.CommandText = strQuery
adoCommand.Properties("Page Size") = 100
adoCommand.Properties("Timeout") = 30
adoCommand.Properties("Cache Results") = False

Set adoRecordset = adoCommand.Execute

Set adoResults = CreateObject("ADODB.Recordset")
adoResults.Fields.Append "Name", adVarChar, MaxCharacters
adoResults.Fields.Append "OU", adVarChar, MaxCharacters
adoResults.Open

' Enumerate computer objects with server operating systems.
Do Until adoRecordset.EOF
strOS = adoRecordset.Fields("operatingSystem").Value
If (InStr(UCase(strOS), "SERVER") > 0) Then
strComputerDN = adoRecordset.Fields("distinguishedName").Value
strName = adoRecordset.Fields("sAMAccountName").Value
' Remove trailing "$".
strName = Left(strName, Len(strName) - 1)
intIndex = InStr(LCase(strComputerDN), ",ou=")
If (intIndex = 0) Then
intIndex = InStr(LCase(strComputerDN), ",cn=")
End If
If (intIndex = 0) Then
intIndex = InStr(strComputerDN, ",")
End If
strOU = Mid(strComputerDN, intIndex + 1)
strOU = Left(strOU, InStr(LCase(strOU), ",dc=") - 1)
adoResults.AddNew
adoResults.Fields("Name").Value = strName
adoResults.Fields("OU").Value = strOU
adoResults.Update
End If
adoRecordset.MoveNext
Loop
adoRecordset.Close

adoResults.Sort = "Name"
adoResults.MoveFirst

Set objExcel = CreateObject("Excel.Application")
objExcel.Workbooks.Add
Set objSheet = objExcel.ActiveWorkbook.Worksheets(1)

intRow = 2
objSheet.Cells(1, 1).Value = "Server Name"
objSheet.Cells(1, 2).Value = "OU/Container"
Do Until adoResults.EOF
objSheet.Cells(intRow, 1).Value = adoResults.Fields("Name").Value
objSheet.Cells(intRow, 2).Value = adoResults.Fields("OU").Value
intRow = intRow + 1
adoResults.MoveNext
Loop
adoResults.Close

objExcel.ActiveWorkbook.SaveAs strExcelPath
objExcel.ActiveWorkbook.Close

' Clean up.
objExcel.Application.Quit
adoConnection.Close

Wscript.Echo "Done"

--
Richard Mueller
MVP Directory Services
Hilltop Lab - http://www.rlmueller.net
--


 
Reply With Quote
 
Al Dunbar
Guest
Posts: n/a

 
      10-08-2008

"Al Dunbar" <> wrote in message
news:...
>
> "Spin" <> wrote in message
> news:...
>> Gurus,
>>
>> Is there a script which will report which OU a server resides in, given
>> an Active Directory 2003 domain?
>>

>
> type this command:
>
> dsquery user -samid username
>
> /Al


aargh, my apologies - I responded before I noticed you were looking for
computers...

/Al


 
Reply With Quote
 
James Yeomans BSc, MCSE
Guest
Posts: n/a

 
      10-08-2008
On the dc from a command prompt:

dsquery computer -name "computername"

Replace "Computername" as appropriate. This should give you the DN of the
server.
--
James Yeomans, BSc, MCSE


"Spin" wrote:

> Gurus,
>
> Is there a script which will report which OU a server resides in, given an
> Active Directory 2003 domain?
>
> --
> Spin
>
>
>

 
Reply With Quote
 
 
 
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Adding Vista Ultimate to Active Directory Domain (Server 2003) OSUBRYAN Windows Vista Networking 2 04-22-2009 07:58 PM
Is there a script which will report which OU a server resides in, given an Active Directory 2003 domain? Spin Active Directory 9 10-08-2008 11:37 AM
Small Business Server 2003 in an existing Active Directory domain Chris Windows Small Business Server 3 04-09-2008 06:32 AM
Re: 2003 Terminal Server on Active Directory Domain Controller Marcin Active Directory 0 02-03-2008 04:04 PM
Re: 2003 Terminal Server on Active Directory Domain Controller Lanwench [MVP - Exchange] Active Directory 0 02-03-2008 02:04 PM



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59