noobstar0815
Goto Top

Batch-Datei läuft unter XP aber unter Win7 gibts Probleme

Hallo, ich hatte ja mal eine Update-Batch-Datei erstellt, die ich mit Hilfe dieses Forums erstellt habe. Leider gibt es unter Win7 damit einige Probleme, die erst jetzt auftauchen.

Folgendes:
Es ging darum, dass die Programme still installiert werden, unter WinXP klappt es ohne Probleme. Bei Windows7 hingegen werde ich trotzdem nach Bestätigungen gefragt. Des Weiteren werden mehrere Programme (z.B. Flash Player Plugin, MS Defender, Adobe Shockwave...) nicht installiert. Leider gibt es auch keine Fehlermeldungen, ausser dass es wieder die Probleme mit "call ist syntaktisch an dieser Stelle nicht verabeitbar..." am Schluss gibt. Bei WinXP läuft alles. Leider weiß ich langsam nicht mehr woran es liegen könnte. Hier mal der Gesamtcode:
cls
@echo on
rem lw vorab auf default K: setzen
set lw=K:
echo Der aktuell ausgewaehlte Laufwerksbuchstabe ist "%lw%". Falls Sie ihn aendern     moechten geben Sie bitte einen neuen Laufwerksbuchstaben an.  
set /p lw="Bitte freien Laufwerksbuchstaben angeben (G:...[K:]...Z:) "  
net use %lw% \\WWW-HGR\BDR\BDR-Benutzer\Ausbildung\automatischeUpdateswoechentlich
echo		Updates
echo		=======
echo.
echo	[1] Alle Updates
echo	[2] Einzelne Updates
echo	[3] Alle Updates mit Herunterfahren
echo	[4] Alle Updates mit Neustarten

set asw=1
set /p asw="Bitte Auswahl eingeben ([1]...4): "  

if %asw%==1 set name=1234567 & set "num=-1" & goto LOOP  
if %asw%==2 goto DIV
if %asw%==3 set name=12345679 & set "num=-1" & goto LOOP  
if %asw%==4 set name=12345678 & set "num=-1" & goto LOOP  

:DIV
echo.
echo	[1] Java
echo	[2] Adobe Flash Player Active X
echo	[3] Adobe Flash Player Plug-In
echo	[4] Adobe Shockwave
echo	[5] Mozilla Firefox
echo	[6] Adobe Reader
echo	[7] Microsoft Windows Defender
echo	[8] Neustart (nur als letzte Ziffer!!!)
echo	[9] Herunterfahren (nur als letzte Ziffer!!!)
echo.
set name=0
set /p name="Bitte alle zu aktualisierenden Programme angeben (Bsp.: 134):"  


set "num=-1"   
:loop 
set /a num=num+1 

call set "name2=%%name:~%num%,1%%"   
echo "%name2%"    
if "%name2%"=="" goto END  
if %name2%==1 call "%lw%\Update-Skripte\Java.bat"  
if %name2%==2 call "%lw%\Update-Skripte\FlashX.bat"  
if %name2%==3 call "%lw%\Update-Skripte\FlashPlug.bat"  
if %name2%==4 call "%lw%\Update-Skripte\shockwave.bat"  
if %name2%==5 call "%lw%\Update-Skripte\Firefox.bat"  
if %name2%==6 call "%lw%\Update-Skripte\adobereader.bat"  
if %name2%==7 call "%lw%\Update-Skripte\msdefender.bat"  
if %name2%==8 net use %lw% /d & shutdown -r -t 0
if %name2%==9 net use %lw% /d & shutdown -c -t 0
goto LOOP 

:END
net use %lw% /d
echo Druecken Sie eine beliebige Taste zum Beenden des Programmes.
pause

Content-ID: 205564

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

Ausgedruckt am: 26.11.2024 um 09:11 Uhr

Noobstar0815
Noobstar0815 24.04.2013 um 12:16:23 Uhr
Goto Top
Ich sehe grade, dass die call Fehlermeldung ebenfalls bei XP auftritt.
G:\Update-Skripte>if " " == "" goto END  
"call" ist syntaktisch an dieser Stelle nicht verarbeitbar.  

