За разлика от потребителите (CN=Users
) няма CN=Printers
контейнер в Active Directory след инсталирането.
Принтерите се публикуват в Active Directory в съответния компютърен контейнер. Какво означава свързан компютърен контейнер? Е, отворете Active Directory Users and Computers MMC snap-in и следвайте тази процедура:
- Изберете разширени функции в менюто за преглед.
- Изберете Потребители, Контакти, Групи и Компютри като контейнери в менюто за преглед.
- Отидете до компютърния обект (който сега се показва като контейнер), към който принадлежи вашият принтер.
- Кликнете върху знака плюс на компютърния контейнер. Там ще видите обекта принтер.
И така, виждате, че принтерите са публикувани в Active Directory в свързания компютърен контейнер (на който принадлежи принтерът), а не в един общ контейнер като CN=Printers
.
Така че, за да търсите обект на принтер в Active Directory, трябва да посочите различен LDAP път. Например можете да посочите корена на вашата Active Directory като корен за търсене:
using (DirectoryEntry entry = new DirectoryEntry())
{
entry.Path = "LDAP://xxx.xxx.xxx.xxx/DC=domainName,DC=com";
entry.Username = @"domainName.com\Administrator";
entry.Password = "SecurePassword";
using (DirectorySearcher search = new DirectorySearcher(entry))
{
search.Filter = "(objectCategory=printQueue)";
SearchResult result = search.FindOne();
if (result != null)
{
ResultPropertyCollection fields = result.Properties;
foreach (String ldapField in fields.PropertyNames)
{
foreach (Object myCollection in fields[ldapField])
Console.WriteLine(String.Format("{0,-20} : {1}",
ldapField, myCollection.ToString()));
}
}
}
}
Разбира се, можете също да посочите като root за търсене LDAP пътя до компютъра, на който е споделен вашият принтер. Например, ако вашият принтер е споделен на компютър, наречен server10
и този компютър се намира в контейнера CN=Computers
, тогава посочете този LDAP път:
LDAP://xxx.xxx.xxx.xxx/CN=server10,CN=Computers,DC=domainName,DC=com
Ако споделяте принтер на домейн контролера, тогава LDAP пътят е малко по-различен (тъй като по подразбиране компютърните обекти на домейн контролера се намират в OU=Domain Controllers
организационната единица):
LDAP://xxx.xxx.xxx.xxx/CN=DomainControllerName,OU=Domain Controllers,DC=domainName,DC=com
person
Hans
schedule
06.05.2012