Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

NetDom-Batchdatei - Umbenennen und in neue Domain verschieben

Frage Entwicklung Batch & Shell

Mitglied: Worker734

Worker734 (Level 1) - Jetzt verbinden

29.10.2005, aktualisiert 04.05.2006, 29599 Aufrufe, 16 Kommentare

[Edit] Biber: Titel geändert von "Bachtdatei" in obigen Titel. [/Edit]

Hallo,

ich bin Praktikant und habe folgende Aufgabe bekommen:


ich muss bzw. soll in einem bestehenden Netzwerk etliche PC's (ca.150) remote mit netdom.exe umbenennen.

The syntax of this command is:
NETDOM RENAMECOMPUTER machine /NewName:new-name
/UserD:user [/PasswordD:[password | *]]
[/UserO:user [/PasswordO:[password | *]]]
[/Force]
[/REBoot[:Time in seconds]]


und anschliessend in eine andere Domain verschieben.

The syntax of this command is:
NETDOM MOVE machine /Domain:domain [/OU:ou path]
[/UserD:user] [/PasswordD:[password | *]]
[/UserO:user] [/PasswordO:[password | *]]
[/UserF:user] [/PasswordF:[password | *]]
[/REBoot[:Time in seconds]]


Dazu müssen ja immer einige Parameter wie bisheriger Computername, neuer
Computername usw. über eine InputBox, bzw. Promt, abgefragt und dem Syntax für netdom.exe übergeben
und anschließend ausgeführt werden.

Jetzt suche ich eine Lösung das Ganze zu automatisieren damit nicht der gesamte Syntax erneut eingegeben werden muss.

Ich hoffe mir kann jemand weiterhelfen.

Gruß
Mitglied: Biber
30.10.2005 um 02:09 Uhr
Moin Worker734,

nun aber nicht die Schritte 7 und 8 vor den ersten machen.
Ich weiß ja nicht genau, was Du hier von uns erwartest - ein bisschen Vorarbeit wirst Du wohl zuerst noch erbringen müssen, ehe wir zum Handwerklichen kommen.

Also tritt erstmal wieder zwei Schritt zurück von den Details und schau Dir die Aufgabe ein bisschen aus sicherer Entfernung an.
Wenn Du heute 150 Computer Fritz001 bis Fritz 150 in einer Domäne A hättest und nach Deinem Praktikum sollten die Heinz4711 bis Heinz4861 heißen und in Domäne B stehen - das wäre ein voll automatisierbarer Ablauf. Alles berechenbar.

Wenn wir in einer perfekten Welt leben würden. Davon gehe ich allerdings nicht aus. Sonst wäre Merkel jetzt nicht..
Back to thread.

Wenn die bisherigen Namen schon etwas variantenreicher sind und sich die neuen Maschinennamen auch nicht per Algorithmus konstruieren lassen, braucht Du wohl als erste feste Punkte im Raum
- eine Liste ( oder Datei) mit 150 Maschinennamen (bisher),
- eine Liste ( oder Datei) mit 150 Maschinennamen (zukünftig),
...eher kannst Du wohl kaum etwas bewegen.
Bevor Du das nicht hast, lohnt es sich ja nicht, irgendetwas vor uns hinzuphantasieren.
Wenn Du diese 2x150 Namen verarbeitbar vorliegen hast, kann man über einen Batch-Fünfzeiler meditieren, der das Ganze mit ein oder zwei FOR..IN..DO-Schleifen abfackelt.
Ein paar Beispiele zu FOR..IN..DO- Verarbeitung von Textdateien findest Du im Bereich Batch & Shell. Und natürlich bei der Hilfe zu FOR ( FOR /? am CMD-Prompt eingeben).

Grüße
Biber
Bitte warten ..
Mitglied: Worker734
30.10.2005 um 11:30 Uhr
Hi,

wie bereits gesagt bin ich ein Praktikant und habe das als tolle Aufgabe bekommen.
Und leider war die Batch-Programmierung nicht Teil meiner Ausbildung zum IT-SE.

