03. november 2004 - 18:23Der er
13 kommentarer og 1 løsning
SQL execute en vbs fil på ander server
Jeg har en vbs fil på min webserver, medens min sql kører på en anden server. Mit problem er at jeg vil execute vbs filen på webserveren (f:< drevet) fra sqlserveren. Der er ikke galt med rettighederne, ej heller filen. Filen generer statiske html filer på webserveren, og vbs filens destinations path er også i orden. Jeg har prøvet med master..xp_cmdshell 'F:\minfil.vbs',no_output men den giver intet resultat (filerne bliver ikke opdateret), og sql'eren giver ingen fejlmelding.
Du kan ikke lave en remote execute via CMDSHELL (scriptet bliver afviklet i context af den server der starter det - det svarer til at du kører et program på en netshare. Det er stadig din maskine der kører programmet ikke serveren der har netsharen).
Det du kan gøre er, at du kan redirecte output ved at lave en share på den remote server og sætte stien for dine statiske filer til at pege der.
hvis du har rettighed til det, kan du jo bare lave et remotejob fra sqlserveren på websereveren, så bliver scriptet kørt som ønsket på webserveren. Det kræver bare du lægger en lille vbs fil på sqlservern med kaldet i.
'navnet på computeren som du ønsker at starte strComputer = "WEBSERVER" Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2:Win32_Process")
' Error = objWMIService.Create("C:\web\test.vbs", null, null, intProcessID) If Error = 0 Then 'Wscript.Echo "Programmet blev startet med følgende procesid "& intProcessID & "." Else 'Wscript.Echo "Programmet kunne ikke startes. Der opstod en fejl: " & Error & "." End If
Check lige hvem du har givet rettigheder til at udføre xp kommandoer samt starte jobs på din sql server. Alle disse vil også "arve" rettigheder til at udføre remote execute mod din secondære server.
Jeg får denne fejl: Programmet kunne ikke startes. Der opstod en fejl: 9.
Koden: 'navnet på computeren som du ønsker at starte strRemoteServer = "webserver" Set objWMIService = GetObject("winmgmts:\\" & strRemoteServer & "\root\cimv2:Win32_Process")
Error = objWMIService.Create("G:\NEWupdateMenu_for_anonomous_user.vbs", null, null,intProcessID) If Error = 0 Then Wscript.Echo "Programmet blev startet med følgende procesid "& intProcessID & "." Else Wscript.Echo "Programmet kunne ikke startes. Der opstod en fejl: " & Error & "." End If
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.