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
GELÖST

Batchdatei bricht bei XP bei IF ab, bei windows 2000 läuft es

Frage Entwicklung

Mitglied: marsmars

marsmars (Level 1) - Jetzt verbinden

12.02.2009, aktualisiert 15:57 Uhr, 5106 Aufrufe, 8 Kommentare

Netlogonscript zum auswälen des Standarddruckers im Raum nach der Anleitung mit dsquery.exe von
http://www.gruppenrichtlinien.de/howto/Anmelde_Scripts.htm (unten)

Das Script (Auszug)

@echo off


for /f "Tokens=2 Delims=," %%i in ('\\bva.local\netlogon\set-default-printer\dsquery computer -name %computername%') do set aktuelleOU=%%i

echo %aktuelleOU%
echo.
IF %aktuelleOU%==OU=C0.08 goto C0.08
if %aktuelleOU%==OU=C0.07 goto C0.07
if %aktuelleOU%==OU=C0.02 goto C0.02
if %aktuelleOU%==OU=C0.03 goto C0.02
if %aktuelleOU%==OU=C1.01 goto C1.01
if %aktuelleOU%==OU=C1.07 goto C1.07

goto end

:C.08
...


Konnte die Abbruchstelle lokalisieren....
Bei Windows XP bricht er bei beim ersten if bzw bei der IF-Verzweigung ab. An der groß / klein Schreigung liegt es nicht.
Bei 2000 läuft das Script

Danke im Vorraus für eure Hilfe
Mitglied: 60730
12.02.2009 um 16:29 Uhr
Servus,

das script scheint mir aber sehr eingestaubt..und könnte auch eine Diät gut vertragen.

01.
for /f "Tokens=2 Delims=," %%i in ('\\bva.local\netlogon\set-default-printer\dsquery computer -name %computername%') do set aktuelleOU=%%i 
02.
 
03.
echo %aktuelleOU% 
04.
if not "%aktuelleOU%"=="" goto "%aktuelleOU%"
Aber an der Diät liegt es sicher nicht.

Wird / kommt bei echo %aktuelleOU% unter Xp etwas raus?

Hab jetzt nicht die Zeit, das script genauer unter die Lupe zu nehmen / eine Umgebung dafür zu bauen.

Kannst du den eingegrentzen Fehler etwas genauer beschreiben?
Liegts evtl. nur an rechten oder an dem Pfad?

Gruß
Bitte warten ..
Mitglied: marsmars
12.02.2009 um 17:40 Uhr
durch
echo %aktuelle%
wird das gewünschte ergebnis geliefert z.B. OU ist C0.08, dann OU=C0.08
erst dadurch konnte icgh das Problem lokalisieren.

Unter Pfad verstehst du bva.local\netlogon\set-default-printer\dsquery ??
Zu Recht: Sowohl als Administrator als auch eingeschränkter User klapp tes nicht diöt usw. werde ich ausprobieren
danke
Bitte warten ..
Mitglied: miniversum
12.02.2009 um 18:24 Uhr
Ändere die Ifs mal so ab (nurmal das erste als Beispiel):
IF "%aktuelleOU%" equ "OU=C0.08" goto C0.08
Bitte warten ..
Mitglied: marsmars
13.02.2009 um 23:53 Uhr
Hi,
Ich kann alle angegeben Änderungsvorschläge leider erst in 2 Wochen ausprobieren (LK Vorabiklausur, Karneval ... )
Mit
01.
IF not ...  
würde ich aber nicht zur Abfrage meherer Möglichkeiten kommen, ich werde es testen.

Mit
Zitat von miniversum:
01.
 IF "%aktuelleOU%" equ "OU=C0.08" goto C0.08 

arbeite ich dann wohl lieber.

PS: Danke für eure Hilfe ihr beiden
Bitte warten ..
Mitglied: marsmars
16.02.2009 um 14:13 Uhr
Hallo noch mal,
so sieht der Quelltext jetzt aus:
01.
rem ** Hiermit erstellen wir uns eine eigene Variable => %aktuelleOU% die dann ** 
02.
rem ** im weiteren Verlauf des Scriptes zur Abfrage benutzt werden kann ** 
03.
rem ** dsquery.exe ist beim 2003 Server dabei 
04.
rem ** gleiche Abfrage liesse sich auch für den Benutzer erstellen. 
05.
  
06.
for /f "Tokens=2 Delims=," %%i in ('\\bva.local\netlogon\set-default-printer\dsquery computer -name %computername%') do set aktuelleOU=%%i 
07.
 
08.
echo %aktuelleOU% 
09.
echo.  
10.
Pause 
11.
if not %aktuelleOU% equ C0.08 goto neu 
12.
if not %aktuelleOU% equ C0.07 goto C0.07 
13.
goto end 
14.
 
15.
:C0.07  
16.
	ping dc2 -n 1 -w 20 %1 | findstr "TTL=" >NUL 
17.
	if %errorlevel%==0 goto ok-C0.07  
18.
	if %errorlevel%==1 goto Fehler 
19.
 
20.
	goto end 
21.
 
22.
		:ok-C0.07 
23.
			echo Server DC2 in C0.07 erreichbar. 
24.
			echo Drucker in C0.07 wird verbunden... 
25.
			echo. 
26.
			\\bva.local\NETLOGON\con2prt.exe /f 
27.
			\\bva.local\NETLOGON\con2prt.exe /cd \\dc2\1000-C0.07 
28.
			echo off Drucker wurde verbunden 
29.
			echo. 
