使用计算机SN号作为计算机名字的一个小脚本 win10可用,snwin10


根据主板的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%

更简单,不说了.

完毕…

为什么这么虎头虎脑,因为这破东西我没保存,我退出去一次想死.
其实我写了很多的…

相关内容

    暂无相关文章