Commande en ligne de commande (cmd) pour verrouiller une machine Windows

64

Est-il possible de verrouiller une machine Windows XP via la ligne de commande? La shutdowncommande n'a pas d'option pour cela.

Herms
la source
1
Dans une session Remote Desktop, vous devriez pouvoir utiliser <kbd> CTRL </ kbd> + <kbd> ALT </ kbd> + <kbd> FIN </ kbd> pour afficher l'écran de sécurité Windows (où vous pouvez verrouiller votre poste de travail, redémarrage, etc.). Dans Vista ou supérieur, vous pouvez également sélectionner "Sécurité Windows" dans le menu Démarrer. ! Élément de menu Sécurité de Windows
lundi

Réponses:

95
rundll32.exe user32.dll,LockWorkStation

J'ai été averti que cela n'est pas recommandé (sauf par Microsoft ). Les avertissements sont également centrés autour du parent proche de la commande, ExitWindowsEx (qui éteint l’ordinateur). Je n'ai jamais eu de problèmes avec cela, mais YMMV .

Schlump : Le singe caniche a peut-être raison. La légende prévient que le code est puissant et dangereux.
Nudar : Mon Dieu. Nous ferions mieux de l'utiliser seulement trois ou quatre fois. Six, max.
Grignoteuse : Mais même une seule utilisation pourrait briser l'univers!
Nudar : Compris . Deux ou trois fois.

( Source )

Subvention
la source
3
Pendant un moment, j'ai eu une page Web sur mon ordinateur qui, si elle était visitée, invoquerait cette commande (sur mon ordinateur, pas sur les visiteurs). C’était essentiellement un verrou à distance pour mon ordinateur, car lorsque j’oublie de le verrouiller lorsque je quitte la maison et que je réalise que mon frère est en visite.
Grant
2
L'appel de telles fonctions à l'aide de rundll32 n'est vraiment pas recommandé. Pour plus d'informations, voir blogs.msdn.com/oldnewthing/archive/2004/01/15/58973.aspx - faites défiler un peu jusqu'à la section "rundll32".
Grawity
Je n'ai jamais eu de problème avec cela, et cela fonctionne toujours sous Windows 7 (on pourrait présumer que ce n'était pas assez problématique pour le réparer). Quoi qu’il en soit, c’est toujours la seule option en ligne de commande pour verrouiller l’ordinateur (à moins d’installer un programme pour le faire à votre place).
Grant
2
Mais pourquoi n'est-ce pas recommandé?
endolithe
1
Je reconnais qu'il s'agit d'une question plus ancienne, mais je viens de constater que Microsoft a publié un article sur l'utilisation de rundll32. Cette méthode semble donc être la méthode recommandée: docs.microsoft.com/en-us/powershell/scripting/getting- a commencé /…
Aakash Shah
11

Si vous avez accès au compilateur C ++ de Visual Studio, voici la source (extrêmement compliquée):

//
//LockWorkStation.cpp
//
//Locks the console.
//
//To compile (VC++ 2003, on one line):
//
//      cl.exe /W4 LockWorkStation.cpp /link /RELEASE /OPT:REF /OPT:NOWIN98
//                  /ENTRY:mainStartup /SUBSYSTEM:CONSOLE kernel32.lib
//

#if !defined(_WIN32_WINNT) || (_WIN32_WINNT < 0x0500)
    #undef _WIN32_WINNT
    #define _WIN32_WINNT 0x0500 
#endif
#include <windows.h> 

void mainStartup(void)
{
    LockWorkStation(); 
    ExitProcess(0);
}
devstuff
la source
J'ai compilé ceci avec VS2015 en utilisant cette commande:cmd /s /c ""C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x64 & cl.exe /W4 LockWorkStation.cpp /link /RELEASE /ENTRY:mainStartup /SUBSYSTEM:CONSOLE kernel32.lib user32.lib"
Kevin Smyth
6

Notez que sous Windows Vista / 7, vous pouvez utiliser la commande tsdisconpour déconnecter une session de bureau à distance / verrouiller votre poste de travail.

Si vous utilisez la rundll32.exe user32.dll, LockWorkStationcommande dans une session Remote Desktop (sous Windows 7 / Vista), la session se poursuivra, mais vous ne verrez que l'écran de verrouillage dans la fenêtre Remote Desktop.

palswim
la source
TSDISCON a été introduit dans Windows 2000 qui vient d’être vérifié et est également disponible dans Windows XP.
Jeroen Wiert Pluimers
2
N'utilisez pas rundll32.exe avec LockWorkStation , cela gâcherait la pile d'appels et laisserait ce gâchis dans votre session.
Jeroen Wiert Pluimers le
2

Comme il n'est pas recommandé d'exécuter LockWorkStation via rundll32.exe, une autre solution consiste à utiliser Wizmo . Il suffit de courir:

wizmo lock
laurent
la source
2

Pour exécuter sur un planificateur ou après quelques minutes vous avez quitté l'ordinateur, vous pouvez utiliser timeout /t 36000 /nobreak & rundll32.exe user32.dll,LockWorkStation créer un .batfichier le mettre dans la tâche planifiée, mettre le déclencheur sur inactif.

Tu peux changer /t xxx. combien il faut attendre.

Grâce à Kevin, il a utilisé la commande pour l’arrêt, c’est-à-dire: timeout /t 36000 /nobreak & shutdown /h /f

Navid
la source
Pour que vous ne soyez pas déçu si vous n'obtenez pas de réponse, sachez que vous avez répondu à une question qui a une réponse acceptée et qui a 5 ans. Vous n'avez rien fait de mal. Je voulais juste que vous sachiez.
CharlieRB
1

Voici la commande de travail pour Remote PC

@echo off
COLOR 3E
@echo Lock Remote PC
SET /P PC=ıp or Host Name: 
\\%PC%\c$\Windows\System32\rundll32.exe user32.dll,LockWorkStation
serdar
la source
1

Je configure mon ordinateur pour une connexion automatique, lance immédiatement "rundll32.exe user32.dll, LockWorkStation" puis lance le chargement des applications (fichier .CMD unique dans mon dossier de démarrage).

Fonctionne bien. Lorsque je dois redémarrer et que je suis à un point critique, je redémarre l'ordinateur, je fais une pause, etc., et à mon retour, je déverrouille mon ordinateur. Les applications sont toutes chargées.

À M
la source
-3

Vous pouvez également le faire à partir d’un ordinateur local pour verrouiller un poste de travail distant à l’aide d’un chemin UNC:

\\computername\c$\Windows\System32\rundll32.exe user32.dll,LockWorkStation

Obtenir un accès refusé avec les postes de travail Windows 7, mais fonctionne avec Windows XP.

Admin à distance
la source
3
Cela exécutera simplement le fichier binaire rundll32.exe sur votre poste de travail local à partir du disque du poste de travail distant, puis verrouillera votre poste de travail local.
hjd
1
Ceci verrouille la machine sur laquelle il fonctionne
G-.
-6

Sous Windows Server 2012, appuyez sur: Win+L

Andrea
la source
6
Ce n'est pas une commande en ligne de commande .
Daniel Beck