Monday 23 April 2018

Listing shares on a Computer with C#

Listing shares on a Computer with C#

I was trying to search for info on how to do this and came up with this . It uses a couple of classes .
First off we need to use the System.management namespace to retrieve these classes . So if your building a project make sure you add this namespace and also have a using statement .
using System.management;
The classes that are used are :
ManagementPath
ConnectionOptions
ManagementClass
Management Scope
ManagementObjectCollection
Here is the whole piece of code :

try
  {
  //New instance of the management path so we can use its properties
  ManagementPath path = new ManagementPath();

//Set the Servername
  path.Server = ServerName;

//Set the WMI namespace
  path.NamespacePath = @"root\cimv2";

//Here we are using the default connections but we can also use different.
  //Username and password if we need to.
  ConnectionOptions oConn = new ConnectionOptions();

//Set the Scope ...Computername and WMI namespace
  ManagementScope scope = new ManagementScope(path, oConn);

//Set the WMI Class
  path.RelativePath = "Win32_Share";
//Set shares to null
  ManagementClass Shares = null;
//Here we are connecting using the Servername and WMI Namespace/Class
  using (Shares = new ManagementClass(scope, path, null))
  {
  //Return a collection of Shares here
  ManagementObjectCollection moc = Shares.GetInstances();
//Go thru each share and display its name property in the list box.
  foreach (ManagementObject mo in moc)
  {
  lstShares.Items.Add(mo["Name"]);
  }
  }
  }
catch (Exception) //catch any exceptions we might have .
  {
  MessageBox.Show("Unable to return sharenames . Please make share Servername is correct.");
  }
  }

I will explain more in a later Blog . Busy Day . This basically will return all shares (even Hidden Shares ) of a computer/Server. You can see that I'm putting the result in a listbox called lstShares.

No comments:

Post a Comment

Note: only a member of this blog may post a comment.