セキュリティ上の問題としてフラグを付けることができるハードコードされた Sys ID の代替Issue ServiceNow は、ユーザーインスタンスで健全性スキャンを実行することがあります。セキュリティ上の問題としてフラグが付けられる方法の 1 つは、インスタンス内のオブジェクトからハードコードされた Sys ID がスクリプト内で使用される場合です。 この問題を回避するには、Sys ID を含むシステムプロパティを作成し、必要に応じて取得します。ReleaseすべてResolution次のスクリプトでは、「encodedquery」文字列にメーカー、場所、および会社の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);} この問題を解決するには、これらの Sys ID ごとにシステムプロパティレコードを作成し、gs.getProperty() を使用してこれらの値を取得します。この例では、システムプロパティ「acme_corp」、「loc_santa_ana」、「acme_ne」が次の値で作成されています。 acme_corp = b7e9e843c0a80169009a5a485bb2a2b5場所 = f90735e70a0a0b9100de208fbc63907d会社 = 31bea3d53790200044e0bfc8bcbe5dec 次に、これらの値を取得するようにスクリプトが変更され、エンコードされたクエリ文字列に組み込まれました。 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);} この情報は、コミュニティのチャック・トマシによる回答された質問にも記載されています。 https://community.servicenow.com/community?id=community_question&sys_id=0ed187a9db98dbc01dcaf3231f961934&view_source=searchResult これには、 getProperty メソッドを使用してsys_propertiesテーブルからアイテムを取得する問題を解決するために ServiceNow が提案した方法が含まれています。