.NET 4 রানটাইম দিয়ে আমি কীভাবে পাওয়ারশেল চালাতে পারি?


234

আমি একটি পাওয়ারশেল স্ক্রিপ্ট আপডেট করছি যা কিছু .NET সমাবেশগুলি পরিচালনা করে। স্ক্রিপ্টটি নেট নেট 2 (পাওয়ারশেল যে কাঠামোর সাথে চালিত হয় তার একই সংস্করণ) এর বিপরীতে নির্মিত অ্যাসেমব্লিগুলির জন্য রচিত ছিল, তবে এখন নেট 4 অ্যাসেমব্লির পাশাপাশি নেট 2 অ্যাসেম্বলির সাথে কাজ করা দরকার।

যেহেতু। নেট 4 ফ্রেমওয়ার্কের পুরানো সংস্করণগুলির বিপরীতে চালিত অ্যাপ্লিকেশনগুলিকে সমর্থন করে, তাই মনে হয় সবচেয়ে সহজ সমাধান হ'ল। নেট 4 রানটাইম দিয়ে পাওয়ারশেলটি লঞ্চ করা যখন আমাকে নেট নেট অ্যাসেমব্লির বিরুদ্ধে চালানো দরকার।

.NET 4 রানটাইম দিয়ে আমি কীভাবে পাওয়ারশেল চালাতে পারি?



8
এই দিনগুলির সবচেয়ে সহজ সমাধানটি হবে পাওয়ারশেল 3.0 সিটিপি ইনস্টল করা যা সিএলআরভিশন: 4.0.30319.1 ব্যবহার করে।
জেড জেড

2
যে কেউ এখনও পাওয়ারশেল 2 এর সাথে আটকে আছে, স্থানীয় সমাধানের জন্য টিম লুইসের উত্তর দেখুন যার জন্য কোনও মেশিন-প্রশস্ত কনফিগারেশন সম্পাদনা করার প্রয়োজন নেই।
এরিক এস্কিল্ডসেন

1
একটি সিস্টেম-বিহীন এবং ফাইলহীন সমাধানের জন্য এই উত্তরটি দেখুন
vkrzv

উত্তর:


147

পাওয়ারশেল (ইঞ্জিন)। নেট 4.0 এর অধীনে সূক্ষ্মভাবে চলে। পাওয়ারশেল (কনসোল হোস্ট এবং আইএসই ) না, কেবল কারণ এগুলি .NET এর পুরানো সংস্করণগুলির বিরুদ্ধে সংকলিত হয়েছিল। এমন একটি রেজিস্ট্রি সেটিংস রয়েছে যা সিস্টেমভুক্ত .NET ফ্রেমওয়ার্কটি পরিবর্তিত করবে , যার ফলে পাওয়ারশেল .NET 4.0 ক্লাস ব্যবহারের অনুমতি দেবে:

reg add hklm\software\microsoft\.netframework /v OnlyUseLatestCLR /t REG_DWORD /d 1
reg add hklm\software\wow6432node\microsoft\.netframework /v OnlyUseLatestCLR /t REG_DWORD /d 1

.NET 4.0 ব্যবহারের জন্য কেবল আইএসই আপডেট করতে, আপনি এই জাতীয় অংশটি রাখতে কনফিগারেশন ($ psHome \ পাওয়ারশেল_ইসেক্সেক্সনফিগ) ফাইলটি পরিবর্তন করতে পারেন:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <startup>
      <supportedRuntime version="v4.0.30319" />
    </startup>
</configuration>

আপনি .NET 4.0 অ্যাপ্লিকেশনগুলি তৈরি করতে পারেন যা পাওয়ারশেলকে পাওয়ারশেল এপিআই (সিস্টেম.ম্যানেজমেন্ট.আউটমেশন.পাওয়ারশেল) ব্যবহার করে কল করে তবে ঠিক এই পদক্ষেপগুলি ইন-দ্য বাক্স পাওয়ারশেল হোস্টকে। নেট 4.0 এর অধীনে কাজ করতে সহায়তা করবে।


