133 lines
3.6 KiB
Plaintext
133 lines
3.6 KiB
Plaintext
//+-------------------------------------------------------------------------
|
|
//
|
|
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
|
|
// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
|
|
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
|
|
// PARTICULAR PURPOSE.
|
|
//
|
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
//
|
|
// ADsCmd VC Sample: ADSI Command-Line Browser
|
|
//
|
|
//--------------------------------------------------------------------------
|
|
|
|
Description
|
|
===========
|
|
The ADsCmd sample uses a specified ADsPath to bind to a directory object and
|
|
then either lists all its contained objects or dumps all the properties of
|
|
the object.
|
|
|
|
Sample Files
|
|
============
|
|
* ADsCmd.sln
|
|
* ADsCmd.vcproj
|
|
* Dump.cpp
|
|
* Enum.cpp
|
|
* Main.cpp
|
|
* Main.h
|
|
* sources
|
|
* Util.cpp
|
|
|
|
Building the Sample
|
|
===================
|
|
When you build this sample using Visual Studio, be sure that you have the
|
|
INCLUDE directory for the Platform SDK set first in the Options list of
|
|
include files.
|
|
|
|
To build this sample
|
|
1. Open the workspace ADsCmd.cpp.
|
|
2. From the Build menu, select Build.
|
|
|
|
|
|
|
|
Running the Sample
|
|
==================
|
|
To run this sample
|
|
1. Open a command prompt and change to the directory where you built
|
|
the sample.
|
|
2. Type the command
|
|
|
|
ADsCmd [list|dump] <ADsPath>
|
|
|
|
where
|
|
list specifies to display all objects.
|
|
dump specifies an object for which to display attributes.
|
|
ADsPath specifies the ADsPath of the directory service to display.
|
|
|
|
Example Output
|
|
==============
|
|
Entering the command
|
|
|
|
ADsCmd list WinNT://Fabrikam
|
|
|
|
produces output similar to the following in the Fabrikam domain.
|
|
|
|
Administrator(User)
|
|
Guest(User)
|
|
Helper(User)
|
|
TestU(User)
|
|
DnsUpdateProxy(Group)
|
|
Domain Admins(Group)
|
|
Domain Computers(Group)
|
|
Domain Controllers(Group)
|
|
Domain Guests(Group)
|
|
Domain Users(Group)
|
|
Downlevel Name(Group)
|
|
Enterprise Admins(Group)
|
|
Group Policy Creator Owners(Group)
|
|
NewGroup(Group)
|
|
Schema Admins(Group)
|
|
Administrators(Group)
|
|
Users(Group)
|
|
Guests(Group)
|
|
Print Operators(Group)
|
|
Backup Operators(Group)
|
|
Replicator(Group)
|
|
Remote Desktop Users(Group)
|
|
Network Configuration Operators(Group)
|
|
Server Operators(Group)
|
|
Account Operators(Group)
|
|
Pre-Windows 2000 Compatible Access(Group)
|
|
Incoming Forest Trust Builders(Group)
|
|
Cert Publishers(Group)
|
|
RAS and IAS Servers(Group)
|
|
HelpServicesGroup(Group)
|
|
DnsAdmins(Group)
|
|
DHCP Users(Group)
|
|
DHCP Administrators(Group)
|
|
FABRIKAM1(Computer)
|
|
FABRIKAMDC(Computer)
|
|
Schema(Schema)
|
|
Total Number of Objects enumerated is 37
|
|
|
|
Entering the command
|
|
|
|
ADsCmd dump LDAP://CN=Computers,DC=Fabrikam,DC=Com
|
|
|
|
produces output similar to the following in the Fabrikam.Com domain.
|
|
|
|
cn : Computers
|
|
instanceType : 4
|
|
nTSecurityDescriptor : Data type is 9
|
|
|
|
objectCategory : CN=Container,CN=Schema, \
|
|
CN=Configuration,DC=fabrikam,DC=com
|
|
objectClass : top, container
|
|
|
|
How the Sample Works
|
|
====================
|
|
The sample uses the specified command switch to chose between listing the
|
|
contents of the specified object or dumping the properties of the specified
|
|
object. When listing the contents of the specified object, the sample uses
|
|
the IADsContainer interface to enumerate the contents. The sample contains
|
|
optional code to filter the type of objects enumerated. When dumping the
|
|
properties of the specified object, the sample uses the IADs interface to
|
|
access schema to find the properties to dump.
|
|
|
|
See Also
|
|
========
|
|
ADSI Service Providers
|
|
IADs interface
|
|
IADsContainer interface
|
|
|