প্রতিক্রিয়া সামগ্রীটি বিশ্লেষণ করা যাবে না কারণ ইন্টারনেট এক্সপ্লোরার ইঞ্জিনটি উপলভ্য নয়, বা


109

পাওয়ারশেল ব্যবহার করে আমাকে একটি চ্যানেল 9 সিরিজ ডাউনলোড করতে হবে, তবে যে স্ক্রিপ্টগুলিতে আমি চেষ্টা করেছি তাতে ত্রুটি রয়েছে:

  1. এই লিপি

    $url="https://channel9.msdn.com/blogs/OfficeDevPnP/feed/mp4high"
    $rss=invoke-webrequest -uri $url 
    $destination="D:\Videos\OfficePnP"
    [xml]$rss.Content|foreach{ 
      $_.SelectNodes("rss/channel/item/enclosure") 
    }|foreach{ 
        "Checking $($_.url.split("/")[-1]), we will skip it if it already exists in $($destination)"
      if(!(test-path ($destination + $_.url.split("/")[-1]))){ 
        "Downloading: " + $_.url 
        start-bitstransfer $_.url $destination 
      } 
    }
    

    ত্রুটি সহ ব্যর্থ:

    প্রতিক্রিয়া সামগ্রীটি বিশ্লেষণ করা যাবে না কারণ ইন্টারনেট এক্সপ্লোরার ইঞ্জিন উপলব্ধ নয়, বা ইন্টারনেট এক্সপ্লোরারের প্রথম-প্রবর্তন কনফিগারেশনটি সম্পূর্ণ নয়। UseBasicParsing পরামিতি নির্দিষ্ট করুন এবং আবার চেষ্টা করুন।

  2. আমিও এটি চেষ্টা করেছিলাম

    # --- settings ---
    $feedUrl = "https://channel9.msdn.com/blogs/OfficeDevPnP/feed/mp4high"
    $mediaType = "mp4high"
    $overwrite = $false
    $destinationDirectory = join-path ([Environment]::GetFolderPath("MyDocuments")) "OfficeDevPnP"
    
    # --- locals ---
    $webClient = New-Object System.Net.WebClient
    
    # --- functions ---
    function PromptForInput ($prompt, $default) {
     $selection = read-host "$prompt`r`n(default: $default)"
     if ($selection) {$selection} else {$default}
    }
    
    function DownloadEntries {
     param ([string]$feedUrl) 
     $feed = [xml]$webClient.DownloadString($feedUrl)
    
     $progress = 0
     $pagepercent = 0
     $entries = $feed.rss.channel.item.Length
     $invalidChars = [System.IO.Path]::GetInvalidFileNameChars()
     $feed.rss.channel.item | foreach {
        $url = New-Object System.Uri($_.enclosure.url)
        $name = $_.title
        $extension = [System.IO.Path]::GetExtension($url.Segments[-1])
        $fileName = $name + $extension
    
        $invalidchars | foreach { $filename = $filename.Replace($_, ' ') }
        $saveFileName = join-path $destinationDirectory $fileName
        $tempFilename = $saveFilename + ".tmp"
        $filename
        if ((-not $overwrite) -and (Test-Path -path $saveFileName)) 
        {
            write-progress -activity "$fileName already downloaded" -status "$pagepercent% ($progress / $entries) complete" -percentcomplete $pagepercent
        }
        else 
        {
            write-progress -activity "Downloading $fileName" -status "$pagepercent% ($progress / $entries) complete" -percentcomplete $pagepercent
           $webClient.DownloadFile($url, $tempFilename)
           rename-item $tempFilename $saveFileName
        }
        $pagepercent = [Math]::floor((++$progress)/$entries*100)
      }
    }  
    
    # --- do the actual work ---
    [string]$feedUrl = PromptForInput "Enter feed URL" $feedUrl
    [string]$mediaType = PromptForInput "Enter media type`r`n(options:Wmv,WmvHigh,mp4,mp4high,zune,mp3)" $mediaType
    $feedUrl += $mediaType
    
    [string]$destinationDirectory = PromptForInput "Enter destination directory" $destinationDirectory
    
    # if dest dir doesn't exist, create it
    if (!(Test-Path -path $destinationDirectory)) { New-Item $destinationDirectory -type directory }
    
    DownloadEntries $feedUrl
    

    অনেক ত্রুটি সহ

    http://screencast.com/t/bgGd0s98Uc


4
আপনার সমস্যার উত্তরটি ত্রুটি বার্তায় রয়েছে (ইউজব্যাসিক পার্সিং প্যারামিটারটি ব্যবহার করুন)
ব্লুফ

