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

PC per VBA code Herunterfahren und mit einem Benachrichtigungs-Feld

Frage Entwicklung Batch & Shell

Mitglied: raffi83

raffi83 (Level 1) - Jetzt verbinden

13.08.2010 um 18:15 Uhr, 6136 Aufrufe, 16 Kommentare

Hallo Zusammen

habe folgendes Problem und breuchte mal eure Hilfe !

Habe eine Batch-Datei (shutdown -s -t 10) erstellt die mir die Pc's in der Firma automatisch bei einer bestimmten Tageszeit herunterfährt.
Das Funktioniert auch ohne Problem. Leider hat das ganze einen kleinen Schönheitsfehler, wenn die Datei aktiviert wurde kann sie durch den Benutzer, der noch an diesem PC arbeitet nicht mehr gestoppt werden.

Nun meine Idee: ich habe mit einem VBA Code versucht eine Inputbox zu erstellen auf der der Benutzer den Vorgang des Herunterfahrens stoppen kann in dem die Frage erscheint " Möchten Sie den PC jetzt Herunterfahren ? " Der Benutzer soll nun nur die Möglichkeit besitzen den Vorgang mit der "Inputbox" Nein oder Abbrechen das ganze zu stoppen. Bei keiner Reaktion des Benutzers soll der PC nach 1min. heruntergefahren werden.

Da ich mich nicht sehr gut mit der Erstellung solcher Cod's auskenne und auch nicht zu einem brauchbaren Resultat, bei meinen unzähligen Versuchen gekommen bin, erhoffe ich mir Ihr könntet mir einwenig weiterhelfen.

Danke allen schon für eure Lösungsvorschläge

have a nice weekend

Grüsse Raffi
Mitglied: sebastianpuetz
13.08.2010 um 18:22 Uhr
Hi,

ein anderer Ansatz:

http://wiki.winboard.org/index.php/Kleine_Pause_in_einer_Batch-Datei_ei ...

Man könnte nen Text als Einleitung schreiben:

z.B. Drücken Sie bitte "STRG+C" um das Herunterfahren zu stoppen!

Hilft das?

Grüße
Sebastian
Bitte warten ..
Mitglied: bastla
13.08.2010 um 18:28 Uhr
Hallo raffi83!

PsShutdown bietet die Schalter "-c" und "-v" ...

Grüße
bastla
Bitte warten ..
Mitglied: mathe172
13.08.2010 um 18:44 Uhr
Hallo raffi83!

Versuchs damit:
01.
... 
02.
::Code davor 
03.
shutdown -s -t 30 
04.
::Vielleicht etwas mehr Zeit da oben... 
05.
:Abfrage 
06.
set /p shutdown="Wenn sie abbrechen wollen "Abb" eingeben!: " 
07.
if /i "%shutdown%"=="Abb" shutdown -a 
08.
if /i "%shutdown%"==""Abb"" shutdown -a 
09.
goto Abfrage
Das Fragt einen solange ob man abbrechen will bis der Pc heruntergefahren wird.

Mathe172
Bitte warten ..
Mitglied: bastla
13.08.2010 um 19:15 Uhr
@mathe172
Könntest Du vielleicht noch ein "/i" für das "if" spendieren (soll ja nicht in Stress ausarten )?

Grüße
bastla
Bitte warten ..
Mitglied: mathe172
13.08.2010 um 20:33 Uhr
@bastla:
Danke für den Hinweis (Habs oben geändert)

Mathe172
Bitte warten ..
Mitglied: bastla
13.08.2010 um 21:04 Uhr
Hallo raffi83!

Um auch die ursprüngliche Frage zu beantworten: Ein Batch mit etwas VBS garniert könnte so aussehen:
01.
@echo off & setlocal 
02.
set G=%temp%\GetAnswer.vbs 
03.
>%G% echo WScript.Echo WScript.CreateObject("WScript.Shell").PopUp("Möchten Sie den PC jetzt herunterfahren ?",60,"Herunterfahren?",vbYesNo+vbQuestion) 
04.
for /f %%i in ('cscript //nologo %G%') do set "Antwort=%%i" 
05.
if %Antwort% neq 7 echo shutdown -s -t 10
Die möglichen Rückgabecodes des VBScripts sind
-1: Zeitablauf
6: Ja
7: Nein
Da in den ersten beiden Fällen "shutdown" ausgeführt werden soll, muss nur auf die Antwort "7" geprüft werden.

