@microsoft/windows-admin-center-sdk 4.123.0 → 4.167.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (103) hide show
  1. package/angular/assets/strings/cs-CZ/strings.json +1 -1
  2. package/angular/assets/strings/de-DE/strings.json +1 -1
  3. package/angular/assets/strings/es-ES/strings.json +1 -1
  4. package/angular/assets/strings/fr-FR/strings.json +1 -1
  5. package/angular/assets/strings/hu-HU/strings.json +1 -1
  6. package/angular/assets/strings/id-ID/strings.json +1 -1
  7. package/angular/assets/strings/it-IT/strings.json +1 -1
  8. package/angular/assets/strings/ja-JP/strings.json +1 -1
  9. package/angular/assets/strings/ko-KR/strings.json +1 -1
  10. package/angular/assets/strings/nl-NL/strings.json +1 -1
  11. package/angular/assets/strings/pl-PL/strings.json +1 -1
  12. package/angular/assets/strings/pt-BR/strings.json +1 -1
  13. package/angular/assets/strings/pt-PT/strings.json +1 -1
  14. package/angular/assets/strings/ru-RU/strings.json +1 -1
  15. package/angular/assets/strings/strings.json +1 -1
  16. package/angular/assets/strings/sv-SE/strings.json +1 -1
  17. package/angular/assets/strings/tr-TR/strings.json +1 -1
  18. package/angular/assets/strings/zh-CN/strings.json +1 -1
  19. package/angular/assets/strings/zh-TW/strings.json +1 -1
  20. package/angular/esm2020/src/controls/actions/containers/action-container.component.mjs +2 -3
  21. package/angular/esm2020/src/controls/alert-bar/alert-bar.component.mjs +2 -2
  22. package/angular/esm2020/src/controls/breadcrumb-header/breadcrumb-header.component.mjs +1 -1
  23. package/angular/esm2020/src/controls/common/base.component.mjs +1 -1
  24. package/angular/esm2020/src/controls/common/spacer-base.component.mjs +25 -1
  25. package/angular/esm2020/src/controls/context-menu/context-menu.component.mjs +2 -3
  26. package/angular/esm2020/src/controls/data-table/data-table.component.mjs +7 -7
  27. package/angular/esm2020/src/controls/dialog/base-dialog.component.mjs +2 -4
  28. package/angular/esm2020/src/controls/dialog/confirmation-list-dialog/confirmation-list-dialog.component.mjs +2 -2
  29. package/angular/esm2020/src/controls/dropdown/dropdown.component.mjs +1 -4
  30. package/angular/esm2020/src/controls/form/form-field/clock/clock-form-field.component.mjs +10 -7
  31. package/angular/esm2020/src/controls/form/form-field/form-field.component.mjs +1 -1
  32. package/angular/esm2020/src/controls/form/form-field/number/number-form-field.component.mjs +22 -4
  33. package/angular/esm2020/src/controls/form/form-field/radio-group/classic/radio-group-form-field.component.mjs +5 -5
  34. package/angular/esm2020/src/controls/icon/icon-text/icon-text.component.mjs +6 -6
  35. package/angular/esm2020/src/controls/icon/layered-icon/status/status-icon.component.mjs +1 -1
  36. package/angular/esm2020/src/controls/layout/editable-layout.component.mjs +2 -3
  37. package/angular/esm2020/src/controls/node-credentials-form/node-credentials-form.component.mjs +2 -2
  38. package/angular/esm2020/src/controls/property-grid/property-grid.component.mjs +33 -13
  39. package/angular/esm2020/src/controls/schema/tabbed-form-loader.component.mjs +2 -2
  40. package/angular/esm2020/src/controls/settings/common-settings/common-settings.component.mjs +5 -5
  41. package/angular/esm2020/src/controls/settings/settings-form.directive.mjs +3 -7
  42. package/angular/esm2020/src/controls/settings/settings-form.service.mjs +2 -4
  43. package/angular/esm2020/src/controls/snap-in-extension/snap-in-extension.component.mjs +1 -1
  44. package/angular/esm2020/src/controls/split-view/split-view.component.mjs +2 -2
  45. package/angular/esm2020/src/directives/router/router-link.directive.mjs +2 -2
  46. package/angular/esm2020/src/directives/svg/svg.directive.mjs +2 -3
  47. package/angular/esm2020/src/generated/strings.mjs +1 -1
  48. package/angular/esm2020/src/service/navigation.service.mjs +3 -8
  49. package/angular/esm2020/src/service/user-alive.service.mjs +2 -4
  50. package/angular/fesm2015/microsoft-windows-admin-center-sdk-angular.mjs +126 -72
  51. package/angular/fesm2015/microsoft-windows-admin-center-sdk-angular.mjs.map +1 -1
  52. package/angular/fesm2020/microsoft-windows-admin-center-sdk-angular.mjs +115 -70
  53. package/angular/fesm2020/microsoft-windows-admin-center-sdk-angular.mjs.map +1 -1
  54. package/angular/package.json +1 -1
  55. package/angular/src/controls/common/spacer-base.component.d.ts +11 -2
  56. package/angular/src/controls/form/form-field/number/number-form-field.component.d.ts +8 -0
  57. package/angular/src/controls/icon/icon-text/icon-text.component.d.ts +1 -1
  58. package/angular/src/controls/property-grid/property-grid.component.d.ts +2 -0
  59. package/angular/src/directives/svg/svg.directive.d.ts +1 -2
  60. package/angular/src/generated/strings.d.ts +12 -0
  61. package/core/azure/azure-constants.d.ts +2 -2
  62. package/core/azure/azure-constants.d.ts.map +1 -1
  63. package/core/azure/azure-constants.js +10 -3
  64. package/core/azure/azure-constants.js.map +1 -1
  65. package/core/data/gateway-url-translator.d.ts +1 -0
  66. package/core/data/gateway-url-translator.d.ts.map +1 -1
  67. package/core/data/gateway-url-translator.js +21 -6
  68. package/core/data/gateway-url-translator.js.map +1 -1
  69. package/core/data/node-connection.d.ts.map +1 -1
  70. package/core/data/node-connection.js +0 -2
  71. package/core/data/node-connection.js.map +1 -1
  72. package/core/generated/powershell-scripts.d.ts.map +1 -1
  73. package/core/generated/powershell-scripts.js +1 -1
  74. package/core/generated/powershell-scripts.js.map +1 -1
  75. package/core/resources/scripts/public/inventory/Get-ServerInventory.ps1 +30 -8
  76. package/{microsoft-windows-admin-center-sdk-4.123.0.tgz → microsoft-windows-admin-center-sdk-4.167.0.tgz} +0 -0
  77. package/package.json +9 -7
  78. package/styles/css/main-v2.css +1 -1
  79. package/tools/code-formatter/.eslintrc.base.json +1 -0
  80. package/tools/code-formatter/lint.d.ts.map +1 -1
  81. package/tools/code-formatter/lint.js +7 -1
  82. package/tools/code-formatter/lint.js.map +1 -1
  83. package/tools/code-formatter/utilities.d.ts +7 -0
  84. package/tools/code-formatter/utilities.d.ts.map +1 -0
  85. package/tools/code-formatter/utilities.js +79 -0
  86. package/tools/code-formatter/utilities.js.map +1 -0
  87. package/tools/gulp-update-notes-resource/index.d.ts.map +1 -1
  88. package/tools/gulp-update-notes-resource/index.js +4 -4
  89. package/tools/gulp-update-notes-resource/index.js.map +1 -1
  90. package/tools/module-template/.eslintrc.json +3 -0
  91. package/tools/module-template/gulpfile.ts/common/utilities.ts +1 -0
  92. package/tools/wac-cli/src/angular15/configs/eslint-auto-fix-config.d.ts +9 -0
  93. package/tools/wac-cli/src/angular15/configs/eslint-auto-fix-config.d.ts.map +1 -0
  94. package/tools/wac-cli/src/angular15/configs/eslint-auto-fix-config.js +16 -0
  95. package/tools/wac-cli/src/angular15/configs/eslint-auto-fix-config.js.map +1 -0
  96. package/tools/wac-cli/src/angular15/main.d.ts +19 -3
  97. package/tools/wac-cli/src/angular15/main.d.ts.map +1 -1
  98. package/tools/wac-cli/src/angular15/main.js +41 -7
  99. package/tools/wac-cli/src/angular15/main.js.map +1 -1
  100. package/tools/wac-cli/src/angular15/upgrader/eslint-auto-fix-upgrader.d.ts +18 -0
  101. package/tools/wac-cli/src/angular15/upgrader/eslint-auto-fix-upgrader.d.ts.map +1 -0
  102. package/tools/wac-cli/src/angular15/upgrader/eslint-auto-fix-upgrader.js +49 -0
  103. package/tools/wac-cli/src/angular15/upgrader/eslint-auto-fix-upgrader.js.map +1 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../packages/core/data/node-connection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,EAAE,EAAE,MAAM,MAAM,CAAC;AACtC,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAEnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAGpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAG5B;;GAEG;AACH,MAAM,CAAN,IAAY,aAoBX;AApBD,WAAY,aAAa;IACrB;;OAEG;IACH,qDAAM,CAAA;IAEN;;OAEG;IACH,yDAAQ,CAAA;IAER;;OAEG;IACH,qDAAM,CAAA;IAEN;;OAEG;IACH,mDAAK,CAAA;AACT,CAAC,EApBW,aAAa,KAAb,aAAa,QAoBxB;AAmGD;;GAEG;AACH,MAAM,OAAO,cAAc;IAOH;IAAoC;IANxD;;;;;OAKG;IACH,YAAoB,OAA0B,EAAU,oBAA0C;QAA9E,YAAO,GAAP,OAAO,CAAmB;QAAU,yBAAoB,GAApB,oBAAoB,CAAsB;IAAI,CAAC;IAsBhG,IAAI,CAAC,aAAsC,EAAE,QAAgB,EAAE,IAAU,EAAE,OAAqB;QACnG,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;QAC3E,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,IAAiB,EAAE,EAAE,QAAQ,CAAC,CAAC;QACvE,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;IAoBM,GAAG,CAAC,aAAsC,EAAE,QAAgB,EAAE,OAAqB;QACtF,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;QAC3E,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,IAAiB,EAAE,EAAE,QAAQ,CAAC,CAAC;QACvE,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;IAsBM,GAAG,CAAC,aAAsC,EAAE,QAAgB,EAAE,IAAa,EAAE,OAAqB;QACrG,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;QAC3E,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,IAAiB,EAAE,EAAE,QAAQ,CAAC,CAAC;QACvE,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACxD,CAAC;IAsBM,KAAK,CAAC,aAAsC,EAAE,QAAgB,EAAE,IAAa,EAAE,OAAqB;QACvG,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;QAC3E,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,IAAiB,EAAE,EAAE,QAAQ,CAAC,CAAC;QACvE,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;IAsBM,MAAM,CAAC,aAAsC,EAAE,QAAgB,EAAE,IAAa,EAAE,OAAqB;QACxG,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;QAC3E,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,IAAiB,EAAE,EAAE,QAAQ,CAAC,CAAC;QACvE,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3D,CAAC;IAoBM,WAAW,CAAC,aAAsC,EAAE,QAAgB,EAAE,OAAqB;QAC9F,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;QAC3E,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;QACxC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;YACpB,2EAA2E;YAC3E,IAAI,CAAC,oBAAoB,CAAC,6BAA6B,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;SAC9E;aAAM;YACH,IAAI,CAAC,oBAAoB,CAAC,6BAA6B,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;SACjG;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QACpE,IAAI,OAAO,CAAC,kBAAkB,EAAE;YAC5B,6EAA6E;YACvE,OAAQ,CAAC,OAAO,CAAC,eAAe,CAAC,mBAAmB,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC;SAC5F;aAAM,IAAI,QAAQ,EAAE;YACX,OAAQ,CAAC,OAAO,CAAC,eAAe,CAAC,mBAAmB,CAAC,GAAG,QAAQ,CAAC;SAC1E;QAED,IAAI,OAAO,CAAC,uBAAuB,KAAK,SAAS,EAAE;YACzC,OAAQ,CAAC,OAAO,CAAC,eAAe,CAAC,wBAAwB,CAAC,GAAG,OAAO,CAAC,uBAAuB,CAAC;SACtG;QAED,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAClE,CAAC;IAED;;;;OAIG;IACI,cAAc,CAAC,QAAgB,EAAE,QAAgB;QACpD,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACjE,CAAC;IAED;;;OAGG;IACI,cAAc,CAAC,QAAgB;QAClC,OAAO,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC9D,CAAC;IAED;;;;;;;;OAQG;IACI,aAAa,CAAC,WAAmB,EAAE,OAAe,EAAE,QAAgB,EAAE,QAAgB;QACzF,mCAAmC;QACnC,uCAAuC;QACvC,uCAAuC;QACvC,QAAQ,GAAG,QAAQ,IAAI,EAAE,CAAC;QAC1B,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;YAClD,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;gBAC3B,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;aAC7B;SACJ;QAED,4EAA4E;QAC5E,OAAO,aAAa,WAAW,IAAI,OAAO,UAAU,QAAQ,GAAG,QAAQ,EAAE,CAAC;IAC9E,CAAC;IAED;;;;;;;OAOG;IACK,iBAAiB,CAAC,OAAoB,EAAE,QAAgB;QAC5D,wEAAwE;QACxE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QAC1C,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;YACvC,mDAAmD;YACnD,OAAO,CAAC,aAAa,GAAG,CAAC,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;oBAC1D,SAAS,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,oBAAoB,CAAC,IAAI,EAAE,KAAK,CAAC;oBACvF,MAAM,EAAE,CAAC,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,EAAE,CACrC,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,QAAQ,CAAC;iBAC1F,CAAC,CAAC,CAAC;SACP;QAED,MAAM,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC;QAEzC,qEAAqE;QACrE,OAAO,CAAC,UAAU,GAAG,cAAc,CAAC,EAAE;YAClC,IAAI,UAAU,GAAqB,IAAI,CAAC;YACxC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;gBACpB,0EAA0E;gBAC1E,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC,WAAW;qBAC7C,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CACX,IAAI,CAAC,oBAAoB,CAAC,6BAA6B,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;aAC/F;iBAAM;gBACH,UAAU,GAAG,EAAE,CACX,IAAI,CAAC,oBAAoB,CAAC,6BAA6B,CAAC,cAAc,EAAE,QAAQ,EAAE,OAAO,CAAC,SAAS,CAAC,CACvG,CAAC;aACL;YAED,IAAI,aAAa,EAAE;gBACf,OAAO,aAAa,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;aAClE;YAED,OAAO,UAAU,CAAC;QACtB,CAAC,CAAC;QAEF,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;QACxC,IAAI,OAAO,CAAC,QAAQ,KAAK,IAAI,IAAI,OAAO,CAAC,QAAQ,KAAK,KAAK,EAAE;YACnD,OAAQ,CAAC,OAAO,CAAC,eAAe,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;SAC3F;QAED,IAAI,OAAO,CAAC,YAAY,KAAK,IAAI,IAAI,OAAO,CAAC,YAAY,KAAK,KAAK,EAAE;YAC3D,OAAQ,CAAC,OAAO,CAAC,eAAe,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;SACnG;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QACpE,IAAI,OAAO,CAAC,kBAAkB,EAAE;YAC5B,6EAA6E;YACvE,OAAQ,CAAC,OAAO,CAAC,eAAe,CAAC,mBAAmB,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC;SAC5F;aAAM,IAAI,QAAQ,EAAE;YACX,OAAQ,CAAC,OAAO,CAAC,eAAe,CAAC,mBAAmB,CAAC,GAAG,QAAQ,CAAC;SAC1E;QAED,IAAI,OAAO,CAAC,uBAAuB,KAAK,SAAS,EAAE;YACzC,OAAQ,CAAC,OAAO,CAAC,eAAe,CAAC,wBAAwB,CAAC,GAAG,OAAO,CAAC,uBAAuB,CAAC;SACtG;QAED,OAAO,OAAO,CAAC;IACnB,CAAC;IAED;;;;;OAKG;IACK,UAAU,CAAC,aAAsC,EAAE,QAAgB;QACvE,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE;YACnC,MAAM,QAAQ,GAAW,aAAa,CAAC;YACvC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC;SAC/E;QAED,MAAM,OAAO,GAAmB,aAAa,CAAC;QAC9C,OAAO;YACH,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC;SAC3G,CAAC;IACN,CAAC;IAED;;;;;OAKG;IACK,gBAAgB,CAAC,QAAgB,EAAE,WAAmB;QAC1D,IAAI,iBAAiB,CAAC,aAAa,EAAE;YACjC,MAAM,WAAW,GAAG,oBAAoB,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YAChE,IAAI,WAAW,EAAE;gBACb,OAAO,GAAG,WAAW,CAAC,QAAQ,UAAU,QAAQ,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;aAC5E;YAED,eAAe,CAAC,WAAW,CAAC,IAAI,EAAE;gBAC9B,OAAO,EAAE;oBACL,OAAO,EAAE,wCAAwC,CAAC,MAAM,CAAC,WAAW,CAAC;oBACrE,MAAM,EAAE,yBAAyB;iBACpC;aACJ,EACG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;YAEvB,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,EAAW,CAAC,YAAY,CAAC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,YAAY;iBAC7G,MAAM,CAAC,WAAW,CAAC,CACvB,CAAC;SACL;QAED,mCAAmC;QACnC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;YAC9B,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;SACnC;QAED,WAAW,GAAG,GAAG,CAAC,wBAAwB,CAAC,WAAW,CAAC,CAAC;QACxD,OAAO,UAAU,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC9C,CAAC;CACJ","file":"node-connection.js","sourcesContent":["import { Observable, of } from 'rxjs';\r\nimport { map, mergeMap } from 'rxjs/operators';\r\nimport { SmeWebTelemetry } from '../diagnostics/sme-web-telemetry';\r\nimport { Strings } from '../generated/strings';\r\nimport { EnvironmentModule } from '../manifest/environment-modules';\r\nimport { AuthorizationManager, AuthorizationToken } from '../security/authorization-manager';\r\nimport { GatewayConnection, GatewayRequest } from './gateway-connection';\r\nimport { GatewayUrlTranslator } from './gateway-url-translator';\r\nimport { headerConstants } from './http-constants';\r\nimport { Net } from './net';\r\nimport { PowerShellCommandWithoutState } from './powershell';\r\n\r\n/**\r\n * Node Cim output type.\r\n */\r\nexport enum NodeCimOutput {\r\n /**\r\n * Single instance.\r\n */\r\n Single,\r\n\r\n /**\r\n * Multiple instances.\r\n */\r\n Multiple,\r\n\r\n /**\r\n * Invoke result.\r\n */\r\n Result,\r\n\r\n /**\r\n * WQL query result.\r\n */\r\n Query\r\n}\r\n\r\n/**\r\n * Node Request options that we use to extend the GatewayRequest interface\r\n */\r\nexport interface NodeRequestOptions {\r\n /**\r\n * Indicates that no auth failure handling should take place, however, any auth headers for this node will still be added.\r\n */\r\n noAuth?: boolean;\r\n\r\n /**\r\n * Provides an alternative token to use for just this request\r\n */\r\n authToken?: AuthorizationToken;\r\n\r\n /**\r\n * Authentication mechanism.\r\n */\r\n authenticationMechanism?: 'Credssp' | 'NotSpecified';\r\n\r\n /**\r\n * Indicates if command should run in local runspace instead of remote runspace.\r\n */\r\n useInProcRunspace?: boolean;\r\n\r\n /**\r\n * Indicates that audit logging for this request should be made. Default is false.\r\n */\r\n logAudit?: boolean;\r\n\r\n /**\r\n * Indicates that telemetry logging for this request should be made. Default is false.\r\n * SmeWebTelemetry will not be sent for polling PS events.\r\n */\r\n logTelemetry?: boolean;\r\n\r\n /**\r\n * Indicates targeting to specific PowerShell endpoint.\r\n * The endpoint data is inserted to the endpoint header.\r\n */\r\n powerShellEndpoint?: string;\r\n\r\n /**\r\n * The PowerShell command resource on JEA PowerShell endpoint.\r\n * The command object is used for auto fallback time on a CIM query.\r\n * (Only CIM query uses this property)\r\n */\r\n powerShell?: PowerShellCommandWithoutState;\r\n\r\n /**\r\n * The parameters for instance query powershell alternative.\r\n * (Only CIM query uses this property)\r\n */\r\n powerShellParameters?: any;\r\n\r\n /**\r\n * The PowerShell context to replace CIM call.\r\n * (Only CIM query uses this property)\r\n */\r\n powerShellContext?: {\r\n /**\r\n * CIM output data type.\r\n */\r\n cimOutput: NodeCimOutput;\r\n\r\n /**\r\n * CIM input parameters.\r\n */\r\n parameters?: any;\r\n };\r\n}\r\n\r\n/**\r\n * Extension of GatewayRequest interface for calling the Gateway Node API\r\n */\r\nexport interface NodeRequest extends GatewayRequest, NodeRequestOptions {\r\n}\r\n\r\n/**\r\n * Service request interface for gateway version 2.\r\n */\r\nexport interface ServiceRequest {\r\n /**\r\n * The service name such as \"WinRest\", \"WinStream\", \"LinuxBase\" and so on.\r\n */\r\n serviceName: string;\r\n\r\n /**\r\n * The controller name such as \"PowerShell\", \"Cim\", \"Ssh\" and so on.\r\n */\r\n controllerName: string;\r\n\r\n /**\r\n * The node name.\r\n */\r\n nodeName: string;\r\n}\r\n\r\n/**\r\n * The Node Connection class for creating requests and calling the Gateway's Node API\r\n */\r\nexport class NodeConnection {\r\n /**\r\n * Initializes a new instance of the GatewayService class.\r\n *\r\n * @param gateway the gateway Connection\r\n * @param authorizationManager the authorization manager.\r\n */\r\n constructor(private gateway: GatewayConnection, private authorizationManager: AuthorizationManager) { }\r\n\r\n /**\r\n * Makes a POST call to the gateway node api\r\n *\r\n * @param serviceRequest the object of service request.\r\n * @param remained the remained Url after 'nodes/<nodeName>'.\r\n * @param body the body string JSON.stringfy'ed\r\n * @param request the node request object.\r\n * @remarks this API is for gateway version 2. It doesn't work on gateway version 1.\r\n */\r\n public post(serviceRequest: ServiceRequest, remained: string, body?: any, request?: NodeRequest): Observable<any>;\r\n /**\r\n * @deprecated This API is for version 1 gateway server, use new API for version 2 gateway.\r\n * Makes a POST call to the gateway node api\r\n *\r\n * @param nodeName the name of the node to call the API for\r\n * @param relativeUrl the relative Url after \"/api/nodes/<nodeName>\"\r\n * @param body the body string JSON.stringfy'ed\r\n * @param request the node request object.\r\n */\r\n public post(nodeName: string, relativeUrl: string, body?: any, request?: NodeRequest): Observable<any>;\r\n public post(nodeOrService: string | ServiceRequest, remained: string, body?: any, request?: NodeRequest): Observable<any> {\r\n const { nodeName, relativeUrl } = this.getNodeUrl(nodeOrService, remained);\r\n request = this.createNodeRequest(request || <NodeRequest>{}, nodeName);\r\n return this.gateway.post(relativeUrl, body, request);\r\n }\r\n\r\n /**\r\n * Makes a GET call to the gateway node api\r\n *\r\n * @param serviceRequest the object of service request.\r\n * @param relativeUrl the relative Url after \"/api/nodes/<nodeName>\"\r\n * @param request the node request object.\r\n * @remarks this API is for gateway version 2. It doesn't work on gateway version 1.\r\n */\r\n public get(serviceRequest: ServiceRequest, relativeUrl: string, request?: NodeRequest): Observable<any>;\r\n /**\r\n * @deprecated This API is for version 1 gateway server, use new API for version 2 gateway.\r\n * Makes a GET call to the gateway node api\r\n *\r\n * @param nodeName the name of the node to call the API for\r\n * @param relativeUrl the relative Url after \"/api/nodes/<nodeName>\"\r\n * @param request the node request object.\r\n */\r\n public get(nodeName: string, relativeUrl: string, request?: NodeRequest): Observable<any>;\r\n public get(nodeOrService: string | ServiceRequest, remained: string, request?: NodeRequest): Observable<any> {\r\n const { nodeName, relativeUrl } = this.getNodeUrl(nodeOrService, remained);\r\n request = this.createNodeRequest(request || <NodeRequest>{}, nodeName);\r\n return this.gateway.get(relativeUrl, request);\r\n }\r\n\r\n /**\r\n * Makes a PUT call to the gateway node api\r\n *\r\n * @param serviceRequest the object of service request.\r\n * @param relativeUrl the relative Url after \"/api/nodes/<nodeName>\"\r\n * @param body the body string JSON.stringfy'ed\r\n * @param request the node request object.\r\n * @remarks this API is for gateway version 2. It doesn't work on gateway version 1.\r\n */\r\n public put(serviceRequest: ServiceRequest, relativeUrl: string, body?: string, request?: NodeRequest): Observable<any>;\r\n /**\r\n * @deprecated This API is for version 1 gateway server, use new API for version 2 gateway.\r\n * Makes a PUT call to the gateway node api\r\n *\r\n * @param nodeName the name of the node to call the API for\r\n * @param relativeUrl the relative Url after \"/api/nodes/<nodeName>\"\r\n * @param body the body string JSON.stringfy'ed\r\n * @param request the node request object.\r\n */\r\n public put(nodeName: string, relativeUrl: string, body?: string, request?: NodeRequest): Observable<any>;\r\n public put(nodeOrService: string | ServiceRequest, remained: string, body?: string, request?: NodeRequest): Observable<any> {\r\n const { nodeName, relativeUrl } = this.getNodeUrl(nodeOrService, remained);\r\n request = this.createNodeRequest(request || <NodeRequest>{}, nodeName);\r\n return this.gateway.put(relativeUrl, body, request);\r\n }\r\n\r\n /**\r\n * Makes a PATCH call to the gateway node api\r\n *\r\n * @param serviceRequest the object of service request.\r\n * @param relativeUrl the relative Url after \"/api/nodes/<nodeName>\"\r\n * @param body the body string JSON.stringfy'ed\r\n * @param request the node request object.\r\n * @remarks this API is for gateway version 2. It doesn't work on gateway version 1.\r\n */\r\n public patch(serviceRequest: ServiceRequest, relativeUrl: string, body?: string, request?: NodeRequest): Observable<any>;\r\n /**\r\n * @deprecated This API is for version 1 gateway server, use new API for version 2 gateway.\r\n * Makes a PATCH call to the gateway node api\r\n *\r\n * @param nodeName the name of the node to call the API for\r\n * @param relativeUrl the relative Url after \"/api/nodes/<nodeName>\"\r\n * @param body the body string JSON.stringfy'ed\r\n * @param request the node request object.\r\n */\r\n public patch(nodeName: string, relativeUrl: string, body?: string, request?: NodeRequest): Observable<any>;\r\n public patch(nodeOrService: string | ServiceRequest, remained: string, body?: string, request?: NodeRequest): Observable<any> {\r\n const { nodeName, relativeUrl } = this.getNodeUrl(nodeOrService, remained);\r\n request = this.createNodeRequest(request || <NodeRequest>{}, nodeName);\r\n return this.gateway.patch(relativeUrl, body, request);\r\n }\r\n\r\n /**\r\n * Makes a DELETE call to the gateway node api\r\n *\r\n * @param serviceRequest the object of service request.\r\n * @param relativeUrl the relative Url after \"/api/nodes/<nodeName>\"\r\n * @param body the body string JSON.stringfy'ed\r\n * @param request the node request object.\r\n * @remarks this API is for gateway version 2. It doesn't work on gateway version 1.\r\n */\r\n public delete(serviceRequest: ServiceRequest, relativeUrl: string, body?: string, request?: NodeRequest): Observable<any>;\r\n /**\r\n * @deprecated This API is for version 1 gateway server, use new API for version 2 gateway.\r\n * Makes a DELETE call to the gateway node api\r\n *\r\n * @param nodeName the name of the node to call the API for\r\n * @param relativeUrl the relative Url after \"/api/nodes/<nodeName>\"\r\n * @param body the body string JSON.stringfy'ed\r\n * @param request the node request object.\r\n */\r\n public delete(nodeName: string, relativeUrl: string, body?: string, request?: NodeRequest): Observable<any>;\r\n public delete(nodeOrService: string | ServiceRequest, remained: string, body?: string, request?: NodeRequest): Observable<any> {\r\n const { nodeName, relativeUrl } = this.getNodeUrl(nodeOrService, remained);\r\n request = this.createNodeRequest(request || <NodeRequest>{}, nodeName);\r\n return this.gateway.delete(relativeUrl, body, request);\r\n }\r\n\r\n /**\r\n * Makes a DELETE call to the gateway node api without waiting for the response.\r\n *\r\n * @param serviceRequest the object of service request.\r\n * @param relativeUrl the relative Url after \"/api/nodes/<nodeName>\"\r\n * @param request the node request object.\r\n * @remarks this API is for gateway version 2. It doesn't work on gateway version 1.\r\n */\r\n public deleteQuick(serviceRequest: ServiceRequest, relativeUrl: string, request?: NodeRequest): void;\r\n /**\r\n * @deprecated This API is for version 1 gateway server, use new API for version 2 gateway.\r\n * Makes a DELETE call to the gateway node api without waiting for the response.\r\n *\r\n * @param nodeName the name of the node to call the API for\r\n * @param relativeUrl the relative Url after \"/api/nodes/<nodeName>\"\r\n * @param request the node request object.\r\n */\r\n public deleteQuick(nodeName: string, relativeUrl: string, request?: NodeRequest): void;\r\n public deleteQuick(nodeOrService: string | ServiceRequest, remained: string, request?: NodeRequest): void {\r\n const { nodeName, relativeUrl } = this.getNodeUrl(nodeOrService, remained);\r\n request.headers = request.headers || {};\r\n if (!request.authToken) {\r\n // if we don't have an authToken, then make sure we are not waiting on one.\r\n this.authorizationManager.addAuthorizationRequestHeader(request, nodeName);\r\n } else {\r\n this.authorizationManager.addAuthorizationRequestHeader(request, nodeName, request.authToken);\r\n }\r\n\r\n const endpoint = this.authorizationManager.getJeaEndpoint(nodeName);\r\n if (request.powerShellEndpoint) {\r\n // Override JEA fallback if endpoint is explicitly set for debugging purposes\r\n (<any>request).headers[headerConstants.POWERSHELL_ENDPOINT] = request.powerShellEndpoint;\r\n } else if (endpoint) {\r\n (<any>request).headers[headerConstants.POWERSHELL_ENDPOINT] = endpoint;\r\n }\r\n\r\n if (request.authenticationMechanism === 'Credssp') {\r\n (<any>request).headers[headerConstants.AUTHENTICATION_MECHANISM] = request.authenticationMechanism;\r\n }\r\n\r\n return this.gateway.deleteQuick(relativeUrl, request.headers);\r\n }\r\n\r\n /**\r\n * Persists the JEA powershell endpoint context\r\n * @param nodeName The node name\r\n * @param endpoint The powershell endpoint\r\n */\r\n public saveJeaContext(nodeName: string, endpoint: string) {\r\n this.authorizationManager.saveJeaContext(nodeName, endpoint);\r\n }\r\n\r\n /**\r\n * Gets the JEA powershell endpoint, if it exists\r\n * @param nodeName The node name\r\n */\r\n public getJeaEndpoint(nodeName: string) {\r\n return this.authorizationManager.getJeaEndpoint(nodeName);\r\n }\r\n\r\n /**\r\n * Creates service node API for Gateway V2.\r\n *\r\n * @param serviceName the name of service.\r\n * @param apiName the name of api.\r\n * @param nodeName the name of node.\r\n * @param remained the remained URL after it including option parameters.\r\n * @returns URL string.\r\n */\r\n public getServiceUrl(serviceName: string, apiName: string, nodeName: string, remained: string): string {\r\n // 1) if null or empty, it's empty.\r\n // 2) if start with \"?\", remains as is.\r\n // 3) if not started with \"/\", add \"/\".\r\n remained = remained ?? '';\r\n if (remained.length > 0 && !remained.startsWith('/')) {\r\n if (!remained.startsWith('?')) {\r\n remained = `/${remained}`;\r\n }\r\n }\r\n\r\n // for example, \"/api/services/WinREST/PowerShell/nodes/computer-abc/invoke\"\r\n return `/Services/${serviceName}/${apiName}/nodes/${nodeName}${remained}`;\r\n }\r\n\r\n /**\r\n * Adds default parameters to a NodeRequest\r\n *\r\n * @param method the http method to use\r\n * @param relativeUrl the relative Url after \"/api/\"\r\n * @param body the body string JSON.stringfy'ed\r\n * @param request the node request object to extend.\r\n */\r\n private createNodeRequest(request: NodeRequest, nodeName: string): GatewayRequest {\r\n // if we did not specify no auth, and we are not using a custom token...\r\n request = MsftSme.deepAssign({}, request);\r\n if (!request.noAuth && !request.authToken) {\r\n // ...then add node specific authorization handlers\r\n request.retryHandlers = (request.retryHandlers || []).concat([{\r\n canHandle: (code, error) => this.authorizationManager.canHandleAjaxFailure(code, error),\r\n handle: (code, originalRequest, error) =>\r\n this.authorizationManager.handleAjaxFailure(code, originalRequest, error, nodeName)\r\n }]);\r\n }\r\n\r\n const oldBeforeCall = request.beforeCall;\r\n\r\n // Add before call handler to wait for any pending node authorization\r\n request.beforeCall = pendingRequest => {\r\n let observable: Observable<void> = null;\r\n if (!request.authToken) {\r\n // if we dont have an authToken, then make sure we are not waiting on one.\r\n observable = this.authorizationManager.authAwaiter\r\n .pipe(map(() =>\r\n this.authorizationManager.addAuthorizationRequestHeader(pendingRequest, nodeName)));\r\n } else {\r\n observable = of(\r\n this.authorizationManager.addAuthorizationRequestHeader(pendingRequest, nodeName, request.authToken)\r\n );\r\n }\r\n\r\n if (oldBeforeCall) {\r\n return oldBeforeCall(request).pipe(mergeMap(() => observable));\r\n }\r\n\r\n return observable;\r\n };\r\n\r\n request.headers = request.headers || {};\r\n if (request.logAudit === true || request.logAudit === false) {\r\n (<any>request).headers[headerConstants.LOG_AUDIT] = request.logAudit ? 'true' : 'false';\r\n }\r\n\r\n if (request.logTelemetry === true || request.logTelemetry === false) {\r\n (<any>request).headers[headerConstants.LOG_TELEMETRY] = request.logTelemetry ? 'true' : 'false';\r\n }\r\n\r\n const endpoint = this.authorizationManager.getJeaEndpoint(nodeName);\r\n if (request.powerShellEndpoint) {\r\n // Override JEA fallback if endpoint is explicitly set for debugging purposes\r\n (<any>request).headers[headerConstants.POWERSHELL_ENDPOINT] = request.powerShellEndpoint;\r\n } else if (endpoint) {\r\n (<any>request).headers[headerConstants.POWERSHELL_ENDPOINT] = endpoint;\r\n }\r\n\r\n if (request.authenticationMechanism === 'Credssp') {\r\n (<any>request).headers[headerConstants.AUTHENTICATION_MECHANISM] = request.authenticationMechanism;\r\n }\r\n\r\n return request;\r\n }\r\n\r\n /**\r\n * Get node name and node url.\r\n * @param nodeOrService The node name or service request object.\r\n * @param remained The remained url.\r\n * @returns node name and node url.\r\n */\r\n private getNodeUrl(nodeOrService: string | ServiceRequest, remained: string): { nodeName: string, relativeUrl: string } {\r\n if (typeof nodeOrService === 'string') {\r\n const nodeName = <string>nodeOrService;\r\n return { nodeName, relativeUrl: this.getNodeMappedUrl(nodeName, remained) };\r\n }\r\n\r\n const service = <ServiceRequest>nodeOrService;\r\n return {\r\n nodeName: service.nodeName,\r\n relativeUrl: this.getServiceUrl(service.serviceName, service.controllerName, service.nodeName, remained)\r\n };\r\n }\r\n\r\n /**\r\n * Creates a Node url\r\n *\r\n * @param nodeName the name of the node to make a call against\r\n * @param relativeUrl the relative Url after \"/nodes/<nodeName>/\"\r\n */\r\n private getNodeMappedUrl(nodeName: string, relativeUrl: string): string {\r\n if (EnvironmentModule.isGatewayV200) {\r\n const translation = GatewayUrlTranslator.translate(relativeUrl);\r\n if (translation) {\r\n return `${translation.startUrl}/nodes/${nodeName}/${translation.newUrl}`;\r\n }\r\n\r\n SmeWebTelemetry.traceAction(null, {\r\n content: {\r\n message: 'Could not get translation for URL: {0}'.format(relativeUrl),\r\n action: 'TranslateUrlToGateWayV2'\r\n }\r\n },\r\n { type: 'error' });\r\n\r\n throw new Error(MsftSme.getStrings<Strings>().MsftSmeShell.Core.TranslateGatewayUrls.Url.Not.expected.ErrorMessage\r\n .format(relativeUrl)\r\n );\r\n }\r\n\r\n // create node url from current url\r\n if (!relativeUrl.startsWith('/')) {\r\n relativeUrl = `/${relativeUrl}`;\r\n }\r\n\r\n relativeUrl = Net.updateApiVersion20190201(relativeUrl);\r\n return `/nodes/${nodeName}${relativeUrl}`;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"sources":["../../../packages/core/data/node-connection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,EAAE,EAAE,MAAM,MAAM,CAAC;AACtC,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAEnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAGpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAG5B;;GAEG;AACH,MAAM,CAAN,IAAY,aAoBX;AApBD,WAAY,aAAa;IACrB;;OAEG;IACH,qDAAM,CAAA;IAEN;;OAEG;IACH,yDAAQ,CAAA;IAER;;OAEG;IACH,qDAAM,CAAA;IAEN;;OAEG;IACH,mDAAK,CAAA;AACT,CAAC,EApBW,aAAa,KAAb,aAAa,QAoBxB;AAmGD;;GAEG;AACH,MAAM,OAAO,cAAc;IAOH;IAAoC;IANxD;;;;;OAKG;IACH,YAAoB,OAA0B,EAAU,oBAA0C;QAA9E,YAAO,GAAP,OAAO,CAAmB;QAAU,yBAAoB,GAApB,oBAAoB,CAAsB;IAAI,CAAC;IAsBhG,IAAI,CAAC,aAAsC,EAAE,QAAgB,EAAE,IAAU,EAAE,OAAqB;QACnG,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;QAC3E,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,IAAiB,EAAE,EAAE,QAAQ,CAAC,CAAC;QACvE,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;IAoBM,GAAG,CAAC,aAAsC,EAAE,QAAgB,EAAE,OAAqB;QACtF,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;QAC3E,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,IAAiB,EAAE,EAAE,QAAQ,CAAC,CAAC;QACvE,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;IAsBM,GAAG,CAAC,aAAsC,EAAE,QAAgB,EAAE,IAAa,EAAE,OAAqB;QACrG,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;QAC3E,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,IAAiB,EAAE,EAAE,QAAQ,CAAC,CAAC;QACvE,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACxD,CAAC;IAsBM,KAAK,CAAC,aAAsC,EAAE,QAAgB,EAAE,IAAa,EAAE,OAAqB;QACvG,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;QAC3E,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,IAAiB,EAAE,EAAE,QAAQ,CAAC,CAAC;QACvE,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;IAsBM,MAAM,CAAC,aAAsC,EAAE,QAAgB,EAAE,IAAa,EAAE,OAAqB;QACxG,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;QAC3E,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,IAAiB,EAAE,EAAE,QAAQ,CAAC,CAAC;QACvE,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3D,CAAC;IAoBM,WAAW,CAAC,aAAsC,EAAE,QAAgB,EAAE,OAAqB;QAC9F,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;QAC3E,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;QACxC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;YACpB,2EAA2E;YAC3E,IAAI,CAAC,oBAAoB,CAAC,6BAA6B,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;SAC9E;aAAM;YACH,IAAI,CAAC,oBAAoB,CAAC,6BAA6B,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;SACjG;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QACpE,IAAI,OAAO,CAAC,kBAAkB,EAAE;YAC5B,6EAA6E;YACvE,OAAQ,CAAC,OAAO,CAAC,eAAe,CAAC,mBAAmB,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC;SAC5F;aAAM,IAAI,QAAQ,EAAE;YACX,OAAQ,CAAC,OAAO,CAAC,eAAe,CAAC,mBAAmB,CAAC,GAAG,QAAQ,CAAC;SAC1E;QAED,IAAI,OAAO,CAAC,uBAAuB,KAAK,SAAS,EAAE;YACzC,OAAQ,CAAC,OAAO,CAAC,eAAe,CAAC,wBAAwB,CAAC,GAAG,OAAO,CAAC,uBAAuB,CAAC;SACtG;QAED,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAClE,CAAC;IAED;;;;OAIG;IACI,cAAc,CAAC,QAAgB,EAAE,QAAgB;QACpD,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACjE,CAAC;IAED;;;OAGG;IACI,cAAc,CAAC,QAAgB;QAClC,OAAO,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC9D,CAAC;IAED;;;;;;;;OAQG;IACI,aAAa,CAAC,WAAmB,EAAE,OAAe,EAAE,QAAgB,EAAE,QAAgB;QACzF,mCAAmC;QACnC,uCAAuC;QACvC,uCAAuC;QACvC,QAAQ,GAAG,QAAQ,IAAI,EAAE,CAAC;QAC1B,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;YAClD,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;gBAC3B,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;aAC7B;SACJ;QAED,4EAA4E;QAC5E,OAAO,aAAa,WAAW,IAAI,OAAO,UAAU,QAAQ,GAAG,QAAQ,EAAE,CAAC;IAC9E,CAAC;IAED;;;;;;;OAOG;IACK,iBAAiB,CAAC,OAAoB,EAAE,QAAgB;QAC5D,wEAAwE;QACxE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QAC1C,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;YACvC,mDAAmD;YACnD,OAAO,CAAC,aAAa,GAAG,CAAC,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;oBAC1D,SAAS,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,oBAAoB,CAAC,IAAI,EAAE,KAAK,CAAC;oBACvF,MAAM,EAAE,CAAC,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,EAAE,CACrC,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,QAAQ,CAAC;iBAC1F,CAAC,CAAC,CAAC;SACP;QAED,MAAM,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC;QAEzC,qEAAqE;QACrE,OAAO,CAAC,UAAU,GAAG,cAAc,CAAC,EAAE;YAClC,IAAI,UAAU,GAAqB,IAAI,CAAC;YACxC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;gBACpB,0EAA0E;gBAC1E,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC,WAAW;qBAC7C,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CACX,IAAI,CAAC,oBAAoB,CAAC,6BAA6B,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;aAC/F;iBAAM;gBACH,UAAU,GAAG,EAAE,CACX,IAAI,CAAC,oBAAoB,CAAC,6BAA6B,CAAC,cAAc,EAAE,QAAQ,EAAE,OAAO,CAAC,SAAS,CAAC,CACvG,CAAC;aACL;YAED,IAAI,aAAa,EAAE;gBACf,OAAO,aAAa,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;aAClE;YAED,OAAO,UAAU,CAAC;QACtB,CAAC,CAAC;QAEF,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;QACxC,IAAI,OAAO,CAAC,QAAQ,KAAK,IAAI,IAAI,OAAO,CAAC,QAAQ,KAAK,KAAK,EAAE;YACnD,OAAQ,CAAC,OAAO,CAAC,eAAe,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;SAC3F;QAED,IAAI,OAAO,CAAC,YAAY,KAAK,IAAI,IAAI,OAAO,CAAC,YAAY,KAAK,KAAK,EAAE;YAC3D,OAAQ,CAAC,OAAO,CAAC,eAAe,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;SACnG;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QACpE,IAAI,OAAO,CAAC,kBAAkB,EAAE;YAC5B,6EAA6E;YACvE,OAAQ,CAAC,OAAO,CAAC,eAAe,CAAC,mBAAmB,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC;SAC5F;aAAM,IAAI,QAAQ,EAAE;YACX,OAAQ,CAAC,OAAO,CAAC,eAAe,CAAC,mBAAmB,CAAC,GAAG,QAAQ,CAAC;SAC1E;QAED,IAAI,OAAO,CAAC,uBAAuB,KAAK,SAAS,EAAE;YACzC,OAAQ,CAAC,OAAO,CAAC,eAAe,CAAC,wBAAwB,CAAC,GAAG,OAAO,CAAC,uBAAuB,CAAC;SACtG;QAED,OAAO,OAAO,CAAC;IACnB,CAAC;IAED;;;;;OAKG;IACK,UAAU,CAAC,aAAsC,EAAE,QAAgB;QACvE,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE;YACnC,MAAM,QAAQ,GAAW,aAAa,CAAC;YACvC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC;SAC/E;QAED,MAAM,OAAO,GAAmB,aAAa,CAAC;QAC9C,OAAO;YACH,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC;SAC3G,CAAC;IACN,CAAC;IAED;;;;;OAKG;IACK,gBAAgB,CAAC,QAAgB,EAAE,WAAmB;QAC1D,IAAI,iBAAiB,CAAC,aAAa,EAAE;YACjC,MAAM,WAAW,GAAG,oBAAoB,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YAChE,IAAI,WAAW,EAAE;gBACb,OAAO,GAAG,WAAW,CAAC,QAAQ,UAAU,QAAQ,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;aAC5E;YAED,eAAe,CAAC,WAAW,CACvB,IAAI,EACJ;gBACI,OAAO,EAAE;oBACL,OAAO,EAAE,wCAAwC,CAAC,MAAM,CAAC,WAAW,CAAC;oBACrE,MAAM,EAAE,yBAAyB;iBACpC;aACJ,EACD,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;SAC1B;QAED,mCAAmC;QACnC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;YAC9B,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;SACnC;QAED,WAAW,GAAG,GAAG,CAAC,wBAAwB,CAAC,WAAW,CAAC,CAAC;QACxD,OAAO,UAAU,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC9C,CAAC;CACJ","file":"node-connection.js","sourcesContent":["import { Observable, of } from 'rxjs';\r\nimport { map, mergeMap } from 'rxjs/operators';\r\nimport { SmeWebTelemetry } from '../diagnostics/sme-web-telemetry';\r\nimport { Strings } from '../generated/strings';\r\nimport { EnvironmentModule } from '../manifest/environment-modules';\r\nimport { AuthorizationManager, AuthorizationToken } from '../security/authorization-manager';\r\nimport { GatewayConnection, GatewayRequest } from './gateway-connection';\r\nimport { GatewayUrlTranslator } from './gateway-url-translator';\r\nimport { headerConstants } from './http-constants';\r\nimport { Net } from './net';\r\nimport { PowerShellCommandWithoutState } from './powershell';\r\n\r\n/**\r\n * Node Cim output type.\r\n */\r\nexport enum NodeCimOutput {\r\n /**\r\n * Single instance.\r\n */\r\n Single,\r\n\r\n /**\r\n * Multiple instances.\r\n */\r\n Multiple,\r\n\r\n /**\r\n * Invoke result.\r\n */\r\n Result,\r\n\r\n /**\r\n * WQL query result.\r\n */\r\n Query\r\n}\r\n\r\n/**\r\n * Node Request options that we use to extend the GatewayRequest interface\r\n */\r\nexport interface NodeRequestOptions {\r\n /**\r\n * Indicates that no auth failure handling should take place, however, any auth headers for this node will still be added.\r\n */\r\n noAuth?: boolean;\r\n\r\n /**\r\n * Provides an alternative token to use for just this request\r\n */\r\n authToken?: AuthorizationToken;\r\n\r\n /**\r\n * Authentication mechanism.\r\n */\r\n authenticationMechanism?: 'Credssp' | 'NotSpecified';\r\n\r\n /**\r\n * Indicates if command should run in local runspace instead of remote runspace.\r\n */\r\n useInProcRunspace?: boolean;\r\n\r\n /**\r\n * Indicates that audit logging for this request should be made. Default is false.\r\n */\r\n logAudit?: boolean;\r\n\r\n /**\r\n * Indicates that telemetry logging for this request should be made. Default is false.\r\n * SmeWebTelemetry will not be sent for polling PS events.\r\n */\r\n logTelemetry?: boolean;\r\n\r\n /**\r\n * Indicates targeting to specific PowerShell endpoint.\r\n * The endpoint data is inserted to the endpoint header.\r\n */\r\n powerShellEndpoint?: string;\r\n\r\n /**\r\n * The PowerShell command resource on JEA PowerShell endpoint.\r\n * The command object is used for auto fallback time on a CIM query.\r\n * (Only CIM query uses this property)\r\n */\r\n powerShell?: PowerShellCommandWithoutState;\r\n\r\n /**\r\n * The parameters for instance query powershell alternative.\r\n * (Only CIM query uses this property)\r\n */\r\n powerShellParameters?: any;\r\n\r\n /**\r\n * The PowerShell context to replace CIM call.\r\n * (Only CIM query uses this property)\r\n */\r\n powerShellContext?: {\r\n /**\r\n * CIM output data type.\r\n */\r\n cimOutput: NodeCimOutput;\r\n\r\n /**\r\n * CIM input parameters.\r\n */\r\n parameters?: any;\r\n };\r\n}\r\n\r\n/**\r\n * Extension of GatewayRequest interface for calling the Gateway Node API\r\n */\r\nexport interface NodeRequest extends GatewayRequest, NodeRequestOptions {\r\n}\r\n\r\n/**\r\n * Service request interface for gateway version 2.\r\n */\r\nexport interface ServiceRequest {\r\n /**\r\n * The service name such as \"WinRest\", \"WinStream\", \"LinuxBase\" and so on.\r\n */\r\n serviceName: string;\r\n\r\n /**\r\n * The controller name such as \"PowerShell\", \"Cim\", \"Ssh\" and so on.\r\n */\r\n controllerName: string;\r\n\r\n /**\r\n * The node name.\r\n */\r\n nodeName: string;\r\n}\r\n\r\n/**\r\n * The Node Connection class for creating requests and calling the Gateway's Node API\r\n */\r\nexport class NodeConnection {\r\n /**\r\n * Initializes a new instance of the GatewayService class.\r\n *\r\n * @param gateway the gateway Connection\r\n * @param authorizationManager the authorization manager.\r\n */\r\n constructor(private gateway: GatewayConnection, private authorizationManager: AuthorizationManager) { }\r\n\r\n /**\r\n * Makes a POST call to the gateway node api\r\n *\r\n * @param serviceRequest the object of service request.\r\n * @param remained the remained Url after 'nodes/<nodeName>'.\r\n * @param body the body string JSON.stringfy'ed\r\n * @param request the node request object.\r\n * @remarks this API is for gateway version 2. It doesn't work on gateway version 1.\r\n */\r\n public post(serviceRequest: ServiceRequest, remained: string, body?: any, request?: NodeRequest): Observable<any>;\r\n /**\r\n * @deprecated This API is for version 1 gateway server, use new API for version 2 gateway.\r\n * Makes a POST call to the gateway node api\r\n *\r\n * @param nodeName the name of the node to call the API for\r\n * @param relativeUrl the relative Url after \"/api/nodes/<nodeName>\"\r\n * @param body the body string JSON.stringfy'ed\r\n * @param request the node request object.\r\n */\r\n public post(nodeName: string, relativeUrl: string, body?: any, request?: NodeRequest): Observable<any>;\r\n public post(nodeOrService: string | ServiceRequest, remained: string, body?: any, request?: NodeRequest): Observable<any> {\r\n const { nodeName, relativeUrl } = this.getNodeUrl(nodeOrService, remained);\r\n request = this.createNodeRequest(request || <NodeRequest>{}, nodeName);\r\n return this.gateway.post(relativeUrl, body, request);\r\n }\r\n\r\n /**\r\n * Makes a GET call to the gateway node api\r\n *\r\n * @param serviceRequest the object of service request.\r\n * @param relativeUrl the relative Url after \"/api/nodes/<nodeName>\"\r\n * @param request the node request object.\r\n * @remarks this API is for gateway version 2. It doesn't work on gateway version 1.\r\n */\r\n public get(serviceRequest: ServiceRequest, relativeUrl: string, request?: NodeRequest): Observable<any>;\r\n /**\r\n * @deprecated This API is for version 1 gateway server, use new API for version 2 gateway.\r\n * Makes a GET call to the gateway node api\r\n *\r\n * @param nodeName the name of the node to call the API for\r\n * @param relativeUrl the relative Url after \"/api/nodes/<nodeName>\"\r\n * @param request the node request object.\r\n */\r\n public get(nodeName: string, relativeUrl: string, request?: NodeRequest): Observable<any>;\r\n public get(nodeOrService: string | ServiceRequest, remained: string, request?: NodeRequest): Observable<any> {\r\n const { nodeName, relativeUrl } = this.getNodeUrl(nodeOrService, remained);\r\n request = this.createNodeRequest(request || <NodeRequest>{}, nodeName);\r\n return this.gateway.get(relativeUrl, request);\r\n }\r\n\r\n /**\r\n * Makes a PUT call to the gateway node api\r\n *\r\n * @param serviceRequest the object of service request.\r\n * @param relativeUrl the relative Url after \"/api/nodes/<nodeName>\"\r\n * @param body the body string JSON.stringfy'ed\r\n * @param request the node request object.\r\n * @remarks this API is for gateway version 2. It doesn't work on gateway version 1.\r\n */\r\n public put(serviceRequest: ServiceRequest, relativeUrl: string, body?: string, request?: NodeRequest): Observable<any>;\r\n /**\r\n * @deprecated This API is for version 1 gateway server, use new API for version 2 gateway.\r\n * Makes a PUT call to the gateway node api\r\n *\r\n * @param nodeName the name of the node to call the API for\r\n * @param relativeUrl the relative Url after \"/api/nodes/<nodeName>\"\r\n * @param body the body string JSON.stringfy'ed\r\n * @param request the node request object.\r\n */\r\n public put(nodeName: string, relativeUrl: string, body?: string, request?: NodeRequest): Observable<any>;\r\n public put(nodeOrService: string | ServiceRequest, remained: string, body?: string, request?: NodeRequest): Observable<any> {\r\n const { nodeName, relativeUrl } = this.getNodeUrl(nodeOrService, remained);\r\n request = this.createNodeRequest(request || <NodeRequest>{}, nodeName);\r\n return this.gateway.put(relativeUrl, body, request);\r\n }\r\n\r\n /**\r\n * Makes a PATCH call to the gateway node api\r\n *\r\n * @param serviceRequest the object of service request.\r\n * @param relativeUrl the relative Url after \"/api/nodes/<nodeName>\"\r\n * @param body the body string JSON.stringfy'ed\r\n * @param request the node request object.\r\n * @remarks this API is for gateway version 2. It doesn't work on gateway version 1.\r\n */\r\n public patch(serviceRequest: ServiceRequest, relativeUrl: string, body?: string, request?: NodeRequest): Observable<any>;\r\n /**\r\n * @deprecated This API is for version 1 gateway server, use new API for version 2 gateway.\r\n * Makes a PATCH call to the gateway node api\r\n *\r\n * @param nodeName the name of the node to call the API for\r\n * @param relativeUrl the relative Url after \"/api/nodes/<nodeName>\"\r\n * @param body the body string JSON.stringfy'ed\r\n * @param request the node request object.\r\n */\r\n public patch(nodeName: string, relativeUrl: string, body?: string, request?: NodeRequest): Observable<any>;\r\n public patch(nodeOrService: string | ServiceRequest, remained: string, body?: string, request?: NodeRequest): Observable<any> {\r\n const { nodeName, relativeUrl } = this.getNodeUrl(nodeOrService, remained);\r\n request = this.createNodeRequest(request || <NodeRequest>{}, nodeName);\r\n return this.gateway.patch(relativeUrl, body, request);\r\n }\r\n\r\n /**\r\n * Makes a DELETE call to the gateway node api\r\n *\r\n * @param serviceRequest the object of service request.\r\n * @param relativeUrl the relative Url after \"/api/nodes/<nodeName>\"\r\n * @param body the body string JSON.stringfy'ed\r\n * @param request the node request object.\r\n * @remarks this API is for gateway version 2. It doesn't work on gateway version 1.\r\n */\r\n public delete(serviceRequest: ServiceRequest, relativeUrl: string, body?: string, request?: NodeRequest): Observable<any>;\r\n /**\r\n * @deprecated This API is for version 1 gateway server, use new API for version 2 gateway.\r\n * Makes a DELETE call to the gateway node api\r\n *\r\n * @param nodeName the name of the node to call the API for\r\n * @param relativeUrl the relative Url after \"/api/nodes/<nodeName>\"\r\n * @param body the body string JSON.stringfy'ed\r\n * @param request the node request object.\r\n */\r\n public delete(nodeName: string, relativeUrl: string, body?: string, request?: NodeRequest): Observable<any>;\r\n public delete(nodeOrService: string | ServiceRequest, remained: string, body?: string, request?: NodeRequest): Observable<any> {\r\n const { nodeName, relativeUrl } = this.getNodeUrl(nodeOrService, remained);\r\n request = this.createNodeRequest(request || <NodeRequest>{}, nodeName);\r\n return this.gateway.delete(relativeUrl, body, request);\r\n }\r\n\r\n /**\r\n * Makes a DELETE call to the gateway node api without waiting for the response.\r\n *\r\n * @param serviceRequest the object of service request.\r\n * @param relativeUrl the relative Url after \"/api/nodes/<nodeName>\"\r\n * @param request the node request object.\r\n * @remarks this API is for gateway version 2. It doesn't work on gateway version 1.\r\n */\r\n public deleteQuick(serviceRequest: ServiceRequest, relativeUrl: string, request?: NodeRequest): void;\r\n /**\r\n * @deprecated This API is for version 1 gateway server, use new API for version 2 gateway.\r\n * Makes a DELETE call to the gateway node api without waiting for the response.\r\n *\r\n * @param nodeName the name of the node to call the API for\r\n * @param relativeUrl the relative Url after \"/api/nodes/<nodeName>\"\r\n * @param request the node request object.\r\n */\r\n public deleteQuick(nodeName: string, relativeUrl: string, request?: NodeRequest): void;\r\n public deleteQuick(nodeOrService: string | ServiceRequest, remained: string, request?: NodeRequest): void {\r\n const { nodeName, relativeUrl } = this.getNodeUrl(nodeOrService, remained);\r\n request.headers = request.headers || {};\r\n if (!request.authToken) {\r\n // if we don't have an authToken, then make sure we are not waiting on one.\r\n this.authorizationManager.addAuthorizationRequestHeader(request, nodeName);\r\n } else {\r\n this.authorizationManager.addAuthorizationRequestHeader(request, nodeName, request.authToken);\r\n }\r\n\r\n const endpoint = this.authorizationManager.getJeaEndpoint(nodeName);\r\n if (request.powerShellEndpoint) {\r\n // Override JEA fallback if endpoint is explicitly set for debugging purposes\r\n (<any>request).headers[headerConstants.POWERSHELL_ENDPOINT] = request.powerShellEndpoint;\r\n } else if (endpoint) {\r\n (<any>request).headers[headerConstants.POWERSHELL_ENDPOINT] = endpoint;\r\n }\r\n\r\n if (request.authenticationMechanism === 'Credssp') {\r\n (<any>request).headers[headerConstants.AUTHENTICATION_MECHANISM] = request.authenticationMechanism;\r\n }\r\n\r\n return this.gateway.deleteQuick(relativeUrl, request.headers);\r\n }\r\n\r\n /**\r\n * Persists the JEA powershell endpoint context\r\n * @param nodeName The node name\r\n * @param endpoint The powershell endpoint\r\n */\r\n public saveJeaContext(nodeName: string, endpoint: string) {\r\n this.authorizationManager.saveJeaContext(nodeName, endpoint);\r\n }\r\n\r\n /**\r\n * Gets the JEA powershell endpoint, if it exists\r\n * @param nodeName The node name\r\n */\r\n public getJeaEndpoint(nodeName: string) {\r\n return this.authorizationManager.getJeaEndpoint(nodeName);\r\n }\r\n\r\n /**\r\n * Creates service node API for Gateway V2.\r\n *\r\n * @param serviceName the name of service.\r\n * @param apiName the name of api.\r\n * @param nodeName the name of node.\r\n * @param remained the remained URL after it including option parameters.\r\n * @returns URL string.\r\n */\r\n public getServiceUrl(serviceName: string, apiName: string, nodeName: string, remained: string): string {\r\n // 1) if null or empty, it's empty.\r\n // 2) if start with \"?\", remains as is.\r\n // 3) if not started with \"/\", add \"/\".\r\n remained = remained ?? '';\r\n if (remained.length > 0 && !remained.startsWith('/')) {\r\n if (!remained.startsWith('?')) {\r\n remained = `/${remained}`;\r\n }\r\n }\r\n\r\n // for example, \"/api/services/WinREST/PowerShell/nodes/computer-abc/invoke\"\r\n return `/Services/${serviceName}/${apiName}/nodes/${nodeName}${remained}`;\r\n }\r\n\r\n /**\r\n * Adds default parameters to a NodeRequest\r\n *\r\n * @param method the http method to use\r\n * @param relativeUrl the relative Url after \"/api/\"\r\n * @param body the body string JSON.stringfy'ed\r\n * @param request the node request object to extend.\r\n */\r\n private createNodeRequest(request: NodeRequest, nodeName: string): GatewayRequest {\r\n // if we did not specify no auth, and we are not using a custom token...\r\n request = MsftSme.deepAssign({}, request);\r\n if (!request.noAuth && !request.authToken) {\r\n // ...then add node specific authorization handlers\r\n request.retryHandlers = (request.retryHandlers || []).concat([{\r\n canHandle: (code, error) => this.authorizationManager.canHandleAjaxFailure(code, error),\r\n handle: (code, originalRequest, error) =>\r\n this.authorizationManager.handleAjaxFailure(code, originalRequest, error, nodeName)\r\n }]);\r\n }\r\n\r\n const oldBeforeCall = request.beforeCall;\r\n\r\n // Add before call handler to wait for any pending node authorization\r\n request.beforeCall = pendingRequest => {\r\n let observable: Observable<void> = null;\r\n if (!request.authToken) {\r\n // if we dont have an authToken, then make sure we are not waiting on one.\r\n observable = this.authorizationManager.authAwaiter\r\n .pipe(map(() =>\r\n this.authorizationManager.addAuthorizationRequestHeader(pendingRequest, nodeName)));\r\n } else {\r\n observable = of(\r\n this.authorizationManager.addAuthorizationRequestHeader(pendingRequest, nodeName, request.authToken)\r\n );\r\n }\r\n\r\n if (oldBeforeCall) {\r\n return oldBeforeCall(request).pipe(mergeMap(() => observable));\r\n }\r\n\r\n return observable;\r\n };\r\n\r\n request.headers = request.headers || {};\r\n if (request.logAudit === true || request.logAudit === false) {\r\n (<any>request).headers[headerConstants.LOG_AUDIT] = request.logAudit ? 'true' : 'false';\r\n }\r\n\r\n if (request.logTelemetry === true || request.logTelemetry === false) {\r\n (<any>request).headers[headerConstants.LOG_TELEMETRY] = request.logTelemetry ? 'true' : 'false';\r\n }\r\n\r\n const endpoint = this.authorizationManager.getJeaEndpoint(nodeName);\r\n if (request.powerShellEndpoint) {\r\n // Override JEA fallback if endpoint is explicitly set for debugging purposes\r\n (<any>request).headers[headerConstants.POWERSHELL_ENDPOINT] = request.powerShellEndpoint;\r\n } else if (endpoint) {\r\n (<any>request).headers[headerConstants.POWERSHELL_ENDPOINT] = endpoint;\r\n }\r\n\r\n if (request.authenticationMechanism === 'Credssp') {\r\n (<any>request).headers[headerConstants.AUTHENTICATION_MECHANISM] = request.authenticationMechanism;\r\n }\r\n\r\n return request;\r\n }\r\n\r\n /**\r\n * Get node name and node url.\r\n * @param nodeOrService The node name or service request object.\r\n * @param remained The remained url.\r\n * @returns node name and node url.\r\n */\r\n private getNodeUrl(nodeOrService: string | ServiceRequest, remained: string): { nodeName: string, relativeUrl: string } {\r\n if (typeof nodeOrService === 'string') {\r\n const nodeName = <string>nodeOrService;\r\n return { nodeName, relativeUrl: this.getNodeMappedUrl(nodeName, remained) };\r\n }\r\n\r\n const service = <ServiceRequest>nodeOrService;\r\n return {\r\n nodeName: service.nodeName,\r\n relativeUrl: this.getServiceUrl(service.serviceName, service.controllerName, service.nodeName, remained)\r\n };\r\n }\r\n\r\n /**\r\n * Creates a Node url\r\n *\r\n * @param nodeName the name of the node to make a call against\r\n * @param relativeUrl the relative Url after \"/nodes/<nodeName>/\"\r\n */\r\n private getNodeMappedUrl(nodeName: string, relativeUrl: string): string {\r\n if (EnvironmentModule.isGatewayV200) {\r\n const translation = GatewayUrlTranslator.translate(relativeUrl);\r\n if (translation) {\r\n return `${translation.startUrl}/nodes/${nodeName}/${translation.newUrl}`;\r\n }\r\n\r\n SmeWebTelemetry.traceAction(\r\n null,\r\n {\r\n content: {\r\n message: 'Could not get translation for URL: {0}'.format(relativeUrl),\r\n action: 'TranslateUrlToGateWayV2'\r\n }\r\n },\r\n { type: 'error' });\r\n }\r\n\r\n // create node url from current url\r\n if (!relativeUrl.startsWith('/')) {\r\n relativeUrl = `/${relativeUrl}`;\r\n }\r\n\r\n relativeUrl = Net.updateApiVersion20190201(relativeUrl);\r\n return `/nodes/${nodeName}${relativeUrl}`;\r\n }\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../packages/core/generated/powershell-scripts.ts"],"names":[],"mappings":"AACA;;;GAGG;AACH,sBAAc,iBAAiB,CAAC;IAGrB,MAAM,MAAM,wBAAwB,CAAC;IACrC,MAAM,YAAY,iBAAiB,CAAC;IACpC,MAAM,gBAAgB,UAAU,CAAC;IACjC,MAAM,qBAAqB;;;KAGjC,CAAA;IACM,MAAM,WAAW;;;KAGvB,CAAA;IACM,MAAM,yBAAyB;;;KAGrC,CAAA;IACM,MAAM,uBAAuB;;;KAGnC,CAAA;IACM,MAAM,uBAAuB;;;KAGnC,CAAA;IACM,MAAM,0BAA0B;;;KAGtC,CAAA;IACM,MAAM,0BAA0B;;;KAGtC,CAAA;IACM,MAAM,qBAAqB;;;KAGjC,CAAA;IACM,MAAM,oBAAoB;;;KAGhC,CAAA;IACM,MAAM,gBAAgB;;;KAG5B,CAAA;IACM,MAAM,mBAAmB;;;KAG/B,CAAA;CACJ","file":"powershell-scripts.d.ts","sourcesContent":["/* eslint:disable */\r\n/**\r\n * @file Source code generated by gulp-ps-code.\r\n * @version 1.1\r\n */\r\nexport module PowerShellScripts {\r\n 'use strict'\r\n\r\n export const module = 'Microsoft.SME.Shell';\r\n export const resourceName = 'MsftSmeShell';\r\n export const powerShellPrefix = 'WACSH';\r\n export const Start_ScheduledReboot = {\r\n command: 'Start-ScheduledReboot',\r\n script: \"##Start-ScheduledReboot##:Start-ScheduledReboot.ps1\\nparam (\\n[Parameter(Mandatory = $true)]\\n[bool]$restartlater,\\n[Parameter(Mandatory = $false)]\\n[String]$restartTime,\\n[Parameter(Mandatory = $false)]\\n[String]$restartReason,\\n[Parameter(Mandatory = $false)]\\n[System.Int16]$reasonNumberMajor,\\n[Parameter(Mandatory = $false)]\\n[System.Int16]$reasonNumberMinor\\n)\\n$waitTime = 5\\nif ($restartlater -and -not($restartTime)) {\\n$waitTime = 30\\n} elseif ($restartTime) {\\n$waitTime = [decimal]::round(((Get-Date $restartTime) - (Get-Date)).TotalSeconds);\\nif ($waitTime -gt (315360000 - 30)) {\\nTHROW \\\"Invalid restart time $restartTime. The valid range is 0-315360000s (10 years), with a default of 30\\\"\\n}\\n}\\nif ($waitTime -lt 5 ) {\\n$waitTime = 5\\n}\\n$command = \\\"Shutdown /r /t $waitTime\\\"\\nif ($restartReason -and ($reasonNumberMajor -ne $null) -and ($reasonNumberMinor -ne $null)) {\\n$command += \\\" /d ${restartReason}:${reasonNumberMajor}:${reasonNumberMinor}\\\"\\n}\\nInvoke-Expression -Command $command\\n\"\r\n }\r\n export const Stop_Reboot = {\r\n command: 'Stop-Reboot',\r\n script: \"##Stop-Reboot##:Stop-Reboot.ps1\\n$command = \\\"Shutdown /a\\\"\\nInvoke-Expression -Command $command\\n\"\r\n }\r\n export const Get_DecryptedDataFromNode = {\r\n command: 'Get-DecryptedDataFromNode',\r\n script: \"##Get-DecryptedDataFromNode##:Get-DecryptedDataFromNode.ps1\\nparam (\\n[Parameter(Mandatory = $true)]\\n[String]\\n$encryptedData\\n)\\nSet-StrictMode -Version 5.0\\nNew-Variable -Name rsaProviderInstanceName -Value \\\"RSA\\\" -Option Constant\\nfunction DecryptDataWithJWKOnNode {\\nif(Get-Variable -Scope Global -Name $rsaProviderInstanceName -EA SilentlyContinue) {\\n$rsaProvider = (Get-Variable -Scope Global -Name $rsaProviderInstanceName).Value\\n$decryptedBytes = $rsaProvider.Decrypt([Convert]::FromBase64String($encryptedData), [System.Security.Cryptography.RSAEncryptionPadding]::OaepSHA1)\\nreturn [System.Text.Encoding]::UTF8.GetString($decryptedBytes)\\n}\\nthrow [System.InvalidOperationException] \\\"Password decryption failed. RSACryptoServiceProvider Instance not found\\\"\\n}\\n\"\r\n }\r\n export const Get_EncryptionJWKOnNode = {\r\n command: 'Get-EncryptionJWKOnNode',\r\n script: \"##Get-EncryptionJWKOnNode##:Get-EncryptionJWKOnNode.ps1\\nSet-StrictMode -Version 5.0\\nNew-Variable -Name rsaProviderInstanceName -Value \\\"RSA\\\" -Option Constant\\nfunction Get-RSAProvider\\n{\\nif(Get-Variable -Scope Global -Name $rsaProviderInstanceName -EA SilentlyContinue)\\n{\\nreturn (Get-Variable -Scope Global -Name $rsaProviderInstanceName).Value\\n}\\n$Global:RSA = New-Object System.Security.Cryptography.RSACryptoServiceProvider -ArgumentList 4096\\nreturn $RSA\\n}\\nfunction Get-JsonWebKey\\n{\\n$rsaProvider = Get-RSAProvider\\n$parameters = $rsaProvider.ExportParameters($false)\\nreturn [PSCustomObject]@{\\nkty = \\u0027RSA\\u0027\\nalg = \\u0027RSA-OAEP\\u0027\\ne = [Convert]::ToBase64String($parameters.Exponent)\\nn = [Convert]::ToBase64String($parameters.Modulus).TrimEnd(\\u0027=\\u0027).Replace(\\u0027+\\u0027, \\u0027-\\u0027).Replace(\\u0027/\\u0027, \\u0027_\\u0027)\\n}\\n}\\n$jwk = Get-JsonWebKey\\nConvertTo-Json $jwk -Compress\\n\"\r\n }\r\n export const Get_CimWin32LogicalDisk = {\r\n command: 'Get-CimWin32LogicalDisk',\r\n script: \"##Get-CimWin32LogicalDisk##:Get-CimWin32LogicalDisk.ps1\\nimport-module CimCmdlets\\nGet-CimInstance -Namespace root/cimv2 -ClassName Win32_LogicalDisk\\n\"\r\n }\r\n export const Get_CimWin32NetworkAdapter = {\r\n command: 'Get-CimWin32NetworkAdapter',\r\n script: \"##Get-CimWin32NetworkAdapter##:Get-CimWin32NetworkAdapter.ps1\\nimport-module CimCmdlets\\nGet-CimInstance -Namespace root/cimv2 -ClassName Win32_NetworkAdapter\\n\"\r\n }\r\n export const Get_CimWin32PhysicalMemory = {\r\n command: 'Get-CimWin32PhysicalMemory',\r\n script: \"##Get-CimWin32PhysicalMemory##:Get-CimWin32PhysicalMemory.ps1\\nimport-module CimCmdlets\\nGet-CimInstance -Namespace root/cimv2 -ClassName Win32_PhysicalMemory\\n\"\r\n }\r\n export const Get_CimWin32Processor = {\r\n command: 'Get-CimWin32Processor',\r\n script: \"##Get-CimWin32Processor##:Get-CimWin32Processor.ps1\\nimport-module CimCmdlets\\nGet-CimInstance -Namespace root/cimv2 -ClassName Win32_Processor\\n\"\r\n }\r\n export const Get_ClusterInventory = {\r\n command: 'Get-ClusterInventory',\r\n script: \"##Get-ClusterInventory##:Get-ClusterInventory.ps1\\nImport-Module CimCmdlets -ErrorAction SilentlyContinue\\nImport-Module FailoverClusters -ErrorAction SilentlyContinue\\nImport-Module Storage -ErrorAction SilentlyContinue\\nfunction getComputerName() {\\n$computerSystem = Get-CimInstance Win32_ComputerSystem -ErrorAction SilentlyContinue | Microsoft.PowerShell.Utility\\\\Select-Object Name, DNSHostName\\nif ($computerSystem) {\\n$computerName = $computerSystem.DNSHostName\\nif ($null -eq $computerName) {\\n$computerName = $computerSystem.Name\\n}\\nreturn $computerName\\n}\\nreturn $null\\n}\\nfunction getIsClusterCmdletAvailable() {\\n$cmdlet = Get-Command \\\"Get-Cluster\\\" -ErrorAction SilentlyContinue\\nreturn !!$cmdlet\\n}\\nfunction getClusterCimInstance() {\\n$namespace = Get-CimInstance -Namespace root/MSCluster -ClassName __NAMESPACE -ErrorAction SilentlyContinue\\nif ($namespace) {\\nreturn Get-CimInstance -Namespace root/mscluster MSCluster_Cluster -ErrorAction SilentlyContinue | Microsoft.PowerShell.Utility\\\\Select-Object fqdn, S2DEnabled\\n}\\nreturn $null\\n}\\nfunction getClusterPerformanceHistoryPath() {\\n$storageSubsystem = Get-StorageSubSystem clus* -ErrorAction SilentlyContinue\\n$storageHealthSettings = Get-StorageHealthSetting -InputObject $storageSubsystem -Name \\\"System.PerformanceHistory.Path\\\" -ErrorAction SilentlyContinue\\nreturn $null -ne $storageHealthSettings\\n}\\nfunction getClusterInfo() {\\n$returnValues = @{}\\n$returnValues.Fqdn = $null\\n$returnValues.isS2DEnabled = $false\\n$returnValues.isTsdbEnabled = $false\\n$cluster = getClusterCimInstance\\nif ($cluster) {\\n$returnValues.Fqdn = $cluster.fqdn\\n$isS2dEnabled = !!(Get-Member -InputObject $cluster -Name \\\"S2DEnabled\\\") -and ($cluster.S2DEnabled -eq 1)\\n$returnValues.isS2DEnabled = $isS2dEnabled\\nif ($isS2DEnabled) {\\n$returnValues.isTsdbEnabled = getClusterPerformanceHistoryPath\\n} else {\\n$returnValues.isTsdbEnabled = $false\\n}\\n}\\nreturn $returnValues\\n}\\nfunction getisClusterHealthCmdletAvailable() {\\n$cmdlet = Get-Command -Name \\\"Get-HealthFault\\\" -ErrorAction SilentlyContinue\\nreturn !!$cmdlet\\n}\\nfunction getIsBritannicaEnabled() {\\nreturn $null -ne (Get-CimInstance -Namespace root/sddc/management -ClassName SDDC_Cluster -ErrorAction SilentlyContinue)\\n}\\nfunction getIsBritannicaVirtualMachineEnabled() {\\nreturn $null -ne (Get-CimInstance -Namespace root/sddc/management -ClassName SDDC_VirtualMachine -ErrorAction SilentlyContinue)\\n}\\nfunction getIsBritannicaVirtualSwitchEnabled() {\\nreturn $null -ne (Get-CimInstance -Namespace root/sddc/management -ClassName SDDC_VirtualSwitch -ErrorAction SilentlyContinue)\\n}\\n$clusterInfo = getClusterInfo\\n$result = New-Object PSObject\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027Fqdn\\u0027 -Value $clusterInfo.Fqdn\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027IsS2DEnabled\\u0027 -Value $clusterInfo.isS2DEnabled\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027IsTsdbEnabled\\u0027 -Value $clusterInfo.isTsdbEnabled\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027IsClusterHealthCmdletAvailable\\u0027 -Value (getIsClusterHealthCmdletAvailable)\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027IsBritannicaEnabled\\u0027 -Value (getIsBritannicaEnabled)\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027IsBritannicaVirtualMachineEnabled\\u0027 -Value (getIsBritannicaVirtualMachineEnabled)\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027IsBritannicaVirtualSwitchEnabled\\u0027 -Value (getIsBritannicaVirtualSwitchEnabled)\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027IsClusterCmdletAvailable\\u0027 -Value (getIsClusterCmdletAvailable)\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027CurrentClusterNode\\u0027 -Value (getComputerName)\\n$result\\n\"\r\n }\r\n export const Get_ClusterNodes = {\r\n command: 'Get-ClusterNodes',\r\n script: \"##Get-ClusterNodes##:Get-ClusterNodes.ps1\\nimport-module CimCmdlets\\nimport-module FailoverClusters -ErrorAction SilentlyContinue\\nSet-Variable -Name LogName -Option Constant -Value \\\"Microsoft-ServerManagementExperience\\\" -ErrorAction SilentlyContinue\\nSet-Variable -Name LogSource -Option Constant -Value \\\"SMEScripts\\\" -ErrorAction SilentlyContinue\\nSet-Variable -Name ScriptName -Option Constant -Value $MyInvocation.ScriptName -ErrorAction SilentlyContinue\\nfunction getClusterPowerShellSupport() {\\n$cmdletInfo = Get-Command \\u0027Get-ClusterNode\\u0027 -ErrorAction SilentlyContinue\\nreturn $cmdletInfo -and $cmdletInfo.Name -eq \\\"Get-ClusterNode\\\"\\n}\\nfunction getClusterNodeCimInstances() {\\nreturn Get-CimInstance -Namespace root/mscluster MSCluster_Node -ErrorAction SilentlyContinue | `\\nMicrosoft.PowerShell.Utility\\\\Select-Object @{Name=\\\"DrainStatus\\\"; Expression={$_.NodeDrainStatus}}, DynamicWeight, Name, NodeWeight, FaultDomain, State\\n}\\nfunction getClusterNodePsInstances() {\\nreturn Get-ClusterNode -ErrorAction SilentlyContinue | Microsoft.PowerShell.Utility\\\\Select-Object DrainStatus, DynamicWeight, Name, NodeWeight, FaultDomain, State\\n}\\nfunction getClusterNodeFqdn([string]$clusterNodeName) {\\nreturn ([System.Net.Dns]::GetHostEntry($clusterNodeName)).HostName\\n}\\nfunction writeToEventLog([string]$message) {\\nMicrosoft.PowerShell.Management\\\\New-EventLog -LogName $LogName -Source $LogSource -ErrorAction SilentlyContinue\\nMicrosoft.PowerShell.Management\\\\Write-EventLog -LogName $LogName -Source $LogSource -EventId 0 -Category 0 -EntryType Warning `\\n-Message $message -ErrorAction SilentlyContinue\\n}\\nfunction getClusterNodes() {\\n$isClusterCmdletAvailable = getClusterPowerShellSupport\\nif ($isClusterCmdletAvailable) {\\n$clusterNodes = getClusterNodePsInstances\\n} else {\\n$clusterNodes = getClusterNodeCimInstances\\n}\\n$clusterNodeMap = @{}\\nforeach ($clusterNode in $clusterNodes) {\\n$clusterNodeName = $clusterNode.Name.ToLower()\\ntry\\n{\\n$clusterNodeFqdn = getClusterNodeFqdn $clusterNodeName -ErrorAction SilentlyContinue\\n}\\ncatch\\n{\\n$clusterNodeFqdn = $clusterNodeName\\nwriteToEventLog \\\"[$ScriptName]: The fqdn for node \\u0027$clusterNodeName\\u0027 could not be obtained. Defaulting to machine name \\u0027$clusterNodeName\\u0027\\\"\\n}\\n$clusterNodeResult = New-Object PSObject\\n$clusterNodeResult | Add-Member -MemberType NoteProperty -Name \\u0027FullyQualifiedDomainName\\u0027 -Value $clusterNodeFqdn\\n$clusterNodeResult | Add-Member -MemberType NoteProperty -Name \\u0027Name\\u0027 -Value $clusterNodeName\\n$clusterNodeResult | Add-Member -MemberType NoteProperty -Name \\u0027DynamicWeight\\u0027 -Value $clusterNode.DynamicWeight\\n$clusterNodeResult | Add-Member -MemberType NoteProperty -Name \\u0027NodeWeight\\u0027 -Value $clusterNode.NodeWeight\\n$clusterNodeResult | Add-Member -MemberType NoteProperty -Name \\u0027FaultDomain\\u0027 -Value $clusterNode.FaultDomain\\n$clusterNodeResult | Add-Member -MemberType NoteProperty -Name \\u0027State\\u0027 -Value $clusterNode.State\\n$clusterNodeResult | Add-Member -MemberType NoteProperty -Name \\u0027DrainStatus\\u0027 -Value $clusterNode.DrainStatus\\n$clusterNodeMap.Add($clusterNodeName, $clusterNodeResult)\\n}\\nreturn $clusterNodeMap\\n}\\ngetClusterNodes\\n\"\r\n }\r\n export const Get_ServerInventory = {\r\n command: 'Get-ServerInventory',\r\n script: \"##Get-ServerInventory##:Get-ServerInventory.ps1\\nSet-StrictMode -Version 5.0\\nImport-Module CimCmdlets\\nImport-Module Storage -ErrorAction SilentlyContinue\\nfunction convertOsVersion([string]$osVersion) {\\n[Ref]$parsedVersion = $null\\nif (![Version]::TryParse($osVersion, $parsedVersion)) {\\nreturn $null\\n}\\n$version = [Version]$parsedVersion.Value\\nreturn New-Object Version -ArgumentList $version.Major, $version.Minor\\n}\\nfunction isCredSSPEnabled() {\\nSet-Variable credSSPServicePath -Option Constant -Value \\\"WSMan:\\\\localhost\\\\Service\\\\Auth\\\\CredSSP\\\"\\nSet-Variable credSSPClientPath -Option Constant -Value \\\"WSMan:\\\\localhost\\\\Client\\\\Auth\\\\CredSSP\\\"\\n$credSSPServerEnabled = $false;\\n$credSSPClientEnabled = $false;\\n$credSSPServerService = Get-Item $credSSPServicePath -ErrorAction SilentlyContinue\\nif ($credSSPServerService) {\\n$credSSPServerEnabled = [System.Convert]::ToBoolean($credSSPServerService.Value)\\n}\\n$credSSPClientService = Get-Item $credSSPClientPath -ErrorAction SilentlyContinue\\nif ($credSSPClientService) {\\n$credSSPClientEnabled = [System.Convert]::ToBoolean($credSSPClientService.Value)\\n}\\nreturn ($credSSPServerEnabled -or $credSSPClientEnabled)\\n}\\nfunction isHyperVRoleInstalled() {\\n$vmmsService = Get-Service -Name \\\"VMMS\\\" -ErrorAction SilentlyContinue\\nreturn $vmmsService -and $vmmsService.Name -eq \\\"VMMS\\\"\\n}\\nfunction isHyperVPowerShellSupportInstalled() {\\nreturn !!(Get-Module -ListAvailable Hyper-V -ErrorAction SilentlyContinue)\\n}\\nfunction isWMF5Installed([string] $operatingSystemVersion) {\\nSet-Variable Server2016 -Option Constant -Value (New-Object Version \\u002710.0\\u0027) # And Windows 10 client SKUs\\nSet-Variable Server2012 -Option Constant -Value (New-Object Version \\u00276.2\\u0027)\\n$version = convertOsVersion $operatingSystemVersion\\nif (-not $version) {\\nreturn $false\\n}\\nif ($version -ge $Server2016) {\\nreturn $true\\n}\\nelse {\\nif ($version -ge $Server2012) {\\n$registryKey = \\u0027HKLM:\\\\SOFTWARE\\\\Microsoft\\\\PowerShell\\\\3\\\\PowerShellEngine\\u0027\\n$registryKeyValue = Get-ItemProperty -Path $registryKey -Name PowerShellVersion -ErrorAction SilentlyContinue\\nif ($registryKeyValue -and ($registryKeyValue.PowerShellVersion.Length -ne 0)) {\\n$installedWmfVersion = [Version]$registryKeyValue.PowerShellVersion\\nif ($installedWmfVersion -ge [Version]\\u00275.0\\u0027) {\\nreturn $true\\n}\\n}\\n}\\n}\\nreturn $false\\n}\\nfunction isUserAnAdministrator() {\\nreturn ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] \\\"Administrator\\\")\\n}\\nfunction getClusterInformation() {\\n$returnValues = @{ }\\n$returnValues.IsS2dEnabled = $false\\n$returnValues.IsCluster = $false\\n$returnValues.ClusterFqdn = $null\\n$returnValues.IsBritannicaEnabled = $false\\n$namespace = Get-CimInstance -Namespace root/MSCluster -ClassName __NAMESPACE -ErrorAction SilentlyContinue\\nif ($namespace) {\\n$cluster = Get-CimInstance -Namespace root/MSCluster -ClassName MSCluster_Cluster -ErrorAction SilentlyContinue\\nif ($cluster) {\\n$returnValues.IsCluster = $true\\n$returnValues.ClusterFqdn = $cluster.Fqdn\\n$returnValues.IsS2dEnabled = !!(Get-Member -InputObject $cluster -Name \\\"S2DEnabled\\\") -and ($cluster.S2DEnabled -gt 0)\\n$returnValues.IsBritannicaEnabled = $null -ne (Get-CimInstance -Namespace root/sddc/management -ClassName SDDC_Cluster -ErrorAction SilentlyContinue)\\n}\\n}\\nreturn $returnValues\\n}\\nfunction getComputerFqdnAndAddress($computerName) {\\n$hostEntry = [System.Net.Dns]::GetHostEntry($computerName)\\n$addressList = @()\\nforeach ($item in $hostEntry.AddressList) {\\n$address = New-Object PSObject\\n$address | Add-Member -MemberType NoteProperty -Name \\u0027IpAddress\\u0027 -Value $item.ToString()\\n$address | Add-Member -MemberType NoteProperty -Name \\u0027AddressFamily\\u0027 -Value $item.AddressFamily.ToString()\\n$addressList += $address\\n}\\n$result = New-Object PSObject\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027Fqdn\\u0027 -Value $hostEntry.HostName\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027AddressList\\u0027 -Value $addressList\\nreturn $result\\n}\\nfunction getHostFqdnAndAddress($computerSystem) {\\n$computerName = $computerSystem.DNSHostName\\nif (!$computerName) {\\n$computerName = $computerSystem.Name\\n}\\nreturn getComputerFqdnAndAddress $computerName\\n}\\nfunction getManagementToolsSupportInformation() {\\n$returnValues = @{ }\\n$returnValues.ManagementToolsAvailable = $false\\n$returnValues.ServerManagerAvailable = $false\\n$namespaces = Get-CimInstance -Namespace root/microsoft/windows -ClassName __NAMESPACE -ErrorAction SilentlyContinue\\nif ($namespaces) {\\n$returnValues.ManagementToolsAvailable = !!($namespaces | Where-Object { $_.Name -ieq \\\"ManagementTools\\\" })\\n$returnValues.ServerManagerAvailable = !!($namespaces | Where-Object { $_.Name -ieq \\\"ServerManager\\\" })\\n}\\nreturn $returnValues\\n}\\nfunction isRemoteAppEnabled() {\\nSet-Variable key -Option Constant -Value \\\"HKLM:\\\\\\\\SOFTWARE\\\\\\\\Microsoft\\\\\\\\Windows NT\\\\\\\\CurrentVersion\\\\\\\\Terminal Server\\\\\\\\TSAppAllowList\\\"\\n$registryKeyValue = Get-ItemProperty -Path $key -Name fDisabledAllowList -ErrorAction SilentlyContinue\\nif (-not $registryKeyValue) {\\nreturn $false\\n}\\nreturn $registryKeyValue.fDisabledAllowList -eq 1\\n}\\nfunction getOperatingSystemInfo() {\\n$operatingSystemInfo = Get-CimInstance Win32_OperatingSystem | Microsoft.PowerShell.Utility\\\\Select-Object csName, Caption, OperatingSystemSKU, Version, ProductType, OSType, LastBootUpTime, SerialNumber\\n$currentVersion = Get-ItemProperty -Path \\\"HKLM:\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\" | Microsoft.PowerShell.Utility\\\\Select-Object CurrentBuild, UBR, DisplayVersion\\n$operatingSystemInfo | Add-Member -MemberType NoteProperty -Name CurrentBuild -Value $currentVersion.CurrentBuild\\n$operatingSystemInfo | Add-Member -MemberType NoteProperty -Name UpdateBuildRevision -Value $currentVersion.UBR\\n$operatingSystemInfo | Add-Member -MemberType NoteProperty -Name DisplayVersion -Value $currentVersion.DisplayVersion\\nreturn $operatingSystemInfo\\n}\\nfunction getComputerSystemInfo() {\\nreturn Get-CimInstance Win32_ComputerSystem -ErrorAction SilentlyContinue | `\\nMicrosoft.PowerShell.Utility\\\\Select-Object TotalPhysicalMemory, DomainRole, Manufacturer, Model, NumberOfLogicalProcessors, Domain, Workgroup, DNSHostName, Name, PartOfDomain, SystemFamily, SystemSKUNumber\\n}\\nfunction getSmbiosData($computerSystem) {\\n$ChassisTypes =\\n@{\\n1 = \\u0027Other\\u0027\\n2 = \\u0027Unknown\\u0027\\n3 = \\u0027Desktop\\u0027\\n4 = \\u0027Low Profile Desktop\\u0027\\n5 = \\u0027Pizza Box\\u0027\\n6 = \\u0027Mini Tower\\u0027\\n7 = \\u0027Tower\\u0027\\n8 = \\u0027Portable\\u0027\\n9 = \\u0027Laptop\\u0027\\n10 = \\u0027Notebook\\u0027\\n11 = \\u0027Hand Held\\u0027\\n12 = \\u0027Docking Station\\u0027\\n13 = \\u0027All in One\\u0027\\n14 = \\u0027Sub Notebook\\u0027\\n15 = \\u0027Space-Saving\\u0027\\n16 = \\u0027Lunch Box\\u0027\\n17 = \\u0027Main System Chassis\\u0027\\n18 = \\u0027Expansion Chassis\\u0027\\n19 = \\u0027SubChassis\\u0027\\n20 = \\u0027Bus Expansion Chassis\\u0027\\n21 = \\u0027Peripheral Chassis\\u0027\\n22 = \\u0027Storage Chassis\\u0027\\n23 = \\u0027Rack Mount Chassis\\u0027\\n24 = \\u0027Sealed-Case PC\\u0027\\n25 = \\u0027Multi-system chassis\\u0027\\n26 = \\u0027Compact PCI\\u0027\\n27 = \\u0027Advanced TCA\\u0027\\n28 = \\u0027Blade\\u0027\\n29 = \\u0027Blade Enclosure\\u0027\\n30 = \\u0027Tablet\\u0027\\n31 = \\u0027Convertible\\u0027\\n32 = \\u0027Detachable\\u0027\\n33 = \\u0027IoT Gateway\\u0027\\n34 = \\u0027Embedded PC\\u0027\\n35 = \\u0027Mini PC\\u0027\\n36 = \\u0027Stick PC\\u0027\\n}\\n$list = New-Object System.Collections.ArrayList\\n$win32_Bios = Get-CimInstance -class Win32_Bios\\n$obj = New-Object -Type PSObject | Microsoft.PowerShell.Utility\\\\Select-Object SerialNumber, Manufacturer, UUID, BaseBoardProduct, ChassisTypes, Chassis, SystemFamily, SystemSKUNumber, SMBIOSAssetTag\\n$obj.SerialNumber = $win32_Bios.SerialNumber\\n$obj.Manufacturer = $win32_Bios.Manufacturer\\n$computerSystemProduct = Get-CimInstance Win32_ComputerSystemProduct\\nif ($null -ne $computerSystemProduct) {\\n$obj.UUID = $computerSystemProduct.UUID\\n}\\n$baseboard = Get-CimInstance Win32_BaseBoard\\nif ($null -ne $baseboard) {\\n$obj.BaseBoardProduct = $baseboard.Product\\n}\\n$systemEnclosure = Get-CimInstance Win32_SystemEnclosure\\nif ($null -ne $systemEnclosure) {\\n$obj.SMBIOSAssetTag = $systemEnclosure.SMBIOSAssetTag\\n}\\n$obj.ChassisTypes = Get-CimInstance Win32_SystemEnclosure | Microsoft.PowerShell.Utility\\\\Select-Object -ExpandProperty ChassisTypes\\n$obj.Chassis = New-Object -TypeName \\u0027System.Collections.ArrayList\\u0027\\n$obj.ChassisTypes | ForEach-Object -Process {\\n$obj.Chassis.Add($ChassisTypes[[int]$_])\\n}\\n$obj.SystemFamily = $computerSystem.SystemFamily\\n$obj.SystemSKUNumber = $computerSystem.SystemSKUNumber\\n$list.Add($obj) | Out-Null\\nreturn $list\\n}\\nfunction getAzureArcStatus() {\\n$LogName = \\\"Microsoft-ServerManagementExperience\\\"\\n$LogSource = \\\"SMEScript\\\"\\n$ScriptName = \\\"Get-ServerInventory.ps1 - getAzureArcStatus()\\\"\\nMicrosoft.PowerShell.Management\\\\New-EventLog -LogName $LogName -Source $LogSource -ErrorAction SilentlyContinue\\nGet-Service -Name himds -ErrorVariable Err -ErrorAction SilentlyContinue | Out-Null\\nif (!!$Err) {\\n$Err = \\\"The Azure arc agent is not installed. Details: $Err\\\"\\nMicrosoft.PowerShell.Management\\\\Write-EventLog -LogName $LogName -Source $LogSource -EventId 0 -Category 0 -EntryType Information `\\n-Message \\\"[$ScriptName]: $Err\\\" -ErrorAction SilentlyContinue\\n$status = \\\"NotInstalled\\\"\\n}\\nelse {\\n$status = (azcmagent show --json | ConvertFrom-Json -ErrorAction Stop).status\\n}\\nreturn $status\\n}\\nfunction getSystemLockdownPolicy() {\\nreturn [System.Management.Automation.Security.SystemPolicy]::GetSystemLockdownPolicy().ToString()\\n}\\nfunction isServerOsHCI([string] $operatingSystemCaption) {\\nreturn $operatingSystemCaption -eq \\\"Microsoft Azure Stack HCI\\\"\\n}\\n$operatingSystem = getOperatingSystemInfo\\n$computerSystem = getComputerSystemInfo\\n$isAdministrator = isUserAnAdministrator\\n$fqdnAndAddress = getHostFqdnAndAddress $computerSystem\\n$hostname = [Environment]::MachineName\\n$netbios = $env:ComputerName\\n$managementToolsInformation = getManagementToolsSupportInformation\\n$isWmfInstalled = isWMF5Installed $operatingSystem.Version\\n$clusterInformation = getClusterInformation -ErrorAction SilentlyContinue\\n$isHyperVPowershellInstalled = isHyperVPowerShellSupportInstalled\\n$isHyperVRoleInstalled = isHyperVRoleInstalled\\n$isCredSSPEnabled = isCredSSPEnabled\\n$isRemoteAppEnabled = isRemoteAppEnabled\\n$smbiosData = getSmbiosData $computerSystem\\n$azureArcStatus = getAzureArcStatus\\n$systemLockdownPolicy = getSystemLockdownPolicy\\n$isHciServer = isServerOsHCI $operatingSystem.Caption\\n$result = New-Object PSObject\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027IsAdministrator\\u0027 -Value $isAdministrator\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027OperatingSystem\\u0027 -Value $operatingSystem\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027ComputerSystem\\u0027 -Value $computerSystem\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027Fqdn\\u0027 -Value $fqdnAndAddress.Fqdn\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027AddressList\\u0027 -Value $fqdnAndAddress.AddressList\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027Hostname\\u0027 -Value $hostname\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027NetBios\\u0027 -Value $netbios\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027IsManagementToolsAvailable\\u0027 -Value $managementToolsInformation.ManagementToolsAvailable\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027IsServerManagerAvailable\\u0027 -Value $managementToolsInformation.ServerManagerAvailable\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027IsWmfInstalled\\u0027 -Value $isWmfInstalled\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027IsCluster\\u0027 -Value $clusterInformation.IsCluster\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027ClusterFqdn\\u0027 -Value $clusterInformation.ClusterFqdn\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027IsS2dEnabled\\u0027 -Value $clusterInformation.IsS2dEnabled\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027IsBritannicaEnabled\\u0027 -Value $clusterInformation.IsBritannicaEnabled\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027IsHyperVRoleInstalled\\u0027 -Value $isHyperVRoleInstalled\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027IsHyperVPowershellInstalled\\u0027 -Value $isHyperVPowershellInstalled\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027IsCredSSPEnabled\\u0027 -Value $isCredSSPEnabled\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027IsRemoteAppEnabled\\u0027 -Value $isRemoteAppEnabled\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027SmbiosData\\u0027 -Value $smbiosData\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027AzureArcStatus\\u0027 -Value $azureArcStatus\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027SystemLockdownPolicy\\u0027 -Value $systemLockdownPolicy\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027IsHciServer\\u0027 -Value $isHciServer\\n$result\\n\"\r\n }\r\n}\r\n"]}
1
+ {"version":3,"sources":["../../../packages/core/generated/powershell-scripts.ts"],"names":[],"mappings":"AACA;;;GAGG;AACH,sBAAc,iBAAiB,CAAC;IAGrB,MAAM,MAAM,wBAAwB,CAAC;IACrC,MAAM,YAAY,iBAAiB,CAAC;IACpC,MAAM,gBAAgB,UAAU,CAAC;IACjC,MAAM,qBAAqB;;;KAGjC,CAAA;IACM,MAAM,WAAW;;;KAGvB,CAAA;IACM,MAAM,yBAAyB;;;KAGrC,CAAA;IACM,MAAM,uBAAuB;;;KAGnC,CAAA;IACM,MAAM,uBAAuB;;;KAGnC,CAAA;IACM,MAAM,0BAA0B;;;KAGtC,CAAA;IACM,MAAM,0BAA0B;;;KAGtC,CAAA;IACM,MAAM,qBAAqB;;;KAGjC,CAAA;IACM,MAAM,oBAAoB;;;KAGhC,CAAA;IACM,MAAM,gBAAgB;;;KAG5B,CAAA;IACM,MAAM,mBAAmB;;;KAG/B,CAAA;CACJ","file":"powershell-scripts.d.ts","sourcesContent":["/* eslint:disable */\r\n/**\r\n * @file Source code generated by gulp-ps-code.\r\n * @version 1.1\r\n */\r\nexport module PowerShellScripts {\r\n 'use strict'\r\n\r\n export const module = 'Microsoft.SME.Shell';\r\n export const resourceName = 'MsftSmeShell';\r\n export const powerShellPrefix = 'WACSH';\r\n export const Start_ScheduledReboot = {\r\n command: 'Start-ScheduledReboot',\r\n script: \"##Start-ScheduledReboot##:Start-ScheduledReboot.ps1\\nparam (\\n[Parameter(Mandatory = $true)]\\n[bool]$restartlater,\\n[Parameter(Mandatory = $false)]\\n[String]$restartTime,\\n[Parameter(Mandatory = $false)]\\n[String]$restartReason,\\n[Parameter(Mandatory = $false)]\\n[System.Int16]$reasonNumberMajor,\\n[Parameter(Mandatory = $false)]\\n[System.Int16]$reasonNumberMinor\\n)\\n$waitTime = 5\\nif ($restartlater -and -not($restartTime)) {\\n$waitTime = 30\\n} elseif ($restartTime) {\\n$waitTime = [decimal]::round(((Get-Date $restartTime) - (Get-Date)).TotalSeconds);\\nif ($waitTime -gt (315360000 - 30)) {\\nTHROW \\\"Invalid restart time $restartTime. The valid range is 0-315360000s (10 years), with a default of 30\\\"\\n}\\n}\\nif ($waitTime -lt 5 ) {\\n$waitTime = 5\\n}\\n$command = \\\"Shutdown /r /t $waitTime\\\"\\nif ($restartReason -and ($reasonNumberMajor -ne $null) -and ($reasonNumberMinor -ne $null)) {\\n$command += \\\" /d ${restartReason}:${reasonNumberMajor}:${reasonNumberMinor}\\\"\\n}\\nInvoke-Expression -Command $command\\n\"\r\n }\r\n export const Stop_Reboot = {\r\n command: 'Stop-Reboot',\r\n script: \"##Stop-Reboot##:Stop-Reboot.ps1\\n$command = \\\"Shutdown /a\\\"\\nInvoke-Expression -Command $command\\n\"\r\n }\r\n export const Get_DecryptedDataFromNode = {\r\n command: 'Get-DecryptedDataFromNode',\r\n script: \"##Get-DecryptedDataFromNode##:Get-DecryptedDataFromNode.ps1\\nparam (\\n[Parameter(Mandatory = $true)]\\n[String]\\n$encryptedData\\n)\\nSet-StrictMode -Version 5.0\\nNew-Variable -Name rsaProviderInstanceName -Value \\\"RSA\\\" -Option Constant\\nfunction DecryptDataWithJWKOnNode {\\nif(Get-Variable -Scope Global -Name $rsaProviderInstanceName -EA SilentlyContinue) {\\n$rsaProvider = (Get-Variable -Scope Global -Name $rsaProviderInstanceName).Value\\n$decryptedBytes = $rsaProvider.Decrypt([Convert]::FromBase64String($encryptedData), [System.Security.Cryptography.RSAEncryptionPadding]::OaepSHA1)\\nreturn [System.Text.Encoding]::UTF8.GetString($decryptedBytes)\\n}\\nthrow [System.InvalidOperationException] \\\"Password decryption failed. RSACryptoServiceProvider Instance not found\\\"\\n}\\n\"\r\n }\r\n export const Get_EncryptionJWKOnNode = {\r\n command: 'Get-EncryptionJWKOnNode',\r\n script: \"##Get-EncryptionJWKOnNode##:Get-EncryptionJWKOnNode.ps1\\nSet-StrictMode -Version 5.0\\nNew-Variable -Name rsaProviderInstanceName -Value \\\"RSA\\\" -Option Constant\\nfunction Get-RSAProvider\\n{\\nif(Get-Variable -Scope Global -Name $rsaProviderInstanceName -EA SilentlyContinue)\\n{\\nreturn (Get-Variable -Scope Global -Name $rsaProviderInstanceName).Value\\n}\\n$Global:RSA = New-Object System.Security.Cryptography.RSACryptoServiceProvider -ArgumentList 4096\\nreturn $RSA\\n}\\nfunction Get-JsonWebKey\\n{\\n$rsaProvider = Get-RSAProvider\\n$parameters = $rsaProvider.ExportParameters($false)\\nreturn [PSCustomObject]@{\\nkty = \\u0027RSA\\u0027\\nalg = \\u0027RSA-OAEP\\u0027\\ne = [Convert]::ToBase64String($parameters.Exponent)\\nn = [Convert]::ToBase64String($parameters.Modulus).TrimEnd(\\u0027=\\u0027).Replace(\\u0027+\\u0027, \\u0027-\\u0027).Replace(\\u0027/\\u0027, \\u0027_\\u0027)\\n}\\n}\\n$jwk = Get-JsonWebKey\\nConvertTo-Json $jwk -Compress\\n\"\r\n }\r\n export const Get_CimWin32LogicalDisk = {\r\n command: 'Get-CimWin32LogicalDisk',\r\n script: \"##Get-CimWin32LogicalDisk##:Get-CimWin32LogicalDisk.ps1\\nimport-module CimCmdlets\\nGet-CimInstance -Namespace root/cimv2 -ClassName Win32_LogicalDisk\\n\"\r\n }\r\n export const Get_CimWin32NetworkAdapter = {\r\n command: 'Get-CimWin32NetworkAdapter',\r\n script: \"##Get-CimWin32NetworkAdapter##:Get-CimWin32NetworkAdapter.ps1\\nimport-module CimCmdlets\\nGet-CimInstance -Namespace root/cimv2 -ClassName Win32_NetworkAdapter\\n\"\r\n }\r\n export const Get_CimWin32PhysicalMemory = {\r\n command: 'Get-CimWin32PhysicalMemory',\r\n script: \"##Get-CimWin32PhysicalMemory##:Get-CimWin32PhysicalMemory.ps1\\nimport-module CimCmdlets\\nGet-CimInstance -Namespace root/cimv2 -ClassName Win32_PhysicalMemory\\n\"\r\n }\r\n export const Get_CimWin32Processor = {\r\n command: 'Get-CimWin32Processor',\r\n script: \"##Get-CimWin32Processor##:Get-CimWin32Processor.ps1\\nimport-module CimCmdlets\\nGet-CimInstance -Namespace root/cimv2 -ClassName Win32_Processor\\n\"\r\n }\r\n export const Get_ClusterInventory = {\r\n command: 'Get-ClusterInventory',\r\n script: \"##Get-ClusterInventory##:Get-ClusterInventory.ps1\\nImport-Module CimCmdlets -ErrorAction SilentlyContinue\\nImport-Module FailoverClusters -ErrorAction SilentlyContinue\\nImport-Module Storage -ErrorAction SilentlyContinue\\nfunction getComputerName() {\\n$computerSystem = Get-CimInstance Win32_ComputerSystem -ErrorAction SilentlyContinue | Microsoft.PowerShell.Utility\\\\Select-Object Name, DNSHostName\\nif ($computerSystem) {\\n$computerName = $computerSystem.DNSHostName\\nif ($null -eq $computerName) {\\n$computerName = $computerSystem.Name\\n}\\nreturn $computerName\\n}\\nreturn $null\\n}\\nfunction getIsClusterCmdletAvailable() {\\n$cmdlet = Get-Command \\\"Get-Cluster\\\" -ErrorAction SilentlyContinue\\nreturn !!$cmdlet\\n}\\nfunction getClusterCimInstance() {\\n$namespace = Get-CimInstance -Namespace root/MSCluster -ClassName __NAMESPACE -ErrorAction SilentlyContinue\\nif ($namespace) {\\nreturn Get-CimInstance -Namespace root/mscluster MSCluster_Cluster -ErrorAction SilentlyContinue | Microsoft.PowerShell.Utility\\\\Select-Object fqdn, S2DEnabled\\n}\\nreturn $null\\n}\\nfunction getClusterPerformanceHistoryPath() {\\n$storageSubsystem = Get-StorageSubSystem clus* -ErrorAction SilentlyContinue\\n$storageHealthSettings = Get-StorageHealthSetting -InputObject $storageSubsystem -Name \\\"System.PerformanceHistory.Path\\\" -ErrorAction SilentlyContinue\\nreturn $null -ne $storageHealthSettings\\n}\\nfunction getClusterInfo() {\\n$returnValues = @{}\\n$returnValues.Fqdn = $null\\n$returnValues.isS2DEnabled = $false\\n$returnValues.isTsdbEnabled = $false\\n$cluster = getClusterCimInstance\\nif ($cluster) {\\n$returnValues.Fqdn = $cluster.fqdn\\n$isS2dEnabled = !!(Get-Member -InputObject $cluster -Name \\\"S2DEnabled\\\") -and ($cluster.S2DEnabled -eq 1)\\n$returnValues.isS2DEnabled = $isS2dEnabled\\nif ($isS2DEnabled) {\\n$returnValues.isTsdbEnabled = getClusterPerformanceHistoryPath\\n} else {\\n$returnValues.isTsdbEnabled = $false\\n}\\n}\\nreturn $returnValues\\n}\\nfunction getisClusterHealthCmdletAvailable() {\\n$cmdlet = Get-Command -Name \\\"Get-HealthFault\\\" -ErrorAction SilentlyContinue\\nreturn !!$cmdlet\\n}\\nfunction getIsBritannicaEnabled() {\\nreturn $null -ne (Get-CimInstance -Namespace root/sddc/management -ClassName SDDC_Cluster -ErrorAction SilentlyContinue)\\n}\\nfunction getIsBritannicaVirtualMachineEnabled() {\\nreturn $null -ne (Get-CimInstance -Namespace root/sddc/management -ClassName SDDC_VirtualMachine -ErrorAction SilentlyContinue)\\n}\\nfunction getIsBritannicaVirtualSwitchEnabled() {\\nreturn $null -ne (Get-CimInstance -Namespace root/sddc/management -ClassName SDDC_VirtualSwitch -ErrorAction SilentlyContinue)\\n}\\n$clusterInfo = getClusterInfo\\n$result = New-Object PSObject\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027Fqdn\\u0027 -Value $clusterInfo.Fqdn\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027IsS2DEnabled\\u0027 -Value $clusterInfo.isS2DEnabled\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027IsTsdbEnabled\\u0027 -Value $clusterInfo.isTsdbEnabled\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027IsClusterHealthCmdletAvailable\\u0027 -Value (getIsClusterHealthCmdletAvailable)\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027IsBritannicaEnabled\\u0027 -Value (getIsBritannicaEnabled)\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027IsBritannicaVirtualMachineEnabled\\u0027 -Value (getIsBritannicaVirtualMachineEnabled)\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027IsBritannicaVirtualSwitchEnabled\\u0027 -Value (getIsBritannicaVirtualSwitchEnabled)\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027IsClusterCmdletAvailable\\u0027 -Value (getIsClusterCmdletAvailable)\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027CurrentClusterNode\\u0027 -Value (getComputerName)\\n$result\\n\"\r\n }\r\n export const Get_ClusterNodes = {\r\n command: 'Get-ClusterNodes',\r\n script: \"##Get-ClusterNodes##:Get-ClusterNodes.ps1\\nimport-module CimCmdlets\\nimport-module FailoverClusters -ErrorAction SilentlyContinue\\nSet-Variable -Name LogName -Option Constant -Value \\\"Microsoft-ServerManagementExperience\\\" -ErrorAction SilentlyContinue\\nSet-Variable -Name LogSource -Option Constant -Value \\\"SMEScripts\\\" -ErrorAction SilentlyContinue\\nSet-Variable -Name ScriptName -Option Constant -Value $MyInvocation.ScriptName -ErrorAction SilentlyContinue\\nfunction getClusterPowerShellSupport() {\\n$cmdletInfo = Get-Command \\u0027Get-ClusterNode\\u0027 -ErrorAction SilentlyContinue\\nreturn $cmdletInfo -and $cmdletInfo.Name -eq \\\"Get-ClusterNode\\\"\\n}\\nfunction getClusterNodeCimInstances() {\\nreturn Get-CimInstance -Namespace root/mscluster MSCluster_Node -ErrorAction SilentlyContinue | `\\nMicrosoft.PowerShell.Utility\\\\Select-Object @{Name=\\\"DrainStatus\\\"; Expression={$_.NodeDrainStatus}}, DynamicWeight, Name, NodeWeight, FaultDomain, State\\n}\\nfunction getClusterNodePsInstances() {\\nreturn Get-ClusterNode -ErrorAction SilentlyContinue | Microsoft.PowerShell.Utility\\\\Select-Object DrainStatus, DynamicWeight, Name, NodeWeight, FaultDomain, State\\n}\\nfunction getClusterNodeFqdn([string]$clusterNodeName) {\\nreturn ([System.Net.Dns]::GetHostEntry($clusterNodeName)).HostName\\n}\\nfunction writeToEventLog([string]$message) {\\nMicrosoft.PowerShell.Management\\\\New-EventLog -LogName $LogName -Source $LogSource -ErrorAction SilentlyContinue\\nMicrosoft.PowerShell.Management\\\\Write-EventLog -LogName $LogName -Source $LogSource -EventId 0 -Category 0 -EntryType Warning `\\n-Message $message -ErrorAction SilentlyContinue\\n}\\nfunction getClusterNodes() {\\n$isClusterCmdletAvailable = getClusterPowerShellSupport\\nif ($isClusterCmdletAvailable) {\\n$clusterNodes = getClusterNodePsInstances\\n} else {\\n$clusterNodes = getClusterNodeCimInstances\\n}\\n$clusterNodeMap = @{}\\nforeach ($clusterNode in $clusterNodes) {\\n$clusterNodeName = $clusterNode.Name.ToLower()\\ntry\\n{\\n$clusterNodeFqdn = getClusterNodeFqdn $clusterNodeName -ErrorAction SilentlyContinue\\n}\\ncatch\\n{\\n$clusterNodeFqdn = $clusterNodeName\\nwriteToEventLog \\\"[$ScriptName]: The fqdn for node \\u0027$clusterNodeName\\u0027 could not be obtained. Defaulting to machine name \\u0027$clusterNodeName\\u0027\\\"\\n}\\n$clusterNodeResult = New-Object PSObject\\n$clusterNodeResult | Add-Member -MemberType NoteProperty -Name \\u0027FullyQualifiedDomainName\\u0027 -Value $clusterNodeFqdn\\n$clusterNodeResult | Add-Member -MemberType NoteProperty -Name \\u0027Name\\u0027 -Value $clusterNodeName\\n$clusterNodeResult | Add-Member -MemberType NoteProperty -Name \\u0027DynamicWeight\\u0027 -Value $clusterNode.DynamicWeight\\n$clusterNodeResult | Add-Member -MemberType NoteProperty -Name \\u0027NodeWeight\\u0027 -Value $clusterNode.NodeWeight\\n$clusterNodeResult | Add-Member -MemberType NoteProperty -Name \\u0027FaultDomain\\u0027 -Value $clusterNode.FaultDomain\\n$clusterNodeResult | Add-Member -MemberType NoteProperty -Name \\u0027State\\u0027 -Value $clusterNode.State\\n$clusterNodeResult | Add-Member -MemberType NoteProperty -Name \\u0027DrainStatus\\u0027 -Value $clusterNode.DrainStatus\\n$clusterNodeMap.Add($clusterNodeName, $clusterNodeResult)\\n}\\nreturn $clusterNodeMap\\n}\\ngetClusterNodes\\n\"\r\n }\r\n export const Get_ServerInventory = {\r\n command: 'Get-ServerInventory',\r\n script: \"##Get-ServerInventory##:Get-ServerInventory.ps1\\nSet-StrictMode -Version 5.0\\nImport-Module CimCmdlets\\nImport-Module Storage -ErrorAction SilentlyContinue\\nfunction convertOsVersion([string]$osVersion) {\\n[Ref]$parsedVersion = $null\\nif (![Version]::TryParse($osVersion, $parsedVersion)) {\\nreturn $null\\n}\\n$version = [Version]$parsedVersion.Value\\nreturn New-Object Version -ArgumentList $version.Major, $version.Minor\\n}\\nfunction isCredSSPEnabled() {\\nSet-Variable credSSPServicePath -Option Constant -Value \\\"WSMan:\\\\localhost\\\\Service\\\\Auth\\\\CredSSP\\\"\\nSet-Variable credSSPClientPath -Option Constant -Value \\\"WSMan:\\\\localhost\\\\Client\\\\Auth\\\\CredSSP\\\"\\n$credSSPServerEnabled = $false;\\n$credSSPClientEnabled = $false;\\n$credSSPServerService = Get-Item $credSSPServicePath -ErrorAction SilentlyContinue\\nif ($credSSPServerService) {\\n$credSSPServerEnabled = [System.Convert]::ToBoolean($credSSPServerService.Value)\\n}\\n$credSSPClientService = Get-Item $credSSPClientPath -ErrorAction SilentlyContinue\\nif ($credSSPClientService) {\\n$credSSPClientEnabled = [System.Convert]::ToBoolean($credSSPClientService.Value)\\n}\\nreturn ($credSSPServerEnabled -or $credSSPClientEnabled)\\n}\\nfunction isHyperVRoleInstalled() {\\n$vmmsService = Get-Service -Name \\\"VMMS\\\" -ErrorAction SilentlyContinue\\nreturn $vmmsService -and $vmmsService.Name -eq \\\"VMMS\\\"\\n}\\nfunction isHyperVPowerShellSupportInstalled() {\\nreturn !!(Get-Module -ListAvailable Hyper-V -ErrorAction SilentlyContinue)\\n}\\nfunction isWMF5Installed([string] $operatingSystemVersion) {\\nSet-Variable Server2016 -Option Constant -Value (New-Object Version \\u002710.0\\u0027) # And Windows 10 client SKUs\\nSet-Variable Server2012 -Option Constant -Value (New-Object Version \\u00276.2\\u0027)\\n$version = convertOsVersion $operatingSystemVersion\\nif (-not $version) {\\nreturn $false\\n}\\nif ($version -ge $Server2016) {\\nreturn $true\\n}\\nelse {\\nif ($version -ge $Server2012) {\\n$registryKey = \\u0027HKLM:\\\\SOFTWARE\\\\Microsoft\\\\PowerShell\\\\3\\\\PowerShellEngine\\u0027\\n$registryKeyValue = Get-ItemProperty -Path $registryKey -Name PowerShellVersion -ErrorAction SilentlyContinue\\nif ($registryKeyValue -and ($registryKeyValue.PowerShellVersion.Length -ne 0)) {\\n$installedWmfVersion = [Version]$registryKeyValue.PowerShellVersion\\nif ($installedWmfVersion -ge [Version]\\u00275.0\\u0027) {\\nreturn $true\\n}\\n}\\n}\\n}\\nreturn $false\\n}\\nfunction isUserAnAdministrator() {\\nreturn ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] \\\"Administrator\\\")\\n}\\nfunction getClusterInformation() {\\n$returnValues = @{ }\\n$returnValues.IsS2dEnabled = $false\\n$returnValues.IsCluster = $false\\n$returnValues.ClusterFqdn = $null\\n$returnValues.IsBritannicaEnabled = $false\\n$namespace = Get-CimInstance -Namespace root/MSCluster -ClassName __NAMESPACE -ErrorAction SilentlyContinue\\nif ($namespace) {\\n$cluster = Get-CimInstance -Namespace root/MSCluster -ClassName MSCluster_Cluster -ErrorAction SilentlyContinue\\nif ($cluster) {\\n$returnValues.IsCluster = $true\\n$returnValues.ClusterFqdn = $cluster.Fqdn\\n$returnValues.IsS2dEnabled = !!(Get-Member -InputObject $cluster -Name \\\"S2DEnabled\\\") -and ($cluster.S2DEnabled -gt 0)\\n$returnValues.IsBritannicaEnabled = $null -ne (Get-CimInstance -Namespace root/sddc/management -ClassName SDDC_Cluster -ErrorAction SilentlyContinue)\\n}\\n}\\nreturn $returnValues\\n}\\nfunction getComputerFqdnAndAddress($computerName) {\\n$hostEntry = [System.Net.Dns]::GetHostEntry($computerName)\\n$addressList = @()\\nforeach ($item in $hostEntry.AddressList) {\\n$address = New-Object PSObject\\n$address | Add-Member -MemberType NoteProperty -Name \\u0027IpAddress\\u0027 -Value $item.ToString()\\n$address | Add-Member -MemberType NoteProperty -Name \\u0027AddressFamily\\u0027 -Value $item.AddressFamily.ToString()\\n$addressList += $address\\n}\\n$result = New-Object PSObject\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027Fqdn\\u0027 -Value $hostEntry.HostName\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027AddressList\\u0027 -Value $addressList\\nreturn $result\\n}\\nfunction getHostFqdnAndAddress($computerSystem) {\\n$computerName = $computerSystem.DNSHostName\\nif (!$computerName) {\\n$computerName = $computerSystem.Name\\n}\\nreturn getComputerFqdnAndAddress $computerName\\n}\\nfunction getManagementToolsSupportInformation() {\\n$returnValues = @{ }\\n$returnValues.ManagementToolsAvailable = $false\\n$returnValues.ServerManagerAvailable = $false\\n$namespaces = Get-CimInstance -Namespace root/microsoft/windows -ClassName __NAMESPACE -ErrorAction SilentlyContinue\\nif ($namespaces) {\\n$returnValues.ManagementToolsAvailable = !!($namespaces | Where-Object { $_.Name -ieq \\\"ManagementTools\\\" })\\n$returnValues.ServerManagerAvailable = !!($namespaces | Where-Object { $_.Name -ieq \\\"ServerManager\\\" })\\n}\\nreturn $returnValues\\n}\\nfunction isRemoteAppEnabled() {\\nSet-Variable key -Option Constant -Value \\\"HKLM:\\\\\\\\SOFTWARE\\\\\\\\Microsoft\\\\\\\\Windows NT\\\\\\\\CurrentVersion\\\\\\\\Terminal Server\\\\\\\\TSAppAllowList\\\"\\n$registryKeyValue = Get-ItemProperty -Path $key -Name fDisabledAllowList -ErrorAction SilentlyContinue\\nif (-not $registryKeyValue) {\\nreturn $false\\n}\\nreturn $registryKeyValue.fDisabledAllowList -eq 1\\n}\\nfunction getOperatingSystemInfo() {\\n$operatingSystemInfo = Get-CimInstance Win32_OperatingSystem | Microsoft.PowerShell.Utility\\\\Select-Object csName, Caption, OperatingSystemSKU, Version, ProductType, OSType, LastBootUpTime, SerialNumber\\n$currentVersion = Get-ItemProperty -Path \\\"HKLM:\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\" | Microsoft.PowerShell.Utility\\\\Select-Object CurrentBuild, UBR, DisplayVersion\\n$operatingSystemInfo | Add-Member -MemberType NoteProperty -Name CurrentBuild -Value $currentVersion.CurrentBuild\\n$operatingSystemInfo | Add-Member -MemberType NoteProperty -Name UpdateBuildRevision -Value $currentVersion.UBR\\n$operatingSystemInfo | Add-Member -MemberType NoteProperty -Name DisplayVersion -Value $currentVersion.DisplayVersion\\nreturn $operatingSystemInfo\\n}\\nfunction getComputerSystemInfo() {\\nreturn Get-CimInstance Win32_ComputerSystem -ErrorAction SilentlyContinue | `\\nMicrosoft.PowerShell.Utility\\\\Select-Object TotalPhysicalMemory, DomainRole, Manufacturer, Model, NumberOfLogicalProcessors, Domain, Workgroup, DNSHostName, Name, PartOfDomain, SystemFamily, SystemSKUNumber\\n}\\nfunction getSmbiosData($computerSystem) {\\n$ChassisTypes =\\n@{\\n1 = \\u0027Other\\u0027\\n2 = \\u0027Unknown\\u0027\\n3 = \\u0027Desktop\\u0027\\n4 = \\u0027Low Profile Desktop\\u0027\\n5 = \\u0027Pizza Box\\u0027\\n6 = \\u0027Mini Tower\\u0027\\n7 = \\u0027Tower\\u0027\\n8 = \\u0027Portable\\u0027\\n9 = \\u0027Laptop\\u0027\\n10 = \\u0027Notebook\\u0027\\n11 = \\u0027Hand Held\\u0027\\n12 = \\u0027Docking Station\\u0027\\n13 = \\u0027All in One\\u0027\\n14 = \\u0027Sub Notebook\\u0027\\n15 = \\u0027Space-Saving\\u0027\\n16 = \\u0027Lunch Box\\u0027\\n17 = \\u0027Main System Chassis\\u0027\\n18 = \\u0027Expansion Chassis\\u0027\\n19 = \\u0027SubChassis\\u0027\\n20 = \\u0027Bus Expansion Chassis\\u0027\\n21 = \\u0027Peripheral Chassis\\u0027\\n22 = \\u0027Storage Chassis\\u0027\\n23 = \\u0027Rack Mount Chassis\\u0027\\n24 = \\u0027Sealed-Case PC\\u0027\\n25 = \\u0027Multi-system chassis\\u0027\\n26 = \\u0027Compact PCI\\u0027\\n27 = \\u0027Advanced TCA\\u0027\\n28 = \\u0027Blade\\u0027\\n29 = \\u0027Blade Enclosure\\u0027\\n30 = \\u0027Tablet\\u0027\\n31 = \\u0027Convertible\\u0027\\n32 = \\u0027Detachable\\u0027\\n33 = \\u0027IoT Gateway\\u0027\\n34 = \\u0027Embedded PC\\u0027\\n35 = \\u0027Mini PC\\u0027\\n36 = \\u0027Stick PC\\u0027\\n}\\n$list = New-Object System.Collections.ArrayList\\n$win32_Bios = Get-CimInstance -class Win32_Bios\\n$obj = New-Object -Type PSObject | Microsoft.PowerShell.Utility\\\\Select-Object SerialNumber, Manufacturer, UUID, BaseBoardProduct, ChassisTypes, Chassis, SystemFamily, SystemSKUNumber, SMBIOSAssetTag\\n$obj.SerialNumber = $win32_Bios.SerialNumber\\n$obj.Manufacturer = $win32_Bios.Manufacturer\\n$computerSystemProduct = Get-CimInstance Win32_ComputerSystemProduct\\nif ($null -ne $computerSystemProduct) {\\n$obj.UUID = $computerSystemProduct.UUID\\n}\\n$baseboard = Get-CimInstance Win32_BaseBoard\\nif ($null -ne $baseboard) {\\n$obj.BaseBoardProduct = $baseboard.Product\\n}\\n$systemEnclosure = Get-CimInstance Win32_SystemEnclosure\\nif ($null -ne $systemEnclosure) {\\n$obj.SMBIOSAssetTag = $systemEnclosure.SMBIOSAssetTag\\n}\\n$obj.ChassisTypes = Get-CimInstance Win32_SystemEnclosure | Microsoft.PowerShell.Utility\\\\Select-Object -ExpandProperty ChassisTypes\\n$obj.Chassis = New-Object -TypeName \\u0027System.Collections.ArrayList\\u0027\\n$obj.ChassisTypes | ForEach-Object -Process {\\n$obj.Chassis.Add($ChassisTypes[[int]$_])\\n}\\n$obj.SystemFamily = $computerSystem.SystemFamily\\n$obj.SystemSKUNumber = $computerSystem.SystemSKUNumber\\n$list.Add($obj) | Out-Null\\nreturn $list\\n}\\nfunction getAzureArcStatus() {\\n$LogName = \\\"Microsoft-ServerManagementExperience\\\"\\n$LogSource = \\\"SMEScript\\\"\\n$ScriptName = \\\"Get-ServerInventory.ps1 - getAzureArcStatus()\\\"\\n$AzcmagentExecutable = \\\"$env:ProgramFiles\\\\AzureConnectedMachineAgent\\\\azcmagent.exe\\\"\\nMicrosoft.PowerShell.Management\\\\New-EventLog -LogName $LogName -Source $LogSource -ErrorAction SilentlyContinue\\n$service = Get-Service -Name himds -ErrorVariable Err -ErrorAction SilentlyContinue\\nif (!!$Err) {\\n$Err = \\\"Failed to retrieve HIMDS service. Details: $Err\\\"\\nMicrosoft.PowerShell.Management\\\\Write-EventLog -LogName $LogName -Source $LogSource -EventId 0 -Category 0 -EntryType Information `\\n-Message \\\"[$ScriptName]: $Err\\\" -ErrorAction SilentlyContinue\\nreturn \\\"NotInstalled\\\"\\n} elseif ($service.Status -ne \\\"Running\\\") {\\n$Err = \\\"The Azure arc agent is not running. Details: HIMDS service is $($service.Status)\\\"\\nMicrosoft.PowerShell.Management\\\\Write-EventLog -LogName $LogName -Source $LogSource -EventId 0 -Category 0 -EntryType Information `\\n-Message \\\"[$ScriptName]: $Err\\\" -ErrorAction SilentlyContinue\\nreturn \\\"Disconnected\\\"\\n}\\n$rawStatus = Invoke-Command { \\u0026 $AzcmagentExecutable show --json --log-stderr } -ErrorVariable Err 2\\u003e$null\\nif (!!$Err) {\\n$Err = \\\"The Azure arc agent failed to communicate. Details: $rawStatus\\\"\\nMicrosoft.PowerShell.Management\\\\Write-EventLog -LogName $LogName -Source $LogSource -EventId 0 -Category 0 -EntryType Error `\\n-Message \\\"[$ScriptName]: $Err\\\" -ErrorAction SilentlyContinue\\nreturn \\\"Disconnected\\\"\\n}\\nif (!$rawStatus) {\\n$Err = \\\"The Azure arc agent is not connected. Details: $rawStatus\\\"\\nMicrosoft.PowerShell.Management\\\\Write-EventLog -LogName $LogName -Source $LogSource -EventId 0 -Category 0 -EntryType Information `\\n-Message \\\"[$ScriptName]: $Err\\\" -ErrorAction SilentlyContinue\\nreturn \\\"Disconnected\\\"\\n}\\nreturn ($rawStatus | ConvertFrom-Json -ErrorAction Stop).status\\n}\\nfunction getSystemLockdownPolicy() {\\nreturn [System.Management.Automation.Security.SystemPolicy]::GetSystemLockdownPolicy().ToString()\\n}\\nfunction isServerOsHCI([string] $operatingSystemCaption) {\\nreturn $operatingSystemCaption -eq \\\"Microsoft Azure Stack HCI\\\"\\n}\\n$operatingSystem = getOperatingSystemInfo\\n$computerSystem = getComputerSystemInfo\\n$isAdministrator = isUserAnAdministrator\\n$fqdnAndAddress = getHostFqdnAndAddress $computerSystem\\n$hostname = [Environment]::MachineName\\n$netbios = $env:ComputerName\\n$managementToolsInformation = getManagementToolsSupportInformation\\n$isWmfInstalled = isWMF5Installed $operatingSystem.Version\\n$clusterInformation = getClusterInformation -ErrorAction SilentlyContinue\\n$isHyperVPowershellInstalled = isHyperVPowerShellSupportInstalled\\n$isHyperVRoleInstalled = isHyperVRoleInstalled\\n$isCredSSPEnabled = isCredSSPEnabled\\n$isRemoteAppEnabled = isRemoteAppEnabled\\n$smbiosData = getSmbiosData $computerSystem\\n$azureArcStatus = getAzureArcStatus\\n$systemLockdownPolicy = getSystemLockdownPolicy\\n$isHciServer = isServerOsHCI $operatingSystem.Caption\\n$result = New-Object PSObject\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027IsAdministrator\\u0027 -Value $isAdministrator\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027OperatingSystem\\u0027 -Value $operatingSystem\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027ComputerSystem\\u0027 -Value $computerSystem\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027Fqdn\\u0027 -Value $fqdnAndAddress.Fqdn\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027AddressList\\u0027 -Value $fqdnAndAddress.AddressList\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027Hostname\\u0027 -Value $hostname\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027NetBios\\u0027 -Value $netbios\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027IsManagementToolsAvailable\\u0027 -Value $managementToolsInformation.ManagementToolsAvailable\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027IsServerManagerAvailable\\u0027 -Value $managementToolsInformation.ServerManagerAvailable\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027IsWmfInstalled\\u0027 -Value $isWmfInstalled\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027IsCluster\\u0027 -Value $clusterInformation.IsCluster\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027ClusterFqdn\\u0027 -Value $clusterInformation.ClusterFqdn\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027IsS2dEnabled\\u0027 -Value $clusterInformation.IsS2dEnabled\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027IsBritannicaEnabled\\u0027 -Value $clusterInformation.IsBritannicaEnabled\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027IsHyperVRoleInstalled\\u0027 -Value $isHyperVRoleInstalled\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027IsHyperVPowershellInstalled\\u0027 -Value $isHyperVPowershellInstalled\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027IsCredSSPEnabled\\u0027 -Value $isCredSSPEnabled\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027IsRemoteAppEnabled\\u0027 -Value $isRemoteAppEnabled\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027SmbiosData\\u0027 -Value $smbiosData\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027AzureArcStatus\\u0027 -Value $azureArcStatus\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027SystemLockdownPolicy\\u0027 -Value $systemLockdownPolicy\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027IsHciServer\\u0027 -Value $isHciServer\\n$result\\n\"\r\n }\r\n}\r\n"]}
@@ -51,7 +51,7 @@ export var PowerShellScripts;
51
51
  };
52
52
  PowerShellScripts.Get_ServerInventory = {
53
53
  command: 'Get-ServerInventory',
54
- script: "##Get-ServerInventory##:Get-ServerInventory.ps1\nSet-StrictMode -Version 5.0\nImport-Module CimCmdlets\nImport-Module Storage -ErrorAction SilentlyContinue\nfunction convertOsVersion([string]$osVersion) {\n[Ref]$parsedVersion = $null\nif (![Version]::TryParse($osVersion, $parsedVersion)) {\nreturn $null\n}\n$version = [Version]$parsedVersion.Value\nreturn New-Object Version -ArgumentList $version.Major, $version.Minor\n}\nfunction isCredSSPEnabled() {\nSet-Variable credSSPServicePath -Option Constant -Value \"WSMan:\\localhost\\Service\\Auth\\CredSSP\"\nSet-Variable credSSPClientPath -Option Constant -Value \"WSMan:\\localhost\\Client\\Auth\\CredSSP\"\n$credSSPServerEnabled = $false;\n$credSSPClientEnabled = $false;\n$credSSPServerService = Get-Item $credSSPServicePath -ErrorAction SilentlyContinue\nif ($credSSPServerService) {\n$credSSPServerEnabled = [System.Convert]::ToBoolean($credSSPServerService.Value)\n}\n$credSSPClientService = Get-Item $credSSPClientPath -ErrorAction SilentlyContinue\nif ($credSSPClientService) {\n$credSSPClientEnabled = [System.Convert]::ToBoolean($credSSPClientService.Value)\n}\nreturn ($credSSPServerEnabled -or $credSSPClientEnabled)\n}\nfunction isHyperVRoleInstalled() {\n$vmmsService = Get-Service -Name \"VMMS\" -ErrorAction SilentlyContinue\nreturn $vmmsService -and $vmmsService.Name -eq \"VMMS\"\n}\nfunction isHyperVPowerShellSupportInstalled() {\nreturn !!(Get-Module -ListAvailable Hyper-V -ErrorAction SilentlyContinue)\n}\nfunction isWMF5Installed([string] $operatingSystemVersion) {\nSet-Variable Server2016 -Option Constant -Value (New-Object Version \u002710.0\u0027) # And Windows 10 client SKUs\nSet-Variable Server2012 -Option Constant -Value (New-Object Version \u00276.2\u0027)\n$version = convertOsVersion $operatingSystemVersion\nif (-not $version) {\nreturn $false\n}\nif ($version -ge $Server2016) {\nreturn $true\n}\nelse {\nif ($version -ge $Server2012) {\n$registryKey = \u0027HKLM:\\SOFTWARE\\Microsoft\\PowerShell\\3\\PowerShellEngine\u0027\n$registryKeyValue = Get-ItemProperty -Path $registryKey -Name PowerShellVersion -ErrorAction SilentlyContinue\nif ($registryKeyValue -and ($registryKeyValue.PowerShellVersion.Length -ne 0)) {\n$installedWmfVersion = [Version]$registryKeyValue.PowerShellVersion\nif ($installedWmfVersion -ge [Version]\u00275.0\u0027) {\nreturn $true\n}\n}\n}\n}\nreturn $false\n}\nfunction isUserAnAdministrator() {\nreturn ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] \"Administrator\")\n}\nfunction getClusterInformation() {\n$returnValues = @{ }\n$returnValues.IsS2dEnabled = $false\n$returnValues.IsCluster = $false\n$returnValues.ClusterFqdn = $null\n$returnValues.IsBritannicaEnabled = $false\n$namespace = Get-CimInstance -Namespace root/MSCluster -ClassName __NAMESPACE -ErrorAction SilentlyContinue\nif ($namespace) {\n$cluster = Get-CimInstance -Namespace root/MSCluster -ClassName MSCluster_Cluster -ErrorAction SilentlyContinue\nif ($cluster) {\n$returnValues.IsCluster = $true\n$returnValues.ClusterFqdn = $cluster.Fqdn\n$returnValues.IsS2dEnabled = !!(Get-Member -InputObject $cluster -Name \"S2DEnabled\") -and ($cluster.S2DEnabled -gt 0)\n$returnValues.IsBritannicaEnabled = $null -ne (Get-CimInstance -Namespace root/sddc/management -ClassName SDDC_Cluster -ErrorAction SilentlyContinue)\n}\n}\nreturn $returnValues\n}\nfunction getComputerFqdnAndAddress($computerName) {\n$hostEntry = [System.Net.Dns]::GetHostEntry($computerName)\n$addressList = @()\nforeach ($item in $hostEntry.AddressList) {\n$address = New-Object PSObject\n$address | Add-Member -MemberType NoteProperty -Name \u0027IpAddress\u0027 -Value $item.ToString()\n$address | Add-Member -MemberType NoteProperty -Name \u0027AddressFamily\u0027 -Value $item.AddressFamily.ToString()\n$addressList += $address\n}\n$result = New-Object PSObject\n$result | Add-Member -MemberType NoteProperty -Name \u0027Fqdn\u0027 -Value $hostEntry.HostName\n$result | Add-Member -MemberType NoteProperty -Name \u0027AddressList\u0027 -Value $addressList\nreturn $result\n}\nfunction getHostFqdnAndAddress($computerSystem) {\n$computerName = $computerSystem.DNSHostName\nif (!$computerName) {\n$computerName = $computerSystem.Name\n}\nreturn getComputerFqdnAndAddress $computerName\n}\nfunction getManagementToolsSupportInformation() {\n$returnValues = @{ }\n$returnValues.ManagementToolsAvailable = $false\n$returnValues.ServerManagerAvailable = $false\n$namespaces = Get-CimInstance -Namespace root/microsoft/windows -ClassName __NAMESPACE -ErrorAction SilentlyContinue\nif ($namespaces) {\n$returnValues.ManagementToolsAvailable = !!($namespaces | Where-Object { $_.Name -ieq \"ManagementTools\" })\n$returnValues.ServerManagerAvailable = !!($namespaces | Where-Object { $_.Name -ieq \"ServerManager\" })\n}\nreturn $returnValues\n}\nfunction isRemoteAppEnabled() {\nSet-Variable key -Option Constant -Value \"HKLM:\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Terminal Server\\\\TSAppAllowList\"\n$registryKeyValue = Get-ItemProperty -Path $key -Name fDisabledAllowList -ErrorAction SilentlyContinue\nif (-not $registryKeyValue) {\nreturn $false\n}\nreturn $registryKeyValue.fDisabledAllowList -eq 1\n}\nfunction getOperatingSystemInfo() {\n$operatingSystemInfo = Get-CimInstance Win32_OperatingSystem | Microsoft.PowerShell.Utility\\Select-Object csName, Caption, OperatingSystemSKU, Version, ProductType, OSType, LastBootUpTime, SerialNumber\n$currentVersion = Get-ItemProperty -Path \"HKLM:\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\" | Microsoft.PowerShell.Utility\\Select-Object CurrentBuild, UBR, DisplayVersion\n$operatingSystemInfo | Add-Member -MemberType NoteProperty -Name CurrentBuild -Value $currentVersion.CurrentBuild\n$operatingSystemInfo | Add-Member -MemberType NoteProperty -Name UpdateBuildRevision -Value $currentVersion.UBR\n$operatingSystemInfo | Add-Member -MemberType NoteProperty -Name DisplayVersion -Value $currentVersion.DisplayVersion\nreturn $operatingSystemInfo\n}\nfunction getComputerSystemInfo() {\nreturn Get-CimInstance Win32_ComputerSystem -ErrorAction SilentlyContinue | `\nMicrosoft.PowerShell.Utility\\Select-Object TotalPhysicalMemory, DomainRole, Manufacturer, Model, NumberOfLogicalProcessors, Domain, Workgroup, DNSHostName, Name, PartOfDomain, SystemFamily, SystemSKUNumber\n}\nfunction getSmbiosData($computerSystem) {\n$ChassisTypes =\n@{\n1 = \u0027Other\u0027\n2 = \u0027Unknown\u0027\n3 = \u0027Desktop\u0027\n4 = \u0027Low Profile Desktop\u0027\n5 = \u0027Pizza Box\u0027\n6 = \u0027Mini Tower\u0027\n7 = \u0027Tower\u0027\n8 = \u0027Portable\u0027\n9 = \u0027Laptop\u0027\n10 = \u0027Notebook\u0027\n11 = \u0027Hand Held\u0027\n12 = \u0027Docking Station\u0027\n13 = \u0027All in One\u0027\n14 = \u0027Sub Notebook\u0027\n15 = \u0027Space-Saving\u0027\n16 = \u0027Lunch Box\u0027\n17 = \u0027Main System Chassis\u0027\n18 = \u0027Expansion Chassis\u0027\n19 = \u0027SubChassis\u0027\n20 = \u0027Bus Expansion Chassis\u0027\n21 = \u0027Peripheral Chassis\u0027\n22 = \u0027Storage Chassis\u0027\n23 = \u0027Rack Mount Chassis\u0027\n24 = \u0027Sealed-Case PC\u0027\n25 = \u0027Multi-system chassis\u0027\n26 = \u0027Compact PCI\u0027\n27 = \u0027Advanced TCA\u0027\n28 = \u0027Blade\u0027\n29 = \u0027Blade Enclosure\u0027\n30 = \u0027Tablet\u0027\n31 = \u0027Convertible\u0027\n32 = \u0027Detachable\u0027\n33 = \u0027IoT Gateway\u0027\n34 = \u0027Embedded PC\u0027\n35 = \u0027Mini PC\u0027\n36 = \u0027Stick PC\u0027\n}\n$list = New-Object System.Collections.ArrayList\n$win32_Bios = Get-CimInstance -class Win32_Bios\n$obj = New-Object -Type PSObject | Microsoft.PowerShell.Utility\\Select-Object SerialNumber, Manufacturer, UUID, BaseBoardProduct, ChassisTypes, Chassis, SystemFamily, SystemSKUNumber, SMBIOSAssetTag\n$obj.SerialNumber = $win32_Bios.SerialNumber\n$obj.Manufacturer = $win32_Bios.Manufacturer\n$computerSystemProduct = Get-CimInstance Win32_ComputerSystemProduct\nif ($null -ne $computerSystemProduct) {\n$obj.UUID = $computerSystemProduct.UUID\n}\n$baseboard = Get-CimInstance Win32_BaseBoard\nif ($null -ne $baseboard) {\n$obj.BaseBoardProduct = $baseboard.Product\n}\n$systemEnclosure = Get-CimInstance Win32_SystemEnclosure\nif ($null -ne $systemEnclosure) {\n$obj.SMBIOSAssetTag = $systemEnclosure.SMBIOSAssetTag\n}\n$obj.ChassisTypes = Get-CimInstance Win32_SystemEnclosure | Microsoft.PowerShell.Utility\\Select-Object -ExpandProperty ChassisTypes\n$obj.Chassis = New-Object -TypeName \u0027System.Collections.ArrayList\u0027\n$obj.ChassisTypes | ForEach-Object -Process {\n$obj.Chassis.Add($ChassisTypes[[int]$_])\n}\n$obj.SystemFamily = $computerSystem.SystemFamily\n$obj.SystemSKUNumber = $computerSystem.SystemSKUNumber\n$list.Add($obj) | Out-Null\nreturn $list\n}\nfunction getAzureArcStatus() {\n$LogName = \"Microsoft-ServerManagementExperience\"\n$LogSource = \"SMEScript\"\n$ScriptName = \"Get-ServerInventory.ps1 - getAzureArcStatus()\"\nMicrosoft.PowerShell.Management\\New-EventLog -LogName $LogName -Source $LogSource -ErrorAction SilentlyContinue\nGet-Service -Name himds -ErrorVariable Err -ErrorAction SilentlyContinue | Out-Null\nif (!!$Err) {\n$Err = \"The Azure arc agent is not installed. Details: $Err\"\nMicrosoft.PowerShell.Management\\Write-EventLog -LogName $LogName -Source $LogSource -EventId 0 -Category 0 -EntryType Information `\n-Message \"[$ScriptName]: $Err\" -ErrorAction SilentlyContinue\n$status = \"NotInstalled\"\n}\nelse {\n$status = (azcmagent show --json | ConvertFrom-Json -ErrorAction Stop).status\n}\nreturn $status\n}\nfunction getSystemLockdownPolicy() {\nreturn [System.Management.Automation.Security.SystemPolicy]::GetSystemLockdownPolicy().ToString()\n}\nfunction isServerOsHCI([string] $operatingSystemCaption) {\nreturn $operatingSystemCaption -eq \"Microsoft Azure Stack HCI\"\n}\n$operatingSystem = getOperatingSystemInfo\n$computerSystem = getComputerSystemInfo\n$isAdministrator = isUserAnAdministrator\n$fqdnAndAddress = getHostFqdnAndAddress $computerSystem\n$hostname = [Environment]::MachineName\n$netbios = $env:ComputerName\n$managementToolsInformation = getManagementToolsSupportInformation\n$isWmfInstalled = isWMF5Installed $operatingSystem.Version\n$clusterInformation = getClusterInformation -ErrorAction SilentlyContinue\n$isHyperVPowershellInstalled = isHyperVPowerShellSupportInstalled\n$isHyperVRoleInstalled = isHyperVRoleInstalled\n$isCredSSPEnabled = isCredSSPEnabled\n$isRemoteAppEnabled = isRemoteAppEnabled\n$smbiosData = getSmbiosData $computerSystem\n$azureArcStatus = getAzureArcStatus\n$systemLockdownPolicy = getSystemLockdownPolicy\n$isHciServer = isServerOsHCI $operatingSystem.Caption\n$result = New-Object PSObject\n$result | Add-Member -MemberType NoteProperty -Name \u0027IsAdministrator\u0027 -Value $isAdministrator\n$result | Add-Member -MemberType NoteProperty -Name \u0027OperatingSystem\u0027 -Value $operatingSystem\n$result | Add-Member -MemberType NoteProperty -Name \u0027ComputerSystem\u0027 -Value $computerSystem\n$result | Add-Member -MemberType NoteProperty -Name \u0027Fqdn\u0027 -Value $fqdnAndAddress.Fqdn\n$result | Add-Member -MemberType NoteProperty -Name \u0027AddressList\u0027 -Value $fqdnAndAddress.AddressList\n$result | Add-Member -MemberType NoteProperty -Name \u0027Hostname\u0027 -Value $hostname\n$result | Add-Member -MemberType NoteProperty -Name \u0027NetBios\u0027 -Value $netbios\n$result | Add-Member -MemberType NoteProperty -Name \u0027IsManagementToolsAvailable\u0027 -Value $managementToolsInformation.ManagementToolsAvailable\n$result | Add-Member -MemberType NoteProperty -Name \u0027IsServerManagerAvailable\u0027 -Value $managementToolsInformation.ServerManagerAvailable\n$result | Add-Member -MemberType NoteProperty -Name \u0027IsWmfInstalled\u0027 -Value $isWmfInstalled\n$result | Add-Member -MemberType NoteProperty -Name \u0027IsCluster\u0027 -Value $clusterInformation.IsCluster\n$result | Add-Member -MemberType NoteProperty -Name \u0027ClusterFqdn\u0027 -Value $clusterInformation.ClusterFqdn\n$result | Add-Member -MemberType NoteProperty -Name \u0027IsS2dEnabled\u0027 -Value $clusterInformation.IsS2dEnabled\n$result | Add-Member -MemberType NoteProperty -Name \u0027IsBritannicaEnabled\u0027 -Value $clusterInformation.IsBritannicaEnabled\n$result | Add-Member -MemberType NoteProperty -Name \u0027IsHyperVRoleInstalled\u0027 -Value $isHyperVRoleInstalled\n$result | Add-Member -MemberType NoteProperty -Name \u0027IsHyperVPowershellInstalled\u0027 -Value $isHyperVPowershellInstalled\n$result | Add-Member -MemberType NoteProperty -Name \u0027IsCredSSPEnabled\u0027 -Value $isCredSSPEnabled\n$result | Add-Member -MemberType NoteProperty -Name \u0027IsRemoteAppEnabled\u0027 -Value $isRemoteAppEnabled\n$result | Add-Member -MemberType NoteProperty -Name \u0027SmbiosData\u0027 -Value $smbiosData\n$result | Add-Member -MemberType NoteProperty -Name \u0027AzureArcStatus\u0027 -Value $azureArcStatus\n$result | Add-Member -MemberType NoteProperty -Name \u0027SystemLockdownPolicy\u0027 -Value $systemLockdownPolicy\n$result | Add-Member -MemberType NoteProperty -Name \u0027IsHciServer\u0027 -Value $isHciServer\n$result\n"
54
+ script: "##Get-ServerInventory##:Get-ServerInventory.ps1\nSet-StrictMode -Version 5.0\nImport-Module CimCmdlets\nImport-Module Storage -ErrorAction SilentlyContinue\nfunction convertOsVersion([string]$osVersion) {\n[Ref]$parsedVersion = $null\nif (![Version]::TryParse($osVersion, $parsedVersion)) {\nreturn $null\n}\n$version = [Version]$parsedVersion.Value\nreturn New-Object Version -ArgumentList $version.Major, $version.Minor\n}\nfunction isCredSSPEnabled() {\nSet-Variable credSSPServicePath -Option Constant -Value \"WSMan:\\localhost\\Service\\Auth\\CredSSP\"\nSet-Variable credSSPClientPath -Option Constant -Value \"WSMan:\\localhost\\Client\\Auth\\CredSSP\"\n$credSSPServerEnabled = $false;\n$credSSPClientEnabled = $false;\n$credSSPServerService = Get-Item $credSSPServicePath -ErrorAction SilentlyContinue\nif ($credSSPServerService) {\n$credSSPServerEnabled = [System.Convert]::ToBoolean($credSSPServerService.Value)\n}\n$credSSPClientService = Get-Item $credSSPClientPath -ErrorAction SilentlyContinue\nif ($credSSPClientService) {\n$credSSPClientEnabled = [System.Convert]::ToBoolean($credSSPClientService.Value)\n}\nreturn ($credSSPServerEnabled -or $credSSPClientEnabled)\n}\nfunction isHyperVRoleInstalled() {\n$vmmsService = Get-Service -Name \"VMMS\" -ErrorAction SilentlyContinue\nreturn $vmmsService -and $vmmsService.Name -eq \"VMMS\"\n}\nfunction isHyperVPowerShellSupportInstalled() {\nreturn !!(Get-Module -ListAvailable Hyper-V -ErrorAction SilentlyContinue)\n}\nfunction isWMF5Installed([string] $operatingSystemVersion) {\nSet-Variable Server2016 -Option Constant -Value (New-Object Version \u002710.0\u0027) # And Windows 10 client SKUs\nSet-Variable Server2012 -Option Constant -Value (New-Object Version \u00276.2\u0027)\n$version = convertOsVersion $operatingSystemVersion\nif (-not $version) {\nreturn $false\n}\nif ($version -ge $Server2016) {\nreturn $true\n}\nelse {\nif ($version -ge $Server2012) {\n$registryKey = \u0027HKLM:\\SOFTWARE\\Microsoft\\PowerShell\\3\\PowerShellEngine\u0027\n$registryKeyValue = Get-ItemProperty -Path $registryKey -Name PowerShellVersion -ErrorAction SilentlyContinue\nif ($registryKeyValue -and ($registryKeyValue.PowerShellVersion.Length -ne 0)) {\n$installedWmfVersion = [Version]$registryKeyValue.PowerShellVersion\nif ($installedWmfVersion -ge [Version]\u00275.0\u0027) {\nreturn $true\n}\n}\n}\n}\nreturn $false\n}\nfunction isUserAnAdministrator() {\nreturn ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] \"Administrator\")\n}\nfunction getClusterInformation() {\n$returnValues = @{ }\n$returnValues.IsS2dEnabled = $false\n$returnValues.IsCluster = $false\n$returnValues.ClusterFqdn = $null\n$returnValues.IsBritannicaEnabled = $false\n$namespace = Get-CimInstance -Namespace root/MSCluster -ClassName __NAMESPACE -ErrorAction SilentlyContinue\nif ($namespace) {\n$cluster = Get-CimInstance -Namespace root/MSCluster -ClassName MSCluster_Cluster -ErrorAction SilentlyContinue\nif ($cluster) {\n$returnValues.IsCluster = $true\n$returnValues.ClusterFqdn = $cluster.Fqdn\n$returnValues.IsS2dEnabled = !!(Get-Member -InputObject $cluster -Name \"S2DEnabled\") -and ($cluster.S2DEnabled -gt 0)\n$returnValues.IsBritannicaEnabled = $null -ne (Get-CimInstance -Namespace root/sddc/management -ClassName SDDC_Cluster -ErrorAction SilentlyContinue)\n}\n}\nreturn $returnValues\n}\nfunction getComputerFqdnAndAddress($computerName) {\n$hostEntry = [System.Net.Dns]::GetHostEntry($computerName)\n$addressList = @()\nforeach ($item in $hostEntry.AddressList) {\n$address = New-Object PSObject\n$address | Add-Member -MemberType NoteProperty -Name \u0027IpAddress\u0027 -Value $item.ToString()\n$address | Add-Member -MemberType NoteProperty -Name \u0027AddressFamily\u0027 -Value $item.AddressFamily.ToString()\n$addressList += $address\n}\n$result = New-Object PSObject\n$result | Add-Member -MemberType NoteProperty -Name \u0027Fqdn\u0027 -Value $hostEntry.HostName\n$result | Add-Member -MemberType NoteProperty -Name \u0027AddressList\u0027 -Value $addressList\nreturn $result\n}\nfunction getHostFqdnAndAddress($computerSystem) {\n$computerName = $computerSystem.DNSHostName\nif (!$computerName) {\n$computerName = $computerSystem.Name\n}\nreturn getComputerFqdnAndAddress $computerName\n}\nfunction getManagementToolsSupportInformation() {\n$returnValues = @{ }\n$returnValues.ManagementToolsAvailable = $false\n$returnValues.ServerManagerAvailable = $false\n$namespaces = Get-CimInstance -Namespace root/microsoft/windows -ClassName __NAMESPACE -ErrorAction SilentlyContinue\nif ($namespaces) {\n$returnValues.ManagementToolsAvailable = !!($namespaces | Where-Object { $_.Name -ieq \"ManagementTools\" })\n$returnValues.ServerManagerAvailable = !!($namespaces | Where-Object { $_.Name -ieq \"ServerManager\" })\n}\nreturn $returnValues\n}\nfunction isRemoteAppEnabled() {\nSet-Variable key -Option Constant -Value \"HKLM:\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Terminal Server\\\\TSAppAllowList\"\n$registryKeyValue = Get-ItemProperty -Path $key -Name fDisabledAllowList -ErrorAction SilentlyContinue\nif (-not $registryKeyValue) {\nreturn $false\n}\nreturn $registryKeyValue.fDisabledAllowList -eq 1\n}\nfunction getOperatingSystemInfo() {\n$operatingSystemInfo = Get-CimInstance Win32_OperatingSystem | Microsoft.PowerShell.Utility\\Select-Object csName, Caption, OperatingSystemSKU, Version, ProductType, OSType, LastBootUpTime, SerialNumber\n$currentVersion = Get-ItemProperty -Path \"HKLM:\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\" | Microsoft.PowerShell.Utility\\Select-Object CurrentBuild, UBR, DisplayVersion\n$operatingSystemInfo | Add-Member -MemberType NoteProperty -Name CurrentBuild -Value $currentVersion.CurrentBuild\n$operatingSystemInfo | Add-Member -MemberType NoteProperty -Name UpdateBuildRevision -Value $currentVersion.UBR\n$operatingSystemInfo | Add-Member -MemberType NoteProperty -Name DisplayVersion -Value $currentVersion.DisplayVersion\nreturn $operatingSystemInfo\n}\nfunction getComputerSystemInfo() {\nreturn Get-CimInstance Win32_ComputerSystem -ErrorAction SilentlyContinue | `\nMicrosoft.PowerShell.Utility\\Select-Object TotalPhysicalMemory, DomainRole, Manufacturer, Model, NumberOfLogicalProcessors, Domain, Workgroup, DNSHostName, Name, PartOfDomain, SystemFamily, SystemSKUNumber\n}\nfunction getSmbiosData($computerSystem) {\n$ChassisTypes =\n@{\n1 = \u0027Other\u0027\n2 = \u0027Unknown\u0027\n3 = \u0027Desktop\u0027\n4 = \u0027Low Profile Desktop\u0027\n5 = \u0027Pizza Box\u0027\n6 = \u0027Mini Tower\u0027\n7 = \u0027Tower\u0027\n8 = \u0027Portable\u0027\n9 = \u0027Laptop\u0027\n10 = \u0027Notebook\u0027\n11 = \u0027Hand Held\u0027\n12 = \u0027Docking Station\u0027\n13 = \u0027All in One\u0027\n14 = \u0027Sub Notebook\u0027\n15 = \u0027Space-Saving\u0027\n16 = \u0027Lunch Box\u0027\n17 = \u0027Main System Chassis\u0027\n18 = \u0027Expansion Chassis\u0027\n19 = \u0027SubChassis\u0027\n20 = \u0027Bus Expansion Chassis\u0027\n21 = \u0027Peripheral Chassis\u0027\n22 = \u0027Storage Chassis\u0027\n23 = \u0027Rack Mount Chassis\u0027\n24 = \u0027Sealed-Case PC\u0027\n25 = \u0027Multi-system chassis\u0027\n26 = \u0027Compact PCI\u0027\n27 = \u0027Advanced TCA\u0027\n28 = \u0027Blade\u0027\n29 = \u0027Blade Enclosure\u0027\n30 = \u0027Tablet\u0027\n31 = \u0027Convertible\u0027\n32 = \u0027Detachable\u0027\n33 = \u0027IoT Gateway\u0027\n34 = \u0027Embedded PC\u0027\n35 = \u0027Mini PC\u0027\n36 = \u0027Stick PC\u0027\n}\n$list = New-Object System.Collections.ArrayList\n$win32_Bios = Get-CimInstance -class Win32_Bios\n$obj = New-Object -Type PSObject | Microsoft.PowerShell.Utility\\Select-Object SerialNumber, Manufacturer, UUID, BaseBoardProduct, ChassisTypes, Chassis, SystemFamily, SystemSKUNumber, SMBIOSAssetTag\n$obj.SerialNumber = $win32_Bios.SerialNumber\n$obj.Manufacturer = $win32_Bios.Manufacturer\n$computerSystemProduct = Get-CimInstance Win32_ComputerSystemProduct\nif ($null -ne $computerSystemProduct) {\n$obj.UUID = $computerSystemProduct.UUID\n}\n$baseboard = Get-CimInstance Win32_BaseBoard\nif ($null -ne $baseboard) {\n$obj.BaseBoardProduct = $baseboard.Product\n}\n$systemEnclosure = Get-CimInstance Win32_SystemEnclosure\nif ($null -ne $systemEnclosure) {\n$obj.SMBIOSAssetTag = $systemEnclosure.SMBIOSAssetTag\n}\n$obj.ChassisTypes = Get-CimInstance Win32_SystemEnclosure | Microsoft.PowerShell.Utility\\Select-Object -ExpandProperty ChassisTypes\n$obj.Chassis = New-Object -TypeName \u0027System.Collections.ArrayList\u0027\n$obj.ChassisTypes | ForEach-Object -Process {\n$obj.Chassis.Add($ChassisTypes[[int]$_])\n}\n$obj.SystemFamily = $computerSystem.SystemFamily\n$obj.SystemSKUNumber = $computerSystem.SystemSKUNumber\n$list.Add($obj) | Out-Null\nreturn $list\n}\nfunction getAzureArcStatus() {\n$LogName = \"Microsoft-ServerManagementExperience\"\n$LogSource = \"SMEScript\"\n$ScriptName = \"Get-ServerInventory.ps1 - getAzureArcStatus()\"\n$AzcmagentExecutable = \"$env:ProgramFiles\\AzureConnectedMachineAgent\\azcmagent.exe\"\nMicrosoft.PowerShell.Management\\New-EventLog -LogName $LogName -Source $LogSource -ErrorAction SilentlyContinue\n$service = Get-Service -Name himds -ErrorVariable Err -ErrorAction SilentlyContinue\nif (!!$Err) {\n$Err = \"Failed to retrieve HIMDS service. Details: $Err\"\nMicrosoft.PowerShell.Management\\Write-EventLog -LogName $LogName -Source $LogSource -EventId 0 -Category 0 -EntryType Information `\n-Message \"[$ScriptName]: $Err\" -ErrorAction SilentlyContinue\nreturn \"NotInstalled\"\n} elseif ($service.Status -ne \"Running\") {\n$Err = \"The Azure arc agent is not running. Details: HIMDS service is $($service.Status)\"\nMicrosoft.PowerShell.Management\\Write-EventLog -LogName $LogName -Source $LogSource -EventId 0 -Category 0 -EntryType Information `\n-Message \"[$ScriptName]: $Err\" -ErrorAction SilentlyContinue\nreturn \"Disconnected\"\n}\n$rawStatus = Invoke-Command { \u0026 $AzcmagentExecutable show --json --log-stderr } -ErrorVariable Err 2\u003e$null\nif (!!$Err) {\n$Err = \"The Azure arc agent failed to communicate. Details: $rawStatus\"\nMicrosoft.PowerShell.Management\\Write-EventLog -LogName $LogName -Source $LogSource -EventId 0 -Category 0 -EntryType Error `\n-Message \"[$ScriptName]: $Err\" -ErrorAction SilentlyContinue\nreturn \"Disconnected\"\n}\nif (!$rawStatus) {\n$Err = \"The Azure arc agent is not connected. Details: $rawStatus\"\nMicrosoft.PowerShell.Management\\Write-EventLog -LogName $LogName -Source $LogSource -EventId 0 -Category 0 -EntryType Information `\n-Message \"[$ScriptName]: $Err\" -ErrorAction SilentlyContinue\nreturn \"Disconnected\"\n}\nreturn ($rawStatus | ConvertFrom-Json -ErrorAction Stop).status\n}\nfunction getSystemLockdownPolicy() {\nreturn [System.Management.Automation.Security.SystemPolicy]::GetSystemLockdownPolicy().ToString()\n}\nfunction isServerOsHCI([string] $operatingSystemCaption) {\nreturn $operatingSystemCaption -eq \"Microsoft Azure Stack HCI\"\n}\n$operatingSystem = getOperatingSystemInfo\n$computerSystem = getComputerSystemInfo\n$isAdministrator = isUserAnAdministrator\n$fqdnAndAddress = getHostFqdnAndAddress $computerSystem\n$hostname = [Environment]::MachineName\n$netbios = $env:ComputerName\n$managementToolsInformation = getManagementToolsSupportInformation\n$isWmfInstalled = isWMF5Installed $operatingSystem.Version\n$clusterInformation = getClusterInformation -ErrorAction SilentlyContinue\n$isHyperVPowershellInstalled = isHyperVPowerShellSupportInstalled\n$isHyperVRoleInstalled = isHyperVRoleInstalled\n$isCredSSPEnabled = isCredSSPEnabled\n$isRemoteAppEnabled = isRemoteAppEnabled\n$smbiosData = getSmbiosData $computerSystem\n$azureArcStatus = getAzureArcStatus\n$systemLockdownPolicy = getSystemLockdownPolicy\n$isHciServer = isServerOsHCI $operatingSystem.Caption\n$result = New-Object PSObject\n$result | Add-Member -MemberType NoteProperty -Name \u0027IsAdministrator\u0027 -Value $isAdministrator\n$result | Add-Member -MemberType NoteProperty -Name \u0027OperatingSystem\u0027 -Value $operatingSystem\n$result | Add-Member -MemberType NoteProperty -Name \u0027ComputerSystem\u0027 -Value $computerSystem\n$result | Add-Member -MemberType NoteProperty -Name \u0027Fqdn\u0027 -Value $fqdnAndAddress.Fqdn\n$result | Add-Member -MemberType NoteProperty -Name \u0027AddressList\u0027 -Value $fqdnAndAddress.AddressList\n$result | Add-Member -MemberType NoteProperty -Name \u0027Hostname\u0027 -Value $hostname\n$result | Add-Member -MemberType NoteProperty -Name \u0027NetBios\u0027 -Value $netbios\n$result | Add-Member -MemberType NoteProperty -Name \u0027IsManagementToolsAvailable\u0027 -Value $managementToolsInformation.ManagementToolsAvailable\n$result | Add-Member -MemberType NoteProperty -Name \u0027IsServerManagerAvailable\u0027 -Value $managementToolsInformation.ServerManagerAvailable\n$result | Add-Member -MemberType NoteProperty -Name \u0027IsWmfInstalled\u0027 -Value $isWmfInstalled\n$result | Add-Member -MemberType NoteProperty -Name \u0027IsCluster\u0027 -Value $clusterInformation.IsCluster\n$result | Add-Member -MemberType NoteProperty -Name \u0027ClusterFqdn\u0027 -Value $clusterInformation.ClusterFqdn\n$result | Add-Member -MemberType NoteProperty -Name \u0027IsS2dEnabled\u0027 -Value $clusterInformation.IsS2dEnabled\n$result | Add-Member -MemberType NoteProperty -Name \u0027IsBritannicaEnabled\u0027 -Value $clusterInformation.IsBritannicaEnabled\n$result | Add-Member -MemberType NoteProperty -Name \u0027IsHyperVRoleInstalled\u0027 -Value $isHyperVRoleInstalled\n$result | Add-Member -MemberType NoteProperty -Name \u0027IsHyperVPowershellInstalled\u0027 -Value $isHyperVPowershellInstalled\n$result | Add-Member -MemberType NoteProperty -Name \u0027IsCredSSPEnabled\u0027 -Value $isCredSSPEnabled\n$result | Add-Member -MemberType NoteProperty -Name \u0027IsRemoteAppEnabled\u0027 -Value $isRemoteAppEnabled\n$result | Add-Member -MemberType NoteProperty -Name \u0027SmbiosData\u0027 -Value $smbiosData\n$result | Add-Member -MemberType NoteProperty -Name \u0027AzureArcStatus\u0027 -Value $azureArcStatus\n$result | Add-Member -MemberType NoteProperty -Name \u0027SystemLockdownPolicy\u0027 -Value $systemLockdownPolicy\n$result | Add-Member -MemberType NoteProperty -Name \u0027IsHciServer\u0027 -Value $isHciServer\n$result\n"
55
55
  };
56
56
  })(PowerShellScripts || (PowerShellScripts = {}));