Und daher habe ich eigentlich wenig Vorstellung wie man an so eine Sache rangeht.
So eine Liste zu erstellen ist für mich dagegen das kleinere Problem, wenn es die nicht schon geben sollte. Aber das Ganze funktionsfähig zu bewerkstelligen schon eher.

Mir war schon klar das ich keine fertige Lösung bekomme und finden werde, aber vielleicht Beispiele woraus ich Rückschlüsse ziehen kann.

Ich weiß auch garnicht inwieweit mein Chef wenn ich eine Lösung habe diese einsetzen will.
Oder ob er nur meine leider begrenzten Programmierfähigkeiten testen will.

Naja, wie auch immer. Vielleicht kannst du mir eine paar nützlich Links dazu posten.
Dennoch danke für deine Hilfe.

Gruß
Bitte warten ..
Mitglied: Biber
30.10.2005 um 14:49 Uhr
Moin Worker734,

ein paar Links für verständlich entwickelte Batch-Lösungen wären http://www.robvanderwoude.com/index.html , http://www.allenware.com oder http://www.fpschultze.de

Aber dennoch sollte der Plan, die Strategie erstmal unabhängig von den Details entwickelt werden. Und dazu musst Du IMHO für Dich erstmal aufdröseln, was Du hast, wo Du hinwillst und was noch fehlt. Welche Probleme und Fehler auftreten können und wie Dein Batch damit umgeht. Wie Du denn eine erfolgreiche/eine fehlgeschlagene Umbenennung oder Verschiebung protokollieren willst. Ob die Umbenennung eben mal in der Mittagspause gemacht werden kann oder das möglicherweise anderswo auch Folgeänderungen/Vorbereitungen zur Folge hat. Wie Du mit Computern umgehst, die einfach "nicht da sind", wenn Dein Batch läuft. Wie Du den testen kannst an zwei oder drei Rechnern, bevor es "ernst wird". Etc etc...

Vielleicht kann das eine Teilantwort sein auf Dein
>Und daher habe ich eigentlich wenig Vorstellung wie man an so eine Sache rangeht.

Biber
P.S. Und schau Deinem Admin über die Schulter, wenn er mit "Net View /domain " oder wie auch immer eine Liste aller vorhandenden Rechner erstellt. Den Befehl brauchst Du wahrscheinlich auch für Deine Aufgabe.

Grüße Biber
Bitte warten ..
Mitglied: Worker734
30.10.2005 um 14:53 Uhr
Hallo Biber,

habe mal dioe ersten Schritte gemacht, aber mit dem Token das verstehe ich nicht so richtig.

----------------------Beginn BatchFile---------------------------------------------------------

@echo on

For /F "tokens=1,2* " %%i in (Liste_PC_Name.txt) do call :netdom "%%i %%j"
goto :eof

:netdom
echo PC-Name-Alt %i umbenennen in PC-Name-Neu %j

rem netdom renamecomputer %i /UserD:domain\admin /PasswordD:* /newname:%j /force /reboot:5


:: warten auf Antwort nach Neustart
ping -t %j
pause

:: Machine in neue Domain verschieben
rem netdom MOVE machine /Domain:neue-Domain /UserD:domain\admin /PasswordD:* /reboot:10
pause

goto :eof

-----------------------------------Ende BatchFile--------------------------------------


Auszug Liste_PC_Name.txt

PC-1 XP-PC-1
PC-2 XP-PC-2
PC-3 XP-PC-3
PC-4 XP-PC-4
PC-5 XP-PC-5
PC-6 XP-PC-6
PC-7 XP-PC-7
PC-8 XP-PC-8
PC-9 XP-PC-9

...........


Bei der Ausgabe
echo PC-Name-Alt %i umbenennen in PC-Name-Neu %j

wird nur j statt der Inhalt von %j angezeigt.

Was mache ich da falsch?

Danke und Gruß
Bitte warten ..
Mitglied: Biber
30.10.2005 um 15:14 Uhr
Na, das sieht doch schon sehr gut aus...

