profile.ps1を使用するには?
PowerShellは、独自の設定をprofile.ps1に記述することができますが、
それを配置するには、PowerShell上で、
[Environment]::GetFolderPath("Personal")
を実行し、表示されたパスにWindowsPowerShellというフォルダを作成、profile.ps1という
フォルダを作成します。
次にWindowsSDKに付属している makecertツールで署名を作成します。
- makecertについて
- 普通にインストールしていれば、"C:\Program Files\Microsoft SDKs\Windows\v6.0\Bin"にあるでしょう。
>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 Succeeded >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 Succeeded
これを実行すると、IEのインターネットオプションでコード証明を表示すると新しい署名が追加されています。
コード署名 posted by (C)Seasons
次にPowerShell上で、署名の確認をします。
Get-ChildItem cert:\CurrentUser\My -codesigning
このコマンドで署名が表示されなければ正し作成されてません。
では、次に署名データを登録します。
$cert = @(Get-ChildItem cert:\CurrentUser\My -codesigning)[0] cd "パス=profile.ps1がおいてある場所。" Set-AuthenticodeSignature profile.ps1 $cert
これでデジタル署名がprofile.ps1に登録されたので、PowerShellを再起動します。
その際、デジタル署名についてきかれますが、「A」を選んでおくといいでしょう。
問題なければ、profile.ps1を読み込んで、起動します。
あと、root.pvk、root.cerは、削除しておきましょう。
- 参考記事
- 窓の外に出てみれば
- Windows Server 2003 を使用した相互証明および限定従属の計画と実装
- 今回は、コード署名を用いるので、それのOIDを -ekuの後に指定します。
- Profile.ps1 の作り方
- 証明書作成ツール (Makecert.exe)