Avatar billede arved Nybegynder
24. oktober 2003 - 04:50 Der er 6 kommentarer og
1 løsning

Start af bat file i VB.net service

Jeg sidder og programmerer et program som en Windows service i vb.net, under test (dvs. ikke som et service program) virkede alt fint!
De der skal ske er at mit program skal eksekverer en bat fil, (som starter et program der generere en fil mm.) men når jeg kører services sker der ikke en **** efter nogle test fandt jeg ud af hvis jeg henter output fra den process jeg starter, så er output stien til bat filen, jeg kan ikke lige finde ud af hvad der foregår!

Koden:
Dim p As New Process

With p.StartInfo
    .UseShellExecute = True
    .FileName = "C:\sa\sa.bat"
    .WorkingDirectory = ""
    .Arguments = ""
    .RedirectStandardOutput = False
End With

' Execute the process
If p.Start() Then
    myDebug.WriteLine(" Started")
    p.WaitForExit()
    'Dim outfile2 As New System.IO.StreamWriter("C:\OUTPUT.TXT", False)
    'p.WaitForExit()
    'outfile2.Write(p.StandardOutput.ReadToEnd)
    'outfile2.Close()

    Dim infile As New System.IO.StreamReader("C:\sa\Tmp\Report.txt")
    data = infile.ReadToEnd()
    infile.Close()
End If
Avatar billede oswald Nybegynder
24. oktober 2003 - 16:34 #1
Jeg har lavet noget lignende og fået det til at fungerer, så det kan lade sig gøre ;).
Det som drillede mig var at rettighederne jo skifter da en service som standart kører som "localadmin" og ikke som dig.
En anden ting som kan drille er at applikations stigen skifter fra den mappe som programmet ligger til system32 mappen.

Håder jeg har givet det nogle ledetråde til hvad dit problem er.

Oswald
Avatar billede arved Nybegynder
24. oktober 2003 - 18:59 #2
Jeg har nu prøvet at ændre så servicen kører som ,ig, og så virker det faktisk, nogen idéer til hvordan jeg gør så det kan køre som en normal service (dvs. som SYSTEM) det er ikke en holdbar løsning at køre som mig (med admin rettigheder)
Avatar billede arved Nybegynder
24. oktober 2003 - 19:00 #3
ig = mig
Avatar billede oswald Nybegynder
27. oktober 2003 - 16:17 #4
Dit script gør noget som localadmin ikke har lov til, så som at eksekverer filer i en given mappe eller tilgå recourser på netværket eller internettet. (Det virker underligt, men localadmin har ikke lov til alt).
Der er to måder at omgå dette. Du kan enten ændre localadmin rettighederne eller (Hvad der nok er bedst) oprette en ny bruger der har de rette rettigheder og kører som denne.
Den bedste måde at tracke problemerne på er at lave en ny bruger med så få rettigheder som muligt.
Dernæst kører du programmet som brugeren, tracke fejlene og give modsvarende rettigheder, indtil programmet fungerer.
Avatar billede arved Nybegynder
28. oktober 2003 - 20:02 #5
Godt så, det med at give localadmin rettigheder lyder som en god ide, men hvordan gør jeg det? I oversigten over brugere hvor iisguest og alle de andre er kan jeg ikke se localadmin, hvordan giver jeg den så rettigheder?
Avatar billede arved Nybegynder
10. november 2003 - 10:38 #6
ups glemte at lukke, oswald du får selvfølgelig pointene... (min fejl)
Avatar billede oswald Nybegynder
18. november 2003 - 23:44 #7
Sorry jeg ikke lige har vendt tilbage, men jeg har haft lidt (Læs meget) travlt.

Du burde stadig overveje at kører servicen som en anden bruger da der er mange andre ting der benytter localadmin. Du piller reelt ved nogle ret centrale dele af systemet når du rør ved localadmin og du risikerer at åbne op for en del sikkerheds problemer.

Med hensyn til hvordan du gør så varierer det utroligt meget fra system til system, og det er et helt kapittel for sig. Desværre er det et kapittel jeg ikke kender særligt godt, så jeg kan ikke hjælpe dig ret meget mere end at sige at på min xp ligger brugerstyringen under 'kontrolpanel' -> 'administration' -> 'lokal sikkerhedspolitik'

Oswald
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