Advertisement
Guest User

C# NetShares via net view (cmd)

a guest
Mar 7th, 2023
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.41 KB | Source Code | 0 0
  1. // kleine und schnelle Notlösung als Basis, kein Anspruch auf Vollständigkeit oder Professionalität!
  2. // ...hilft aber dem ein oder anderen vielleicht :-)
  3.  
  4. public class NetShareModel
  5.     {
  6.         private string ServerUNC { get; set; }
  7.         private List<NetShareItem> Items { get; set; }
  8.  
  9.  
  10.         public NetShareModel() => Items = new List<NetShareItem>();
  11.         public NetShareModel(string server)
  12.         {
  13.             ServerUNC = server;
  14.  
  15.             if (ServerUNC.Substring(0,2) != @"\\")
  16.                 ServerUNC = @"\\" + ServerUNC;
  17.  
  18.             Items = new List<NetShareItem>();
  19.             
  20.             ReadNetShareItems();
  21.             return;
  22.         }
  23.  
  24.  
  25.         public void ReadNetShareItems()
  26.         {
  27.             Process p = Process.Start(new ProcessStartInfo
  28.             {
  29.                 FileName = "cmd.exe"
  30.                 , Arguments = $@"/c C:\Windows\Sysnative\net view {ServerUNC}"
  31.                 , CreateNoWindow = true
  32.                 , UseShellExecute = false
  33.                 , RedirectStandardOutput = true
  34.             });
  35.  
  36.             while (!p.StandardOutput.EndOfStream)
  37.             {
  38.                 string line = p.StandardOutput.ReadLine();
  39.  
  40.                 if (line.Length < 42)
  41.                     continue;
  42.  
  43.                 NetShareItem item = new NetShareItem
  44.                 {
  45.                     Name = line.Substring(0, 18).Trim()
  46.                     , Type = line.Substring(18, 9).Trim()
  47.                     , UsedAs = line.Substring(27, 15).Trim()
  48.                     , Comment = line.Substring(42).Trim()
  49.                 };
  50.  
  51.                 if (!new string[] {"---------", "Typ"}.Contains(item.Type))
  52.                     Items.Add(item);
  53.             }
  54.         }
  55.  
  56.         public List<NetShareItem> GetShares() => Items;
  57.     }
  58.  
  59.  
  60.  
  61.     public class NetShareItem
  62.     {
  63.         public string Name { get; set; }
  64.         public string Type { get; set; }
  65.         public string UsedAs { get; set; }
  66.         public string Comment { get; set; }
  67.     }
  68.  
  69. // using:
  70. NetShareModel shares = new NetShareModel("servername");
  71. List<NetShareItem> items = shares.GetShares();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement