Top-Themen

Aktuelle Themen (A bis Z)

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

gelöst auf Basis eines IP-Ranges Variable setzen

Mitglied: jschneider

jschneider (Level 1) - Jetzt verbinden

10.10.2007, aktualisiert 16.10.2007, 3527 Aufrufe, 9 Kommentare

Hallo,

ich tue mich etwas schwer mit folgendem Thema.

Ich möchte am Client die IP-Adresse ermitteln.. ok dann: (z.b. die 10.11.12.13)

entweder nur die ersten 3 digits rausschneiden damit folgendes über bleibt 10.11.12

und dann - jetzt kommts - schauen ob ich für diesen Wert : 10.11.12 einen wert hinterlegt habe.

diese werte könnten quasi so aussehen:
10.11.12 = "ou=Hamburg,dc=meinedomain,dc=com"
10.11.13 = "STuttgart,dc=meinedomain,dc=com"
10.17 = "Muenchen,dc=meinedomain,dc=com"


ich möchte damit erreichen, dass PC's in meine Domäne aufgenommen werden. Und die IP-Adresse soll darüber entscheiden in welcher OU das Computerkonto erzeugt wird.



habt ihr ne Idee ?

Falls ja - vielen Dank
Mitglied: bastla
10.10.2007 um 13:20 Uhr
Hallo jschneider und willkommen im Forum!

Falls die Angabe von "10.17" für München eigentlich "10.11.17" hätte lauten sollen (also ebenfalls die ersten 3 Stellen umfasst) könnte es etwa so gehen:
01.
@echo off & setlocal
02.
set IP=10.11.15.13
03.
set OU=
04.
for %%i in (%IP%) do for /f "tokens=1* delims==" %%a in ('findstr /b "%%~ni" "D:\OU.txt"') do set "OU=%%~b"
05.
 
06.
if defined OU (
07.
    echo %OU%
08.
) else (
09.
    echo IP konnte nicht zugeordnet werden.
10.
)
Zusätzlich benötigt wird die Datei "D:\OU.txt" mit folgendem Inhalt:
01.
10.11.12="ou=Hamburg,dc=meinedomain,dc=com"
02.
10.11.13="STuttgart,dc=meinedomain,dc=com"
03.
10.11.17="Muenchen,dc=meinedomain,dc=com"
Grüße
bastla
Bitte warten ..
Mitglied: bastla
10.10.2007 um 13:43 Uhr
... Plan B, falls tatsächlich auch eine Prüfung nur der ersten beiden Stellen der IP erfolgen soll:
01.
@echo off & setlocal
02.
set IP=10.17.15.13
03.
 
04.
set OU=
05.
for %%i in (%IP%) do for /f "tokens=1* delims==" %%a in ('findstr /b "%%~ni" "D:\OU.txt"') do set "OU=%%~b"
06.
if defined OU goto :Weiter
07.
 
08.
for /f "tokens=1,2 delims=." %%i in ('echo %IP%') do for /f "tokens=1* delims==" %%a in ('findstr /b "%%i.%%j" "D:\OU.txt"') do set "OU=%%~b"
09.
if defined OU goto :Weiter
10.
 
11.
echo IP konnte nicht zugeordnet werden.
12.
goto :eof
13.
 
14.
:Weiter
15.
echo %OU%
Es wird zunächst versucht, anhand der ersten 3 Stellen eine Zuordnung zu treffen. Gelingt dies nicht, werden nur die ersten beiden Stellen berücksichtigt.

Grüße
bastla
Bitte warten ..
Mitglied: jschneider
10.10.2007 um 13:56 Uhr
vielen Dank für die freundliche Begrüßung bastla

ich greife deinen Vorschlag mal auf und verändere Ihn mal leicht

Änderung 1:

falls keine Zuordnung möglich ist soll eine "Auffang-OU" genutzt werden, damit die Aufnahme der Computer in die Domain nicht daran scheitert. Huh bin ich darauf stolz *gg*


@echo off & setlocal
set IP=10.11.15.13
set OU=
for %%i in (%IP%) do for /f "tokens=1* delims==" %%a in ('findstr /b "%%~ni" "D:\OU.txt"') do set "OU=%%~b"

if defined OU (
echo %OU%
) else (
%OU%="ou=Computer-ohne-Zuordnung,dc=meinedomain,dc=com"
)


Anmerkung 1:

Die IP-Adress Bereiche sind leider nicht so, dass es immer Class-C oder Class-C Bereiche sind.
Am liebsten wäre mir sogar, dass geschaut wird, in welchem definierten Bereich (aus D:\OU.txt)
10.11.12.1 - 10.11.12.254 = "ou=Hamburg,dc=meinedomain,dc=com"
10.11.13.1 - 10.11.12.254 = "ou=Stuttgart,dc=meinedomain,dc=com"
10.17.0.1 - 10.17.20.254 = "ou=Muenchen,dc=meinedomain,dc=com"

die IP-Adresse reinpasst. Also wenn ich z.B. mit der IP 10.10.10.17 komme und das script dann schaut. Aber script technisch sowas zu bewerkstelligen wäre sicher nicht so einfach möglich.

Ich teste es aber mit deinem Vorschlag so mal aus.

Viele Grüße, Jan Schneider
Bitte warten ..
Mitglied: jschneider
10.10.2007 um 16:05 Uhr
Hallo nochmal...

hier ist ein Zwischenstand meines Scriptes in dem dein teil sich verewigt hat

01.
cls
02.
@echo off & setlocal
03.
For /F "tokens=14" %%a in ('ipconfig^|find "IPv4"') do (set IP=%%a) 
04.
echo %IP%
05.
 
06.
set OU=
07.
for %%i in (%IP%) do for /f "tokens=1* delims==" %%a in ('findstr /b "%%~ni" "c:\test\OU.txt"') do set "OU=%%~b" 
08.
if defined OU goto :Weiter
09.
 
10.
for /f "tokens=1,2 delims=." %%i in ('echo %IP%') do for /f "tokens=1* delims==" %%a in ('findstr /b "%%i.%%j" "c:\test\OU.txt"') do set "OU=%%~b" 
11.
if defined OU goto :Weiter
12.
 
13.
set OU=ou=nicht-zugeordnete-pcs,dc=meinedomain,dc=com
14.
 
15.
echo %OU%
16.
goto :eof
17.
 
18.
:Weiter
19.
echo %OU%
20.
 
21.
if exist %Windir%\flag\nb.txt set SUBOU="ou=20-Notebook" goto NETDOM
22.
set SUBOU=ou=10-Desktop
23.
 
24.
:NETDOM
25.
echo %SUBOU%,%OU%
26.
 
27.
%SRC%\netdom add %Computername% /Domain:meinedomain /UserD:Admin /PasswordD:password /OU:%SUBOU%,%OU%
jetzt habe ich doch aber glatt noch zwei Fragen

1.
und zwar würde ich gern vor dem ganzen Durchlauf noch die Art des OS abfragen, damit ich innerhalb des Scriptteils
01.
For /F "tokens=14" %%a in ('ipconfig^|find "IPv4"') do (set IP=%%a) 
02.
echo %IP%
den richtigen Suchwert definieren kann. im oben genanten Beispiel suche ich nach "IPv4" (Vista) in Win2k und WinXP reicht es nach "IP-Ad" zu suchen. Das würde ich gerne abfangen durch eine OS-Abfrage

2. Wie bereits in einem anderen Beitrag hier im Forum auch angesprochen habe ich möglicherweise ein Problem mit mehr als einer aktiven Netzwerkkarte.
Die Variable
01.
 %IP% 
wird jedoch mit dem letzten Wert der gefunden wird gefüllt.
Wie kann ich denn meinem Script sagen, dass sobald eine IP-Adresse mit "10." anfängt er entweder weitere ignorieren soll oder aber wenn sie nicht "10." ist einfach weitersuchen soll?

vielen Dank im vorraus für die Mühe
Bitte warten ..
Mitglied: jschneider
10.10.2007 um 16:43 Uhr
ich beantworte mir mal meine erste Frage selbst wenn ich darf

01.
cls
02.
@echo off & setlocal
03.
VER | find "XP" > nul
04.
IF %errorlevel% EQU 0 GOTO XP
05.
VER | find "2000" > nul
06.
IF %errorlevel% EQU 0 GOTO 2000
07.
VER | find "Microsoft Windows [Version 6" > nul
08.
IF %errorlevel% EQU 0 GOTO Vista
09.
 
10.
goto unbekannt
11.
goto IP-Suche
12.
 
13.
:unbekannt
14.
echo unbekannt
15.
goto IP-Suche
16.
 
17.
 
18.
:2000
19.
echo 2000
20.
set IPStr="IP-Ad"
21.
goto IP-Suche
22.
 
23.
:XP
24.
echo XP
25.
set IPStr="IP-Ad"
26.
goto IP-Suche
27.
 
28.
:Vista
29.
echo Vista
30.
set IPStr="IPv4"
31.
goto IP-Suche
32.
 
33.
 
34.
 
35.
:IP-Suche
36.
echo %IPStr%
37.
 
38.
For /F "tokens=14" %%a in ('ipconfig^|find %IPStr%') do (set IP=%%a) 
39.
echo %IP%
40.
 
41.
set OU=
42.
for %%i in (%IP%) do for /f "tokens=1* delims==" %%a in ('findstr /b "%%~ni" "c:\test\OU.txt"') do set "OU=%%~b" 
43.
if defined OU goto :Weiter
44.
 
45.
for /f "tokens=1,2 delims=." %%i in ('echo %IP%') do for /f "tokens=1* delims==" %%a in ('findstr /b "%%i.%%j" "c:\test\OU.txt"') do set "OU=%%~b" 
46.
if defined OU goto :Weiter
47.
 
48.
set OU=ou=nicht-zugeordnete-pcs,dc=meinedomain,dc=com
49.
 
50.
echo %OU%
51.
goto :eof
52.
 
53.
:Weiter
54.
echo %OU%
55.
 
56.
if exist %Windir%\flag\nb.txt set SUBOU="ou=20-Notebook" goto NETDOM
57.
set SUBOU=ou=10-Desktop
58.
 
59.
	
60.
 
61.
 
62.
:NETDOM
63.
echo %SUBOU%,%OU%
64.
 
65.
%SRC%\netdom add %Computername% /Domain:meinedomain /UserD:Admin /PasswordD:password /OU:%SUBOU%,%OU%
66.
 
67.
 
68.
 
69.
 
70.
 
71.
 
72.
 
73.
 
bleibt noch das Thema mehrfache IPs aufgrund mehrfacher NICs
Bitte warten ..
Mitglied: bastla
10.10.2007 um 18:05 Uhr
Hallo jschneider!

bleibt noch das Thema mehrfache IPs aufgrund mehrfacher NICs
Das wäre ein Abfallprodukt meiner Überlegungen zum Testen auf eine IP-Range ...

Der aktuelle Stand in dieser Hinsicht sieht so aus:
01.
...
02.
...
03.
set VIP=
04.
for /f "tokens=14" %%a in ('ipconfig^|find %IPStr%') do call :ProcessIP %%a
05.
 
06.
set "OU=ou=nicht-zugeordnete-pcs,dc=meinedomain,dc=com"
07.
for /f "tokens=1,2,* delims=_" %%i in (D:\IP2OU.txt) do set UG=%%i & set OG=%%j & set "St=%%~k" & call :Compare "%%i"
08.
echo OU: %OU%
09.
goto :eof
10.
 
11.
:ProcessIP
12.
for /f "tokens=1-4 delims=." %%a in ('echo %~1') do set "IP1=00%%a" & set "IP2=00%%b" & set "IP3=00%%c" & set "IP4=00%%d"
13.
if "%IP1%" neq "0010" goto :eof
14.
set "IP=%~1"
15.
set "VIP=%IP1:~-3%.%IP2:~-3%.%IP3:~-3%.%IP4:~-3%"
16.
goto :eof
17.
 
18.
:Compare
19.
if "%VIP%" lss "%UG%" goto :eof
20.
if "%VIP%" gtr "%OG%" goto :eof
21.
set "OU=%St%"
22.
goto :eof
Um einen sicheren Vergleich der Gesamt-IP durchführen zu können, muss die Vergleichs-IP (VIP) mit führenden Nullen erstellt werden. Da zu diesem Zweck ohnehin eine Zerlegung in alle 4 Einzelteile erforderlich ist, kann nebenbei auch der erste Teil auf eine Adresse "10" geprüft werden.

Die zugehörige "D:\IP2OU.txt" müsste so aussehen:
01.
010.011.012.001_010.011.012.254_"ou=Hamburg,dc=meinedomain,dc=com"
02.
010.011.013.001_010.011.013.254_"ou=Stuttgart,dc=meinedomain,dc=com"
03.
010.017.000.001_010.017.020.254_"ou=Muenchen,dc=meinedomain,dc=com"
Grüße
bastla
Bitte warten ..
Mitglied: jschneider
11.10.2007 um 11:18 Uhr
sorry für edit, habe fehler gefunden den ich angefragt habe
Bitte warten ..
Mitglied: jschneider
16.10.2007 um 11:14 Uhr
Hallo bastla, hallo wer sonst noch evtl eine Antwort findet

Ich hänge gerade an einem Syntax-Problem in folgender Zeile

01.
...
02.
 for /f "tokens=1,2,* delims=_" %%i in (C:\mein test\IP2OU.txt) do set UG=%%i & set
03.
 OG=%%j & set "St=%%~k" &
04.
 
irgendwie bin ich zu dumm für den Fall, dass in der Pfadangabe zur IP2OU.txt ein Lerzeichen enthalten ist.

Vielen Dank,

Jan Schneider
Bitte warten ..
Mitglied: bastla
16.10.2007 um 11:38 Uhr
Hallo jschneider!

Immer in Batch: Dateinamen / Pfade mit Leerzeichen in Anführungszeichen einschließen.
Im Zusammenhang mit "for" musst Du hier auch noch "usebackq" verwenden, daher also:
01.
for /f "usebackq tokens=1,2,* delims=_" %%i in ("C:\mein test\IP2OU.txt") do set UG=%%i & set
02.
 OG=%%j & set "St=%%~k" & ...
Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Weiterbildung
SAP Basis Admin Gehalt
gelöst Frage von Merkur1337Weiterbildung4 Kommentare

Hallo, ich hoffe ihr könnt mir helfen. Bei mir steht demnächst eine Vertragsverlängerung vor der Tür und ich weiß ...

TK-Netze & Geräte

Telefonlösung Kleinunternehmen mit VOIP , dezentrale Basis

Frage von sk8er-boiTK-Netze & Geräte14 Kommentare

Hallo Zusammen, da einige von euch mir schon echt super bei meinem Netzwerkaufbau geholfen haben, hier die nächste Baustelle. ...

Ausbildung

Welche Basis Zertifizierungen für einen Fachinformatiker Systemintegration

gelöst Frage von Phill93Ausbildung3 Kommentare

Hallo, ich bin Auszubildender im 2. Lehrjahr zum Fachinformatiker in der Fachrichtung Systemintegration. Mein Betrieb hat mir jetzt angeboten ...

LAN, WAN, Wireless

Radius (NPS) Authentifizierung VLAN auf MAC Basis

Frage von DanLeiLAN, WAN, Wireless2 Kommentare

Hallo, ich möchte gerne Clients die sich mit dem WLan verbinden mit Hilfe des Radius verschiedene VLans zuweisen. Prinzipiell ...

Neue Wissensbeiträge
iOS
WatchChat für Whatsapp
Tipp von Criemo vor 1 TagiOS3 Kommentare

Ziemlich coole App für WhatsApp User in Verbindung mit der Apple Watch. Gibts für iOS sowohl als auch für ...

iOS
IOS hat nen Cursor !!!
Tipp von Criemo vor 2 TageniOS5 Kommentare

Nette Funktion im iOS. iPhone-Mauszeiger aktivieren „Nichts ist nerviger, als bei einem Tippfehler zu versuchen, den iOS-Cursor an die ...

Off Topic
Avengers 4: Endgame - Erster Trailer
Information von Frank vor 4 TagenOff Topic2 Kommentare

Ich weiß es ist Off Topic, aber ich freue mich auf diesen Film und vielleicht geht es anderen hier ...

Webbrowser
Microsoft bestätigt Edge mit Chromium-Kern
Information von Frank vor 4 TagenWebbrowser5 Kommentare

Microsoft hat nun in seinem Blog bestätigt, dass die nächste Edge Version kein EdgeHTML mehr für die Darstellung benutzen ...

Heiß diskutierte Inhalte
Windows Netzwerk
Kerio. Kann keine Mails empfangen aber senden. Wer ist schuld. Kerio oder Windows domäne?
gelöst Frage von frosch2Windows Netzwerk33 Kommentare

Hallo, es existiert ein Problem bei uns mit dem mailen. Alle bestehenden Nutzer können mailen. Raus wie rein. Neuen ...

LAN, WAN, Wireless
WLAN und Ausmessung - Eine Glaubensfrage?
Frage von ptr2brainLAN, WAN, Wireless23 Kommentare

Liebe Experten, als Sys-Admin habe ich mir schon öfter die Frage gestellt, ob es sich beim Thema WLAN und ...

Hosting & Housing
VMware VM mit über 1TB RAM für S4HANA
Frage von Leo-leHosting & Housing22 Kommentare

Hallo zusammen, wer hat Erfahrng und kann mir einen Tipp zum sizing von S4HANA Systemen geben? Wir möchten, zunächst ...

Virtualisierung
Gebrauchte Server Hardware als Virtualisierungs-"Spielwiese"?
Frage von NixVerstehenVirtualisierung19 Kommentare

Einen wunderschönen guten Morgen zusammen, ich möchte mich gerne etwas tiefer mit dem Thema Virtualisierung beschäftigen und dazu ein ...