Jusqu'à Windows Server 2003 R2, il était possible d'avoir un cmd s'exécutant dans le contexte système. Cela permettait, entre autre, de tester le contexte système (pour des accès à des partages par exemple) et d'afficher les tickets Kerberos attribué à la machine.

Pour cela, il fallait

  • Ouvrir une session localement sur le serveur ou se connecter à la session console en bureau à distance (mstsc /console)
  • Planifier une tâche interactive démarrant cmd.exe
    at HH:MM /interactive cmd.exe

A l'heure indiquée un nouveau command prompt apparait, il s'exécute dans le contexte système.

clip_image001

Depuis Windows Vista et Windows Serveur 2008, ce mécanisme ne fonctionne plus. Les tâches planifiées via AT ne peuvent plus être interactives.

clip_image003

Pour obtenir un command prompt dans le contexte système sur ces plateformes, plusieurs autres solutions existent.

 

PsExec

clip_image005

 

Remote.exe

Remote.exe fait parti des Debugging Tools disponibles sur le site web Microsoft à l'adresse
http://www.microsoft.com/whdc/DevTools/Debugging/default.mspx

  • Copier remote.exe sur la machine dans le dossier c:\Debuggers (par exemple)
  • Démarrez un command prompt avec tous les privilèges (Exécuter en tant qu'administrateur)
  • Exécutez la commande
    AT HH:MM c:\Debuggers\remote.exe /s c:\windows\system32\cmd.exe SYSCMD
  • Une fois l'heure spécifiée passée, exécutez la commande
    c:\debuggers\remote.exe /c <ComputerName> SYSCMD

La commande cmd.exe affichera alors


****************************************
*********** REMOTE *************
*********** CLIENT *************
****************************************
Connected...
c:\windows\system32
** Remote: Connected to %computername%

clip_image007

 

Mots clés Technorati : ,

Cyrille de Pardieu