Enable IIS Feature in windows 10 programaticaaly using c#

Binumon George 161 Reputation points
2022-09-04T16:39:37.593+00:00

In my c# windows application i following link to install IIS in windows 10.
https://stackoverflow.com/questions/32097336/programmatically-enable-install-iis

if i follow PkgMgr it will install IIS and and enable some features. But if i want to enable WIndows Authentication, Anonyamous Authentication, Static Content compression, Dynamic content compression what changes need to do

This url is about windows 8. But i want window 10

Below i am giving my code

string pkg = "start /w pkgmgr /iu:IIS-WebServerRole;IIS-WebServer;IIS-CommonHttpFeatures;IIS-StaticContent;IIS-DefaultDocument;IIS-DirectoryBrowsing;IIS-HttpErrors;IIS-ApplicationDevelopment;IIS-ISAPIExtensions;IIS-ISAPIFilter;IIS-NetFxExtensibility45;IIS-ASPNET45;IIS-NetFxExtensibility;IIS-ASPNET;IIS-HealthAndDiagnostics;IIS-HttpLogging;IIS-RequestMonitor;IIS-Security;IIS-RequestFiltering;IIS-HttpCompressionStatic;IIS-WebServerManagementTools;IIS-ManagementConsole;WAS-WindowsActivationService;WAS-ProcessModel;WAS-NetFxEnvironment;WAS-ConfigurationAPI";

ProcessStartInfo pStartInfo = new ProcessStartInfo("cmd.exe", "/c " + pkg);
Process p = new Process();
p.StartInfo = pStartInfo;
p.Start();

I tried DISM command also. But its not making any changes in IIS

Internet Information Services
{count} votes

2 answers

Sort by: Most helpful
  1. Sam Wu-MSFT 7,036 Reputation points Microsoft Vendor
    2022-09-06T02:43:14.353+00:00

    @Binumon George

    You can also try install IIS with PowerShell:

    # This script installs IIS and the features required to  
    #  
    # * Make sure you run this script from a Powershel Admin Prompt!  
    # * Make sure Powershell Execution Policy is bypassed to run these scripts:  
    # * YOU MAY HAVE TO RUN THIS COMMAND PRIOR TO RUNNING THIS SCRIPT!  
    Set-ExecutionPolicy Bypass -Scope Process  
      
    # To list all Windows Features: dism /online /Get-Features  
    # Get-WindowsOptionalFeature -Online   
    # LIST All IIS FEATURES:   
    # Get-WindowsOptionalFeature -Online | where FeatureName -like 'IIS-*'  
      
    Enable-WindowsOptionalFeature -Online -FeatureName IIS-WebServerRole  
    Enable-WindowsOptionalFeature -Online -FeatureName IIS-WebServer  
    Enable-WindowsOptionalFeature -Online -FeatureName IIS-CommonHttpFeatures  
    Enable-WindowsOptionalFeature -Online -FeatureName IIS-HttpErrors  
    Enable-WindowsOptionalFeature -Online -FeatureName IIS-HttpRedirect  
    Enable-WindowsOptionalFeature -Online -FeatureName IIS-ApplicationDevelopment  
      
    Enable-WindowsOptionalFeature -online -FeatureName NetFx4Extended-ASPNET45  
    Enable-WindowsOptionalFeature -Online -FeatureName IIS-NetFxExtensibility45  
      
    Enable-WindowsOptionalFeature -Online -FeatureName IIS-HealthAndDiagnostics  
    Enable-WindowsOptionalFeature -Online -FeatureName IIS-HttpLogging  
    Enable-WindowsOptionalFeature -Online -FeatureName IIS-LoggingLibraries  
    Enable-WindowsOptionalFeature -Online -FeatureName IIS-RequestMonitor  
    Enable-WindowsOptionalFeature -Online -FeatureName IIS-HttpTracing  
    Enable-WindowsOptionalFeature -Online -FeatureName IIS-Security  
    Enable-WindowsOptionalFeature -Online -FeatureName IIS-RequestFiltering  
    Enable-WindowsOptionalFeature -Online -FeatureName IIS-Performance  
    Enable-WindowsOptionalFeature -Online -FeatureName IIS-WebServerManagementTools  
    Enable-WindowsOptionalFeature -Online -FeatureName IIS-IIS6ManagementCompatibility  
    Enable-WindowsOptionalFeature -Online -FeatureName IIS-Metabase  
    Enable-WindowsOptionalFeature -Online -FeatureName IIS-ManagementConsole  
    Enable-WindowsOptionalFeature -Online -FeatureName IIS-BasicAuthentication  
    Enable-WindowsOptionalFeature -Online -FeatureName IIS-WindowsAuthentication  
    Enable-WindowsOptionalFeature -Online -FeatureName IIS-StaticContent  
    Enable-WindowsOptionalFeature -Online -FeatureName IIS-DefaultDocument  
    Enable-WindowsOptionalFeature -Online -FeatureName IIS-WebSockets  
    Enable-WindowsOptionalFeature -Online -FeatureName IIS-ApplicationInit  
    Enable-WindowsOptionalFeature -Online -FeatureName IIS-ISAPIExtensions  
    Enable-WindowsOptionalFeature -Online -FeatureName IIS-ISAPIFilter  
    Enable-WindowsOptionalFeature -Online -FeatureName IIS-HttpCompressionStatic  
      
    Enable-WindowsOptionalFeature -Online -FeatureName IIS-ASPNET45  
    

    About how to run powershell in C# you can refer to this link: adding-and-invoking-commands.


    If the answer is the right solution, please click "Accept Answer" and kindly upvote it. If you have extra questions about this answer, please click "Comment".
    Note: Please follow the steps in our documentation to enable e-mail notifications if you want to receive the related email notification for this thread.

    1 person found this answer helpful.
    0 comments No comments

  2. webserverforum 65 Reputation points
    2024-02-25T12:11:59.1666667+00:00

    WIndows Authentication, Anonyamous Authentication etc. these options can be enabled through Server Manager under "Add Roles and Features" easily instead enable it via command. You just needs to select these features in Server Manager and proceed

    0 comments No comments