Die Zählvariablen %%i, %%j.... sind nur innerhalb der FOR..IN..DO.. Anweisung "sichtbar".
Du übergibst die ja als Parameter1 und Parameter2 an eine "Unterroutine" :netdom.
Da heißen die dann auch Parameter1 und Parameter2 oder auf bätchisch %1 und %2.

..
netdom
echo PC-Name-Alt %1 umbenennen in PC-Name-Neu %2

rem netdom renamecomputer %1 /UserD:domain\admin /PasswordD:* /newname:%2 /force /reboot:5
::.........hier würde ich den Errorlevel prüfen, den Netdom zurückgibt (s. Netdom-Doku)
::IF Errorlevel 1 call :Renamefailed %1 %2 ..oder
::IF Errorlevel 1 echo %date% %time% Rename %1 in %2 NICHT erfolgreich >> %temp%\Logdatei.txt
IF Errorlevel 1 goto :eof
::--- denn wenn das Rename nicht geklappt hat, brauchst du nicht mehr rumpingen..
echo %date% %time% Rename %1 in %2 erfolgreich >> %temp%\Logdatei.txt
:: warten auf Antwort nach Neustart
ping -t %2
::.........hier würde ich den Errorlevel prüfen, den Ping zurückgibt
:: ..wenn Errorlevel 1 ...Fehlerprot... und goto :eof
pause
...

HTH Biber
Bitte warten ..
Mitglied: Worker734
30.10.2005 um 15:54 Uhr
Hi,

danke für die schnelle Antwort!

Habe jetzt folgenden Syntax getestet:

@echo on

For /F "tokens=1,2* " %%i in (Liste_PC_Name.txt) do call :netdom "%%i %%j"
goto :eof

:netdom
echo PC-Name-Alt: %1 umbenennen in PC-Name-Neu: %2

rem netdom renamecomputer %1 /UserD:domain\admin /PasswordD:* /newname:%2 /force /reboot:5

::.........hier würde ich den Errorlevel prüfen, den Netdom zurückgibt (s. Netdom-Doku)

:: IF Errorlevel 1 call :Renamefailed %1 %2

IF Errorlevel 1 echo %date% %time% Rename %1 in %2 NICHT erfolgreich >> %temp%\Logdatei.txt
IF Errorlevel 1 goto :eof

:: Rename erfolgreich, dann in Logdatei protokollieren
echo %date% %time% Rename %1 in %2 erfolgreich >> %temp%\Logdatei.txt

:: warten auf Antwort nach Neustart
ping -t %2
::.........hier würde ich den Errorlevel prüfen, den Ping zurückgibt
:: ..wenn Errorlevel 1 ...Fehlerprot... und goto :eof
pause

:: Machine in neue Domain verschieben
rem netdom MOVE machine /Domain:neue-Domain /UserD:domain\admin /PasswordD:* /reboot:10

pause
goto :eof

und bekomme folgende Ausgabe-Meldungen:


E:\Dokumente und Einstellungen\Master\Desktop>For /F "tokens=1,2* " %i in (Liste
_PC_Name.txt) do call :netdom "%i %j"

E:\Dokumente und Einstellungen\Master\Desktop>call :netdom "PC-1 XP-PC-1"

E:\Dokumente und Einstellungen\Master\Desktop>echo PC-Name-Alt "PC-1 XP-PC-1" um
benennen in PC-Name-Neu
PC-Name-Alt "PC-1 XP-PC-1" umbenennen in PC-Name-Neu

E:\Dokumente und Einstellungen\Master\Desktop>rem netdom renamecomputer "PC-1 XP
-PC-1" /UserD:domain\admin /PasswordD:* /newname: /force /reboot:5

E:\Dokumente und Einstellungen\Master\Desktop>IF Errorlevel 1 echo 30.10.2005 15
:46:41,37 Rename "PC-1 XP-PC-1" in NICHT erfolgreich 1>>E:\DOKUME~1\Master\LOK
ALE~1\Temp\Logdatei.txt

E:\Dokumente und Einstellungen\Master\Desktop>IF Errorlevel 1 goto :eof

