Avatar billede connor Nybegynder
09. oktober 2004 - 18:35 Der er 12 kommentarer og
2 løsninger

Lille BAT-script til VBS

Hej
Jeg har et lille bat-script som jeg gerne vil have lavet til et VBS. Men hvordan gør jeg det?

Jeg har disse tre linjer... Først stoppes en servive. Så slettes den med instsrv.exe. Tilsidst bliver der holdt en pause på 1 sek før resten af mit script må gå videre...

net stop poweroff
instsrv.exe poweroff REMOVE
sleep.exe 1

Nogle som gider hjælpe lidt?
Avatar billede connor Nybegynder
09. oktober 2004 - 18:57 #1
jeg bruger bla en pause.exe, men hvis man kan holde en pause på 1 sek i vbs på en anden måde ville dette være rart :-)
Avatar billede maximus25 Nybegynder
09. oktober 2004 - 21:52 #2
Hejsa connor
Her er scriptet:

' her stopper vi en service

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colServiceList = objWMIService.ExecQuery("Associators of " _
  & "{Win32_Service.Name='NetDDE'} Where " _
        & "AssocClass=Win32_DependentService " & "Role=Antecedent" )
For each objService in colServiceList
    objService.StopService()
Next

' her teminerer vi en service

' VBScript source code
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcessList = objWMIService.ExecQuery _
("SELECT * FROM Win32_Process WHERE Name = 'iexplore.exe'")
For Each objProcess in colProcessList
objProcess.Terminate()
Next

' her venter vi

Wscript.Sleep 100


håber du kan bruge det:):)
Avatar billede connor Nybegynder
09. oktober 2004 - 23:53 #3
Tak for det... men jeg syntes ikke rigtig at det virker.
Jeg har en service som hedder: poweroff, men den bliver ikke lukket.
Har prøvet med:
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colServiceList = objWMIService.ExecQuery("Associators of " _
  & "{Win32_Service.Name='poweroff'} Where " _
        & "AssocClass=Win32_DependentService " & "Role=Antecedent" )
For each objService in colServiceList
    objService.StopService()
Next

Men den bliver ikke lukket ned :-(
Avatar billede maximus25 Nybegynder
10. oktober 2004 - 11:56 #4
ahhh...jeg tror kune du behøver at terminerer servicen...så brug det sidte jeg skrev:

' VBScript source code
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcessList = objWMIService.ExecQuery _
("SELECT * FROM Win32_Process WHERE Name = 'iexplore.exe'")
For Each objProcess in colProcessList
objProcess.Terminate()
Next

' her venter vi

Wscript.Sleep 100


er det bedre?
Avatar billede connor Nybegynder
10. oktober 2004 - 13:00 #5
hmmm, scriptet gør slet ikke noget... Servicen poweroff lukkes ikke ned, ej heller kommer der en fejl :(

Min bat-fil virker staig fint, men jeg ville jo gerne have vbs'en til at køre.
Jeg har erfaret at man er nød til først at stoppe en servive før man kan slette den og det er derfor jeg gør begge ting. Her er vbs-koden jeg har prøvet:

' her stopper vi en service

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colServiceList = objWMIService.ExecQuery("Associators of " _
  & "{Win32_Service.Name='poweroff'} Where " _
        & "AssocClass=Win32_DependentService " & "Role=Antecedent" )
For each objService in colServiceList
    objService.StopService()
Next

' her teminerer vi en service

' VBScript source code
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcessList = objWMIService.ExecQuery _
("SELECT * FROM Win32_Process WHERE Name = 'poweroff'")
For Each objProcess in colProcessList
objProcess.Terminate()
Next

' her venter vi

Wscript.Sleep 100

Service'en hedder poweroff (dens fil hedder poweroff.exe).
Når vbs koden er kørt kan servicen stadig ses i computeradministration under servises på ligefod med feks spooleren... Gør jeg noget galt?
Avatar billede connor Nybegynder
10. oktober 2004 - 13:33 #6
Ok, ny bliver service'en stoppet med denne:
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colServiceList = objWMIService.ExecQuery("Associators of " _
  & "{Win32_Service.Name='poweroff'} Where " _
        & "AssocClass=Win32_DependentService " & "Role=Antecedent" )
For each objService in colServiceList
    objService.StopService()
Next
'Wscript.Sleep 2000
Set colServiceList = objWMIService.ExecQuery _
        ("Select * from Win32_Service where Name='poweroff'")
For each objService in colServiceList
    errReturn = objService.StopService()
Next

Men jeg mangler stadig at slette/afinstalere den, men hvordan?
Avatar billede maximus25 Nybegynder
10. oktober 2004 - 13:36 #7
så skal du bare bruge denne:

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colListOfServices = objWMIService.ExecQuery _
    ("Select * from Win32_Service Where Name = 'poweroff'")
For Each objService in colListOfServices
    objService.StopService()
    objService.Delete()
Next


:):)
Avatar billede connor Nybegynder
10. oktober 2004 - 14:28 #8
Takker det hjalp :-))