যখন আপনার আর প্রয়োজন হবে না তখন রেজিস্ট্রি কীগুলি সরান। এগুলি মেশিন-প্রশস্ত কীগুলি এবং জোর করে .NET 4.0 এ সমস্ত অ্যাপ্লিকেশনগুলি মাইগ্রেট করে, এমনকি নেট। 2 এবং .NET 3.5 ব্যবহার করে অ্যাপ্লিকেশনগুলি



9
কেবল স্পষ্ট করে বলতে গেলে, পাওয়ারশেল.এক্সই (কনসোল হোস্ট অ্যাপ) নিজেই একটি স্থানীয় অ্যাপ্লিকেশন - পরিচালিত নয়।
কিথ হিল

4
আমি উপরে থেকে আমার সমস্যাটি বের করেছিলাম। একটি 64-বিট ওএসে চলাকালীন আপনাকে কনফিগারেশন ফাইলটি 64-বিট ডিরেক্টরিতে রাখতে হবে put ৩২-বিট পাওয়ারশেল সম্পাদনযোগ্য বলে মনে হয় সেখান থেকে পরিবর্তনটি ঠিকঠাক হয়ে গেছে।
ক্রিস ম্যাককেঞ্জি

11
শুধু একটি ছোট পরামর্শ। যখন আপনার আর প্রয়োজন হবে না তখন রেজিস্ট্রি কীগুলি সরান। আমি কেন কয়েকটা নেট তৈরি করতে পারছি না তা জানার চেষ্টা করে আমি মাত্র এক টন সময় হারিয়েছি 3.5
ক্লার্ক

7
প্রস্তাবিত রেজিস্ট্রি মডিফিকেশন সলিউশনটি যদি আপনি বহু-লক্ষ্যবস্তু করে থাকেন (অর্থাত VS2010 তে .NET 2.0 অ্যাপ্লিকেশন লিখছেন) খারাপ ব্যবহার করে। সতর্ক থাকুন।
টড স্প্রেং

9
নোট করুন যে মাইক্রোসফ্ট এটি করার বিরুদ্ধে দৃ strongly়ভাবে সতর্ক করে: "যদিও পাওয়ারশেলের জন্য একটি কনফিগার ফাইল তৈরি করা বা রেজিস্ট্রি সম্পাদনা করার মতো বিভিন্ন প্রক্রিয়া ব্যবহার করে .NET ফ্রেমওয়ার্ক ৪.০ দিয়ে চালিত করার জন্য পাওয়ারশেল ২.০ কে জোর করা সম্ভব, এই পদ্ধতিগুলি সমর্থিত নয় এবং থাকতে পারে অন্যান্য পাওয়ারশেল কার্যকারিতা যেমন পাওয়ারশেল রিমোটিং এবং মিক্সড-মোড অ্যাসেমব্লিসহ সেন্টিমিলেটগুলি নেতিবাচক পার্শ্ব প্রতিক্রিয়া "" সংযুক্ত.মাইক্রোসফট.পাওয়ারশেল / ফেডব্যাক / ডেটেলস / ৫৫৪৪৩৫/২ পাওয়ারশেল 3.0.০ এর নেট নেট for.০ এর জন্য স্থানীয় সমর্থন রয়েছে।
টিম্বো

238

আমি সবচেয়ে ভাল সমাধানটি পেয়েছি হ'ল পাওয়ারশেলের সাথে .NET এর নতুন সংস্করণ (গুলি) ব্যবহার করে ব্লগ পোস্টে । এটি পাওয়ারসেল.এক্সিকে .NET 4 টি অ্যাসেম্বলি দিয়ে চালানোর অনুমতি দেয়।

কেবল পরিবর্তন করুন (বা তৈরি করুন) $pshome\powershell.exe.configযাতে এটিতে নিম্নলিখিতটি থাকে:

<?xml version="1.0"?> 
<configuration> 
    <startup useLegacyV2RuntimeActivationPolicy="true"> 
        <supportedRuntime version="v4.0.30319"/> 
        <supportedRuntime version="v2.0.50727"/> 
    </startup> 
</configuration> 

অতিরিক্ত, দ্রুত সেটআপ নোট:

অবস্থান এবং ফাইলগুলি কিছুটা প্ল্যাটফর্ম নির্ভর; তবে কীভাবে সমাধানটিকে আপনার জন্য কাজ করতে হয় তার একটি ইনলাইন গিস্ট দেবে।

  • পাওয়ারশেল cd $pshome উইন্ডোতে ডস প্রম্পট থেকে কাজ করে না আপনি পাওয়ারশেলের অবস্থান আবিষ্কার করতে পারেন আপনার কম্পিউটারে ।
    • পথটি এমন কিছু হবে (উদাহরণস্বরূপ) C:\Windows\System32\WindowsPowerShell\v1.0\
  • কনফিগারেশন রাখতে ফাইলের নামটি হ'ল: powershell.exe.configযদি আপনার PowerShell.exeসম্পাদন করা হয় (প্রয়োজনে কনফিগারেশন ফাইলটি তৈরি করুন)।
    • যদি PowerShellISE.Exeচলমান থাকে তবে আপনাকে এর সহযোগী কনফিগারেশন ফাইলটি তৈরি করতে হবেPowerShellISE.Exe.config

23
অবশ্যই এটি করার সঠিক উপায়। এই গন্ধে পরিবর্তন শুধুমাত্র PowerShell আচরণ, না আপনার মেশিনে প্রত্যেক অন্যান্য .NET অ্যাপ্লিকেশন ...
এরিক উ: Brandstadmoen

4
এটি ভালভাবে কাজ করে তবে আপনার সমস্ত পাওয়ারশেলকে প্রভাবিত করে। আপনি যদি কিছু কার্যকারিতা চান তবে পাওয়ারশেল ফোল্ডারের একটি অনুলিপি তৈরি করুন এবং তারপরে সেখানে ফাইলটি সম্পাদনা করুন।
ম্যাট

8
উপরে উল্লিখিত হিসাবে আমি একটি ফাইল যুক্ত করেছি। যাইহোক, আমি আর উপস্থিত ফাইলটির সাথে পাওয়ারশেলটি আর চালাতে পারি না - আমি ত্রুটিটি পেয়েছি "একটি ফাইলের ভলিউমটি বাহ্যিকভাবে পরিবর্তিত হয়েছে যাতে খোলা ফাইলটি আর বৈধ থাকে না।" কোন ধারনা?
জোশএল

13
@ জোশল - একটি bit৪ বিট সিস্টেমে, আমি খুঁজে পেয়েছি যে .exe.config- কে সিসডাব্লু 64৪64 উইন্ডোজপাওয়ার (bit২ বিট ফোল্ডার) যেতে হবে, এমনকি যদি আপনি bit৪ বিট পাওয়ার পাওয়ার চেষ্টা করছেন। অন্যথায় আপনি 'বাহ্যিকভাবে পরিবর্তিত' ত্রুটি পান।
স্যাম

4
পাওয়ারশেল.এক্সে.কনফিগ দুটি স্থানে থাকা দরকার .... সি: \ উইন্ডোজ \ সিস্টেম 32 \ উইন্ডোজপাওয়ারশেল \ v1.0 \ এবং সি: \ উইন্ডোজ \ সিএসডাব্লু 64 \ উইন্ডোজপাওয়ারশেল \ v1.0 \
জোনসোম রিইনস্টেট মনিকা

28

রেজিস্ট্রি কী পদ্ধতির ব্যবহার সম্পর্কে খুব সতর্কতা অবলম্বন করুন। এগুলি মেশিন-প্রশস্ত কীগুলি এবং জোর করে .NET 4.0 এ সমস্ত অ্যাপ্লিকেশনগুলি স্থানান্তর করে ।

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

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


