Generate Workstation pc Report with VbScript and Excel

04/09/2010 at 7:15 pm Tinggalkan komentar

Huh… Malem minggu pengen curhat. Temen’a cuma internet sm laptop doang. Ya ud, ambo masih bisa curhat walaupun ditemani oleh kesendirian…. PosCur!!hihihi…πŸ™‚
http://rcm.amazon.com/e/cm?t=httpyadi1blow-20&o=1&p=8&l=as1&asins=B002XUKTGU&ref=tf_til&fc1=000000&IS2=1&lt1=_blank&m=amazon&lc1=0000FF&bc1=000000&bg1=FFFFFF&f=ifr
GE MWF Refrigerator Water Filter

Intro

Penulis ingin berbagi ilmu penulis sesudah skripsi ini selesai…. mmmh, senengnya klo bisa buat orang lain tersenyum dengan apa yang kita kerjakan tanpa harus mengharapkan timbal balik apa – apa. Ini merupakan teori kepuasan lahir batin versi penulis.hehehe…..tp ini bukan skripsi penulis bis skripsi penulis katro, sidang’a kalah dapet nilai’a B. B itu menurut penulis nilai kasian…..😦 hiks…hiks…hiks….. penulis emg terlalu jujur. Source Code skripsi penulis emg penulis bilang ini bukan pure hasil codingan sendiri. tapi penulis buat dari code-code yang opensource yang penulis buat sedemikian rupa tanpa melupakan algoritma dari code-code itu sendiri dan terbentuklah aplikasi yang gak pernah ada.. yaitu aplikasi email dan ftp client yang berjalan bersamaan untuk maintenance sebuah domain…. Penulis diketawain deh….. Penulis kesssseeellll!! pengen ngajak tanding itu dosen buat aplikasi yg ngetop!!! kampret….πŸ˜›

Okelah klo begitu ud sedikit lega… kita ke topik judul post penulis. Generate Workstation pc Report with VbScript and Excel….. beginilah klo programmer yang blom jadi klo kerja.hehehehe….. Insya Allah penulis bakal jadi programmer di perusahaan bank amrik.hehehe…… amiin.

Asal cerita terciptanya skrip ini sudah penulis terangkan pada post sebelumnya…. cek disini. Okeh, setelah kita memiliki tools yang kita butuhkan untuk mengambil informasi-informasi yang akan kita jadikan sebuah report menggunakan tools WMI milik windust. beginilah cara kerja tools tersebut…

dari WMI code creator diatas kita coba gunakanan untuk Combo box Namespace : root\CIMV2, Classes : Win32_ComputerSystem untuk result information yang ingin kita ambil adalah manufacturer dari PC. Lalu klik aja Tombol Execute Code dan aplikasi ini akan menampilkan informasi sebagai berikut :

dari script yang di hasilkan oleh WMI code creator dengan script ini :

strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set colItems = objWMIService.ExecQuery( _
 "SELECT * FROM Win32_ComputerSystem",,48)
For Each objItem in colItems
 Wscript.Echo "-----------------------------------"
 Wscript.Echo "Win32_ComputerSystem instance"
 Wscript.Echo "-----------------------------------"
 Wscript.Echo "Manufacturer: " & objItem.Manufacturer
Next

VbShell ini akan menghasilkan informasi yang ada pada PC tentang merk atau manufacture PC. Klo ente-ente sudah mengetahui fungsi dari WMI code creator ini. Ambil deh segala informasi yang ingin anda ketahui dari pc pada workstation. Seperti informasi- informasi serial number PC, Kapasitas Memory, Kapasitas HDD bahkan sampai User yang sedang menggunakan PC itu. Langkahnya yaitu tinggal dimainkan saja Namespace,Classes dan Select Properties Value… Serem juga emang ini Script bisa ambil segala informasi yang ada di PC tersebut… … Sebenernya yang SEREM itu yang buat scipt ini.hehehe….πŸ™‚

