概要
なんかのソフトをインストールする際に、手でやる作業を自動化し、時間短縮&ミス防止を図ってみる。
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