Leistungen
Leistungen
Überblick
Leistungsangebot
Kernkompetenzen
Schulungsthemen
In-House-Schulungen
Offene .NET-Seminare
Offene WPS-Seminare
Beratung
Coaching
Support
Softwareentwicklung
Entwickler-Vermittlung
.NET/Visual Studio
TFS/ALM/Scrum
Webprogrammierung
PowerShell
Konditionen
Anfrage/Kontakt
Beratung/Coaching
Beratung/Coaching
Beratungsthemen
Coaching
Unsere Berater
Referenzkunden
Konditionen
Angebotsanfrage
In-House-Schulungen
In-House-Schulungen
Überblick
Themen/Fachgebiete
Schulungskonfigurator
Konzepte
.NET/Visual Studio
C#
VB.NET
ASP.NET
Moderne Webanwendungen
TFS/ALM/Scrum
PowerShell
Konferenzvortraege
Referenzkunden
Unsere Trainer
Konditionen
Angebotsanfrage
Offene Schulungen
Offene Schulungen
Überblick .NET-Seminare
.NET/C#-Basisseminar
WPF (Desktop)
ASP.NET/AJAX (Web)
WCF/WF (SOA)
ADO.NET/EF (Data)
Windows PowerShell
.NET, C#, VB, Visual Studio
.NET, C#, VB, Visual Studio
Startseite
Beratung/Training
Offene .NET-Seminare
Einführung
Lexikon
Artikel
Bücher
Klassenreferenz
Programmiersprachen
Entwicklerwerkzeuge
Softwarekomponenten
World Wide Wings Demo
Codebeispiele
Scripting
ASP.NET
.NET 2.0
.NET 3.0/3.5
.NET 4.0/4.5
Community
Forum
Kommerzielle Leistungen
ASP.NET
ASP.NET
Startseite
Lexikon
Sicherheit
Konfiguration
Global.asax
Tracing
Technische Beiträge
Klassenreferenz
Programmiersprachen
Entwicklerwerkzeuge
Softwarekomponenten
PowerShell
PowerShell
Überblick
Beratung
In-House-Schulungen
Öffentliche Schulungen
Codebeispiele
Commandlet Extensions
Offene PowerShell-Seminare
Inhouse-Seminare
Windows
Windows
Startseite
Windows Runtime (WinRT)
Windows PowerShell
Windows Scripting
Windows-Schulungen
Windows-Lexikon
Windows-Forum
Windows Scripting
Windows Scripting
Startseite
Lexikon
FAQ
Buecher
Architektur
Skriptsprachen
Scripting-Hosts
Scripting-Komponenten
COM/DCOM/COM+
ADSI
WMI
Scripting-Tools
WSH-Editoren
Codebeispiele
ASP.NET
.NET-Scripting
Forum
Links
Kommerzielle Leistungen
Service
Service
Website-FAQ
Anmeldung/Login
Leser-Registrierung
Gast-Registrierung
Nachrichten/RSS
Newsletter
Foren
Weblog
Lexikon
Downloads
Support
Kontakt
Literaturtipps
Publikationen
Publikationen
Redaktionsbüro
Bücher
Fachartikel
Leser-Portal
Autoren gesucht!
Rezensionen
Über uns
Über uns
Holger Schwichtenberg
Team
Referenzkunden
Kundenaussagen
Referenzprojekte
Partner
Site Map
Weitere Websites
Tag Cloud
Impressum
Rechtliches