E:\Dokumente und Einstellungen\Master\Desktop>echo 30.10.2005 15:46:41,37 Rename
"PC-1 XP-PC-1" in erfolgreich 1>>E:\DOKUME~1\Master\LOKALE~1\Temp\Logdatei.tx
t

E:\Dokumente und Einstellungen\Master\Desktop>ping -t
IP-Adresse muss angegeben werden.

E:\Dokumente und Einstellungen\Master\Desktop>pause
Drücken Sie eine beliebige Taste . . .

irgendwie steht in %2 nichts drin und bei %1 wird Token 1 und 2 ausgegeben.
Sollte doch laut deiner Beschreibung nicht so sein, oder??

Gruß
Bitte warten ..
Mitglied: Biber
30.10.2005 um 18:46 Uhr
Sorry, Worker734,
hab zu flüchtig drauf geschaut:

Falsch (für Deinen Zweck):
>....do call :netdom "%%i %%j" -----------> ist natürlich nur EIN Parameter, der so übergeben wird.
Richtiger:
-->...do call :netdom %%i %%j ---->kaum macht man es richtig, läuft es....

Nicht aufgeben..
Biber
Bitte warten ..
Mitglied: Worker734
31.10.2005 um 21:16 Uhr
Hi Biber,

kleine Ursache große Veränderungen. Wissen muss man es nur.
Danke.

Aber wie bekomme ich raus welchen Errorlevel ein Programm zurück gibt, damit ich mit einer If-Abfrage reagieren kann?

Gruß
Bitte warten ..
Mitglied: Biber
31.10.2005 um 21:45 Uhr
Moin, Worker734,

*gg in der Theorie immer aus der zugehörigen Programmdokumentation...
Aber bei M$ gibt es sowas nur auf Nachhaken beziehungsweise auf Suchen auf den Microsoft-Technet-Seiten. Falls es das gibt.. bei NetDom habe ich noch keine Doku gesehen, so weit ich mich erinnere..

Aber auch egal.. grundsätzlich gilt: Errorlevel > 0 bedeutet Fehler, Errorlevel = 0 bedeutet alles prima. Das reicht ja grundsätzlich.
Du kannst ja im Fehlerfall denn %Errorlevel% mit in die Logdatei(en) schreiben, nachsehen klannst Du später.

