Avatar billede fedthans Nybegynder
17. april 2007 - 08:53 Der er 16 kommentarer og
2 løsninger

Printer script

Hej alle

Her er opgaven, (kan ikke selv har prøvet)

Jeg skal lave et vb script som start/stop service, og det skal være print spool servicen, som det første, det næste er at slette mappen C:\windows\system32\spool\drivers\ i den mappe ville jeg gerne have slettet hele indholdet i den mappe, .bat kan jeg godt men det skal være et vb script.. er der en som kan det pis, så er der 200 er af de hurtige... til den første som få det til at virke....
mvh
Fedthans
Avatar billede fedthans Nybegynder
17. april 2007 - 09:18 #1
og hvordan tilføjer man "benyt som standardprinter" i et VB.
Avatar billede ejvindh Ekspert
17. april 2007 - 09:24 #2
Dim Wshshell, fso, win, drvname, foldername
  Set WshShell = Wscript.CreateObject("Wscript.Shell")
  Set fso = CreateObject("Scripting.FileSystemObject")
  Win = fso.GetSpecialFolder(0)
  drvname="Spooler"
  foldername="C:\a\prov\"

choice = Msgbox ("Hit YES to start the Print Spooler" & chr(13) & "Hit NO to stop the Print Spooler",3, "Make your choice")
if choice = 6 Then
  Wshshell.Run Win & "\system32\sc.exe start " & drvname,true
Elseif choice = 7 Then
  Wshshell.Run Win & "\system32\sc.exe stop " & drvname,true
End if

choice = Msgbox ("Do you want to delete the spool\driver folder?",4, "Delete Spool\driver folder")
if choice = 6 Then
  If fso.FolderExists(foldername) Then
    dim folder
    set folder = fso.GetFolder(foldername)
    folder.Delete
  End If
End If
Avatar billede ejvindh Ekspert
17. april 2007 - 09:25 #3
Sorry, der var en fejl:


Dim Wshshell, fso, win, drvname, foldername
  Set WshShell = Wscript.CreateObject("Wscript.Shell")
  Set fso = CreateObject("Scripting.FileSystemObject")
  Win = fso.GetSpecialFolder(0)
  drvname="Spooler"
  foldername="C:\windows\system32\spool\drivers\"

choice = Msgbox ("Hit YES to start the Print Spooler" & chr(13) & "Hit NO to stop the Print Spooler",3, "Make your choice")
if choice = 6 Then
  Wshshell.Run Win & "\system32\sc.exe start " & drvname,true
Elseif choice = 7 Then
  Wshshell.Run Win & "\system32\sc.exe stop " & drvname,true
End if

choice = Msgbox ("Do you want to delete the spool\driver folder?",4, "Delete Spool\driver folder")
if choice = 6 Then
  If fso.FolderExists(foldername) Then
    dim folder
    set folder = fso.GetFolder(foldername)
    folder.Delete
  End If
End If
Avatar billede ejvindh Ekspert
17. april 2007 - 09:31 #4
Avatar billede fedthans Nybegynder
17. april 2007 - 09:34 #5
super, men den kommer med en fejl som er :
sript: c:\test.vbs
linje 20
tegn 5
fejl tilladelse næge´tet
kode 800a0046
kilde der opstod en microsoft vbssript kørselsfejl
Avatar billede ejvindh Ekspert
17. april 2007 - 09:47 #6
Prøv dette:

Dim Wshshell, fso, win, drvname, foldername
  Set WshShell = Wscript.CreateObject("Wscript.Shell")
  Set fso = CreateObject("Scripting.FileSystemObject")
  Win = fso.GetSpecialFolder(0)
  drvname="Spooler"
  foldername="C:\windows\system32\spool\drivers\"

choice = Msgbox ("Hit YES to start the Print Spooler" & chr(13) & "Hit NO to stop the Print Spooler",3, "Make your choice")
if choice = 6 Then
  Wshshell.Run Win & "\system32\sc.exe start " & drvname,true
Elseif choice = 7 Then
  Wshshell.Run Win & "\system32\sc.exe stop " & drvname,true
End if

choice = Msgbox ("Do you want to delete the spool\driver folder?",4, "Delete Spool\driver folder")
if choice = 6 Then
  If fso.FolderExists(foldername) Then
    dim folder
    set folder = fso.GetFolder(foldername)
    folder.Delete true
  End If
End If
Avatar billede fedthans Nybegynder
17. april 2007 - 10:49 #7
samme fejl... kan man ikke lave det sådan at der ikke kommer en boks op, hvor man først stopper service, sletter indhold, og starter servicen igen?
Avatar billede ejvindh Ekspert
17. april 2007 - 11:09 #8
Jo, hvis det er det, du vil have kan det da sagtens lade sig gøre. Bemærk dog: I din oprindelige beskrivelse var det lidt uklart om du vil have mappen  "spool\drivers" slettet eller bare tømt. Jeg valgte at slette den, men nu skriver du igen at det kun er indholdet der skal slettes. Hvad er det rigtige?


