1@echo off
2setlocal EnableExtensions
3set "ONEVM_HOSTNAME="
4for %%D in (D E F G H I J K L M N O P Q R S T U V W X Y Z) do if exist "%%D:\onenote-vm.ini" for /f "usebackq tokens=1,* delims==" %%A in ("%%D:\onenote-vm.ini") do (
5 if /i "%%A"=="HOSTNAME" set "ONEVM_HOSTNAME=%%B"
6 if /i "%%A"=="TOKEN" set "WIN7_TOKEN=%%B"
7)
8if not defined ONEVM_HOSTNAME goto agent
9if /i "%COMPUTERNAME%"=="%ONEVM_HOSTNAME%" goto agent
10rem Windows 11 ships without wmic; Windows 7 PowerShell lacks Rename-Computer.
11where wmic >nul 2>&1 || goto rename_powershell
12wmic computersystem where name="%COMPUTERNAME%" call rename name="%ONEVM_HOSTNAME%" >"%~dp0bootstrap.log" 2>&1
13find "ReturnValue = 0;" "%~dp0bootstrap.log" >nul || exit /b 1
14goto restart
15:rename_powershell
16powershell -NoProfile -Command "Rename-Computer -NewName '%ONEVM_HOSTNAME%' -Force -ErrorAction Stop" >"%~dp0bootstrap.log" 2>&1 || exit /b 1
17:restart
18shutdown /r /t 0
19exit /b
20
21:agent
22call "%~dp0run.bat"