G:\Update-Skripte>if ==1 call "K:\Update-Skripte\Java.bat"  
Noobstar0815
Noobstar0815 24.04.2013 um 12:20:55 Uhr
Goto Top
Denke mal, dass die Fehlermeldung mit einem einfachen Leerzeichen behoben ist.
G:\Update-Skripte>if " " == " " goto END  
Damit landet die Datei gar nicht erst bei dem call-Befehl sondern springt zum Ende.
Allerdings verstehe ich immer noch nicht ganz, warum die Programme nicht installiert werden.
Manuell bekomme ich die Software installiert, allerdings war das nicht Sinn und Zweck der Sache :D
ThePinky777
ThePinky777 24.04.2013 um 12:26:38 Uhr
Goto Top
mach mal rechten mausklick "als Administrator ausführen" auf die bat. dann gehts unter Win 7 denk ich mal.
weil admin sein lokal bedeutet lange noch nicht das man auch die sachen als lokaler admin startet face-smile

Problem ist das UAC dann, sollte der tip helfen, recht komplexe Sache.
Noobstar0815
Noobstar0815 24.04.2013 aktualisiert um 12:37:00 Uhr
Goto Top
Alles klar, teste ich mal eben, melde mich in 5 Minuten obs geklappt hat :D
Wenn es klappt, was muss ich dann umstellen, damit es sowohl unter XP als auch Win7 klappt? Auch wenn es sehr kompliziert ist :P Aus reiner Intresse xD

EDIT: Achso, das Problem mit dem call ist auch etwas komplexer.
Wenn ich das Programm komplett durchlaufen lasse, also alle 7 Programme, benötigt er ein Leerzeichen, weil er dann " " == "" vergleicht. Möchte ich aber nur bestimmte Programme vergleicht er "" == " " mit Leerzeichen. Wie behebe ich das am besten? Einfach zwei if-Abfrage? Einmal mit " " und einmal mit ""? Wäre denke ich das einfachste.
Noobstar0815
Noobstar0815 24.04.2013 um 12:43:35 Uhr
Goto Top
OK, mit "Ausführen als Admin" geht. Wie bekomme ich es nun in die Batch-Datei integriet, dass es automatisch alle weiteren Batch-Dateien als Admin ausführt? Weil für jedes Programm wird eine Batch-Datei aufgerufen, es reicht ja wenn diese dann als Admin ausgeführt werden.
RoSk3Y
RoSk3Y 24.04.2013 um 13:06:40 Uhr
Goto Top
Hallo,

erste Batch als Admin ausführen, dann werden die weiteren mit der gleichen Berechtigung ausgeführt!

LG
Rosk3y
ThePinky777
ThePinky777 24.04.2013 aktualisiert um 13:21:58 Uhr
Goto Top
RoSk3Y
er hat die frage flasch gestellt, dahier ist das nicht die antwort die er haben wollte.

es geht hier um das UAC von windows 7, weil das bei der bat nicht erkennt das es nach adminrechten fragen soll (das popup ob man will oder nicht), das popup kann man eben herbeizwingen durch rechter mausklick und als admin ausführen.

und komplex bedeutet, man kann das eigentlich nur per GPO machen, in dem man eben weiß welche Benutzer lokale admins sind, und für diese user dann entsprechend eine GPO machen wo das UAC deaktiviert. ABER, damit schaltest du gleich mal komplett die security deines windows 7 aus. was natürlich ultra gut kommt -> sind ja lokale admins und user face-smile und USER !!! face-smile denke mehr muss ich nicht sagen face-smile

und das war das stichwort für komplex.... da fürcht ich hilft nur googeln und extrem system customizen... oder gleich ein vernünftiges system für kohle einsetzen, welches diese problematik dann nicht mehr hat, weil eben alles über einen user installiert wird der entsprechend eben die konfig besitzt... bzw. glaub lokal system konto ist auch nicht der UAC unterworfen... hab ich schon erwähnt : komplex face-smile

aja oder man läßt die installation per GPO laufen als script, im Computerpart, weil die GPO ausgeführten scripts laufen auch mit dem lokalen computer account und sind auch keiner UAC unterworfen, und man kann sichs dann gleich sparen usern adminrechte zu geben... face-smile aber nachteil wenn per gpo was installiert wird nimmt diese keine rücksicht auf langsame anbindungen und script fehler und wenn man pecht hat hängt der PC dann mal für 30 minuten und neu booten bringt nur offline dann was, weil die GPO sonst wieder zuschlägt.

ja komplex halt face-smile
Noobstar0815
Noobstar0815 24.04.2013 um 15:38:35 Uhr
Goto Top
Ääähm ja... :D Also es war jetzt grade nicht mal ein lokaler Admin, sondern ein Domänen-Admin :D

