中の技術日誌ブログ

C#とC++/CLIと
VBと.NETとWindowsで戯れる
 

目次

Blog 利用状況

ニュース

自己紹介

東京でソフトウェアエンジニアをやっています。
お仕事大募集中です。
記事執筆や、講師依頼とかでも何でもどうぞ(*^_^*)
似顔絵 MSMVPロゴ
MSMVP Visual C# Since 2004/04-2013/03

記事カテゴリ

書庫

日記カテゴリ

00-整理

01-MSMVP

PowerShellでps1ファイルを動かすようにする方法

結構面倒

まずなぜかうまくいかない "get-help about-signing"をあきらめて、

C:\WINDOWS\system32\windowspowershell\v1.0\ja\about_signing.help.txt

を直接覗き込みましょう。

PowerShellの実行ポリシーには

  • Restricted
  • AllSigned
  • RemoteSigned
  • Unrestricted

の4つがあって、デフォルトはResrictedだと書いてあります。

現在のポリシーの取得は

PS C:\Documents and Settings\localnaka> Get-ExecutionPolicy
AllSigned

ってでるんですが・・・

で、ps1ファイルを署名すればいいんだけど、よりによってAuthenticodeなので、通常は個人で取得できません。

なのでおれおれ署名を実施することになると思います。

Platform SDKなり、.NET SDKなり、Windows SDK環境を用意しろと書いてあります。

#うちは入ってるけどさぁ・・・

#証明機関を作成

makecert -n "CN=PowerShell Local Certificate Root" -a sha1 -eku 1.3.6.1.5.5.7.3.3 -r -sv root.pvk root.cer -ss Root -sr localMachine

#Authenticodeを作成

makecert -pe -n "CN=PowerShell User" -ss MY -a sha1 -eku 1.3.6.1.5.5.7.3.3 -iv root.pvk -ic root.cer

#署名を実施

$cert = @(Get-ChildItem cert:\CurrentUser\My -codesigning)[0]
Set-AuthenticodeSignature sign-file.ps1 $cert

これで実行できます。

投稿日時 : 2006年11月15日 18:36

コメントを追加

No comments posted yet.
タイトル
名前
URL
コメント