using System.Management;
private void
BtnListaCartelleCondivise_Click(object sender,
EventArgs e)
{
try
{
//Oggetto per la gestione della macchina locale
ManagementScope locale = new ManagementScope("\\\\.\\root\\cimv2");
locale.Connect();
//Oggetto che rileva le varie cartelle condivise
ObjectQuery queryCartelleCondiviseDatrovare = new ObjectQuery("SELECT
* FROM Win32_Share");
ManagementObjectSearcher ricerca = new ManagementObjectSearcher(locale, queryCartelleCondiviseDatrovare);
//Ottiene tutte le cartelle condivise
ManagementObjectCollection cartelleTrovate = ricerca.Get();
string cartelleCondivise = "";
//Ciclo per i vari oggetti
foreach (ManagementObject share in cartelleTrovate)
{
//Non tengo conto delle unità (per esempio C$, D$,
IPC$)
if (!share["Name"].ToString().EndsWith("$"))
{
cartelleCondivise += share["Name"] + "\n";
cartelleCondivise += $" Nome: {share["Name"]} " + "\n";
cartelleCondivise += $" Descrizione: {share["Description"]}" + "\n";
}
}
//libero la memoria
cartelleTrovate.Dispose();
ricerca.Dispose();
MessageBox.Show(cartelleCondivise);
}
catch (ManagementException ex)
{
Console.WriteLine($"Si
è verificato il seguente errore: {ex.Message}");
}
catch (System.UnauthorizedAccessException)
{
Console.WriteLine("Accesso negato. Avviare con il ruolo di
amministratore.");
}
}
Nessun commento:
Posta un commento