Pour exécuter cmd en tant qu'administrateur ainsi que le commandement?
Voici mon code:
try
{
ProcessStartInfo procStartInfo = new ProcessStartInfo(
"cmd.exe",
"/c " + command);
procStartInfo.UseShellExecute = true;
procStartInfo.CreateNoWindow = true;
procStartInfo.Verb = "runas";
procStartInfo.Arguments = "/env /user:" + "Administrator" + " cmd" + command;
///command contains the command to be executed in cmd
System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.StartInfo = procStartInfo;
proc.Start();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
Je veux garder
procStartInfo.UseShellExecute = true
procStartInfo.RedirectStandardInput = false;
Est-il possible d'exécuter la commande sans l'aide de process.standardinput
?
J'essaie d'exécuter la commande que j'ai passée en argument, mais la commande ne s'exécute.
il Est possible d'exécuter la commande sans l'aide de processus.standardinput? J'essaie d'exécuter la commande que j'ai passée en argument, mais la commande ne s'exécute. Vous êtes actuellement ne l'utilise pas, donc cette question, ne pas faire beaucoup de sens. Veuillez faire votre faveur et de permettre à l'invite de commande pour être visible, afin qu'ils sachent ce qui se passe.
Vous ne voulez pas
procStartInfo.Arguments = "/env /utilisateur:" + "Administrateur" + "cmd" + commande;
oui, il ne parvient pas à ce point. donc, je veux savoir est-il possible de donner le commandement d'une autre façon
Cela peut vous aider: Démarrer le Processus avec l'administrateur de droit en C#
Vous ne voulez pas
Verb
. Cela ne veut pas dire ce que vous pensez que cela signifie. Je pense que.procStartInfo.Arguments = "/env /utilisateur:" + "Administrateur" + "cmd" + commande;
oui, il ne parvient pas à ce point. donc, je veux savoir est-il possible de donner le commandement d'une autre façon
Cela peut vous aider: Démarrer le Processus avec l'administrateur de droit en C#
OriginalL'auteur purvang | 2011-09-30
Vous devez vous connecter pour publier un commentaire.
@Mtijn dit que vous avez beaucoup de choses que vous êtes aussi impérieuse plus tard. Vous devez également vous assurer que vous tentez de fuir les choses correctement.
Disons que vous voulez exécuter la commande suivante élevée:
Tout d'abord, si vous venez de l'exécution de cette commande par le biais de
Process.Start()
une fenêtre pop ouvrir et fermer tout de suite car il n'y a rien à garder la fenêtre ouverte. Il traite la commande et à la sortie. Pour garder la fenêtre ouverte on peut encapsuler la commande séparé, fenêtre de commande et l'utilisation de la/K
commutateur de le garder en cours d'exécution:Pour exécuter cette commande élevée, nous pouvons utiliser
runas.exe
tout comme vous ont à l'exception que nous avons besoin de sortir les choses un peu plus. Par l'aide docs (runas /?
) toutes les citations dans la commande que nous passons àrunas
doivent être échappés avec une barre oblique inverse. Malheureusement le faire avec la commande ci-dessus nous donne une double barre oblique inverse que confondre la cmd analyseur de sorte que besoin d'être échappé, trop. Si la commande ci-dessus sera à la fin:Enfin, à l'aide de la syntaxe que vous avez fournies, nous pouvons tout envelopper dans un
runas
de commande et de joindre notre commande ci-dessus dans une autre série de citations:Exécutez la commande ci-dessus à partir d'une invite de commande pour s'assurer que son travail comme prévu.
Compte tenu de tout ce que le code final devient plus facile à assembler:
Avez-vous d'exécuter
runas /env /user:Administrator "cmd /K \"dir c:\\\""
oucmd runas /env /user:Administrator "cmd /K \"dir c:\\\""
? La première est que vous devriez avoir exécuté.je le lance en tant que runas /env /user:Administrateur "cmd /K \"dir c:\\\"", mais il donne une erreur comme suit dans l'Impossibilité d'exécuter cmd /k "dir c:\"
Si vous obtenez l'erreur
RUNAS ERROR: Unable to run - cmd /K "dir c:\"
vous doit aussi être l'obtention d'un primaire d'erreur comme1326: Logon failure: unknown user name or bad password.
, êtes-vous?Si l'erreur est de 1326 ensuite ses un mauvais nom d'utilisateur/mot de passe et vous devez corriger l'erreur. Le problème n'est pas avec la commande, à ses pouvoirs. Si vous êtes dans un environnement de domaine, vous pouvez a donné à changer
Administrator
àYOURDOMAIN\Administrator
. Si vous obtenez le code d'erreur 1327 puis, il y a une Stratégie de Groupe d'une sorte de blocage.OriginalL'auteur Chris Haas
pourquoi êtes-vous de l'initialisation de l'objet de processus avec des arguments et puis plus tard, remplacer ces Arguments? et btw: le dernier morceau où vous définissez les Arguments que vous concaténer "commande" à droite jusqu'à "cmd", qui n'a pas beaucoup de sens et peut-être où il échoue (on dirait que vous êtes en manque d'espace).
Aussi, vous êtes actuellement en utilisant la norme de la ligne de commande, vous voudrez peut-être regarder dans l'aide de runas outil à la place. vous pouvez également appeler runas en ligne de commande.
Aussi, pourquoi êtes-vous en cours d'exécution "commande" à partir de la ligne de commande? pourquoi ne pas commencer directement à partir de Processus.Démarrer avec les droits d'administration fournis, alors? voici un peu de pseudo-code:
mise à jour de la réponse avec quelques pseudo-code
OriginalL'auteur mtijn