VBScript PC情報取得

PCの情報をファイルに出力するサンプルです。


コード25行目を存在するディレクトリに編集する必要があります。

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