各種ツール関連
キオラの提供するナレッジ情報です。
本ページに掲載されている各ツールやプログラム、資料ファイルは全て無料にて提供致します。
若いシステムエンジニアの方、中小企業でご自身でPCを操作している方、そんな一生懸命な方に少しでも役に立てば幸いです。
※本サイトに掲載されているツールはどなたでも全てご自由にお使いいただけます、
但し、みなさまが弊社WEBコンテンツ等をダウンロードすることによって,ユーザーのコンピュータ,またはネットワーク環境等に支障・障害が生じた場合,弊社はいかなる理由によるものでも一切責任を負いません。また,これらの事象によって生じた損害等についても,弊社は一切責任を負いません。
あくまで皆様の自己責任においてご使用ください。
各種ツール関連
[ キオラ社内で作成・使用している各ツールを紹介しております。 ]
#TT001 Windowsサーバー CPU・MEMORY・HDD使用率のログ取得ツール(winstat)
#TT002,#TT003 リモート実行用Windows hostsファイルの行追加・行変更(無効化)ツール
#TT003 リモート実行用Windows hostsファイルの行変更(無効化)ツール ソース部分
#TT001 Windowsサーバー CPU・MEMORY・HDD使用率のログ取得ツール(winstat)
種類:vbsスクリプト
サイズ:3KB
カテゴリ:サーバー管理, システム管理, CPU, メモリ, HDD, 使用率,
ダウンロード:TT001_Winstat.vbs.txt
(※ダウンロード後、拡張子の.txtを削除してご使用ください。)
WindowsサーバーのCPU使用率、メモリ空き容量、ハードディスク空き容量を指定した間隔でログに出力します。
サーバー構築後の性能試験時等に用います。
----- 使用方法 -----
引数にて実行間隔を指定できます。ms(ミリ秒単位)になります。
初期値は10分(600000ms)に一回、各使用率を取得しログ(同一フォルダ内「monitor.log」)に出力します。
----- 開始:TT001_Winstat.vbs.txt:vbsスクリプトソース -----
'///////////////////////////////////////////////////////////
'/
'/ システム:
'/ プログラム:
'/ 機能:
'/
'/
'/
'/
'///////////////////////////////////////////////////////////
'Constを上書きしないよう設定
Const ForAppending = 8
'** ローカルコンピューターの指定
strComputer = "."
'** LOGファイル名の指定
strLogFile = "Monitor.log"
set objAug = Wscript.Arguments
set objFSO = CreateObject("Scripting.FileSystemObject")
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
set objRefresher = CreateObject("WbemScripting.Swbemrefresher")
set objProcessor = objRefresher.AddEnum(objWMIService, "Win32_PerfFormattedData_PerfOS_Processor").ObjectSet
set objMemory = objRefresher.AddEnum(objWMIService, "Win32_PerfFormattedData_PerfOS_Memory").ObjectSet
'
Set colDiskDrives = objWMIService.ExecQuery _
("Select * from win32_perfformatteddata_perfdisk_logicaldisk where Name <> '_Total'")
objRefresher.Refresh
set objLogfile = objFSO.OpenTextFile(strLogFile, ForAppending, true)
'** LogFile Header
objLogFile.WriteLine "Date" & vbtab & "Time" & vbtab & "CPU" & vbtab & "FreeMemory" & vbtab & "FreeHDD1" & vbtab & "FreeHDD2" & vbtab & "FreeHDD3"
objLogFile.Close
Do
For Each intProcessorUse in objProcessor
If intProcessorUse.Name = "_Total" Then
CPUstat = intProcessorUse.PercentProcessorTime
End If
Next
For Each intAvailableBytes in objMemory
FreeMem = intAvailableBytes.AvailableMBytes
Next
For Each objDiskDrive in colDiskDrives
If objDiskDrive.Name = "C:" Then
HDD1 = objDiskDrive.FreeMegabytes
End if
If objDiskDrive.Name = "D:" Then
HDD2 = objDiskDrive.FreeMegabytes
End if
If objDiskDrive.Name = "E:" Then
HDD3 = objDiskDrive.FreeMegabytes
End if
If HDD1 = "" Then
HDD1 = "_"
End if
If HDD2 = "" Then
HDD2 = "_"
End if
If HDD3 = "" Then
HDD3 = "_"
End if
Next
set objLogfile = objFSO.OpenTextFile(strLogFile, ForAppending, true)
objLogFile.WriteLine FormatDateTime(Now) & vbTab & CPUstat & vbTab & FreeMem & vbTab & HDD1 & vbTab & HDD2 & vbTab & HDD3
objLogFile.Close
set objLogFile = Nothing
If WScript.Arguments.Count = 1 Then
WScript.sleep objAug(0)
Else
WScript.sleep 600000
End IF
objRefresher.Refresh
Loop
----- 終了:TT001_Winstat.vbs.txt:vbsスクリプトソース -----
#TT002,#TT003 リモート実行用Windows hostsファイルの行追加・行変更(無効化)ツール
種類:vbsスクリプト
サイズ:3KB
カテゴリ:Windowsクライアント管理, 社内システム管理, リモートファイル変更,
ダウンロード:TT002_add_hosts_line.vbs.txt
ダウンロード:TT003_chg_hosts_line_disable.vbs.txt
(※ダウンロード後、拡張子の.txtを削除してご使用ください。)
社内クライアント管理等でWindows端末のhostsファイルの書き換えを自動(リモート実行)で行います。
パターンとしては以下の2タイプになります。
パターン1:新規にhostsファイルに記述を挿入する。TT002_add_hosts_line.vbs.txt
パターン2:既存のhostsファイルのエントリを無効化する。TT003_chg_hosts_line_disable.vbs.txt
----- 使用方法 -----
AD環境のポリシーにて自動実行させてもよいですし、社内配布用プログラム等ある場合はリモートから自動実行します。
変更の際は既存ファイルをバックアップしてからの実行になります。
スクリプト内の「servername」、IPアドレス部分を変更してご使用ください。
----- 開始:TT002_add_hosts_line.vbs.txt:vbsスクリプトソース -----
'----------- ファイルシステムオブジェクト作成
Set objFso = CreateObject("Scripting.FileSystemobject")
'----------- 定数の作成
Const ForReading = 1 '読取フラグ
Const ForWriting = 2 '書込フラグ
Const ForAppending = 8 '追記フラグ
'/*********** 書き換え必須エリア:開始 ***********
Const InsertLine = 30 '文字列の挿入行
Const InsertText = "172.25.000.000 servername.host.com" '挿入する文字列
Const strPath = "C:\WINDOWS\system32\drivers\etc\hosts" '処理するテキストファイルのパス
'/*********** 書き換え必須エリア:終了 ***********
'----------- ファイルが存在することを確認
If objFso.FileExists(strPath) = False Then
'MsgBox "指定のファイルがみつかりません"
WScript.Quit 9 'なければ終了
End If
'----------- テキストの行数を確認
Set objRead = objFso.OpenTextFile(strPath , ForReading) '読取モードでテキストを開く
objRead.ReadAll '全部読むことで最終行へ移動
intLine = objRead.Line '現在の行数を確認
objRead.Close '読取モード閉じる
'----------- テキストの挿入
If intLine <= InsertLine Then '挿入行がテキストの行数より大きいか、同じの場合
Set objAppending = objFso.OpenTextFile(strPath , ForAppending) '追記モードでテキストを開く
objAppending.WriteLine vbCrLf & InsertText & vbCrLf '挿入行の追記
objAppending.Close '追記モード閉じる
Else '挿入行がテキストの行数より小さい場合
Dim WritingText '書込用の文字列(省略可)
Set objRead2 = objFso.OpenTextFile(strPath , ForReading) '読取モードでテキストを開く
i = 1 '行数の確認用の数値
Do Until objRead2.AtEndOfStream = True '終了行まで繰り返し
If i = InsertLine Then '挿入行が来たら、文字列を挿入
WritingText = WritingText & InsertText & vbCrLf 'vbCrLfは改行コード
End If
WritingText = WritingText & objRead2.ReadLine & vbCrLf '1行読み取り、書込用の文字列に追加
i = i + 1 '読み取った行数を1増やす
Loop
objRead2.Close '読取モード閉じる
Set objWriting = objFso.OpenTextFile(strPath , ForWriting) '書込モードでテキストを開く
objWriting.Write WritingText '書込用の文字列値を一気に書込み
objWriting.Close '書込モード閉じる
End If
'----------- 完了メッセージ
'MsgBox "挿入完了"
WScript.Quit 0
----- 終了:vbsスクリプトソース -----
----- 開始:TT003_chg_hosts_line_disable.vbs.txt:vbsスクリプトソース -----
'/**********************************************************************/
'/* */
'/* Windows hosts files update servername rebameback */
'/* */
'/* */
'/* Change File : c:\windows\system32\drivers\etc\hosts */
'/* Change value : */
'/* 172.25.000.000 servername.host.com -> #172.25.000.000 servername.host.com */ */
'/* */
'/***********************************************************************/
'/*** 実行処理(プロファイル内容の変更) ***/
'/ オブジェクト定義 ***/
Set fso = CreateObject("Scripting.FileSystemObject")
Set regEx = New RegExp
'/ 変更前ファイル名の定義
Set inFile = fso.OpenTextFile("C:\WINDOWS\system32\drivers\etc\hosts")
'/ 変更後ファイル名の定義
Set outFile = fso.CreateTextFile("C:\WINDOWS\system32\drivers\etc\hosts_new_entry")
'/ 変更前の行の値の定義
regEx.Pattern = "172.25.000.000 servername.host.com"
'/ 変更後の行の値の定義
repStr = vbCrLf & "#172.25.000.000 servername.host.com" & vbCrLf
'/*** 文字列置換処理実行 ***/
Do Until inFile.AtEndOfStream
tempLine = inFile.ReadLine
repLine = regEx.Replace(tempLine, repStr)
outFile.WriteLine repLine
Loop
inFile.Close
outFile.Close
Set fso = Nothing
Set regEx = Nothing
Set inFile = Nothing
Set outFile = Nothing
'/*** 日付数値用オブジェクト定義 ***/
Dim dtmNowDate ' 現在時刻
Dim execDate ' 現在時刻
'/ 現在時刻取得
dtmNowDate = Now()
'/ 実行時刻取得+数字型生成(YYYYMMDDHHmmSS)
execDateTime = Year(dtmNowDate) & Right("0" & Month(dtmNowDate), 2) & Right("0" & Day(dtmNowDate), 2) & Right("0" & Hour(dtmNowDate), 2) & Right("0" & Minute(dtmNowDate), 2) & Right("0" & Second(dtmNowDate), 2)
'/*** 既存プロファイルのバックアップ移動処理実行 ***/
Set fso1 = CreateObject("Scripting.FileSystemObject")
fso1.MoveFile "C:\WINDOWS\system32\drivers\etc\hosts", "C:\WINDOWS\system32\drivers\etc\hosts." & execDateTime
'/*** 新規プロファイルのファイル名変更処理実行 ***/
Set fso2 = CreateObject("Scripting.FileSystemObject")
Set UdpSrc = fso2.GetFile("C:\WINDOWS\system32\drivers\etc\hosts_new_entry")
UdpSrc.Name="hosts"
Set fso1 = Nothing
Set fso2 = Nothing
WScript.Quit 0
----- 終了:vbsスクリプトソース -----