• 一键操作IIS


    之前写过一篇文章,使用WinForm一键部署站点网站,这个任务的前提是服务器安装了IIS,那么如果没有安装IIS,是否也可以一键安装IIS呢?这篇文章就是为了解决这个问题。

    网上找了很多方法,最简单的办法就是执行DOS命令,下面是执行DOS命令的方法:

        public class ExecuteDOS
        {
            /// <summary>
            /// 执行DOS命令,返回DOS命令的输出
            /// </summary>
            /// <param name="dosCommand">dos命令</param>
            /// <param name="milliseconds">等待命令执行的时间(单位:毫秒),
            /// 如果设定为0,则无限等待</param>
            /// <returns>返回DOS命令的输出</returns>
            public static string Execute(string command, int seconds)
            {
                string output = ""; //输出字符串
                if (command != null && !command.Equals(""))
                {
                    Process process = new Process();//创建进程对象
                    ProcessStartInfo startInfo = new ProcessStartInfo();
                    startInfo.FileName = "cmd.exe";//设定需要执行的命令
                    startInfo.Arguments = "/C " + command;//“/C”表示执行完命令后马上退出
                    startInfo.UseShellExecute = false;//不使用系统外壳程序启动
                    startInfo.RedirectStandardInput = false;//不重定向输入
                    startInfo.RedirectStandardOutput = true; //重定向输出
                    startInfo.CreateNoWindow = true;//不创建窗口
                    process.StartInfo = startInfo;
                    try
                    {
                        if (process.Start())//开始进程
                        {
                            if (seconds == 0)
                            {
                                process.WaitForExit();//这里无限等待进程结束
                            }
                            else
                            {
                                process.WaitForExit(seconds); //等待进程结束,等待时间为指定的毫秒
                            }
                            output = process.StandardOutput.ReadToEnd();//读取进程的输出
                        }
                    }
                    catch
                    {
                    }
                    finally
                    {
                        if (process != null)
                            process.Close();
                    }
                }
                return output;
            }
        }

    有了执行DOS命令的代码,下面就是找到操作IIS的DOS命令了,代码如下:

            /// <summary>
            /// 执行DOS命令
            /// </summary>
            /// <param name="type">0:IIS7完全安装;1:IIS7安装;2:IIS7卸载;3:IIS7-FTP服务器 安装;4:IIS7-FTP服务器 卸载</param>
            /// <param name="seconds"></param>
            private void RunDOS(int type,int seconds)
            {
                string dos = "";
                switch (type)
                {
                    case 0: // IIS7完全安装
                        dos = "start /w pkgmgr /iu:IIS-WebServerRole;IIS-WebServer;IIS-CommonHttpFeatures;IIS-StaticContent;" +
                            "IIS-DefaultDocument;IIS-DirectoryBrowsing;IIS-HttpErrors;IIS-HttpRedirect;IIS-ApplicationDevelopment;" +
                            "IIS-ASPNET;IIS-ASPNET45;IIS-NetFxExtensibility45;NetFx4Extended-ASPNET45;IIS-NetFxExtensibility;" +
                            "IIS-ASP;IIS-ISAPIExtensions;IIS-ISAPIFilter;IIS-ServerSideIncludes;IIS-HealthAndDiagnostics;IIS-HttpLogging;" +
                            "IIS-LoggingLibraries;IIS-RequestMonitor;IIS-HttpTracing;IIS-CustomLogging;IIS-ODBCLogging;IIS-Security;" +
                            "IIS-BasicAuthentication;IIS-WindowsAuthentication;IIS-DigestAuthentication;IIS-ClientCertificateMappingAuthentication;" +
                            "IIS-IISCertificateMappingAuthentication;IIS-URLAuthorization;IIS-RequestFiltering;IIS-IPSecurity;IIS-Performance;" +
                            "IIS-WebServerManagementTools;IIS-ManagementConsole;IIS-ManagementScriptingTools;IIS-ManagementService;" +
                            "IIS-IIS6ManagementCompatibility;IIS-Metabase;IIS-WMICompatibility;IIS-LegacyScripts;IIS-LegacySnapIn;" +
                            "WAS-WindowsActivationService;WAS-ProcessModel;WAS-NetFxEnvironment;WAS-ConfigurationAPI ";
                        break;
                    case 1: // IIS7安装
                        dos = "start /w pkgmgr /iu:IIS-WebServerRole;WAS-WindowsActivationService;WAS-ProcessModel;";
                        break;
                    case 2: // IIS7卸载
                        dos = "start /w pkgmgr /uu:IIS-WebServerRole;WAS-WindowsActivationService;WAS-ProcessModel ";
                        break;
                    case 3: // IIS7-FTP服务器 安装
                        dos = "start /w pkgmgr /iu:IIS-FTPServer;IIS-FTPSvc;IIS-FTPExtensibility  ";
                        break;
                    case 4: // IIS7-FTP服务器 卸载
                        dos = "start /w pkgmgr /uu:IIS-FTPServer;IIS-FTPSvc;IIS-FTPExtensibility ";
                        break;
                    default:
                        break;
                }
                if (dos != "")
                {
                    ExecuteDOS.Execute(dos, seconds);
                }
            }

    以上就完成了IIS的一键安装和卸载等功能了,比较简单,有兴趣的可以继续深入不同版本IIS的一键操作。

  • 相关阅读:
    assignment of day nine
    不会互相转化,看我的
    enumrate用法
    这是作业
    这是表格
    本周回顾
    爬虫
    今天又学了啥?
    what have we learnt in day five
    OMG that's another blog!
  • 原文地址:https://www.cnblogs.com/qianj/p/12794540.html
Copyright © 2020-2023  润新知