Hvad nu hvis jeg gerne vil instalere en service igen?
Jeg bruger pt denne i en bat-fil:
C:\poweroff\poweroff poweroff -warn -warntime 120 -msg "PC'en bliver slukket om to minutter\nHusk at gemme dit arbejde!\n\n\nDu kan annulere nedlukningen ved at trykke CANCEL" -force -scheduled -time 12:25 -days m,t,w,th,f,s,su -create_service

programmet poweroff med dens parametre instalere selv en service... jeg har prøvet med:
Set shell = WScript.CreateObject("wscript.shell")
shell.run "C:\poweroff\poweroff poweroff -warn -warntime 120 -msg "PC'en bliver slukket om to minutter\nHusk at gemme dit arbejde!\n\n\nDu kan annulere nedlukningen ved at trykke CANCEL" -force -scheduled -time 12:25 -days m,t,w,th,f,s,su -create_service"

Men der kommer en fejl:
Slut på sætning var ventet... gør jeg noget galt?
Avatar billede maximus25 Nybegynder
10. oktober 2004 - 14:47 #9
jamen så gør du sådan her:

Const OWN_PROCESS = 16
Const NOT_INTERACTIVE = False
Const NORMAL_ERROR_CONTROL = 2
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set objService = objWMIService.Get("Win32_BaseService")
errReturn = objService.Create("DbService" ,"Personnel Database" , _
    "c:\windows\system32\db.exe", OWN_PROCESS, NORMAL_ERROR_CONTROL, "Manual", _
        NOT_INTERACTIVE, "NT AUTHORITY\LocalService", ""  )
Wscript.Echo errReturn
Avatar billede connor Nybegynder
10. oktober 2004 - 15:03 #10
Men programmet poweroff.exe med parametrene opretter selv en service. Kan jeg ikke bare starte det?

Parametrene skal med idet de angiver hvad service'en/programmet skal gøre...
Avatar billede maximus25 Nybegynder
10. oktober 2004 - 15:30 #11
prøv dette:

Set shell = WScript.CreateObject("wscript.shell")
shell.run "C:\poweroff\poweroff poweroff -warn -warntime 120 -force -scheduled -time 12:25 -days m,t,w,th,f,s,su

-create_service"



text = ""
text = text & "PC'en bliver slukket om to minutter\nHusk at gemme dit arbejde!\n\n\nDu kan annulere nedlukningen ved at

trykke CANCEL" & vbCRLF 

msgbox text
Avatar billede maximus25 Nybegynder
11. oktober 2004 - 11:33 #12
kunne du bruge det?
Avatar billede maximus25 Nybegynder
17. oktober 2004 - 09:51 #13
fik du det til at virke??
Avatar billede connor Nybegynder
20. oktober 2004 - 08:48 #14
Sorry kom væk fra det og glemte det så :-(

Nej jeg fik det ikke helt til at virke, men du hjalp mig godt på vej... Tal for hjælpen
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