Avatar billede dollas Nybegynder
06. juli 2004 - 22:08 Der er 17 kommentarer og
1 løsning

fil fra anden computer

Hejsa.

Jeg har en server med netbios navn "server" og ip "192.168.1.110"

Jeg har så lavet et vb program der skal hente en log fil fra maskinen, og det går også fint, hvis jeg før jeg køre mit program har været inde på \\server\c$ og indtastet brugernavn og password.

Hvordan udføre jeg et login på den maskine fra mit vb code?
Avatar billede joern Nybegynder
06. juli 2004 - 22:35 #1
Hej.

Jeg har selv engang søgt en løsning på dette spørgsmål - uden held.

Du må lave mappen hvor logfilen ligger være delt og så ved åbning af din PC køre et script, der giver adgang til pågældende mappe.

Noget med:

netuse [drevbogstav: | *] \\[computernavn] \ [sharenavn] [adgangskode]

* er et ledigt drevbogstav.

Jeg har forsøgt, men endte med at mappen jeg ønskede adgang til måtte deles uden password.

M.v.h.  Jørn
Avatar billede dollas Nybegynder
06. juli 2004 - 22:39 #2
hmmm...

Jeg kender nogle applicationer der gør det samme, altså hvor man indtaster brugernavn og password, og så fungere det. f.eks COmpuwares QA manager...

Det må sku ku lade sig gøre...
Avatar billede majsmarken Nybegynder
06. juli 2004 - 22:50 #3
... med på en lytter... Det ka' jeg måske også bruge...
Avatar billede joern Nybegynder
06. juli 2004 - 22:54 #4
Hej.

En lille rettelse:  'Net use' skal være i 2 ord.  Prøv at kigge i on-line hjælpen på dit system efter: net use    Jeg bruger win2000 Pro, og dér står en hel del.  Jeg kan dog ikke afprøve det her, jeg har ikke server, kun en arbejdsgruppe.

M.v.h.  Jørn
Avatar billede dollas Nybegynder
06. juli 2004 - 22:56 #5
jeg er med på net use, men det er jo en util for sig selv... Så skulle jeg køre den af fra mit program?

Kan man så godt læse error codes på det, så hvis nu man vil lave en test forbindelses knap?
Avatar billede joern Nybegynder
06. juli 2004 - 23:07 #6
Hej.

jeg ville anbefale at du kører net use når du tænder den PC hvor dit VB program afvikles.  Så er drevet (til log-filens mappe) altid til rådighed.

Formentlig kan man køre 'net use' under en shell-kommando, men kan du ikke det, kan du skrive 'net use' ind i en batch-fil og køre batch-filen under en shell.

M.v.h.  Jørn
Avatar billede joern Nybegynder
06. juli 2004 - 23:09 #7
Hej igen.

Ja, du kan have "On error goto fejlnetuse"    ' eller andet label navn
foran din shell-kommando.
Under labelen kan du teste på error-number og give relevant message.

M.v.h. Jørn
Avatar billede biohazard_666 Nybegynder
06. juli 2004 - 23:19 #8
Hejsa..
Jeg har et program til at mappe/un-mappe net dreve med.. Kan være det kan bruges?? Der kan man oz bruge user & pass i...

Det skal lige siger det er sjh der har lavet det og ikke mig :)

/Bio
Avatar billede dollas Nybegynder
06. juli 2004 - 23:21 #9
Har du sourcen til den?
Avatar billede dollas Nybegynder
06. juli 2004 - 23:21 #10
Ups, det er biohazard_666 jeg taler til =
Avatar billede biohazard_666 Nybegynder
07. juli 2004 - 00:21 #11
ja det har jeg :) har du en mail/msn jeg kan sende den til??
Avatar billede vbcoder Nybegynder
07. juli 2004 - 08:09 #12
en anden mulighed er at oprette mappen som en ftp mappe.