Und meistens noch ein paar Differenzierungen (z.B. ErrorLevel 4 gleich Syntaxfehler, Errorlevel 3 Zugriff verweigert, Errorlevel 2 Quell-Maschinenname nicht gefunden (alles geratene Beispiele).

Musst Du einfach mal am CMD-Prompt testen. Beispiel (Syntaxfehler... zu wenig Parameter)
>netdom renamecomputer Heinzi >nul
...( "> nul" , d.h ... die Meldung will ich gar nicht sehen.. ich will nur den Errorlevel prüfen...)
>echo %errorLevel%
87

Du kannst also vorher einfach mal testen, was rauskäme, bei den zwei oder drei interessanten Fehlerfällen (Umzubenennender Rechner nicht vorhanden; Zielname gibts schon; Zugriff verweigert..)
Einen Syntaxfehler wird Dein Batch toi toi toi nicht beinhalten, den brauchst du nicht prüfen.

Grüße
Biber
Bitte warten ..
Mitglied: Worker734
01.11.2005 um 19:39 Uhr
Hi Biber,

ich habe mal versucht das ganze etwas strukturiert aufzubauen, aber irgendwie scheine
ich was zu übersehen oder die Sprungmarken stimmen nicht ganz.

Kannst du mal drüber schauen?
wohin springt eigentlich goto :EOF?
Die Sprungmarke selbst ist doch garnicht definiert, oder?

---------------------------------------------------nedom.bat-------------------------------------------------
01.
@echo off 
02.
 
03.
:: Konfiguration 
04.
set root=%SystemDrive%\ 
05.
set Domain=Domain 
06.
set user=administrator 
07.
set datei=Liste_RName.txt 
08.
set logfile=Logdatei.txt 
09.
 
10.
rem *************************************************************** 
11.
cls 
12.
call :show_header 
13.
rem *************************************************************** 
14.
 
15.
 
16.
:: Datei auslesen 
17.
echo Datei %Datei% auslesen .... 
18.
For /F "tokens=1,2* " %%i in (%Datei%) do call :netdom %%i %%j 
19.
goto :EOF  
20.
 
21.
 
22.
:netdom 
23.
echo Computer "%1" umbenennen in "%2" ... 
24.
netdom renamecomputer %1 /newname:%2 /UserD:%user% PasswordD:*  /force /reboot:5 
25.
IF Errorlevel 1 call :Renamefailed %1 %2  
26.
 
27.
 
28.
:: Umbenennung erfolgreich, in Logdatei protokollieren 
29.
echo Computer "%1" erfolgreich in "%2" umbenannt. 
30.
echo %date% %time% umbenennen "%1" in "%2" erfolgreich >> %root%%logfile% 
31.
 
32.
pause 
33.
 
34.
:: Warten auf Antwort nach Neustart 
35.
echo ping Computer "%2" ... 
36.
call :stopme 
37.
ping -t %2 
38.
If Errorlevel 1 call :pingfailed %1 %2 
39.
 
40.
 
41.
:: Computer antwortet, in Logdatei protokollieren 
42.
echo %date% %time% Antwort von Computer "%2" erfolgreich! >> %root%%logfile% 
43.
 
44.
 
45.
:: Machine in neue Domain verschieben 
46.
echo Computer in %Domain% verschieben .... 
47.
netdom MOVE machine /Domain:%Domain% /UserD:%Domain%\%user% /PasswordD:* /reboot:10 
48.
If Errorlevel 1 call :Movefailed %1 %2 
49.
 
50.
 
51.
:Renamefailed 
52.
*************************************************************** 
53.
*  Umbenennen fehlgeschlagen .... 
54.
*************************************************************** 
55.
echo. 
56.
echo %date% %time% umbenennen "%1" in "%2" ist fehlgeschlagen! >> %root%%logfile% 
57.
echo Computer Umbenennung "%1" in "%2" ist fehlgeschlagen! 
58.
echo siehe %root%%logfile% 
59.
echo. 
60.
pause 
61.
echo. 
62.
goto :EOF 
63.
 
64.
:pingfailed 
65.
*************************************************************** 
66.
*  Ping fehlgeschlagen .... 
67.
*************************************************************** 
68.
echo. 
69.
echo %date% %time% Computer "%2" NICHT erreichbar! >> %root%%logfile% 
70.
echo Computer "%2" NICHT erreichbar! 
71.
echo siehe %root%%logfile% 
72.
echo. 
73.
pause 
74.
echo. 
75.
goto :EOF 
76.
 
77.
 
78.
:stopme 
79.
*************************************************************** 
80.
*  stop pinging .... 
81.
*************************************************************** 
82.
echo. 
83.
echo ------------------------- 
84.
echo - stop me with ctrl-c   - 
85.
echo ------------------------- 
86.
echo. 
87.
goto :EOF 
88.
 
89.
 
90.
:Movefailed 
91.
*************************************************************** 
92.
*  verschieben fehlgeschlagen .... 
93.
*************************************************************** 
94.
echo. 
95.
echo %date% %time% Computer "%2" verschieben fehlgeschlagen! >> %root%%logfile% 
96.
echo Computer "%2" verschieben fehlgeschlagen! 
97.
echo siehe %root%%logfile% 
98.
echo. 
99.
pause 
100.
echo. 
101.
goto :EOF 
102.
 
103.
 
104.
:Timeout 
105.
echo wscript.sleep 1000*10 >%root%\sleep.vbs 
106.
cscript /nologo %root%\sleep.vbs 
107.
erase %root%\sleep.vbs 
108.
goto :EOF 
109.
 
110.
 
111.
:show_header 
112.
echo. 
113.
echo ********************************************************* 
114.
echo *							* 
115.
echo * Computer umbenennen mit netdom .... (Batch)		* 
116.
echo *							* 
117.
echo *							* 
118.
echo ********************************************************* 
119.
echo. 
120.
goto :EOF 
121.
 
122.
 
123.
:show_line 
124.
echo. 
125.
echo ********************************************************* 
126.
echo. 
127.
goto :EOF 
128.
 
129.
rem :quit
Danke und Gruß
Bitte warten ..
Mitglied: Biber
01.11.2005 um 20:32 Uhr
Moin worker734,
na, hoffentlich schreien die anderen rechtzeitig, wenn wir hier zuviel zumüllen...
...dann machen wir die nächsten 10 Zwischenschritte über pn's und posten nur noch das Endergebnis. *g

Also - "goto :eof" bedeutet in etwa das Gleiche wie in anderen Programmier-oder Sprachen das "RETURN". Ist, wie Du richtig bemerkt hast, gar keine vorhandene Sprungmarke, sondern quasi eine "interne Anweisung".
Gibt dazu nur drei Anmerkungen, von denen zwei wichtig sind:
1) ein "goto :eof" nach einer mit "call :whatever" gerufenen Sprungmarke ":whatever" kehrt in die Zeile zurück, von wo aus der Call-Aufruf abgesetzt wurde. Quasi "RETURN TO MASTER".
2) ein "goto :eof" ohne dass vorher ein "Call :whatever" gemacht wurde, beendet den Batch.
Hast Du auch... das erste "goto :eof" nach der ersten FOR..IN..DO..Anweisung. RETURN. Ende des Batches.
Alles, was danach kommt, wird ja als Unterroutine direkt gerufen.
~~~
Ich denke, wo es schiefgeht sind die Stellen wie..
>netdom renamecomputer %1 /newname:%2 /UserD:%user% PasswordD:* /force /reboot:5
>IF Errorlevel 1 call :Renamefailed %1 %2

