Invite de commandes en tant qu'utilisateur SYSTEM (Windows 7)

10

Comment puis-je obtenir une invite de commande en tant qu'utilisateur SYSTEM sur Windows 7?

Contexte: je teste un script de démarrage d'ordinateur et j'ai besoin de comprendre le comportement d'une commande lorsqu'elle est exécutée en tant que SYSTEM plutôt que mon compte d'utilisateur.

J'ai vu des façons de le faire avec atet psexec, mais ces méthodes ne semblent fonctionner que sous Windows XP ou Windows Vista.

J'utilise Windows 7 Pro SP1.

stephenwade
la source
1
SYSTÈME est généralement les services utilisateurs gérés, pas un compte interactif ...
Austin T French
1
Peut-être que je comprends mal quelque chose. Voici l'objectif: j'ai un script que je prévois de déployer dans notre organisation via la stratégie de groupe. Même si le script devrait fonctionner, ce n'est pas le cas.
stephenwade
1
Le script s'exécutera comme un script de démarrage de l'ordinateur, qui je pense s'exécute comme SYSTEM; par conséquent, je veux une invite de commande en tant que SYSTEM pour tester mon script. Suis-je correct que les scripts de démarrage s'exécutent en tant que SYSTEM? Si oui, quelle est la meilleure façon de tester mon script?
stephenwade
1
Un script de démarrage d'ordinateur dans la stratégie de groupe.
stephenwade
1
I've seen ways to do this with at and psexec, but those methods only appear to work on Windows XP or Windows 7. I'm using Windows 7 Pro SP1. Um… ఠ_ ಠ
Synetech

Réponses:

3

Cela a été demandé sur Stack Overflow . La réponse acceptée utilise PsExec (de la suite Systinternals ) comme Scott l'a suggéré.

Une autre solution consiste à créer un service qui s'exécute sous le compte système pour exécuter l'interpréteur de commandes. Vous pouvez le faire manuellement ou utiliser un programme qui crée les services, exécute l'invite, puis supprime le service automatiquement. Je viens de l'essayer et cela a fonctionné un régal:

Capture d'écran du Gestionnaire des tâches avec CMD fonctionnant en tant que système

Synetech
la source
9

Utilisez PsExec de la suite Systinternals de Microsoft . PsExec doit être exécuté à partir d'une invite de commandes d'administration. Utilisez les -i -scommutateurs pour lancer votre script / invite de commande.

Entrez la description de l'image ici

Scott Chamberlain
la source
1
Même dans une invite de commande Administrateur, je reçois le message " Access is denied."
stephenwade
@stephenwade Comment obtenez-vous l'invite de commande administrateur, faites-vous un clic droit et faites "Exécuter en tant qu'administrateur"? Dit-il "Administrateur: invite de commande" dans la vignette lorsque la fenêtre est ouverte avant de démarrer PsExec? Essayez également de le pointer vers un fichier réseau à exécuter, le jeton de connexion au partage distant est perdu pendant le processus d'élévation.
Scott Chamberlain
Oui, j'ai fait un clic droit sur l'invite de commande dans le menu Démarrer et j'ai cliqué sur "Exécuter en tant qu'administrateur".
stephenwade
1
J'exécute psexec à partir d'un dossier réseau lié au lecteur H :. Serait-ce le problème?
stephenwade
1
@stephenwade oui, lorsque vous élevez, vous perdez vos lecteurs réseau (car ils sont liés au compte utilisateur et que vous changez de compte utilisateur), copiez local et cela fonctionnera.
Scott Chamberlain
1

Je serais très prudent en faisant cela. SYSTEM est le compte Administrateur mais beaucoup, beaucoup plus dangereux car il a un niveau d'accès plus élevé.

Généralement, votre SYSTÈME correspond aux services de compte gérés, et non à un profil interactif. Il existe cependant des moyens de le faire.

