Windows C# Tutorial

using System;
using System.Management;
using System.Security;
public class RemoteConnect
{
    public static void Main()
    {
        SecureString pw = new SecureString();
        pw.AppendChar('a');
        pw.MakeReadOnly();
        ConnectionOptions options = new ConnectionOptions("MS_409", "userName", pw,"ntdlmdomain:DOMAIN",
            System.Management.ImpersonationLevel.Impersonate,
            System.Management.AuthenticationLevel.Default, true,
            null, System.TimeSpan.MaxValue);
        pw.Dispose();
        ManagementScope scope =new ManagementScope("\\\\FullComputerName\\root\\cimv2", options);scope.Connect();
        ObjectQuery query = new ObjectQuery("SELECT * FROM Win32_OperatingSystem");
        ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query);
        ManagementObjectCollection queryCollection = searcher.Get();
        foreach (ManagementObject m in queryCollection)
        {
            Console.WriteLine("Computer Name : {0}",m["csname"]);
            Console.WriteLine("Windows Directory : {0}",m["WindowsDirectory"]);
            Console.WriteLine("Operating System: {0}",m["Caption"]);
            Console.WriteLine("Version: {0}", m["Version"]);
            Console.WriteLine("Manufacturer : {0}",m["Manufacturer"]);
        }
    }
}