diff --git a/Diagnose-InstalledPlugin.ps1 b/Diagnose-InstalledPlugin.ps1 new file mode 100644 index 0000000..7d3ee27 --- /dev/null +++ b/Diagnose-InstalledPlugin.ps1 @@ -0,0 +1 @@ +IyBEaWFnbm9zZS1JbnN0YWxsZWRQbHVnaW4ucHMxCiMgUnVuIHRoaXMgb24gdGhlIERpc2NvIHNlcnZlciB0byBjaGVjayBpZiB0aGUgaW5zdGFsbGVkIHBsdWdpbiBoYXMgVUlFeHRlbnNpb24gZmVhdHVyZXMKIwojIFVzYWdlOgojICAgLlxEaWFnbm9zZS1JbnN0YWxsZWRQbHVnaW4ucHMxCiMgICAuXERpYWdub3NlLUluc3RhbGxlZFBsdWdpbi5wczEgLURpc2NvUGF0aCAiRDpcRGlzY29cV2ViQXBwIgoKcGFyYW0oCiAgICBbc3RyaW5nXSREaXNjb1BhdGggPSAiQzpcUHJvZ3JhbSBGaWxlc1xEaXNjb1xXZWJBcHAiCikKCiRQbHVnaW5OYW1lID0gIkRpc2NvLlBsdWdpbnMuQURDb21wYXJlIgokcGx1Z2luRGlyID0gSm9pbi1QYXRoICREaXNjb1BhdGggIkFwcF9EYXRhXFBsdWdpbnNcJFBsdWdpbk5hbWUiCgpXcml0ZS1Ib3N0ICI9PT0gSW5zdGFsbGVkIFBsdWdpbiBEaWFnbm9zdGljcyA9PT0iIC1Gb3JlZ3JvdW5kQ29sb3IgQ3lhbgpXcml0ZS1Ib3N0ICJDaGVja2luZzogJHBsdWdpbkRpciIgLUZvcmVncm91bmRDb2xvciBHcmF5CgppZiAoLW5vdCAoVGVzdC1QYXRoICRwbHVnaW5EaXIpKSB7CiAgICBXcml0ZS1Ib3N0ICJgbiAgUGx1Z2luIGRpcmVjdG9yeSBOT1QgRk9VTkQgYXQgJHBsdWdpbkRpciIgLUZvcmVncm91bmRDb2xvciBSZWQKICAgIFdyaXRlLUhvc3QgIiAgVGhlIHBsdWdpbiBtYXkgbm90IGJlIGluc3RhbGxlZCwgb3IgRGlzY28gbWF5IHVzZSBhIGRpZmZlcmVudCBwYXRoLiIgLUZvcmVncm91bmRDb2xvciBZZWxsb3cKICAgIFdyaXRlLUhvc3QgIiAgVHJ5IHNlYXJjaGluZzogR2V0LUNoaWxkSXRlbSAnQzpcJyAtUmVjdXJzZSAtRmlsdGVyICckUGx1Z2luTmFtZScgLURpcmVjdG9yeSAtRXJyb3JBY3Rpb24gU2lsZW50bHlDb250aW51ZSIgLUZvcmVncm91bmRDb2xvciBZZWxsb3cKICAgIGV4aXQgMQp9CgpXcml0ZS1Ib3N0ICJgbi0tLSBJbnN0YWxsZWQgRmlsZXMgLS0tIiAtRm9yZWdyb3VuZENvbG9yIFllbGxvdwpHZXQtQ2hpbGRJdGVtICRwbHVnaW5EaXIgLUZpbGUgfCBGb3JFYWNoLU9iamVjdCB7CiAgICAkc2l6ZSA9IFttYXRoXTo6Um91bmQoJF8uTGVuZ3RoIC8gMUtCLCAxKQogICAgV3JpdGUtSG9zdCAiICAkKCRfLk5hbWUpICgkc2l6ZSBLQikgLSBNb2RpZmllZDogJCgkXy5MYXN0V3JpdGVUaW1lLlRvU3RyaW5nKCd5eXl5LU1NLWRkIEhIOm1tOnNzJykpIiAtRm9yZWdyb3VuZENvbG9yIEdyYXkKfQoKIyBDaGVjayBtYW5pZmVzdAokbWFuaWZlc3RQYXRoID0gSm9pbi1QYXRoICRwbHVnaW5EaXIgIm1hbmlmZXN0Lmpzb24iCmlmICgtbm90IChUZXN0LVBhdGggJG1hbmlmZXN0UGF0aCkpIHsKICAgIFdyaXRlLUhvc3QgImBuICBbQ1JJVElDQUxdIG1hbmlmZXN0Lmpzb24gTk9UIEZPVU5EIGluIGluc3RhbGxlZCBwbHVnaW4gZGlyZWN0b3J5ISIgLUZvcmVncm91bmRDb2xvciBSZWQKICAgIGV4aXQgMQp9CgpXcml0ZS1Ib3N0ICJgbi0tLSBJbnN0YWxsZWQgTWFuaWZlc3QgLS0tIiAtRm9yZWdyb3VuZENvbG9yIFllbGxvdwokbWFuaWZlc3RDb250ZW50ID0gR2V0LUNvbnRlbnQgJG1hbmlmZXN0UGF0aCAtUmF3CiRtYW5pZmVzdE9iaiA9ICRtYW5pZmVzdENvbnRlbnQgfCBDb252ZXJ0RnJvbS1Kc29uCgpXcml0ZS1Ib3N0ICIgIElkOiAgICAgICAkKCRtYW5pZmVzdE9iai5JZCkiIC1Gb3JlZ3JvdW5kQ29sb3IgR3JheQpXcml0ZS1Ib3N0ICIgIFZlcnNpb246ICAkKCRtYW5pZmVzdE9iai5WZXJzaW9uKSIgLUZvcmVncm91bmRDb2xvciBHcmF5CldyaXRlLUhvc3QgIiAgVHlwZU5hbWU6ICQoJG1hbmlmZXN0T2JqLlR5cGVOYW1lKSIgLUZvcmVncm91bmRDb2xvciBHcmF5CgppZiAoLW5vdCAkbWFuaWZlc3RPYmouRmVhdHVyZXMgLW9yICRtYW5pZmVzdE9iai5GZWF0dXJlcy5Db3VudCAtZXEgMCkgewogICAgV3JpdGUtSG9zdCAiYG4gIFtST09UIENBVVNFXSBGZWF0dXJlcyBhcnJheSBpcyBFTVBUWSBvciBNSVNTSU5HISIgLUZvcmVncm91bmRDb2xvciBSZWQKICAgIFdyaXRlLUhvc3QgIiAgVGhpcyBtZWFucyBEaXNjbyBoYXMgbm8gVUlFeHRlbnNpb24gZmVhdHVyZXMgdG8gbG9hZCBmb3IgdGhpcyBwbHVnaW4uIiAtRm9yZWdyb3VuZENvbG9yIFJlZAogICAgV3JpdGUtSG9zdCAiICBUaGUgcGx1Z2luIHdpbGwgaW5pdGlhbGl6ZSBidXQgVUlFeHRlbnNpb25zIHdpbGwgbmV2ZXIgcmVuZGVyLiIgLUZvcmVncm91bmRDb2xvciBSZWQKICAgIFdyaXRlLUhvc3QgImBuICBGSVg6IFJlLWJ1aWxkIHdpdGggdGhlIHVwZGF0ZWQgQnVpbGQtUGx1Z2luLnBzMSBhbmQgcmUtaW1wb3J0IHRoZSAuZGlzY29QbHVnaW4gZmlsZS4iIC1Gb3JlZ3JvdW5kQ29sb3IgWWVsbG93CiAgICBXcml0ZS1Ib3N0ICIgIFRoZSBuZXcgYnVpbGQgc2NyaXB0IGdlbmVyYXRlcyB0aGUgRmVhdHVyZXMgYXJyYXkgaW4gbWFuaWZlc3QuanNvbi4iIC1Gb3JlZ3JvdW5kQ29sb3IgWWVsbG93Cn0gZWxzZSB7CiAgICBXcml0ZS1Ib3N0ICIgIEZlYXR1cmVzOiAkKCRtYW5pZmVzdE9iai5GZWF0dXJlcy5Db3VudCkgZm91bmQiIC1Gb3JlZ3JvdW5kQ29sb3IgR3JlZW4KCiAgICAkZXhwZWN0ZWRDYXRlZ29yeSA9ICdEaXNjby5TZXJ2aWNlcy5QbHVnaW5zLkZlYXR1cmVzLlVJRXh0ZW5zaW9uLlVJRXh0ZW5zaW9uRmVhdHVyZWAxJwoKICAgIGZvcmVhY2ggKCRmZWF0dXJlIGluICRtYW5pZmVzdE9iai5GZWF0dXJlcykgewogICAgICAgIFdyaXRlLUhvc3QgImBuICBGZWF0dXJlOiAkKCRmZWF0dXJlLklkKSIgLUZvcmVncm91bmRDb2xvciBDeWFuCiAgICAgICAgV3JpdGUtSG9zdCAiICAgIFR5cGVOYW1lOiAgICAgICAgICQoJGZlYXR1cmUuVHlwZU5hbWUpIiAtRm9yZWdyb3VuZENvbG9yIEdyYXkKICAgICAgICBXcml0ZS1Ib3N0ICIgICAgQ2F0ZWdvcnlUeXBlTmFtZTogJCgkZmVhdHVyZS5DYXRlZ29yeVR5cGVOYW1lKSIgLUZvcmVncm91bmRDb2xvciBHcmF5CgogICAgICAgIGlmICgkZmVhdHVyZS5DYXRlZ29yeVR5cGVOYW1lIC1lcSAkZXhwZWN0ZWRDYXRlZ29yeSkgewogICAgICAgICAgICBXcml0ZS1Ib3N0ICIgICAgQ2F0ZWdvcnlUeXBlTmFtZTogVkFMSUQiIC1Gb3JlZ3JvdW5kQ29sb3IgR3JlZW4KICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBXcml0ZS1Ib3N0ICIgICAgQ2F0ZWdvcnlUeXBlTmFtZTogTUlTTUFUQ0ggKGV4cGVjdGVkOiAkZXhwZWN0ZWRDYXRlZ29yeSkiIC1Gb3JlZ3JvdW5kQ29sb3IgUmVkCiAgICAgICAgfQogICAgfQp9CgojIENoZWNrIERpc2NvIGxvZ3MgZm9yIHBsdWdpbiBpbml0aWFsaXphdGlvbgpXcml0ZS1Ib3N0ICJgbi0tLSBEaXNjbyBMb2cgQ2hlY2sgLS0tIiAtRm9yZWdyb3VuZENvbG9yIFllbGxvdwokbG9nRGlyID0gSm9pbi1QYXRoICREaXNjb1BhdGggIkFwcF9EYXRhXExvZ3MiCmlmIChUZXN0LVBhdGggJGxvZ0RpcikgewogICAgJHJlY2VudExvZyA9IEdldC1DaGlsZEl0ZW0gJGxvZ0RpciAtRmlsdGVyICIqLmxvZyIgLUVycm9yQWN0aW9uIFNpbGVudGx5Q29udGludWUgfAogICAgICAgIFNvcnQtT2JqZWN0IExhc3RXcml0ZVRpbWUgLURlc2NlbmRpbmcgfCBTZWxlY3QtT2JqZWN0IC1GaXJzdCAxCgogICAgaWYgKCRyZWNlbnRMb2cpIHsKICAgICAgICBXcml0ZS1Ib3N0ICIgIE1vc3QgcmVjZW50IGxvZzogJCgkcmVjZW50TG9nLk5hbWUpICgkKCRyZWNlbnRMb2cuTGFzdFdyaXRlVGltZSkpIiAtRm9yZWdyb3VuZENvbG9yIEdyYXkKICAgICAgICAkcGx1Z2luTGluZXMgPSBTZWxlY3QtU3RyaW5nIC1QYXRoICRyZWNlbnRMb2cuRnVsbE5hbWUgLVBhdHRlcm4gIkFEQ29tcGFyZXwkUGx1Z2luTmFtZSIgLUVycm9yQWN0aW9uIFNpbGVudGx5Q29udGludWUKICAgICAgICBpZiAoJHBsdWdpbkxpbmVzKSB7CiAgICAgICAgICAgIFdyaXRlLUhvc3QgIiAgUGx1Z2luLXJlbGF0ZWQgbG9nIGVudHJpZXM6IiAtRm9yZWdyb3VuZENvbG9yIEdyYXkKICAgICAgICAgICAgJHBsdWdpbkxpbmVzIHwgU2VsZWN0LU9iamVjdCAtTGFzdCAyMCB8IEZvckVhY2gtT2JqZWN0IHsKICAgICAgICAgICAgICAgICRsaW5lID0gJF8uTGluZS5UcmltKCkKICAgICAgICAgICAgICAgIGlmICgkbGluZSAtbWF0Y2ggJ2Vycm9yfGV4Y2VwdGlvbnxmYWlsJykgewogICAgICAgICAgICAgICAgICAgIFdyaXRlLUhvc3QgIiAgICAkbGluZSIgLUZvcmVncm91bmRDb2xvciBSZWQKICAgICAgICAgICAgICAgIH0gZWxzZWlmICgkbGluZSAtbWF0Y2ggJ3dhcm4nKSB7CiAgICAgICAgICAgICAgICAgICAgV3JpdGUtSG9zdCAiICAgICRsaW5lIiAtRm9yZWdyb3VuZENvbG9yIFllbGxvdwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBXcml0ZS1Ib3N0ICIgICAgJGxpbmUiIC1Gb3JlZ3JvdW5kQ29sb3IgRGFya0dyYXkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIFdyaXRlLUhvc3QgIiAgTm8gcGx1Z2luLXJlbGF0ZWQgZW50cmllcyBmb3VuZCBpbiBsYXRlc3QgbG9nLiIgLUZvcmVncm91bmRDb2xvciBZZWxsb3cKICAgICAgICB9CiAgICB9IGVsc2UgewogICAgICAgIFdyaXRlLUhvc3QgIiAgTm8gbG9nIGZpbGVzIGZvdW5kIGluICRsb2dEaXIiIC1Gb3JlZ3JvdW5kQ29sb3IgWWVsbG93CiAgICB9Cn0gZWxzZSB7CiAgICBXcml0ZS1Ib3N0ICIgIExvZyBkaXJlY3Rvcnkgbm90IGZvdW5kIGF0ICRsb2dEaXIiIC1Gb3JlZ3JvdW5kQ29sb3IgWWVsbG93Cn0KCiMgRHVtcCByYXcgbWFuaWZlc3QKV3JpdGUtSG9zdCAiYG4tLS0gUmF3IEluc3RhbGxlZCBtYW5pZmVzdC5qc29uIC0tLSIgLUZvcmVncm91bmRDb2xvciBEYXJrR3JheQokbWFuaWZlc3RDb250ZW50IC1zcGxpdCAiYG4iIHwgRm9yRWFjaC1PYmplY3QgewogICAgV3JpdGUtSG9zdCAiICAkXyIgLUZvcmVncm91bmRDb2xvciBEYXJrR3JheQp9CldyaXRlLUhvc3QgIi0tLSBFbmQgLS0tIiAtRm9yZWdyb3VuZENvbG9yIERhcmtHcmF5Cg== \ No newline at end of file