রেজিস্ট্রি কী ব্যবহার সম্পর্কে খুব ভাল পয়েন্ট। সুখের বিষয়, কনফিগার ফাইল সহ লঞ্চার অ্যাপ্লিকেশনটি ঠিকঠাকভাবে কাজ করছে। আমাদের স্ক্রিপ্টগুলি প্রাথমিকভাবে ফাইল সিস্টেম কমান্ড এবং ডাইরেক্ট .NET কলগুলি ব্যবহার করে এবং আমরা ভাঙ্গা কমান্ডগুলির সাথে কোনও সমস্যা লক্ষ্য করি নি। যেহেতু .NET 4 .NET 2.0 এর সাথে বেশিরভাগ পিছনে সামঞ্জস্যপূর্ণ তাই আমি ভাবেনা যে অনেকগুলি ভাঙ্গা কমান্ড থাকবে (যদিও এটি কখনও সাবধানতা অবলম্বন করে না :))।
সম্রাট এক্স এলআইআই

26

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

পূর্ণ বিবরণ:

http://blog.codeassassin.com/2011/03/23/executing-individual-powershell-commands-using-net-4/

পাওয়ারশেল মডিউল একটি উদাহরণ:

https://gist.github.com/882528


21

আপনি যদি এখনও পাওয়ারশেল v1.0 বা v2.0 এ আটকে থাকেন তবে জেসন স্ট্যাংগ্রুমের দুর্দান্ত উত্তরের বিষয়ে আমার পার্থক্য এখানে।

powershell4.cmdনিম্নলিখিত বিষয়বস্তু দিয়ে আপনার পথে কোথাও তৈরি করুন :

@echo off
:: http://stackoverflow.com/questions/7308586/using-batch-echo-with-special-characters
if exist %~dp0powershell.exe.activation_config goto :run
echo.^<?xml version="1.0" encoding="utf-8" ?^>                 > %~dp0powershell.exe.activation_config
echo.^<configuration^>                                        >> %~dp0powershell.exe.activation_config
echo.  ^<startup useLegacyV2RuntimeActivationPolicy="true"^>  >> %~dp0powershell.exe.activation_config
echo.    ^<supportedRuntime version="v4.0"/^>                 >> %~dp0powershell.exe.activation_config
echo.  ^</startup^>                                           >> %~dp0powershell.exe.activation_config
echo.^</configuration^>                                       >> %~dp0powershell.exe.activation_config
:run
:: point COMPLUS_ApplicationMigrationRuntimeActivationConfigPath to the directory that this cmd file lives in
:: and the directory contains a powershell.exe.activation_config file which matches the executable name powershell.exe
set COMPLUS_ApplicationMigrationRuntimeActivationConfigPath=%~dp0
%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe %*
set COMPLUS_ApplicationMigrationRuntimeActivationConfigPath=

এটি আপনাকে নেট নেট under.০ এর অধীনে চলমান পাওয়ার শোনার কনসোলের একটি উদাহরণ চালু করতে দেয়।

আপনি আমার সিস্টেমে পার্থক্যটি দেখতে পাচ্ছেন যেখানে আমার কাছে পাওয়ারশেল ২.০ রয়েছে নিম্নলিখিত দুটি কমান্ডের আউটপুট পরীক্ষা করে সেমিডি থেকে চালিত।

C:\>powershell -ExecutionPolicy ByPass -Command $PSVersionTable

Name                           Value
----                           -----
CLRVersion                     2.0.50727.5485
BuildVersion                   6.1.7601.17514
PSVersion                      2.0
WSManStackVersion              2.0
PSCompatibleVersions           {1.0, 2.0}
SerializationVersion           1.1.0.1
PSRemotingProtocolVersion      2.1


C:\>powershell4.cmd -ExecutionPolicy ByPass -Command $PSVersionTable

