ExcelのVBAとDOSコマンド"dir"と"find"を駆使して、Windows Serverの
Disk空き容量を確認及び記録するシステムを作りました。
--ファイルPath
D:\disk_check.xls このエクセルファイルから実行します。
D:\disk_check.bat 各サーバーの空き容量をdisk.txtへ書き出し
D:\disk.txt 出力ファイル
disk_check.bat
-----
@echo off
set USER-NAME=HogeUser
set PASSWD=hogehoge
set DRIVE=z:
set OUTFILE="D:\disk.txt"
set SERVER1=\\hoge_server01\group
set SERVER2=\\hoge_server02\group
set SERVER3=\\hoge_server03\group
if exist %DRIVE% net use /delete %DRIVE%
net use %DRIVE% %SERVER1% %PASSWD% /user:%USER%
dir %DRIVE% | find "バイトの空き領域" > %OUTFILE%
net use /delete %DRIVE%
net use %DRIVE% %SERVER2% %PASSWD% /user:%USER%
dir %DRIVE% | find "バイトの空き領域" >> %OUTFILE%
net use /delete %DRIVE%
net use %DRIVE% %SERVER3% %PASSWD% /user:%USER%
dir %DRIVE% | find "バイトの空き領域" >> %OUTFILE%
net use /delete %DRIVE%
echo. >> %OUTFILE%
time /t >> %OUTFILE%
date /t >> %OUTFILE%
exit
-----
disk_check.xls
-------------------------------
Private Sub CommandButton1_Click()
Dim myID As Double
myID = Shell("D:\disk_check.bat", vbNormalFocus)
End Sub
-------------------------------
Private Sub CommandButton2_Click()
Worksheets("calc").Activate
Workbooks.OpenText Filename:="D:\disk.txt", Origin:=932, StartRow:=1, _
DataType:=xlFixedWidth, FieldInfo:=Array(Array(0, 1), Array(11, 1), Array(16, 1) _
, Array(33, 1), Array(49, 1)), TrailingMinusNumbers:=True
Windows("disk.txt").Activate
Worksheets("disk").Range("D1:D4").Select
Selection.Copy
Windows("disk_check.xls").Activate
Range("B4").Select
ActiveSheet.Paste
Windows("disk.txt").Activate
Worksheets("disk").Range("A6").Select
Application.CutCopyMode = False
Selection.Copy
Windows("disk_check.xls").Activate
Range("B2").Select
ActiveSheet.Paste
Windows("disk.txt").Activate
Worksheets("disk").Range("A7").Select
Application.CutCopyMode = False
Selection.Copy
Windows("disk_check.xls").Activate
Range("B1").Select
ActiveSheet.Paste
Windows("disk.txt").Activate
ActiveWindow.Close
Windows("disk_check.xls").Activate
Worksheets("Record").Activate
With Worksheets("Record")
.Range("A65536").End(xlUp).Offset(1, 0).Value = Worksheets("calc").Range("B1")
.Range("A65536").End(xlUp).Offset(0, 1).Value = Worksheets("calc").Range("B2")
.Range("A65536").End(xlUp).Offset(0, 2).Value = Worksheets("calc").Range("E4")
.Range("A65536").End(xlUp).Offset(0, 4).Value = Worksheets("calc").Range("E5")
.Range("A65536").End(xlUp).Offset(0, 6).Value = Worksheets("calc").Range("E6")
.Range("A65536").End(xlUp).Offset(0, 8).Value = Worksheets("calc").Range("E7")
End With
Worksheets("calc").Activate
End Sub
-------------------------------
