Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
Code Kitchen Allgemeines Coder-Forum rund um das Programmieren eigenständiger, ausführbarer Programme.

Eigene (Windows 7) Freigaben per vb.net auflisten

Diskussion: Eigene (Windows 7) Freigaben per vb.net auflisten im Forum Code Kitchen, in der Kategorie Software Home; Anzeige Hi zusammen Ich weiss es hat eigentlich keinen Nutzen, aber das müsst Ihr meinem Lehrer sagen Ich soll nämlich ...

Antwort
Alt 10.05.11, 11:50   #1 (permalink)
 
Registriert seit: 10.05.11
MSeiz5 Leistung: Facit NTK
Likes: 0
Standard Eigene (Windows 7) Freigaben per vb.net auflisten

Anzeige

Hi zusammen

Ich weiss es hat eigentlich keinen Nutzen, aber das müsst Ihr meinem Lehrer sagen
Ich soll nämlich eine kleine "Überwachungssoftware" für das eigene Netzwerk programmieren. Teilbestand dieser Aufgabe ist es, die vom eigenen PC freigegebenen Ordner durch vb.net aufzulisten. Es sollte anschliessend in die rot markierte Textbox eingefügt werden:



Also ist meine Frage, wie oder über was kann ich auf diese Ordner zugreifen?
In der Registry sind diese ja nicht gespeichert.


Freundliche Grüsse
MSeiz5

MSeiz5 ist offline   Mit Zitat antworten
Alt 10.05.11, 12:42   #2 (permalink)
Member of Honour
 
Benutzerbild von easteregg
 
Registriert seit: 14.09.07
easteregg Leistung: Pentium Ieasteregg Leistung: Pentium I
easteregg eine Nachricht über ICQ schicken
Likes: 62
Standard

von vb habsch kein dunst, aber du könntest theoretisch über den cmd befehl "net share" die freigaben auslesen und dann parsen.
__________________
» Flattr mich! - Wenn dir mein Beitrag geholfen hat! «
<| 2 AMD Opterons 2384@ 8x3,2ghz | Tyan S2915 | 10GB | 2x 8800GT | 8400GS | Dell 3008WFP + 2x2007FP |>
easteregg ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 10.05.11, 12:44   #3 (permalink)
Senior Member
 
Benutzerbild von lookshe
 
Registriert seit: 10.03.07
lookshe Leistung: 8086
Likes: 19
Standard