Name                           Value
----                           -----
PSVersion                      2.0
PSCompatibleVersions           {1.0, 2.0}
BuildVersion                   6.1.7601.17514
CLRVersion                     4.0.30319.18408
WSManStackVersion              2.0
PSRemotingProtocolVersion      2.1
SerializationVersion           1.1.0.1

3
এটি এখন পর্যন্ত সেরা উত্তর যেহেতু এটি একটি খুব স্থানীয় পরিবর্তিত পরিবর্তন এবং সিস্টেমে কোনও ধ্রুবক পরিবর্তন করে না। ভাল জিনিস!
সেবাস্তিয়ান

চমত্কার! আপনি এখানে সাহায্য করতে পারেন? stackoverflow.com/questions/39801315/...
জনি কেন

@ টিমলিউস, একই পিএস 4 সিএমডি উদাহরণটিতে একাধিক বিবৃতি পাঠানো কি সম্ভব?
জোনি কেন

@ জোহনিউই, .Cmd- এ একাধিক বিবৃতি প্রেরণাটি .exe- এ একাধিক বিবৃতি প্রেরণের সমান কারণ .সিএমডি এর সমস্ত পরামিতিগুলি .exe এ যাওয়ার জন্য% * ব্যবহার করে। এটি কোনও তাত্পর্যপূর্ণ হয় না, যেহেতু আপনাকে এখনও cmd.exe কমান্ড লাইনটি প্রবর্তন করার সময় প্যারামিটারগুলি পাস করার সময় কীভাবে কমান্ড লাইনটিকে পার্স করে সে সম্পর্কে সতর্ক থাকতে হবে। আমি আপনার অন্যান্য স্ট্যাক-ওভারফ্লো প্রশ্ন এবং সেখানে ঠিকানা ঠিকানা নির্দিষ্ট করে নেব।
টিম লুইস

আমি এই প্রযুক্তিটি-ভার্সন কমান্ড লাইন প্যারামিটার ডকস.মাইক্রোসফট /en-us/powershell/scriptting/ core-powershell/… এর সাথে একত্রে ব্যবহার করার চেষ্টা করেছি , দুঃখের বিষয়, এটি কাজ করে না; latest PSVersionTable.PSVersion থেকে নির্ধারিত হিসাবে পাওয়ারশেলের আমার সর্বশেষ সংস্করণ (5.1.17134.407) এর পরিবর্তে চালু হয়েছে।
eisenpony

17

.NET 2.0 এবং .NET 4 টি সমাবেশকে আমি সমর্থন করেছিলাম এমন কনফিগারেশন ফাইলের সামগ্রীগুলি এখানে:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <!-- http://msdn.microsoft.com/en-us/library/w4atty68.aspx -->
  <startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0" />
    <supportedRuntime version="v2.0.50727" />
  </startup>
</configuration>

এছাড়াও, এখানে কমান্ড লাইনের আর্গুমেন্টগুলি থেকে আমাদের স্ক্রিপ্টগুলি সম্পাদন করতে ব্যবহৃত পাওয়ারশেল 1.0 সামঞ্জস্যপূর্ণ কোডটির একটি সরল সংস্করণ রয়েছে:

class Program {
  static void Main( string[] args ) {
    Console.WriteLine( ".NET " + Environment.Version );

    string script = "& " + string.Join( " ", args );
    Console.WriteLine( script );
    Console.WriteLine( );

    // Simple host that sends output to System.Console
    PSHost host = new ConsoleHost( this );
    Runspace runspace = RunspaceFactory.CreateRunspace( host );

    Pipeline pipeline = runspace.CreatePipeline( );
    pipeline.Commands.AddScript( script );

    try {
      runspace.Open( );
      IEnumerable<PSObject> output = pipeline.Invoke( );
      runspace.Close( );

      // ...
    }
    catch( RuntimeException ex ) {
      string psLine = ex.ErrorRecord.InvocationInfo.PositionMessage;
      Console.WriteLine( "error : {0}: {1}{2}", ex.GetType( ), ex.Message, psLine );
      ExitCode = -1;
    }
  }
}