Question: How to Connecting to Other PC in Workstation PC??

Langkah selanjutnya adalah bagaimana dengan koneksi ke jaringannya?? Tenang saja tools ini cukup bersahabat dengan penggunanya coba klik di bagian menu Target Computer –>Group of Remote Computer maka akan tampil seperti gambar berikut :

Masuk deh List Array yang ip address yang ingin diambil informasinya…. Ente tinggal ikutin instruksi pada window Remote Computer Information untuk menaruh IP address per line…. Pada contoh diatas karena penulis menggunakan laptop pribadi jadi ip yang penulis masukan ip lokal. script ini juga dapat membaca hostname dari pc yang ada pada workstation. Klo ip addres gak konek script execute error karna belom dikasih fungsi On Error Resume Next…..hihihi. Puyeng yaks???ini blom apa2 kalee…..

Advanced To Creating List PC by List File…

Okeh!! Qta lanjut ke tingkat Advanced programming menggunakan database File??loh koq….. jangan bingung dulu. Konsepnya adalah database itu sebenarnya hanyalah media penyimpanan. Dan media itu tidak lain hanyalah sekumpulan informasi text yang dapat dibaca oleh aplikasi engine database itu sendiri. Yang ingin penulis lakukan dalam pendataan ini adalah list IP Address yang ada pada workstation. Maklum saat penulis bekerja ada sekitar 400 lebih PC yang harus di maintenance. Jadi, alangkah praktisnya jika qita lakukan pendataan dengan list data. Okay…πŸ™‚

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.CreateTextFile(objDialog.FileName)

Set objTextFile = objFSO.OpenTextFile _
 ("IP-List.acho", ForReading)
 strNextLine = objTextFile.ReadAll
 arrComputers = Split(strNextLine, vbCrLf)

Dah mulai pusing ney…. Rasain, emg bgini klo jadi programmer… Pantang Pusiing.hihihi….πŸ™‚. Okeh Kita bahas satu2 scipt diatas…

Set objFSO = CreateObject("Scripting.FileSystemObject")
 Set objFile = objFSO.CreateTextFile(objDialog.FileName)

ini merupakan header fungsi atau method yang akan kita gunakan untuk mengolah list text pada sebuah file. Klo ente programmer java atau vb.net pasti tahu yang namanya Import. ya kan??nah seperti itulah vbscript ini memanggil fungsi.

Set objTextFile = objFSO.OpenTextFile _
 ("IP-List.acho", ForReading)

ini ada tips n trik penulisan code vbscript. sebenernya penulisannya seperti ini Set objTextFile = objFSO.OpenTextFile(“IP-List.acho”, ForReading) karena penulis melakukan pindah baris maka harus ditambahkan pada script sebuah underscore( _ ) yang menyatakan script tersebut menyambung…πŸ™‚ Pada Script ini script melakukan pembacaan List text pada File IP-List.acho. yaitu text list IP address yang ingin kita report…. Tips n Triks[Untuk Path file pada contoh ini langsung ke file jika terdapat pada satu direktori. Alangkah baiknya menggunakan link path yang absolut Co : “C:\IP-List.acho”]

strNextLine = objTextFile.ReadAll
 arrComputers = Split(strNextLine, vbCrLf)

nah lo, klo script diatas digunakan untuk script cara membaca file tersebut apakah dibatasi oleh tanda koma, strip atau lain sebagainya tergantung selera si programmer. vbCrLf untuk ganti baris bisa juga dengan tanda baca dengan penulis seperti ini “,” atau “_”.terserah deh….πŸ™‚ klo penulis pake vbCrLf karna praktis langsung ganti baris. Klo pake “,” text list harus nyambung terus gak ada ujungnya. Cabe deh…

