根據主板的SN碼匹配對應的 計算機名字 並且完成改名.
大家好,我是新來的小白.95年,目前在一家外企工作
- 原因
公司新來了一批機器,大概40-50臺左右,因爲要入域嘛,所以要更改計算機名字.
你一個個翻SN 對應 Excel 哪一個hostname你會瘋掉的.
就寫了一個小腳本.
這個腳本是集合進去自己公司鏡像裏面的一個小腳本,所以單獨拆開來給你們講,畢竟搜了一圈沒搜到相關教程.
未來有時間把鏡像也給你們講一下怎麼做. 教程很水,高手放過.
**
代碼如下.
**
@echo off
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
for /f "tokens=2 delims==" %%i in ('wmic bios get serialnumber /value') do set SN=%%i
for /f "tokens=2 delims=|" %%a in ('findstr "^%SN%" C:\Temp\SN.txt') do set compName=%%a
wmic COMPUTERSYSTEM WHERE Name="%computername%" CALL rename name=%compName%
代碼解析
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
這一段主要是爲了提權,提權的意思就是提高權限,因爲你不保證你所有機器登錄的帳號一定是Admin,就是最高權限那個,
這時候你雙擊這個腳本,其實它還是以普通用戶去跑,並沒有使用到Admin權限.
你需要右鍵管理員才能跑這個腳本.
這個代碼其實是爲了模擬出右鍵>以管理員賬戶去跑這個功能.
聽明白了嗎同學們…
好了,要到第二段了…
for /f "tokens=2 delims==" %%i in ('wmic bios get serialnumber /value') do set SN=%%i
這裏主要運用到Cmd 的 查找命令跟設定變量以及分隔選中命令.
tokens=2 取第二個
delims== 用=號分隔
wmic bios get serialnumber /value 後面的/value是爲了多一個= 號
do set SN=%%i 設變量
for /f "tokens=2 delims=|" %%a in ('findstr "^%SN%" C:\Temp\SN.txt') do set compName=%%a
wmic COMPUTERSYSTEM WHERE Name="%computername%" CALL rename name=%compName%
‘findstr “^%SN%” C:\Temp\SN.txt’ 查找 變量%SN% 在這個txt文檔
查找到之後 用|分隔 取第二個,設變量爲compName=%%a
SN.TXT格式如下
SN|HOSTNAME
wmic COMPUTERSYSTEM WHERE Name="%computername%" CALL rename name=%compName%
更簡單,不說了.
完畢…
爲什麼這麼虎頭虎腦,因爲這破東西我沒保存,我退出去一次想死.
其實我寫了很多的…