Zum Testen wird (durch das "echo" davor) der "shutdown"-Befehl nur angezeigt - wenn dieses "echo" entfernt wird, fährt der Rechner tatsächlich herunter ...

Grüße
bastla
Bitte warten ..
Mitglied: rubberman
14.08.2010 um 19:15 Uhr
@bastla

hybsch

Vielleicht auch so:
01.
@echo off & setlocal 
02.
set G=%temp%\GetAnswer.vbs 
03.
>%G% echo WScript.Quit WScript.CreateObject("WScript.Shell").PopUp("Möchten Sie den PC jetzt herunterfahren ?",60,"Herunterfahren?",vbYesNo+vbQuestion) 
04.
%G% 
05.
if %errorlevel% neq 7 echo shutdown -s -t 10
Viele Wege führen in die italienische Hauptstadt.

Grüße
rubberman
Bitte warten ..
Mitglied: bastla
14.08.2010 um 20:43 Uhr
@rubberman

Gefällt mir besser (und das -1 als Errorlevel sollte eigentlich auch keine Probleme machen) ...

Grüße
bastla
Bitte warten ..
Mitglied: rubberman
14.08.2010 um 21:20 Uhr
Zitat von bastla:
[...](und das -1 als Errorlevel sollte eigentlich auch keine Probleme machen) [...]

Nach allem, was ich bisher getestet habe, kannst du die vollen 32 Bit auch für den Errorlevelwert ausschöpfen.
Das heißt 2^31 - 1 für positive Werte, alles was größer ist wird eh als negative Zahl interpretiert.
Mit -1 (also 2^32 - 1) sind wir durchaus im Range und es gibt keine Probleme.

Grüße
rubberman

Edit:
Der Test in Kurzform:
01.
@echo off &setlocal 
02.
 
03.
cmd /c exit 1 
04.
echo 2^^0                 %errorlevel% 
05.
echo. 
06.
 
07.
cmd /c exit 2 
08.
echo 2^^1                 %errorlevel% 
09.
echo. 
10.
echo. 
11.
 
12.
cmd /c exit 2147483646 
13.
echo 2^^31 -2    %errorlevel% 
14.
echo. 
15.
 
16.
cmd /c exit 2147483647 
17.
echo 2^^31 -1    %errorlevel% 
18.
echo. 
19.
 
20.
cmd /c exit 2147483648 
21.
echo 2^^31      %errorlevel% 
22.
echo. 
23.
 
24.
cmd /c exit 2147483649 
25.
echo 2^^31 +1   %errorlevel% 
26.
echo. 
27.
echo. 
28.
 
29.
cmd /c exit 4294967294 
30.
echo 2^^32 -2            %errorlevel% 
31.
echo. 
32.
 
33.
cmd /c exit 4294967295 
34.
echo 2^^32 -1            %errorlevel% 
35.
pause>nul
Danach geht's wieder bei 0 aufwärts weiter.
Bitte warten ..
Mitglied: Friemler
14.08.2010 um 22:55 Uhr
Hallo rubberman,

oder so:
01.
@echo off & setlocal 
02.
 
03.
shutdown -s -t 10 
04.
 
05.
set G=%temp%\GetAnswer.vbs 
06.
>%G% echo WScript.Quit WScript.CreateObject("WScript.Shell").PopUp("Möchten Sie den PC jetzt herunterfahren ?",60,"Herunterfahren?",vbYesNo+vbQuestion) 
07.
%G% 
08.
if %errorlevel% equ 7 shutdown -a 
09.
del %G% 
10.
 
11.
endlocal
shutdown -a bricht einen laufenden Shutdown ab.

