Liste aller Codebeispiele
Ein Beispiel zum Einsatz der Klasse System.System.IO aus der .NET-Klassenbibliothek.
Autor: Dr. Holger Schwichtenberg
Beschreibung
Das Anlegen einer Freigabe ist eine aufwendigere Angelegenheit – zumindest dann, wenn man auch die Zugriffsrechteliste setzen will. Leider kann man hier nicht auf die .NET-Klassen für die Berechtigungsvergabe zurückgreifen, sondern muss entsprechende WMI-Klassen verwenden.
Dies ist ein Script, bei dem die Berechtigungen nicht explizit gesetzt werden. Die Freigabe erhält dadurch die Standardrechte (Vollzugriff für jedermann). Zum Anlegen der Freigabe wird die statische Methode Create() der Klasse Win32_Share aufgerufen. Für AccessMask wird dabei $null übergeben. Das Script prüft beim Start, ob es die Freigabe schon gibt, und löscht diese gegebenenfalls, damit eine Neuanlage möglich ist.
Programmcodebeispiele Windows PowerShell-Pipeline
###########################################
# New-Share (without Permissions)
# (C) Dr. Holger Schwichtenberg
###########################################
# Parameters
$Computer = "."
$ShareName = "Kunden"
$Pfad = "g:\Daten\Kunden"
$Comment = "Alle unsere Kundenkorrespondenz"
# before
"Vorher:"
Get-WmiObject Win32_Share -Filter "Name='$ShareName'"
get-WmiObject Win32_Share -Filter "Name='$ShareName'" | foreach-object { $_.Delete() }
# Win32_Share
$MC = [WMIClass] "ROOT\CIMV2:Win32_Share"
$Access = $Null
$R = $mc.Create($pfad, $Sharename, 0, 10, $Description, "", $Access)
if ( $R.ReturnValue -ne 0) { Write-Error "Fehler beim Anlegen: "+ $R.ReturnValue; Exit}
"Freigabe wurde angelegt!"
# after
"Nachher:"
get-WmiObject Win32_Share -Filter "Name='$ShareName'"
Programmcodebeispiele
Dieses Codebeispiel in anderen Sprachen (noch) nicht verfügbar.
Hinweise
Ausgaben werden in den Beispielen durch Hilfsroutinen wie out() und
PrintOut() erzeugt. Diese sind hier nicht angegeben, da deren Implementierung
von der jeweiligen Umgebung abhängt. Für Konsolenanwendungen können hier z.B.
Console.WriteLine() einsetzen.
Querverweise
Definition '.NET Framework Class Library'
Verfügbarkeit der Klasse 'System'
Übersicht über den FCL-Namensraum 'System'
Portal dotnetframework.de
|
|