41
ন্যায়সঙ্গতভাবে, কোনও ত্রুটি বার্তায় "ইন্টারনেট এক্সপ্লোরার" শব্দটি দেখতে পাওয়া এবং কমান্ড লাইনের ইউটিলিটিটি আইইয়ের উপর নির্ভরতা কেন রাখায় আপনি অন্ধ ক্রোধের দিকে ঝাঁপিয়ে পড়লে বাকী বার্তাটি উপেক্ষা করা সহজ।
মিস্টারজিম্বু

উত্তর:


220

আপনার অনুরোধ ওয়েব অনুরোধে পরামিতি ব্যবহার করুন -UseBasicParsing

যেমন আপনার স্ক্রিপ্টে (লাইন 2) আপনার ব্যবহার করা উচিত:

$rss = Invoke-WebRequest -Uri $url -UseBasicParsing

ডকুমেন্টেশন অনুসারে , আইআই ইনস্টল করা বা কনফিগার করা হয়নি এমন সিস্টেমে এই প্যারামিটারটি প্রয়োজনীয়:

ডকুমেন্ট অবজেক্ট মডেল (ডিওএম) পার্সিং ছাড়াই এইচটিএমএল সামগ্রীর জন্য প্রতিক্রিয়া অবজেক্টটি ব্যবহার করে। যখন উইন্ডোজ সার্ভার অপারেটিং সিস্টেমের সার্ভার কোর ইনস্টলেশন হিসাবে কম্পিউটারে ইন্টারনেট এক্সপ্লোরার ইনস্টল না থাকে তখন এই প্যারামিটারটি প্রয়োজনীয় হয়।


17
ভবিষ্যতের দর্শকদের জন্য কি করাতে আগ্রহী তাদের UseBasicParsingজন্য: Uses the response object for HTML content without Document Object Model (DOM) parsing. This parameter is required when Internet Explorer is not installed on the computers, such as on a Server Core installation of a Windows Server operating system.এখান থেকে অনুলিপি করা হয়েছে: ডকস.মাইক্রোসফট.ডে
ব্রুনো

39

আপনার স্ক্রিপ্টগুলি পরিবর্তন না করে এটিকে কাজ করার জন্য:

আমি এখানে একটি সমাধান পেয়েছি: http://wahlnetwork.com/2015/11/17/solving-the-first-launch-configration-error-with-powershells-invoke-webrequest-Cmdlet/

ত্রুটিটি সম্ভবত উপস্থিত হতে চলেছে কারণ নীচে উইন্ডোটি উত্থাপন করে IE এখনও প্রথমবারের মতো চালু করা হয়নি। এটি চালু করুন এবং সেই স্ক্রিনটি পেয়ে যান এবং তারপরে ত্রুটি বার্তা আর আসবে না। কোনও স্ক্রিপ্ট পরিবর্তন করার দরকার নেই।

অর্থাত্ প্রথম লঞ্চ উইন্ডো


পাওয়ারশেল ব্যবহারের জন্য স্বয়ংক্রিয় প্রক্রিয়াগুলির একগুচ্ছ জন্য একটি সার্ভার ২০০৮ সার্ভার থেকে সার্ভার ২০১২ আর 2-তে সমস্ত স্ক্রিপ্টগুলি আপডেট না করেই আমার জন্য কাজ করেছে। এটি একটি সুনির্দিষ্ট অ্যাকাউন্ট ব্যবহার করেছে তাই আমাকে সত্যই এই অ্যাকাউন্টটি সার্ভারে সাইন ইন করে চালাতে হয়েছিল।
বিটকয়েন মার্ডারাস পাগল

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

4
প্রথম রান উইজার্ডটি পরিচালনা করতে একটি গ্রুপ পলিসি অবজেক্ট (জিপিও) ব্যবহার করুন : কম্পিউটার কনফিগারেশন> নীতিসমূহ> প্রশাসনিক টেম্পলেটগুলি> উইন্ডোজ উপাদানসমূহ> ইন্টারনেট এক্সপ্লোরার। সক্ষম করাতে "প্রথমে চালানো উইজার্ড প্রতিরোধ" "নীতি সেট করুন এবং আপনার
পছন্দসই

আমি কুবেক্টলি প্রক্সিতে এই সমস্যাটি নিয়ে আসছিলাম এবং যখন আমি কার্ল ব্যবহার করি তখন এটি ঠিক হয়ে যায়। ধন্যবাদ!
gpbaculio

যদি আপনার অ্যাপ্লিকেশনটি কোনও ধরণের অটো স্কেলিং গোষ্ঠীর অভ্যন্তরে থাকে তবে নতুন পরিস্থিতিটি এই দৈনিক / সাপ্তাহিক / ইত্যাদির প্রয়োজন পড়লে এই দৃশ্যটিও কাজ করবে না। ইউস বেসিক পার্সিং ব্যবহার করার জন্য সেরা
রায়ান সি

10

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

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