উপরে প্রদর্শিত বেসিক ত্রুটি পরিচালনার পাশাপাশি, আমরা trapঅতিরিক্ত ডায়গনিস্টিক তথ্য (জেফরি স্নোভারের সমাধান-ত্রুটির ফাংশনের অনুরূপ) প্রদর্শন করতে স্ক্রিপ্টে একটি বিবৃতিও ইনজেক্ট করি ।


10

অন্যান্য উত্তরগুলি ২০১২ সালের পূর্ববর্তী, এবং তারা। নেট ফ্রেমওয়ার্ক এবং কমন ল্যাঙ্গুয়েজ রানটাইম (সিএলআর) এর নতুন সংস্করণগুলিকে লক্ষ্য করে "হ্যাকিং" পাওয়ারশেল 1.0 বা পাওয়ারশেল 2.0 তে জোর দেয়।

তবে, অনেক মন্তব্যে যেমন লেখা হয়েছে, ২০১২ সাল থেকে (যখন পাওয়ারশেল ৩.০ এসেছিল) পাওয়ারশেলের নতুন সংস্করণটি ইনস্টল করা এর থেকে আরও ভাল সমাধান । এটি স্বয়ংক্রিয়ভাবে সিএলআরকে লক্ষ্য করবে v4.0.30319। এর অর্থ .NET 4.0, 4.5, 4.5.1, 4.5.2, বা 4.6 (2015 সালে প্রত্যাশিত) যেহেতু এই সংস্করণগুলির সমস্ত একে অপরের স্থান-প্রতিস্থাপন। আপনি যদি নিজের পাওয়ারশেল সংস্করণ সম্পর্কে অনিশ্চিত হন তবে ইনস্টল করা পাওয়ারশেল সংস্করণ থ্রেডটি নির্ধারণ করুন $PSVersionTableবা দেখুন ।

লেখার সময়, পাওয়ারশেলের নতুন সংস্করণটি 4.0 হয় এবং এটি উইন্ডোজ ম্যানেজমেন্ট ফ্রেমওয়ার্ক (গুগল অনুসন্ধান লিঙ্ক) দিয়ে ডাউনলোড করা যায়


2
উইন্ডোজ ম্যানেজমেন্ট ফ্রেমওয়ার্ক 4.0 এর জন্য সিস্টেমের প্রয়োজনীয়তাগুলি (তারা 3.0 এর মতো হয়) হ'ল: উইন্ডোজ 7, ​​উইন্ডোজ এম্বেড স্ট্যান্ডার্ড 7, উইন্ডোজ সার্ভার ২০০৮ আর 2, উইন্ডোজ সার্ভার ২০১২.
পিটার মর্টেনসেন

9

প্রকৃতপক্ষে, আপনি অন্যান্য। নেট অ্যাপ্লিকেশনগুলিকে প্রভাবিত না করে। নেট 4 ব্যবহার করে পাওয়ারশেল চালাতে পারবেন । নতুন HTTPWebRequest "হোস্ট" সম্পত্তিটি ব্যবহার করার জন্য আমার এটি করা দরকার ছিল, তবে "ওয়ানলাসটেলেক্সটেলসিএলআর" পরিবর্তন করে ফিডলারকে ভেঙে ফেলেছিল as নেট 4 এর অধীনে।

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

  • এইচকেএলএম: \ সফ্টওয়্যার \ মাইক্রোসফ্ট \ পাওয়ারশেল \ 1 S পাওয়ারশেলজিন \ রানটাইম ভার্সন (bit৪ বিট এবং ৩২ বিট)
  • এইচকেএলএম: \ সফটওয়্যার \ ওয়াও 32৪৩২ নোড \ মাইক্রোসফ্ট পাওয়ারশেল \ 1 \ পাওয়ারশেলজিন \ রানটাইম ভার্সন (bit৪ বিট মেশিনে 32 বিট)