Dim Wshshell, fso, win, drvname, foldername
  Set WshShell = Wscript.CreateObject("Wscript.Shell")
  Set fso = CreateObject("Scripting.FileSystemObject")
  drvname="Spooler"
  foldername="C:\windows\system32\spool\drivers\"

Wshshell.Run Win & "c:\windows\system32\sc.exe start " & drvname,true
If fso.FolderExists(foldername) Then
  dim folder
    set folder = fso.GetFolder(foldername)
  folder.Delete, true
End If
Wshshell.Run Win & "\system32\sc.exe stop " & drvname,true
Avatar billede ejvindh Ekspert
17. april 2007 - 11:18 #9
Hvis du kun vil have indholdet slettet:

Dim Wshshell, fso, win, drvname, foldername
  Set WshShell = Wscript.CreateObject("Wscript.Shell")
  Set fso = CreateObject("Scripting.FileSystemObject")
  drvname="Spooler"
  foldername="C:\windows\system32\spool\drivers\"
Wshshell.Run "c:\windows\system32\sc.exe stop " & drvname,true
If fso.FolderExists(foldername) Then
  fso.DeleteFile foldername & "*.*", true
End If
Wshshell.Run Win & "\system32\sc.exe start " & drvname,true


Der var desuden fejl i den anden version også, så herkommer en rigtig:

Dim Wshshell, fso, drvname, foldername
  Set WshShell = Wscript.CreateObject("Wscript.Shell")
  Set fso = CreateObject("Scripting.FileSystemObject")
  drvname="Spooler"
  foldername="C:\windows\system32\spool\drivers\"

Wshshell.Run "c:\windows\system32\sc.exe stop " & drvname,true
If fso.FolderExists(foldername) Then
  dim folder
    set folder = fso.GetFolder(foldername)
  folder.Delete, true
End If
Wshshell.Run Win & "\system32\sc.exe start " & drvname,true
Avatar billede ejvindh Ekspert
17. april 2007 - 11:20 #10
Arrrhhhg. Fejl igen!!

Slet indhold:

Dim Wshshell, fso, drvname, foldername
  Set WshShell = Wscript.CreateObject("Wscript.Shell")
  Set fso = CreateObject("Scripting.FileSystemObject")
  drvname="Spooler"
  foldername="C:\windows\system32\spool\drivers\"
Wshshell.Run "c:\windows\system32\sc.exe stop " & drvname,true
If fso.FolderExists(foldername) Then
  fso.DeleteFile foldername & "*.*", true
End If
Wshshell.Run "c:\windows\system32\sc.exe start " & drvname,true


Slet mappe:

Dim Wshshell, fso, drvname, foldername
  Set WshShell = Wscript.CreateObject("Wscript.Shell")
  Set fso = CreateObject("Scripting.FileSystemObject")
  drvname="Spooler"
  foldername="C:\windows\system32\spool\drivers\"

Wshshell.Run "c:\windows\system32\sc.exe stop " & drvname,true
If fso.FolderExists(foldername) Then
  dim folder
    set folder = fso.GetFolder(foldername)
  folder.Delete, true
End If
Wshshell.Run "c:\windows\system32\sc.exe start " & drvname,true
Avatar billede fedthans Nybegynder
17. april 2007 - 11:25 #11
hvor skal den køres fra!! man kan vel køre den lokalt på maskinen, som test ik stadigvæk fejl..:)
Avatar billede ejvindh Ekspert
17. april 2007 - 13:08 #12
Kan du ikke lige svare på, hvilken version det er du ønsker at køre videre med. Det er lidt omstændeligt at lave 2 versioner...

Og så skal jeg høre: Ved den oprindelige version (med dialogboksene): Hvor i processen fik du fejlen (da du startede scriptet, efter første dialog, efter anden dialog)
Avatar billede ejvindh Ekspert
17. april 2007 - 13:21 #13
Jeg har nu været ved at teste på den hårde måde. Problemet er simpelthen at der er (i hvert fald her) en mappe, som ikke kan slettes inde i driver-mappen (heller ikke selvom spool-servicen er slået fra): Den bruges af en anden proces. Derfor kan vbsriptet ikke udføre en sletning af hverken mappen eller indholdet.
Avatar billede fedthans Nybegynder
17. april 2007 - 15:13 #14
cool... det kan jeg godt se, vender lige tilbage med hvad som skal slettes, og jeg ville gerne have den med stoppe servic slette de filer / mappe i C:\windows\system32\spool\drivers, (finder lige ud af hvad som skal slettes) start service igen...:)

fedthans
Avatar billede fedthans Nybegynder
17. april 2007 - 15:37 #15
arrr kan du se hvilken proces som driller..:)
fedthans...
Avatar billede ejvindh Ekspert
17. april 2007 - 16:00 #16
Nej, det kan jeg desværre ikke :)
Avatar billede nestle Nybegynder
18. april 2007 - 10:27 #17
Det er fordi windows låser filerne. Hvis du vil slette, skal du starte op i fejlsikret tilstand. se lidt mere her. http://support.microsoft.com/kb/222193
Avatar billede fedthans Nybegynder
30. april 2007 - 19:04 #18
tak for hjælpen.... finder en anden løsning.
fedthans
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