Έχω χρησιμοποιήσει τη Σύνδεση απομακρυσμένης επιφάνειας εργασίας για να μπω σε έναν σταθμό εργασίας. Αλλά σε αυτό το περιβάλλον, δεν μπορώ να χρησιμοποιήσω τις επιλογές ενέργειας στο μενού Έναρξη. Χρειάζομαι έναν εναλλακτικό τρόπο τερματισμού ή επανεκκίνησης.
Πώς μπορώ να ελέγξω την κατάσταση λειτουργίας του υπολογιστή μου'μέσω της γραμμής εντολών;
Οι πιο συνηθισμένοι τρόποι χρήσης της εντολής shutdown
είναι:
shutdown -s
- Κλείνει.
shutdown -r
- Επανεκκίνηση.
shutdown -l
- Αποσυνδέει την εφαρμογή.
shutdown -h
- Αδρανοποίηση.
Σημείωση: Υπάρχει μια συνηθισμένη παγίδα όπου οι χρήστες νομίζουν ότι το -h
σημαίνει "help" (το οποίο σημαίνει για κάθε άλλο πρόγραμμα γραμμής εντολών... εκτός από το shutdown.exe
, όπου σημαίνει "hibernate"). Στη συνέχεια εκτελούν το shutdown -h
και κατά λάθος απενεργοποιούν τους υπολογιστές τους. Προσέξτε το αυτό.
shutdown -i
- "Interactive mode". Αντί να εκτελέσει μια ενέργεια, εμφανίζει ένα παράθυρο διαλόγου GUI.
shutdown -a
- Διακόπτει μια προηγούμενη εντολή τερματισμού.
Οι παραπάνω εντολές μπορούν να συνδυαστούν με αυτές τις πρόσθετες επιλογές:
-f
- Αναγκάζει τα προγράμματα να τερματίσουν. Αποτρέπει την εμπλοκή της διαδικασίας τερματισμού.
-t <seconds>
- Ορίζει το χρόνο μέχρι τον τερματισμό. Χρησιμοποιήστε -t 0
για να τερματίσετε αμέσως.
-c <message>
- Προσθέτει ένα μήνυμα τερματισμού. Το μήνυμα θα καταλήξει στο αρχείο καταγραφής συμβάντων.
-y
- Επιβάλλει την απάντηση "yes" σε όλα τα ερωτήματα τερματισμού.
Σημείωση: Αυτή η επιλογή δεν τεκμηριώνεται σε καμία επίσημη τεκμηρίωση. Ανακαλύφθηκε από αυτούς τους χρήστες του StackOverflow.
Θέλω να βεβαιωθώ ότι μαζί με αυτή την απάντηση θα αναφερθούν και κάποιες άλλες πολύ καλές απαντήσεις. Εδώ είναι χωρίς ιδιαίτερη σειρά.
-f
από τον JosephStyonsrundll32
από τον VonCΑν βρίσκεστε σε ένα απομακρυσμένο μηχάνημα, μπορεί επίσης να θέλετε να προσθέσετε την επιλογή -f για να αναγκάσετε την επανεκκίνηση. Διαφορετικά, η συνεδρία σας μπορεί να κλείσει και μια επίμονη εφαρμογή μπορεί να κρεμάσει το σύστημα.
Εγώ το χρησιμοποιώ αυτό κάθε φορά που θέλω να επιβάλλω μια άμεση επανεκκίνηση:
shutdown -t 0 -r -f
Για μια πιο φιλική επιλογή "δώστε τους λίγο χρόνο", μπορείτε να χρησιμοποιήσετε αυτό:
shutdown -t 30 -r
Όπως μπορείτε να δείτε στα σχόλια, το -f υπονοείται από το χρονικό όριο.
Το Brutus 2006 είναι ένα βοηθητικό πρόγραμμα που παρέχει ένα GUI για αυτές τις επιλογές.
Αρχική απάντηση: Οκτώβριος 2008
Έχετε επίσης όλα τα "` serie:rundll32.exe shell32.dll
"
(βλέπε ενημέρωση παρακάτω)
rundll32.exe user.exe,**ExitWindows**
[Γρήγορος τερματισμός λειτουργίας των Windows]
rundll32.exe user.exe,**ExitWindowsExec**
[Επανεκκίνηση των Windows]
rundll32.exe shell32.dll,SHExitWindowsEx n
όπου n
σημαίνει: "n":
LOGOFF
SHUTDOWN
REBOOT
FORCE
(μπορεί να συνδυαστεί -> 6 = 2+4 FORCE REBOOT
)
1800 ΠΛΗΡΟΦΟΡΙΕΣ επισημαίνει ευγενικά στα σχόλια:
Μην χρησιμοποιείτε το rundll32.exe
για αυτόν τον σκοπό. Αναμένει ότι η συνάρτηση που περάσατε στη γραμμή εντολών έχει μια πολύ συγκεκριμένη υπογραφή μεθόδου - δεν'ταιριάζει με την υπογραφή της μεθόδου ExitWindows
.
Η υπογραφή της συνάρτησης που απαιτείται για τις συναρτήσεις που καλούνται από το
rundll32.exe
είναι:
void CALLBACK ExitWindowsEx(HWND hwnd, HINSTANCE hinst,
LPSTR pszCmdLine, int nCmdShow);
Αυτό δεν εμπόδισε τους ανθρώπους να χρησιμοποιούν το
rundll32
για να καλούν τυχαίες συναρτήσεις που δεν είχαν σχεδιαστεί για να καλούνται από τοrundll32
, όπως τοuser32 LockWorkStation
ή τοuser32 ExitWindowsEx
.
(oops)
Η πραγματική υπογραφή της συνάρτησης ExitWindowsEx είναι η εξής:
BOOL WINAPI ExitWindowsEx(UINT uFlags, DWORD dwReserved);
Και για να το κάνουμε κρυστάλλινα σαφές:
Το
Rundll32
είναι ένα απομεινάρι από τα Windows 95, και έχει καταργηθεί τουλάχιστον από τα Windows Vista, επειδή παραβιάζει πολλές σύγχρονες τεχνικές οδηγίες.