Liste der vorhandenen Freigaben auf einem Computer
Codebeispiel für Visual Basic .NET (VB.NET) und CSharp (C#)

Liste aller Codebeispiele

Liste der vorhandenen Freigaben auf einem Computer

Ein Beispiel zum Einsatz der Klasse System.DirectoryServices.DirectoryEntry aus der .NET-Klassenbibliothek.

Autor: Dr. Holger Schwichtenberg 

Beschreibung

Ein "Fileservice"-Objekt ist ein spezielles "Service"-Objekt, das einen Dienst zum Zugriff auf ein Dateisystem bereitstellt. Ein "Fileservice"-Objekt ist von dem allgemeinen "Service"-Objekt abgeleitet und erweitert dieses um einige Funktionalitäten, insbesondere um den Zugriff auf die verbundenen Benutzer (Sessions), die geöffneten Dateien (Resources) und die Freigabe (Fileshares).

Der Fileservice in Windows heißt "lanmanserver". Der Zugriff auf den NT-Fileservice erfolgt folgendermaßen: WinNT://computername/lanmanserver. Ein "Fileservice"-Objekt ist im Gegensatz zu einem "Service"-Objekt ein Container: Ein "Fileservice" kann "FileShare"-Objekte enthalten. Außerdem enthält ein "Fileservice"-Objekt zwei Collections:
- Sessions verweist auf die offenen Benutzersitzungen.
- Resources enthält die geöffneten Ressourcen.

Das klassische ADSI bietet dazu eine passende COM-Schnittstelle IADsFileService mit zwei untergeordneten Collections (siehe Tabelle).
Collection-Name Bedeutung Schnittstelle der Unterobjekte
Sessions Benutzersitzungen (mit einem Rechner verbundene Benutzer) IADsSession
Resources Auf einem Rechner geöffnete Dateien/Verzeichnisse IADsResource

Die außerdem vorhandene Schnittstelle IADsFileServiceOperations entspricht der Funktionalität der Schnittstelle IADsServiceOperations.

Freigaben verwalten


Ein "Fileshare"-Objekt repräsentiert eine Verzeichnisfreigabe. Der Zugriff auf diese Objekte erfolgt ausschließlich über den NT-Dienst "ntlanmanserver". Eine Freigabe ist direkt über einen ADSI-Pfad der Form WinNT://ComputerName /lanmanserver/Freigabename erreichbar.
Attribut Erläuterung
CurrentUserCount Anzahl der aktuell mit dieser Verzeichnisfreigabe verbundenen Benutzer

Description Textliche Beschreibung der Freigabe
HostComputer ADSI-Pfad des Computers, auf dem die Freigabe eingerichtet ist

Name Name der Verzeichnisfreigabe
Path Lokaler Pfad, auf den die Freigabe abgebildet wird
MaxUserCount Maximale Anzahl der Benutzer (-1 = unbestimmt)

Zum Auflisten der Freigaben ist die COM-Interoperabilität nicht notwendig, da einfach nur der Inhalt des Containers "lanmanserver" ausgegeben werden muss.

Mit ADSI können zwar die Freigaben aufgelistet sowie Freigaben erzeugt und gelöscht werden, aber die Rechte können nicht gesetzt werden. Das Erzeugen von Verzeichnisfreigaben und die Vergabe von Rechten ist möglich mit der Windows Management Instrumentation (WMI), also dem Namespace System.Management in der FCL.

Programmcodebeispiele Visual Basic .NET (VB.NET)

' ============================
' .NET-Code-Beispiel in Visual Basic .NET
' Auflisten der Freigaben
' (C) Holger@Schwichtenberg.de
' ============================
Sub WINNT_FREIGABEN()
Dim ofs As New _
DirectoryEntry("WinNT://mars/lanmanserver")
Dim c As DirectoryEntries
Dim oshare As DirectoryEntry

c = ofs.Children

For Each oshare In c
  say(getAtt(oshare, "Name") & " zeigt auf " & _
  getAtt(oshare, "Path"))
Next

End Sub

Programmcodebeispiele CSharp (C#)

using System;
using System.Collections;
using System.DirectoryServices;

namespace FCL_Buch._System_DirectoryServices {

  public class Samples_ADSI_WINNT {
public void WINNT_FREIGABEN() {

   // Auflisten der Freigaben
   DirectoryEntry ofs = new DirectoryEntry("WinNT://mars/lanmanserver");

   DirectoryEntries c = ofs.Children;

   foreach (DirectoryEntry oshare in c)
   FclOutput.PrintOut(ADSI_HelperMethods.GetAtt(oshare, "Name") + " zeigt auf " + ADSI_HelperMethods.GetAtt(oshare, "Path"));
   }
}
}

Querverweise

Definition '.NET Framework Class Library'
Verfügbarkeit der Klasse 'System.DirectoryServices'
Übersicht über den FCL-Namensraum 'System.DirectoryServices'
Portal dotnetframework.de