Gibt eine Server-Ressource frei
#include <NetShare.au3>
_Net_Share_ShareAdd ( $sServer, $sShare, $iType, $sResourcePath [, $sComment = "" [, $iMaxUses = -1]] )
| $sServer | Bestimmt die DNS oder den NetBIOS-Namen des Remote-Servers, auf welchem sich die auszuführende Funktion befindet. Falls dieser Parameter leer gelassen wird (""), wird der lokale Computer verwendet. |
| $sShare | Freigabename einer Ressource |
| $iType | Beinhaltet den Typ der freigegebenen Ressource. Kann eine Kombination der folgenden sein: $STYPE_DISKTREE - Laufwerk $STYPE_PRINTQ - Druckwarteschlange $STYPE_DEVICE - Gerät $STYPE_IPC - IPC $STYPE_SPECIAL - Spezielle Freigabe, die für IPC$ oder Remote-Administration des Servers reserviert ist $STYPE_TEMPORARY - Eine temporäre Freigabe |
| $sResourcePath | Lokaler Pfad für die freigegebene Ressource. Für Datenträger ist dies der Pfad, der freigegeben wird. Für Druckwarteschlangen ist das der Name der Druckwarteschlange, die freigegeben wird. |
| $sComment | [optional] String, der ein Kommentar über die freigegebene Ressource ist |
| $iMaxUses | [optional] Die höchste Anzahl der gleichzeitigen Verbindungen, welche die freigegebene Ressource annehmen kann. Die Anzahl der Verbindungen ist nicht limitiert, wenn der Wert auf -1 gesetzt wird. |
| Erfolg: | True |
| Fehler: | False |
Nur Administratoren, Serveroperatoren, Mitglieder der Gruppe "Power Users" oder jene mit der Gruppenmitgliedschaft "Serveroperatoren"
können mit dieser Funktion Dateifreigaben erfolgreich hinzufügen.
Der Druckeroperator kann Druckfreigaben hinzufügen.
_Net_Share_ShareCheck, _Net_Share_ShareDel
Suche nach NetApiBufferFree in der MSDN Bibliothek.
#include "Extras\HelpFileInternals.au3"
#include <GUIConstantsEx.au3>
#include <MsgBoxConstants.au3>
#include <NetShare.au3>
#include <WindowsStylesConstants.au3>
#RequireAdmin ; wird für _Net_Share_ShareAdd() benötigt, falls erforderlich
Example()
Func Example()
Local $iI, $aInfo
Local Const $sShareName = "AutoIt Share"
Local Const $sResourcePath = "C:\"
; Erstellt eine GUI
GUICreate("NetShare", 400, 300)
; Erstellt ein Memo Control
_MemoCreate(2, 2, 396, 296, $WS_VSCROLL)
GUISetState(@SW_SHOW)
Local $bShareAdded = False
; Prüfen, ob die Freigabe existiert
If _Net_Share_ShareCheck(@ComputerName, $sResourcePath) = -1 Then
; Eine Freigabe auf dem lokalen Computer erstellen
$bShareAdded = _Net_Share_ShareAdd(@ComputerName, $sShareName, 0, $sResourcePath, "AutoIt Share Comment")
If @error Then MsgBox($MB_SYSTEMMODAL, "Information", "Fehler beim Hinzufügen der Freigabe : " & @error)
_MemoWrite("Freigabe hinzugefügt")
Else
_MemoWrite("Freigabe existiert")
EndIf
; Listet Informationen über alle lokalen Freigaben auf
$aInfo = _Net_Share_ShareEnum(@ComputerName)
_MemoWrite("Einträge lesen ............: " & $aInfo[0][0])
For $iI = 1 To $aInfo[0][0]
_MemoWrite("Freigabename .............: " & $aInfo[$iI][0])
_MemoWrite("Freigabetyp...............: " & _Net_Share_ResourceStr($aInfo[$iI][1]))
_MemoWrite("Kommentar ................: " & $aInfo[$iI][2])
_MemoWrite("Benutzerrechte ...........: " & _Net_Share_PermStr($aInfo[$iI][3]))
_MemoWrite("Maximale Verbindungen ....: " & $aInfo[$iI][4])
_MemoWrite("Aktuelle Verbindungen ....: " & $aInfo[$iI][5])
_MemoWrite("Lokaler Pfad .............: " & $aInfo[$iI][6])
_MemoWrite("Passwort .................: " & $aInfo[$iI][7])
_MemoWrite()
Next
If $bShareAdded Then
; Freigabe entfernen
_Net_Share_ShareDel(@ComputerName, $sShareName)
If @error Then MsgBox($MB_SYSTEMMODAL, "Information", "Fehler beim Entfernen der Freigabe : " & @error)
_MemoWrite("Freigabe entfernt")
EndIf
; Die Schleife wiederholt sich, bis der Benutzer die Beenden-Aktion der GUI auslöst.
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
EndFunc ;==>Example