Guest User

Untitled

a guest
May 20th, 2018
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.56 KB | None | 0 0
  1. ##############################################################################################
  2. # Script de publication de site IIS
  3. # Todo :
  4. # Decoupage en fonctions
  5. # TRy-catch sur le parametrage du pool
  6. # Dynamisation des messages write-host
  7. ##############################################################################################
  8.  
  9.  
  10. Import-Module WebAdministration #Inclure le module de gestion IIS
  11. Write-Host "##################################################################################"
  12. Write-Host "Script de création de configuration IIS"
  13. Write-Host "Un prompt interactif va vous accompagner dans la publication de votre application"
  14. Write-Host "Ce script est experimental et doit donc être utilisé avec rigeur !"
  15. Write-Host "##################################################################################"
  16.  
  17. $AppName = Read-Host -Prompt "Nom de l'application web"
  18. $Port = Read-Host -Promp "Port de publication de l'application"
  19. $Path = Read-Host -Prompt "Chemin vers le site web"
  20. $Ok = Read-Host "Vous allez publier le site '$AppName' situé dans '$Path' sur le port '$Port' [Y/N]"
  21. Write-Host "##################################################################################"
  22. Write-Host "Paramétrage du pool d'app :"
  23. Write-Host "##################################################################################"
  24. $bit = Read-Host "Voulez vous activer les applications 32 bits ? [Y/N]"
  25. $mode = Read-Host "Mode du pipeline ? [classic = 1 / integrated = 2 ]"
  26. $clr = Read-Host "Version du CLR.NET ? [2/4]"
  27. $delais = Read-Host "Delais d'inactivité en minutes ?"
  28. $ping = Read-Host "Activé le ping ? [Y/N]"
  29. $Recyclage = Read-Host "Heure du recyclage [HH:MM:SS] ?"
  30. #Par défaut on set l'intervale de temps a zero
  31.  
  32. If($Ok -like "Y")
  33. {
  34. #Cree pool de notre app
  35. Write-Host "Création du pool du pool d'app"
  36. try {
  37. New-WebAppPool $AppName -Force
  38. Write-Host "DONE !"
  39. }catch {
  40. Write-Host "Erreur de création du pool..."
  41. exit
  42. }
  43. #Cree le site web DANS LE POOL
  44. Write-Host "Création du site web dans le pool"
  45. try {
  46. New-Website -Name $AppName -PhysicalPath $Path -Port $Port -ApplicationPool $AppName
  47. Write-Host "DONE !"
  48. } catch {
  49. Write-Host "Erreur création du site..."
  50. exit
  51. }
  52. Write-Host "App 32 bits ..."
  53. #Modification des parametres du pool
  54. #App 32 bits
  55. If ($bit -like 'Y')
  56. {
  57. Set-ItemProperty -Path IIS:\AppPools\$AppName\ -Name enable32BitAppOnWin64 -Value 'True'
  58. } ELseif ($bit -like 'N'){
  59. Set-ItemProperty -Path IIS:\AppPools\$AppName\ -Name enable32BitAppOnWin64 -Value 'False'
  60. }
  61. Write-Host "DONE !"
  62. #mode pipeline
  63. Write-Host "Mode Pipeline ..."
  64. If ($mode -like '1')
  65. {
  66. Set-ItemProperty -Path IIS:\AppPools\$AppName\ -Name managedPipelineMode -Value 'Classic'
  67. } ELseif ($mode -like '2'){
  68. Set-ItemProperty -Path IIS:\AppPools\$AppName\ -Name managedPipelineMode -Value 'Integrated'
  69. }
  70. Write-Host "DONE !"
  71. #version framework
  72. Write-Host "Version du framework ..."
  73. If ($clr -like '2')
  74. {
  75. Set-ItemProperty -Path IIS:\AppPools\$AppName\ -Name managedRuntimeVersion -Value 'v2.0'
  76. } ELseif ($clr -like '4'){
  77. Set-ItemProperty -Path IIS:\AppPools\$AppName\ -Name managedRuntimeVersion -Value 'v4.0'
  78. }
  79. Write-Host "DONE !"
  80. #delais inactivité
  81. Write-Host "Delais d'inactivité ... "
  82. $ts = [timespan]::FromMinutes($delais)
  83. $ts="{0:HH\:mm\:ss}" -f [datetime]$ts.Ticks
  84. Set-ItemProperty IIS:\AppPools\$AppName\ -Name processModel.idleTimeout -Value $ts
  85. Write-Host "DONE !"
  86. #ping
  87. Write-Host "Ping ..."
  88. $pool = Get-Item IIS:\AppPools\$AppName\
  89. If ($bit -like 'Y')
  90. {
  91. $pool.processModel.pingingEnabled = 'True'
  92. #Set-ItemProperty -Path IIS:\AppPools\$AppName\ -Name processModel.PingingEnabled -Value 'True'
  93. } ELseif ($bit -like 'N'){
  94. #Set-ItemProperty -Path IIS:\AppPools\$AppName\ -Name processModel.PingingEnabled -Value 'False'
  95. $pool.processModel.pingingEnabled = 'False'
  96. }
  97. $pool | Set-Item
  98. Write-Host "DONE !"
  99. #recyclage
  100. Write-Host "Recyclage ..."
  101. Set-ItemProperty IIS:\AppPools\$AppName\ -Name Recycling.periodicRestart.time -Value '00:00:00'
  102. $Recyclage = $Recyclage -as [datetime]
  103. $Recyclage = '{0:HH\:mm\:ss}' -f [datetime]$Recyclage
  104. Set-ItemProperty IIS:\AppPools\$AppName\ -Name Recycling.periodicRestart.schedule -Value @{value=$Recyclage}
  105. Write-Host "DONE !"
  106. #Affichage des parametres du pool
  107. Get-ItemProperty IIS:\AppPools\$AppName | select *
  108. }
  109. Else
  110. {
  111. Write-Host "ByeBye !"
  112. exit
  113. }
Add Comment
Please, Sign In to add comment