2011-01-07 10 views
9

मैं एक पावरहेल स्क्रिप्ट बना रहा हूं इसलिए मैं आईआईएस पावरहेल प्रबंधन कंसोल का उपयोग कर एक ही कमांड के साथ वेबसाइट होस्टिंग बना सकता हूं।आईआईएस लॉगिंग सेटिंग्स सेट करने के लिए पावरहेल कमांड

मैं आदेशों मैं आईआईएस साइट बना सकते हैं और डोमेन नाम आदि के लिए बाइंडिंग जोड़ने की जरूरत है ...

पहेली मैं हालांकि याद कर रहा हूँ कैसे से डिफ़ॉल्ट लॉगिंग निर्देशिका बदलने के लिए किया जाता है में से एक टुकड़ा % SystemDrive% \ inetpub \ logs \ logFiles मेरे अपने फ़ोल्डर में जो सर्वर के बूट ड्राइव पर नहीं है।

व्यापक खोज के बाद मैं निम्नलिखित छद्म powershell की तर्ज पर एक आदेश को खोजने के लिए

New-ItemProperty IIS:\Sites\MyNewSite -name logging -value @{format='W3C';directory='d:\sites\site\logs';encoding=UTF-8} 

कृपया आप मुझे एक उदाहरण है कि कैसे आप कंसोल

आईआईएस Powershell प्रबंधन में प्रवेश फ़ोल्डर बदल के साथ दिखा सकता है उम्मीद

अग्रिम धन्यवाद

उत्तर

1
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.Web.Administration") 
$iis = new-object Microsoft.Web.Administration.ServerManager 
$web = $iis.Sites["test"] 
#set new logpath, must be existing 
$web.LogFile.Directory = "F:\Logfiles\" 
$iis.CommitChanges() 
13
Import-Module WebAdministration 
Set-WebConfigurationProperty "/system.applicationHost/sites/siteDefaults" -name logfile.directory -value $logdir 
+0

धन्यवाद। यह डिफ़ॉल्ट स्थान बदलने के लिए पूरी तरह से काम किया। मेरे पास प्रत्येक साइट के लिए अलग-अलग फ़ोल्डर्स हैं, हालांकि मैं अपने प्रश्न में स्पष्ट नहीं था। आपके कोड ने मुझे इस मंच पोस्ट पर उत्तर खोजने में मदद की http://forums.iis.net/t/1174319.aspx – Webmonger

+0

यदि आप इसे अन्य आईआईएस के साथ उपयोग कर रहे हैं: अपनी स्क्रिप्ट में ड्राइव गतिविधि। सुनिश्चित करें कि आईआईएस पर वर्तमान फ़ोल्डर: ड्राइव रूट है। इसे "सीडी आईआईएस: \" के साथ पूरा किया जा सकता है। उदाहरण के लिए, यदि आप हैं, IIS: \ SslBindings आपको एक त्रुटि मिलेगी "सेट-वेब कॉन्फ़िगरेशनप्रॉपर्टी: पथ IIS: \ SslBindings पर ऑब्जेक्ट के लिए कोई कॉन्फ़िगरेशन परिभाषित नहीं है।" –

4

यह w रूप में काम करता ell, WebAdministration मॉड्यूल

Import-Module WebAdministration 
$site = gi IIS:\Sites\MyNewSite 
$site.Logging.format='W3C' 
$site.Logging.directory='d:\sites\site\logs' 
$site.Logging.encoding=UTF-8 
$site | set-item 
+0

यह पुराने आईआईएस या वेब प्रशासन संस्करणों पर काम कर सकता है। हालांकि अब उपयोग करने के लिए साइट की संपत्ति लॉगफाइल है। उदा .: '' '$ site.logFile।logFormat = 'W3C'''' –

5

एक व्यक्ति वेब साइट की लॉगफ़ाइल विन्यास बदलने के लिए उपयोग करते हुए, मूल पोस्ट लगभग सही था। नई ItemProperty के स्थान पर, सेट-ItemProperty उपयोग करती हैं इसलिए की तरह ...

Set-ItemProperty "IIS:\Sites\$SiteName" -name logFile -value @{directory=$LogPath} 

सर्वर चौड़ा डिफ़ॉल्ट सेटिंग्स को बदलने के लिए, Andy Schneider's answer देखते हैं।

उपलब्ध विकल्पों के बारे में अधिक जानकारी के लिए, this IIS.net article देखें।

+0

छोटी दुनिया ... मैंने देखा [नाथन-हार्टले का अवतार [अगले दरवाजे में इस दूसरी चर्चा में] [http://powershell.org/wp/forums/topic/iis -log-फ़ाइल-रखरखाव /)। डीएससी इस तरह की चीज के लिए उभरते दृष्टिकोण की तरह लगता है – Nathan

7

इस थ्रेड से जवाब का परीक्षण करते समय, आईआईएस मैनेजर और पावरशेल के माध्यम से टॉगलिंग विकल्प, मैंने कुछ छुपाया जो मुझे छुपाया गया है। आईआईएस प्रबंधक में, कॉन्फ़िगरेशन संपादक का चयन करना और परिवर्तन करना, आईआईएस प्रबंधक को सी #, जावास्क्रिप्ट, AppCmd.exe और PowerShell में परिवर्तन के लिए स्क्रिप्ट उत्पन्न करने और प्रदर्शित करने की अनुमति देता है। जेनरेट स्क्रिप्ट विकल्प पर क्लिक करें।

[Auto Generated Scripts for IIS configuration changes]

+0

यह बहुत ही बढ़िया है, हालांकि इसे पावरहेल टैब प्राप्त करने के लिए आईआईएस 8.x या उच्चतम की आवश्यकता है। – dragon788

0

आप एक ही सर्वर पर कई साइटों की मेजबानी और उन्हें एक ही लॉग फ़ाइल के लिए सभी लॉग चाहते हैं, प्रक्रिया काफी अलग है। इसमें here और here सुराग ढूंढने के लिए कुछ खुदाई हुई, इसलिए मैंने सोचा कि मैं इस ज़रूरत के साथ किसी और के लिए विवरण छोड़ दूंगा।

निम्नलिखित दो कथन आपकी सभी वेबसाइटों के लिए एक फ़ोल्डर ई: \ log \ w3svc में लॉग जोड़ देंगे।

Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST' -filter 'system.applicationHost/log' -name CentralLogFileMode -Value 'CentralW3C' 
Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST' -filter 'system.applicationHost/log' -name centralW3CLogFile.directory -value 'e:\log' 
संबंधित मुद्दे