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