Skript schreiben zur SID Änderung
Ich möchte ein Skript zur Automatisierung der SID Änderung schreiben.
Hi,
ich klone jeden Tag ca. 22 Systeme. Während das Cloning per Broadcast/Multicast recht flott und elegant von zentraler Stelle aus geht, muss ich dennoch jeden Rechner nach dem Cloning manuell bearbeiten um Rechnername und SID zu ändern.
Ich verwende zu SID Änderung NewSID.
NewSID ist audführbar mit "newsid /a [neuerName]"
Die IP-Adressen werden per DHCP verteilt und die Rechner bekommen feste IP's in der Form 192.168.4.1xx
Wobei xx für die Rechnernummer steht.
Daraus ergibt sich dann auch der Rechnername ABC-xx wobei xx eben jene xx aus der IP.
So jetzt möchte ich ein Skript der Art in den Autostart legen
01 existiert datei c:\...\skriptausgefuehrt.dat?
02 ja
03 beende skript
04 nein
05 lese IP
06 schreibe letzten beiden ziffern in variable $Z
07 füge $PCNAME = "ABC-" und $Z zusammen
08 schreibe datei c:\...\skriptausgefuehrt.dat
09 führe "newsid /a $PCNAME" aus
10 beende skript
Was kann ich da tun. Kein Visual Basic o.ä. zur Verfügung (bzw. kann ich nicht)
Grüße,
kevinjo
ich klone jeden Tag ca. 22 Systeme. Während das Cloning per Broadcast/Multicast recht flott und elegant von zentraler Stelle aus geht, muss ich dennoch jeden Rechner nach dem Cloning manuell bearbeiten um Rechnername und SID zu ändern.
Ich verwende zu SID Änderung NewSID.
NewSID ist audführbar mit "newsid /a [neuerName]"
Die IP-Adressen werden per DHCP verteilt und die Rechner bekommen feste IP's in der Form 192.168.4.1xx
Wobei xx für die Rechnernummer steht.
Daraus ergibt sich dann auch der Rechnername ABC-xx wobei xx eben jene xx aus der IP.
So jetzt möchte ich ein Skript der Art in den Autostart legen
01 existiert datei c:\...\skriptausgefuehrt.dat?
02 ja
03 beende skript
04 nein
05 lese IP
06 schreibe letzten beiden ziffern in variable $Z
07 füge $PCNAME = "ABC-" und $Z zusammen
08 schreibe datei c:\...\skriptausgefuehrt.dat
09 führe "newsid /a $PCNAME" aus
10 beende skript
Was kann ich da tun. Kein Visual Basic o.ä. zur Verfügung (bzw. kann ich nicht)
Grüße,
kevinjo
Please also mark the comments that contributed to the solution of the article
Content-Key: 115789
Url: https://administrator.de/contentid/115789
Printed on: April 24, 2024 at 09:04 o'clock
6 Comments
Latest comment
Hallo kevinjo,
eine batchdatei reicht doch dafür schon,
Ungetestet!
Gruß
LotPings
eine batchdatei reicht doch dafür schon,
@echo Off
:: 01 existiert datei c:\...\skriptausgefuehrt.dat?
:: 02 ja
:: 03 beende skript
If exist "c:\...\skriptausgefuehrt.dat" goto :EOF
:: 04 nein
:: 05 lese IP
Call :GetIP IP
If "%IP%"=="0.0.0.0" echo Konnte keine IP ermitteln&Pause&Goto :EOF
:: 06 schreibe letzten beiden ziffern in variable $Z
For /F "Tokens=4 Delims=." %%A in ('echo %IP%') Do Set Z=%%A
Set Z=%Z:~-2%
:: 07 füge $PCNAME = "ABC-" und $Z zusammen
Set "PCNAME=ABC-%Z%"
:: 09 führe "newsid /a $PCNAME" aus
Newsid /a %PCNAME%
:: 08 schreibe datei c:\...\skriptausgefuehrt.dat
Echo %PCNAME% %IP% >"c:\...\skriptausgefuehrt.dat"
:: 10 beende skript
Goto :EOF
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:GetIP ip
::
:: By: Ritchie Lawrence, 2003-09-22. Version 1.0
:: Func:
:: Obtains the IP address of primary adapter. For NT4/2000/XP/2003.
:: If functions fails, 0.0.0.0 is returned.
::
:: Args: %1 var to receive IP address (by ref)
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
setlocal ENABLEEXTENSIONS & set "i=0.0.0.0" & set "j="
for /f "tokens=4" %%a in ('route print^|findstr 0.0.0.0.*0.0.0.0'
) do (if not defined j for %%b in (%%a) do set "i=%%b" & set "j=1")
endlocal & set "%1=%i%" & goto :EOF
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Ungetestet!
Gruß
LotPings
Hallo Kevin,
hattest du Urlaub, oder ist deine Latenz so groß
Gruß
LotPings
hattest du Urlaub, oder ist deine Latenz so groß
Gruß
LotPings