Pewnie ka?dy administrator, staje z czasem przed problemem, ?e w sieci ma totalny ba?agan jesli chodzi o nazwy hostów, zw?aszcza jak komputery przyje?d?aj? preinstalowane. Ja tak?e postanowi?em zrobi? sobie porz?dek poniewa? w?a?nie przygotowuje sieciowy backup i nie chce jako nazwy klientów podawa? IP, które jest z DHCP, poza tym wybieranie klientów do restore lub backupu po IP to utrudnienie a nie u?atwienie. Dlatego te? komputery b?d? nazywa?y si? tak jak pracuj?cy na nich userzy. Tutaj zaczynaj? si? schody, poniewa? w Active Directory gdzie figuruj? wszystkie komputery nie ma mo?liwo?ci zmiany ich nazwy. Mo?na zarz?dza? wszystkim co tylko mamy pod Zarz?dzaj po klikni?ciu prawym na Mój Komputer, no ale nazwy jednak zmieni? nie mo?na. Nie jest tak ?le i mo?na sobie oszcz?dzi? biegania od komputera do komputera jednak przy pomocy dwóch programów i jednego skryptu. Po pierwsze potrzebujemy PsTools oraz wsname.
Na koniec, potrzebujemy skrypt (nazwij go dowolnie np changer.cmd)
@echo off
if "%1" EQU "" GOTO SHOWSYNTAX
if "%2" EQU "" GOTO SHOWSYNTAX
if "%3" EQU "" GOTO SHOWSYNTAX
if "%4" EQU "" GOTO SHOWSYNTAX
if not exist wsname.exe GOTO SHOWSYNTAX
if not exist psexec.exe GOTO SHOWSYNTAX
if /i "%5" EQU "REBOOT" (
SET REBOOT=Y
) ELSE (
SET REBOOT=N
)
echo Connecting
net use \\%1\ipc$ > NUL
if NOT ERRORLEVEL == 0 GOTO NETERROR
echo Copying WSNAME locally
COPY WSNAME.EXE \\%1\C$ > NUL
echo Launching WSNAME
PSEXEC \\%1 C:\WSNAME.EXE /N:%2 /RCID /USER:%3 /PASS:%4
if "%ERRORLEVEL%" NEQ "0" SET REBOOT=N
echo Tidying Up
DEL \\%1\C$\WSNAME.EXE
echo Disconnecting
net use \\%1\ipc$ /d > NUL
if "%REBOOT%" EQU "Y" (
echo Rebooting '%2' so new the name will take effect
shutdown /m \\%1 /r /f /c "Rebooting so new name will take effect"
)
GOTO END
:NETERROR
echo.
echo ERROR: Could not connect to %1
echo.
GOTO END
:SHOWSYNTAX
echo.
echo Remote Rename in Domain
echo. Syntax: RemoteName "device existing name" "new name" "userid" "password" [REBOOT]
echo.
echo. Requires PSEXEC.EXE and WSNAME.EXE
echo.
echo. Get PSEXEC from www.sysinternals.com
echo.
echo.
:END
SET REBOOT=
Wrzucamy wszystko do jednego katalogu, wchodzimy do shella (cmd) i piszemy (b?d?c w katalogu ze skryptem i programami):
changer 10.1.0.50 JanKowalski DOMENA/Administrator haslo [reboot]
changer – to nazwa naszego skryptu
10.1.0.50 – adres komputera docelowego (mo?e by? te? nazwa NetBIOSowa)
JanKowalski – nowa nazwa komputera
DOMENA/Administrator – u?ytkownik z prawami do zmiany nazwy (gdy komputery s? w domenie to mamy u?atwione zadanie poniewa? wystarczy Administrator domeny dla ka?dego komputera, je?li nie to có?, mam nadzieje, ?e znasz has?a ka?dego komputera ;)
haslo – has?o u?ytkownika DOMENA/Administrator
[reboot] – wymuszenie restartu aby zmiany odnios?y skutek
Napewno b??dem, który napotkasz b?dzie jednak nie dzia?anie tego rozwi?zania z powodu zapory Windowsowej. Znowu w domenie mo?na za?atwi? to przez GPO, bez domeny pozostaje bieganie do komputerów.
Wy??czamy zapor? stosuj?c nast?puj?ce GPO:
i podpinamy do komputerów, których ma dotyczy?.
Nastepnie czekamy, a? polityki si? od?wie?? lub odpalamy gpupdate /force .
Jesli maszyna zacznie odpowiadac na pingi to mo?emy zacz?? zabawe ze zmianami nazw :)