Soy un completo novato en powershell. Lo que necesito es un script de PowerShell que pueda automatizar el proceso de instalación de IIS7 o superior. Tengo ciertas configuraciones para los servicios de rol. Cualquier ayuda en este sentido es apreciada.Script Powershell para la instalación automática de IIS 7 y superior
Respuesta
He encontrado el blog siguiente útil, con ciertos cambios de uso de la ayuda yo era capaz de instalar IIS desde la cáscara de alimentación con función personalizada services.I tener el código aquí y el enlace al blog es:
http://www.ithassle.nl/2010/09/powershell-script-to-install-and-configure-iis7-5/#codesyntax_1
# --------------------------------------------------------------------
# Checking Execution Policy
# --------------------------------------------------------------------
#$Policy = "Unrestricted"
$Policy = "RemoteSigned"
If ((get-ExecutionPolicy) -ne $Policy) {
Write-Host "Script Execution is disabled. Enabling it now"
Set-ExecutionPolicy $Policy -Force
Write-Host "Please Re-Run this script in a new powershell enviroment"
Exit
}
# --------------------------------------------------------------------
# Define the variables.
# --------------------------------------------------------------------
$InetPubRoot = "D:\Inetpub"
$InetPubLog = "D:\Inetpub\Log"
$InetPubWWWRoot = "D:\Inetpub\WWWRoot"
# --------------------------------------------------------------------
# Loading Feature Installation Modules
# --------------------------------------------------------------------
Import-Module ServerManager
# --------------------------------------------------------------------
# Installing IIS
# --------------------------------------------------------------------
Add-WindowsFeature -Name Web-Common-Http,Web-Asp-Net,Web-Net-Ext,Web-ISAPI-Ext,Web-ISAPI-Filter,Web-Http-Logging,Web-Request-Monitor,Web-Basic-Auth,Web-Windows-Auth,Web-Filtering,Web-Performance,Web-Mgmt-Console,Web-Mgmt-Compat,RSAT-Web-Server,WAS -IncludeAllSubFeature
# --------------------------------------------------------------------
# Loading IIS Modules
# --------------------------------------------------------------------
Import-Module WebAdministration
# --------------------------------------------------------------------
# Creating IIS Folder Structure
# --------------------------------------------------------------------
New-Item -Path $InetPubRoot -type directory -Force -ErrorAction SilentlyContinue
New-Item -Path $InetPubLog -type directory -Force -ErrorAction SilentlyContinue
New-Item -Path $InetPubWWWRoot -type directory -Force -ErrorAction SilentlyContinue
# --------------------------------------------------------------------
# Copying old WWW Root data to new folder
# --------------------------------------------------------------------
$InetPubOldLocation = @(get-website)[0].physicalPath.ToString()
$InetPubOldLocation = $InetPubOldLocation.Replace("%SystemDrive%",$env:SystemDrive)
Copy-Item -Path $InetPubOldLocation -Destination $InetPubRoot -Force -Recurse
# --------------------------------------------------------------------
# Setting directory access
# --------------------------------------------------------------------
$Command = "icacls $InetPubWWWRoot /grant BUILTIN\IIS_IUSRS:(OI)(CI)(RX) BUILTIN\Users:(OI)(CI)(RX)"
cmd.exe /c $Command
$Command = "icacls $InetPubLog /grant ""NT SERVICE\TrustedInstaller"":(OI)(CI)(F)"
cmd.exe /c $Command
# --------------------------------------------------------------------
# Setting IIS Variables
# --------------------------------------------------------------------
#Changing Log Location
$Command = "%windir%\system32\inetsrv\appcmd set config -section:system.applicationHost/sites -siteDefaults.logfile.directory:$InetPubLog"
cmd.exe /c $Command
$Command = "%windir%\system32\inetsrv\appcmd set config -section:system.applicationHost/log -centralBinaryLogFile.directory:$InetPubLog"
cmd.exe /c $Command
$Command = "%windir%\system32\inetsrv\appcmd set config -section:system.applicationHost/log -centralW3CLogFile.directory:$InetPubLog"
cmd.exe /c $Command
#Changing the Default Website location
Set-ItemProperty 'IIS:\Sites\Default Web Site' -name physicalPath -value $InetPubWWWRoot
# --------------------------------------------------------------------
# Checking to prevent common errors
# --------------------------------------------------------------------
If (!(Test-Path "C:\inetpub\temp\apppools")) {
New-Item -Path "C:\inetpub\temp\apppools" -type directory -Force -ErrorAction SilentlyContinue
}
# --------------------------------------------------------------------
# Deleting Old WWWRoot
# --------------------------------------------------------------------
Remove-Item $InetPubOldLocation -Recurse -Force
# --------------------------------------------------------------------
# Resetting IIS
# --------------------------------------------------------------------
$Command = "IISRESET"
Invoke-Expression -Command $Command
Es sólo una cuestión de llamar pkgmgr con los paquetes correctos:
$packages = "IIS-WebServerRole;" +
"IIS-WebServer;" +
"IIS-CommonHttpFeatures;" +
"IIS-StaticContent;" +
"IIS-DefaultDocument;" +
# ... some other packages here
"IIS-ManagementConsole;" +
"IIS-ManagementService;" +
"IIS-LegacySnapIn;" +
"IIS-FTPManagement;" +
"WAS-NetFxEnvironment;" +
"WAS-ConfigurationAPI"
Start-Process "pkgmgr" "/iu:$packages"
Dependiendo de la plataforma, y en la versión de IIS, hay algunas diferencias sutiles. Puede encontrar más información here, here y here.
No funciona en Windows 8.1. Pkgmgr es obsoleto en este sistema. – pbies
Este es un buen script. Sugeriría una adición para futuras instalaciones \ aplicaciones para usar el wwwpath
modificado y eso sería modificar el registro. Usted puede hacer esto fácilmente con la adición de este a la parte inferior de la secuencia de comandos:
set-ItemProperty HKLM:\Software\Microsoft\InetStp\ -Name PathWWWRoot -Value $InetPubRoot
De todos modos gracias por publicar.
puedo capaz de instalar IIS mediante secuencias de comandos PowerShell siguiendo a continuación paso:
1) Crear archivo por lotes (Setup_IIS_win10.bat) con el siguiente script en ella
@ECHO OFF
SET ThisScriptsDirectory=%~dp0
SET PowerShellScriptPath="%ThisScriptsDirectory%SetupIISPowerShellScript_win10.ps1"
PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {Start-Process PowerShell -ArgumentList '-NoProfile -ExecutionPolicy Bypass -File ""%PowerShellScriptPath%""' -Verb RunAs}";
2) Crear un archivo de script de PowerShell (SetupIISPowerShellScript_win10.ps1) con el siguiente script en ella
# This script installs IIS and the features required to run asp.net applications
# * Make sure you run this script from an 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
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 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-NetFxExtensibility45
Enable-WindowsOptionalFeature -Online -FeatureName IIS-ASPNET45
Enable-WindowsOptionalFeature -Online -FeatureName IIS-ISAPIExtensions
Enable-WindowsOptionalFeature -Online -FeatureName IIS-ISAPIFilter
Enable-WindowsOptionalFeature -Online -FeatureName IIS-HttpCompressionStatic
Enable-WindowsOptionalFeature -Online -FeatureName IIS-ASP
Enable-WindowsOptionalFeature -Online -FeatureName IIS-CGI
Enable-WindowsOptionalFeature -Online -FeatureName IIS-ASPNET35
Enable-WindowsOptionalFeature -Online -FeatureName IIS-ASPNET47
#Enable-WindowsOptionalFeature -Online -FeatureName IIS-ServerSideIncludes
Enable-WindowsOptionalFeature -Online -FeatureName WCF-Services45
Enable-WindowsOptionalFeature -Online -FeatureName WCF-Http-Activation45
Enable-WindowsOptionalFeature -Online -FeatureName WCF-TCP-PortSharing45
# If running in the console, wait for input before closing.
if ($Host.Name -eq "ConsoleHost")
{
Write-Host "Press any key to close..."
$Host.UI.RawUI.FlushInputBuffer() # Make sure buffered input doesn't "press a key" and skip the ReadKey().
$Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyUp") > $null
}
3) Ejecutar el archivo por lotes (Setup_IIS_win10.bat) con adminitrator privilegio
Espero que sea útil para alguien.
- 1. Inno Setup Instalación y configuración de IIS
- 2. Script de Powershell para habilitar "Scripts y herramientas de administración de IIS"
- 3. PowerShell: cargue la administración web en la secuencia de comandos ps1 en IIS 7 e IIS 7.5
- 4. IIS 7: Tutorial para principiantes
- 5. instalación automática de apk
- 6. HttpModule personalizado para IIS 7 para
- 7. Actualización automática del programa y Windows 7
- 8. IIS 7, HttpHandler y HTTP Error 500.21
- 9. actualización Powershell IIS enlaces
- 10. IIS 7 Deshabilitar "Requerir SSL"
- 11. Instalación de PEAR, IIS Problema
- 12. Script de Powershell para eliminar archivos antiguos
- 13. Uso bate para iniciar script de PowerShell
- 14. IIS 7 Protocolos habilitados
- 15. Powershell llamando al script de Powershell
- 16. Cómo detener IIS con PowerShell?
- 17. Script de NSIS para la instalación de Java
- 18. script de PowerShell de acceso directo para cambiar de escritorio
- 19. Falta la carpeta Adminscripts en IIS 7
- 20. error utilizando la sesión en IIS 7
- 21. Agregar sitio web y FTP a IIS 7 mediante el script
- 22. cómo iis 7 genera etags
- 23. Configuración automática de MSMQ con Powershell
- 24. ¿Cómo funciona la canalización IIS 7/ASP.Net?
- 25. Script Powershell para cambiar la cuenta de servicio
- 26. Instalación de ASP.Net 2.0 después de IIS
- 27. NHibernate Session con IIS 7
- 28. Wix - instalar y ejecutar un script de powershell
- 29. ventanas 7 PowerShell no puede encontrar dsquery y dsget
- 30. confirmación automática de supresión en powershell
Nota: Esto solo funcionará en Server 2008 R2. No R1 (el último sistema operativo del servidor de 32 bits y el que estoy en ...) –