57
57
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../packages/core/generated/powershell-scripts.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB;;;GAGG;AACH,MAAM,KAAQ,iBAAiB,CAkD9B;AAlDD,WAAc,iBAAiB;IAC3B,YAAY,CAAA;IAEC,wBAAM,GAAG,qBAAqB,CAAC;IAC/B,8BAAY,GAAG,cAAc,CAAC;IAC9B,kCAAgB,GAAG,OAAO,CAAC;IAC3B,uCAAqB,GAAG;QACjC,OAAO,EAAE,uBAAuB;QAChC,MAAM,EAAE,q/BAAq/B;KAChgC,CAAA;IACY,6BAAW,GAAG;QACvB,OAAO,EAAE,aAAa;QACtB,MAAM,EAAE,oGAAoG;KAC/G,CAAA;IACY,2CAAyB,GAAG;QACrC,OAAO,EAAE,2BAA2B;QACpC,MAAM,EAAE,2wBAA2wB;KACtxB,CAAA;IACY,yCAAuB,GAAG;QACnC,OAAO,EAAE,yBAAyB;QAClC,MAAM,EAAE,+5BAA+5B;KAC16B,CAAA;IACY,yCAAuB,GAAG;QACnC,OAAO,EAAE,yBAAyB;QAClC,MAAM,EAAE,yJAAyJ;KACpK,CAAA;IACY,4CAA0B,GAAG;QACtC,OAAO,EAAE,4BAA4B;QACrC,MAAM,EAAE,kKAAkK;KAC7K,CAAA;IACY,4CAA0B,GAAG;QACtC,OAAO,EAAE,4BAA4B;QACrC,MAAM,EAAE,kKAAkK;KAC7K,CAAA;IACY,uCAAqB,GAAG;QACjC,OAAO,EAAE,uBAAuB;QAChC,MAAM,EAAE,mJAAmJ;KAC9J,CAAA;IACY,sCAAoB,GAAG;QAChC,OAAO,EAAE,sBAAsB;QAC/B,MAAM,EAAE,4sHAA4sH;KACvtH,CAAA;IACY,kCAAgB,GAAG;QAC5B,OAAO,EAAE,kBAAkB;QAC3B,MAAM,EAAE,krGAAkrG;KAC7rG,CAAA;IACY,qCAAmB,GAAG;QAC/B,OAAO,EAAE,qBAAqB;QAC9B,MAAM,EAAE,87ZAA87Z;KACz8Z,CAAA;AACL,CAAC,EAlDa,iBAAiB,KAAjB,iBAAiB,QAkD9B","file":"powershell-scripts.js","sourcesContent":["/* eslint:disable */\r\n/**\r\n * @file Source code generated by gulp-ps-code.\r\n * @version 1.1\r\n */\r\nexport module PowerShellScripts {\r\n 'use strict'\r\n\r\n export const module = 'Microsoft.SME.Shell';\r\n export const resourceName = 'MsftSmeShell';\r\n export const powerShellPrefix = 'WACSH';\r\n export const Start_ScheduledReboot = {\r\n command: 'Start-ScheduledReboot',\r\n script: \"##Start-ScheduledReboot##:Start-ScheduledReboot.ps1\\nparam (\\n[Parameter(Mandatory = $true)]\\n[bool]$restartlater,\\n[Parameter(Mandatory = $false)]\\n[String]$restartTime,\\n[Parameter(Mandatory = $false)]\\n[String]$restartReason,\\n[Parameter(Mandatory = $false)]\\n[System.Int16]$reasonNumberMajor,\\n[Parameter(Mandatory = $false)]\\n[System.Int16]$reasonNumberMinor\\n)\\n$waitTime = 5\\nif ($restartlater -and -not($restartTime)) {\\n$waitTime = 30\\n} elseif ($restartTime) {\\n$waitTime = [decimal]::round(((Get-Date $restartTime) - (Get-Date)).TotalSeconds);\\nif ($waitTime -gt (315360000 - 30)) {\\nTHROW \\\"Invalid restart time $restartTime. The valid range is 0-315360000s (10 years), with a default of 30\\\"\\n}\\n}\\nif ($waitTime -lt 5 ) {\\n$waitTime = 5\\n}\\n$command = \\\"Shutdown /r /t $waitTime\\\"\\nif ($restartReason -and ($reasonNumberMajor -ne $null) -and ($reasonNumberMinor -ne $null)) {\\n$command += \\\" /d ${restartReason}:${reasonNumberMajor}:${reasonNumberMinor}\\\"\\n}\\nInvoke-Expression -Command $command\\n\"\r\n }\r\n export const Stop_Reboot = {\r\n command: 'Stop-Reboot',\r\n script: \"##Stop-Reboot##:Stop-Reboot.ps1\\n$command = \\\"Shutdown /a\\\"\\nInvoke-Expression -Command $command\\n\"\r\n }\r\n export const Get_DecryptedDataFromNode = {\r\n command: 'Get-DecryptedDataFromNode',\r\n script: \"##Get-DecryptedDataFromNode##:Get-DecryptedDataFromNode.ps1\\nparam (\\n[Parameter(Mandatory = $true)]\\n[String]\\n$encryptedData\\n)\\nSet-StrictMode -Version 5.0\\nNew-Variable -Name rsaProviderInstanceName -Value \\\"RSA\\\" -Option Constant\\nfunction DecryptDataWithJWKOnNode {\\nif(Get-Variable -Scope Global -Name $rsaProviderInstanceName -EA SilentlyContinue) {\\n$rsaProvider = (Get-Variable -Scope Global -Name $rsaProviderInstanceName).Value\\n$decryptedBytes = $rsaProvider.Decrypt([Convert]::FromBase64String($encryptedData), [System.Security.Cryptography.RSAEncryptionPadding]::OaepSHA1)\\nreturn [System.Text.Encoding]::UTF8.GetString($decryptedBytes)\\n}\\nthrow [System.InvalidOperationException] \\\"Password decryption failed. RSACryptoServiceProvider Instance not found\\\"\\n}\\n\"\r\n }\r\n export const Get_EncryptionJWKOnNode = {\r\n command: 'Get-EncryptionJWKOnNode',\r\n script: \"##Get-EncryptionJWKOnNode##:Get-EncryptionJWKOnNode.ps1\\nSet-StrictMode -Version 5.0\\nNew-Variable -Name rsaProviderInstanceName -Value \\\"RSA\\\" -Option Constant\\nfunction Get-RSAProvider\\n{\\nif(Get-Variable -Scope Global -Name $rsaProviderInstanceName -EA SilentlyContinue)\\n{\\nreturn (Get-Variable -Scope Global -Name $rsaProviderInstanceName).Value\\n}\\n$Global:RSA = New-Object System.Security.Cryptography.RSACryptoServiceProvider -ArgumentList 4096\\nreturn $RSA\\n}\\nfunction Get-JsonWebKey\\n{\\n$rsaProvider = Get-RSAProvider\\n$parameters = $rsaProvider.ExportParameters($false)\\nreturn [PSCustomObject]@{\\nkty = \\u0027RSA\\u0027\\nalg = \\u0027RSA-OAEP\\u0027\\ne = [Convert]::ToBase64String($parameters.Exponent)\\nn = [Convert]::ToBase64String($parameters.Modulus).TrimEnd(\\u0027=\\u0027).Replace(\\u0027+\\u0027, \\u0027-\\u0027).Replace(\\u0027/\\u0027, \\u0027_\\u0027)\\n}\\n}\\n$jwk = Get-JsonWebKey\\nConvertTo-Json $jwk -Compress\\n\"\r\n }\r\n export const Get_CimWin32LogicalDisk = {\r\n command: 'Get-CimWin32LogicalDisk',\r\n script: \"##Get-CimWin32LogicalDisk##:Get-CimWin32LogicalDisk.ps1\\nimport-module CimCmdlets\\nGet-CimInstance -Namespace root/cimv2 -ClassName Win32_LogicalDisk\\n\"\r\n }\r\n export const Get_CimWin32NetworkAdapter = {\r\n command: 'Get-CimWin32NetworkAdapter',\r\n script: \"##Get-CimWin32NetworkAdapter##:Get-CimWin32NetworkAdapter.ps1\\nimport-module CimCmdlets\\nGet-CimInstance -Namespace root/cimv2 -ClassName Win32_NetworkAdapter\\n\"\r\n }\r\n export const Get_CimWin32PhysicalMemory = {\r\n command: 'Get-CimWin32PhysicalMemory',\r\n script: \"##Get-CimWin32PhysicalMemory##:Get-CimWin32PhysicalMemory.ps1\\nimport-module CimCmdlets\\nGet-CimInstance -Namespace root/cimv2 -ClassName Win32_PhysicalMemory\\n\"\r\n }\r\n export const Get_CimWin32Processor = {\r\n command: 'Get-CimWin32Processor',\r\n script: \"##Get-CimWin32Processor##:Get-CimWin32Processor.ps1\\nimport-module CimCmdlets\\nGet-CimInstance -Namespace root/cimv2 -ClassName Win32_Processor\\n\"\r\n }\r\n export const Get_ClusterInventory = {\r\n command: 'Get-ClusterInventory',\r\n script: \"##Get-ClusterInventory##:Get-ClusterInventory.ps1\\nImport-Module CimCmdlets -ErrorAction SilentlyContinue\\nImport-Module FailoverClusters -ErrorAction SilentlyContinue\\nImport-Module Storage -ErrorAction SilentlyContinue\\nfunction getComputerName() {\\n$computerSystem = Get-CimInstance Win32_ComputerSystem -ErrorAction SilentlyContinue | Microsoft.PowerShell.Utility\\\\Select-Object Name, DNSHostName\\nif ($computerSystem) {\\n$computerName = $computerSystem.DNSHostName\\nif ($null -eq $computerName) {\\n$computerName = $computerSystem.Name\\n}\\nreturn $computerName\\n}\\nreturn $null\\n}\\nfunction getIsClusterCmdletAvailable() {\\n$cmdlet = Get-Command \\\"Get-Cluster\\\" -ErrorAction SilentlyContinue\\nreturn !!$cmdlet\\n}\\nfunction getClusterCimInstance() {\\n$namespace = Get-CimInstance -Namespace root/MSCluster -ClassName __NAMESPACE -ErrorAction SilentlyContinue\\nif ($namespace) {\\nreturn Get-CimInstance -Namespace root/mscluster MSCluster_Cluster -ErrorAction SilentlyContinue | Microsoft.PowerShell.Utility\\\\Select-Object fqdn, S2DEnabled\\n}\\nreturn $null\\n}\\nfunction getClusterPerformanceHistoryPath() {\\n$storageSubsystem = Get-StorageSubSystem clus* -ErrorAction SilentlyContinue\\n$storageHealthSettings = Get-StorageHealthSetting -InputObject $storageSubsystem -Name \\\"System.PerformanceHistory.Path\\\" -ErrorAction SilentlyContinue\\nreturn $null -ne $storageHealthSettings\\n}\\nfunction getClusterInfo() {\\n$returnValues = @{}\\n$returnValues.Fqdn = $null\\n$returnValues.isS2DEnabled = $false\\n$returnValues.isTsdbEnabled = $false\\n$cluster = getClusterCimInstance\\nif ($cluster) {\\n$returnValues.Fqdn = $cluster.fqdn\\n$isS2dEnabled = !!(Get-Member -InputObject $cluster -Name \\\"S2DEnabled\\\") -and ($cluster.S2DEnabled -eq 1)\\n$returnValues.isS2DEnabled = $isS2dEnabled\\nif ($isS2DEnabled) {\\n$returnValues.isTsdbEnabled = getClusterPerformanceHistoryPath\\n} else {\\n$returnValues.isTsdbEnabled = $false\\n}\\n}\\nreturn $returnValues\\n}\\nfunction getisClusterHealthCmdletAvailable() {\\n$cmdlet = Get-Command -Name \\\"Get-HealthFault\\\" -ErrorAction SilentlyContinue\\nreturn !!$cmdlet\\n}\\nfunction getIsBritannicaEnabled() {\\nreturn $null -ne (Get-CimInstance -Namespace root/sddc/management -ClassName SDDC_Cluster -ErrorAction SilentlyContinue)\\n}\\nfunction getIsBritannicaVirtualMachineEnabled() {\\nreturn $null -ne (Get-CimInstance -Namespace root/sddc/management -ClassName SDDC_VirtualMachine -ErrorAction SilentlyContinue)\\n}\\nfunction getIsBritannicaVirtualSwitchEnabled() {\\nreturn $null -ne (Get-CimInstance -Namespace root/sddc/management -ClassName SDDC_VirtualSwitch -ErrorAction SilentlyContinue)\\n}\\n$clusterInfo = getClusterInfo\\n$result = New-Object PSObject\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027Fqdn\\u0027 -Value $clusterInfo.Fqdn\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027IsS2DEnabled\\u0027 -Value $clusterInfo.isS2DEnabled\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027IsTsdbEnabled\\u0027 -Value $clusterInfo.isTsdbEnabled\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027IsClusterHealthCmdletAvailable\\u0027 -Value (getIsClusterHealthCmdletAvailable)\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027IsBritannicaEnabled\\u0027 -Value (getIsBritannicaEnabled)\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027IsBritannicaVirtualMachineEnabled\\u0027 -Value (getIsBritannicaVirtualMachineEnabled)\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027IsBritannicaVirtualSwitchEnabled\\u0027 -Value (getIsBritannicaVirtualSwitchEnabled)\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027IsClusterCmdletAvailable\\u0027 -Value (getIsClusterCmdletAvailable)\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027CurrentClusterNode\\u0027 -Value (getComputerName)\\n$result\\n\"\r\n }\r\n export const Get_ClusterNodes = {\r\n command: 'Get-ClusterNodes',\r\n script: \"##Get-ClusterNodes##:Get-ClusterNodes.ps1\\nimport-module CimCmdlets\\nimport-module FailoverClusters -ErrorAction SilentlyContinue\\nSet-Variable -Name LogName -Option Constant -Value \\\"Microsoft-ServerManagementExperience\\\" -ErrorAction SilentlyContinue\\nSet-Variable -Name LogSource -Option Constant -Value \\\"SMEScripts\\\" -ErrorAction SilentlyContinue\\nSet-Variable -Name ScriptName -Option Constant -Value $MyInvocation.ScriptName -ErrorAction SilentlyContinue\\nfunction getClusterPowerShellSupport() {\\n$cmdletInfo = Get-Command \\u0027Get-ClusterNode\\u0027 -ErrorAction SilentlyContinue\\nreturn $cmdletInfo -and $cmdletInfo.Name -eq \\\"Get-ClusterNode\\\"\\n}\\nfunction getClusterNodeCimInstances() {\\nreturn Get-CimInstance -Namespace root/mscluster MSCluster_Node -ErrorAction SilentlyContinue | `\\nMicrosoft.PowerShell.Utility\\\\Select-Object @{Name=\\\"DrainStatus\\\"; Expression={$_.NodeDrainStatus}}, DynamicWeight, Name, NodeWeight, FaultDomain, State\\n}\\nfunction getClusterNodePsInstances() {\\nreturn Get-ClusterNode -ErrorAction SilentlyContinue | Microsoft.PowerShell.Utility\\\\Select-Object DrainStatus, DynamicWeight, Name, NodeWeight, FaultDomain, State\\n}\\nfunction getClusterNodeFqdn([string]$clusterNodeName) {\\nreturn ([System.Net.Dns]::GetHostEntry($clusterNodeName)).HostName\\n}\\nfunction writeToEventLog([string]$message) {\\nMicrosoft.PowerShell.Management\\\\New-EventLog -LogName $LogName -Source $LogSource -ErrorAction SilentlyContinue\\nMicrosoft.PowerShell.Management\\\\Write-EventLog -LogName $LogName -Source $LogSource -EventId 0 -Category 0 -EntryType Warning `\\n-Message $message -ErrorAction SilentlyContinue\\n}\\nfunction getClusterNodes() {\\n$isClusterCmdletAvailable = getClusterPowerShellSupport\\nif ($isClusterCmdletAvailable) {\\n$clusterNodes = getClusterNodePsInstances\\n} else {\\n$clusterNodes = getClusterNodeCimInstances\\n}\\n$clusterNodeMap = @{}\\nforeach ($clusterNode in $clusterNodes) {\\n$clusterNodeName = $clusterNode.Name.ToLower()\\ntry\\n{\\n$clusterNodeFqdn = getClusterNodeFqdn $clusterNodeName -ErrorAction SilentlyContinue\\n}\\ncatch\\n{\\n$clusterNodeFqdn = $clusterNodeName\\nwriteToEventLog \\\"[$ScriptName]: The fqdn for node \\u0027$clusterNodeName\\u0027 could not be obtained. Defaulting to machine name \\u0027$clusterNodeName\\u0027\\\"\\n}\\n$clusterNodeResult = New-Object PSObject\\n$clusterNodeResult | Add-Member -MemberType NoteProperty -Name \\u0027FullyQualifiedDomainName\\u0027 -Value $clusterNodeFqdn\\n$clusterNodeResult | Add-Member -MemberType NoteProperty -Name \\u0027Name\\u0027 -Value $clusterNodeName\\n$clusterNodeResult | Add-Member -MemberType NoteProperty -Name \\u0027DynamicWeight\\u0027 -Value $clusterNode.DynamicWeight\\n$clusterNodeResult | Add-Member -MemberType NoteProperty -Name \\u0027NodeWeight\\u0027 -Value $clusterNode.NodeWeight\\n$clusterNodeResult | Add-Member -MemberType NoteProperty -Name \\u0027FaultDomain\\u0027 -Value $clusterNode.FaultDomain\\n$clusterNodeResult | Add-Member -MemberType NoteProperty -Name \\u0027State\\u0027 -Value $clusterNode.State\\n$clusterNodeResult | Add-Member -MemberType NoteProperty -Name \\u0027DrainStatus\\u0027 -Value $clusterNode.DrainStatus\\n$clusterNodeMap.Add($clusterNodeName, $clusterNodeResult)\\n}\\nreturn $clusterNodeMap\\n}\\ngetClusterNodes\\n\"\r\n }\r\n export const Get_ServerInventory = {\r\n command: 'Get-ServerInventory',\r\n script: \"##Get-ServerInventory##:Get-ServerInventory.ps1\\nSet-StrictMode -Version 5.0\\nImport-Module CimCmdlets\\nImport-Module Storage -ErrorAction SilentlyContinue\\nfunction convertOsVersion([string]$osVersion) {\\n[Ref]$parsedVersion = $null\\nif (![Version]::TryParse($osVersion, $parsedVersion)) {\\nreturn $null\\n}\\n$version = [Version]$parsedVersion.Value\\nreturn New-Object Version -ArgumentList $version.Major, $version.Minor\\n}\\nfunction isCredSSPEnabled() {\\nSet-Variable credSSPServicePath -Option Constant -Value \\\"WSMan:\\\\localhost\\\\Service\\\\Auth\\\\CredSSP\\\"\\nSet-Variable credSSPClientPath -Option Constant -Value \\\"WSMan:\\\\localhost\\\\Client\\\\Auth\\\\CredSSP\\\"\\n$credSSPServerEnabled = $false;\\n$credSSPClientEnabled = $false;\\n$credSSPServerService = Get-Item $credSSPServicePath -ErrorAction SilentlyContinue\\nif ($credSSPServerService) {\\n$credSSPServerEnabled = [System.Convert]::ToBoolean($credSSPServerService.Value)\\n}\\n$credSSPClientService = Get-Item $credSSPClientPath -ErrorAction SilentlyContinue\\nif ($credSSPClientService) {\\n$credSSPClientEnabled = [System.Convert]::ToBoolean($credSSPClientService.Value)\\n}\\nreturn ($credSSPServerEnabled -or $credSSPClientEnabled)\\n}\\nfunction isHyperVRoleInstalled() {\\n$vmmsService = Get-Service -Name \\\"VMMS\\\" -ErrorAction SilentlyContinue\\nreturn $vmmsService -and $vmmsService.Name -eq \\\"VMMS\\\"\\n}\\nfunction isHyperVPowerShellSupportInstalled() {\\nreturn !!(Get-Module -ListAvailable Hyper-V -ErrorAction SilentlyContinue)\\n}\\nfunction isWMF5Installed([string] $operatingSystemVersion) {\\nSet-Variable Server2016 -Option Constant -Value (New-Object Version \\u002710.0\\u0027) # And Windows 10 client SKUs\\nSet-Variable Server2012 -Option Constant -Value (New-Object Version \\u00276.2\\u0027)\\n$version = convertOsVersion $operatingSystemVersion\\nif (-not $version) {\\nreturn $false\\n}\\nif ($version -ge $Server2016) {\\nreturn $true\\n}\\nelse {\\nif ($version -ge $Server2012) {\\n$registryKey = \\u0027HKLM:\\\\SOFTWARE\\\\Microsoft\\\\PowerShell\\\\3\\\\PowerShellEngine\\u0027\\n$registryKeyValue = Get-ItemProperty -Path $registryKey -Name PowerShellVersion -ErrorAction SilentlyContinue\\nif ($registryKeyValue -and ($registryKeyValue.PowerShellVersion.Length -ne 0)) {\\n$installedWmfVersion = [Version]$registryKeyValue.PowerShellVersion\\nif ($installedWmfVersion -ge [Version]\\u00275.0\\u0027) {\\nreturn $true\\n}\\n}\\n}\\n}\\nreturn $false\\n}\\nfunction isUserAnAdministrator() {\\nreturn ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] \\\"Administrator\\\")\\n}\\nfunction getClusterInformation() {\\n$returnValues = @{ }\\n$returnValues.IsS2dEnabled = $false\\n$returnValues.IsCluster = $false\\n$returnValues.ClusterFqdn = $null\\n$returnValues.IsBritannicaEnabled = $false\\n$namespace = Get-CimInstance -Namespace root/MSCluster -ClassName __NAMESPACE -ErrorAction SilentlyContinue\\nif ($namespace) {\\n$cluster = Get-CimInstance -Namespace root/MSCluster -ClassName MSCluster_Cluster -ErrorAction SilentlyContinue\\nif ($cluster) {\\n$returnValues.IsCluster = $true\\n$returnValues.ClusterFqdn = $cluster.Fqdn\\n$returnValues.IsS2dEnabled = !!(Get-Member -InputObject $cluster -Name \\\"S2DEnabled\\\") -and ($cluster.S2DEnabled -gt 0)\\n$returnValues.IsBritannicaEnabled = $null -ne (Get-CimInstance -Namespace root/sddc/management -ClassName SDDC_Cluster -ErrorAction SilentlyContinue)\\n}\\n}\\nreturn $returnValues\\n}\\nfunction getComputerFqdnAndAddress($computerName) {\\n$hostEntry = [System.Net.Dns]::GetHostEntry($computerName)\\n$addressList = @()\\nforeach ($item in $hostEntry.AddressList) {\\n$address = New-Object PSObject\\n$address | Add-Member -MemberType NoteProperty -Name \\u0027IpAddress\\u0027 -Value $item.ToString()\\n$address | Add-Member -MemberType NoteProperty -Name \\u0027AddressFamily\\u0027 -Value $item.AddressFamily.ToString()\\n$addressList += $address\\n}\\n$result = New-Object PSObject\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027Fqdn\\u0027 -Value $hostEntry.HostName\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027AddressList\\u0027 -Value $addressList\\nreturn $result\\n}\\nfunction getHostFqdnAndAddress($computerSystem) {\\n$computerName = $computerSystem.DNSHostName\\nif (!$computerName) {\\n$computerName = $computerSystem.Name\\n}\\nreturn getComputerFqdnAndAddress $computerName\\n}\\nfunction getManagementToolsSupportInformation() {\\n$returnValues = @{ }\\n$returnValues.ManagementToolsAvailable = $false\\n$returnValues.ServerManagerAvailable = $false\\n$namespaces = Get-CimInstance -Namespace root/microsoft/windows -ClassName __NAMESPACE -ErrorAction SilentlyContinue\\nif ($namespaces) {\\n$returnValues.ManagementToolsAvailable = !!($namespaces | Where-Object { $_.Name -ieq \\\"ManagementTools\\\" })\\n$returnValues.ServerManagerAvailable = !!($namespaces | Where-Object { $_.Name -ieq \\\"ServerManager\\\" })\\n}\\nreturn $returnValues\\n}\\nfunction isRemoteAppEnabled() {\\nSet-Variable key -Option Constant -Value \\\"HKLM:\\\\\\\\SOFTWARE\\\\\\\\Microsoft\\\\\\\\Windows NT\\\\\\\\CurrentVersion\\\\\\\\Terminal Server\\\\\\\\TSAppAllowList\\\"\\n$registryKeyValue = Get-ItemProperty -Path $key -Name fDisabledAllowList -ErrorAction SilentlyContinue\\nif (-not $registryKeyValue) {\\nreturn $false\\n}\\nreturn $registryKeyValue.fDisabledAllowList -eq 1\\n}\\nfunction getOperatingSystemInfo() {\\n$operatingSystemInfo = Get-CimInstance Win32_OperatingSystem | Microsoft.PowerShell.Utility\\\\Select-Object csName, Caption, OperatingSystemSKU, Version, ProductType, OSType, LastBootUpTime, SerialNumber\\n$currentVersion = Get-ItemProperty -Path \\\"HKLM:\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\" | Microsoft.PowerShell.Utility\\\\Select-Object CurrentBuild, UBR, DisplayVersion\\n$operatingSystemInfo | Add-Member -MemberType NoteProperty -Name CurrentBuild -Value $currentVersion.CurrentBuild\\n$operatingSystemInfo | Add-Member -MemberType NoteProperty -Name UpdateBuildRevision -Value $currentVersion.UBR\\n$operatingSystemInfo | Add-Member -MemberType NoteProperty -Name DisplayVersion -Value $currentVersion.DisplayVersion\\nreturn $operatingSystemInfo\\n}\\nfunction getComputerSystemInfo() {\\nreturn Get-CimInstance Win32_ComputerSystem -ErrorAction SilentlyContinue | `\\nMicrosoft.PowerShell.Utility\\\\Select-Object TotalPhysicalMemory, DomainRole, Manufacturer, Model, NumberOfLogicalProcessors, Domain, Workgroup, DNSHostName, Name, PartOfDomain, SystemFamily, SystemSKUNumber\\n}\\nfunction getSmbiosData($computerSystem) {\\n$ChassisTypes =\\n@{\\n1 = \\u0027Other\\u0027\\n2 = \\u0027Unknown\\u0027\\n3 = \\u0027Desktop\\u0027\\n4 = \\u0027Low Profile Desktop\\u0027\\n5 = \\u0027Pizza Box\\u0027\\n6 = \\u0027Mini Tower\\u0027\\n7 = \\u0027Tower\\u0027\\n8 = \\u0027Portable\\u0027\\n9 = \\u0027Laptop\\u0027\\n10 = \\u0027Notebook\\u0027\\n11 = \\u0027Hand Held\\u0027\\n12 = \\u0027Docking Station\\u0027\\n13 = \\u0027All in One\\u0027\\n14 = \\u0027Sub Notebook\\u0027\\n15 = \\u0027Space-Saving\\u0027\\n16 = \\u0027Lunch Box\\u0027\\n17 = \\u0027Main System Chassis\\u0027\\n18 = \\u0027Expansion Chassis\\u0027\\n19 = \\u0027SubChassis\\u0027\\n20 = \\u0027Bus Expansion Chassis\\u0027\\n21 = \\u0027Peripheral Chassis\\u0027\\n22 = \\u0027Storage Chassis\\u0027\\n23 = \\u0027Rack Mount Chassis\\u0027\\n24 = \\u0027Sealed-Case PC\\u0027\\n25 = \\u0027Multi-system chassis\\u0027\\n26 = \\u0027Compact PCI\\u0027\\n27 = \\u0027Advanced TCA\\u0027\\n28 = \\u0027Blade\\u0027\\n29 = \\u0027Blade Enclosure\\u0027\\n30 = \\u0027Tablet\\u0027\\n31 = \\u0027Convertible\\u0027\\n32 = \\u0027Detachable\\u0027\\n33 = \\u0027IoT Gateway\\u0027\\n34 = \\u0027Embedded PC\\u0027\\n35 = \\u0027Mini PC\\u0027\\n36 = \\u0027Stick PC\\u0027\\n}\\n$list = New-Object System.Collections.ArrayList\\n$win32_Bios = Get-CimInstance -class Win32_Bios\\n$obj = New-Object -Type PSObject | Microsoft.PowerShell.Utility\\\\Select-Object SerialNumber, Manufacturer, UUID, BaseBoardProduct, ChassisTypes, Chassis, SystemFamily, SystemSKUNumber, SMBIOSAssetTag\\n$obj.SerialNumber = $win32_Bios.SerialNumber\\n$obj.Manufacturer = $win32_Bios.Manufacturer\\n$computerSystemProduct = Get-CimInstance Win32_ComputerSystemProduct\\nif ($null -ne $computerSystemProduct) {\\n$obj.UUID = $computerSystemProduct.UUID\\n}\\n$baseboard = Get-CimInstance Win32_BaseBoard\\nif ($null -ne $baseboard) {\\n$obj.BaseBoardProduct = $baseboard.Product\\n}\\n$systemEnclosure = Get-CimInstance Win32_SystemEnclosure\\nif ($null -ne $systemEnclosure) {\\n$obj.SMBIOSAssetTag = $systemEnclosure.SMBIOSAssetTag\\n}\\n$obj.ChassisTypes = Get-CimInstance Win32_SystemEnclosure | Microsoft.PowerShell.Utility\\\\Select-Object -ExpandProperty ChassisTypes\\n$obj.Chassis = New-Object -TypeName \\u0027System.Collections.ArrayList\\u0027\\n$obj.ChassisTypes | ForEach-Object -Process {\\n$obj.Chassis.Add($ChassisTypes[[int]$_])\\n}\\n$obj.SystemFamily = $computerSystem.SystemFamily\\n$obj.SystemSKUNumber = $computerSystem.SystemSKUNumber\\n$list.Add($obj) | Out-Null\\nreturn $list\\n}\\nfunction getAzureArcStatus() {\\n$LogName = \\\"Microsoft-ServerManagementExperience\\\"\\n$LogSource = \\\"SMEScript\\\"\\n$ScriptName = \\\"Get-ServerInventory.ps1 - getAzureArcStatus()\\\"\\nMicrosoft.PowerShell.Management\\\\New-EventLog -LogName $LogName -Source $LogSource -ErrorAction SilentlyContinue\\nGet-Service -Name himds -ErrorVariable Err -ErrorAction SilentlyContinue | Out-Null\\nif (!!$Err) {\\n$Err = \\\"The Azure arc agent is not installed. Details: $Err\\\"\\nMicrosoft.PowerShell.Management\\\\Write-EventLog -LogName $LogName -Source $LogSource -EventId 0 -Category 0 -EntryType Information `\\n-Message \\\"[$ScriptName]: $Err\\\" -ErrorAction SilentlyContinue\\n$status = \\\"NotInstalled\\\"\\n}\\nelse {\\n$status = (azcmagent show --json | ConvertFrom-Json -ErrorAction Stop).status\\n}\\nreturn $status\\n}\\nfunction getSystemLockdownPolicy() {\\nreturn [System.Management.Automation.Security.SystemPolicy]::GetSystemLockdownPolicy().ToString()\\n}\\nfunction isServerOsHCI([string] $operatingSystemCaption) {\\nreturn $operatingSystemCaption -eq \\\"Microsoft Azure Stack HCI\\\"\\n}\\n$operatingSystem = getOperatingSystemInfo\\n$computerSystem = getComputerSystemInfo\\n$isAdministrator = isUserAnAdministrator\\n$fqdnAndAddress = getHostFqdnAndAddress $computerSystem\\n$hostname = [Environment]::MachineName\\n$netbios = $env:ComputerName\\n$managementToolsInformation = getManagementToolsSupportInformation\\n$isWmfInstalled = isWMF5Installed $operatingSystem.Version\\n$clusterInformation = getClusterInformation -ErrorAction SilentlyContinue\\n$isHyperVPowershellInstalled = isHyperVPowerShellSupportInstalled\\n$isHyperVRoleInstalled = isHyperVRoleInstalled\\n$isCredSSPEnabled = isCredSSPEnabled\\n$isRemoteAppEnabled = isRemoteAppEnabled\\n$smbiosData = getSmbiosData $computerSystem\\n$azureArcStatus = getAzureArcStatus\\n$systemLockdownPolicy = getSystemLockdownPolicy\\n$isHciServer = isServerOsHCI $operatingSystem.Caption\\n$result = New-Object PSObject\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027IsAdministrator\\u0027 -Value $isAdministrator\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027OperatingSystem\\u0027 -Value $operatingSystem\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027ComputerSystem\\u0027 -Value $computerSystem\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027Fqdn\\u0027 -Value $fqdnAndAddress.Fqdn\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027AddressList\\u0027 -Value $fqdnAndAddress.AddressList\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027Hostname\\u0027 -Value $hostname\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027NetBios\\u0027 -Value $netbios\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027IsManagementToolsAvailable\\u0027 -Value $managementToolsInformation.ManagementToolsAvailable\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027IsServerManagerAvailable\\u0027 -Value $managementToolsInformation.ServerManagerAvailable\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027IsWmfInstalled\\u0027 -Value $isWmfInstalled\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027IsCluster\\u0027 -Value $clusterInformation.IsCluster\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027ClusterFqdn\\u0027 -Value $clusterInformation.ClusterFqdn\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027IsS2dEnabled\\u0027 -Value $clusterInformation.IsS2dEnabled\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027IsBritannicaEnabled\\u0027 -Value $clusterInformation.IsBritannicaEnabled\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027IsHyperVRoleInstalled\\u0027 -Value $isHyperVRoleInstalled\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027IsHyperVPowershellInstalled\\u0027 -Value $isHyperVPowershellInstalled\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027IsCredSSPEnabled\\u0027 -Value $isCredSSPEnabled\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027IsRemoteAppEnabled\\u0027 -Value $isRemoteAppEnabled\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027SmbiosData\\u0027 -Value $smbiosData\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027AzureArcStatus\\u0027 -Value $azureArcStatus\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027SystemLockdownPolicy\\u0027 -Value $systemLockdownPolicy\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027IsHciServer\\u0027 -Value $isHciServer\\n$result\\n\"\r\n }\r\n}\r\n"]}
1
+ {"version":3,"sources":["../../../packages/core/generated/powershell-scripts.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB;;;GAGG;AACH,MAAM,KAAQ,iBAAiB,CAkD9B;AAlDD,WAAc,iBAAiB;IAC3B,YAAY,CAAA;IAEC,wBAAM,GAAG,qBAAqB,CAAC;IAC/B,8BAAY,GAAG,cAAc,CAAC;IAC9B,kCAAgB,GAAG,OAAO,CAAC;IAC3B,uCAAqB,GAAG;QACjC,OAAO,EAAE,uBAAuB;QAChC,MAAM,EAAE,q/BAAq/B;KAChgC,CAAA;IACY,6BAAW,GAAG;QACvB,OAAO,EAAE,aAAa;QACtB,MAAM,EAAE,oGAAoG;KAC/G,CAAA;IACY,2CAAyB,GAAG;QACrC,OAAO,EAAE,2BAA2B;QACpC,MAAM,EAAE,2wBAA2wB;KACtxB,CAAA;IACY,yCAAuB,GAAG;QACnC,OAAO,EAAE,yBAAyB;QAClC,MAAM,EAAE,+5BAA+5B;KAC16B,CAAA;IACY,yCAAuB,GAAG;QACnC,OAAO,EAAE,yBAAyB;QAClC,MAAM,EAAE,yJAAyJ;KACpK,CAAA;IACY,4CAA0B,GAAG;QACtC,OAAO,EAAE,4BAA4B;QACrC,MAAM,EAAE,kKAAkK;KAC7K,CAAA;IACY,4CAA0B,GAAG;QACtC,OAAO,EAAE,4BAA4B;QACrC,MAAM,EAAE,kKAAkK;KAC7K,CAAA;IACY,uCAAqB,GAAG;QACjC,OAAO,EAAE,uBAAuB;QAChC,MAAM,EAAE,mJAAmJ;KAC9J,CAAA;IACY,sCAAoB,GAAG;QAChC,OAAO,EAAE,sBAAsB;QAC/B,MAAM,EAAE,4sHAA4sH;KACvtH,CAAA;IACY,kCAAgB,GAAG;QAC5B,OAAO,EAAE,kBAAkB;QAC3B,MAAM,EAAE,krGAAkrG;KAC7rG,CAAA;IACY,qCAAmB,GAAG;QAC/B,OAAO,EAAE,qBAAqB;QAC9B,MAAM,EAAE,wjcAAwjc;KACnkc,CAAA;AACL,CAAC,EAlDa,iBAAiB,KAAjB,iBAAiB,QAkD9B","file":"powershell-scripts.js","sourcesContent":["/* eslint:disable */\r\n/**\r\n * @file Source code generated by gulp-ps-code.\r\n * @version 1.1\r\n */\r\nexport module PowerShellScripts {\r\n 'use strict'\r\n\r\n export const module = 'Microsoft.SME.Shell';\r\n export const resourceName = 'MsftSmeShell';\r\n export const powerShellPrefix = 'WACSH';\r\n export const Start_ScheduledReboot = {\r\n command: 'Start-ScheduledReboot',\r\n script: \"##Start-ScheduledReboot##:Start-ScheduledReboot.ps1\\nparam (\\n[Parameter(Mandatory = $true)]\\n[bool]$restartlater,\\n[Parameter(Mandatory = $false)]\\n[String]$restartTime,\\n[Parameter(Mandatory = $false)]\\n[String]$restartReason,\\n[Parameter(Mandatory = $false)]\\n[System.Int16]$reasonNumberMajor,\\n[Parameter(Mandatory = $false)]\\n[System.Int16]$reasonNumberMinor\\n)\\n$waitTime = 5\\nif ($restartlater -and -not($restartTime)) {\\n$waitTime = 30\\n} elseif ($restartTime) {\\n$waitTime = [decimal]::round(((Get-Date $restartTime) - (Get-Date)).TotalSeconds);\\nif ($waitTime -gt (315360000 - 30)) {\\nTHROW \\\"Invalid restart time $restartTime. The valid range is 0-315360000s (10 years), with a default of 30\\\"\\n}\\n}\\nif ($waitTime -lt 5 ) {\\n$waitTime = 5\\n}\\n$command = \\\"Shutdown /r /t $waitTime\\\"\\nif ($restartReason -and ($reasonNumberMajor -ne $null) -and ($reasonNumberMinor -ne $null)) {\\n$command += \\\" /d ${restartReason}:${reasonNumberMajor}:${reasonNumberMinor}\\\"\\n}\\nInvoke-Expression -Command $command\\n\"\r\n }\r\n export const Stop_Reboot = {\r\n command: 'Stop-Reboot',\r\n script: \"##Stop-Reboot##:Stop-Reboot.ps1\\n$command = \\\"Shutdown /a\\\"\\nInvoke-Expression -Command $command\\n\"\r\n }\r\n export const Get_DecryptedDataFromNode = {\r\n command: 'Get-DecryptedDataFromNode',\r\n script: \"##Get-DecryptedDataFromNode##:Get-DecryptedDataFromNode.ps1\\nparam (\\n[Parameter(Mandatory = $true)]\\n[String]\\n$encryptedData\\n)\\nSet-StrictMode -Version 5.0\\nNew-Variable -Name rsaProviderInstanceName -Value \\\"RSA\\\" -Option Constant\\nfunction DecryptDataWithJWKOnNode {\\nif(Get-Variable -Scope Global -Name $rsaProviderInstanceName -EA SilentlyContinue) {\\n$rsaProvider = (Get-Variable -Scope Global -Name $rsaProviderInstanceName).Value\\n$decryptedBytes = $rsaProvider.Decrypt([Convert]::FromBase64String($encryptedData), [System.Security.Cryptography.RSAEncryptionPadding]::OaepSHA1)\\nreturn [System.Text.Encoding]::UTF8.GetString($decryptedBytes)\\n}\\nthrow [System.InvalidOperationException] \\\"Password decryption failed. RSACryptoServiceProvider Instance not found\\\"\\n}\\n\"\r\n }\r\n export const Get_EncryptionJWKOnNode = {\r\n command: 'Get-EncryptionJWKOnNode',\r\n script: \"##Get-EncryptionJWKOnNode##:Get-EncryptionJWKOnNode.ps1\\nSet-StrictMode -Version 5.0\\nNew-Variable -Name rsaProviderInstanceName -Value \\\"RSA\\\" -Option Constant\\nfunction Get-RSAProvider\\n{\\nif(Get-Variable -Scope Global -Name $rsaProviderInstanceName -EA SilentlyContinue)\\n{\\nreturn (Get-Variable -Scope Global -Name $rsaProviderInstanceName).Value\\n}\\n$Global:RSA = New-Object System.Security.Cryptography.RSACryptoServiceProvider -ArgumentList 4096\\nreturn $RSA\\n}\\nfunction Get-JsonWebKey\\n{\\n$rsaProvider = Get-RSAProvider\\n$parameters = $rsaProvider.ExportParameters($false)\\nreturn [PSCustomObject]@{\\nkty = \\u0027RSA\\u0027\\nalg = \\u0027RSA-OAEP\\u0027\\ne = [Convert]::ToBase64String($parameters.Exponent)\\nn = [Convert]::ToBase64String($parameters.Modulus).TrimEnd(\\u0027=\\u0027).Replace(\\u0027+\\u0027, \\u0027-\\u0027).Replace(\\u0027/\\u0027, \\u0027_\\u0027)\\n}\\n}\\n$jwk = Get-JsonWebKey\\nConvertTo-Json $jwk -Compress\\n\"\r\n }\r\n export const Get_CimWin32LogicalDisk = {\r\n command: 'Get-CimWin32LogicalDisk',\r\n script: \"##Get-CimWin32LogicalDisk##:Get-CimWin32LogicalDisk.ps1\\nimport-module CimCmdlets\\nGet-CimInstance -Namespace root/cimv2 -ClassName Win32_LogicalDisk\\n\"\r\n }\r\n export const Get_CimWin32NetworkAdapter = {\r\n command: 'Get-CimWin32NetworkAdapter',\r\n script: \"##Get-CimWin32NetworkAdapter##:Get-CimWin32NetworkAdapter.ps1\\nimport-module CimCmdlets\\nGet-CimInstance -Namespace root/cimv2 -ClassName Win32_NetworkAdapter\\n\"\r\n }\r\n export const Get_CimWin32PhysicalMemory = {\r\n command: 'Get-CimWin32PhysicalMemory',\r\n script: \"##Get-CimWin32PhysicalMemory##:Get-CimWin32PhysicalMemory.ps1\\nimport-module CimCmdlets\\nGet-CimInstance -Namespace root/cimv2 -ClassName Win32_PhysicalMemory\\n\"\r\n }\r\n export const Get_CimWin32Processor = {\r\n command: 'Get-CimWin32Processor',\r\n script: \"##Get-CimWin32Processor##:Get-CimWin32Processor.ps1\\nimport-module CimCmdlets\\nGet-CimInstance -Namespace root/cimv2 -ClassName Win32_Processor\\n\"\r\n }\r\n export const Get_ClusterInventory = {\r\n command: 'Get-ClusterInventory',\r\n script: \"##Get-ClusterInventory##:Get-ClusterInventory.ps1\\nImport-Module CimCmdlets -ErrorAction SilentlyContinue\\nImport-Module FailoverClusters -ErrorAction SilentlyContinue\\nImport-Module Storage -ErrorAction SilentlyContinue\\nfunction getComputerName() {\\n$computerSystem = Get-CimInstance Win32_ComputerSystem -ErrorAction SilentlyContinue | Microsoft.PowerShell.Utility\\\\Select-Object Name, DNSHostName\\nif ($computerSystem) {\\n$computerName = $computerSystem.DNSHostName\\nif ($null -eq $computerName) {\\n$computerName = $computerSystem.Name\\n}\\nreturn $computerName\\n}\\nreturn $null\\n}\\nfunction getIsClusterCmdletAvailable() {\\n$cmdlet = Get-Command \\\"Get-Cluster\\\" -ErrorAction SilentlyContinue\\nreturn !!$cmdlet\\n}\\nfunction getClusterCimInstance() {\\n$namespace = Get-CimInstance -Namespace root/MSCluster -ClassName __NAMESPACE -ErrorAction SilentlyContinue\\nif ($namespace) {\\nreturn Get-CimInstance -Namespace root/mscluster MSCluster_Cluster -ErrorAction SilentlyContinue | Microsoft.PowerShell.Utility\\\\Select-Object fqdn, S2DEnabled\\n}\\nreturn $null\\n}\\nfunction getClusterPerformanceHistoryPath() {\\n$storageSubsystem = Get-StorageSubSystem clus* -ErrorAction SilentlyContinue\\n$storageHealthSettings = Get-StorageHealthSetting -InputObject $storageSubsystem -Name \\\"System.PerformanceHistory.Path\\\" -ErrorAction SilentlyContinue\\nreturn $null -ne $storageHealthSettings\\n}\\nfunction getClusterInfo() {\\n$returnValues = @{}\\n$returnValues.Fqdn = $null\\n$returnValues.isS2DEnabled = $false\\n$returnValues.isTsdbEnabled = $false\\n$cluster = getClusterCimInstance\\nif ($cluster) {\\n$returnValues.Fqdn = $cluster.fqdn\\n$isS2dEnabled = !!(Get-Member -InputObject $cluster -Name \\\"S2DEnabled\\\") -and ($cluster.S2DEnabled -eq 1)\\n$returnValues.isS2DEnabled = $isS2dEnabled\\nif ($isS2DEnabled) {\\n$returnValues.isTsdbEnabled = getClusterPerformanceHistoryPath\\n} else {\\n$returnValues.isTsdbEnabled = $false\\n}\\n}\\nreturn $returnValues\\n}\\nfunction getisClusterHealthCmdletAvailable() {\\n$cmdlet = Get-Command -Name \\\"Get-HealthFault\\\" -ErrorAction SilentlyContinue\\nreturn !!$cmdlet\\n}\\nfunction getIsBritannicaEnabled() {\\nreturn $null -ne (Get-CimInstance -Namespace root/sddc/management -ClassName SDDC_Cluster -ErrorAction SilentlyContinue)\\n}\\nfunction getIsBritannicaVirtualMachineEnabled() {\\nreturn $null -ne (Get-CimInstance -Namespace root/sddc/management -ClassName SDDC_VirtualMachine -ErrorAction SilentlyContinue)\\n}\\nfunction getIsBritannicaVirtualSwitchEnabled() {\\nreturn $null -ne (Get-CimInstance -Namespace root/sddc/management -ClassName SDDC_VirtualSwitch -ErrorAction SilentlyContinue)\\n}\\n$clusterInfo = getClusterInfo\\n$result = New-Object PSObject\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027Fqdn\\u0027 -Value $clusterInfo.Fqdn\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027IsS2DEnabled\\u0027 -Value $clusterInfo.isS2DEnabled\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027IsTsdbEnabled\\u0027 -Value $clusterInfo.isTsdbEnabled\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027IsClusterHealthCmdletAvailable\\u0027 -Value (getIsClusterHealthCmdletAvailable)\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027IsBritannicaEnabled\\u0027 -Value (getIsBritannicaEnabled)\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027IsBritannicaVirtualMachineEnabled\\u0027 -Value (getIsBritannicaVirtualMachineEnabled)\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027IsBritannicaVirtualSwitchEnabled\\u0027 -Value (getIsBritannicaVirtualSwitchEnabled)\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027IsClusterCmdletAvailable\\u0027 -Value (getIsClusterCmdletAvailable)\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027CurrentClusterNode\\u0027 -Value (getComputerName)\\n$result\\n\"\r\n }\r\n export const Get_ClusterNodes = {\r\n command: 'Get-ClusterNodes',\r\n script: \"##Get-ClusterNodes##:Get-ClusterNodes.ps1\\nimport-module CimCmdlets\\nimport-module FailoverClusters -ErrorAction SilentlyContinue\\nSet-Variable -Name LogName -Option Constant -Value \\\"Microsoft-ServerManagementExperience\\\" -ErrorAction SilentlyContinue\\nSet-Variable -Name LogSource -Option Constant -Value \\\"SMEScripts\\\" -ErrorAction SilentlyContinue\\nSet-Variable -Name ScriptName -Option Constant -Value $MyInvocation.ScriptName -ErrorAction SilentlyContinue\\nfunction getClusterPowerShellSupport() {\\n$cmdletInfo = Get-Command \\u0027Get-ClusterNode\\u0027 -ErrorAction SilentlyContinue\\nreturn $cmdletInfo -and $cmdletInfo.Name -eq \\\"Get-ClusterNode\\\"\\n}\\nfunction getClusterNodeCimInstances() {\\nreturn Get-CimInstance -Namespace root/mscluster MSCluster_Node -ErrorAction SilentlyContinue | `\\nMicrosoft.PowerShell.Utility\\\\Select-Object @{Name=\\\"DrainStatus\\\"; Expression={$_.NodeDrainStatus}}, DynamicWeight, Name, NodeWeight, FaultDomain, State\\n}\\nfunction getClusterNodePsInstances() {\\nreturn Get-ClusterNode -ErrorAction SilentlyContinue | Microsoft.PowerShell.Utility\\\\Select-Object DrainStatus, DynamicWeight, Name, NodeWeight, FaultDomain, State\\n}\\nfunction getClusterNodeFqdn([string]$clusterNodeName) {\\nreturn ([System.Net.Dns]::GetHostEntry($clusterNodeName)).HostName\\n}\\nfunction writeToEventLog([string]$message) {\\nMicrosoft.PowerShell.Management\\\\New-EventLog -LogName $LogName -Source $LogSource -ErrorAction SilentlyContinue\\nMicrosoft.PowerShell.Management\\\\Write-EventLog -LogName $LogName -Source $LogSource -EventId 0 -Category 0 -EntryType Warning `\\n-Message $message -ErrorAction SilentlyContinue\\n}\\nfunction getClusterNodes() {\\n$isClusterCmdletAvailable = getClusterPowerShellSupport\\nif ($isClusterCmdletAvailable) {\\n$clusterNodes = getClusterNodePsInstances\\n} else {\\n$clusterNodes = getClusterNodeCimInstances\\n}\\n$clusterNodeMap = @{}\\nforeach ($clusterNode in $clusterNodes) {\\n$clusterNodeName = $clusterNode.Name.ToLower()\\ntry\\n{\\n$clusterNodeFqdn = getClusterNodeFqdn $clusterNodeName -ErrorAction SilentlyContinue\\n}\\ncatch\\n{\\n$clusterNodeFqdn = $clusterNodeName\\nwriteToEventLog \\\"[$ScriptName]: The fqdn for node \\u0027$clusterNodeName\\u0027 could not be obtained. Defaulting to machine name \\u0027$clusterNodeName\\u0027\\\"\\n}\\n$clusterNodeResult = New-Object PSObject\\n$clusterNodeResult | Add-Member -MemberType NoteProperty -Name \\u0027FullyQualifiedDomainName\\u0027 -Value $clusterNodeFqdn\\n$clusterNodeResult | Add-Member -MemberType NoteProperty -Name \\u0027Name\\u0027 -Value $clusterNodeName\\n$clusterNodeResult | Add-Member -MemberType NoteProperty -Name \\u0027DynamicWeight\\u0027 -Value $clusterNode.DynamicWeight\\n$clusterNodeResult | Add-Member -MemberType NoteProperty -Name \\u0027NodeWeight\\u0027 -Value $clusterNode.NodeWeight\\n$clusterNodeResult | Add-Member -MemberType NoteProperty -Name \\u0027FaultDomain\\u0027 -Value $clusterNode.FaultDomain\\n$clusterNodeResult | Add-Member -MemberType NoteProperty -Name \\u0027State\\u0027 -Value $clusterNode.State\\n$clusterNodeResult | Add-Member -MemberType NoteProperty -Name \\u0027DrainStatus\\u0027 -Value $clusterNode.DrainStatus\\n$clusterNodeMap.Add($clusterNodeName, $clusterNodeResult)\\n}\\nreturn $clusterNodeMap\\n}\\ngetClusterNodes\\n\"\r\n }\r\n export const Get_ServerInventory = {\r\n command: 'Get-ServerInventory',\r\n script: \"##Get-ServerInventory##:Get-ServerInventory.ps1\\nSet-StrictMode -Version 5.0\\nImport-Module CimCmdlets\\nImport-Module Storage -ErrorAction SilentlyContinue\\nfunction convertOsVersion([string]$osVersion) {\\n[Ref]$parsedVersion = $null\\nif (![Version]::TryParse($osVersion, $parsedVersion)) {\\nreturn $null\\n}\\n$version = [Version]$parsedVersion.Value\\nreturn New-Object Version -ArgumentList $version.Major, $version.Minor\\n}\\nfunction isCredSSPEnabled() {\\nSet-Variable credSSPServicePath -Option Constant -Value \\\"WSMan:\\\\localhost\\\\Service\\\\Auth\\\\CredSSP\\\"\\nSet-Variable credSSPClientPath -Option Constant -Value \\\"WSMan:\\\\localhost\\\\Client\\\\Auth\\\\CredSSP\\\"\\n$credSSPServerEnabled = $false;\\n$credSSPClientEnabled = $false;\\n$credSSPServerService = Get-Item $credSSPServicePath -ErrorAction SilentlyContinue\\nif ($credSSPServerService) {\\n$credSSPServerEnabled = [System.Convert]::ToBoolean($credSSPServerService.Value)\\n}\\n$credSSPClientService = Get-Item $credSSPClientPath -ErrorAction SilentlyContinue\\nif ($credSSPClientService) {\\n$credSSPClientEnabled = [System.Convert]::ToBoolean($credSSPClientService.Value)\\n}\\nreturn ($credSSPServerEnabled -or $credSSPClientEnabled)\\n}\\nfunction isHyperVRoleInstalled() {\\n$vmmsService = Get-Service -Name \\\"VMMS\\\" -ErrorAction SilentlyContinue\\nreturn $vmmsService -and $vmmsService.Name -eq \\\"VMMS\\\"\\n}\\nfunction isHyperVPowerShellSupportInstalled() {\\nreturn !!(Get-Module -ListAvailable Hyper-V -ErrorAction SilentlyContinue)\\n}\\nfunction isWMF5Installed([string] $operatingSystemVersion) {\\nSet-Variable Server2016 -Option Constant -Value (New-Object Version \\u002710.0\\u0027) # And Windows 10 client SKUs\\nSet-Variable Server2012 -Option Constant -Value (New-Object Version \\u00276.2\\u0027)\\n$version = convertOsVersion $operatingSystemVersion\\nif (-not $version) {\\nreturn $false\\n}\\nif ($version -ge $Server2016) {\\nreturn $true\\n}\\nelse {\\nif ($version -ge $Server2012) {\\n$registryKey = \\u0027HKLM:\\\\SOFTWARE\\\\Microsoft\\\\PowerShell\\\\3\\\\PowerShellEngine\\u0027\\n$registryKeyValue = Get-ItemProperty -Path $registryKey -Name PowerShellVersion -ErrorAction SilentlyContinue\\nif ($registryKeyValue -and ($registryKeyValue.PowerShellVersion.Length -ne 0)) {\\n$installedWmfVersion = [Version]$registryKeyValue.PowerShellVersion\\nif ($installedWmfVersion -ge [Version]\\u00275.0\\u0027) {\\nreturn $true\\n}\\n}\\n}\\n}\\nreturn $false\\n}\\nfunction isUserAnAdministrator() {\\nreturn ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] \\\"Administrator\\\")\\n}\\nfunction getClusterInformation() {\\n$returnValues = @{ }\\n$returnValues.IsS2dEnabled = $false\\n$returnValues.IsCluster = $false\\n$returnValues.ClusterFqdn = $null\\n$returnValues.IsBritannicaEnabled = $false\\n$namespace = Get-CimInstance -Namespace root/MSCluster -ClassName __NAMESPACE -ErrorAction SilentlyContinue\\nif ($namespace) {\\n$cluster = Get-CimInstance -Namespace root/MSCluster -ClassName MSCluster_Cluster -ErrorAction SilentlyContinue\\nif ($cluster) {\\n$returnValues.IsCluster = $true\\n$returnValues.ClusterFqdn = $cluster.Fqdn\\n$returnValues.IsS2dEnabled = !!(Get-Member -InputObject $cluster -Name \\\"S2DEnabled\\\") -and ($cluster.S2DEnabled -gt 0)\\n$returnValues.IsBritannicaEnabled = $null -ne (Get-CimInstance -Namespace root/sddc/management -ClassName SDDC_Cluster -ErrorAction SilentlyContinue)\\n}\\n}\\nreturn $returnValues\\n}\\nfunction getComputerFqdnAndAddress($computerName) {\\n$hostEntry = [System.Net.Dns]::GetHostEntry($computerName)\\n$addressList = @()\\nforeach ($item in $hostEntry.AddressList) {\\n$address = New-Object PSObject\\n$address | Add-Member -MemberType NoteProperty -Name \\u0027IpAddress\\u0027 -Value $item.ToString()\\n$address | Add-Member -MemberType NoteProperty -Name \\u0027AddressFamily\\u0027 -Value $item.AddressFamily.ToString()\\n$addressList += $address\\n}\\n$result = New-Object PSObject\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027Fqdn\\u0027 -Value $hostEntry.HostName\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027AddressList\\u0027 -Value $addressList\\nreturn $result\\n}\\nfunction getHostFqdnAndAddress($computerSystem) {\\n$computerName = $computerSystem.DNSHostName\\nif (!$computerName) {\\n$computerName = $computerSystem.Name\\n}\\nreturn getComputerFqdnAndAddress $computerName\\n}\\nfunction getManagementToolsSupportInformation() {\\n$returnValues = @{ }\\n$returnValues.ManagementToolsAvailable = $false\\n$returnValues.ServerManagerAvailable = $false\\n$namespaces = Get-CimInstance -Namespace root/microsoft/windows -ClassName __NAMESPACE -ErrorAction SilentlyContinue\\nif ($namespaces) {\\n$returnValues.ManagementToolsAvailable = !!($namespaces | Where-Object { $_.Name -ieq \\\"ManagementTools\\\" })\\n$returnValues.ServerManagerAvailable = !!($namespaces | Where-Object { $_.Name -ieq \\\"ServerManager\\\" })\\n}\\nreturn $returnValues\\n}\\nfunction isRemoteAppEnabled() {\\nSet-Variable key -Option Constant -Value \\\"HKLM:\\\\\\\\SOFTWARE\\\\\\\\Microsoft\\\\\\\\Windows NT\\\\\\\\CurrentVersion\\\\\\\\Terminal Server\\\\\\\\TSAppAllowList\\\"\\n$registryKeyValue = Get-ItemProperty -Path $key -Name fDisabledAllowList -ErrorAction SilentlyContinue\\nif (-not $registryKeyValue) {\\nreturn $false\\n}\\nreturn $registryKeyValue.fDisabledAllowList -eq 1\\n}\\nfunction getOperatingSystemInfo() {\\n$operatingSystemInfo = Get-CimInstance Win32_OperatingSystem | Microsoft.PowerShell.Utility\\\\Select-Object csName, Caption, OperatingSystemSKU, Version, ProductType, OSType, LastBootUpTime, SerialNumber\\n$currentVersion = Get-ItemProperty -Path \\\"HKLM:\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\" | Microsoft.PowerShell.Utility\\\\Select-Object CurrentBuild, UBR, DisplayVersion\\n$operatingSystemInfo | Add-Member -MemberType NoteProperty -Name CurrentBuild -Value $currentVersion.CurrentBuild\\n$operatingSystemInfo | Add-Member -MemberType NoteProperty -Name UpdateBuildRevision -Value $currentVersion.UBR\\n$operatingSystemInfo | Add-Member -MemberType NoteProperty -Name DisplayVersion -Value $currentVersion.DisplayVersion\\nreturn $operatingSystemInfo\\n}\\nfunction getComputerSystemInfo() {\\nreturn Get-CimInstance Win32_ComputerSystem -ErrorAction SilentlyContinue | `\\nMicrosoft.PowerShell.Utility\\\\Select-Object TotalPhysicalMemory, DomainRole, Manufacturer, Model, NumberOfLogicalProcessors, Domain, Workgroup, DNSHostName, Name, PartOfDomain, SystemFamily, SystemSKUNumber\\n}\\nfunction getSmbiosData($computerSystem) {\\n$ChassisTypes =\\n@{\\n1 = \\u0027Other\\u0027\\n2 = \\u0027Unknown\\u0027\\n3 = \\u0027Desktop\\u0027\\n4 = \\u0027Low Profile Desktop\\u0027\\n5 = \\u0027Pizza Box\\u0027\\n6 = \\u0027Mini Tower\\u0027\\n7 = \\u0027Tower\\u0027\\n8 = \\u0027Portable\\u0027\\n9 = \\u0027Laptop\\u0027\\n10 = \\u0027Notebook\\u0027\\n11 = \\u0027Hand Held\\u0027\\n12 = \\u0027Docking Station\\u0027\\n13 = \\u0027All in One\\u0027\\n14 = \\u0027Sub Notebook\\u0027\\n15 = \\u0027Space-Saving\\u0027\\n16 = \\u0027Lunch Box\\u0027\\n17 = \\u0027Main System Chassis\\u0027\\n18 = \\u0027Expansion Chassis\\u0027\\n19 = \\u0027SubChassis\\u0027\\n20 = \\u0027Bus Expansion Chassis\\u0027\\n21 = \\u0027Peripheral Chassis\\u0027\\n22 = \\u0027Storage Chassis\\u0027\\n23 = \\u0027Rack Mount Chassis\\u0027\\n24 = \\u0027Sealed-Case PC\\u0027\\n25 = \\u0027Multi-system chassis\\u0027\\n26 = \\u0027Compact PCI\\u0027\\n27 = \\u0027Advanced TCA\\u0027\\n28 = \\u0027Blade\\u0027\\n29 = \\u0027Blade Enclosure\\u0027\\n30 = \\u0027Tablet\\u0027\\n31 = \\u0027Convertible\\u0027\\n32 = \\u0027Detachable\\u0027\\n33 = \\u0027IoT Gateway\\u0027\\n34 = \\u0027Embedded PC\\u0027\\n35 = \\u0027Mini PC\\u0027\\n36 = \\u0027Stick PC\\u0027\\n}\\n$list = New-Object System.Collections.ArrayList\\n$win32_Bios = Get-CimInstance -class Win32_Bios\\n$obj = New-Object -Type PSObject | Microsoft.PowerShell.Utility\\\\Select-Object SerialNumber, Manufacturer, UUID, BaseBoardProduct, ChassisTypes, Chassis, SystemFamily, SystemSKUNumber, SMBIOSAssetTag\\n$obj.SerialNumber = $win32_Bios.SerialNumber\\n$obj.Manufacturer = $win32_Bios.Manufacturer\\n$computerSystemProduct = Get-CimInstance Win32_ComputerSystemProduct\\nif ($null -ne $computerSystemProduct) {\\n$obj.UUID = $computerSystemProduct.UUID\\n}\\n$baseboard = Get-CimInstance Win32_BaseBoard\\nif ($null -ne $baseboard) {\\n$obj.BaseBoardProduct = $baseboard.Product\\n}\\n$systemEnclosure = Get-CimInstance Win32_SystemEnclosure\\nif ($null -ne $systemEnclosure) {\\n$obj.SMBIOSAssetTag = $systemEnclosure.SMBIOSAssetTag\\n}\\n$obj.ChassisTypes = Get-CimInstance Win32_SystemEnclosure | Microsoft.PowerShell.Utility\\\\Select-Object -ExpandProperty ChassisTypes\\n$obj.Chassis = New-Object -TypeName \\u0027System.Collections.ArrayList\\u0027\\n$obj.ChassisTypes | ForEach-Object -Process {\\n$obj.Chassis.Add($ChassisTypes[[int]$_])\\n}\\n$obj.SystemFamily = $computerSystem.SystemFamily\\n$obj.SystemSKUNumber = $computerSystem.SystemSKUNumber\\n$list.Add($obj) | Out-Null\\nreturn $list\\n}\\nfunction getAzureArcStatus() {\\n$LogName = \\\"Microsoft-ServerManagementExperience\\\"\\n$LogSource = \\\"SMEScript\\\"\\n$ScriptName = \\\"Get-ServerInventory.ps1 - getAzureArcStatus()\\\"\\n$AzcmagentExecutable = \\\"$env:ProgramFiles\\\\AzureConnectedMachineAgent\\\\azcmagent.exe\\\"\\nMicrosoft.PowerShell.Management\\\\New-EventLog -LogName $LogName -Source $LogSource -ErrorAction SilentlyContinue\\n$service = Get-Service -Name himds -ErrorVariable Err -ErrorAction SilentlyContinue\\nif (!!$Err) {\\n$Err = \\\"Failed to retrieve HIMDS service. Details: $Err\\\"\\nMicrosoft.PowerShell.Management\\\\Write-EventLog -LogName $LogName -Source $LogSource -EventId 0 -Category 0 -EntryType Information `\\n-Message \\\"[$ScriptName]: $Err\\\" -ErrorAction SilentlyContinue\\nreturn \\\"NotInstalled\\\"\\n} elseif ($service.Status -ne \\\"Running\\\") {\\n$Err = \\\"The Azure arc agent is not running. Details: HIMDS service is $($service.Status)\\\"\\nMicrosoft.PowerShell.Management\\\\Write-EventLog -LogName $LogName -Source $LogSource -EventId 0 -Category 0 -EntryType Information `\\n-Message \\\"[$ScriptName]: $Err\\\" -ErrorAction SilentlyContinue\\nreturn \\\"Disconnected\\\"\\n}\\n$rawStatus = Invoke-Command { \\u0026 $AzcmagentExecutable show --json --log-stderr } -ErrorVariable Err 2\\u003e$null\\nif (!!$Err) {\\n$Err = \\\"The Azure arc agent failed to communicate. Details: $rawStatus\\\"\\nMicrosoft.PowerShell.Management\\\\Write-EventLog -LogName $LogName -Source $LogSource -EventId 0 -Category 0 -EntryType Error `\\n-Message \\\"[$ScriptName]: $Err\\\" -ErrorAction SilentlyContinue\\nreturn \\\"Disconnected\\\"\\n}\\nif (!$rawStatus) {\\n$Err = \\\"The Azure arc agent is not connected. Details: $rawStatus\\\"\\nMicrosoft.PowerShell.Management\\\\Write-EventLog -LogName $LogName -Source $LogSource -EventId 0 -Category 0 -EntryType Information `\\n-Message \\\"[$ScriptName]: $Err\\\" -ErrorAction SilentlyContinue\\nreturn \\\"Disconnected\\\"\\n}\\nreturn ($rawStatus | ConvertFrom-Json -ErrorAction Stop).status\\n}\\nfunction getSystemLockdownPolicy() {\\nreturn [System.Management.Automation.Security.SystemPolicy]::GetSystemLockdownPolicy().ToString()\\n}\\nfunction isServerOsHCI([string] $operatingSystemCaption) {\\nreturn $operatingSystemCaption -eq \\\"Microsoft Azure Stack HCI\\\"\\n}\\n$operatingSystem = getOperatingSystemInfo\\n$computerSystem = getComputerSystemInfo\\n$isAdministrator = isUserAnAdministrator\\n$fqdnAndAddress = getHostFqdnAndAddress $computerSystem\\n$hostname = [Environment]::MachineName\\n$netbios = $env:ComputerName\\n$managementToolsInformation = getManagementToolsSupportInformation\\n$isWmfInstalled = isWMF5Installed $operatingSystem.Version\\n$clusterInformation = getClusterInformation -ErrorAction SilentlyContinue\\n$isHyperVPowershellInstalled = isHyperVPowerShellSupportInstalled\\n$isHyperVRoleInstalled = isHyperVRoleInstalled\\n$isCredSSPEnabled = isCredSSPEnabled\\n$isRemoteAppEnabled = isRemoteAppEnabled\\n$smbiosData = getSmbiosData $computerSystem\\n$azureArcStatus = getAzureArcStatus\\n$systemLockdownPolicy = getSystemLockdownPolicy\\n$isHciServer = isServerOsHCI $operatingSystem.Caption\\n$result = New-Object PSObject\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027IsAdministrator\\u0027 -Value $isAdministrator\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027OperatingSystem\\u0027 -Value $operatingSystem\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027ComputerSystem\\u0027 -Value $computerSystem\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027Fqdn\\u0027 -Value $fqdnAndAddress.Fqdn\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027AddressList\\u0027 -Value $fqdnAndAddress.AddressList\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027Hostname\\u0027 -Value $hostname\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027NetBios\\u0027 -Value $netbios\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027IsManagementToolsAvailable\\u0027 -Value $managementToolsInformation.ManagementToolsAvailable\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027IsServerManagerAvailable\\u0027 -Value $managementToolsInformation.ServerManagerAvailable\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027IsWmfInstalled\\u0027 -Value $isWmfInstalled\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027IsCluster\\u0027 -Value $clusterInformation.IsCluster\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027ClusterFqdn\\u0027 -Value $clusterInformation.ClusterFqdn\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027IsS2dEnabled\\u0027 -Value $clusterInformation.IsS2dEnabled\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027IsBritannicaEnabled\\u0027 -Value $clusterInformation.IsBritannicaEnabled\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027IsHyperVRoleInstalled\\u0027 -Value $isHyperVRoleInstalled\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027IsHyperVPowershellInstalled\\u0027 -Value $isHyperVPowershellInstalled\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027IsCredSSPEnabled\\u0027 -Value $isCredSSPEnabled\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027IsRemoteAppEnabled\\u0027 -Value $isRemoteAppEnabled\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027SmbiosData\\u0027 -Value $smbiosData\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027AzureArcStatus\\u0027 -Value $azureArcStatus\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027SystemLockdownPolicy\\u0027 -Value $systemLockdownPolicy\\n$result | Add-Member -MemberType NoteProperty -Name \\u0027IsHciServer\\u0027 -Value $isHciServer\\n$result\\n\"\r\n }\r\n}\r\n"]}
@@ -422,25 +422,47 @@ function getAzureArcStatus() {
422
422
  $LogName = "Microsoft-ServerManagementExperience"
423
423
  $LogSource = "SMEScript"
424
424
  $ScriptName = "Get-ServerInventory.ps1 - getAzureArcStatus()"
425
+ $AzcmagentExecutable = "$env:ProgramFiles\AzureConnectedMachineAgent\azcmagent.exe"
425
426
 
426
427
  Microsoft.PowerShell.Management\New-EventLog -LogName $LogName -Source $LogSource -ErrorAction SilentlyContinue
427
428
 
428
- Get-Service -Name himds -ErrorVariable Err -ErrorAction SilentlyContinue | Out-Null
429
-
429
+ $service = Get-Service -Name himds -ErrorVariable Err -ErrorAction SilentlyContinue
430
430
  if (!!$Err) {
431
+ $Err = "Failed to retrieve HIMDS service. Details: $Err"
432
+
433
+ Microsoft.PowerShell.Management\Write-EventLog -LogName $LogName -Source $LogSource -EventId 0 -Category 0 -EntryType Information `
434
+ -Message "[$ScriptName]: $Err" -ErrorAction SilentlyContinue
431
435
 
432
- $Err = "The Azure arc agent is not installed. Details: $Err"
436
+ return "NotInstalled"
437
+ } elseif ($service.Status -ne "Running") {
438
+ $Err = "The Azure arc agent is not running. Details: HIMDS service is $($service.Status)"
433
439
 
434
440
  Microsoft.PowerShell.Management\Write-EventLog -LogName $LogName -Source $LogSource -EventId 0 -Category 0 -EntryType Information `
435
- -Message "[$ScriptName]: $Err" -ErrorAction SilentlyContinue
441
+ -Message "[$ScriptName]: $Err" -ErrorAction SilentlyContinue
436
442
 
437
- $status = "NotInstalled"
443
+ return "Disconnected"
438
444
  }
439
- else {
440
- $status = (azcmagent show --json | ConvertFrom-Json -ErrorAction Stop).status
445
+
446
+ $rawStatus = Invoke-Command { & $AzcmagentExecutable show --json --log-stderr } -ErrorVariable Err 2>$null
447
+ if (!!$Err) {
448
+ $Err = "The Azure arc agent failed to communicate. Details: $rawStatus"
449
+
450
+ Microsoft.PowerShell.Management\Write-EventLog -LogName $LogName -Source $LogSource -EventId 0 -Category 0 -EntryType Error `
451
+ -Message "[$ScriptName]: $Err" -ErrorAction SilentlyContinue
452
+
453
+ return "Disconnected"
454
+ }
455
+
456
+ if (!$rawStatus) {
457
+ $Err = "The Azure arc agent is not connected. Details: $rawStatus"
458
+
459
+ Microsoft.PowerShell.Management\Write-EventLog -LogName $LogName -Source $LogSource -EventId 0 -Category 0 -EntryType Information `
460
+ -Message "[$ScriptName]: $Err" -ErrorAction SilentlyContinue
461
+
462
+ return "Disconnected"
441
463
  }
442
464
 
443
- return $status
465
+ return ($rawStatus | ConvertFrom-Json -ErrorAction Stop).status
444
466
  }
445
467
 
446
468
  <#
package/package.json CHANGED
@@ -21,7 +21,7 @@
21
21
  "author": {
22
22
  "name": "Microsoft Corporation"
23
23
  },
24
- "version": "4.123.0",
24
+ "version": "4.167.0",
25
25
  "private": false,
26
26
  "dependencies": {
27
27
  "@angular/animations": "15.2.9",
@@ -32,6 +32,9 @@
32
32
  "@angular/platform-browser": "15.2.9",
33
33
  "@angular/platform-browser-dynamic": "15.2.9",
34
34
  "@angular/router": "15.2.9",
35
+ "@azure/msal-angular": "^2.0.0",
36
+ "@azure/msal-browser": "^2.14.2",
37
+ "@microsoft/signalr": "6.0.8",
35
38
  "@types/fs-extra": "9.0.11",
36
39
  "@types/marked": "4.0.1",
37
40
  "chart.js": "2.9.4",
@@ -46,8 +49,6 @@
46
49
  "monaco-editor": "npm:monaco-editor@0.36.1",
47
50
  "monaco-editorv17": "npm:monaco-editor@0.17.1",
48
51
  "msal": "1.4.4",
49
- "@azure/msal-angular": "^2.0.0",
50
- "@azure/msal-browser": "^2.14.2",
51
52
  "path-exists": "3.0.0",
52
53
  "rxjs": "~7.5.0",
53
54
  "semver": "5.7.2",
@@ -69,12 +70,11 @@
69
70
  "@angular/language-service": "15.2.9",
70
71
  "@compodoc/compodoc": "1.1.19",
71
72
  "@compodoc/gulp-compodoc": "0.0.10",
72
- "@msft-sme/tools": "4.96.0",
73
- "@msft-sme/core": "4.96.0",
73
+ "@msft-sme/tools": "4.133.0",
74
74
  "@playwright/test": "1.31.0",
75
- "@types/gulp": "^4.0.8",
76
75
  "@types/chart.js": "2.9.32",
77
76
  "@types/fetch-mock": "^7.2.2",
77
+ "@types/gulp": "^4.0.8",
78
78
  "@types/jasmine": "4.3.5",
79
79
  "@types/jquery": "3.3.29",
80
80
  "@types/karma": "6.3.4",
@@ -117,10 +117,12 @@
117
117
  "jasmine-spec-reporter": "7.0.0",
118
118
  "karma": "6.4.2",
119
119
  "karma-chrome-launcher": "3.2.0",
120
- "karma-coverage": "2.2.1",
120
+ "karma-coverage": "^2.2.1",
121
121
  "karma-coverage-istanbul-reporter": "3.0.3",
122
122
  "karma-jasmine": "5.1.0",
123
123
  "karma-jasmine-html-reporter": "2.1.0",
124
+ "karma-junit-reporter": "^2.0.1",
125
+ "karma-sabarivka-reporter": "^3.3.1",
124
126
  "karma-typescript": "5.5.4",
125
127
  "karma-verbose-reporter": "0.0.8",
126
128
  "karma-viewport": "~1.0.9",