Untuk aplikasi yang lebih advanced lagi penulis coba membuat Log File yang fungsinya untuk menyimpan log PC-PC yang ada pada workstation klo pada mati. Tinggal di lihat di data Log jika PC Mati.. Scriptnya ini ney…. Kita bahas nyoks….πŸ™‚

Set objDialog = CreateObject("SAFRCFileDlg.FileSave")

objDialog.FileName = "LogDataReportAcho.txt"
objDialog.FileType = "VBScript Script"
intReturn = objDialog.OpenFileSaveDlg

Rasain ney script….. Script diatas digunakan untuk menyimpan Log script saat script tereksekusi. Trus bagaimana cara script mengambil Log???? Gampang bro…. Ney penulis buatin fungsi sebagai berikut :

Call achoping(strComputer)

ini adalah script untuk memanggil fungsi yang talah dibuat. Klo di Java ini namanya method yang dipanggil aplikasi…. dan fungsi yang penulis curahkan adalah sebagai berikut untuk melakukan ping.

Function achoping(compinya)
Set objPing = GetObject("winmgmts:{impersonationLevel=impersonate}")._
 ExecQuery("select * from Win32_PingStatus where address = '"_
 & compinya & "'")
 For Each objStatus in objPing
 If IsNull(objStatus.StatusCode) or objStatus.StatusCode<>0 Then
 WScript.Echo("Computer " & compinya & " is not reachable!! Kena ngidupin deh!!")
 MsgBox "Komputer IP : " & compinya & " Anjrit Mati!!Kena ngidupin deh!!Catet Tro.."
 objFile.WriteLine compinya

 Else
 If IsNull(objStatus.StatusCode) or objStatus.StatusCode<>1 Then
 WScript.Echo("Computer " & compinya & " is Available!!")
 End If
 End If
 Next
End Function

Boooom!!! Ini fungsi penulis dapatkan dari sesepuh Vbscript asalnya penulis lupa.hihihi…. Pada fungsi ini penulis melakukan modifikasi seperti penggunaan Box pesan dengan penambahan script MsgBox “Komputer IP : ” & compinya & ” Anjrit Mati!!Kena ngidupin deh!!Catet Tro..” dan untuk melakukan penulisan ke Log. Penulis menambahkan script objFile.WriteLine compinya yang nantinya Log akan tercatat jika PC yang di ping MATI…. Saat penulisan script ini penulis agak kesel karna harus mondar-mandir turun naik lantai klo PC-nya Mati.hehehe… maaf y…penulis agak kasar.. Peace Bro….

Reporting This PC Workstation…..

Yah tibalah untuk tahap akhir. Yaitu pembuatan report…. Penulis coba membuat aplikasi ini lebih praktis lagi yaitu dengan membuat report kedalam excel. Penulis cari bahan dari link ini. Penulis Masukin script ini kedalam aplikasi penulis. Bahas Nyoks……

Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = True
Set objWorkbook = objExcel.Workbooks.Add()
Set objWorksheet = objWorkbook.Worksheets(1)
objExcel.Cells(1, 1).Value = "NO."
objExcel.ActiveWorkbook.ActiveSheet.Range(_
objExcel.ActiveWorkbook.ActiveSheet.Cells(1,1),_
objExcel.ActiveWorkbook.ActiveSheet.Cells(2,1)).Merge
objExcel.Cells(1, 2).Value = "HOSTNAME"
objExcel.ActiveWorkbook.ActiveSheet.Range(_
objExcel.ActiveWorkbook.ActiveSheet.Cells(1,2),_
objExcel.ActiveWorkbook.ActiveSheet.Cells(2,2)).Merge
objExcel.Cells(1, 3).Value = "DOMAIN\SOE ID"
objExcel.ActiveWorkbook.ActiveSheet.Range(_
objExcel.ActiveWorkbook.ActiveSheet.Cells(1,3),_
objExcel.ActiveWorkbook.ActiveSheet.Cells(2,3)).Merge
.....
......

