Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

[gelöst] Wie kann ich die IP-Adresse eines Logins auf dem Server herausfinden (VBS -> C#)?
Torni
myCSharp.de - Member



Dabei seit:
Beiträge: 43

Themenstarter:

[gelöst] Wie kann ich die IP-Adresse eines Logins auf dem Server herausfinden (VBS -> C#)?

beantworten | zitieren | melden

Hallo,

ich habe ein VBS mit nachfolgendem Inhalt, das ich über eine C#-Form-Anwendung aufrufe:

Dim oSession
 
Set fs = GetObject("WinNT://" & "SERVERNAME" & "/lanmanserver, FileService")
Set FSO = CreateObject("Scripting.FileSystemObject")
Set MyFile = FSO.OpenTextFile("IP_Liste.txt", 8)

For Each oSession In fs.Sessions
    On Error Resume Next
       If InStr(oSession.user, WScript.Arguments(0)) <> 0 Then 'userlogin übergeben
          MyFile.WriteLine (oSession.computer)
        End if
Next 
MyFile.Close

welchem ein loginname übergeben wird und das über das Object (fs) dessen IP-Adresse auf dem Server ausliest und in eine Datei hinzuspeichert.

Ich möchte gerne das VBS in c# implementieren, damit dies nicht mehr extern notwendig wird.
Leider scheitere ich an gerade allem und Google mag mich die Tage nicht..

Das Objekt holen klappt ja noch, wenn ich über hinzugefügten VB-Verweis gehe:

object ofs = Microsoft.VisualBasic.Interaction.GetObject(@"WinNT://" + "SERVERNAME" + "/lanmanserver, FileService");

Das weitere aber scheitert kläglich..zudem hat das erzeugte Objekt kein iEnum usw..

Hat da jmd Tipps??
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Torni am .
private Nachricht | Beiträge des Benutzers
Platoon
myCSharp.de - Member



Dabei seit:
Beiträge: 46
Herkunft: NRW

beantworten | zitieren | melden

Ohne jetzt direkt eine Antwort geben zu können - warum nutzt du nicht "nur" C#.
Das wäre doch deutlich charmanter als den Umweg über VBS zu gehen.

Funktioniert das Script ohne Probleme?
In was für einer Umgebung läuft das denn?
.....an unhandled exception is the first way to think about your pattern of programming....
.....nur weil ich nicht weiß was dort passiert, bedeutet es nicht, dass ich nicht weiß, wie man es lösen kann - aber das ist wahrscheinlich....
private Nachricht | Beiträge des Benutzers
Torni
myCSharp.de - Member



Dabei seit:
Beiträge: 43

Themenstarter:

beantworten | zitieren | melden

die Antwort ist leicht: weil ich absolut nicht weiß, wie ich das Skipt in c# umsetzen kann..

Ich sitze da schon tagelang dran und google mir die Finger wund..

Skript funzt einwandfrei und wird per


            Process scriptProc = new Process();
            scriptProc.StartInfo.CreateNoWindow = true;
            scriptProc.StartInfo.UseShellExecute = false;
            scriptProc.StartInfo.FileName = @"cscript";
            scriptProc.StartInfo.WorkingDirectory = Application.StartupPath + @"\Resources\";
            scriptProc.StartInfo.Arguments = "//Nologo getpc.vbs " + title;//Title ist der Übergabeparam
            scriptProc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; 
            scriptProc.Start();

aufgerufen
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Torni am .
private Nachricht | Beiträge des Benutzers
Torni
myCSharp.de - Member



Dabei seit:
Beiträge: 43

Themenstarter:

beantworten | zitieren | melden

OK,

nach langem Hin- und Her doch noch:


            DirectoryEntry fs = new DirectoryEntry("WinNT://SERVERNAME/lanmanserver,Fileservice");
            ActiveDs.IADsFileServiceOperations iads_fs = (ActiveDs.IADsFileServiceOperations)fs.NativeObject;
            foreach (ActiveDs.IADsSession oSession in iads_fs.Sessions())
            {
                    sdf.Add(oSession.User + ";" + oSession.Computer);
            }
private Nachricht | Beiträge des Benutzers