miXer Skrevet 11. januar 2008 Skrevet 11. januar 2008 Heisann Jeg holder på med et script i WScript som henter ut Manufacture og Model fra en liste over maskinnavn. Problemet er at når scriptet ikke får tak i en maskin, så gir den bare output'en fra forrige objitem.model. Dette blir veldig feil. Hvordan kan jeg få scriptet til å gi ut blankt objitem.model felt dersom den ikke får tak i maskinen? Her er koden jeg bruker: On Error Resume Next set objExcel = CreateObject("Excel.Application") objExcel.Visible = True objExcel.Workbooks.Add intRow = 2 objExcel.Cells(1, 1).Value = "Maskinnavn" objExcel.Cells(1, 2).Value = "Manufacturer" objExcel.Cells(1, 3).Value = "Model" set fso = CreateObject("Scripting.FileSystemObject") set inputfile = fso.OpenTextFile("ting.txt") do while not (InputFile.atEndOfStream) strComputer = InputFile.ReadLine set objWMIservice = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") set colitems = objWMIservice.ExecQuery("Select * from Win32_ComputerSystem",,48) For each objitem in colitems objExcel.Cells(intRow, 1).Value = strComputer objExcel.Cells(intRow, 2).Value = objitem.manufacturer objExcel.Cells(intRow, 3).Value = objitem.Model intRow = intRow + 1 Next objExcel.Cells.EntireColumn.AutoFit loop Wscript.echo "Ål Dønn"
miXer Skrevet 12. januar 2008 Forfatter Skrevet 12. januar 2008 Ingen som vet? Jeg har prøvd å sette: Set objitem.model = Nothing Set objitem.model = "" men ingen av dem hjalp noen ting. Scriptet fungerer fint så lenge alle maskiner den søker gjennom står på. Når den kommer til en som ikke står på eller ikke får tilgang til, skriver den bare ut den forrige objitem.model, noe som kan være både feil og er irriterende. Håper noen kan hjelpe!
backup Skrevet 13. januar 2008 Skrevet 13. januar 2008 (endret) Du bør kunne fikse det med for eksempel error-objektet. Her er et lite eksempel: On Error Resume Next comp = Array("dole","ole",".","doffen",".","hansen") 'manifacturer-liste For i = 0 To UBound(comp) strcomputer =comp(i) set objWMIservice = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") If err.number = 0 Then set colitems = objWMIservice.ExecQuery("Select * from Win32_ComputerSystem",,48) For each objitem in colitems x = x & objitem.manufacturer & vbcrlf Next MsgBox(x) x="" Else err.clear End If Set colitems = nothing Set objWMIservice = Nothing Next I manifacturer-listen er ole, dole og hansen ment som ugyldige maskinnavn mens "." er navnet på maskinen der scriptet kjøres. Merk deg at i listen er "." satt inn to ganger, men det er bare for demoens skyld. Kjør scriptet, og du får ditt manifacturer-navn ut to ganger i en msgbox. Tar du vekk den ene "." får du det ut bare en gang. Merk deg hvordan err.number og err.clear brukes i scriptet. Legg det så passende inn i ditt eget script. Endret 13. januar 2008 av backup
miXer Skrevet 14. januar 2008 Forfatter Skrevet 14. januar 2008 Jeg prøvde med denne koden nå, men det hjalp ingenting! On Error Resume Next set objExcel = CreateObject("Excel.Application") objExcel.Visible = True objExcel.Workbooks.Add intRow = 2 objExcel.Cells(1, 1).Value = "Maskinnavn" objExcel.Cells(1, 2).Value = "Manufacturer" objExcel.Cells(1, 3).Value = "Model" set fso = CreateObject("Scripting.FileSystemObject") set inputfile = fso.OpenTextFile("ting.txt") do while not (InputFile.atEndOfStream) strComputer = InputFile.ReadLine set objWMIservice = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") if err.number = 0 Then set colitems = objWMIservice.ExecQuery("Select * from Win32_ComputerSystem",,48) For each objitem in colitems x = strComputer y = objitem.manufacturer z = objitem.model objExcel.Cells(intRow, 1).Value = x objExcel.Cells(intRow, 2).Value = y objExcel.Cells(intRow, 3).Value = z intRow = intRow + 1 Next objExcel.Cells.EntireColumn.AutoFit x = "" y = "" z = "" Else err.Clear End If loop Wscript.echo "Ål Dønn"
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå