knuckles
Goto Top

System- Umgebungsvariable für den Common Name oder CN eines Computers

Probleme mit Skript für die automatische Druckerzuweisung

Hallo,

ich habe eine Frage zum Thema Skripten, genauer gesagt geht es mir dabei um eine einzige "kleine" Frage.
Ich will bei uns im Unternehmen eine automatisierte Druckerzuweisung erstellen, via Printserver (W2K3).
Das ganze soll nicht Benutzerabhängig, also mit ifmember durchgeführt werden, sondern Computer-abhängig.

Hintergrund ist, dass ich eingentlich will, dass egal wer sich an einem PC anmeldet, immer die Drucker bereit stehen,
die auch im jeweiligen Büro vorhanden sind - ist ja logisch face-wink


Nun habe ich mir schon einige Sachen zusammengebastelt:



@echo off
cls

REM #######################
REM ##  COMPUTERGRUPPEN  ##
REM #######################
echo Gruppenmitgliedschaft des Computers wird ermittelt ...
echo off
ping -n 2 localhost > NUL
%LOGONSERVER%\netlogon\utilities\dsquery computer -name %computername% | %LOGONSERVER%\netlogon\utilities\dsget computer -memberof > c:\temp\computergruppen.txt

REM ###########################################
REM ##  ABFRAGE VORHANDENER NETZWERKDRUCKER  ##
REM ###########################################
echo Netzwerkdrucker werden gesucht ...
echo off
ping -n 2 localhost > NUL
reg query "HKCU\Software\Microsoft\Windows NT\CurrentVersion\Devices" >> C:\Temp\drucker.txt


REM ###########################################
REM ##  ABFRAGE DER GRUPPEN IN PRINTERS.TXT  ##
REM ###########################################  

echo Netzwerkdrucker werden hinzugefuegt ...
echo off
%logonserver%\netlogon\batch\ML\Sub\con2prt /f
for /F "tokens=*" %%i in (%LOGONSERVER%\netlogon\Utilities\printers.txt) do if /i %%i==(%LOGONSERVER%\netlogon\utilities\dsquery computer -name %computername% | %LOGONSERVER%\netlogon\utilities\dsget computer -memberof) goto %%j
goto END


REM ###########################
REM ##  DRUCKERZUWEISUNGEN  ##
REM ###########################

:HPLJ1100
find /I "\\printserver-ml\HPLJ1100" C:\Temp\drucker.txt
if errorlevel 1 call %logonserver%\netlogon\batch\ML\Sub\con2prt /c "\\printserver-ml\HPLJ1100"
goto end

:OKIC5800
find /I "\\printserver-ml\OKIC5800" C:\Temp\drucker.txt
if errorlevel 1 call %logonserver%\netlogon\batch\ML\Sub\con2prt /c "\\printserver-ml\OKIC5800"
goto end

[..]

:end

REM #################################
REM ##  TEMPORAERE DATEN LOESCHEN  ##
REM #################################

del c:\temp\drucker.txt
del c:\temp\computergruppen.txt




Die Printers.txt sieht (beispielhaft) so aus:

HPLJ1100 GG_Printers_IT_EL GG_Printers_IT_GS [..]
OKIC5800 GG_Printers_IT_EL

//

Nun zu meinem Problem:
Ich kann die Gruppenzugehörigkeit des jeweiligen PCs mit dsquery und dsget herausfinden und in einer Datei abspeichern --> c:\temp\computergruppen.txt
Die sieht dann beispielsweise wie folgt aus:

"CN=GG_Printers_IT_EL,OU=TestOrganisation,DC=meinedomaene,DC=dom"
"CN=Dom„nencomputer,CN=Users,DC=meinedomaene,DC=dom"

Wie man sehen kann, wird die CN GG_Printers_IT_EL ausgelesen - wie von mir gewünscht.
Jetzt das große ABER.
Wie kann ich in meinem Batch File die Zeile:

for /F "tokens=*" %%i in (%LOGONSERVER%\netlogon\Utilities\printers.txt) do if /i %%i xxx goto %%j

so abwandeln, dass anstatt dem Platzhalter xxx die CN GG_Printers_xx_xx ausgelesen wird, von mir aus auch aus der Datei computergruppen.txt ???
Geht das überhaupt ?
Das ist mein einzigstes Problem noch.


Danke euch im Voraus und Gruß
Benny (alias knuckles)

Content-Key: 102269

Url: https://administrator.de/contentid/102269

Printed on: April 16, 2024 at 09:04 o'clock