Gruß
Friemler
Bitte warten ..
Mitglied: bastla
14.08.2010 um 23:04 Uhr
... wobei ein 60s-PopUp für einen bereits laufenden 10s-Countdown etwas überdimensioniert scheint ...

Grüße
bastla

P.S.:
Es fehlt auch noch die Unterscheidung zwischen "Ja, ich will!" mit Konsequenz "Es geht sofort abwärts!" und "Jetzt konnte ich mich 1 ganze Minute lang nicht entscheiden ..." mit dem Ergebnis "Na gut, dann kannst Du ja noch 2 Minuten auf den Niedergang warten ...", oder so ...
Bitte warten ..
Mitglied: Friemler
14.08.2010 um 23:41 Uhr
Hallo bastla,

dann eben so:
01.
@echo off & setlocal 
02.
 
03.
shutdown -s -t 10 
04.
 
05.
set G=%temp%\GetAnswer.vbs 
06.
>%G% echo WScript.Quit WScript.CreateObject("WScript.Shell").PopUp("Moechten Sie das Herunterfahren des PCs abbrechen?",9,"Herunterfahren abbrechen?",vbYesNo+vbQuestion+vbSystemModal) 
07.
%G% 
08.
if %errorlevel% equ 6 shutdown -a 
09.
del %G% 
10.
 
11.
endlocal
Durch vbSystemModal erscheint der PopUp im Vordergrund.

Gruß
Friemler
Bitte warten ..
Mitglied: raffi83
16.08.2010 um 17:25 Uhr
Hallo bastla

Erstmals vielen Dank für eure Arbeit !