En lisant ceci, je pense que nous avons une bonne approche:

  1. Vérifiez le nom du compte auquel vous vous êtes connecté (cliquez sur Démarrer. Vous
    verrez le nom du compte auquel vous vous êtes connecté.)
  2. Lancez l'invite de commande. (Démarrer | Exécuter | cmd | [Entrée])
    à l'invite de commandes, créez une planification pour exécuter cmd.exe.
    Pour créer un horaire, tapez la ligne suivante et appuyez sur Entrée.
    à 10:41 / "cmd.exe" interactif,
    cela créera une planification pour exécuter cmd.exe à 10:41.
    (Puisque vous testez, vérifiez l'heure dans votre système, essayez d'ajouter deux ou trois minutes.) Modifiez cette heure en fonction de votre heure locale.
    Astuce: vous pouvez vérifier si le programme est placé en tapant " à "
    et en appuyant sur Entrée après ce qui précède. étape.
  3. Attendez l'heure que vous avez définie pour le programme.
    cmd.exe serait lancé à l'heure spécifiée.
  4. Une fois que cmd.exe est lancé à l'heure planifiée, appuyez sur [CTRL] + [ALT] + [DEL] et lancez le gestionnaire de tâches.
    Sélectionnez l'onglet "Processus", sélectionnez explorer.exe dans la liste des processus et cliquez sur le bouton " Terminer le processus ".
    Vous recevrez un dialogue de confirmation. Cliquez sur "Oui" pour terminer le processus.
  5. Fermez le gestionnaire de tâches en cliquant sur le bouton Fermer (X).
    Fermez la première fenêtre cmd (veillez à fermer la première et non la seconde.)
  6. Vous n'avez maintenant que la deuxième fenêtre d'invite de commandes et un bureau vide.
    Dans l'invite de commande, tapez la ligne suivante et appuyez sur "Entrée"
    cd ..
  7. Dans l'invite de commande, tapez la ligne suivante et appuyez sur "Entrée"
    explorer.exe.
    Si c'est la première fois que vous le faites, Windows crée les
    composants nécessaires pour que vous puissiez accéder au système (bureau, menu Démarrer,
    mon document) une
    fois terminé, vous aurez un nouveau bureau.
  8. Fermez la fenêtre d'invite de commandes. Cliquez sur démarrer et vérifiez votre nom d'utilisateur.
    Il a été remplacé par System.
    Vous êtes maintenant un super-utilisateur. Faites attention de ne pas endommager votre PC et de supprimer ou de modifier les fichiers système si vous ne savez pas ce que vous faites.

L'autre option serait d'exécuter votre script en tant que service.

Austin T français
la source
2
atne fonctionne pas dans Windows 7.
stephenwade
1
atfonctionne sur ma machine Windows 7. Qu'est-ce qui ne fonctionne pas pour vous?
uSlackr
3
Voici une autre façon (plus rapide?) De terminer votre processus d' exploration dans Windows 7: Cliquez sur Démarrer. Déplacez la souris sur le côté droit du menu (où se trouvent «Exécuter» et «Fermer la session»). (Ctrl) + (Maj) + (clic droit); cliquez sur «Quitter l'explorateur».
Scott
2
C: \ Windows \ system32> à 23:56 / interactif "cmd.exe" Avertissement: En raison des améliorations de sécurité, cette tâche s'exécutera à l'heure prévue mais pas de manière interactive. Utilisez l'utilitaire schtasks.exe si une tâche interactive est requise ('schtasks /?' Pour plus de détails). Ajout d'un nouveau travail avec l'ID de travail = 1 blogs.technet.com/b/askds/archive/2008/10/22/…
Dagelf
1

Il existe également une approche un peu plus hacky, qui consiste essentiellement à remplacer cmd.exe à la place d'Utilman.exe dans \ Windows \ System32 (ce qui nécessiterait évidemment une sauvegarde). Vous devez au préalable le faire en dehors de Windows en cours d'exécution (par exemple sous Linux ou via un CD d'installation / de récupération). Voici un exemple de script à utiliser (via Windows):

cd "%SystemRoot%\System32"
ren Utilman.exe Utilman.exe.bak
robocopy cmd.exe Utilman.exe /copyall

Après cela, démarrez dans Windows normal et appuyez sur Windows Key + U, et au lieu de mettre en place un ensemble d'utilitaires pour aider à l'accessibilité, etc., il affiche une invite de commande au niveau du système avec tous les outils disponibles de votre système .

Isiah Meadows
la source
Il est également possible de le faire à l'intérieur de Windows, sans disques, même sans le redémarrer. Accédez simplement à System32, ouvrez les propriétés de UtilMan.exe, prenez tous les privilèges et la propriété, puis procédez comme suit.
Jet
Ceci est pratique si vous ne pouvez pas vous connecter à un système et accéder uniquement à l'écran de connexion
Vitas