Sebenernya panjang banget itu script… Penulis coba bahas intinya aja. Set objExcel = CreateObject(“Excel.Application”) ini adalah script method yang harus digunakan jika ingin menggunakan excell sebagai report. Untuk pengaturan List Header dan melakukan Merge pada excel penulis melakukan penulisan sebagai berikut untuk header per kolom excel

objExcel.Cells(1, 1).Value = "NO."
objExcel.ActiveWorkbook.ActiveSheet.Range(_
objExcel.ActiveWorkbook.ActiveSheet.Cells(1,1),_
objExcel.ActiveWorkbook.ActiveSheet.Cells(2,1)).Merge

Gampang kan???hihihi….. Gampang lah. Penulis sama-sama makan nasi. So, situ juga bisa melakukan hal yang sama seperti penulis. Okay…πŸ™‚

Untuk mengambil informasi dari Query list information PC kedalam excel penulis melakukan penambahan ini…

Set colItems1 = objWMIService.ExecQuery( _
 "SELECT * FROM Win32_ComputerSystem",,48)
For Each objItem in colItems1
objExcel.Cells(x, 2) = objItem.Name
 objExcel.Cells(x, 3) = objItem.UserName
 objExcel.Cells(x, 8) = objItem.Manufacturer
 objExcel.Cells(x, 10) = objItem.Model
 objExcel.Cells(x, 11).value = Int(objItem.TotalPhysicalMemory/1030225) & " MB"
 objExcel.Cells.EntireColumn.AutoFit
Next
Set colItems2 = objWMIService.ExecQuery( _
 "SELECT * FROM Win32_DiskDrive",,48)
For Each objItem in colItems2
objExcel.Cells(x, 12) = objItem.Model
 objExcel.Cells(x, 13).value = Int(objItem.Size /1000000000) & " GB"
Next

Sama kan seperti awal pertama kali penulis melakukan pencarian informasi. Penulis juga melakukan beberapa modifikasi pada objek untuk melihat ketepatan dari aplikasi yang penulis buat…πŸ™‚

Oje, Tibalah untuk hasil akhir. Karena aplikasi ini berjalan Under DOS. Maka manjakan pengguna dengan pembuatan Batch file. supaya aplikasi bisa jalan sekali klik…

echo off
echo Aplikasi Laporan Computer di Citibank
echo.
echo.
cscript lapAcho.vbs
echo Aplikasi sudah Selesai tereksekusi
echo on
break

Inilah hasil dari curhat penulis selama bekerja sebagai teknisi di bank amrik.hihihi…..

ada beberapa bagian yang penulis Hide.Karena Pada header tersebut diisi manual… Jerih payah penulis berakhir disitu. Aplikasi dapat melakukan reporting dengan baik. PC-PC yang ada di list berhasil didata. Bayangkan Coooy,,,,,350 PC suruh periksa satu-satu.Kecebong bgt Penulis….hahahaha.

Script Bisa d donlot d flash BOX sebelah kanan Blog ini….

Tips n Triks [klo mw format perubahan table jadi lebih keren ada pada line script ini Const xpRangeAutoFormatList2 = 11 Ganti range number antara 1 s.d 12]

Yups, Cukup sampai disini yaks…… Penulis Mw Lebaran ney. Penulis Mohon Maaf sebesar-besarnya Jika ada Banyolan – Banyolan Penulis yang tidak enak di hati Penulis Minta di Bukakan Pintu Maaf karna penulis hanya manusia biasa yang tidak luput dari kesalahan…..πŸ™‚

Minal Aidin Wal Faidzin……

Entry filed under: newbie programmer. Tags: .

VbScript Why Not?? Simplify Job for workstation Pengenalan SAS || Banking tools (Part I)

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

Trackback this post  |  Subscribe to the comments via RSS Feed


Gw Ney..


  • Chat With Me
  • Email Yadi Acho

  • For Education Only....

    Blog Stats

    • 5,679 hits

    %d blogger menyukai ini: