//
// Copyright (c) 2002
// Ronald Kevin Burton
//
// Z poniższym kodem nie jest związana żadna gwarancja poprawności działania.
// Program został dołączony do książki ".NET CLR. Księga eksperta" w celu
// ilustracji koncepcji i zasad przedstawionych w tej książce. Program może być 
// używany na własne ryzyko.
//
// Przyznaje się prawo do użycia lub kopiowania tego oprogramowania do dowolnego celu
// bez konieczności ponoszenia żadnych opłat pod warunkiem, że powyższe uwagi zostaną 
// zachowane we wszystkich kopiach. Przyznaje się także prawo do modyfikacji kodu
// i dystrybucji zmodyfikowanego kodu pod warunkiem zachowania powyższych uwag
// oraz dołączenia informacji mówiącej o modyfikacji kodu.
//
//
using System;
using System.DirectoryServices;

public class ADRead 
{
	public static void Main(String[] args) 
	{
		if(args.Length!=1) 
		{
			Console.WriteLine("Użycie: " + Environment.GetCommandLineArgs()[0] + " <ad_path>");
			Console.WriteLine ();
			Console.WriteLine ("Wciśnij Enter, aby kontynuować...");
			Console.ReadLine();
			return;
		}

		DirectoryEntry objDirEnt=new DirectoryEntry(args[0]);
		Console.WriteLine("Nazwa           = " + objDirEnt.Name);
		Console.WriteLine("Ścieżka         = " + objDirEnt.Path);
		Console.WriteLine("SchemaClassName = " + objDirEnt.SchemaClassName);
		Console.WriteLine("");
		Console.WriteLine("Właściwości:");

		foreach(String Key in objDirEnt.Properties.PropertyNames) 
		{
			Console.Write("\t{0} = ", Key);
			Console.WriteLine("");
			foreach(Object objValue in objDirEnt.Properties[Key]) 
			{
				Console.WriteLine("\t\t{0}", objValue);
			}
		}
	}
}