সুতরাং এখানে আপনাকে আপনার স্ক্রিপ্টগুলি পরিবর্তন করতে হবে এবং ইউজ বেসিক পার্সিং যুক্তি যুক্ত করতে হবে, যেমন এই উদাহরণটি: $WebResponse = Invoke-WebRequest -Uri $url -TimeoutSec 1800 -ErrorAction:Stop -Method:Post -Headers $headers -UseBasicParsing


7

আপনি এই পাওয়ারশেল স্ক্রিপ্টটি চালিয়ে ইন্টারনেট এক্সপ্লোরারের প্রথম প্রবর্তন কনফিগারেশন চালানোর প্রয়োজনীয়তাটি অক্ষম করতে পারেন, এটি সম্পর্কিত রেজিস্ট্রি সম্পত্তিটি সামঞ্জস্য করবে:

Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Internet Explorer\Main" -Name "DisableFirstRunCustomize" -Value 2

এর পরে, ওয়েবক্লিয়েন্ট সমস্যা ছাড়াই কাজ করবে


দুর্ভাগ্যক্রমে এটি কেবল জিইউআই সংস্করণে দুর্দান্ত কাজ করে তবে উইন্ডোজ সার্ভার কোরে নয় C
লুক

4
@ ঠিক আছে, আমি উইন্ডোজ সার্ভার কোর
ujeenator

1

আমারও এই সমস্যাটি ছিল এবং আমি যখন ইউএসব্যাসিক পার্সিং কিছু লোকের জন্য কাজ করি তবে আপনার যদি ডমটির সাথে বাস্তবে যোগাযোগ করা প্রয়োজন তবে এটি কাজ করবে না। প্রারম্ভিক কনফিগারেশন উইন্ডোটি প্রদর্শিত হতে বাধা দেওয়ার জন্য এ গ্রুপ নীতি ব্যবহার করার চেষ্টা করুন এবং পাওয়ারশেল আপনাকে আর থামবে না। এখানে দেখো https://wahlnetwork.com/2015/11/17/solving-the-first-launch-configration-error-with-powershells-invoke-webrequest-Cddlet/

একবার এই পৃষ্ঠাটি পাওয়া গেলে আমাকে কয়েক মিনিট সময় নিয়েছিল, একবার জিপি সেট হয়ে গেলে পাওয়ারশেল আপনাকে অনুমতি দেবে।


1

আপনার আহবান ওয়েব অনুরোধে কেবলমাত্র -UseBasicParsing প্যারামিটারটি ব্যবহার করুন

যেমন আপনার স্ক্রিপ্টে (লাইন 2) আপনার ব্যবহার করা উচিত:

$rss = Invoke-WebRequest -UseBasicParsing

ডকুমেন্টেশন অনুসারে, আইআই ইনস্টল করা বা কনফিগার করা হয়নি এমন সিস্টেমে এই প্যারামিটারটি প্রয়োজনীয়।

ডকুমেন্ট অবজেক্ট মডেল (ডিওএম) পার্সিং ছাড়াই এইচটিএমএল সামগ্রীর জন্য প্রতিক্রিয়া অবজেক্টটি ব্যবহার করে। যখন উইন্ডোজ সার্ভার অপারেটিং সিস্টেমের সার্ভার কোর ইনস্টলেশন হিসাবে কম্পিউটারে ইন্টারনেট এক্সপ্লোরার ইনস্টল না থাকে তখন এই প্যারামিটারটি প্রয়োজনীয় হয়।


0

সমাধানের জন্য আরেকটি পদ্ধতি: রেজিস্ট্রি আপডেট করা। আমার ক্ষেত্রে আমি জিপিও পরিবর্তন করতে পারিনি, এবং -উসব্যাসিক পার্সিং ওয়েবসাইটটিতে অ্যাক্সেসের কিছু অংশ ভেঙে ফেলে। এছাড়াও আমার লগ ইন অনুমতি ছাড়াই একটি পরিষেবা ব্যবহারকারী ছিল, তাই আমি ব্যবহারকারী হিসাবে লগ ইন করতে এবং জিইআইআই চালাতে পারিনি।
ঠিক করতে,

  1. সাধারণ ব্যবহারকারী হিসাবে লগ ইন করুন, আইই সেটআপ চালান।
  2. তারপরে এই রেজিস্ট্রি কীটি রফতানি করুন: HKEY_USERS \ S-1-5-21 -.... OF সফটওয়্যার \ মাইক্রোসফ্ট \ ইন্টারনেট এক্সপ্লোরার
  3. সংরক্ষিত .reg ফাইলটিতে, ব্যবহারকারীর সিডটি পরিষেবা অ্যাকাউন্টের সিডের সাথে প্রতিস্থাপন করুন
  4. .Reg ফাইলটি আমদানি করুন

ফাইলটিতে

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.