....tja...hast sauber den Fehler berücksichtigt, protokolliert... aber gehst dann trotzdem weiter im Batch...
Denn Du kommst ja vom "call :Renamefailed %1 %2 " immer wieder zurück hierher.

Also:
netdom renamecomputer %1 /newname:%2 /UserD:%user% PasswordD:* /force /reboot:5
IF Errorlevel 1 (
call :Renamefailed %1 %2
goto :eof
)

--------> mit diesem "goto :eof" ist dann das "call :netdom" beendet..., es geht zurück in die FOR..IN..DO-Schleifen und mit dem nächsten Rechner in der Liste weiter.

Hier kannst Du auch.. wenn Dir der Kopf noch nicht raucht, noch überlegen: vielleicht ist es ja ganz hilfreich, die Rechner, bei denen das "Rename" erfolgreich war, in eine zweite Logdatei zu schreiben. Denn möglicherweise hast Du sonst in der zweiten oder Runde des Batches ein Problem (selbst wenn du von den 150 Rechnern 145 im ersten Anlauf ohne Fehler umbenennst und verschiebst.. bei einigen geht immer was daneben. Murphy's Law.).

Wenn Du nämlich einen Rechner beim erstenmal umbenennen, aber nicht verschieben konntest... na?
Richtig, dann fällt dieser Rechner jetzt in Runde zwei WIEDER raus mit Rename-Fehler... er ist ja gar nicht mehr da unter altem Namen. Und der Rest des Batches wäre für ihn gestorben.. geht nie weiter für diesen Rechner.

Abhilfe: eine Minilog-Datei schreiben nur mit den Namen der erfolgreich umbenannten (oder meinetwegen auch diese Info aus der vorhandenen Logdatei lesen).
Variante a)
...
:netdom
::Änderung ZWEI
find "%1" SuccessfullyRenamed.log >nul
IF Errorlevel 1 goto Rename_it
goto SkipRename

:: hier landest du nur, wenn der Computername %1 NICHT schon in der Logdatei steht
:Rename_it
echo Computer "%1" umbenennen in "%2" ...

netdom renamecomputer %1 /newname:%2 /UserD:%user% PasswordD:* /force /reboot:5
IF Errorlevel 1 (
call :Renamefailed %1 %2
goto :eof
)
:: wer hier ankommt, hat Errorlevel 0... rename hat geklappt Änderung EINS
echo %1>>SuccessfullyRenamed.log
: SkipRename