Habe mal Deine Idee ausprobiert . Gefällt mir gut dein Script leider fährt mein Pc nach abwarten der Zeit oder durch bestätigen mit "JA" nicht herunter (habe das "echo" in der Zeile 05. zwischen "neg 7" und "schutdown" entfernt leider ohne Erfolg. Hast Du eine Idee an was das liegen könnte?

Gruss Raffi
Bitte warten ..
Mitglied: bastla
16.08.2010 um 18:27 Uhr
Hallo raffi83!

Mit welchem User wird der Batch ausgeführt?
Darf ich übrigens nochmals auf "psshutdown" hinweisen? Zusammen mit einer Liste von Clients (als Parameter "@Liste.txt") lässt sich damit das Herunterfahren vom Server aus starten und, bei Verwendung des Schalters "-c", am Client abbrechen ...

Grüße
bastla
Bitte warten ..
Mitglied: raffi83
17.08.2010 um 17:45 Uhr
Hallo bastla

habe nochmals einwenig "herumgetüfftelt" und das Problem gefunden. Ich musste den gesammten Pfad von shutdown.exe richtig angeben und jetzt ist alles wie es sein sollte.
01.
@echo off & setlocal  
02.
set G=%temp%\GetAnswer.vbs  
03.
>%G% echo WScript.Quit WScript.CreateObject("WScript.Shell").PopUp("Möchten Sie den PC jetzt herunterfahren ?",60,"PC Shutdown",vbYesNo+vbQuestion)  
04.
%G% 
05.
if %errorlevel% neq 7 c:\windows\system32\shutdown.exe -s -f -t 30
Ich Danke allen, die an der Lösung meines Problems gearbeitet haben. Besonders bedanken möchte ich mich bei dir bastla ! Dank deiner Idee habe ich nun die Lösung die ich mir erhoft habe

schönen Abend
Grüsse raffi

[Edit Biber] Codetags spendiert. [/Edit]
Bitte warten ..
Mitglied: rubberman
17.08.2010 um 19:05 Uhr
@raffi83

Das verwundert mich jetzt schon etwas.
Wenn
shutdown -s -t 10
nicht funktioniert, könnte es daranliegen, dass dein Batch "shutdown.bat" heißt (sollte man natürlich vermeiden). Somit ruft sich der Batch selbst auf. Egal. Dann sollte aber wenigstens
shutdown.exe -s -t 10
funktionieren.
Wenn du wirklich den gesamten Pfad angeben musst, klingt das irgendwie nach einer fehlerhaften PATH Umgebungsvariablen.

Grüße
rubberman
Bitte warten ..
Ähnliche Inhalte
VB for Applications
Fehler im VBA Code. Kann Feld nicht von einer Datei in die andere uebernehmen
gelöst Frage von Detel1VB for Applications2 Kommentare

Hallo Profis! Bin ein Frischling in VBA. Ich moechte eine Excel Vorlage mit weiteren Felder anpassen. Habe jetzt versucht ...

VB for Applications
VBA nicht ausgefuellte Felder einfaerben
Frage von oceangirlVB for Applications

Hallo zusammen, Leider habe ich mit VBA nur noch wenig zu tun, so dass mein Wissen darueber nicht mehr ...

Microsoft
Mit VBA-Code ein Verzeichnis erstellen
gelöst Frage von DockMaster-deMicrosoft2 Kommentare

Hallo, ich habe mit MS Access 2010 eine Datenbank und ein Frontend. Daten werden über ein Formular eingegeben. Ich ...

Microsoft Office
Kreuztabelle Access + VBA Code
Frage von Dr.CornwallisMicrosoft Office7 Kommentare

Hallo zusammen, ich habe eine Kreuztabelle aus einer Query erzeugt, aus dieser entsteht wiederum ein Bericht, nun habe ich ...

Neue Wissensbeiträge
Windows 10

Windows 10 Fall Creators Update - Neue Funktion Hyper-V Standardswitch kann ggf. Fehler bei Proxy Configs verursachen

Erfahrungsbericht von rzlbrnft vor 4 StundenWindows 101 Kommentar

Hallo Kollegen, Da wir die Gefahr lieben, haben wir bei einigen Usern nun mittlerweile das Creators Update drauf. Einige ...

Sicherheit

TLS-Zertifikat und privater Schlüssel von Microsofts Dynamics 365 geleakt

Information von Penny.Cilin vor 6 StundenSicherheit

Microsoft hat versehentlich das TLS-Zertifikat inklusive dem privaten Schlüssel seiner Business-Anwendung Dynamics 365 geleakt. TLS-Zertifikat und privater Schlüssel von ...

Viren und Trojaner

Deaktivierter Keylogger in HP Notebooks entdeckt

Information von bitcoin vor 1 TagViren und Trojaner2 Kommentare

Ein Grund mehr warum man Vorinstallationen der Hersteller immer blank bügeln sollte Der deaktivierte Keylogger findet sich im vorinstallierten ...

Router & Routing

Lets Encrypt kommt auf die FritzBox

Information von bitcoin vor 1 TagRouter & Routing

In der neuesten Labor-Version der FB7490 integriert AVM unter anderem einen Let's Encrypt Client für Zugriffe auf das Webinterface ...

Heiß diskutierte Inhalte
Netzwerkmanagement
Firefox Profieles im Roaming
gelöst Frage von Hendrik2586Netzwerkmanagement17 Kommentare

Hallo liebe Leute. :) Ich hab da ein kleines Problem, welches anscheinend nicht unbekannt ist. Wir nutzen hier in ...

LAN, WAN, Wireless
Brainstorming, einfachste Option 1 getrenntes LAN (mit WAN zugang)
Frage von 132954LAN, WAN, Wireless13 Kommentare

Hi, folgendes: Wir bekommen eine Glasfaser Leitung, Und das sollte Optional so aussehen: Ein Modem/Router für das WAN, ein ...

Batch & Shell
Trusted Sites für alle User auf dem PC einpflegen
Frage von xXTaKuZaXxBatch & Shell12 Kommentare

Aufgabestellung: Es sollen auf 1 PC (bzw. mehreren PCs) vertrauenswürdige Sites per Powershell eingetragen werden, die für alle User ...

Netzwerkgrundlagen
Hi eine blöde frage. xD
Frage von 132954Netzwerkgrundlagen12 Kommentare

Also: Habe 2012 r2 essentials neuinstalliert, allerdings installiert diese version ja gleich diesen gangen AD kram mit, den hab ...