[VB] Openen bestand op remote systeem

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • LordSpud
  • Registratie: April 2008
  • Laatst online: 04-05 10:49
Volgens mij heb ik een simpel probleem maar bij het zoeken op google en fora krijg ik nog geen antwoord op mijn vraag. Ik heb een eenvoudig script dat een bestand in moet lezen. Hieronder de code waarbij servernaam en locatie gefingeerd zijn en nog even met echo'tjes wordt gelogd (+lelijke hard gecodeerde rommel):

VBScript:
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
logFile = "\\hostname\\c$\\tmp\\server.log"     
Wscript.Echo "Checking logfile: " & logFile 
Set objFSO = CreateObject("Scripting.FileSystemObject")     
If objFSO.FileExists(logFile) Then
    ' Check the contents of the file. If an error exists, investigation is necessary.       
    Set objTextFile = objFSO.GetFile(logFile)
    Set objTextFile = objFSO.OpenTextFile(logFile, 1)
    errorLine = ""
    errorCount = 0
    Do While NOT objTextFile.AtEndOfStream
        strCLine = objTextFile.ReadLine         
        If InStr(strCLine, "ORA-") > 0 Then
            errorLine = strCLine
            errorCount = errorCount + 1
        End If  
    Loop
    objTextFile.Close
    If errorLine = "" Then
        Wscript.Echo "There is no error in the logfile"         
    Else
        If errorCount > 1 Then
            Wscript.Echo "Multiple errors exist in the logfile (" &errorCount& "). The last error is: " & errorLine
        Else
            Wscript.Echo "An error exists in the logfile: " & errorLine
        End If
    End If
Else
    Wscript.Echo "There is no logfile available. Please investigate."
End If

' Cleanup code
Set objFSO = Nothing
Set objTextFile = Nothing


De "FileExists" check in regel 4 faalt, volgens mij omdat dit script geen rechten heeft op het filesysteem van de doelserver. Als ik zelf eerst de verkenner open naar dezelfde locatie, moet ik namelijk inloggen met een gebruikersnaam en wachtwoord. Nadat ik dat gedaan heb, loopt het script wel door zoals verwacht.

Vraag:
is er een mogelijkheid om via het script remote in te loggen, te "impersonaten" (nieuw Nederlands woord, afgeleidt uit "to impersonate" in het Engels :-)) of op een andere manier toch rechten te krijgen?

Overige info:

De bronserver is een Windows 2003 server, de doelserver is een Windows 2000 server. Wellicht belangrijk i.v.m. autorisatie mechanismen.

PS.: een oplossing zou kunnen zijn om een share aan te maken en de gebruiker rechten op de share te geven. Dat wil ik echter liever niet, ik wil via //servernaam/[driveletter]$ naar de doelserver navigeren.

[ Voor 4% gewijzigd door LordSpud op 06-03-2009 16:48 ]


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Draai de executable (met "run as...") gewoon onder de juiste account :?

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Of maak gebruik van http://msdn.microsoft.com/en-us/library/aa378184(VS.85).aspx, maar dan moeten de computers wel in hetzelfde domein zitten.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • 0 Henk 'm!

  • danslo
  • Registratie: Januari 2003
  • Nu online
Woy schreef op vrijdag 06 maart 2009 @ 16:54:
Of maak gebruik van http://msdn.microsoft.com/en-us/library/aa378184(VS.85).aspx, maar dan moeten de computers wel in hetzelfde domein zitten.
Waarom moeten die in hetzelfde domein zitten dan? Je kan blijkbaar zelfs op twee manieren het domein opgeven.
lpszUsername [in]

A pointer to a null-terminated string that specifies the name of the user. This is the name of the user account to log on to. If you use the user principal name (UPN) format, user@DNS_domain_name, the lpszDomain parameter must be NULL.


lpszDomain [in, optional]

A pointer to a null-terminated string that specifies the name of the domain or server whose account database contains the lpszUsername account. If this parameter is NULL, the user name must be specified in UPN format. If this parameter is ".", the function validates the account by using only the local account database.

Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
cls schreef op vrijdag 06 maart 2009 @ 17:07:
[...]
Waarom moeten die in hetzelfde domein zitten dan? Je kan blijkbaar zelfs op twee manieren het domein opgeven.
[...]
Omdat ik bij de functie het volgende lees
The LogonUser function attempts to log a user on to the local computer. The local computer is the computer from which LogonUser was called. You cannot use LogonUser to log on to a remote computer
Daaruit maak ik op dat je computer minstens in het domain moet zitten, omdat je anders niet in kan loggen.

De andere computer moet logischer wijs ook in het domain zitten omdat je anders natuurlijk geen rechten hebt op die computer.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • 0 Henk 'm!

  • danslo
  • Registratie: Januari 2003
  • Nu online
Zal ik wel gek zijn...

edit: Bleek ook wel te zijn :P

[ Voor 72% gewijzigd door danslo op 06-03-2009 20:06 ]


Acties:
  • 0 Henk 'm!

  • LordSpud
  • Registratie: April 2008
  • Laatst online: 04-05 10:49
RobIII schreef op vrijdag 06 maart 2009 @ 16:52:
Draai de executable (met "run as...") gewoon onder de juiste account :?
Zou een oplossing kunnen zijn, het script draait echter in "What's Up Gold". Hier kun je wel credentials opgeven waaronder het script moet draaien maar die credentials zijn voor WMI. Met WMI kan ik voor zover ik weet niet de inhoud van het bestand lezen, alleen kijken of het bestand bestaat en welke attributen er aan het bestand gekoppeld zijn.
Woy schreef op vrijdag 06 maart 2009 @ 16:54:
Of maak gebruik van http://msdn.microsoft.com/en-us/library/aa378184(VS.85).aspx, maar dan moeten de computers wel in hetzelfde domein zitten.
Dat ziet er goed uit! Ga ik maandag proberen (zit nu niet meer op het werk).

Bedankt zover!
Pagina: 1