FAQ по Microsoft Windows Server 2003

       

Как организовать переименование рабочих станций в домене удаленно


Способ 1

Рекомендации из статьи MS KB How To Use the Netdom.exe Utility to Rename a Computer in Windows Server 2003:

Можно использовать утилиту Netdom.exe (входит в состав Windows Server 2003 Support Tools) для переименования компьютеров-членов домена Microsoft Windows 2000 или Windows Server 2003. Эта процедура может быть применена для переименования как локального так и удаленного компьютера. Так же процедура не требует от Вас сброса или ручной переустановки учетной записи компьютера домена

При помощи утилиты Netdom.exe возможно переименование компьютера-члена домена Windows Server 2003. Однако для переименования компьютера необходимо указать учетную запись пользователя с правами локального администратора и учетную запись компьютера в Active Directory.

Примечание: Для переименования контроллера домена с использованием команды netdom домен должен функционировать на уровне домена Windows Server 2003.

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

Компьютеры-члены домена так же могут быть переименованы.

Определенные службы, такие как службы сертификации (certification authority), ссылаются на установленное имя компьютера. Если службы такого типа запущены на компьютере, то изменение его имени может привести к нежелательным результатам. Во избежание этого не используйте данную команду для изменения имени контроллера домена.

Вместо этого используйте команду netdom computername.

Для получения дополнительных сведений обратитесь к справочной системе с запросом netdom, смотрите раздел "Переименование контроллера домена: Active Directory".

Изменение имени компьютера

1. Установите Windows Server 2003 Support Tools из каталога Support\Tools с установочного диска Windows Server 2003. (Для этого нажмите правую кнопку мыши на файле Suptools.msi в каталоге Support\Tools и выберите Установить.)



2. В командной строке введите следующую команду. Примечание: Эта команда представлена в несколько строк для лучшего восприятия. Вводить команду необходимо в одну строку.


netdom renamecomputer Computername /newname:new_computername

/userd:domain\UserName /passwordd:password |* /usero:UserName

/passwordo:password |* /force /reboot:Time in seconds

Далее следует описание параметров данной команды:

Computername: Исходное имя компьютера.

New_computername: Имя компьютера после переименование. Оба имени компьютера: и DNS имя и NetBIOS будут изменены на новое. Если в новом имени компьютера больше 15 символов, то NetBIOS имя компьютера будет сокращено до первых 15 символов.

/userd:Domain\UserName: Учетная запись пользователя используемая для подключения к домену. Эта учетная запись используется для подключения к домену, членом которого является компьютер. Этот параметр обязателен, а в случае если домен не указан, подразумевается домен компьютера.

/usero:UserName: Учетная запись пользователя используемая для создания домена и имеющая права локального администратора (может быть одной из учетных записей указанных в параметре /userd:). Эта учетная запись используется для подключения к компьютеру который будет переименован. Если не указано, используется учетная запись (загруженного) сеанса пользователя. Пользователи домена могут быть указаны как "/uo:domain\user". Если домен не указан, то подразумевается локальная учетная запись компьютера.

/passwordd: password: Пароль учетной записи пользователя указанной в параметре /userd.

/passwordo: password: Пароль учетной записи пользователя указанной в параметре /usero.

force: Эта команда может неблагоприятно отразиться на некоторых запущенных на компьютере службах. Если параметр /force не указан, у пользователя будет запрошено подтверждение на выполнение команды.

Reboot: Этот параметр указывается в случае если необходима автоматическая перезагрузка компьютера после проведения переименования. Число секунд до автоматической перезагрузки может быть указано. По умолчанию секунд 30. Если этот параметр не указан, то компьютер должен быть перезагружен вручную.

Например, есть рабочая станция с именем "Mycomputer" член домена с именем "Mydomain." Вам необходимо изменить имя компьютера на "Yourcomputer", после чего автоматически перезагрузить компьютер через 60 секунд после переименования. Вы можете использовать следующую команду.



Примечание: Эта команда представлена в несколько строк для лучшего восприятия. Вводить команду необходимо в одну строку.

netdom renamecomputer mycomputer /newname:yourcomputer

/userD:mydomain\administrator /passwordd:*

/usero:administrator /passwordo:* /reboot:60

Будет показано следующее предупреждение и будет показан запрос на подтверждение продолжения процедуры переименования компьютера:

This operation will rename the computer "Mycomputer" to "Yourcomputer". Certain services, such as certification authority, rely on a fixed computer name. If any services of this type are running on "Mycomputer", a computer name change would have an adverse impact.

Если вы не хотите подтверждать выполнение команды, то вместе с остальными параметрами используйте /force при вводе команды netdom

Способ 2

Использование утилиты Workstation Name Changer (WSName.exe)

Переименование удаленных компьютеров:

Посмотрите пример VB скрипта для изменения имени удаленного компьютера (используется WMI только для Windows 2000 и старше) или, если вам удобнее будет использовать Batch файлы, посмотрите этот вариант который использует PSEXEC от SysInternals.

За дополнительной информацией по использованию утилиты WSName.exe и поддерживаемых ею параметрах вы можете обратиться к этому ресурсу

Способ 3

В качестве альтернативного варианта возможно использование VB скриптов для переименования рабочих станций в составе домена.

Вот два примера скриптов (*.vbs):

Вариант 1:

' ------ SCRIPT CONFIGURATION ------ strComputer = "" e.g. joe-xp strNewComputer = "" e.g. joe-pc strDomainUser = "" e.g. administrator@domain strDomainPasswd = "" strLocalUser = "" e.g. joe-xp\administrator strLocalPasswd = "" ' ------ END CONFIGURATION ---------

'########################### ' Connect to Computer '########################### set objWMILocator = CreateObject("WbemScripting.SWbemLocator") objWMILocator.Security_.AuthenticationLevel = 6 set objWMIComputer = objWMILocator.ConnectServer(strComputer, _ "root\cimv2", _ strLocalUser, _ strLocalPasswd) set objWMIComputerSystem = objWMIComputer.Get( _ "Win32_ComputerSystem.Name='" & _ strComputer & "'") '########################### ' Rename Computer '########################### rc = objWMIComputerSystem.Rename(strNewComputer, _ strDomainPasswd, _ strDomainUser) if rc <> 0 then WScript.Echo "Rename failed with error: " & rc else WScript.Echo "Successfully renamed " & strComputer & " to " & _ strNewComputer end if



WScript.Echo "Rebooting..." set objWSHShell = WScript.CreateObject("WScript.Shell") objWSHShell.Run "rundll32 shell32.dll,SHExitWindowsEx 2"

Вариант 2:

Dim RegKeyCompName, RegKeyTCPIP, WSHShell, ComputerName, HostName, DomainName, FQDN, ADRootDSE, ADSysInfo, ADComputerName, ADRenameOK, ADRNewName, vStartRenameCA, NewNAmeU, NewNameL, vStartRenameAD

On Error Resume Next

'###### READ IN EXISTING COMPUTERNAME AND FQDN ######

RegKeyCompName = "HKLM\SYSTEM\CurrentControlSet\Control\ComputerName\" RegKeyTCPIP = "HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\"

Set WSHShell = CreateObject("WScript.Shell")

ComputerName = WSHShell.RegRead (RegKeyCompName & "ComputerName\ComputerName") Hostname = WSHShell.RegRead (RegKeyTCPIP & "Hostname") DomainName = WSHShell.RegRead (RegKeyTCPIP & "Domain") FQDN = HostName & "." & DomainName

Set ADRootDSE = GetObject("LDAP://RootDSE") If Err.Number <> 0 then ADComputerName = "Unable to determine this information" ADOU = "Unable to determine this information" ADRenameOK = "0" else Set ADSysInfo = CreateObject("ADSystemInfo") ADComputerName = ADSysInfo.ComputerName 'Get DN of local computer ADRenameOK = "1" ADOU = Mid(ADComputerName, InStr(ADComputerName, "=") + 1) 'Strip off just after the first = sign ADOU = Mid(ADOU, InStr(ADOU, "=") - 2) 'Strip off at 2 before the second = sign ComputerPath = "LDAP://" & ADComputerName OUPath = "LDAP://" & ADOU End if

'###### ASK USER FOR NEW DETAILS ###########

MsgBox "This script renames this computer and its active directory account" & vbCr & vbCr & "Name: " & ComputerName & vbCr & "FQDN: " & FQDN & vbCr & vbCr & "AD DN: " & ADComputerName & vbCr & "AD OU: " & ADOU, 0, "Information"


NewName = InputBox(" Enter the new computer name below and click OK to continue","Rename: Step 1") NewNameU = UCase(NewName) NewNameL = LCase(NewName) NewNameUCN = "CN=" & NewNameU

if NewName = "" then wscript.echo "The computer name has not been changed" else vStartRenameCA = MsgBox ("Continue and rename computer to: " & NewName,vbYesNo or vbExclamation,"Rename: Step 2") if vStartRenameCA = 6 then With WSHShell .RegDelete RegKeyTCPIP & "Hostname" .RegDelete RegKeyTCPIP & "NV Hostname" .RegWrite RegKeyCompName & "ComputerName\ComputerName", NewNameU .RegWrite RegKeyCompName & "ActiveComputerName\ComputerName", NewNameU .RegWrite RegKeyTCPIP & "Hostname", NewNameL .RegWrite RegKeyTCPIP & "NV Hostname", NewNameL End With wscript.echo "The computer name and FQDN have been changed" elseif vStartRenameCA = 7 then wscript.echo "The computer name and FQDN have NOT been changed" end if

if ADRenameOK = 1 then vStartRenameAD = MsgBox ("Continue and rename AD Account to: " & NewName,vbYesNo or vbExclamation,"Rename: Step 3") if vStartRenameAD = 6 then Set objItem = GetObject(ComputerPath) objItem.Put "dNSHostName", NewNameL & DomainName objItem.SetInfo objItem.Put "displayName", "DESKTOP_" & NewNameU & "$" objItem.SetInfo objItem.Put "sAMAccountName", NewNameU & "$" objItem.SetInfo

Set objNewOU = GetObject(OUPath) Set objMoveComputer = objNewOU.MoveHere _ (ComputerPath, NewNameUCN) wscript.echo "The active directory computer account has been changed" elseif vStartRenameAD = 7 then wscript.echo "The computer account in AD has NOT been changed" End If else wscript.echo "Insufficient information to rename AD account"

End If

End if

Если предоставленной информации оказалось недостаточно для решения вашей задачи вы можете

задать вопрос в этой теме форума OSZone.net.

Содержание раздела