30.
 
31.
		goto end 
32.
 
33.
 
34.
  
35.
 
36.
:neu	 
37.
Pause 
38.
	ping dc2 -n 1 -w 20 %1 | findstr "TTL=" >NUL 
39.
	if %errorlevel%==0 goto ok-C0.08  
40.
	if %errorlevel%==1 goto Fehler 
41.
	goto end 
42.
 
43.
		:ok-C0.08 
44.
			echo Server DC2 in C0.07 erreichbar. 
45.
			echo Drucker in C0.08 wird verbunden... 
46.
			echo. 
47.
			\\bva.local\NETLOGON\con2prt.exe /f 
48.
			\\bva.local\NETLOGON\con2prt.exe /cd \\dc2\1022n-C0.08 
49.
			echo off Drucker wurde verbunden 
50.
			echo. 
51.
 
52.
		goto end 
53.
 
54.
 
55.
 
56.
:Fehler 
57.
	echo Server DC2 in C0.07 nicht erreichbar!!!!!! 
58.
	echo Drucker in C0.07 wird nicht verbunden... 
59.
	echo. 
60.
	goto end 
61.
 
62.
:end 
63.
echo Srcipt erstellt von Mir 
64.
echo. 
65.
Pause
Die Ausgabe
01.
"\\bva\sysvol\BVA.local\scripts\set-default-printer" 
02.
CMD.EXE wurde mit dem oben angebenen Pfad als aktuellem Verzeichnis gestartet. 
03.
UNC-Pfade werden nicht unterstützt. 
04.
Stattdessen wird das Windows-Verzeichnis als aktuelles Verzeichnis gesetzt. 
05.
 
06.
C:\WINDOWS>rem **  ........... gekürzt.......... 
07.
 
08.
C:\WINDOWS>for /F "Tokens=2 Delims=," %i in ('\\bva.local\netlogon\set-default-p 
09.
rinter\dsquery computer -name SN021007006') do set aktuelleOU=%i 
10.
 
11.
C:\WINDOWS>set aktuelleOU=OU=C0.08 
12.
 
13.
C:\WINDOWS>echo OU=C0.08 
14.
OU=C0.08 
15.
 
16.
C:\WINDOWS>echo. 
17.
 
18.
 
19.
C:\WINDOWS>Pause 
20.
Drücken Sie eine beliebige Taste . . .
Danach bricht er ab, wenn ich drücke ...

mit "if not" auch,

genauso mit
if not %aktuelleOU% equ C0.08 goto neu

"if 1==1 goto neu" funktioniert
genauso wie "if exsit ..."

mh vll. sollte ich das "OU=" aus dem string entfernen, das dauert aber... lerne jetzt,
gruß aus dem rheinland das im Karneval fieber ist
MarsMars
Bitte warten ..
Mitglied: 60730
16.02.2009 um 14:34 Uhr
Servus,

um den Fehler:
UNC-Pfade werden nicht unterstützt.

Stattdessen wird das Windows-Verzeichnis als aktuelles Verzeichnis gesetzt.
loszuwerden, bitte den Key ändern / eintragen
01.
[HKEY_CURRENT_USER\Software\Microsoft\Command Processor] 
02.
"DisableUNCCheck"=dword:00000001
wegen dem rest - sorry - kein Karneval - sondern ein paar viele neue Notebook, deren Treiber mir grad Sorgen machen.

Gruß
Bitte warten ..
Mitglied: miniversum
16.02.2009 um 17:00 Uhr
Ändere mal Zeile 11 von
if not %aktuelleOU% equ C0.08 goto neu
in
if not "%aktuelleOU%" equ "C0.08" goto neu
Auserdem wird so die edingung nicht erfüllt sein da Deine "%aktuelleOU%" nicht "C0.08" sondern "OU=C0.08" lautet.
Daher wäre besser so:
if not "%aktuelleOU%" equ "OU=C0.08" goto neu
oder so:
if not "%aktuelleOU:~3%" equ "C0.08" goto neu
Bitte warten ..
Mitglied: marsmars
17.02.2009 um 09:36 Uhr
Ich habe das Problem gelöst!
Das Problem waren "=" und ".". Nach Entfernung durch folgenden Code läuft das Script.
01.
for /f "Tokens=2 Delims=," %%i in ('\\bva.local\netlogon\set-default-printer\dsquery computer -name %computername%') do set aktuelleOU=%%i 
02.
set Raum=%aktuelleOU:~3,2%%aktuelleOU:~6,2% 
03.
if %Raum%==C008 goto C008 
04.
if %Raum%==C007 goto C007 
05.
...
@ miniversum: Das mit den Gänsefüßchen hatte ich schon und "OU=" hatte ich wohl wieder vergessen einzufügen, da ich schon mit String verkürzen gearbeitet hatte
@ TimoBeil: Meinst du die reg datei ist notwendig?

@miniversum und TimoBeil: 1000 Danke für eure Hilfe ^^
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Microsoft
gelöst Windows 2000 SP4 vs XP ohne Service Pack für Labor PC (11)

Frage von matze0004 zum Thema Microsoft ...

Windows Netzwerk
SMBv2 in Windows 7 - Windows XP - Windows Server 2003 Domäne deaktivieren (4)

Frage von Mario.Steinberg zum Thema Windows Netzwerk ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (14)

Frage von liquidbase zum Thema Windows Update ...

DSL, VDSL
Problem mit variernder Internetgeschwindigkeit (12)

Frage von schaurian zum Thema DSL, VDSL ...