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

Mitglied: raffi83

raffi83 (Level 1) - Jetzt verbinden

13.08.2010 um 18:15 Uhr, 6200 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 ...

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 ...

Basic

Formeln in VBA Code einfügen

gelöst Frage von Dett18Basic6 Kommentare

Hallo liebe Excel VBA Gemeinde, ich habe hier eine Buchungsdatei, die mit Daten einer Rechnung gefüllt wird. Da 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

USB Maus und Tastatur versagen Dienst unter Windows 10

Erfahrungsbericht von hardykopff vor 1 TagWindows 105 Kommentare

Da steht man ziemlich dumm da, wenn der PC sich wegen fehlender USB Tastatur und Maus nicht bedienen lässt. ...

Administrator.de Feedback
Update der Seite: Alles zentriert
Information von Frank vor 1 TagAdministrator.de Feedback18 Kommentare

Hallo User, die größte Änderung von Release 5.8 ist das Zentrieren der Webseite (auf großen Bildschirmen) und ein "Welcome"-Teaser ...

Humor (lol)

WhatsApp-Nachrichten endlich auch per Bluetooth versendbar

Information von BassFishFox vor 2 TagenHumor (lol)4 Kommentare

Genau darauf habe ich gewartet! ;-) Der beliebte Messaging-Dienst WhatsApp erhält eine praktische neue Funktion: Ab dem nächsten Update ...

Google Android

Googles "Android Enterprise Recommended" für Unternehmen

Information von kgborn vor 2 TagenGoogle Android3 Kommentare

Hier eine Information, die für Administratoren und Verantwortliche in Unternehmen, die für die Beschaffung und das Rollout von Android-Geräten ...

Heiß diskutierte Inhalte
Windows Netzwerk
WSUS4 und Windows 10 Updates automatisch installieren
Frage von sammy65Windows Netzwerk15 Kommentare

Hallo miteinander, ich habe mit einen neuen WSUS Server aufgesetzt Server 2016 darauf einen aktuellen WSUS. Grund, wir stellen ...

Speicherkarten
Vergessliche USB-Sticks?
Frage von hanheikSpeicherkarten14 Kommentare

Ich habe in den letzten Tagen 500 USB-Sticks mit Bilddateien bespielt. Obwohl ich die Dateien mit größter Sorgfalt kopiert ...

Hyper-V
Hyper-V mit altem XEON-Server. Was ist falsch?
Frage von LollipopHyper-V11 Kommentare

Hallo Bin etwas frustriert. Kleinbetrieb, ca. 15 PC's, 2 Stk. Server mit einigen virtuellen PC's für Fernwartung, VaultServer für ...

Windows Server
NTFS Berechtigungen Ordnerstruktur
Frage von hukahu23489Windows Server11 Kommentare

Hallo, ich bin seit kurzem in einer neuen IT-Abteilung und bin über das Berechtigungskonzept des Unternehmens sehr schockiert. Ich ...