....
Variante b) Du kannst natürlich auch die bisherige LogDatei nehmen, musst dann allerdings einen eindeutig wiederauffindbaren String/Text schreiben, wie "Computer %1 erfolgreich umbenannt in %2.." und genau diesen Text auch suchen.

HTH und schönen Abend
Biber
Bitte warten ..
Mitglied: Worker734
02.11.2005 um 14:13 Uhr
Hi Biber,

wie kann ich noch eine Prüfung einbauen welche das vorhandensein von Netdom.exe prüft.
Es sollte in dem Verzeichniss sein in welchem die Batchdatei gerade liegt. Also erst müsste man ermitteln in welchem Verzeichniss netdom.bat liegt und dann netdom.exe.

Danke, bin durch dein Hilfe schon ein Stück weiter gekommen.

Gruß
Bitte warten ..
Mitglied: Biber
02.11.2005 um 14:32 Uhr
Moin Worker734,

wie Du das mit dem Pfad ermitteln etc machst, hab ich hier skizziert unter Position einer Datei ermitteln, aaaaaaaber....
..ich würde mir den Stress gar nicht machen.

Die Clients haben normalerweise ohnehin keine netdom.exe, d.h. entweder musst Du den Batch ohnehin von einem Admin-Rechner aus starten (dann kannst Du die netdom.exe in einem bestimmten Verzeichnis gewährleisten/vorher dorthin kopieren) oder Du startest den Netdom_RenameMove.bat von einem beliebigen Rechner und benutzt die Netdom.exe in einem freigegebenen Serververzeichnis.
Also kannst Du "absolut adressieren". Ich würde es also sinngemäß so machen:
...
Set "myNetDom=\\serverXY\freigabeZ\netdom.exe"
if not exist %myNetDom% echo Datei %myNetDom% nicht gefunden!
if not exist %myNetDom% goto :eof
...
...und in den paar Zeilen, wo heute bei Dir "Netdom" steht, %myNetDom% schreiben.
Grüße zurück
Biber
Bitte warten ..
Mitglied: JaquesGelee
03.05.2006 um 20:26 Uhr
Servus, will mich da mal mir reinhängen... habe ein ähnliches Problem

Will von einer Workgroup in eine Domäne wechseln.
habe es mit folgendem versucht

netdom move machine /domain:domain.bsp /userD:hans /passwordd:*

Das Passwort wird noch abgefragt aber danach bekomme ich eine Fehlermeldung:

The network path was not found...

Hat jemand eine Idee???
Bitte warten ..
Mitglied: Biber
04.05.2006 um 07:49 Uhr
Servus JaquesGelee,

was bewegt Dich denn zu der Annahme, dass Du mit NetDom.exe von einer Nicht-Domain (Workgroup) in eine Domäne umziehen kannst?

Gruß
Biber,
der auch immer interessiert an undokumentierten M$-Features ist
Bitte warten ..
Mitglied: JaquesGelee
04.05.2006 um 12:40 Uhr
Hatte mir mal gedacht das das vielleicht gehen könnte.... Der umgekehrte Weg geht ja auch... Na wenn das mit netdom nicht geht , dann vielleicht mit etwas anderem ???
Bitte warten ..
Neuester Wissensbeitrag
Festplatten, SSD, Raid

12TB written pro SSD in 2 Jahren mit RAID5 auf Hyper-VServer

Erfahrungsbericht von Lochkartenstanzer zum Thema Festplatten, SSD, Raid ...

Ähnliche Inhalte
Batch & Shell
gelöst Dateien anhand des Namens in neue Ordner verschieben (17)

Frage von Cookiemonster zum Thema Batch & Shell ...

Windows Server
Neuer DC, neue Domain - AD Replizieren (8)

Frage von adrian138 zum Thema Windows Server ...

Router & Routing
Neue Top Level Domain .box bringt manche Netze durcheinander (1)

Link von magicteddy zum Thema Router & Routing ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (34)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...