VBScript PC情報取得 サンプル

VBScriptでPC情報を取得するサンプルです。

Dim Body, objNetWork, MyString, LeftString, YearString, MonthString, Caution

Size = 0
Count = 0
FreeSpace = 0
UseVolume = 0

Set objNetWork = WScript.CreateObject("WScript.Network") 'ネットワークオブジェクトの作成

DT1 = replace (date, "/", "") '日付表示の"/"を取り除く
DT2 = DT1 + replace (time, ":", "") '時間表示の":"を取り除き、日付と時間を組み合わせる
DT3 = objNetWork.ComputerName & "_" & DT2 '日付と時間の組み合わせにコンピュータ名を入れる


MyString = DT1
LeftString = Left(MyString, 6) ' LeftString は、"YYYYMM" です。
YearString = Left(MyString, 4) ' LeftString は、"YYYY" です。
MonthString = Mid(MyString, 5,2) ' LeftString は、"MM" です。

Dim tmpFile

'ログ保存フォルダ名(中位階層)
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
Set fso = CreateObject("Scripting.FileSystemObject")
Set tmpFile = fso.CreateTextFile("c:\vbs\system.log")
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set objSWbemObjectCollection = objWMIService.ExecQuery("Select * from Win32_LogicalDisk Where DriveType = 3")

'タイトルの表示ヘッダー部分
Title = "コンピュータ名:" & objNetWork.ComputerName & vbTab & vbCrLf & "取得日時" & vbTab & date & vbTab & time & vbCrLf & vbCrLf & "ドライブ名" & vbTab & "空き容量" & vbTab & "使用容量" & vbTab & "フルサイズ" & vbTab & "使用率" '& vbCrLf
tmpFile.WriteLine(Title)

Set objNetWork = Nothing

For Each objSWbemObject in objSWbemObjectCollection
    'デバイスID C:などを取得する
    DeviceID = objSWbemObject.DeviceID
    'ハードディスクのフルサイズを取得する
    Size = objSWbemObject.Size
    'ハードディスクの空き領域を取得する
    FreeSpace = objSWbemObject.FreeSpace
    '使用率を計算する
    ExistPersent = FormatNumber((100 - FreeSpace / Size * 100),2)
    'ハードディスク使用量を計算する
    UseVolume = Size - FreeSpace
    
    'ハードディスク空き容量が1000MB以上の時、GB(小数点2桁まで)の表示をする
    If Int(FreeSpace / 1024 / 1024) > 999 Then
        FreeSpace = FormatNumber((FreeSpace / 1024 / 1024 / 1024),2) & "GB"
    else
        FreeSpace = Int(((FreeSpace / 1024 / 1024) + 0.5)) & "MB" '四捨五入
    End If
    'フルサイズのハードディスク使用容量が1000MB以上の時、GB(小数点2桁まで)の表示をする
    If Int(Size / 1024 / 1024) > 999 Then
        Size = FormatNumber((Size / 1024 / 1024 / 1024),2) & "GB"
    else
        Size = Int(((Size / 1024 / 1024) + 0.5)) & "MB" '四捨五入
    End If
    'ハードディスク残容量が1000MB以上の時、GB(小数点2桁まで)の表示をする
    If Int(UseVolume / 1024 / 1024) > 999 Then
        UseVolume = FormatNumber((UseVolume / 1024 / 1024 / 1024),2) & "GB"
    else
        UseVolume = Int(((UseVolume / 1024 / 1024) + 0.5)) & "MB" '四捨五入
    End If
    Body = Body & DeviceID & vbTab & FreeSpace & vbTab & UseVolume & vbTab & Size & vbTab & ExistPersent & "%" & vbTab & Caution & vbCrLf '使用率設定
Next
tmpFile.WriteLine(Body)

'メモリ使用率取得
Dim strComputer
strComputer = "."
Set wbemServices = GetObject("winmgmts:\\" & strComputer)
Set wbemObjectSet = wbemServices.InstancesOf("Win32_OperatingSystem")

For Each wbemObject In wbemObjectSet
    tmpFile.WriteLine("物理メモリの合計 (kb): " & wbemObject.TotalVisibleMemorySize)
    tmpFile.WriteLine("物理メモリ空き   (kb): " & wbemObject.FreePhysicalMemory)
    tmpFile.WriteLine("仮想メモリの合計 (kb): " & wbemObject.TotalVirtualMemorySize)
    tmpFile.WriteLine("仮想メモリ空き   (kb): " & wbemObject.FreeVirtualMemory)
    Dim comitresult
    comitresult = wbemObject.SizeStoredInPagingFiles - wbemObject.FreeSpaceInPagingFiles
    tmpFile.WriteLine("コミットチャージ (kb): " & comitresult)
Next 

'WScript.Echo Title & vbCrLf & Body
tmpFile.close
Set tmpFile = Nothing

Bookmark this on Yahoo Bookmark
Bookmark this on Google Bookmarks
Share on LinkedIn
LINEで送る
Pocket