du kan derefter bruge wininet.dll til at hente filen. som default er der anonym adgang men hvis der skal bruges user/pass så kan man også sende det
Avatar billede tubber Juniormester
07. juli 2004 - 11:16 #13
Du skal ha fat i noget adsi.....
Finder lige den nødvendige kode og vender retur :)
Avatar billede tubber Juniormester
07. juli 2004 - 11:20 #14
Det vil sige du skal nok ha installeret noget adsi på den maskine filerne skal køres fra for det kan lade sig gøre tror jeg.....

Og det ser ummiddelbart ud til at ADSI er på domain niveau.......sorry......var nok lige en tand for hurtig tror jeg.....men koden kommer alligevel....det kan jo være der er et klogt hovede der kan stykke noget sammen :)

'Dimensioning variables and objects
'Remember to use the Reference : Active DS Type Library
Option Explicit
Dim dso As IADsOpenDSObject
Dim domain As IADsDomain
Dim vUser As String
Dim vPass As String
Dim vDomain As String
'This button ends the application
Private Sub cmdClose_Click()
    Unload Me
    End
End Sub
'This button logs you on the domain
Private Sub cmdVerify_Click()
'If there is an error the errorhandler catches it
On Local Error GoTo ErrorHandler
    'The text fileds where you enter your info
    vUser = txtUser.Text
    vPass = txtPass.Text
    vDomain = txtDomain.Text
    'Tells that it is a WinNT domain
    Set dso = GetObject("WinNT:")
    'Gets the variables into the ADSI and contacts the Domain Controler
    Set domain = dso.OpenDSObject("WinNT://" & vDomain & "", "" & vUser & "", "" & vPass & "", ADS_SECURE_AUTHENTICATION)
Exit Sub

'The errorhandler catches an error and tells the user what the error is
ErrorHandler:
    If Err = -2147023570 Then MsgBox "Unknown User or Bad Password", , "Login Failure"
    If Err = -2147467259 Then MsgBox "Unknown Domain", , "Login Failure"
Exit Sub
End Sub
'When a field gets focus with all text is marked
Private Sub txtUser_GotFocus()
txtUser.SelStart = 0
txtUser.SelLength = Len(txtUser.Text)
End Sub
'When a field gets focus with all text is marked
Private Sub txtPass_GotFocus()
txtPass.SelStart = 0
txtPass.SelLength = Len(txtPass.Text)
End Sub
'When a field gets focus with all text is marked
Private Sub txtDomain_GotFocus()
txtDomain.SelStart = 0
txtDomain.SelLength = Len(txtDomain.Text)
End Sub
Avatar billede tubber Juniormester
07. juli 2004 - 11:21 #15
Det er fra en form skal den laves til automatisk så skal den lige justeres lidt....
Avatar billede dollas Nybegynder
07. juli 2004 - 11:27 #16
Hvad med det her:

Dim objFileSystem, objInputFile
        Dim strInputFile, inputData, strData
        Dim objLocator, objWMI

        Const OPEN_FILE_FOR_READING = 1

        objLocator = CreateObject("WbemScripting.SWbemLocator")
        objWMI = objLocator.ConnectServer("PCNAVN", "root\cimv2", "BRUGER", "PASSWORD")
        objWMI.Security_.ImpersonationLevel = 3 'Impersonate


        objFileSystem = CreateObject("Scripting.fileSystemObject")
        objInputFile = objFileSystem.OpenTextFile("\\server\c$\windows\actsetup.log", OPEN_FILE_FOR_READING)


        inputData = Split(objInputFile.ReadAll, vbNewLine)

        ' hver linie skrives som output på skærm
        For Each strData In inputData
            MsgBox(strData)
        Next

        objInputFile.Close()
        objFileSystem = Nothing


Det har jeg lige bakset sammen
Avatar billede tubber Juniormester
07. juli 2004 - 11:54 #17
Hvis det funker smidder du da selv lige et svar og tager dine points igen :)
Avatar billede dollas Nybegynder
07. juli 2004 - 11:57 #18
Det virker fint... Det var jo mere hvis der var ander der kunne bruge det.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester