পাওয়ারসেলের সাথে মাইম প্রকারগুলি সম্পাদনা / সেট করা?


8

সুতরাং আমি ভাবছিলাম যে আইআইএস 7.5 এ মাইমের ধরণটি পরিবর্তন / সম্পাদনা করার কোনও নির্দিষ্ট উপায় আছে পাওয়ারশেল ব্যবহার করে?

এখন পর্যন্ত আমি মাইম টাইপগুলি যুক্ত করার জন্য সমাধানগুলি পেয়েছি যেমন: http://sclaron.blogspot.co.at/2011/08/adding-mime-type-to-iis-vis-powershell.html http: // ফোরামগুলি। iis.net/t/1192371.aspx এবং অন্য কয়েকটি দম্পতির যে বইগুলির উল্লেখ রয়েছে তবে সেই বইগুলিতে সে সম্পর্কে কোনও তথ্য নেই, আমি পরীক্ষা করে দেখেছি checked

দেখে মনে হচ্ছে Add-WebConfigurationPropertyএটি ব্যবহার করা হয়েছে তবে আমি যখন এই পদ্ধতিটি বিদ্যমান মাইম টাইপের জন্য ব্যবহার করব তখন আমি একটি ত্রুটি পেয়ে যা ডুপ্লিকেট আইটেমের প্রবেশের সাথে সম্পর্কিত (যেহেতু এটি ইতিমধ্যে সেখানে রয়েছে), সুতরাং এই পদ্ধতিটি উইন্ডোটির বাইরে out

আমি Set-WebConfigurationPropertyপরিবর্তে ব্যবহার করার চেষ্টা করেছি কিন্তু এর ফলে এটি বিদ্যমান মাইম টাইপের সমস্ত প্রবেশিকা মুছে ফেলেছে এবং এর মধ্যে একটি রেখে গেছে।

তাহলে কারও কি কোনও পরামর্শ আছে বা সম্ভবত এটি করার সঠিক পদ্ধতিটি জানেন? আমি প্রথমে এন্ট্রি মোছার পরে এটি যুক্ত করার মতো কিছু করার কথাও বিবেচনা করেছি, তবে একমাত্র সমস্যা হ'ল আপনাকে মাইম টাইপ ফাইল এক্সটেনশন এবং মাইমটাইপস (যেমন পাঠ্য / এক্সএমএল ইত্যাদি) উভয়ই জানতে হবে। সুতরাং আমি ধরে নিই যে getwebconfigpropertyপদ্ধতিটি ব্যবহার করে প্রথমে আমার উভয় সম্পত্তি পাওয়ার দরকার ছিল , তারপরে এটি থেকে মানগুলিকে delete-webpropconfigফাংশনে ভাগ করে মুছে ফেলুন এবং তারপরে এটি যুক্ত করুন ... তবে মাইমটাইপ সেট করতে কেবল তিনটি ধাপ এগিয়ে যাওয়া অত্যধিক বলে মনে হচ্ছে ..

আমি যা বুঝতে পেরেছি সেগুলি থেকে অ্যাপসিমিডি.এক্সই সেট কনফিগারেশন "মানগুলি এবং এখানে প্যারাম" পদ্ধতিটি বেশ সহজভাবে এটি করে দেবে .. তবে সমস্যাটি হ'ল দুর্ভাগ্যক্রমে আমরা এটি ব্যবহার করতে পারি না। এবং হ্যাঁ আমি বুঝেছি আমি পাওয়ারসেলকে অ্যাপসিএমডি কমান্ড কার্যকর করতে পারি দুর্ভাগ্যবশত এটি একটি কার্যকর বিকল্প নয়। সমাধানের জন্য আমি বইগুলিতে গুগলিং এবং পড়ার চেষ্টা করেছি তবে কেন এখন পর্যন্ত কোনও উত্তর আসেনি

1) set-webconfigurationpropertyপদ্ধতিটি সমস্ত মাইমটাইপ এন্ট্রি মুছে দেয়

2) এটি add-webconfigurationpropertyআমাকে এটি সম্পাদন করতে দেয় না এবং একটি "ত্রুটি সদৃশ" বার্তা ছুড়ে দেয়

3) পাওয়ারশেলের সাথে 1 লাইনে এটি করার একটি কার্যকারী সমাধান।

উত্তর:


7

কেবলমাত্র কাজটি দেখে মনে হচ্ছে এটি হ'ল:

& $Env:WinDir\system32\inetsrv\appcmd.exe set config /section:staticContent /-"[fileExtension='.eml']"
& $Env:WinDir\system32\inetsrv\appcmd.exe set config /section:staticContent /+"[fileExtension='.eml',mimeType='application/octet-stream']"

সুতরাং আমি এই পদ্ধতিটি নিয়ে চলেছি, সম্ভবত আগে উল্লেখ করা হয়েছে যে কোনও ধরণের সেট-ওয়েব কনফিগারেশন কমান্ড কেবল আইআইএস মাইমটাইপ মেনুতে পুরো মাইমটাইপ তালিকাটি ওভাররাইট করেছে।

আশা করি এটি ভবিষ্যতে কাউকে সহায়তা করবে


4

আপনি ব্যবহার করতে পারেন Set-WebConfigurationPropertyতবে এক্সপথ ফিল্টারটিতে আপনাকে নির্দিষ্ট করতে হবে যে মাইম টাইপটি আপনি পরিবর্তন করতে চান।

উদাহরণস্বরূপ, নীচের কমান্ডটি আইআইএস সার্ভার দ্বারা ব্যবহৃত মূল ওয়েবকনফাইগের " .currentExt " " "। চেঞ্জডেক্সট " " ফাইল এক্সটেনশনের সাথে মাইম প্রকারটি পরিবর্তন করবে :

Set-WebConfigurationProperty -Filter "//staticContent/mimeMap[@fileExtension='.currentExt']" -PSPath IIS:\ -Name fileExtension -Value ".changedExt"

mimeMap এক্সপ্যাথে ব্যবহৃত হয় কারণ অ্যাপ্লিকেশন। হস্ট.কনফিগের কাঠামোটি নিম্নরূপ:

<staticContent lockAttributes="isDocFooterFileName">
   <mimeMap fileExtension=".323" mimeType="text/h323" />
   <mimeMap fileExtension=".aaf" mimeType="application/octet-stream" />
   <mimeMap fileExtension=".aca" mimeType="application/octet-stream" />
   ...
</staticContent>

আমি ধরে নিচ্ছি যে আপনি মাইমটাইপগুলি সংশোধন করার চেষ্টা করার সময় http://sclaron.blogspot.co.at/2011/08/adding-mime-type-to-iis-vis-powershell.html দ্বারা প্রস্তাবিত কোডটি সংশোধন করছেন Set-WebConfigurationProperty। লিঙ্কের কোডটিতে নিম্নলিখিত পরিবর্তনটি ব্যবহার করার সময় সমস্ত মাইমটাইপগুলি ওভাররাইট করা হচ্ছে

set-webconfigurationproperty //staticContent -name collection -value @{fileExtension='.otf'; mimeType='application/octet-stream'} 

কারণ মাইমটাইপগুলির পুরো সংগ্রহটি কেবলমাত্র একটি এন্ট্রি দ্বারা প্রতিস্থাপিত হচ্ছে।


এটি অরবিতাল, গৃহীত উত্তর হওয়া উচিত। এছাড়াও, ব্যবহার করুন: সেট করুন- WebConfigurationProperty ... -Name mimeType -Value "application/new-mime-type"আপনি যদি এক্সটেনশানের পরিবর্তে মাইমটাইপ পরিবর্তন করতে চান।
সিটিবি

1

আমি বুঝতে পারি এই প্রশ্নটি পুরানো এবং এর উত্তর দেওয়া হয়েছে তবে আমি নতুন দর্শকদের জন্য কথোপকথনে যুক্ত করতে চাই। পরীক্ষিত IIS 8.5 Windows Server 2012R2। দুর্ভাগ্যক্রমে, আমার আইআইএস 7.5 এ অ্যাক্সেস নেই।

আমার উদাহরণস্বরূপ ফাইল এক্সটেনশন হিসাবে .zip এক্সটেনশন ব্যবহার করা

একটি নতুন মাইম টাইম যুক্ত করা হচ্ছে:

Add-WebConfigurationProperty -PSPath 'MACHINE/WEBROOT/APPHOST' -Filter "system.webServer/staticContent" -Name "." -Value @{ fileExtension='.zip'; mimeType='application/x-zip-compressed' }

বিদ্যমান মাইম টাইম সম্পাদনা করা হচ্ছে:

Set-WebConfigurationProperty -PSPath 'MACHINE/WEBROOT/APPHOST' -Filter "system.webServer/staticContent/mimeMap[@fileExtension='.zip']" -Name "fileExtension" -Value ".example"

একটি বিদ্যমান মাইম টাইম সরানো হচ্ছে:

Remove-WebConfigurationProperty  -PSPath 'MACHINE/WEBROOT/APPHOST' -Filter "system.webServer/staticContent" -Name "." -AtElement @{ fileExtension= '.zip' }

বিদ্যমান মাইমে টাইপ পড়া / পাওয়া:

$getSetting = Get-WebConfigurationProperty -PSPath 'MACHINE/WEBROOT/APPHOST' -Filter "system.webServer/staticContent" -Name "."
$getSetting.Collection | Where-Object { $_.fileExtension -eq ".zip"}
#OR
Get-WebConfigurationProperty -PSPath 'MACHINE/WEBROOT/APPHOST' -Filter "system.webServer/staticContent" -Name "." | Where-Object { $_.fileExtension -eq ".zip"}

0

আপনি যদি ব্যবহার করতে না পারেন appcmd, এবং set-webconfigurationproprtyযদি কাজ না করে থাকেন তবে সম্ভবত একটি কাস্টম বিল্ট ফাংশন কাজ করবে?

COM DLL "Interop.IISOle.dll" ধরুন এবং সহজেই এটি কোথাও রেফারেন্স করুন (যেমন, একটি ডামি প্রজেক্টের COM উপাদান "অ্যাক্টিভ ডিএস আইআইএস নেমস্পেস সরবরাহকারী" উল্লেখ করুন, বিন ফোল্ডার থেকে ডিএলএলটি তৈরি করুন এবং ধরুন)

function AddMimeType ([string] $websiteId, [string] $extension, [string] $application)
{
    [Reflection.Assembly]::LoadFile("yourpath\Interop.IISOle.dll") | Out-Null;
    $directoryEntry = New-Object System
                      .DirectoryServices
                      .DirectoryEntry("IIS://localhost/W3SVC/$websiteId/root");
    try {
        $mimeMap = $directoryEntry.Properties["MimeMap"]
        $mimeType = New-Object "IISOle.MimeMapClass";
        $mimeType.Extension = $extension
        $mimeType.MimeType = $application
        $mimeMap.Add($mimeType)
        $directoryEntry.CommitChanges()
        } 
    finally {
        if ($directoryEntry -ne $null) {
            if ($directoryEntry.psbase -eq $null) {
                $directoryEntry.Dispose()
            } else {
                $directoryEntry.psbase.Dispose()
            }
        }
    }
}

AddMimeType "123456" ".pdf" "application/pdf"

তথ্যসূত্র: আইআইএস ওয়েবসাইটে মাইম টাইপ সেট করতে পাওয়ারশেল কীভাবে ব্যবহার করবেন সেই প্রশ্নের উত্তর স্বীকার করা হয়েছে ?


1
বেনি, দেখতে খুব আগ্রহী, আমি অফিসে ফিরে যখন সোমবার তা পরীক্ষা করে দেখব। এর জন্য ধন্যবাদ, আমি এটিকে সঠিক উত্তর হিসাবে রেটিং দিচ্ছি কারণ বেশ স্পষ্টতই আমি বিকল্পগুলির বাইরে চলেছি এবং এটি মনে হয় এটি কার্যকর হবে। আপনার সময় জন্য ধন্যবাদ!
অরবিটাল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.