Hi Leute
Ich möchte gerne die Shares eines beliebigen Computers im Netzwerk ermitteln, auch wenn dieser sich nicht in meiner Arbeitsgruppe.
Bisher habe ich das über WMI folgendermassen gelöst:
public string[] Shares {
get {
List<string> shares = new List<string>();
ManagementScope scope = new ManagementScope("\\\\" + Name + "\\root\\cimv2");
scope.Options.Username = Username;
scope.Options.Password = Password;
try {
scope.Connect();
ObjectQuery q = new ObjectQuery("SELECT * FROM Win32_Share");
ManagementObjectSearcher qs = new ManagementObjectSearcher(scope, q);
foreach (ManagementObject share in qs.Get()) {
if (!share["Name"].ToString().EndsWith("$")) {
shares.Add(share["Name"].ToString());
}
}
return shares.ToArray();
} catch {
return null;
}
}
}
Allerdings hat dieser Code ein Problem Shares Arbeitsgruppen übergreifend zurückzugeben.
Jemand ne Idee?
Vielen Dank für eure Hilfe!
Grüsse Patrik
UPDATE:
Ist es vielleicht möglich NET VIEW so auszuführen, dass man das Resultat auch gebrauchen kann?
Ich weiss wie man das Resultat einer Konsolenanwendung ausliest, jedoch sieht es für mich so au, als könnte man die NET VIEW nicht eindeutig parsen...