wsname logfile 使用 mac 地址或主机名命名为文件名

wsname logfile 使用 mac 地址或主机名命名为文件名

我正在使用 wsname 在部署工作站时对其进行重命名。我有一个 \logfile 开关,它将 wsname 日志文件的默认位置更改为 C 盘上的文件夹。我想将其更改为网络位置,但我需要能够根据 mac 地址或主机名指定文件的名称,以便将其与其他 20 台将同时重命名的计算机区分开来。有办法吗?

谢谢

我发现我可以使用 %computername% 将文件重命名为 computername。可以使用 mac 地址来完成吗?

答案1

我假设您正在使用 David Clarke 的 WSname.exe 工具?

您可以在脚本中尝试以下代码片段来设置文件名。它假设您有一个 NIC,或者最后一个 NIC 是一个足够好的标识符:

for /f "tokens=1-15" %%a in ('ipconfig /all') do @echo %%a | find "Physical" > nul && set filename=%%l 
@echo My filename is %filename%

解释:Ipconfig /all 提供包括 mac 地址在内的 NIC 配置信息。包含 mac 地址的行具有以下格式(Windows xp sp3,ymmv):

物理地址。。。。。。。。。。:00-1A-1B-1C-1D-1E

此代码片段将 ipconfig 的输出通过 find.exe 传输,并查找物理地址的“物理”部分。如果 Find.exe 报告 errorlevel=0(成功),它会通过 && 解析剩余行并找到位置“L”或实际 mac 地址。在本例中,它会将其设置为名为“filename”的环境变量。

此解决方案应生成您想要的独特文件,并使用适用于 Windows XP 及更高版本操作系统的原生工具。如果使用 Vista 或 Windows 7,您可能需要使用特定于这些平台的 IPconfig 输出。

答案2

for /F %%a in ('wmic path win32_NetworkAdapterConfiguration where ^(IPEnabled^=^'true^' and DHCPEnabled^=^'true^'^) get MACAddress /value^| find "MACAddress"') do set %%a
set macadres=%macaddress%

在批处理文件中将环境变量设置macadres为已启用 DHCP 的活动网卡的值(在只有一个活动网卡的情况下非常有用,例如在通过 PXE 启动的情况下)。

相关内容