Ich kann dieses Skript per GPO ausführen? Auf allen Rechnern gleichzeitig? Ohne mich zu bewegen? Bekomm ich da noch ein WoL Skript mit rein? Damit ich die PCs nicht mal einschalten muss? :D XD Und ja es war beabsichtigt, dass es so viele kleine Fragen sind :D
Noobstar0815
Noobstar0815 25.04.2013 um 09:26:34 Uhr
Goto Top
Zitat von @RoSk3Y:
Hallo,

erste Batch als Admin ausführen, dann werden die weiteren mit der gleichen Berechtigung ausgeführt!

LG
Rosk3y

Um noch mal darauf zurück zu kommen: Ich möchte nicht jedes mal die Batch als Administrator ausführen. Gibt es deshalb eine Möglichkeit, dass die Batch-Dateien die anderen Dateien trotzdem als Admin ausführt?
ThePinky777
ThePinky777 25.04.2013 um 13:51:51 Uhr
Goto Top
Zitat von @Noobstar0815:
Ääähm ja... :D Also es war jetzt grade nicht mal ein lokaler Admin, sondern ein Domänen-Admin :D

Ich kann dieses Skript per GPO ausführen?

Bedingt, d.h. willst du es mit Adminrechten ausführen, was ich mal annehme da du was installiern willst, musst du es im Computerteil starte bei "Computer Start", das bedeutet aber auch das es unsichtbar läuft und eine auswahlmöglichkeit geht dann nicht, weil der user ja nix sieht (das script würde ewig auf eingabe warten, PC solange nicht benutzbar.
im Userteil kann mans auch per GPO starten, aber läuft bei "anmeldung" und mit userrechten des angemeldeten users, naja so ne art logonscript nichtwahr nur anders gestartet face-smile wird aufs selbe problem laufen wie du bisher hattest.


Auf allen Rechnern gleichzeitig?

ja, beim booten halt, daher nicht gleichzeitig face-smile

Ohne mich zu bewegen?

Korrekt face-smile

Bekomm ich da noch ein WoL
Skript mit rein? Damit ich die PCs nicht mal einschalten muss? :D XD Und ja es war beabsichtigt, dass es so viele kleine Fragen
sind :D

Wake on LAN wenn die PCs das unterstützen kann mans benutzen, hat aber nix mit der GPO oder so zu tun, sondern wake on lan mechanismus. da musste mal den netzwerkfuzzi/client admin fragen nichtwahr face-smile Grundsätzlich is es halt so das die GPO dann aktiv wird wenn der PC bootet und somit die installation ausführt (dein script), wie du den PC startets ist dein bier face-smile ob per knopf oder per WoL.
ThePinky777
ThePinky777 25.04.2013 aktualisiert um 13:54:59 Uhr
Goto Top
Zitat von @Noobstar0815:
> Zitat von @RoSk3Y:
> ----
> Hallo,
>
> erste Batch als Admin ausführen, dann werden die weiteren mit der gleichen Berechtigung ausgeführt!
>
> LG
> Rosk3y

Um noch mal darauf zurück zu kommen: Ich möchte nicht jedes mal die Batch als Administrator ausführen. Gibt es
deshalb eine Möglichkeit, dass die Batch-Dateien die anderen Dateien trotzdem als Admin ausführt?

wie oben geschrieben, prinzipiel nein, nur per PGO settings zur UAC (ausschalten), was aber wiederum eine MORDS sicherheitslücke ins konzept wirft face-smile

gib doch einfach START, unten bei suche den Begriff: UAC ein und starte das mal. User Access Control oder so heißt das, deutsch benutzer zugriffs steuerung.
stell auf niedrigste stuffe, und dann geht dene bat, problem ist halt das nun auch der Ofen offen is face-smile
Noobstar0815
Noobstar0815 25.04.2013 um 14:23:11 Uhr
Goto Top
Der Netzwerkfuzzi/client admin bin ich so halb :D Bzw mein Ausbilder xD Hab ihm bescheid gesagt, machen wir morgen dann fertig und stecken es zu den anderen Start Skripten
ThePinky777
ThePinky777 26.04.2013 um 13:51:53 Uhr
Goto Top
ja aber erstmal auf einem PC testen face-smile
wenns script hängen bleiben sollte beim booten, Netzwerkkabel ausstecken, bis STRG+ALT+ENTF kommt und dann wieder LAN Kabel ran, einloggen. fehler beheben face-smile