Windows PowerShell でスクリプトにデジタル署名する
運用環境で Windows PowerShell スクリプトを使用する場合は、それらのスクリプトがテストされたことを確認する承認プロセスが必要です。 この承認プロセスは、組織の規模と官庁のレベルによって異なりますが、何らかの承認プロセスが必要です。
運用環境で使用されるスクリプトの承認プロセスを正式化する 1 つの方法は、スクリプトにデジタル署名し、 AllSigned スクリプト実行ポリシーを使用することです。 このポリシーを実装する場合は、すべての変更されたスクリプトを新しいデジタル署名で更新する必要があります。 これにより、管理者や他のスタッフがスクリプトを無作為に変更できなくなります。 たとえば、組織に Active Directory Domain Services (AD DS) ユーザーを管理する承認済みのスクリプトのセットがある場合、この構成により、ヘルプデスクのスタッフがスクリプトを意図的または誤って変更できなくなります。
スクリプトにデジタル署名を追加するには、そのスクリプトを実行するすべてのコンピューターによって信頼されているコード署名証明書が必要です。 信頼済みのコード署名証明書は、公開証明機関から取得できます。 コード署名証明書は、コンピューターによって信頼されている内部証明機関から取得することもできます。
次のコードに示すように、 Set-AuthenticodeSignature コマンドレットを使用してデジタル署名を追加します。
$cert = Get-ChildItem -Path "Cert:\CurrentUser\My" -CodeSigningCert
Set-AuthenticodeSignature -FilePath "C:\Scripts\MyScript.ps1" -Certificate $cert