Bir web sitesi oluşturmak ve sitenin preloadEnabled = "true" değerini ayarlamak için PowerShell komutunu (e, g, New-WebSite) kullanabilir miyim?IIS7.5 PowerShell preloadEnabled
cevap
Ben de bunu arıyordum, ancak bu seçeneği ayarlamak için WebAdministration'da hiçbir şey bulamadı. Muhtemelen yaklaşım doğru WebUygulama üzerine Yeni ItemProperty çağırmak olacaktır. Maalesef, belirli bir web sitesi için "varsayılan" uygulamayı veya bu özelliği üzerine yükleyemedim. WebAdministration modülü (New-WebSite gibi cmdlet'leri mümkün kılan), IIS'nin önceki sürümlerinde ve kesinlikle Uygulama Başlatma modülünden önce yazılmış gibi görünüyor.
Bu, temelde yatan applicationHost.config dosyasını düzenleyerek bu özelliklerin ayarını zorlayan geçici bir çözümdür. Bu, şu anda kullandığımız bir komut dosyasının biraz basitleştirilmiş bir sürümüdür. Bu komut dosyasını yönetici olarak çalıştırmanız gerekir.
# Copy applicationHost.config to the temp directory,
# Edit the file using xml parsing,
# copy the file back, updating the original
$file = "applicationhost.config"
$source = Join-Path "$env:windir" "\system32\inetsrv\config\$file"
$temp = Join-Path "$env:temp" "$([Guid]::NewGuid().ToString())"
$tempFile = Join-Path "$temp" "$file"
#update all applications in websites whose name matches this search term
$search = "website name to search for"
#copy applicationHost.config to temp directory for edits
#assignments to $null simply silence output
$null = New-Item -itemType Directory -path $temp
$null = Copy-Item "$source" "$temp"
# Load the config file for edits
[Xml]$xml = Get-Content $tempFile
# find sites matching the $search string, enable preload on all applications therein
$applications = $xml.SelectNodes("//sites/site[contains(@name, `"$search`")]/application")
$applications | % {
$_.SetAttribute("preloadEnabled", "true")
}
#save the updated xml
$xml.Save("$tempFile.warmed")
#overwrite the source with updated xml
Copy-Item "$tempfile.warmed" "$source"
#cleanup temp directory
Remove-Item -recurse $temp
bunu yapmanın bir yolu aslında yoktur (sizin için ayarlamak istediğiniz/tek bir uygulama var varsayarak ve sitenizin adını biliyor):
[System.Reflection.Assembly]::LoadFrom("C:\windows\system32\inetsrv\Microsoft.Web.Administration.dll")
$serverManager = (New-Object Microsoft.Web.Administration.ServerManager)
$serverManager.Sites["YOUR_SITE_NAME"].Applications["/"].SetAttributeValue("preloadEnabled", $true)
$serverManager.CommitChanges()
Bu hile yapmalı. Çalıştığını doğrulamak için get-itemproperty
'u kullanabilirsiniz. Powershell içinde preloadEnabled
'u nerede bulacağımı bulmam biraz zaman aldı ama site yolunu get-member
'a gönderirseniz, oradan oradan çalışabilirsiniz.
import-module webadministration
set-itemproperty IIS:\Sites\SiteName -name applicationDefaults.preloadEnabled -value True
Mükemmel çalışır, burada hatırlamak önemlidir: preloadEnabled büyük/küçük harf duyarlıdır. Ayrıca, $ true yerine ([System.Convert] :: ToBoolean ("True")) kullandım. – sebastiaan
Ayrıca "applicationDefaults" yazarak çalışması için doğru durumda yazmam gerekiyordu. Aksi halde iyi çalışıyor. –
Bu cevaptır. Hile "applicationDefaults" ekliyor. "preloadEnabled" –
Biraz geç oldu, ancak bu başkalarına yardımcı olacak ... Bu benim için çalıştı ve biraz daha az ayrıntılıydı. Bu yalnızca bir yaklaşımdır kudreti eşit Varsayılan Web sitesi kudreti eşit MyApplication
$w = New-Item "IIS:\Sites\AAA" -type site –physicalPath "C:\W" -bindings $binding
$w.**Collection[0].preloadEnabled = $true**
$w | Set-Item
- 1. İmkansız IIS7.5
- 2. IIS7.5 Express'te PHP nasıl çalıştırılır?
- 3. Yerel ASP.Net Geliştirme için IIS7.5'i ayarlama
- 4. 403 - temel MVC 3 dağıtmak yasak IIS7.5
- 5. PowerShell
- 6. PowerShell
- 7. PowerShell
- 8. Powershell
- 9. PowerShell
- 10. PowerShell
- 11. Powershell
- 12. PowerShell
- 13. PowerShell
- 14. Powershell
- 15. Powershell
- 16. Powershell
- 17. PowerShell
- 18. powershell
- 19. Powershell
- 20. Powershell
- 21. Powershell,
- 22. PowerShell
- 23. powershell
- 24. PowerShell
- 25. Powershell
- 26. powershell
- 27. PowerShell
- 28. Powershell
- 29. Powershell
- 30. Powershell çağrısı Powershell komut dosyası
:
: önemli fark ben değil varsayılan burada, uygulamayı kuruyorum çünkü ApplicationDefaults kaldırıldı olmasıdır Belirli bir web sitesinin "varsayılan" uygulamasının preloadEnabled özniteliğini ayarlarken benim için çalıştı (yol = "/"). Set-ItemProperty, kök uygulama için preloadEnabled özniteliğini ayarlayamıyor gibi görünüyor. Bunu iki platformda başarıyla test ettim: Windows 7 SP1 64-bit w/IIS 7.5 ve Uygulama Başlatma modülü yanı sıra Windows Server 2012 R2 64-bit w/IIS 8.5 yüklü. Her iki ortam da kendi platformları için Windows Management Framework 5.0 RTM'ye (yani Powershell 5.0) sahiptir. – Wade