Powershell スクリプトの署名 <!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } 注意:Powershell スクリプトに署名する次の手順はサポートされていない機能です。これらは、お客様が従うべき推奨手順です。以下の手順以外にお客様をサポートする機能はありません。 問題 1.お客様にはエラーは発生していませんが、PowerShell スクリプトの署名が必要です。 国防情報システム局(DISA)のセキュリティ技術実装ガイドライン(STIG)など、一部のお客様は、署名を必須要件とするポリシーを定めています。このお客様は、IntegrationHubアクション、特にActive Directory Spokeのスクリプトへの署名を希望されています。スクリプトへの署名を強制的に必須とするよう求めています。 2.Windows ホストの PowerShell ExecutionPolicy が AllSigned または RemoteSigned であり、ServiceNow PowerShell スクリプトが署名されていないために、お客様にエラーが発生する。 このお客様は、オーケストレーションアクティビティと認証情報のテスト中にエラーが発生しました。お客様がEPを「制限なし」に変更すると、それは機能しました。 通常、スクリプトはローカル MID の ExecutionPolicy に関係なく実行されますが、お客様の構成によっては失敗する可能性があります。 Powershell スクリプトの署名 お客様が PowerShell スクリプトに署名する必要がある場合は、次のガイダンスを使用します。 Powershell スクリプトはテーブル ecc_agent_script_file にあります (query: Parent = Powershell)まず、 PSScript.ps1 に署名します。統合ハブとオーケストレーションの両方で、これをラッパースクリプトとして使用して MID 上でスクリプトを実行します。他のインフラストラクチャ Powershell スクリプトに署名することをお勧めします。 (query: Parent = Powershell and Directory = false)リモート ターゲティングを使用する場合は、 ExecuteRemote.ps1 にも署名する必要があります。このスクリプトは、ターゲットマシンでのスクリプトの実行を処理します。次に、他のすべての Powershell スクリプトに署名します。 たとえば、AD スポーク Powershell スクリプトに署名する場合は、テーブル ecc_agent_script_file でクエリ Parent = AdSpoke を使用してこれらのスクリプトを見つけることができます。 注:現時点では、インラインスクリプトに署名することはできません。実行時に、インラインスクリプトを MID サーバーの一時ファイルに保存し、PowerShell ステップの実行後に削除します。お客様がこれらに署名する必要がある場合は、スクリプトファイルに変換する必要があります。 署名されたスクリプトの保存 署名されたスクリプトを添付ファイルとして保存します。 [添付ファイルフィールドを使用] を選択し、スクリプトファイルをecc_agent_script_fileレコードに添付します。注意:添付ファイル名は [ecc_agent_script_file名] フィールドと同じである必要があります。 スクリプトをインラインで保存するときに OOB フォーマットを回避するために、スクリプトを添付ファイルとして保存しています。このアプローチの欠点は、ecc_agent_script_fileレコードのバージョニングが失われることです。 スクリプトが有効であることを確認する スクリプトが MID にダウンロードされるまで待ちます。所要時間は約 10 秒です。MID で署名されたスクリプトの内容を確認します。スクリプトは ..mid_folder_path/agent/scripts/Powershell にあります。または次のようなログメッセージを検索します。 02/09/21 07:16:02 (822) FileSync:ecc_agent_script_file Already synchronized C:\<mid_folder_path>\agent\scripts\PowerShell\PSScript.ps1PowerShell ISEでスクリプトを検証するには、次のコマンドを使用します。Get-AuthenticodeSignature "<file path>"Powershell テストを実行して、署名が機能するかどうかを確認します。 署名されたスクリプトに関する問題のデバッグ Windows で Powershell スクリプトを直接更新しないでください。ecc_agent_script_fileスクリプトは定期的に MID と同期されます。この同期ジョブは、ローカルスクリプトをインスタンスバージョンで上書きします。認証エラーが原因でスクリプトの実行に失敗した場合は、Powershell スクリプトがまだ署名であることを確認し、次のコマンドを使用して署名が有効であることを確認します: Get-AuthenticodeSignature "<file path>" Powershell スクリプトに署名が含まれていて、上記のコマンドを使用して検証に失敗した場合は、スクリプトを再署名する必要があります。