Sur les systèmes * nix, vous pouvez obtenir un shell root comme ceci:
$ su # or 'sudo -s'
#
La coque de racine est créée sur place dans le même terminal.
J'essaie de trouver quelque chose qui fait une élévation sur place similaire sur l'invite de commande Windows. En d'autres termes, il ne doit pas créer de nouvelle fenêtre ni afficher les invites du contrôle de compte d'utilisateur. Jusqu'à présent, j'ai pu créer une tâche planifiée qui contourne le contrôle de compte d'utilisateur, mais la fenêtre d'invite de commande élevée n'est pas générée à la place.
Existe-t-il une commande similaire pour Windows qui effectue une élévation sur place sans générer de nouvelle fenêtre?
windows
command-line
uac
utilisateur2064000
la source
la source
sudo
demandera parfois un mot de passe, mais avec une interface texte. Je me demande un peu comment les serveurs Nano (qui, à mon avis, n'offrent même pas une interface graphique pour Remote Desktop) le gèrent.Réponses:
TL; DR - La seule option est de générer un autre processus. (Une nouvelle
cmd.exe
.) Dans le cas d'une invite de commande, le démarrage d'une nouvelle instance avec un jeton d'accès doté d'autorisations plus élevées entraînera toujours la création d'une nouvelle fenêtre .Il n'est pas possible d'accorder des autorisations supplémentaires à un processus déjà en cours d' exécution.
Lorsqu'un utilisateur disposant de droits d'administration se connecte à un ordinateur Windows avec le contrôle de compte d'utilisateur (UAC) activé, deux jetons d'accès distincts sont créés :
Au moment où un processus (par exemple
CMD.EXE
) est créé, l'un de ces deux jetons d'accès lui est attribué . Si le processus est exécuté en tant qu'administrateur "élevé", le jeton d'accès non filtré est utilisé. Si le processus ne dispose pas des droits d'administrateur, le jeton d'utilisateur standard filtré est utilisé.Une fois qu'un processus a été créé, il n'est plus possible de remplacer son jeton d'accès . 1 Dans ce fil de discussion MSDN Application Security pour Windows Desktop , une affiche s'identifiant comme membre de l'équipe du noyau Windows indique:
Remarque: le contrôle de compte d'utilisateur a été introduit avec la publication de Windows Vista .
Cette réponse du super utilisateur cite deux sources supplémentaires confirmant la même chose:
Article de blog de devzest.com Programmation de privilèges élevés / UAC :
L'article de techtarget.com Comment élever correctement les privilèges des programmes à l'aide de l'UAC de Vista :
Par conséquent, il est tout simplement impossible d'élever l'invite de commande ou tout autre processus en place. La seule option est de générer un autre processus avec un nouveau jeton d'accès (qui peut être une autre instance du processus d'origine si vous le souhaitez). Dans le cas de l'invite de commande, le démarrage d'une nouvelle instance avec un jeton d'accès doté d'autorisations plus élevées entraînera toujours la création d'une nouvelle fenêtre. Si les invites UAC sont activées sur le système, elles sont également déclenchées.
1 Vous pouvez ajuster les privilèges dans un jeton d'accès existant avec la fonction AdjustTokenPrivileges , mais selon MSDN :
la source
Bien que je sois un utilisateur enthousiaste de
TCC-LE
, il existe une solution qui ne nécessite aucun nouveau programme: -cmd
tant qu'administrateur.%SystemRoot%\system32\
- sinon,cd
là - bas.copy cmd.exe cmdadmin.exe
(ou n'importe quel nom que vous choisissez, tel quesu.exe
).cmdadmin.exe
.Maintenant
cmdadmin
est votresu
ousudo
vous pouvez démarrer sans paramètres pour vous donner un shell avec des privilèges d' administrateur, ou vous pouvez l' exécuter avec/c
pour exécuter une commande unique dans ce mode. En fonction de vos politiques, vous pouvez être invité ou non à une confirmation.Notez que cela ouvrira toujours une nouvelle fenêtre (comme le fait la solution TCC
start /elevated ...
): pour une application graphique, cela est prévu, mais pour un programme en ligne de commande, vous souhaiterez peut-être utiliser à la/k
place de/c
, pour vous permettre de voir le résultat. ; ou vous pouvez exécuter via un fichier de commandes (sudo.cmd
peut-être?) qui se concatène& pause
à la fin de votre chaîne d'exécution.Dans les deux cas, ce n'est pas tout à fait la même chose que
su
ousudo
, mais c'est le plus proche que vous obtiendrez. En définissant manuellement la disposition des fenêtres, la nouvelle fenêtre peut être créée directement en-dessous et à côté de l’original.la source
sudo
, avec l’avertissement de devoir encore gérer une nouvelle fenêtre / un nouveau processus. Bien que ce ne soit probablement pas la meilleure idée du point de vue de la sécurité, la désactivation de toutes les invites du contrôle de compte d'utilisateur évite d'avoir à répondre à l'invite du contrôle de compte d'utilisateur lorsque le processus élevé est démarré.mklink cmdadmin.exe cmd.exe
Il y a une manière assez peu pratique:
Il y avait de meilleures façons mais Microsoft les a fermées. Bien sûr, vous pouvez toujours vous retrousser les manches et écrire votre propre script équivalent
sudo
au code source que je viens de vous donner.Blasphème! Brûlez-le dans le bûcher! ;) Blague à part, non. Il n'y a pas. Ce serait un bug et une faille de sécurité. Microsoft a fait un effort explicite pour que les processus élevé et standard aient le moins en commun possible.
Les enfants intelligents qui envisagent deux arrière-plans (un standard et un surélevé) et une interface graphique pour les deux devraient se renseigner sur l' isolation de la session 0 .
la source
Aucune commande de ce type n’est intégrée. Bien que je n’aie pas prouvé cela, j’estime que, parce que j’ai vu plusieurs façons d’utiliser un logiciel / code supplémentaire pour résoudre ce problème.
Oublie. Absolument oublie ça. Cela va à l’encontre de la conception de l’UAC. Si vous pouviez gérer cela, vous rompez un processus de sécurité fondamental. Attendez-vous à ce que votre solution soit corrigée par un correctif après que Microsoft ait eu connaissance des correctifs que vous auriez apportés, quel que soit le processus que vous pourriez effectuer pour contourner ce problème.
La solution pour éviter les invites UAC est de commencer par une altitude élevée. UAC ne devrait pas vous déranger si vous êtes suffisamment autorisé. Si vous commencez par une altitude plus basse (ce qui est souvent recommandé pour des raisons de sécurité), puis essayez de faire quelque chose exigeant une altitude plus élevée, attendez-vous à une interaction UAC.
la source
elevate cmd
pour ouvrir une nouvelle fenêtre d'invite de commande avec une invite UAC (le site propose également des commandes de menu contextuel!). Ou bien sûr, vous pouvez simplement appuyer sur Ctrl + Maj + Clic sur l'icône de la barre des tâches de n'importe quelle fenêtre d'invite de commande existante pour en faire autant - c'est ce que j'ai tendance à faire le plus souvent. (Ce que je sais, ce n'est pas ce que le PO a demandé, mais ce que le PO a demandé est bloqué par sa conception.)Ce que vous voulez est impossible dans Windows, car ne supporte pas ce concept. Vous devez démarrer un nouveau processus avec des autorisations plus élevées .
J'utilise nircmd pour élever les processus de la ligne de commande. Votre commande serait
nircmdc elevate cmd
la source
J'ai vu cette question et proposé une solution simple. Il s’agit d’un petit utilitaire appelé
rsudo
qui exécute des commandes en mode escalade à partir d’une fenêtre CMD normale.Remarque: Une invite UAC va venir. Cacher cela n'est pas possible, c'est juste la façon dont le CCU a été conçu.
Télécharger[Le téléchargement ne fonctionne pas, sera mis à jour bientôt]Remarque: les commandes sont exécutées dans une nouvelle fenêtre. Si vous voulez voir le résultat, lancez
rsudo.exe "pause && [command]"
la source
rsudo.exe "[command] && pause"
?pause
nous courons d'abordCelui-ci est bizarre.
Vous pouvez essayer de créer un ssh sur votre propre ordinateur, qui utiliserait le même terminal existant, mais serait en réalité tout à fait différent.
Cela fonctionnera, mais ce n'est probablement pas ce que vous voulez.
D'autres peuvent le trouver utile cependant.
la source
Essayez l’ invite de commande TCC / LE de la commande JPSOFT Take . Il est disponible en versions 32 et 64 bits et est gratuit, sauf si vous souhaitez davantage de fonctionnalités.
Allez sur https://jpsoft.com/ et cliquez sur Téléchargements et sélectionnez ce que vous voulez.
TCC / LE a un START / ELEVATED, qui démarre le programme avec des privilèges d’administrateur complets. (Windows Vista ou version ultérieure uniquement.)
la source