私は、SCCM 2012によってインストールされたパッケージに関する情報を抽出するための斬新な手段を完成させるために、インベントリされた「プログラムと機能」最後の部分は、前述のプロセスでインベントリされたレジストリ文字列からPACKAGEIDを抽出しています。 HKEY_LOCAL_MACHINE \ソフトウェア\マイクロソフト\ SMS \ Mobileクライアントの\ソフトウェア配布\実行履歴\システム\ LAB00003 \ ac80c725-7dc7-11e5-9bc8-:各文字列は、この(ターゲット "のPackageIDは" 太字で識別されるようになります。 000c292d4525長いRegKeyパスを8文字にする必要がある - LEFTまたはSUBSTRINGに無効な長さのパラメータが渡される
述べたように、私はこの任意の背後にある天才ではないが、私は私が次のエラー取得しています理由を理解したかった:渡された
メッセージ537、レベル16、状態3、行1 無効な長さのパラメータをLEFTまたはSUBSTRING機能に移動します。
From次のクエリ:
SELECT DataType0、 KeyPath0、 NAME0、 Value0、 ( SELECT SUBSTRING(KeyPath0、LEN(LEFT(KeyPath0、CHARINDEX( '\システム\'、KeyPath0)))+ 1、 1) ) - LEN(KeyPath0、LEN(KeyPath0) - CHARINDEX( '\'、KeyPath0)))私はdbo.v_GS_Registry_Values0ビューが実際にないことを確認しdbo.v_GS_Registry_Values0
FROM "パッケージID" としてSCCM_Ext.vex_GS_Registry_Values0からselect *を使ってregキーストリングを持っていますが、たくさんの検索にもかかわらず、私の単純なSQLマインドはクエリとLEN & CHARINDEXを使用することができません。
私はこのサイトの慈悲に完全に挑戦しています。なぜなら、これに対する解決策だけでなく、なぜこれが起こっているのか、またどのようにクエリが機能するのかをよりよく理解することができるということです。
追加情報がある場合は、私に教えてください。あなたはちょうどあなたがSQLは非常に複雑ですね\System\
後に次の文字列を取得しようとしている場合は
これは、最も外側の部分文字列に渡す2番目のパラメータが-76(150 - 96 - 131 - 1) –