无忧启动论坛

标题: win8pe启动中/启动后自动更改计算机名的问题 [打印本页]

作者: 北斗    时间: 2013-3-10 18:13
标题: win8pe启动中/启动后自动更改计算机名的问题
我来描述一下,情况是这样的:

局域网内会有多台电脑同时启动Win8PE,它们启动后的计算机名是相同的,只有最先启动完的电脑可以访问局域网的共享资源,之后启动完成的电脑是无法访问的。

在使用2003PE的时候解决这个问题,是通过PECMD的脚本完成的。首先在启动网络的CMD中用set命令定义一个变量为随机数,然后用PECMD.EXE UPNP -pnp -cn %pename% -wg WORKGROUP,将计算机名设置为随机数,然后会有个choice手动选择一个内网IP,一直都工作的很好。

最近开始折腾8pe,但用上面的方法没有成功,请教一下大家如何在8pe里实现自动更改计算机名?谢谢大家!
作者: 北斗    时间: 2013-3-10 21:11
自己顶一下吧,,貌似这种问题很少人遇到
作者: 2013723280    时间: 2013-3-10 22:16
标题: 回复 #1 北斗 的帖子
[fly] time.cmd内容如下 写入time.txt文件  你要做的就是把两个时间(随机时间 和 电脑时间)设置成变量 用变量设置电脑名                                         [/fly]
@echo off
set /a randh=%random%%%24
set /a randm=%random%%%60
if %randm% lss 10 set randm=0%randm%
for /f "delims=: tokens=1-3" %%i in ("%time:~0,-6%") do (
set time_hend=%%i
set time_mend=%%j
)
echo %randh%:%randm%>>time.txt
echo %time_hend: =%:%time_mend%>>time.txt
if %randh%:%randm%==%time_hend: =%:%time_mend% md time.txt

[ 本帖最后由 2013723280 于 2013-3-10 22:24 编辑 ]
作者: 北斗    时间: 2013-3-10 22:36
原帖由 2013723280 于 2013-3-10 22:16 发表
time.cmd内容如下 写入time.txt文件  你要做的就是把两个时间(随机时间 和 电脑时间)设置成变量 用变量设置电脑名                                         
@echo off
set /a randh=%random%%%24
set / ...

谢谢兄弟,我现在的问题不是产生变量的问题,而是怎么把变量(在开机的时候或者驱动网络的时候)变成8pe的计算机名的问题。变量我直接用%random%就可以,0-32726之间的随机数够我用了。
作者: 2013723280    时间: 2013-3-10 23:03
标题: 回复 #4 北斗 的帖子
[fly]根据下面的自己慢慢搞                 [/fly]

::赋予注册表根键变量
set hklm=reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon"
set hklm2=reg add "HKLM\SYSTEM\ControlSet001
set hklm3=reg add "HKLM\SYSTEM\ControlSet002
set hklm4=reg add "HKLM\SYSTEM\CurrentControlSet
set /p name=请输入计算机名:
set reg=/t reg_sz /d %name% /f

::开始导入注册表来修改计算机名
%hklm% /v DefaultDomainName %reg%
%hklm% /v AltDefaultDomainName %reg%
%hklm2%\Control\ComputerName\ActiveComputerName" /v ComputerName %reg%
%hklm2%\Control\ComputerName\ComputerName" /v ComputerName %reg%
%hklm2%\Services\Eventlog" /v ComputerName %reg%
%hklm2%\Services\Tcpip\Parameters" /v "NV Hostname" %reg%
%hklm2%\Services\Tcpip\Parameters" /v Hostname %reg%
%hklm3%\Control\ComputerName\ComputerName" /v ComputerName %reg%
%hklm3%\Services\Eventlog" /v ComputerName %reg%
%hklm3%\Services\Tcpip\Parameters" /v "NV Hostname" %reg%
%hklm3%\Services\Tcpip\Parameters" /v Hostname %reg%
%hklm4%\Control\ComputerName\ActiveComputerName" /v ComputerName %reg%
%hklm4%\Control\ComputerName\ComputerName" /v ComputerName %reg%
%hklm4%\Services\Eventlog" /v ComputerName %reg%
%hklm4%\Services\Tcpip\Parameters" /v "NV Hostname" %reg%
%hklm4%\Services\Tcpip\Parameters" /v Hostname %reg%
作者: 北斗    时间: 2013-3-11 00:02
谢谢楼上的朋友,让你费心了,只是那段代码不太合适。



放狗搜索后结果的总结:

首先开机CMD批处理中先用set 将pcname变量设置为随机数,然后如下就行了:

reg add "HKLM\SYSTEM\ControlSet001\Control\ComputerName\ComputerName" /f /v "ComputerName" /t REG_SZ /d "8PE%pcname%"
reg add "HKLM\SYSTEM\ControlSet001\Control\ComputerName\ActiveComputerName" /f /v "ComputerName" /t REG_SZ /d "8PE%pcname%"
reg add "HKLM\SYSTEM\ControlSet001\services\Tcpip\Parameters" /f /v "hostname" /t REG_SZ /d "8PE%pcname%"
reg add "HKLM\SYSTEM\ControlSet001\services\Tcpip\Parameters" /f /v "NV Hostname" /t REG_SZ /d "8PE%pcname%"


8pe下测试成功。
作者: hhh333    时间: 2013-3-11 12:28
标题: 回复 #6 北斗 的帖子
另外提醒一下,环境变量中的计算机名也要改一下就一致了。
作者: 北斗    时间: 2013-3-11 12:40
原帖由 hhh333 于 2013-3-11 12:28 发表
另外提醒一下,环境变量中的计算机名也要改一下就一致了。

谢谢hhh333大大。
作者: sp_star    时间: 2013-3-11 13:25
要是你的PE不是特别精简的话,可以试试wpeinit.exe+schema.dat的方式,应该能直接生成一个随机的计算机名。
作者: hhh333    时间: 2013-3-11 14:42
标题: 回复 #9 sp_star 的帖子
也是,本来就会随机地生成计算机名的。

我用如下代码来固定计算机名:
  1. _SUB ComputerNameSet
  2. REGI HKLM\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName\ComputerName=WINPE
  3. REGI HKLM\SYSTEM\CurrentControlSet\Control\ComputerName\ActiveComputerName\ComputerName=WINPE
  4. REGI HKLM\SYSTEM\CurrentControlSet\services\Tcpip\Parameters\Hostname=WINPE
  5. REGI HKLM\SYSTEM\CurrentControlSet\services\Tcpip\Parameters\NV Hostname=WINPE
  6. REGI HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\ComputerName=WINPE
  7. _END
复制代码


好象还没有比较好的办法来直接更改计算机名,用以上代码后,最好再kill explorer就可以使改变生效。也许更名是一个对系统进行重要改变的动作,所以正常系统中更名是要求重新启动的,MS也没有提供更名的命令。

[ 本帖最后由 hhh333 于 2013-3-11 14:50 编辑 ]
作者: ikelca    时间: 2014-11-14 15:24
求问 为什么不能用 ENVI PCNAME=%RANDOM% 来设置??




欢迎光临 无忧启动论坛 (http://wuyou.net/) Powered by Discuz! X3.3