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

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

Frage Entwicklung Batch & Shell

Mitglied: knuckles

knuckles (Level 1) - Jetzt verbinden

20.11.2008 um 12:12 Uhr, 4436 Aufrufe

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


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)
Neuester Wissensbeitrag
Windows 10

Sticky Notes - Autostart unterbinden

Tipp von Pedant zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Batch & Shell
gelöst Base64 Decode (Batch,VBS) (26)

Frage von clragon zum Thema Batch & Shell ...

Router & Routing
Tipps für Router (ca. 100 clients, VPN) (17)

Frage von oel-auge zum Thema Router & Routing ...