Como renomear vários computadores em um domínio

2

Eu herdei esta convenção de nomes estúpidos:

COMPANYNAME-CITY20090724 ou COMPANYNAME-CITY-JOHN

Não me diz nada sobre a localização (piso, departamento). John deixou a empresa há meses. Computadores de uma cidade se mudaram para outra cidade, mas o nome não foi alterado.

Como você pode renomear mais de 100 computadores quando quiser criar uma nova convenção de nomenclatura?

    
por Jindrich 24.07.2009 / 03:01

4 respostas

5

Claro que sim. O utilitário NETDOM é "seu amigo" neste caso. Você pode usar um script de inicialização para renomear computadores.

Alguns documentos do NETDOM estão aqui:

Eu pude ver um roteiro simplista como este:

@echo off
IF "%COMPUTERNAME%"=="COMPANYNAME-CITY-JOHN" SET NEWNAME=NEWNAME-HERE
IF "%COMPUTERNAME%"=="COMPANYNAME-CITY-BOB" SET NEWNAME=NEWNAME-HERE2
... more machines ...
IF NOT "%NEWNAME%"=="" NETDOM renamecomputer member /newname:%NEWNAME% /userd:USER-TO-PERFORM-RENAME-UNDER /password:PASSWORD-FOR-THAT-USER

Quando todos os computadores forem renomeados, você poderá remover o script de inicialização. Não deve ser muito "caro" rodar em computadores que já foram renomeados. Se você estivesse preocupado com isso, poderia fazer a técnica "trapdoor", na qual o script termina com o computador se colocando em um grupo ao qual foi negado o direito de executar o script.

  • Crie um grupo no AD - diga "Renomear computador completo".
  • Modifique a permissão do grupo para incluir "Computadores do domínio - Gravar / adicionar self como membro"
  • No script de arquivo em lote simplista acima, adicione a linha no final:
IF NOT "%NEWNAME%"=="" NET GROUP "User Creation Script Complete" /DOMAIN /ADD %COMPUTERNAME%$

Você verá esse grupo "aumentar" os computadores membros à medida que eles são executados em cada máquina. Para impedir que o script seja executado em computadores nos quais ele já está em execução, adicione uma permissão ao GPO que atribui o script de inicialização "Renomeação do Computador Concluída - Negar Aplicar Diretiva de Grupo". Então o script será executado uma vez em cada máquina.

Como serão seus nomes de destino? Se você é como eu e como os números de marca de serviço da Dell, você poderia fazer algo assim (no VBScript):

Option Explicit
Dim objWMIService, strNewName, objShell, objNetwork
Set objShell = CreateObject("WScript.Shell")
Set objNetwork = CreateObject("WScript.Network")

' Obtain the service tag
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\.\root\cimv2") 
For Each objSMBIOS in objWMIService.ExecQuery("SELECT * FROM Win32_SystemEnclosure")
    strNewName = objSMBIOS.SerialNumber 
Next

' Check for empty string
If (strNewName = "") Then WScript.Quit

' Does the computer need to be renamed?
If (UCase(strNewName) <> UCase(objNetwork.ComputerName)) Then    
     objShell.Run "NETDOM renamecomputer member /newname:" & strNewName & " /userd:USER-TO-PERFORM-RENAME-UNDER /password:PASSWORD-FOR-THAT-USER"
End If

Esse script pode ser executado o tempo todo, e constantemente renomear os computadores que não foram nomeados com base em suas tags de serviço ... heh heh. (Eu não tenho certeza se eu realmente faria isso, e se eu fizesse, eu colocaria mais sanidade no script.)

    
por 24.07.2009 / 03:07
2

Você pode fazer isso por meio do PowerShell. No Excel, crie um arquivo com duas colunas, uma para o nome antigo e outra para o novo nome. Adicione uma linha de cabeçalho oldname e newname. Salve-o como um CSV (mylist.csv) e execute-o no powershell:

function renameAndReboot([string]$computer, [string]$newname)
{
        $comp = gwmi win32_computersystem  -computer $computer
        $os   = gwmi win32_operatingsystem -computer $computer

        $comp.Rename($newname)
        $os.Reboot()
}

Import-Csv mylist.csv

foreach ($entry in $list)
{
    renameAndReboot($entry.oldname,$entry.newname)
}

... o código principal veio de aqui .

    
por 24.07.2009 / 03:09
0

Computers from one city moved to another city, but the name hasn't been changed.

Esta é uma fraqueza dos esquemas de nomenclatura que tentam descrever a localização, o proprietário, a função, etc. As coisas mudam . Então, você acaba renomeando os computadores com frequência (e reinicia todas as vezes!) Ou tem um esquema de nomenclatura que cai em desuso com o passar do tempo.

Posso sugerir o campo de descrição ? texto alternativo http:////lh3.ggpht.com/BryanLockwood/SKbN8OdozVI/AAAAAAAAAVU/C3ZeLX0_wGc/%5C%5Ccojones.org%5Cfiles%5Cusers%5Cbryan%5CDesktop%5CComputerDescription.PNG? imgmax = 512

Você pode listar computadores e suas descrições facilmente: texto alternativo http://lh6.ggpht.com/BryanLockwood/SKbN8HBTywI/AAAAAAAAAVc/vu65Fm4R5aM/%5C%5Ccojones.org%5Cfiles%5Cusers%5Cbryan%5CDesktop%5Ccmd-example-descriptions.PNG?imgmax=512

Mais sobre isso no meu blog.

    
por 24.07.2009 / 06:22
0

Se você não estiver familiarizado com a ferramenta de linha de comando Netdom, tente usar o Netdom renomear a GUI do computador de < um href="https://colosify.com"> colosify .

Ele ajudará você a renomear vários computadores em seu domínio fazendo o upload de um arquivo .csv sem a necessidade de lembrar ou aprender qualquer código de linha de comando ou criar scripts.

Esta GUI me poupou muito tempo.

    
por 22.02.2015 / 01:59