পাওয়ারশেল স্ক্রিপ্টগুলিতে স্বাক্ষর করতে অক্ষম


8

আমি আমার স্ক্রিপ্টগুলি পাওয়ারশেলে সাইন ইন করার জন্য দেখতে পাচ্ছি না। আমার মেশিনে আমার একটি বৈধ কোড স্বাক্ষরকারী প্রত্যয় ইনস্টল করা আছে এবং নিম্নলিখিত কমান্ডগুলি চালনা করি। কোন পরামর্শ?

PS C:\Users\u00\bin> $cert = @(Get-ChildItem cert:\CurrentUser\My -codesigning)[0]
PS C:\Users\u00\bin> $cert | fl


Subject      : E=operations@contoso.com, CN=contoso , OU=Operations, O=contoso,
               L=Mayberry, S=Florida, C=US
Issuer       : CN=contoso Intermediate CA1, DC=contoso, DC=com
Thumbprint   : XXXXXXXXXXXXXXXXXXXXX
FriendlyName : contoso 
NotBefore    : 7/20/2010 12:58:55 AM
NotAfter     : 7/20/2011 12:58:55 AM
Extensions   : {System.Security.Cryptography.Oid, System.Security.Cryptography.Oid, System.Security.Cryptography.Oi
               ystem.Security.Cryptography.Oid...}



PS C:\Users\u00\bin> Set-AuthenticodeSignature .\testsign.ps1 -Certificate $cert


    Directory: C:\Users\u00\bin


SignerCertificate                         Status                                 Path
-----------------                         ------                                 ----
                                          UnknownError                           testsign.ps1


PS C:\Users\u00\bin> Get-AuthenticodeSignature .\testsign.ps1

    Directory: C:\Users\u00\bin


SignerCertificate                         Status                                 Path
-----------------                         ------                                 ----
                                          NotSigned                              testsign.ps1

জানা ভাল. আমি আপনার প্রশ্নের এক নজরে নিচ্ছি কারণ পিসিতে প্রশাসক না হয়ে আমি আমার স্ক্রিপ্টগুলিতে স্বাক্ষর করতে পারি না। : আমি এটা সম্পর্কে এখানে আসতে বলেছি superuser.com/questions/174878/...
Bratch

4
ভাল প্রশ্ন এবং উত্তর পোস্ট করার জন্য ধন্যবাদ। উত্তর বিভাগে আপনার সম্পাদনা পোস্ট করা উচিত এবং সময়সীমা শেষ হওয়ার পরে এটি সঠিক হিসাবে চিহ্নিত করা যাতে লোকেরা আরও স্পষ্টভাবে দেখতে পারে যে এই প্রশ্নের উত্তর দেওয়া হয়েছে question
কালেব

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

উত্তর:


4

এটা বের করে আনা। স্ক্রিপ্ট ফাইলটি পাওয়ারশেল আইএসই ব্যবহার করে তৈরি করা হয়েছিল এবং সম্ভবত আপনি পাওয়ারশেল আইএসইতে নির্মিত স্ক্রিপ্টগুলিতে স্বাক্ষর করতে পারবেন না বা আরও সঠিকভাবে আপনি ইউনিকোড বিগ এন্ডিয়ান এনকোডযুক্ত ফাইলগুলিতে সাইন করতে পারবেন না যা আইএসইয়ের জন্য ডিফল্ট। লিঙ্কে ডকুমেন্টেড হিসাবে ডিফল্ট এনকোডিংটি পরিবর্তন করার মতো কাজ রয়েছে।


চাদ মিলার দ্বারা মূলত প্রশ্নের সাথে যুক্ত হয়েছে । তার আপডেটটি একটি উত্তরে পুনরায় স্থানান্তরিত করে তাই এই প্রশ্নটি আর উত্তরহীন হিসাবে দেখাবে না।


জেনে রাখা ভাল - যে ইউনিকোড ফাইল এনকোডিংয়ের সমস্যাটি আমাকে অন্যত্র দংশিত করেছে (খারাপভাবে লিখিত XML পার্সার)।
হেলভিক

এবং আমি অন্য দিন বিন্ড ডিএইচসিপি-র জন্য এমএস-ডিএইচসিপি ইজারা রফতানি করার জন্য একটি স্ক্রিপ্ট লিখছি। ইউনিকোড আবার।
sysadmin1138

3

আপনি ISEFile অবজেক্টের .Save () পদ্ধতিতে পাওয়ারশেল আইএসই এর মধ্যে থেকে একটি নির্দিষ্ট এনকোডিং হিসাবে একটি ফাইল সংরক্ষণ করতে পারেন:

 $psIse.CurrentFile.Save([System.Text.Encoding]::UTF8)

আপনি যদি আপনার আইএসই প্রোফাইলে নিম্নলিখিতটি যুক্ত করেন তবে আপনি কেবল আপনার স্ক্রিপ্টগুলির জন্য আলাদা ডিফল্ট এনকোডিং পেতে Ctrl-Shift-S টিপতে পারেন:

$psISE.CurrentPowerShellTab.AddOnsMenu.SubMenus.Add("_Save as UTF8",{$psIse.CurrentFile.Save([System.Text.Encoding]::UTF8)},"Ctrl+Shift+S")

আপনার প্রোফাইলটি উপস্থিত না থাকলে এবং মেনুটি যুক্ত করার জন্য এখানে কিছু কুইকি কোড রয়েছে। আইএসই এর মধ্যে থেকে এই কোডটি চালান বা আপনি কেবল আপনার কনসোলহোস্ট প্রোফাইলে জাঙ্ক যুক্ত করবেন যেখানে এটি কেবল ত্রুটিযুক্ত হবে:

add-content $profile -value '$psISE.CurrentPowerShellTab.AddOnsMenu.SubMenus.Add("_Save as UTF8",{$psIse.CurrentFile.Save([System.Text.Encoding]::UTF8)},"Ctrl+Shift+S")'
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.