2016-10-28 7 views
0

Я хочу изменить имя машины Windows 7 с помощью ввода от пользователя, использующего BAT-файл. Имя, которое я хочу изменить, - это имя компьютера в расширенных системных настройках. (См скриншот ниже)Изменение имени компьютера Windows BAT-файла

enter image description here

Ниже код, что я попробовал, но не работает. Я также пытался запустить код как администратор, а затем перезапустить, тоже не работал.

SET /P PCNAME=Please enter your name: 
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName /v ComputerName /t REG_SZ /d %PCNAME% /f 
+0

его вопрос не был таким же, он был удалить его вход, так что никогда не получать хранится. У меня нет этого. – BLang

+0

Вы можете сделать это легко с помощью vbscript! – Hackoo

+3

Почему бы вам не поискать stackoverflow на первом месте? Не было никаких усилий, чтобы перейти к [link] (https://stackoverflow.com/questions/54989/change-windows-hostname-from-commandline) с некоторыми решениями. – LotPings

ответ

2

Быстрый Google приносит эту команду:

WMIC ComputerSystem where Name=COMPUTERNAME call Rename Name=NewName 

Если имя компьютера имеет черточки или другие специальные символы, которые нужно процитировать имени компьютера

WMIC ComputerSystem where Name="COMPUTER-NAME" call Rename Name=NewName 

Source

С методом powershell:

Powershell 3.0 (Windows 8) представил командлет Rename-Computer. Пример:

Rename-Computer -NewName NewComputerName -Restart 

Это переименует компьютер и немедленно перезапустится.

TechNet Documentation.

С Метод VBScript:

Option Explicit 
Title = "Renaming PC" 
Dim Title,strComputer,objWMIService,strNewName,objComputer 
Dim Obj,Question,err,strDescription,colComputers,x 
'Run as Admin 
If Not WScript.Arguments.Named.Exists("elevate") Then 
    CreateObject("Shell.Application").ShellExecute DblQuote(WScript.FullName) _ 
    , DblQuote(WScript.ScriptFullName) & " /elevate", "", "runas", 1 
    WScript.Quit 
End If 
'************************************Main Script**************************************** 
Call Rename_PC() 
'If you want to change the description of the computer, you should uncomment this line : 
'Call Changing_Descrption() 
Call Ask4Reboot() 
'*********************************Changing PC Name ************************************* 
Sub Rename_PC() 
strComputer = "." 
Set objWMIService = GetObject("winmgmts:" _ 
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") 
strNewName = Inputbox ("Enter the new name of the PC : ",Title,"Salle-Poste") 
If strNewName = "" Then Wscript.Quit() 
Set colComputers = objWMIService.ExecQuery ("Select * from Win32_ComputerSystem") 
For Each objComputer in colComputers 
    err = objComputer.Rename(strNewName) 
Next 
End Sub 
'*************************** Changing the description ********************************** 
Sub Changing_Descrption() 
strDescription = Inputbox("Enter Description : ",Title,"Machine blalllaaaaaaa") 
If strDescription = "" Then Wscript.Quit() 
Set Obj= GetObject("winmgmts:\\" & strComputer).InstancesOf("Win32_OperatingSystem") 
For Each x In Obj 
    x.Description = strDescription 
    x.Put_ 
Next 
End Sub 
'*************************************************************************************** 
Sub Ask4Reboot() 
Question = MsgBox("PC name will change " & DblQuote(strNewName) & " after restarting this computer" & vbCrLf &_ 
"Yes to restart" & vbCrLF &_ 
"No to cancel the restart" & vbtab & "?",VbYesNo+VbQuestion,Title) 
If Question = VbYes then 
    Reboot() 
Else 
    wscript.Quit(1) 
End If 
End Sub 
'************************************** 
Function DblQuote(Str) 
    DblQuote = chr(34) & Str & chr(34) 
End function 
'************************************** 
Sub Reboot() 
Dim ws,Command,Result 
Set ws = CreateObject("Wscript.Shell") 
Command = "Shutdown.exe /r /t 20 /c "& DblQuote("Save your documents - PC restarts in 20 seconds") 
Result = ws.run(Command,0,True) 
End Sub 
'**************************************