Excel + VBA + バッチファイルでセットアップ作業の自動化をやってみる


概要

なんかのソフトをインストールする際に、手でやる作業を自動化し、時間短縮&ミス防止を図ってみる。
Excelで設定値、実行日時等を管理。ボタンを押したら、VBA or バッチファイル実行など。

IPアドレス取得

Sub IPアドレス取得_Click()
'
' IP アドレス取得
'   WMI を用いて IP アドレスを取得
'
    Dim NetAdapters, objNic, strIPAddress
    Set NetAdapters = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2") _
                           .ExecQuery("Select * from Win32_NetworkAdapterConfiguration " & _
                           "Where (IPEnabled = TRUE)")
     'ネットワークアダプターが複数ある場合、複数IPが割り当てられている場合は最初のみ取得
    For Each objNic In NetAdapters
        For Each strIPAddress In objNic.IPAddress
            GetIPAddress = strIPAddress
            Range("B4").Value = GetIPAddress
            Exit Sub
        Next
    Next
End Sub

参考: http://mt-soft.sakura.ne.jp/kyozai/excel_vba/300_vba_kiso/70_getinfo/index.htm

ホスト名取得

Sub ホスト名取得_Click()
    Dim WshNetworkObject As IWshRuntimeLibrary.WshNetwork
    Set WshNetworkObject = New IWshRuntimeLibrary.WshNetwork

    Range("B7").Value = WshNetworkObject.ComputerName

    Set WshNetworkObject = Nothing

End Sub

参考: https://www.moug.net/tech/exvba/0150087.html

hostsファイルへの追記

Sub hostsファイル編集_Click()

    Dim ret As Long

    ' hostsファイルを退避してリネーム
    FileCopy "C:\Windows\System32\drivers\etc\hosts", "C:\Users\81806\Desktop\host_bak"
    ' 退避したファイルから編集用のファイルを作成
    FileCopy "C:\Users\81806\Desktop\host_bak", "C:\Users\81806\Desktop\host_edit"
    ' 編集用のファイルに、IPアドレスとホスト名の組み合わせを追記
    Open "C:\Users\81806\Desktop\host_edit" For Append As #1
        Print #1, Range("B4") & "             " & Range("B7")
    Close #1

    ' hostsファイルを置き換え
    If Dir("C:\Work\Test.txt") <> "" Then
        ret = MsgBox("同名のファイルが存在します。" & vbCrLf & _
                  "上書きしますか?", vbYesNo)
        If ret = vbNo Then Exit Sub
    End If
    FileCopy "C:\Tmp\Test.txt", "C:\Work\Test.txt"

End Sub

UAC無効

deleteUac.bat
@echo off
  reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v "ConsentPromptBehaviorAdmin" /t REG_DWORD /d "0" /f
  reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v "PromptOnSecureDesktop" /t REG_DWORD /d "0" /f
  reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v "EnableLUA" /t REG_DWORD /d "1" /f
  pause
exit

参考: https://www.atmarkit.co.jp/ait/articles/1810/25/news017.html