Also nach How to retrieve a list of shared folders shared using a script - Active Directory, Exchange, Microsoft Clustering, Scripting, MOM, SQL. steht es in der Registry. Auch unter Windows 7, habs grad extra geprüft.
Zudem findet sich auch ein einfaches Codebeispiel zum Auslesen der eigenen Freigaben schnell mit Google: Liste der vorhandenen Freigaben auf einem Computer: Codebeispiel für Visual Basic .NET (VB.NET) und CSharp (C#)

Also nächstes mal erst Suchen, dann fragen
lookshe ist offline   Mit Zitat antworten
Alt 10.05.11, 13:10   #4 (permalink)
Themenstarter
 
Registriert seit: 10.05.11
MSeiz5 Leistung: Facit NTK
Likes: 0
Standard

Vielen Dank erstmals für die schnellen Antworten.

@Easteregg
Dein Lösungsvorschlag werde ich am Schluss, wenn absolut nichts hilft einsetzen, da teilbestand der Aufgabe ist NUR mit vb.net zu arbeiten. Und nicht wie von dir vorgeschlagen Erebnisse von anderen (ausserhalb von vb.net) Befehlen auszuwerten und zu verwenden.

-> Sry, dass ich das nicht erwähnt habe

@lookshe
Ich bin einer der erst ne weile googelt oder den Lehrlingsausbildner fragt. (Er weiss viel )
Auf die Seite die Du mir geschickt hast bin ich auch schon gestossen. Bei dem Beispielcode ist das Problem, dass Visual Studio den Fehler bringt
HTML-Code:
"Der Typ "DirectoryEntry" ist nicht definiert"
Und ich habe auch schon versucht den Namespace System.DirectoryServices einzufügen, welcher bei mir aber nicht vorhanden ist oO. Auch selber eintragen nützt nichts.

Vielen Dank für die weitere Unterstützung / Tipps
MSeiz5
MSeiz5 ist offline   Mit Zitat antworten
Alt 10.05.11, 13:22   #5 (permalink)
Senior Member
 
Benutzerbild von lookshe
 
Registriert seit: 10.03.07
lookshe Leistung: 8086
Likes: 19
Standard

Da der Code letztendlich wohl nichts weiter macht, als die Registry auszuwerten, könntest du dies auch einfach selbst nachbauen. Unter HKLM\System\CurrentcontrolSet\Services\Lanmanserve r\Shares findest du alle Freigaben und musst nur noch deine gewünschten Einträge parsen.
lookshe ist offline   Mit Zitat antworten
Alt 10.05.11, 13:30   #6 (permalink)
Moderator
 
Benutzerbild von lightsaver
 
Registriert seit: 19.06.06
lightsaver Leistung: Pentium Ilightsaver Leistung: Pentium Ilightsaver Leistung: Pentium I
Likes: 51
Standard

Kannst du dazu vielleicht mal ein wenig Beispielcode geben? Meist liegt sowas nämlich eher an Fehlern beim Coden.

Ach und welche Version vom Framework verwendest du?
lightsaver ist offline   Mit Zitat antworten
Alt 10.05.11, 13:37   #7 (permalink)
Themenstarter
 
Registriert seit: 10.05.11
MSeiz5 Leistung: Facit NTK
Likes: 0
Standard

@lookshe
Ok dan werde ich mal versuchen das Ganze aus der Registy zu parsen.

Ps. Deine Tastatur hat nen Tippfehler gemacht

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\L anmanServer\Shares

@lightsaver
Den Code den ich gefunden habe ist von hier: Liste der vorhandenen Freigaben auf einem Computer: Codebeispiel für Visual Basic .NET (VB.NET) und CSharp (C#)
(Auch lookshe hat den bereits gepostet)

HTML-Code:
Dim ofs As New _
DirectoryEntry("PFAD ZU 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
Ich verwende hier .NET FRAMEWORK 4.0


Vielen Dank,

Mseiz5
MSeiz5 ist offline   Mit Zitat antworten
Alt 16.05.11, 10:25   #8 (permalink)
Themenstarter
 
Registriert seit: 10.05.11
MSeiz5 Leistung: Facit NTK
Likes: 0
Standard

So ich habe es noch hinbekommen.

Für das Anzeigen der Freigegebenen Ordner (ohne die Standardfreigaben) in VBS:

Code:
strComputer = "."

   Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
   Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_Share")
   
   For Each objItem In colItems
      if objItem.Type = 0 then
        strShare = strShare &  "Name: " & objItem.Name & vbCr
        strShare = strShare &  "Beschreibung: " & objItem.Description & vbCr
        strShare = strShare &  "Pfad: " & objItem.Path & vbCr & vbCr
      end if
   Next

   Set colItems = Nothing
   
WScript.Echo strShare
Und dasselbe umgeschrieben zu vb.net:

ACHTUNG: Der system.management muss noch hinzugefügt werden:

Code:
Dim strComputer As String = "."
Dim strShare As String = ""

Dim colItems As New ManagementObjectSearcher( _
    "\root\CIMV2", "SELECT * FROM Win32_Share")

For Each objItem As Object In colItems.Get()
    If objItem("Type") = "0" Then
        strShare = strShare & "Name: " & objItem("Name") & vbCrLf
                strShare = strShare & "Beschreibung: " & objItem("Description") & vbCrLf
                strShare = strShare & "Pfad: " & objItem("Path") & vbCrLf & vbCrLf
    End If

Next

colItems = Nothing

txtordner.Text = strShare
Freundliche Grüsse,
MSeiz5
MSeiz5 ist offline   Mit Zitat antworten
Antwort

Stichworte
freigaben, ordner, vb.net
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Software Home » Code Kitchen » Eigene (Windows 7) Freigaben per vb.net auflisten
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61