প্রয়োজনীয় সংস্করণে কীটির মানটি পরিবর্তন করুন। যদিও মনে রাখবেন যে কিছু স্ন্যাপিনগুলি আর না লোড হতে পারে। -VMWare , এসকিউএল সার্ভার 2008 , PSCX, সক্রিয় ডিরেক্টরি (মাইক্রোসফট ও কোয়েস্ট সফটওয়্যার ) এবং SCOM সব কাজ জরিমানা।


+1 অন্যান্য রেগ এন্ট্রির তুলনায় এটি একটি অত্যন্ত গুরুত্বপূর্ণ বিকল্প (এবং আরও ভাল) যা সমস্ত। নেট অ্যাপ্লিকেশনগুলিকে প্রভাবিত করবে, তবে এই সমাধানটি কেবল পাওয়ারশেলকেই প্রভাবিত করে।
খ্রিস্টান মিক্কেলসেন

"ওয়ানলউস্টেস্টেস্ট সিএলআর" প্রয়োগ করার পরে আমার ফিডলারের কিছুটা পাওয়ারসহলের স্ক্রিপ্টগুলি কিছু সার্ভারের সাথে যোগাযোগ করতে না পারার কারণে চালিত হয় না। আমি ম্যানুয়ালি মানগুলি 0 টি রিজেটেড 32 এ পরিবর্তন করেছি এবং এখন আবার কাজ করছি। ধন্যবাদ!
নেভিল

ডাব্লুএএসপি, পিএসসিএক্স এবং এসসিওএম (এই প্রসঙ্গে) কী কী?
পিটার মর্টেনসেন

7

আপনি যদি রেজিস্ট্রি বা অ্যাপকনফাইগ ফাইলগুলি সংশোধন করতে না চান, তবে বিকল্প উপায় হ'ল পাওয়ারসেল.এক্সে কী করে এবং পাওয়ারশেল কনসোলশেলকে হোস্ট করে এমন একটি সাধারণ। নেট 4 কনসোল অ্যাপ তৈরি করা।

অপশন 2 দেখুন - উইন্ডোজ পাওয়ারশেলকে নিজে হোস্টিং করুন

প্রথমে সিস্টেম.ম্যানেজমেন্ট.আউটমেশন এবং মাইক্রোসফ্ট.পাওয়ারশেল.কনসোলহোস্ট অ্যাসেমব্লিতে একটি প্রোগ্রাম যুক্ত করুন যা % প্রোগ্রামফাইলে% \ রেফারেন্স অ্যাসেমব্লিগুলি \ মাইক্রোসফ্ট, উইন্ডোজপাওয়ারশেল \ v1.0 এর অধীনে পাওয়া যায়

তারপরে নিম্নলিখিত কোডটি ব্যবহার করুন:

using System;
using System.Management.Automation.Runspaces;
using Microsoft.PowerShell;

namespace PSHostCLRv4
{
    class Program
    {
        static int Main(string[] args)
        {
            var config = RunspaceConfiguration.Create();
                return ConsoleShell.Start(
                config,
                "Windows PowerShell - Hosted on CLR v4\nCopyright (C) 2010 Microsoft Corporation. All rights reserved.",
                "",
                args
            );
        }
    }
}

6

অন্য একটি বিকল্প হিসাবে, সর্বশেষ পশসনসোল রিলিজের মধ্যে বিন্যাস বিন্যাস ছাড়াই .NET 4 আরসি (যা আরটিএম মুক্তির বিরুদ্ধে সূক্ষ্ম কাজ করে) লক্ষ্যযুক্ত বাইনারি অন্তর্ভুক্ত রয়েছে ।


1

COMPLUS_versionপরিবেশের পরিবর্তনশীল সেট সহ কেবল পাওয়ারশেল.এক্সই চালান v4.0.30319। উদাহরণস্বরূপ, cmd.exe বা .bat-file থেকে:

set COMPLUS_version=v4.0.30319
powershell -file c:\scripts\test.ps1
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.