কীভাবে সহজেই পাওয়ারশেল স্ক্রিপ্টে স্বাক্ষর করবেন?


15

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

ডকুমেন্টেশনে বর্ণিত চেয়ে পাওয়ারশেল স্ক্রিপ্টে স্বাক্ষর করার কি সহজ উপায় আছে?

উত্তর:


7

সাইন ইন করতে আপনি Set-AuthenticodeSignatureসিএমডিলেট ব্যবহার করতে পারেন । এটি অবশ্যই একটি শংসাপত্রের প্রয়োজন। আপনার যদি এমন শংসাপত্র কর্তৃপক্ষ (অসম্ভব) থাকে যা একটি কোড স্বাক্ষরকারী শংসাপত্র তৈরি করতে সক্ষম হবে। অন্যথায় স্ব-স্বাক্ষরিত শংসাপত্র তৈরির জন্য বিভিন্ন সরঞ্জাম রয়েছে।

তুমি তোমার শংসাপত্র দোকান সার্টিফিকেট (খুলুন ইনস্টল .cerবা .pfxফাইল উইন্ডোজ এক্সপ্লোরার এই কাজ করতে), এবং তারপর থেকে এটি পাস Set-AuthenticodeSignature( cert:প্রদানকারী / ড্রাইভ আপনার দোকানে সার্টিফিকেট অ্যাক্সেস দেয়)।

ব্যবহার

help about_signing

বা বিশদর জন্য সেই সহায়তার বিষয়টির অনলাইন সংস্করণ (উইন্ডোজ এসডিকে সরঞ্জামগুলি [1] ব্যবহার করে একটি স্ব-স্বাক্ষরযুক্ত শংসাপত্র তৈরি করা সহ )।

[1] আমি ধরে নিলাম এটিই আপনার দ্বারা ডাউনলোড করা বড় ডাউনলোড: আপনি কেবলমাত্র প্রয়োজনীয় বিটগুলি ইনস্টল করতে পারেন বা অন্যান্য সরঞ্জাম ব্যবহার করতে পারেন (ওপেনএসএসএল শংসাপত্র উত্পন্নকরণ অন্তর্ভুক্ত করে)। এসডিকে প্রাপ্তি হ'ল এই উদ্দেশ্যে, এক-কর্মকাণ্ডের ক্রিয়াকলাপ।


আমি এই উত্তরটি স্বীকার করছি এবং ধরে নিচ্ছি যে কোনও শর্টকাট নেই এবং সাইন ইন করার জন্য ডক্সে উল্লিখিতভাবে করা দরকার।
ভিলি কসকিনেন

1
বেশ কয়েকটি "বিকাশকারী-ওয়াই" জিনিসগুলির মতো প্রাথমিক সেট আপ করা এবং শেখা কঠিন, তবে আসল অনুশীলন (বিশেষত যদি নিয়মিতভাবে করা হয়) তা নয়।
রিচার্ড

7

আমি এই পাওয়ারশেল স্ক্রিপ্টটি ব্যবহার করি:

## sign-script.ps1
## Sign a powershell script with a Thawte certificate and 
## timestamp the signature
##
## usage: ./sign-script.ps1 c:\foo.ps1 

param([string] $file=$(throw “Please specify a script filepath.”)) 

$certFriendlyName = "Thawte Code Signing"
$cert = gci cert:\CurrentUser\My -codesigning | where -Filter 
  {$_.FriendlyName -eq $certFriendlyName}

# https://www.thawte.com/ssl-digital-certificates/technical-  
#   support/code/msauth.html#timestampau
# We thank VeriSign for allowing public use of their timestamping server.
# Add the following to the signcode command line: 
# -t http://timestamp.verisign.com/scripts/timstamp.dll 
$timeStampURL = "http://timestamp.verisign.com/scripts/timstamp.dll"

if($cert) {
    Set-AuthenticodeSignature -filepath $file -cert $cert -IncludeChain All -   
      TimeStampServer $timeStampURL
}
else {
    throw "Did not find certificate with friendly name of `"$certFriendlyName`""
}

5

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

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Classes\Microsoft.PowerShellScript.1]

[HKEY_CURRENT_USER\Software\Classes\Microsoft.PowerShellScript.1\Shell]

[HKEY_CURRENT_USER\Software\Classes\Microsoft.PowerShellScript.1\Shell\Sign]

[HKEY_CURRENT_USER\Software\Classes\Microsoft.PowerShellScript.1\Shell\Sign\Command]
@="C:\\\Windows\\\System32\\\WindowsPowerShell\\\v1.0\\\powershell.exe -command Set-AuthenticodeSignature '%1' @(Get-ChildItem cert:\\\CurrentUser\\\My -codesigning)[0]"
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.