ヘルススキャンのセキュリティフラグを解消するために、スクリプト内のハードコードされた sys_id を置き換える方法Issue <!-- /*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: ; } } ServiceNow はインスタンスに対してヘルススキャンを実行し、セキュリティ上の問題を検出します。 スクリプト内にハードコードされた sys_id が含まれている場合、ヘルススキャンでセキュリティ上の問題としてフラグ付けされます。 この問題を回避するには、sys_id をシステムプロパティとして保存し、スクリプト内では gs.getProperty() を使用して取得します。 Release<!-- /*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: ; } } サポート対象のすべてのリリース Resolution<!-- /*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: ; } } ステップ 1: スクリプト内のハードコードされた sys_id を特定する。 次のスクリプトでは、manufacturer、location、および company の sys_id がエンコードクエリ文字列内に直接ハードコードされています。このコードは、ヘルススキャン中にセキュリティ問題としてフラグが付けられます。 var ciName = new GlideRecord('cmdb_ci');var encodedquery = 'sys_class_name=cmdb_ci_computer^manufacturer=b7e9e843c0a80169009a5a485bb2a2b5^location=f90735e70a0a0b9100de208fbc63907d^company=31bea3d53790200044e0bfc8bcbe5dec';ciName.addEncodedQuery(encodedquery);ciName.query();while (ciName.next()) {gs.print('cmdb_ci.name ' + ciName.name);} ステップ 2: sys_id ごとにシステムプロパティを作成する この問題を解決するには、スクリプト内に含まれる各 sys_id に対応するシステムプロパティを作成し、gs.getProperty() を使用して値を取得します。この例では、システムプロパティ「acme_corp」、「loc_santa_ana」、「acme_ne」が次の値で作成されています。 プロパティ名値acme_corpb7e9e843c0a80169009a5a485bb2a2b5loc_santa_anaf90735e70a0a0b9100de208fbc63907dacme_ne31bea3d53790200044e0bfc8bcbe5dec ステップ 3: スクリプトを gs.getProperty() を使用するよう更新する 次に、これらの値を取得するようにスクリプトが変更され、エンコードされたクエリ文字列に組み込まれました。 var acme_corp_SysID = gs.getProperty("acme_corp");var location_SysID = gs.getProperty("loc_santa_ana");var company_SysID = gs.getProperty("acme_ne");var ciName = new GlideRecord('cmdb_ci');var encodedquery = 'sys_class_name=cmdb_ci_computer^manufacturer=' + acme_corp_SysID.toString() +'^location=' + location_SysID.toString() + '^company=' + company_SysID.toString();ciName.addEncodedQuery(encodedquery);ciName.query();while (ciName.next()) {gs.print('cmdb_ci.name ' + ciName.name);} 関連情報については、ServiceNow Community の「retrieving sys_ids from sys_properties using getProperty」を参照してください。 https://community.servicenow.com/community?id=community_question&sys_id=0ed187a9db98dbc01dcaf3231f961934&view_source=searchResult このリンクでは、getProperty() を使用して sys_properties から sys_id を取得する方法を確認できます。