From b3dd3d3613e6735dde418425314bd7f35d9aa44e Mon Sep 17 00:00:00 2001 From: Ylian Saint-Hilaire Date: Mon, 18 Jul 2022 16:12:53 -0700 Subject: [PATCH] Added ldapSaveUserToFile option to help debug LDAP issues. --- MeshCentralServer.njsproj | 3 +- agents/MeshCmd-signed.exe | Bin 4498704 -> 4502640 bytes agents/MeshCmd64-signed.exe | Bin 4111632 -> 4115568 bytes agents/meshcmd.js | 7 +- agents/modules_meshcmd/amt-wsman-duk.js | 4 +- agents/modules_meshcmd/amt-wsman.js | 2 +- agents/modules_meshcmd/amt-x2.js | 955 ------------------------ meshcentral-config-schema.json | 1 + webserver.js | 64 +- 9 files changed, 57 insertions(+), 979 deletions(-) delete mode 100644 agents/modules_meshcmd/amt-x2.js diff --git a/MeshCentralServer.njsproj b/MeshCentralServer.njsproj index b7fbb75e..ed99d548 100644 --- a/MeshCentralServer.njsproj +++ b/MeshCentralServer.njsproj @@ -34,7 +34,8 @@ - + + diff --git a/agents/MeshCmd-signed.exe b/agents/MeshCmd-signed.exe index f2600d5c9a055867f689d0ef8f98c8e05b4f6946..7543c5c0bc7f5639e9f5320edd1a406af457c281 100644 GIT binary patch delta 20489 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 delta 17041 zcmcJ034ByV)~^9%Ne~EIR>=Z{Zn|mGAp|N(10e~J00Gi#Hp5NlCTUE%LwAQHCZPov zP();r5@bik6$I4G!`;zw#BW9&=X2lRW89VbMu$O0egCR^Z{OPu_}=$^zxVr5r0=a$ z=bSoqwyHY!>=)Yx+;Mu_fJfV72DTq5*&c|o47lR<8&1S*I1$6z0JMQv{muC7~swrJ$vvU5z#YEe$Ol zEdwnRZ6ewvw8>~$Xj9O1XnM4%Xa+PR+B7s1+H|yRG&5Qb+6=T@w3%pmXtVlH#LQli zwKaQC|3KaBnD_hR2a+=b`v(mnQwGuPaU`L?B944MduFA+XN}-bFSmHb&h%vst3-ED zr!Ocs)l0w2N-VXRMN4h9nRwS3XcN4a%7Svbs)XztQ*K%=dK*37=2CA*TfkCNhmNhw zNrKsu4d5bo(6dJ5UB$i*Z;-!SDs)}+-i%@HQZgl`oNg*5lkw+xDM=c4F$TS%oPJzN z(g5*mDM`g2My;T)psB+PVm@!WUnkARYAH7@6oWE*jH1sQz_dI~I&Yy>-{ZAd`|!J* zdKZw?5MH!dtYF#aUGDd}#Xz9AMesI@jXJB*t7m{#izS=}dD7YR#xOV4n2-yzyNDGVe~o!EP8eo|1;}0{UCK#2jP^*vfYAsd z#3T_xmCpPgkvHW>CeKf)P?QkFn$Q1Y2BfttwX~7jZ?8yUDnOD4pk=6zi-sV-ZOh&CKo+ zq(he{4KJwDEK;?ed76vdVPU!H63&nbEZRXD3@~c$dYKyuxtU9i7Gk8iGQ)ugt0eis ztnkdNfxqj6Y1s9BVrxJIF|7wTwRZ$sbT!OT0HjXe#~q4d80jLMoYS~~A*$jQ*n^2x zWms~u;Tt0yl((a`mBHu>8g*tYjTr3kdzl|~S}d%ux7SHmEg`y)(=^}L*ll7n68!@6 z(#1Y+Q0xj`3SnOMjA)cBa@j1G#iEs)dpQW}T+mEqLOP)u4wfsM(5UZmV|oyfmA$H| zWB!+W8GWAupYF!+Y6c)k{+%lz6N1oikre3sB_y97T}noUG@@}CxoGmTbD_PF(rNPf zb!vd+A?R*l0AV9Xe&B#YDPe}EBQp&aox{{BdYgkSQ*-nM z4FKxW!L=~Bo<1ItBxe=Yt1h^l#mmXWbgN#YZEPS@R|v8iqhQQD-$@HOEiRMHvC)C4 zFqW7koM796Y;9_7Ce|Arh_D4tSVsT}OVE!z4aV5#&^a|0fFuJ305d?sfmB0i!h~yt zhB`}+UktP(X%h2wf?KlMxlDKSg&H?kPQ6iq2;>6+)G^qBUt%9)1$fMLvJj9u_4W#) z#gdzC?(NmtGb}-WhnSTmh}>wTAGz=$@&uDYI+sR%QEnK@#CYTk3$i9L5RJ4X0EC7< zV+|8wbsdDqMJ}(QHamfkS?cCwX;F)=$BQgvTt3o1{0-#WjV$YG5Zu@1+vuE1q>4^s zyWf-V=#%43cnMpWj$-0g6CWw_Uuc1TcliCHH|)?DGBut_;6|${EK4K2DV~EubJ#_P zUB7!_C?aR#*^5lECQPYLlew{AjLGSHnlVrIqYt<-1D;Syj2R5v&4*_qK_YL#Y;20V z#-edAFZ;4fPJ(+jL~;%9nt9dOOp8RJQS_UnETGO}D_}xn3AHvE*4UOTP>;7!>{`~O zW7`n=ww1(>EH||`bwSw;Jc+l`b5=3|4v4)pD=$szu(IXWdYA-H;iXWNE&=B-U}VfJ zrASMa7ceW!n!$qlF8*;L8HnL}vp5UoK!?5wCQXyxi}^Wg<_fCn`V z7$PYjlWt|y&e}-k5CmD~)M#j8aWYN3n zY^>zGScbZ@j%3lv*N`!B$~y-6d@V_#Yir10dbXO39?lYKCzL2WAh(8OjBr4sU+!8mzSL!`5IdQW#eAo+bPWt@nb+nQya5kO z8uA@RX^&@Z%(uxuO9gknmAP9Po6OzJ$Y~cw&p4S1b>!+nOu&#z20e_YD<#RruOwH~ z&+15m+Ur|MhH$}YL8`AIiG!sz;wU)Kfon*{P#c8B7lEVt+hyPe)0}#e5(UhJG(saJ zg+Gq`sd_Sg&i}iJ6qaTUhLg}B)(?dMZM^ruN}`_$6=MA?OL4%nmB~3sSxEtV<-)7d zRWyt#Yb{I>^hgDl@sd-q* z(}QZK7#ws;1DO=#qDvb{b4(R|qJd0|anko1h#PAX>S*)?X?iCa&zFw=B9f#r#jT>?U*c=7&17L&S{HjGnK~3I&JB!%(F2WS za-z*>^R$V+4xA|XJ-)_#yE4G^cak((^;ukhAwg+qhDefQ*_yL_8wOP>l1Z^l$+h@z z6M^4hT+k{sLw6Sm-o{o@#s7*(rpvm-aF(iCvABs$8_sNod3dI-63x9$#8iN6-_z_x zz+WtO!#0-iWMo-WvFHzanmle;5sPgRk73mu+zh;65SU@@4DZ}#LQHle7oyl$)ZSiJ zf(Xft5WgJ8<-S&ryW7^?4%<}p<-TTOz6guSGQXqsS|;yOuh77z`QJnOTq{YYEiEKv z1e>+ArQsZ2-%2La{uVN6p~G0>X%+*)GNZyjEhBogXs4K>;chl^)$kN6uH?M z50@b2(+k8J8@DfL#BNGjaXKOsXPgQgkgzjhM;C zYsu9SGfAc|17>JgnK);oT1i@xJ(`iQs$gPMN2torl@Q|!WM_!(e97MMa%Q{~BDK~A zfK1xdMpD91)7WEtToh0;{i2Pe#&X_Rp2p=onS#4Pbe5MSjkOykg@X5I)`qj8f^rJ% z6X<$x)bi-*s~8cdTBV7uZYSwl*%YQ;VOYBG(s-3{Nq|1g=5bUEvnhd%2g;}n0- z1`cT_$-@*OsW5S47YTtDRa|m}U?X<6lL^ryK5Qpft5_?dyE|8tL@5q21kbG|V+L~< zCeu5Q?#SsZ@RQUu8;mu8&A7-|DQa!@`EgXzrn;MTep0IF$$$9C3ROkWGntkLNV29o zo9+&f6b)zTpB5+5w*t^3MUwQV04W<27GRi?iS8R;Jdt(>!;_?Yf}~1AuY)Af@f{>X z(v9ak$Rt|d5st;{I!M043HlbO14phQdZlMxH!_&2HDrp~y>SgOs@!pa`yc!*4?nh( zWJ)|R;7dl0kuQ+svD$^@?vv>$$A26cQfx+SN#SK0D@8Z_68x{KsTdy_MCACuN9T5t z3}_(Mji)*`Uj>dw!g8eEE;2QiNgL^zOmQN8sf(m%fue7XSkw^kwRRwFvctzQ$`u`L zaEI8!0G^o%5G2w)&y%ZYb~lNYGXTbT-Vhe;8Ax9@nHV9`=ex;R&9blVg{A$wo5ZW` zqkSzg(0SL95pW+?#7v=8q8s2A%CJIF*|3|gBMAyoKIl)^!4{OfLk1e%Lz1v)vXfPC z526h{WJ07VGn5bXkVy)=9QKzUGA)YTg!-b!Mnp&Ls&V=80Xurh=%@j-Vl5d)-|8g^ z+z-jp2J{R%wT~nv!%J4Mvi#WEIW8`zUaIdW7( zK2kff80pMsbJH<{>3oDE!xcz$F}ztk~}`@ z3W!|{gz=uag-lJg!6ODlY$Tam=JqO|E>wZVNW$xCEg(`;jpy6u54%MtPToyUH~lcKs@!ne%0pk{=Tto>H7iH`SJmp)0qO zSXC8XyN%c`znv-AOibKC$(#l@lljTv=q+!4_?BO?)7LhWf)TiWkzAUT(NZ&YDJeF?RLIxMRjAf;zrL(hh%w0Iz2!icEnYXW*9wu2N|ycw5c#D zTZvv>fhAjsbhqgG~=km6+1lpw>7UhSpoQlWE%Z4{j$#u#?EmueAR1 zh&Q&AOm%J-wi7dA*>Yc}h}B%?)p(j6Bwb;$X$Q$wnLM;Z%`RTuL1w8vv3IJ0$#5q; zq>@zAqLn53D8;_}PO?xF*@||NaXWXCu?o!(DO9I$XGC0QFtl~2CR3&y?C4ICI!c;# zcmgKMp}*frMoG?&LB?|jqS>v;P>U&&8hJ%H##<>#jAD*H7YRh7`*ZIKA0tU@-E=QW ziUxY1n*s@T;73W@5W0yF;zN=iOU+$(3y5m6dBpzU)OF)hIhVgmoV5 z;VUCfVz}2-)c57PiB46<&3lnVjM+m{M@FqBowJ9eOH$!5Yxj^iIm+C=hfGl>!Ta9c z!_-4bmd{0Z&)bWnA>3WRm*_O3XR1A?_Y%E^qT?VLD^oP?BSuY6*FKUU_w3lmR9?w_ zI5%hZ{npxK?q|mn%7E1ea9XlzKS?!5P2W^pwzOU@bn*G?xeiB#XEt_Jv~tr=_akkQ z)tX~}`5vus795D^HmkFL@Bqn*7E>_R*i6c2bJ7{_w*kO3+K&) z#1J*t^h3WToVr8GUUK~*qLW2@?2s1AXNSn#%X?;Wn0YNlx*dnfqI5~H7at3930p-k zowlFlCdwG$9;7r0_mEW6rB(#+fy*oh24>0}Z^TbUlpG&hgHeho!-Q900VBY&?$s)4 z>AkAY)m<(C5+v0zkHrgw>*fWLu7m! zhfO=~S2v45p;6j*B72f($^%*v=0BinJLhce16mR8e}H63I?X#ZBE0Z`;tCi)wD`er zid*-f_VgLOb1pBvGdQ$RCx6Go5RKs>lA3)f&2oAcc-Xe=lBUjw-tkb_10Hxt6$tOk zIzSS~MJSkpFCv6Vun}4&KCFre-8t%_o_<)74j*>aBVl)#^@t)J-qZR>*y1-nqLmKs z{cU$R>L{6tBUhH3vT`JO&wch7?z;R(ai!p-^ByJRlU&B7?g}67%2+0X)(&+w`#UrB+ zi}#-(bE9D5=v61lNX2ylU?z2*B;!=o+4~rr=qA8Ow6;EuL-;38l2J0A*H0=AiuWWw zM&jij(_?Dp!uzg!OuKOeUY!Qz-yS2Q<$*sx7J;(#@i5Ao$C;;6bOA``U*2FhKLPa_ z{Dk&w^tmUXip!t)t*C`j(-fHle4Z-qq5WFgbNb2r&}G9> z1BjtGR-wj=xWG9|YG8I2xxazeSL1*xR@9+%vC-(VRMB@|KuL+q!isjJ0v$FHm!-y4 z*T>4acqtfaC~demYidI2M3djwrgNd5%UGM)AOys`Tnu3KHa4kb0R=pbmZduE=lENl z&^RYskNO3nu`oA>-LZorW`9Q?A3Mm}&xJr$~|O0mJ` z-DXr*Ne{|-3dWe}m={Ur539HyX4Y^uf|_#;0sp)r zlfQ%>v)6R@OXRbd_Wr&_ov)Lo%&<E7q5#7#E1|5Soe9iF&EJvI7%T1k zj#%_;gi6gkD?GV!R5Rh`o84RlYL=kT>BH~H^jIsFSpuiyzb7m3tT0Pge@_xa6(|JB zW=m@VY4(t#eaO{5%po{0)OdtQUhWU4y zl2u+VL|Zi;Rls)xkpu$svep$ALSpz~Fl)dxy>|87bL4S9T zJtCsn=)Sr6386j|rnq?_r5lB(IGZ%J`cRD+E}pZioHLt}apJ2ZrS#dxN}thTm)x(l z#s;q{Go~5rL3BaX=P@51UJCo}jF42~D2PyYIAB%+&PtJ`6oP3V`>F?Sxy4v*0TALB zf-Toau8ycnWwt2@O5VV)c`NyFk;UO2rHcnI`5M?#79J7OzSr|fIoO0QH4NqPsxYk) z!n_nX!lO20kOhrp(F!_bW0ndty$l8f*cM9R)I!kb=cxhn zBz*-!i%A)05o$C~WhDsCEmHgqp-UIhHiT{z%46sIttwG)FTy%%p#! z0)W8?O`H)FKx4klS*j|FDs3cMjp0OVXsDpdV98~GON*HoWu=vD6(O%GgQ1R31yz31 z1E4D4BpZ49$mGYTQe~_%xFV%zu((p4Eapi`yP;KSvVcs^#))*ryoDob6mt7qq zW6(;M{EK8Ra2PDhxa*a_yf9c6Nso%Na;RJ^V%gl~`KY#8GBWI@`g&F~7HAjTQr%^> z#WuG#vv75OZ6^K|f>DVv{&u?Zdb<4H320sIl=QB)R&OAGHJjNKgPrQmlL>RG@Kopr z5`)9wgoBu)nY4?!Cy6=m&>{qub+QjA+i}{_t#j#ndtG$nd7>X^uW`}G&y)14@uLpg z53NY#7|B3>I8PR~Km)4{E{TwV!D}qhU{!kh`Tz&Urpug3e95l9N|l}@X10n5!rE1| z@>Ptphi7M_fBuP-BS%QOKngOs$@u-F6ep)!ELyD2R_(F!G|ev!qZX=|@h1wNPi5&1ZTpJ`-RYE*q0I z2I>t<*}i-#GBcUDO%?S5eB;99Z`Wt#&73&{URtqZt7XPT)G>Wf<+c4TiMBd@ zSq|kJntvf^`Dg`bg=iMEIcRgy=Ajk!H~%ufa3Gz2f6-MmZea140j6}CHV{>CJ{_*< z;}YkO+t59*xW9W~$$#z|AfBPi_m-^7-qr6HUs<~`>z&7D+`8qtGq*I+Ym4sr%Y)62 z{Bw`>AM@7UxBt=Z!oVF@{^9!0lxIUR1-JFb>?`rcXCM2AyVrBNo@}||?_d7i z7w3O`@A?DZCB5;VUw--X!guF>dd2Urn7`xkw{0t0KYlpBlI}lNvMw~M_S8(@?ZNvV zJluI|#fDGL9rW)1gg%?DZ+v~gu+DM1qucZTG_)lnw$i=+o{kwio4R(tSb6;BrSH}r zd3x3xZw-0n{lur+N53{TE=zA6`S26s@ohJJbLyR&osJd7+e|S7PG0xvQ}<*ax_49V zmVvWZ+-!Js+_4v{uj@D5xMRxwo#n|N{*QzZ$#s12+;wC<$t|%?wK)XzFI%1XYB>&M4@ZLJ2!oEzW%4lJ#qj1vw;k>&wDHT zsxX3>m@BUsw0^)9lkVJEmEJfyuOjJ}=^K69PVBq&i8C>k%QlX9zWvOybsywyo)@bB zwdL(`r$^pck3-0@X#J&N{HV{dHT(>r#m;q+Z=?JLf|y!vF>nB=qb z|26yjy2H;DA9(M!t)oAsLlWowYX3m@@(nHLzKyLoo*nx7``s%$pFFu^Q}?c!_dNgC zlDGc!ef5j0sz)Arc~n~Efb;(@u^7|SkN%kUUg4pEe_meVTlVFv2Nri%?|S9T_%lLw z=(Uf&d`4JxdiFP;KbbP+nWq-~@oz7yGb#ZP+!}K2>?a zuzA<|M}Lx7k9Zb9?pI9yTK*TtypvH8Q&+rAAS6b zr~a5S`i49A4EF@iPqeOG^K{Ot`Y+bUJ#o-=Ac{+uU6k^-ZpZ3<;~}-=Kb*E%J;I(Vttc!f;f7{TSCwB7xp?II`YM1 zsl(=6;S%Z=-Mjv&cSgNoBgFl(~+O3%65?LYQ@yQ%(}N7o#5z2O;O zeeK{t*`!yC4M$8R>n%SV9{l9D^p(5+Ie69!>uwv>G{gJZUwapHt~_#j!<%ca$gVkc PoBhsb4{rK+(%SzG*jeA; diff --git a/agents/MeshCmd64-signed.exe b/agents/MeshCmd64-signed.exe index d3d46b6b414f07f90ccef6ffef1cf5ad061f3df7..ab5e237b3a1c6394cc94563b88e8535f0196d95c 100644 GIT binary patch delta 20461 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 delta 17016 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 a@+aNy54IiI{o&l*+mGJzR_EY
' + postdata, function (data, status, tag) { - if (status != 200) { callback(obj, null, { Header: { HttpError: status } }, status, tag); return; } + if (status != 200) { callback(obj, null, (data != null) ? data : { Header: { HttpError: status } }, status, tag); return; } var wsresponse = obj.xmlParser.ParseWsman(data); if (!wsresponse || wsresponse == null) { callback(obj, null, { Header: { HttpError: status } }, 601, tag); } else { callback(obj, wsresponse.Header["ResourceURI"], wsresponse, 200, tag); } }, tag, pri); diff --git a/agents/modules_meshcmd/amt-x2.js b/agents/modules_meshcmd/amt-x2.js deleted file mode 100644 index dd1748d6..00000000 --- a/agents/modules_meshcmd/amt-x2.js +++ /dev/null @@ -1,955 +0,0 @@ -/* -Copyright 2018-2021 Intel Corporation - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -/** -* @fileoverview Intel(r) AMT Communication StackXX -* @author Ylian Saint-Hilaire -* @version v0.2.0b -*/ - -/** - * Construct a AmtStackCreateService object, this ia the main Intel AMT communication stack. - * @constructor - */ -function AmtStackCreateService(wsmanStack) { - var obj = new Object(); - obj._ObjectID = 'AMT' - obj.wsman = wsmanStack; - obj.pfx = ["http://intel.com/wbem/wscim/1/amt-schema/1/", "http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/", "http://intel.com/wbem/wscim/1/ips-schema/1/"]; - obj.PendingEnums = []; - obj.PendingBatchOperations = 0; - obj.ActiveEnumsCount = 0; - obj.MaxActiveEnumsCount = 1; // Maximum number of enumerations that can be done at the same time. - obj.onProcessChanged = null; - var _MaxProcess = 0; - var _LastProcess = 0; - - // Return the number of pending actions - obj.GetPendingActions = function () { return (obj.PendingEnums.length * 2) + (obj.ActiveEnumsCount) + obj.wsman.comm.PendingAjax.length + obj.wsman.comm.ActiveAjaxCount + obj.PendingBatchOperations; } - - // Private Method, Update the current processing status, this gives the application an idea of what progress is being done by the WSMAN stack - function _up() { - var x = obj.GetPendingActions(); - if (_MaxProcess < x) _MaxProcess = x; - if (obj.onProcessChanged != null && _LastProcess != x) { - //console.log("Process Old=" + _LastProcess + ", New=" + x + ", PEnums=" + obj.PendingEnums.length + ", AEnums=" + obj.ActiveEnumsCount + ", PAjax=" + obj.wsman.comm.PendingAjax.length + ", AAjax=" + obj.wsman.comm.ActiveAjaxCount + ", PBatch=" + obj.PendingBatchOperations); - _LastProcess = x; - obj.onProcessChanged(x, _MaxProcess); - } - if (x == 0) _MaxProcess = 0; - } - - // Perform a WSMAN "SUBSCRIBE" operation. - obj.Subscribe = function Subscribe(name, delivery, url, callback, tag, pri, selectors, opaque, user, pass) { obj.wsman.ExecSubscribe(obj.CompleteName(name), delivery, url, function (ws, resuri, response, xstatus) { _up(); callback.call(obj, obj, name, response, xstatus, tag); }, 0, pri, selectors, opaque, user, pass); _up(); } - - // Perform a WSMAN "UNSUBSCRIBE" operation. - obj.UnSubscribe = function UnSubscribe(name, callback, tag, pri, selectors) { obj.wsman.ExecUnSubscribe(obj.CompleteName(name), function (ws, resuri, response, xstatus) { _up(); callback.call(obj, obj, name, response, xstatus, tag); }, 0, pri, selectors); _up(); } - - // Perform a WSMAN "GET" operation. - obj.Get = function Get(name, callback, tag, pri) { obj.wsman.ExecGet(obj.CompleteName(name), function (ws, resuri, response, xstatus) { _up(); callback.call(obj, obj, name, response, xstatus, tag); }, 0, pri); _up(); } - - // Perform a WSMAN "PUT" operation. - obj.Put = function Put(name, putobj, callback, tag, pri, selectors) { obj.wsman.ExecPut(obj.CompleteName(name), putobj, function (ws, resuri, response, xstatus) { _up(); callback.call(obj, obj, name, response, xstatus, tag); }, 0, pri, selectors); _up(); } - - // Perform a WSMAN "CREATE" operation. - obj.Create = function Create(name, putobj, callback, tag, pri) { obj.wsman.ExecCreate(obj.CompleteName(name), putobj, function (ws, resuri, response, xstatus) { _up(); callback.call(obj, obj, name, response, xstatus, tag); }, 0, pri); _up(); } - - // Perform a WSMAN "DELETE" operation. - obj.Delete = function Delete(name, putobj, callback, tag, pri) { obj.wsman.ExecDelete(obj.CompleteName(name), putobj, function (ws, resuri, response, xstatus) { _up(); callback.call(obj, obj, name, response, xstatus, tag); }, 0, pri); _up(); } - - // Perform a WSMAN method call operation. - obj.Exec = function Exec(name, method, args, callback, tag, pri, selectors) { obj.wsman.ExecMethod(obj.CompleteName(name), method, args, function (ws, resuri, response, xstatus) { _up(); callback.call(obj, obj, name, obj.CompleteExecResponse(response), xstatus, tag); }, 0, pri, selectors); _up(); } - - // Perform a WSMAN method call operation. - obj.ExecWithXml = function ExecWithXml(name, method, args, callback, tag, pri, selectors) { obj.wsman.ExecMethodXml(obj.CompleteName(name), method, execArgumentsToXml(args), function (ws, resuri, response, xstatus) { _up(); callback.call(obj, obj, name, obj.CompleteExecResponse(response), xstatus, tag); }, 0, pri, selectors); _up(); } - - // Perform a WSMAN "ENUMERATE" operation. - obj.Enum = function Enum(name, callback, tag, pri) { - if (obj.ActiveEnumsCount < obj.MaxActiveEnumsCount) { - obj.ActiveEnumsCount++; obj.wsman.ExecEnum(obj.CompleteName(name), function (ws, resuri, response, xstatus, tag0) { _up(); _EnumStartSink(name, response, callback, resuri, xstatus, tag0); }, tag, pri); - } else { - obj.PendingEnums.push([name, callback, tag, pri]); - } - _up(); - } - - // Private method - function _EnumStartSink(name, response, callback, resuri, status, tag, pri) { - if (status != 200) { callback.call(obj, obj, name, null, status, tag); _EnumDoNext(1); return; } - if (response == null || response.Header["Method"] != "EnumerateResponse" || !response.Body["EnumerationContext"]) { callback.call(obj, obj, name, null, 603, tag); _EnumDoNext(1); return; } - var enumctx = response.Body["EnumerationContext"]; - obj.wsman.ExecPull(resuri, enumctx, function (ws, resuri, response, xstatus) { _EnumContinueSink(name, response, callback, resuri, [], xstatus, tag, pri); }); - } - - // Private method - function _EnumContinueSink(name, response, callback, resuri, items, status, tag, pri) { - if (status != 200) { callback.call(obj, obj, name, null, status, tag); _EnumDoNext(1); return; } - if (response == null || response.Header["Method"] != "PullResponse") { callback.call(obj, obj, name, null, 604, tag); _EnumDoNext(1); return; } - for (var i in response.Body["Items"]) { - if (response.Body["Items"][i] instanceof Array) { - for (var j in response.Body["Items"][i]) { items.push(response.Body["Items"][i][j]); } - } else { - items.push(response.Body["Items"][i]); - } - } - if (response.Body["EnumerationContext"]) { - var enumctx = response.Body["EnumerationContext"]; - obj.wsman.ExecPull(resuri, enumctx, function (ws, resuri, response, xstatus) { _EnumContinueSink(name, response, callback, resuri, items, xstatus, tag, 1); }); - } else { - _EnumDoNext(1); - callback.call(obj, obj, name, items, status, tag); - _up(); - } - } - - // Private method - function _EnumDoNext(dec) { - obj.ActiveEnumsCount -= dec; - if (obj.ActiveEnumsCount >= obj.MaxActiveEnumsCount || obj.PendingEnums.length == 0) return; - var x = obj.PendingEnums.shift(); - obj.Enum(x[0], x[1], x[2]); - _EnumDoNext(0); - } - - // Perform a batch of WSMAN "ENUM" operations. - obj.BatchEnum = function (batchname, names, callback, tag, continueOnError, pri) { - obj.PendingBatchOperations += (names.length * 2); - _BatchNextEnum(batchname, Clone(names), callback, tag, {}, continueOnError, pri); _up(); - } - - function Clone(v) { return JSON.parse(JSON.stringify(v)); } - - // Request each enum in the batch, stopping if something does not return status 200 - function _BatchNextEnum(batchname, names, callback, tag, results, continueOnError, pri) { - obj.PendingBatchOperations -= 2; - var n = names.shift(), f = obj.Enum; - if (n[0] == '*') { f = obj.Get; n = n.substring(1); } // If the name starts with a star, do a GET instead of an ENUM. This will reduce round trips. - //console.log((f == obj.Get?'Get ':'Enum ') + n); - // Perform a GET/ENUM action - f(n, function (stack, name, responses, status, tag0) { - tag0[2][name] = { response: (responses==null?null:responses.Body), responses: responses, status: status }; - if (tag0[1].length == 0 || status == 401 || (continueOnError != true && status != 200 && status != 400)) { obj.PendingBatchOperations -= (names.length * 2); _up(); callback.call(obj, obj, batchname, tag0[2], status, tag); } - else { _up(); _BatchNextEnum(batchname, names, callback, tag, tag0[2], pri); } - }, [batchname, names, results], pri); - _up(); - } - - // Perform a batch of WSMAN "GET" operations. - obj.BatchGet = function (batchname, names, callback, tag, pri) { - _FetchNext({ name: batchname, names: names, callback: callback, current: 0, responses: {}, tag: tag, pri: pri }); _up(); - } - - // Private method - function _FetchNext(batch) { - if (batch.names.length <= batch.current) { - batch.callback.call(obj, obj, batch.name, batch.responses, 200, batch.tag); - } else { - obj.wsman.ExecGet(obj.CompleteName(batch.names[batch.current]), function (ws, resuri, response, xstatus) { _Fetched(batch, response, xstatus); }, batch.pri); - batch.current++; - } - _up(); - } - - // Private method - function _Fetched(batch, response, status) { - if (response == null || status != 200) { - batch.callback.call(obj, obj, batch.name, null, status, batch.tag); - } else { - batch.responses[response.Header["Method"]] = response; - _FetchNext(batch); - } - } - - // Private method - obj.CompleteName = function(name) { - if (name.indexOf("AMT_") == 0) return obj.pfx[0] + name; - if (name.indexOf("CIM_") == 0) return obj.pfx[1] + name; - if (name.indexOf("IPS_") == 0) return obj.pfx[2] + name; - } - - obj.CompleteExecResponse = function (resp) { - if (resp && resp != null && resp.Body && (resp.Body["ReturnValue"] != undefined)) { resp.Body.ReturnValueStr = obj.AmtStatusToStr(resp.Body["ReturnValue"]); } - return resp; - } - - obj.RequestPowerStateChange = function (PowerState, callback_func) { - obj.CIM_PowerManagementService_RequestPowerStateChange(PowerState, "
http://schemas.xmlsoap.org/ws/2004/08/addressing
http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ComputerSystemCIM_ComputerSystemManagedSystem", null, null, callback_func); - } - - obj.SetBootConfigRole = function (Role, callback_func) { - obj.CIM_BootService_SetBootConfigRole("
http://schemas.xmlsoap.org/ws/2004/08/addressing
http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_BootConfigSettingIntel(r) AMT: Boot Configuration 0", Role, callback_func); - } - - // Cancel all pending queries with given status - obj.CancelAllQueries = function (s) { - obj.wsman.CancelAllQueries(s); - } - - // Auto generated methods - obj.AMT_AgentPresenceWatchdog_RegisterAgent = function (callback_func, tag, pri, selectors) { obj.Exec("AMT_AgentPresenceWatchdog", "RegisterAgent", {}, callback_func, tag, pri, selectors); } - obj.AMT_AgentPresenceWatchdog_AssertPresence = function (SequenceNumber, callback_func, tag, pri, selectors) { obj.Exec("AMT_AgentPresenceWatchdog", "AssertPresence", { "SequenceNumber": SequenceNumber }, callback_func, tag, pri, selectors); } - obj.AMT_AgentPresenceWatchdog_AssertShutdown = function (SequenceNumber, callback_func, tag, pri, selectors) { obj.Exec("AMT_AgentPresenceWatchdog", "AssertShutdown", { "SequenceNumber": SequenceNumber }, callback_func, tag, pri, selectors); } - obj.AMT_AgentPresenceWatchdog_AddAction = function (OldState, NewState, EventOnTransition, ActionSd, ActionEac, callback_func, tag, pri, selectors) { obj.Exec("AMT_AgentPresenceWatchdog", "AddAction", { "OldState": OldState, "NewState": NewState, "EventOnTransition": EventOnTransition, "ActionSd": ActionSd, "ActionEac": ActionEac }, callback_func, tag, pri, selectors); } - obj.AMT_AgentPresenceWatchdog_DeleteAllActions = function (callback_func, tag, pri, selectors) { obj.Exec("AMT_AgentPresenceWatchdog", "DeleteAllActions", {}, callback_func, tag, pri, selectors); } - obj.AMT_AgentPresenceWatchdogAction_GetActionEac = function (callback_func) { obj.Exec("AMT_AgentPresenceWatchdogAction", "GetActionEac", {}, callback_func); } - obj.AMT_AgentPresenceWatchdogVA_RegisterAgent = function (callback_func) { obj.Exec("AMT_AgentPresenceWatchdogVA", "RegisterAgent", {}, callback_func); } - obj.AMT_AgentPresenceWatchdogVA_AssertPresence = function (SequenceNumber, callback_func) { obj.Exec("AMT_AgentPresenceWatchdogVA", "AssertPresence", { "SequenceNumber": SequenceNumber }, callback_func); } - obj.AMT_AgentPresenceWatchdogVA_AssertShutdown = function (SequenceNumber, callback_func) { obj.Exec("AMT_AgentPresenceWatchdogVA", "AssertShutdown", { "SequenceNumber": SequenceNumber }, callback_func); } - obj.AMT_AgentPresenceWatchdogVA_AddAction = function (OldState, NewState, EventOnTransition, ActionSd, ActionEac, callback_func) { obj.Exec("AMT_AgentPresenceWatchdogVA", "AddAction", { "OldState": OldState, "NewState": NewState, "EventOnTransition": EventOnTransition, "ActionSd": ActionSd, "ActionEac": ActionEac }, callback_func); } - obj.AMT_AgentPresenceWatchdogVA_DeleteAllActions = function (_method_dummy, callback_func) { obj.Exec("AMT_AgentPresenceWatchdogVA", "DeleteAllActions", { "_method_dummy": _method_dummy }, callback_func); } - obj.AMT_AlarmClockService_AddAlarm = function AlarmClockService_AddAlarm(alarmInstance, callback_func) - { - var id = alarmInstance.InstanceID; - var nm = alarmInstance.ElementName; - var start = alarmInstance.StartTime.Datetime; - var interval = alarmInstance.Interval ? alarmInstance.Interval.Datetime : undefined; - var doc = alarmInstance.DeleteOnCompletion; - var tpl = "" + id + "" + nm + "" + start + "" + ((interval!=undefined)?("" + interval + ""):"") + "" + doc + "" - obj.wsman.ExecMethodXml(obj.CompleteName("AMT_AlarmClockService"), "AddAlarm", tpl, callback_func); - }; - obj.AMT_AuditLog_ClearLog = function (callback_func) { obj.Exec("AMT_AuditLog", "ClearLog", {}, callback_func); } - obj.AMT_AuditLog_RequestStateChange = function (RequestedState, TimeoutPeriod, callback_func) { obj.Exec("AMT_AuditLog", "RequestStateChange", { "RequestedState": RequestedState, "TimeoutPeriod": TimeoutPeriod }, callback_func); } - obj.AMT_AuditLog_ReadRecords = function (StartIndex, callback_func, tag) { obj.Exec("AMT_AuditLog", "ReadRecords", { "StartIndex": StartIndex }, callback_func, tag); } - obj.AMT_AuditLog_SetAuditLock = function (LockTimeoutInSeconds, Flag, Handle, callback_func) { obj.Exec("AMT_AuditLog", "SetAuditLock", { "LockTimeoutInSeconds": LockTimeoutInSeconds, "Flag": Flag, "Handle": Handle }, callback_func); } - obj.AMT_AuditLog_ExportAuditLogSignature = function (SigningMechanism, callback_func) { obj.Exec("AMT_AuditLog", "ExportAuditLogSignature", { "SigningMechanism": SigningMechanism }, callback_func); } - obj.AMT_AuditLog_SetSigningKeyMaterial = function (SigningMechanismType, SigningKey, LengthOfCertificates, Certificates, callback_func) { obj.Exec("AMT_AuditLog", "SetSigningKeyMaterial", { "SigningMechanismType": SigningMechanismType, "SigningKey": SigningKey, "LengthOfCertificates": LengthOfCertificates, "Certificates": Certificates }, callback_func); } - obj.AMT_AuditPolicyRule_SetAuditPolicy = function (Enable, AuditedAppID, EventID, PolicyType, callback_func) { obj.Exec("AMT_AuditPolicyRule", "SetAuditPolicy", { "Enable": Enable, "AuditedAppID": AuditedAppID, "EventID": EventID, "PolicyType": PolicyType }, callback_func); } - obj.AMT_AuditPolicyRule_SetAuditPolicyBulk = function (Enable, AuditedAppID, EventID, PolicyType, callback_func) { obj.Exec("AMT_AuditPolicyRule", "SetAuditPolicyBulk", { "Enable": Enable, "AuditedAppID": AuditedAppID, "EventID": EventID, "PolicyType": PolicyType }, callback_func); } - obj.AMT_AuthorizationService_AddUserAclEntryEx = function (DigestUsername, DigestPassword, KerberosUserSid, AccessPermission, Realms, callback_func) { obj.Exec("AMT_AuthorizationService", "AddUserAclEntryEx", { "DigestUsername": DigestUsername, "DigestPassword": DigestPassword, "KerberosUserSid": KerberosUserSid, "AccessPermission": AccessPermission, "Realms": Realms }, callback_func); } - obj.AMT_AuthorizationService_EnumerateUserAclEntries = function (StartIndex, callback_func) { obj.Exec("AMT_AuthorizationService", "EnumerateUserAclEntries", { "StartIndex": StartIndex }, callback_func); } - obj.AMT_AuthorizationService_GetUserAclEntryEx = function (Handle, callback_func, tag) { obj.Exec("AMT_AuthorizationService", "GetUserAclEntryEx", { "Handle": Handle }, callback_func, tag); } - obj.AMT_AuthorizationService_UpdateUserAclEntryEx = function (Handle, DigestUsername, DigestPassword, KerberosUserSid, AccessPermission, Realms, callback_func) { obj.Exec("AMT_AuthorizationService", "UpdateUserAclEntryEx", { "Handle": Handle, "DigestUsername": DigestUsername, "DigestPassword": DigestPassword, "KerberosUserSid": KerberosUserSid, "AccessPermission": AccessPermission, "Realms": Realms }, callback_func); } - obj.AMT_AuthorizationService_RemoveUserAclEntry = function (Handle, callback_func) { obj.Exec("AMT_AuthorizationService", "RemoveUserAclEntry", { "Handle": Handle }, callback_func); } - obj.AMT_AuthorizationService_SetAdminAclEntryEx = function (Username, DigestPassword, callback_func) { obj.Exec("AMT_AuthorizationService", "SetAdminAclEntryEx", { "Username": Username, "DigestPassword": DigestPassword }, callback_func); } - obj.AMT_AuthorizationService_GetAdminAclEntry = function (callback_func) { obj.Exec("AMT_AuthorizationService", "GetAdminAclEntry", {}, callback_func); } - obj.AMT_AuthorizationService_GetAdminAclEntryStatus = function (callback_func) { obj.Exec("AMT_AuthorizationService", "GetAdminAclEntryStatus", {}, callback_func); } - obj.AMT_AuthorizationService_GetAdminNetAclEntryStatus = function (callback_func) { obj.Exec("AMT_AuthorizationService", "GetAdminNetAclEntryStatus", {}, callback_func); } - obj.AMT_AuthorizationService_SetAclEnabledState = function (Handle, Enabled, callback_func, tag) { obj.Exec("AMT_AuthorizationService", "SetAclEnabledState", { "Handle": Handle, "Enabled": Enabled }, callback_func, tag); } - obj.AMT_AuthorizationService_GetAclEnabledState = function (Handle, callback_func, tag) { obj.Exec("AMT_AuthorizationService", "GetAclEnabledState", { "Handle": Handle }, callback_func, tag); } - obj.AMT_EndpointAccessControlService_RequestStateChange = function (RequestedState, TimeoutPeriod, callback_func) { obj.Exec("AMT_EndpointAccessControlService", "RequestStateChange", { "RequestedState": RequestedState, "TimeoutPeriod": TimeoutPeriod }, callback_func); } - obj.AMT_EndpointAccessControlService_GetPosture = function (PostureType, callback_func) { obj.Exec("AMT_EndpointAccessControlService", "GetPosture", { "PostureType": PostureType }, callback_func); } - obj.AMT_EndpointAccessControlService_GetPostureHash = function (PostureType, callback_func) { obj.Exec("AMT_EndpointAccessControlService", "GetPostureHash", { "PostureType": PostureType }, callback_func); } - obj.AMT_EndpointAccessControlService_UpdatePostureState = function (UpdateType, callback_func) { obj.Exec("AMT_EndpointAccessControlService", "UpdatePostureState", { "UpdateType": UpdateType }, callback_func); } - obj.AMT_EndpointAccessControlService_GetEacOptions = function (callback_func) { obj.Exec("AMT_EndpointAccessControlService", "GetEacOptions", {}, callback_func); } - obj.AMT_EndpointAccessControlService_SetEacOptions = function (EacVendors, PostureHashAlgorithm, callback_func) { obj.Exec("AMT_EndpointAccessControlService", "SetEacOptions", { "EacVendors": EacVendors, "PostureHashAlgorithm": PostureHashAlgorithm }, callback_func); } - obj.AMT_EnvironmentDetectionSettingData_SetSystemDefensePolicy = function (Policy, callback_func) { obj.Exec("AMT_EnvironmentDetectionSettingData", "SetSystemDefensePolicy", { "Policy": Policy }, callback_func); } - obj.AMT_EnvironmentDetectionSettingData_EnableVpnRouting = function (Enable, callback_func) { obj.Exec("AMT_EnvironmentDetectionSettingData", "EnableVpnRouting", { "Enable": Enable }, callback_func); } - obj.AMT_EthernetPortSettings_SetLinkPreference = function (LinkPreference, Timeout, callback_func) { obj.Exec("AMT_EthernetPortSettings", "SetLinkPreference", { "LinkPreference": LinkPreference, "Timeout": Timeout }, callback_func); } - obj.AMT_HeuristicPacketFilterStatistics_ResetSelectedStats = function (SelectedStatistics, callback_func) { obj.Exec("AMT_HeuristicPacketFilterStatistics", "ResetSelectedStats", { "SelectedStatistics": SelectedStatistics }, callback_func); } - obj.AMT_KerberosSettingData_GetCredentialCacheState = function (callback_func) { obj.Exec("AMT_KerberosSettingData", "GetCredentialCacheState", {}, callback_func); } - obj.AMT_KerberosSettingData_SetCredentialCacheState = function (Enable, callback_func) { obj.Exec("AMT_KerberosSettingData", "SetCredentialCacheState", { "Enable": Enable }, callback_func); } - obj.AMT_MessageLog_CancelIteration = function (IterationIdentifier, callback_func) { obj.Exec("AMT_MessageLog", "CancelIteration", { "IterationIdentifier": IterationIdentifier }, callback_func); } - obj.AMT_MessageLog_RequestStateChange = function (RequestedState, TimeoutPeriod, callback_func) { obj.Exec("AMT_MessageLog", "RequestStateChange", { "RequestedState": RequestedState, "TimeoutPeriod": TimeoutPeriod }, callback_func); } - obj.AMT_MessageLog_ClearLog = function (callback_func) { obj.Exec("AMT_MessageLog", "ClearLog", { }, callback_func); } - obj.AMT_MessageLog_GetRecords = function (IterationIdentifier, MaxReadRecords, callback_func, tag) { obj.Exec("AMT_MessageLog", "GetRecords", { "IterationIdentifier": IterationIdentifier, "MaxReadRecords": MaxReadRecords }, callback_func, tag); } - obj.AMT_MessageLog_GetRecord = function (IterationIdentifier, PositionToNext, callback_func) { obj.Exec("AMT_MessageLog", "GetRecord", { "IterationIdentifier": IterationIdentifier, "PositionToNext": PositionToNext }, callback_func); } - obj.AMT_MessageLog_PositionAtRecord = function (IterationIdentifier, MoveAbsolute, RecordNumber, callback_func) { obj.Exec("AMT_MessageLog", "PositionAtRecord", { "IterationIdentifier": IterationIdentifier, "MoveAbsolute": MoveAbsolute, "RecordNumber": RecordNumber }, callback_func); } - obj.AMT_MessageLog_PositionToFirstRecord = function (callback_func, tag) { obj.Exec("AMT_MessageLog", "PositionToFirstRecord", {}, callback_func, tag); } - obj.AMT_MessageLog_FreezeLog = function (Freeze, callback_func) { obj.Exec("AMT_MessageLog", "FreezeLog", { "Freeze": Freeze }, callback_func); } - obj.AMT_PublicKeyManagementService_AddCRL = function (Url, SerialNumbers, callback_func) { obj.Exec("AMT_PublicKeyManagementService", "AddCRL", { "Url": Url, "SerialNumbers": SerialNumbers }, callback_func); } - obj.AMT_PublicKeyManagementService_ResetCRLList = function (_method_dummy, callback_func) { obj.Exec("AMT_PublicKeyManagementService", "ResetCRLList", { "_method_dummy": _method_dummy }, callback_func); } - obj.AMT_PublicKeyManagementService_AddCertificate = function (CertificateBlob, callback_func, tag) { obj.Exec("AMT_PublicKeyManagementService", "AddCertificate", { "CertificateBlob": CertificateBlob }, callback_func, tag); } - obj.AMT_PublicKeyManagementService_AddTrustedRootCertificate = function (CertificateBlob, callback_func) { obj.Exec("AMT_PublicKeyManagementService", "AddTrustedRootCertificate", { "CertificateBlob": CertificateBlob }, callback_func); } - obj.AMT_PublicKeyManagementService_AddKey = function (KeyBlob, callback_func) { obj.Exec("AMT_PublicKeyManagementService", "AddKey", { "KeyBlob": KeyBlob }, callback_func); } - obj.AMT_PublicKeyManagementService_GeneratePKCS10Request = function (KeyPair, DNName, Usage, callback_func) { obj.Exec("AMT_PublicKeyManagementService", "GeneratePKCS10Request", { "KeyPair": KeyPair, "DNName": DNName, "Usage": Usage }, callback_func); } - obj.AMT_PublicKeyManagementService_GeneratePKCS10RequestEx = function (KeyPair, SigningAlgorithm, NullSignedCertificateRequest, callback_func) { obj.Exec("AMT_PublicKeyManagementService", "GeneratePKCS10RequestEx", { "KeyPair": KeyPair, "SigningAlgorithm": SigningAlgorithm, "NullSignedCertificateRequest": NullSignedCertificateRequest }, callback_func); } - obj.AMT_PublicKeyManagementService_GenerateKeyPair = function (KeyAlgorithm, KeyLength, callback_func) { obj.Exec("AMT_PublicKeyManagementService", "GenerateKeyPair", { "KeyAlgorithm": KeyAlgorithm, "KeyLength": KeyLength }, callback_func); } - obj.AMT_RedirectionService_RequestStateChange = function (RequestedState, callback_func) { obj.Exec("AMT_RedirectionService", "RequestStateChange", { "RequestedState": RequestedState }, callback_func); } - obj.AMT_RedirectionService_TerminateSession = function (SessionType, callback_func) { obj.Exec("AMT_RedirectionService", "TerminateSession", { "SessionType": SessionType }, callback_func); } - obj.AMT_RemoteAccessService_AddMpServer = function (AccessInfo, InfoFormat, Port, AuthMethod, Certificate, Username, Password, CN, callback_func) { obj.Exec("AMT_RemoteAccessService", "AddMpServer", { "AccessInfo": AccessInfo, "InfoFormat": InfoFormat, "Port": Port, "AuthMethod": AuthMethod, "Certificate": Certificate, "Username": Username, "Password": Password, "CN": CN }, callback_func); } - obj.AMT_RemoteAccessService_AddRemoteAccessPolicyRule = function (Trigger, TunnelLifeTime, ExtendedData, MpServer, callback_func) { obj.Exec("AMT_RemoteAccessService", "AddRemoteAccessPolicyRule", { "Trigger": Trigger, "TunnelLifeTime": TunnelLifeTime, "ExtendedData": ExtendedData, "MpServer": MpServer }, callback_func); } - obj.AMT_RemoteAccessService_CloseRemoteAccessConnection = function (_method_dummy, callback_func) { obj.Exec("AMT_RemoteAccessService", "CloseRemoteAccessConnection", { "_method_dummy": _method_dummy }, callback_func); } - obj.AMT_SetupAndConfigurationService_CommitChanges = function (_method_dummy, callback_func, tag) { obj.Exec("AMT_SetupAndConfigurationService", "CommitChanges", { "_method_dummy": _method_dummy }, callback_func, tag); } - obj.AMT_SetupAndConfigurationService_Unprovision = function (ProvisioningMode, callback_func) { obj.Exec("AMT_SetupAndConfigurationService", "Unprovision", { "ProvisioningMode": ProvisioningMode }, callback_func); } - obj.AMT_SetupAndConfigurationService_PartialUnprovision = function (_method_dummy, callback_func) { obj.Exec("AMT_SetupAndConfigurationService", "PartialUnprovision", { "_method_dummy": _method_dummy }, callback_func); } - obj.AMT_SetupAndConfigurationService_ResetFlashWearOutProtection = function (_method_dummy, callback_func) { obj.Exec("AMT_SetupAndConfigurationService", "ResetFlashWearOutProtection", { "_method_dummy": _method_dummy }, callback_func); } - obj.AMT_SetupAndConfigurationService_ExtendProvisioningPeriod = function (Duration, callback_func) { obj.Exec("AMT_SetupAndConfigurationService", "ExtendProvisioningPeriod", { "Duration": Duration }, callback_func); } - obj.AMT_SetupAndConfigurationService_SetMEBxPassword = function (Password, callback_func) { obj.Exec("AMT_SetupAndConfigurationService", "SetMEBxPassword", { "Password": Password }, callback_func); } - obj.AMT_SetupAndConfigurationService_SetTLSPSK = function (PID, PPS, callback_func) { obj.Exec("AMT_SetupAndConfigurationService", "SetTLSPSK", { "PID": PID, "PPS": PPS }, callback_func); } - obj.AMT_SetupAndConfigurationService_GetProvisioningAuditRecord = function (callback_func) { obj.Exec("AMT_SetupAndConfigurationService", "GetProvisioningAuditRecord", {}, callback_func); } - obj.AMT_SetupAndConfigurationService_GetUuid = function (callback_func) { obj.Exec("AMT_SetupAndConfigurationService", "GetUuid", {}, callback_func); } - obj.AMT_SetupAndConfigurationService_GetUnprovisionBlockingComponents = function (callback_func) { obj.Exec("AMT_SetupAndConfigurationService", "GetUnprovisionBlockingComponents", {}, callback_func); } - obj.AMT_SetupAndConfigurationService_GetProvisioningAuditRecordV2 = function (callback_func) { obj.Exec("AMT_SetupAndConfigurationService", "GetProvisioningAuditRecordV2", {}, callback_func); } - obj.AMT_SystemDefensePolicy_GetTimeout = function (callback_func) { obj.Exec("AMT_SystemDefensePolicy", "GetTimeout", {}, callback_func); } - obj.AMT_SystemDefensePolicy_SetTimeout = function (Timeout, callback_func) { obj.Exec("AMT_SystemDefensePolicy", "SetTimeout", { "Timeout": Timeout }, callback_func); } - obj.AMT_SystemDefensePolicy_UpdateStatistics = function (NetworkInterface, ResetOnRead, callback_func, tag, pri, selectors) { obj.Exec("AMT_SystemDefensePolicy", "UpdateStatistics", { "NetworkInterface": NetworkInterface, "ResetOnRead": ResetOnRead }, callback_func, tag, pri, selectors); } - obj.AMT_SystemPowerScheme_SetPowerScheme = function (callback_func, schemeInstanceId, tag) { obj.Exec("AMT_SystemPowerScheme", "SetPowerScheme", {}, callback_func, tag, 0, { "InstanceID": schemeInstanceId }); } - obj.AMT_TimeSynchronizationService_GetLowAccuracyTimeSynch = function (callback_func, tag) { obj.Exec("AMT_TimeSynchronizationService", "GetLowAccuracyTimeSynch", {}, callback_func, tag); } - obj.AMT_TimeSynchronizationService_SetHighAccuracyTimeSynch = function (Ta0, Tm1, Tm2, callback_func, tag) { obj.Exec("AMT_TimeSynchronizationService", "SetHighAccuracyTimeSynch", { "Ta0": Ta0, "Tm1": Tm1, "Tm2": Tm2 }, callback_func, tag); } - obj.AMT_TLSCredentialContext_Create = function AMT_TLSCredentialContext_Create(ElementInContext, ElementProvidingContext, callback_func, tag) { obj.Create("AMT_TLSCredentialContext", { "ElementInContext": ElementInContext, "ElementProvidingContext": ElementProvidingContext }, callback_func, tag); } - obj.AMT_UserInitiatedConnectionService_RequestStateChange = function (RequestedState, TimeoutPeriod, callback_func) { obj.Exec("AMT_UserInitiatedConnectionService", "RequestStateChange", { "RequestedState": RequestedState, "TimeoutPeriod": TimeoutPeriod }, callback_func); } - obj.AMT_WebUIService_RequestStateChange = function (RequestedState, TimeoutPeriod, callback_func, tag) { obj.Exec("AMT_WebUIService", "RequestStateChange", { "RequestedState": RequestedState, "TimeoutPeriod": TimeoutPeriod }, callback_func, tag); } - obj.AMT_WiFiPortConfigurationService_AddWiFiSettings = function (WiFiEndpoint, WiFiEndpointSettingsInput, IEEE8021xSettingsInput, ClientCredential, CACredential, callback_func) { obj.ExecWithXml("AMT_WiFiPortConfigurationService", "AddWiFiSettings", { "WiFiEndpoint": WiFiEndpoint, "WiFiEndpointSettingsInput": WiFiEndpointSettingsInput, "IEEE8021xSettingsInput": IEEE8021xSettingsInput, "ClientCredential": ClientCredential, "CACredential": CACredential }, callback_func); } - obj.AMT_WiFiPortConfigurationService_UpdateWiFiSettings = function (WiFiEndpointSettings, WiFiEndpointSettingsInput, IEEE8021xSettingsInput, ClientCredential, CACredential, callback_func) { obj.ExecWithXml("AMT_WiFiPortConfigurationService", "UpdateWiFiSettings", { "WiFiEndpointSettings": WiFiEndpointSettings, "WiFiEndpointSettingsInput": WiFiEndpointSettingsInput, "IEEE8021xSettingsInput": IEEE8021xSettingsInput, "ClientCredential": ClientCredential, "CACredential": CACredential }, callback_func); } - obj.AMT_WiFiPortConfigurationService_DeleteAllITProfiles = function (_method_dummy, callback_func) { obj.Exec("AMT_WiFiPortConfigurationService", "DeleteAllITProfiles", { "_method_dummy": _method_dummy }, callback_func); } - obj.AMT_WiFiPortConfigurationService_DeleteAllUserProfiles = function (_method_dummy, callback_func) { obj.Exec("AMT_WiFiPortConfigurationService", "DeleteAllUserProfiles", { "_method_dummy": _method_dummy }, callback_func); } - obj.CIM_Account_RequestStateChange = function (RequestedState, TimeoutPeriod, callback_func) { obj.Exec("CIM_Account", "RequestStateChange", { "RequestedState": RequestedState, "TimeoutPeriod": TimeoutPeriod }, callback_func); } - obj.CIM_AccountManagementService_CreateAccount = function (System, AccountTemplate, callback_func) { obj.Exec("CIM_AccountManagementService", "CreateAccount", { "System": System, "AccountTemplate": AccountTemplate }, callback_func); } - obj.CIM_BootConfigSetting_ChangeBootOrder = function (Source, callback_func) { obj.Exec("CIM_BootConfigSetting", "ChangeBootOrder", { "Source": Source }, callback_func); } - obj.CIM_BootService_SetBootConfigRole = function (BootConfigSetting, Role, callback_func) { obj.Exec("CIM_BootService", "SetBootConfigRole", { "BootConfigSetting": BootConfigSetting, "Role": Role }, callback_func, 0, 1); } - obj.CIM_BootService_RequestStateChange = function (RequestedState, TimeoutPeriod, callback_func, tag) { obj.Exec('CIM_BootService', 'RequestStateChange', { 'RequestedState': RequestedState, 'TimeoutPeriod': TimeoutPeriod }, callback_func, tag, 1); } - obj.CIM_Card_ConnectorPower = function (Connector, PoweredOn, callback_func) { obj.Exec("CIM_Card", "ConnectorPower", { "Connector": Connector, "PoweredOn": PoweredOn }, callback_func); } - obj.CIM_Card_IsCompatible = function (ElementToCheck, callback_func) { obj.Exec("CIM_Card", "IsCompatible", { "ElementToCheck": ElementToCheck }, callback_func); } - obj.CIM_Chassis_IsCompatible = function (ElementToCheck, callback_func) { obj.Exec("CIM_Chassis", "IsCompatible", { "ElementToCheck": ElementToCheck }, callback_func); } - obj.CIM_Fan_SetSpeed = function (DesiredSpeed, callback_func) { obj.Exec("CIM_Fan", "SetSpeed", { "DesiredSpeed": DesiredSpeed }, callback_func); } - obj.CIM_KVMRedirectionSAP_RequestStateChange = function (RequestedState, TimeoutPeriod, callback_func) { obj.Exec("CIM_KVMRedirectionSAP", "RequestStateChange", { "RequestedState": RequestedState/*, "TimeoutPeriod": TimeoutPeriod */}, callback_func); } - obj.CIM_MediaAccessDevice_LockMedia = function (Lock, callback_func) { obj.Exec("CIM_MediaAccessDevice", "LockMedia", { "Lock": Lock }, callback_func); } - obj.CIM_MediaAccessDevice_SetPowerState = function (PowerState, Time, callback_func) { obj.Exec("CIM_MediaAccessDevice", "SetPowerState", { "PowerState": PowerState, "Time": Time }, callback_func); } - obj.CIM_MediaAccessDevice_Reset = function (callback_func) { obj.Exec("CIM_MediaAccessDevice", "Reset", {}, callback_func); } - obj.CIM_MediaAccessDevice_EnableDevice = function (Enabled, callback_func) { obj.Exec("CIM_MediaAccessDevice", "EnableDevice", { "Enabled": Enabled }, callback_func); } - obj.CIM_MediaAccessDevice_OnlineDevice = function (Online, callback_func) { obj.Exec("CIM_MediaAccessDevice", "OnlineDevice", { "Online": Online }, callback_func); } - obj.CIM_MediaAccessDevice_QuiesceDevice = function (Quiesce, callback_func) { obj.Exec("CIM_MediaAccessDevice", "QuiesceDevice", { "Quiesce": Quiesce }, callback_func); } - obj.CIM_MediaAccessDevice_SaveProperties = function (callback_func) { obj.Exec("CIM_MediaAccessDevice", "SaveProperties", {}, callback_func); } - obj.CIM_MediaAccessDevice_RestoreProperties = function (callback_func) { obj.Exec("CIM_MediaAccessDevice", "RestoreProperties", {}, callback_func); } - obj.CIM_MediaAccessDevice_RequestStateChange = function (RequestedState, TimeoutPeriod, callback_func) { obj.Exec("CIM_MediaAccessDevice", "RequestStateChange", { "RequestedState": RequestedState, "TimeoutPeriod": TimeoutPeriod }, callback_func); } - obj.CIM_PhysicalFrame_IsCompatible = function (ElementToCheck, callback_func) { obj.Exec("CIM_PhysicalFrame", "IsCompatible", { "ElementToCheck": ElementToCheck }, callback_func); } - obj.CIM_PhysicalPackage_IsCompatible = function (ElementToCheck, callback_func) { obj.Exec("CIM_PhysicalPackage", "IsCompatible", { "ElementToCheck": ElementToCheck }, callback_func); } - obj.CIM_PowerManagementService_RequestPowerStateChange = function (PowerState, ManagedElement, Time, TimeoutPeriod, callback_func) { obj.Exec("CIM_PowerManagementService", "RequestPowerStateChange", { "PowerState": PowerState, "ManagedElement": ManagedElement, "Time": Time, "TimeoutPeriod": TimeoutPeriod }, callback_func, 0, 1); } - obj.CIM_PowerSupply_SetPowerState = function (PowerState, Time, callback_func) { obj.Exec("CIM_PowerSupply", "SetPowerState", { "PowerState": PowerState, "Time": Time }, callback_func); } - obj.CIM_PowerSupply_Reset = function (callback_func) { obj.Exec("CIM_PowerSupply", "Reset", {}, callback_func); } - obj.CIM_PowerSupply_EnableDevice = function (Enabled, callback_func) { obj.Exec("CIM_PowerSupply", "EnableDevice", { "Enabled": Enabled }, callback_func); } - obj.CIM_PowerSupply_OnlineDevice = function (Online, callback_func) { obj.Exec("CIM_PowerSupply", "OnlineDevice", { "Online": Online }, callback_func); } - obj.CIM_PowerSupply_QuiesceDevice = function (Quiesce, callback_func) { obj.Exec("CIM_PowerSupply", "QuiesceDevice", { "Quiesce": Quiesce }, callback_func); } - obj.CIM_PowerSupply_SaveProperties = function (callback_func) { obj.Exec("CIM_PowerSupply", "SaveProperties", {}, callback_func); } - obj.CIM_PowerSupply_RestoreProperties = function (callback_func) { obj.Exec("CIM_PowerSupply", "RestoreProperties", {}, callback_func); } - obj.CIM_PowerSupply_RequestStateChange = function (RequestedState, TimeoutPeriod, callback_func) { obj.Exec("CIM_PowerSupply", "RequestStateChange", { "RequestedState": RequestedState, "TimeoutPeriod": TimeoutPeriod }, callback_func); } - obj.CIM_Processor_SetPowerState = function (PowerState, Time, callback_func) { obj.Exec("CIM_Processor", "SetPowerState", { "PowerState": PowerState, "Time": Time }, callback_func); } - obj.CIM_Processor_Reset = function (callback_func) { obj.Exec("CIM_Processor", "Reset", {}, callback_func); } - obj.CIM_Processor_EnableDevice = function (Enabled, callback_func) { obj.Exec("CIM_Processor", "EnableDevice", { "Enabled": Enabled }, callback_func); } - obj.CIM_Processor_OnlineDevice = function (Online, callback_func) { obj.Exec("CIM_Processor", "OnlineDevice", { "Online": Online }, callback_func); } - obj.CIM_Processor_QuiesceDevice = function (Quiesce, callback_func) { obj.Exec("CIM_Processor", "QuiesceDevice", { "Quiesce": Quiesce }, callback_func); } - obj.CIM_Processor_SaveProperties = function (callback_func) { obj.Exec("CIM_Processor", "SaveProperties", {}, callback_func); } - obj.CIM_Processor_RestoreProperties = function (callback_func) { obj.Exec("CIM_Processor", "RestoreProperties", {}, callback_func); } - obj.CIM_Processor_RequestStateChange = function (RequestedState, TimeoutPeriod, callback_func) { obj.Exec("CIM_Processor", "RequestStateChange", { "RequestedState": RequestedState, "TimeoutPeriod": TimeoutPeriod }, callback_func); } - obj.CIM_RecordLog_ClearLog = function (callback_func) { obj.Exec("CIM_RecordLog", "ClearLog", {}, callback_func); } - obj.CIM_RecordLog_RequestStateChange = function (RequestedState, TimeoutPeriod, callback_func) { obj.Exec("CIM_RecordLog", "RequestStateChange", { "RequestedState": RequestedState, "TimeoutPeriod": TimeoutPeriod }, callback_func); } - obj.CIM_RedirectionService_RequestStateChange = function (RequestedState, TimeoutPeriod, callback_func) { obj.Exec("CIM_RedirectionService", "RequestStateChange", { "RequestedState": RequestedState, "TimeoutPeriod": TimeoutPeriod }, callback_func); } - obj.CIM_Sensor_SetPowerState = function (PowerState, Time, callback_func) { obj.Exec("CIM_Sensor", "SetPowerState", { "PowerState": PowerState, "Time": Time }, callback_func); } - obj.CIM_Sensor_Reset = function (callback_func) { obj.Exec("CIM_Sensor", "Reset", {}, callback_func); } - obj.CIM_Sensor_EnableDevice = function (Enabled, callback_func) { obj.Exec("CIM_Sensor", "EnableDevice", { "Enabled": Enabled }, callback_func); } - obj.CIM_Sensor_OnlineDevice = function (Online, callback_func) { obj.Exec("CIM_Sensor", "OnlineDevice", { "Online": Online }, callback_func); } - obj.CIM_Sensor_QuiesceDevice = function (Quiesce, callback_func) { obj.Exec("CIM_Sensor", "QuiesceDevice", { "Quiesce": Quiesce }, callback_func); } - obj.CIM_Sensor_SaveProperties = function (callback_func) { obj.Exec("CIM_Sensor", "SaveProperties", {}, callback_func); } - obj.CIM_Sensor_RestoreProperties = function (callback_func) { obj.Exec("CIM_Sensor", "RestoreProperties", {}, callback_func); } - obj.CIM_Sensor_RequestStateChange = function (RequestedState, TimeoutPeriod, callback_func) { obj.Exec("CIM_Sensor", "RequestStateChange", { "RequestedState": RequestedState, "TimeoutPeriod": TimeoutPeriod }, callback_func); } - obj.CIM_StatisticalData_ResetSelectedStats = function (SelectedStatistics, callback_func) { obj.Exec("CIM_StatisticalData", "ResetSelectedStats", { "SelectedStatistics": SelectedStatistics }, callback_func); } - obj.CIM_Watchdog_KeepAlive = function (callback_func) { obj.Exec("CIM_Watchdog", "KeepAlive", {}, callback_func); } - obj.CIM_Watchdog_SetPowerState = function (PowerState, Time, callback_func) { obj.Exec("CIM_Watchdog", "SetPowerState", { "PowerState": PowerState, "Time": Time }, callback_func); } - obj.CIM_Watchdog_Reset = function (callback_func) { obj.Exec("CIM_Watchdog", "Reset", {}, callback_func); } - obj.CIM_Watchdog_EnableDevice = function (Enabled, callback_func) { obj.Exec("CIM_Watchdog", "EnableDevice", { "Enabled": Enabled }, callback_func); } - obj.CIM_Watchdog_OnlineDevice = function (Online, callback_func) { obj.Exec("CIM_Watchdog", "OnlineDevice", { "Online": Online }, callback_func); } - obj.CIM_Watchdog_QuiesceDevice = function (Quiesce, callback_func) { obj.Exec("CIM_Watchdog", "QuiesceDevice", { "Quiesce": Quiesce }, callback_func); } - obj.CIM_Watchdog_SaveProperties = function (callback_func) { obj.Exec("CIM_Watchdog", "SaveProperties", {}, callback_func); } - obj.CIM_Watchdog_RestoreProperties = function (callback_func) { obj.Exec("CIM_Watchdog", "RestoreProperties", {}, callback_func); } - obj.CIM_Watchdog_RequestStateChange = function (RequestedState, TimeoutPeriod, callback_func) { obj.Exec("CIM_Watchdog", "RequestStateChange", { "RequestedState": RequestedState, "TimeoutPeriod": TimeoutPeriod }, callback_func); } - obj.CIM_WiFiPort_SetPowerState = function (PowerState, Time, callback_func) { obj.Exec("CIM_WiFiPort", "SetPowerState", { "PowerState": PowerState, "Time": Time }, callback_func); } - obj.CIM_WiFiPort_Reset = function (callback_func) { obj.Exec("CIM_WiFiPort", "Reset", {}, callback_func); } - obj.CIM_WiFiPort_EnableDevice = function (Enabled, callback_func) { obj.Exec("CIM_WiFiPort", "EnableDevice", { "Enabled": Enabled }, callback_func); } - obj.CIM_WiFiPort_OnlineDevice = function (Online, callback_func) { obj.Exec("CIM_WiFiPort", "OnlineDevice", { "Online": Online }, callback_func); } - obj.CIM_WiFiPort_QuiesceDevice = function (Quiesce, callback_func) { obj.Exec("CIM_WiFiPort", "QuiesceDevice", { "Quiesce": Quiesce }, callback_func); } - obj.CIM_WiFiPort_SaveProperties = function (callback_func) { obj.Exec("CIM_WiFiPort", "SaveProperties", {}, callback_func); } - obj.CIM_WiFiPort_RestoreProperties = function (callback_func) { obj.Exec("CIM_WiFiPort", "RestoreProperties", {}, callback_func); } - obj.CIM_WiFiPort_RequestStateChange = function (RequestedState, TimeoutPeriod, callback_func) { obj.Exec("CIM_WiFiPort", "RequestStateChange", { "RequestedState": RequestedState, "TimeoutPeriod": TimeoutPeriod }, callback_func); } - obj.IPS_HostBasedSetupService_Setup = function (NetAdminPassEncryptionType, NetworkAdminPassword, McNonce, Certificate, SigningAlgorithm, DigitalSignature, callback_func) { obj.Exec("IPS_HostBasedSetupService", "Setup", { "NetAdminPassEncryptionType": NetAdminPassEncryptionType, "NetworkAdminPassword": NetworkAdminPassword, "McNonce": McNonce, "Certificate": Certificate, "SigningAlgorithm": SigningAlgorithm, "DigitalSignature": DigitalSignature }, callback_func); } - obj.IPS_HostBasedSetupService_AddNextCertInChain = function (NextCertificate, IsLeafCertificate, IsRootCertificate, callback_func) { obj.Exec("IPS_HostBasedSetupService", "AddNextCertInChain", { "NextCertificate": NextCertificate, "IsLeafCertificate": IsLeafCertificate, "IsRootCertificate": IsRootCertificate }, callback_func); } - obj.IPS_HostBasedSetupService_AdminSetup = function (NetAdminPassEncryptionType, NetworkAdminPassword, McNonce, SigningAlgorithm, DigitalSignature, callback_func) { obj.Exec("IPS_HostBasedSetupService", "AdminSetup", { "NetAdminPassEncryptionType": NetAdminPassEncryptionType, "NetworkAdminPassword": NetworkAdminPassword, "McNonce": McNonce, "SigningAlgorithm": SigningAlgorithm, "DigitalSignature": DigitalSignature }, callback_func); } - obj.IPS_HostBasedSetupService_UpgradeClientToAdmin = function (McNonce, SigningAlgorithm, DigitalSignature, callback_func) { obj.Exec("IPS_HostBasedSetupService", "UpgradeClientToAdmin", { "McNonce": McNonce, "SigningAlgorithm": SigningAlgorithm, "DigitalSignature": DigitalSignature }, callback_func); } - obj.IPS_HostBasedSetupService_DisableClientControlMode = function (_method_dummy, callback_func) { obj.Exec("IPS_HostBasedSetupService", "DisableClientControlMode", { "_method_dummy": _method_dummy }, callback_func); } - obj.IPS_KVMRedirectionSettingData_TerminateSession = function (callback_func) { obj.Exec("IPS_KVMRedirectionSettingData", "TerminateSession", {}, callback_func); } - obj.IPS_KVMRedirectionSettingData_DataChannelRead = function (callback_func) { obj.Exec("IPS_KVMRedirectionSettingData", "DataChannelRead", {}, callback_func); } - obj.IPS_KVMRedirectionSettingData_DataChannelWrite = function (Data, callback_func) { obj.Exec("IPS_KVMRedirectionSettingData", "DataChannelWrite", { "DataMessage": Data }, callback_func); } - obj.IPS_OptInService_StartOptIn = function (callback_func) { obj.Exec("IPS_OptInService", "StartOptIn", {}, callback_func); } - obj.IPS_OptInService_CancelOptIn = function (callback_func) { obj.Exec("IPS_OptInService", "CancelOptIn", {}, callback_func); } - obj.IPS_OptInService_SendOptInCode = function (OptInCode, callback_func) { obj.Exec("IPS_OptInService", "SendOptInCode", { "OptInCode": OptInCode }, callback_func); } - obj.IPS_OptInService_StartService = function (callback_func) { obj.Exec("IPS_OptInService", "StartService", {}, callback_func); } - obj.IPS_OptInService_StopService = function (callback_func) { obj.Exec("IPS_OptInService", "StopService", {}, callback_func); } - obj.IPS_OptInService_RequestStateChange = function (RequestedState, TimeoutPeriod, callback_func) { obj.Exec("IPS_OptInService", "RequestStateChange", { "RequestedState": RequestedState, "TimeoutPeriod": TimeoutPeriod }, callback_func); } - obj.IPS_ProvisioningRecordLog_RequestStateChange = function (RequestedState, TimeoutPeriod, callback_func) { obj.Exec("IPS_ProvisioningRecordLog", "RequestStateChange", { "RequestedState": RequestedState, "TimeoutPeriod": TimeoutPeriod }, callback_func); } - obj.IPS_ProvisioningRecordLog_ClearLog = function (_method_dummy, callback_func) { obj.Exec("IPS_ProvisioningRecordLog", "ClearLog", { "_method_dummy": _method_dummy }, callback_func); } - obj.IPS_SecIOService_RequestStateChange = function (RequestedState, TimeoutPeriod, callback_func) { obj.Exec("IPS_SecIOService", "RequestStateChange", { "RequestedState": RequestedState, "TimeoutPeriod": TimeoutPeriod }, callback_func); } - - obj.AmtStatusToStr = function (code) { if (obj.AmtStatusCodes[code]) return obj.AmtStatusCodes[code]; else return "UNKNOWN_ERROR" } - obj.AmtStatusCodes = { - 0x0000: "SUCCESS", - 0x0001: "INTERNAL_ERROR", - 0x0002: "NOT_READY", - 0x0003: "INVALID_PT_MODE", - 0x0004: "INVALID_MESSAGE_LENGTH", - 0x0005: "TABLE_FINGERPRINT_NOT_AVAILABLE", - 0x0006: "INTEGRITY_CHECK_FAILED", - 0x0007: "UNSUPPORTED_ISVS_VERSION", - 0x0008: "APPLICATION_NOT_REGISTERED", - 0x0009: "INVALID_REGISTRATION_DATA", - 0x000A: "APPLICATION_DOES_NOT_EXIST", - 0x000B: "NOT_ENOUGH_STORAGE", - 0x000C: "INVALID_NAME", - 0x000D: "BLOCK_DOES_NOT_EXIST", - 0x000E: "INVALID_BYTE_OFFSET", - 0x000F: "INVALID_BYTE_COUNT", - 0x0010: "NOT_PERMITTED", - 0x0011: "NOT_OWNER", - 0x0012: "BLOCK_LOCKED_BY_OTHER", - 0x0013: "BLOCK_NOT_LOCKED", - 0x0014: "INVALID_GROUP_PERMISSIONS", - 0x0015: "GROUP_DOES_NOT_EXIST", - 0x0016: "INVALID_MEMBER_COUNT", - 0x0017: "MAX_LIMIT_REACHED", - 0x0018: "INVALID_AUTH_TYPE", - 0x0019: "AUTHENTICATION_FAILED", - 0x001A: "INVALID_DHCP_MODE", - 0x001B: "INVALID_IP_ADDRESS", - 0x001C: "INVALID_DOMAIN_NAME", - 0x001D: "UNSUPPORTED_VERSION", - 0x001E: "REQUEST_UNEXPECTED", - 0x001F: "INVALID_TABLE_TYPE", - 0x0020: "INVALID_PROVISIONING_STATE", - 0x0021: "UNSUPPORTED_OBJECT", - 0x0022: "INVALID_TIME", - 0x0023: "INVALID_INDEX", - 0x0024: "INVALID_PARAMETER", - 0x0025: "INVALID_NETMASK", - 0x0026: "FLASH_WRITE_LIMIT_EXCEEDED", - 0x0027: "INVALID_IMAGE_LENGTH", - 0x0028: "INVALID_IMAGE_SIGNATURE", - 0x0029: "PROPOSE_ANOTHER_VERSION", - 0x002A: "INVALID_PID_FORMAT", - 0x002B: "INVALID_PPS_FORMAT", - 0x002C: "BIST_COMMAND_BLOCKED", - 0x002D: "CONNECTION_FAILED", - 0x002E: "CONNECTION_TOO_MANY", - 0x002F: "RNG_GENERATION_IN_PROGRESS", - 0x0030: "RNG_NOT_READY", - 0x0031: "CERTIFICATE_NOT_READY", - 0x0400: "DISABLED_BY_POLICY", - 0x0800: "NETWORK_IF_ERROR_BASE", - 0x0801: "UNSUPPORTED_OEM_NUMBER", - 0x0802: "UNSUPPORTED_BOOT_OPTION", - 0x0803: "INVALID_COMMAND", - 0x0804: "INVALID_SPECIAL_COMMAND", - 0x0805: "INVALID_HANDLE", - 0x0806: "INVALID_PASSWORD", - 0x0807: "INVALID_REALM", - 0x0808: "STORAGE_ACL_ENTRY_IN_USE", - 0x0809: "DATA_MISSING", - 0x080A: "DUPLICATE", - 0x080B: "EVENTLOG_FROZEN", - 0x080C: "PKI_MISSING_KEYS", - 0x080D: "PKI_GENERATING_KEYS", - 0x080E: "INVALID_KEY", - 0x080F: "INVALID_CERT", - 0x0810: "CERT_KEY_NOT_MATCH", - 0x0811: "MAX_KERB_DOMAIN_REACHED", - 0x0812: "UNSUPPORTED", - 0x0813: "INVALID_PRIORITY", - 0x0814: "NOT_FOUND", - 0x0815: "INVALID_CREDENTIALS", - 0x0816: "INVALID_PASSPHRASE", - 0x0818: "NO_ASSOCIATION", - 0x081B: "AUDIT_FAIL", - 0x081C: "BLOCKING_COMPONENT", - 0x0821: "USER_CONSENT_REQUIRED", - 0x1000: "APP_INTERNAL_ERROR", - 0x1001: "NOT_INITIALIZED", - 0x1002: "LIB_VERSION_UNSUPPORTED", - 0x1003: "INVALID_PARAM", - 0x1004: "RESOURCES", - 0x1005: "HARDWARE_ACCESS_ERROR", - 0x1006: "REQUESTOR_NOT_REGISTERED", - 0x1007: "NETWORK_ERROR", - 0x1008: "PARAM_BUFFER_TOO_SHORT", - 0x1009: "COM_NOT_INITIALIZED_IN_THREAD", - 0x100A: "URL_REQUIRED" - } - - // - // Methods used for getting the event log - // - - obj.GetMessageLog = function (func, tag) { - obj.AMT_MessageLog_PositionToFirstRecord(_GetMessageLog0, [func, tag, []]); - } - function _GetMessageLog0(stack, name, responses, status, tag) { - if (status != 200 || responses.Body["ReturnValue"] != '0') { tag[0](obj, null, tag[2], status); return; } - obj.AMT_MessageLog_GetRecords(responses.Body["IterationIdentifier"], 390, _GetMessageLog1, tag); - } - function _GetMessageLog1(stack, name, responses, status, tag) { - if (status != 200 || responses.Body["ReturnValue"] != '0') { tag[0](obj, null, tag[2], status); return; } - var i, j, x, e, AmtMessages = tag[2], t = new Date(), TimeStamp, ra = responses.Body["RecordArray"]; - if (typeof ra === 'string') { ra = [ra]; } - - for (i in ra) { - e = Buffer.from(ra[i], 'base64'); - if (e != null) { - TimeStamp = ReadIntX(e, 0); - if ((TimeStamp > 0) && (TimeStamp < 0xFFFFFFFF)) { - x = { 'DeviceAddress': e[4], 'EventSensorType': e[5], 'EventType': e[6], 'EventOffset': e[7], 'EventSourceType': e[8], 'EventSeverity': e[9], 'SensorNumber': e[10], 'Entity': e[11], 'EntityInstance': e[12], 'EventData': [], 'Time': new Date((TimeStamp + (t.getTimezoneOffset() * 60)) * 1000) }; - for (j = 13; j < 21; j++) { x['EventData'].push(e[j]); } - x['EntityStr'] = _SystemEntityTypes[x['Entity']]; - x['Desc'] = _GetEventDetailStr(x['EventSensorType'], x['EventOffset'], x['EventData'], x['Entity']); - if (!x['EntityStr']) x['EntityStr'] = "Unknown"; - AmtMessages.push(x); - } - } - } - - if (responses.Body["NoMoreRecords"] != true) { obj.AMT_MessageLog_GetRecords(responses.Body["IterationIdentifier"], 390, _GetMessageLog1, [tag[0], AmtMessages, tag[2]]); } else { tag[0](obj, AmtMessages, tag[2]); } - } - - var _EventTrapSourceTypes = "Platform firmware (e.g. BIOS)|SMI handler|ISV system management software|Alert ASIC|IPMI|BIOS vendor|System board set vendor|System integrator|Third party add-in|OSV|NIC|System management card".split('|'); - var _SystemFirmwareError = "Unspecified.|No system memory is physically installed in the system.|No usable system memory, all installed memory has experienced an unrecoverable failure.|Unrecoverable hard-disk/ATAPI/IDE device failure.|Unrecoverable system-board failure.|Unrecoverable diskette subsystem failure.|Unrecoverable hard-disk controller failure.|Unrecoverable PS/2 or USB keyboard failure.|Removable boot media not found.|Unrecoverable video controller failure.|No video device detected.|Firmware (BIOS) ROM corruption detected.|CPU voltage mismatch (processors that share same supply have mismatched voltage requirements)|CPU speed matching failure".split('|'); - var _SystemFirmwareProgress = "Unspecified.|Memory initialization.|Starting hard-disk initialization and test|Secondary processor(s) initialization|User authentication|User-initiated system setup|USB resource configuration|PCI resource configuration|Option ROM initialization|Video initialization|Cache initialization|SM Bus initialization|Keyboard controller initialization|Embedded controller/management controller initialization|Docking station attachment|Enabling docking station|Docking station ejection|Disabling docking station|Calling operating system wake-up vector|Starting operating system boot process|Baseboard or motherboard initialization|reserved|Floppy initialization|Keyboard test|Pointing device test|Primary processor initialization".split('|'); - var _SystemEntityTypes = "Unspecified|Other|Unknown|Processor|Disk|Peripheral|System management module|System board|Memory module|Processor module|Power supply|Add in card|Front panel board|Back panel board|Power system board|Drive backplane|System internal expansion board|Other system board|Processor board|Power unit|Power module|Power management board|Chassis back panel board|System chassis|Sub chassis|Other chassis board|Disk drive bay|Peripheral bay|Device bay|Fan cooling|Cooling unit|Cable interconnect|Memory device|System management software|BIOS|Intel(r) ME|System bus|Group|Intel(r) ME|External environment|Battery|Processing blade|Connectivity switch|Processor/memory module|I/O module|Processor I/O module|Management controller firmware|IPMI channel|PCI bus|PCI express bus|SCSI bus|SATA/SAS bus|Processor front side bus".split('|'); - obj.RealmNames = "||Redirection|PT Administration|Hardware Asset|Remote Control|Storage|Event Manager|Storage Admin|Agent Presence Local|Agent Presence Remote|Circuit Breaker|Network Time|General Information|Firmware Update|EIT|LocalUN|Endpoint Access Control|Endpoint Access Control Admin|Event Log Reader|Audit Log|ACL Realm|||Local System".split('|'); - obj.WatchdogCurrentStates = { 1: 'Not Started', 2: 'Stopped', 4: 'Running', 8: 'Expired', 16: 'Suspended' }; - var _OCRProgressEvents = ["Boot parameters received from CSME", "CSME Boot Option % added successfully", "HTTPS URI name resolved", "HTTPS connected successfully", "HTTPSBoot download is completed", "Attempt to boot", "Exit boot services"]; - var _OCRErrorEvents = ['', "No network connection available", "Name resolution of URI failed", "Connect to URI failed", "OEM app not found at local URI", "HTTPS TLS Auth failed", "HTTPS Digest Auth failed", "Verified boot failed (bad image)", "HTTPS Boot File not found"]; - var _OCRSource = { 1: '', 2: "HTTPS", 4: "Local PBA", 8: "WinRE" }; - - function _GetEventDetailStr(eventSensorType, eventOffset, eventDataField, entity) { - if (eventSensorType == 15) { - if (eventDataField[0] == 235) return "Invalid Data"; - if (eventOffset == 0) { - return _SystemFirmwareError[eventDataField[1]]; - } else if (eventOffset == 3) { - if ((eventDataField[0] == 170) && (eventDataField[1] == 48)) { - return format("One Click Recovery: {0}", _OCRErrorEvents[eventDataField[2]]); - } else if ((eventDataField[0] == 170) && (eventDataField[1] == 64)) { - if (eventDataField[2] == 1) return "Got an error erasing Device SSD"; - if (eventDataField[2] == 2) return "Erasing Device TPM is not supported"; - if (eventDataField[2] == 3) return "Reached Max Counter"; - } else { - return "OEM Specific Firmware Error event"; - } - } else if (eventOffset == 5) { - if ((eventDataField[0] == 170) && (eventDataField[1] == 48)) { - if (eventDataField[2] == 1) { - return format("One Click Recovery: CSME Boot Option {0}:{1} added successfully", (eventDataField[3]), _OCRSource[(eventDataField[3])]); - } else if (eventDataField[2] < 7) { - return format("One Click Recovery: {0}", _OCRProgressEvents[eventDataField[2]]); - } else { - return format("One Click Recovery: Unknown progress event {0}", eventDataField[2]); - } - } else if ((eventDataField[0] == 170) && (eventDataField[1] == 64)) { - if (eventDataField[2] == 1) { - if (eventDataField[3] == 2) return "Started erasing Device SSD"; - if (eventDataField[3] == 3) return "Started erasing Device TPM"; - if (eventDataField[3] == 5) return "Started erasing Device BIOS Reload of Golden Config"; - } - if (eventDataField[2] == 2) { - if (eventDataField[3] == 2) return "Erasing Device SSD ended successfully"; - if (eventDataField[3] == 3) return "Erasing Device TPM ended successfully"; - if (eventDataField[3] == 5) return "Erasing Device BIOS Reload of Golden Config ended successfully"; - } - if (eventDataField[2] == 3) return "Beginning Platform Erase"; - if (eventDataField[2] == 4) return "Clear Reserved Parameters"; - if (eventDataField[2] == 5) return "All setting decremented"; - } else { - return "OEM Specific Firmware Progress event"; - } - } else { - return _SystemFirmwareProgress[eventDataField[1]]; - } - } - - if (eventSensorType == 18 && eventDataField[0] == 170) // System watchdog event - { - return "Agent watchdog " + char2hex(eventDataField[4]) + char2hex(eventDataField[3]) + char2hex(eventDataField[2]) + char2hex(eventDataField[1]) + "-" + char2hex(eventDataField[6]) + char2hex(eventDataField[5]) + "-... changed to " + obj.WatchdogCurrentStates[eventDataField[7]]; - } - - if ((eventSensorType == 5) && (eventOffset == 0)) { // System chassis - return "Case intrusion"; - } - - if ((eventSensorType == 192) && (eventOffset == 0) && (eventDataField[0] == 170) && (eventDataField[1] == 48)) { - if (eventDataField[2] == 0) return "A remote Serial Over LAN session was established."; - if (eventDataField[2] == 1) return "Remote Serial Over LAN session finished. User control was restored."; - if (eventDataField[2] == 2) return "A remote IDE-Redirection session was established."; - if (eventDataField[2] == 3) return "Remote IDE-Redirection session finished. User control was restored."; - } - - if (eventSensorType == 36) { - var handle = (eventDataField[1] << 24) + (eventDataField[2] << 16) + (eventDataField[3] << 8) + eventDataField[4]; - var nic = '#' + eventDataField[0]; - if (eventDataField[0] == 0xAA) nic = "wired"; // TODO: Add wireless ***** - //if (eventDataField[0] == 0xAA) nic = "wireless"; - - if (handle == 4294967293) { return "All received packet filter was matched on " + nic + " interface."; } - if (handle == 4294967292) { return "All outbound packet filter was matched on " + nic + " interface."; } - if (handle == 4294967290) { return "Spoofed packet filter was matched on " + nic + " interface."; } - return "Filter " + handle + " was matched on " + nic + " interface."; - } - - if (eventSensorType == 192) { - if (eventDataField[2] == 0) return "Security policy invoked. Some or all network traffic (TX) was stopped."; - if (eventDataField[2] == 2) return "Security policy invoked. Some or all network traffic (RX) was stopped."; - return "Security policy invoked."; - } - - if (eventSensorType == 193) { - if ((eventDataField[0] == 0xAA) && (eventDataField[1] == 0x30) && (eventDataField[2] == 0x00) && (eventDataField[3] == 0x00)) { return "User request for remote connection."; } - if ((eventDataField[0] == 0xAA) && (eventDataField[1] == 0x20) && (eventDataField[2] == 0x03) && (eventDataField[3] == 0x01)) { return "EAC error: attempt to get posture while NAC in Intel® AMT is disabled."; } // eventDataField = 0xAA20030100000000 - if ((eventDataField[0] == 0xAA) && (eventDataField[1] == 0x20) && (eventDataField[2] == 0x04) && (eventDataField[3] == 0x00)) { return "HWA Error: general error"; } // Used to be "Certificate revoked." but don"t know the source of this. - } - - if (eventSensorType == 6) return "Authentication failed " + (eventDataField[1] + (eventDataField[2] << 8)) + " times. The system may be under attack."; - if (eventSensorType == 30) return "No bootable media"; - if (eventSensorType == 32) return "Operating system lockup or power interrupt"; - if (eventSensorType == 35) { - if (eventDataField[0] == 64) return "BIOS POST (Power On Self-Test) Watchdog Timeout."; // 64,2,252,84,89,0,0,0 - return "System boot failure"; - } - if (eventSensorType == 37) return "System firmware started (at least one CPU is properly executing)."; - return "Unknown Sensor Type #" + eventSensorType; - } - -// ###BEGIN###{AuditLog} - - // Useful link: https://software.intel.com/sites/manageability/AMT_Implementation_and_Reference_Guide/default.htm?turl=WordDocuments%2Fsecurityadminevents.htm - - var _AmtAuditStringTable = - { - 16: 'Security Admin', - 17: 'RCO', - 18: 'Redirection Manager', - 19: 'Firmware Update Manager', - 20: 'Security Audit Log', - 21: 'Network Time', - 22: 'Network Administration', - 23: 'Storage Administration', - 24: 'Event Manager', - 25: 'Circuit Breaker Manager', - 26: 'Agent Presence Manager', - 27: 'Wireless Configuration', - 28: 'EAC', - 29: 'KVM', - 30: 'User Opt-In Events', - 32: 'Screen Blanking', - 33: 'Watchdog Events', - 1600: 'Provisioning Started', - 1601: 'Provisioning Completed', - 1602: 'ACL Entry Added', - 1603: 'ACL Entry Modified', - 1604: 'ACL Entry Removed', - 1605: 'ACL Access with Invalid Credentials', - 1606: 'ACL Entry State', - 1607: 'TLS State Changed', - 1608: 'TLS Server Certificate Set', - 1609: 'TLS Server Certificate Remove', - 1610: 'TLS Trusted Root Certificate Added', - 1611: 'TLS Trusted Root Certificate Removed', - 1612: 'TLS Preshared Key Set', - 1613: 'Kerberos Settings Modified', - 1614: 'Kerberos Main Key Modified', - 1615: 'Flash Wear out Counters Reset', - 1616: 'Power Package Modified', - 1617: 'Set Realm Authentication Mode', - 1618: 'Upgrade Client to Admin Control Mode', - 1619: 'Unprovisioning Started', - 1700: 'Performed Power Up', - 1701: 'Performed Power Down', - 1702: 'Performed Power Cycle', - 1703: 'Performed Reset', - 1704: 'Set Boot Options', - 1800: 'IDER Session Opened', - 1801: 'IDER Session Closed', - 1802: 'IDER Enabled', - 1803: 'IDER Disabled', - 1804: 'SoL Session Opened', - 1805: 'SoL Session Closed', - 1806: 'SoL Enabled', - 1807: 'SoL Disabled', - 1808: 'KVM Session Started', - 1809: 'KVM Session Ended', - 1810: 'KVM Enabled', - 1811: 'KVM Disabled', - 1812: 'VNC Password Failed 3 Times', - 1900: 'Firmware Updated', - 1901: 'Firmware Update Failed', - 2000: 'Security Audit Log Cleared', - 2001: 'Security Audit Policy Modified', - 2002: 'Security Audit Log Disabled', - 2003: 'Security Audit Log Enabled', - 2004: 'Security Audit Log Exported', - 2005: 'Security Audit Log Recovered', - 2100: 'Intel(R) ME Time Set', - 2200: 'TCPIP Parameters Set', - 2201: 'Host Name Set', - 2202: 'Domain Name Set', - 2203: 'VLAN Parameters Set', - 2204: 'Link Policy Set', - 2205: 'IPv6 Parameters Set', - 2300: 'Global Storage Attributes Set', - 2301: 'Storage EACL Modified', - 2302: 'Storage FPACL Modified', - 2303: 'Storage Write Operation', - 2400: 'Alert Subscribed', - 2401: 'Alert Unsubscribed', - 2402: 'Event Log Cleared', - 2403: 'Event Log Frozen', - 2500: 'CB Filter Added', - 2501: 'CB Filter Removed', - 2502: 'CB Policy Added', - 2503: 'CB Policy Removed', - 2504: 'CB Default Policy Set', - 2505: 'CB Heuristics Option Set', - 2506: 'CB Heuristics State Cleared', - 2600: 'Agent Watchdog Added', - 2601: 'Agent Watchdog Removed', - 2602: 'Agent Watchdog Action Set', - 2700: 'Wireless Profile Added', - 2701: 'Wireless Profile Removed', - 2702: 'Wireless Profile Updated', - 2703: "An existing profile sync was modified", - 2704: "An existing profile link preference was changed", - 2705: "Wireless profile share with UEFI enabled setting was changed", - 2800: 'EAC Posture Signer SET', - 2801: 'EAC Enabled', - 2802: 'EAC Disabled', - 2803: 'EAC Posture State', - 2804: 'EAC Set Options', - 2900: 'KVM Opt-in Enabled', - 2901: 'KVM Opt-in Disabled', - 2902: 'KVM Password Changed', - 2903: 'KVM Consent Succeeded', - 2904: 'KVM Consent Failed', - 3000: 'Opt-In Policy Change', - 3001: 'Send Consent Code Event', - 3002: 'Start Opt-In Blocked Event' - } - - // Return human readable extended audit log data - // TODO: Just put some of them here, but many more still need to be added, helpful link here: - // https://software.intel.com/sites/manageability/AMT_Implementation_and_Reference_Guide/default.htm?turl=WordDocuments%2Fsecurityadminevents.htm - obj.GetAuditLogExtendedDataStr = function (id, data) { - if ((id == 1602 || id == 1604) && data[0] == 0) { return bufToArray(data).splice(2, 2 + data[1]).toString(); } // ACL Entry Added/Removed (Digest) - if (id == 1603) { if (data[1] == 0) { return bufToArray(data).splice(3).toString(); } return null; } // ACL Entry Modified - if (id == 1605) { return ["Invalid ME access", "Invalid MEBx access"][data[0]]; } // ACL Access with Invalid Credentials - if (id == 1606) { var r = ["Disabled", "Enabled"][data[0]]; if (data[1] == 0) { r += ", " + data[3]; } return r; } // ACL Entry State - if (id == 1607) { return "Remote " + ["NoAuth", "ServerAuth", "MutualAuth"][data[0]] + ", Local " + ["NoAuth", "ServerAuth", "MutualAuth"][data[1]]; } // TLS State Changed - if (id == 1617) { return obj.RealmNames[ReadInt(data, 0)] + ", " + ["NoAuth", "Auth", "Disabled"][data[4]]; } // Set Realm Authentication Mode - if (id == 1619) { return ["BIOS", "MEBx", "Local MEI", "Local WSMAN", "Remote WSAMN"][data[0]]; } // Intel AMT Unprovisioning Started - if (id == 1900) { return "From " + ReadShort(data, 0) + "." + ReadShort(data, 2) + "." + ReadShort(data, 4) + "." + ReadShort(data, 6) + " to " + ReadShort(data, 8) + "." + ReadShort(data, 10) + "." + ReadShort(data, 12) + "." + ReadShort(data, 14); } // Firmware Updated - if (id == 2100) { var t4 = new Date(); t4.setTime(ReadInt(data, 0) * 1000 + (new Date().getTimezoneOffset() * 60000)); return t4.toLocaleString(); } // Intel AMT Time Set - if (id == 3000) { return "From " + ["None", "KVM", "All"][data[0]] + " to " + ["None", "KVM", "All"][data[1]]; } // Opt-In Policy Change - if (id == 3001) { return ["Success", "Failed 3 times"][data[0]]; } // Send Consent Code Event - return null; - } - - obj.GetAuditLog = function (func) { - obj.AMT_AuditLog_ReadRecords(1, _GetAuditLog0, [func, []]); - } - - function MakeToArray(v) { if (!v || v == null || typeof v == 'object') return v; return [v]; } - function ReadShort(v, p) { return (v[p] << 8) + v[p + 1]; } - function ReadInt(v, p) { return (v[p] * 0x1000000) + (v[p + 1] << 16) + (v[p + 2] << 8) + v[p + 3]; } // We use "*0x1000000" instead of "<<24" because the shift converts the number to signed int32. - function ReadIntX(v, p) { return (v[p + 3] * 0x1000000) + (v[p + 2] << 16) + (v[p + 1] << 8) + v[p]; } - function btoa(x) { return Buffer.from(x).toString('base64'); } - function atob(x) { var z = null; try { z = Buffer.from(x, 'base64').toString(); } catch (e) { console.log(e); } return z; } - function bufToArray(buf) { var r = []; for (var i in buf) { r.push(buf[i]); } return r; } - - function _GetAuditLog0(stack, name, responses, status, tag) { - if (status != 200) { tag[0](obj, [], status); return; } - var ptr, i, e, x, r = tag[1], t = new Date(), TimeStamp; - - if (responses.Body['RecordsReturned'] > 0) { - responses.Body['EventRecords'] = MakeToArray(responses.Body['EventRecords']); - - for (i in responses.Body['EventRecords']) { - e = null; - try { - e = Buffer.from(responses.Body['EventRecords'][i], 'base64'); - } catch (ex) { - console.log(ex + " " + responses.Body['EventRecords'][i]) - } - - x = { 'AuditAppID': ReadShort(e, 0), 'EventID': ReadShort(e, 2), 'InitiatorType': e[4] }; - x['AuditApp'] = _AmtAuditStringTable[x['AuditAppID']]; - x['Event'] = _AmtAuditStringTable[(x['AuditAppID'] * 100) + x['EventID']]; - if (!x['Event']) x['Event'] = '#' + x['EventID']; - - // Read and process the initiator - if (x['InitiatorType'] == 0) { - // HTTP digest - var userlen = e[5]; - x['Initiator'] = e.slice(6, 6 + userlen).toString(); - ptr = 6 + userlen; - } - if (x['InitiatorType'] == 1) { - // Kerberos - x['KerberosUserInDomain'] = ReadInt(e, 5); - var userlen = e[9]; - x['Initiator'] = GetSidString(e.slice(10, 10 + userlen)); - ptr = 10 + userlen; - } - if (x['InitiatorType'] == 2) { - // Local - x['Initiator'] = 'Local'; - ptr = 5; - } - if (x['InitiatorType'] == 3) { - // KVM Default Port - x['Initiator'] = 'KVM Default Port'; - ptr = 5; - } - - // Read timestamp - TimeStamp = ReadInt(e, ptr); - x['Time'] = new Date((TimeStamp + (t.getTimezoneOffset() * 60)) * 1000); - ptr += 4; - - // Read network access - x['MCLocationType'] = e[ptr++]; - var netlen = e[ptr++]; - - x['NetAddress'] = e.slice(ptr, ptr + netlen).toString(); - - // Read extended data - ptr += netlen; - var exlen = e[ptr++]; - x['Ex'] = e.slice(ptr, ptr + exlen); - x['ExStr'] = obj.GetAuditLogExtendedDataStr((x['AuditAppID'] * 100) + x['EventID'], x['Ex']); - r.push(x); - } - } - if (responses.Body['TotalRecordCount'] > r.length) { - obj.AMT_AuditLog_ReadRecords(r.length + 1, _GetAuditLog0, [tag[0], r]); - } else { - tag[0](obj, r, status); - } - } - - // ###END###{AuditLog} - - function execArgumentsToXml(args) { - if (args === undefined || args === null) return null; - - var result = ''; - for (var argName in args) { - var arg = args[argName]; - if (!arg) continue; - if (arg['__parameterType'] === 'reference') result += referenceToXml(argName, arg); - else result += instanceToXml(argName, arg); - //if(arg['__isInstance']) result += instanceToXml(argName, arg); - } - return result; - } - - /** - * Convert JavaScript object into XML - - - Wireless-Profile-Admin - Intel(r) AMT:WiFi Endpoint Settings Wireless-Profile-Admin - 6 - 4 - 100 - P@ssw0rd - - */ - function instanceToXml(instanceName, inInstance) { - if (inInstance === undefined || inInstance === null) return null; - - var hasNamespace = !!inInstance['__namespace']; - var startTag = hasNamespace ? ''; - for (var prop in inInstance) { - if (!inInstance.hasOwnProperty(prop) || prop.indexOf('__') === 0) continue; - - if (typeof inInstance[prop] === 'function' || Array.isArray(inInstance[prop])) continue; - - if (typeof inInstance[prop] === 'object') { - //result += startTag + prop +'>' + instanceToXml('prop', inInstance[prop]) + endTag + prop +'>'; - console.error('only convert one level down...'); - } - else { - result += startTag + prop + '>' + inInstance[prop].toString() + endTag + prop + '>'; - } - } - result += ''; - return result; - } - - - /** - * Convert a selector set into XML. Expect no nesting. - * { - * selectorName : selectorValue, - * selectorName : selectorValue, - * ... ... - * } - - - http://192.168.1.103:16992/wsman - - http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_WiFiEndpoint - - WiFi Endpoint 0 - - - - - */ - function referenceToXml(referenceName, inReference) { - if (inReference === undefined || inReference === null) return null; - - var result = '/wsman' + inReference['__resourceUri'] + ''; - for (var selectorName in inReference) { - if (!inReference.hasOwnProperty(selectorName) || selectorName.indexOf('__') === 0) continue; - - if (typeof inReference[selectorName] === 'function' || - typeof inReference[selectorName] === 'object' || - Array.isArray(inReference[selectorName])) - continue; - - result += '' + inReference[selectorName].toString() + ''; - } - - result += ''; - return result; - } - - // Convert a byte array of SID into string - function GetSidString(sid) { - var r = 'S-' + sid[0] + '-' + sid[7]; - for (var i = 2; i < (sid.length / 4); i++) r += '-' + ReadIntX(sid, i * 4); - return r; - } - - // Convert a SID readable string into bytes - function GetSidByteArray(sidString) { - if (!sidString || sidString == null) return null; - var sidParts = sidString.split('-'); - - // Make sure the SID has at least 4 parts and starts with 'S' - if (sidParts.length < 4 || (sidParts[0] != 's' && sidParts[0] != 'S')) return null; - - // Check that each part of the SID is really an integer - for (var i = 1; i < sidParts.length; i++) { var y = parseInt(sidParts[i]); if (y != sidParts[i]) return null; sidParts[i] = y; } - - // Version (8 bit) + Id count (8 bit) + 48 bit in big endian -- DO NOT use bitwise right shift operator. JavaScript converts the number into a 32 bit integer before shifting. In real world, it's highly likely this part is always 0. - var r = String.fromCharCode(sidParts[1]) + String.fromCharCode(sidParts.length - 3) + ShortToStr(Math.floor(sidParts[2] / Math.pow(2, 32))) + IntToStr((sidParts[2]) & 0xFFFF); - - // the rest are in 32 bit in little endian - for (var i = 3; i < sidParts.length; i++) r += IntToStrX(sidParts[i]); - return r; - } - - return obj; -} - -module.exports = AmtStackCreateService; diff --git a/meshcentral-config-schema.json b/meshcentral-config-schema.json index 4be75157..40e1b36c 100644 --- a/meshcentral-config-schema.json +++ b/meshcentral-config-schema.json @@ -506,6 +506,7 @@ "ldapUserEmail": { "type": "string" }, "ldapUserRealName": { "type": "string" }, "ldapUserPhoneNumber": { "type": "string" }, + "ldapSaveUserToFile": { "type": "string", "default": null, "description": "When set to a filename, for example c:\\temp\\ldapusers.txt, MeshCentral will save the LDAP user object to this file each time a user logs in. This is used for debugging LDAP issues." }, "ldapOptions": { "type": "object", "description": "LDAP options passed to ldapauth-fork" }, "agentInviteCodes": { "type": "boolean", "default": false, "description": "Enabled a feature where you can set one or more invitation codes in a device group. You can then give a invitation link to users who can use it to download the agent." }, "agentNoProxy": { "type": "boolean", "default": false, "description": "When enabled, all newly installed MeshAgents will be instructed to no use a HTTP/HTTPS proxy even if one is configured on the remote system" }, diff --git a/webserver.js b/webserver.js index 529178df..100b46f4 100644 --- a/webserver.js +++ b/webserver.js @@ -447,6 +447,12 @@ module.exports.CreateWebServer = function (parent, db, args, certificates, doneF fn(new Error('invalid password')); return; } else { + // Save this LDAP user to file if needed + if (typeof domain.ldapsaveusertofile == 'string') { + obj.fs.writeFile(domain.ldapsaveusertofile, JSON.stringify(xxuser, null, 2) + '\r\n\r\n', function (err) { }); + } + + // Work on getting the userid for this LDAP user var username = xxuser['displayName']; if (domain.ldapusername) { username = xxuser[domain.ldapusername]; } var shortname = null; @@ -466,19 +472,23 @@ module.exports.CreateWebServer = function (parent, db, args, certificates, doneF if (shortname == null) { fn(new Error('no user identifier')); return; } if (username == null) { username = shortname; } var userid = 'user/' + domain.id + '/' + shortname; - var user = obj.users[userid]; - var email = null; - if (domain.ldapuseremail) { - email = xxuser[domain.ldapuseremail]; - } else if (xxuser.mail) { // use default - email = xxuser.mail; - } - if ('[object Array]' == Object.prototype.toString.call(email)) { - // mail may be multivalued in ldap in which case, answer is an array. Use the 1st value. - email = email[0]; - } - if (email) { email = email.toLowerCase(); } // it seems some code otherwhere also lowercase the emailaddress. be compatible. + // Work on getting the email address for this LDAP user + var email = null; + if (domain.ldapuseremail) { email = xxuser[domain.ldapuseremail]; } else if (xxuser.mail) { email = xxuser.mail; } // Use given feild name or default + if ('[object Array]' == Object.prototype.toString.call(email)) { email = email[0]; } // Mail may be multivalued in LDAP in which case, answer is an array. Use the 1st value. + if (email) { email = email.toLowerCase(); } // it seems some code elsewhere also lowercase the emailaddress, so let's be consistant. + + // Work on getting the real name for this LDAP user + var realname = null; + if (domain.ldapuserrealname) { realname = xxuser[domain.ldapuserrealname]; } + + // Work on getting the real name for this LDAP user + var phonenumber = null; + if (domain.ldapuserphonenumber) { phonenumber = xxuser[domain.ldapuserphonenumber]; } + + // Check if the user already exists + var user = obj.users[userid]; if (user == null) { // Create a new user var user = { type: 'user', _id: userid, name: username, creation: Math.floor(Date.now() / 1000), login: Math.floor(Date.now() / 1000), access: Math.floor(Date.now() / 1000), domain: domain.id }; @@ -558,13 +568,14 @@ module.exports.CreateWebServer = function (parent, db, args, certificates, doneF ldap.authenticate(name, pass, function (err, xxuser) { try { ldap.close(); } catch (ex) { console.log(ex); } // Close the LDAP object if (err) { fn(new Error('invalid password')); return; } - var shortname = null; - var email = null; - if (domain.ldapuseremail) { - email = xxuser[domain.ldapuseremail]; - } else if (xxuser.mail) { - email = xxuser.mail; + + // Save this LDAP user to file if needed + if (typeof domain.ldapsaveusertofile == 'string') { + obj.fs.writeFile(domain.ldapsaveusertofile, JSON.stringify(xxuser, null, 2) + '\r\n\r\n', function (err) { }); } + + // Work on getting the userid for this LDAP user + var shortname = null; if ('[object Array]' == Object.prototype.toString.call(email)) { // mail may be multivalued in ldap in which case, answer would be an array. Use the 1st one. email = email[0]; @@ -588,8 +599,23 @@ module.exports.CreateWebServer = function (parent, db, args, certificates, doneF if (shortname == null) { fn(new Error('no user identifier')); return; } if (username == null) { username = shortname; } var userid = 'user/' + domain.id + '/' + shortname; - var user = obj.users[userid]; + // Work on getting the email address for this LDAP user + var email = null; + if (domain.ldapuseremail) { email = xxuser[domain.ldapuseremail]; } else if (xxuser.mail) { email = xxuser.mail; } // Use given feild name or default + if ('[object Array]' == Object.prototype.toString.call(email)) { email = email[0]; } // Mail may be multivalued in LDAP in which case, answer is an array. Use the 1st value. + if (email) { email = email.toLowerCase(); } // it seems some code elsewhere also lowercase the emailaddress, so let's be consistant. + + // Work on getting the real name for this LDAP user + var realname = null; + if (domain.ldapuserrealname) { realname = xxuser[domain.ldapuserrealname]; } + + // Work on getting the real name for this LDAP user + var phonenumber = null; + if (domain.ldapuserphonenumber) { phonenumber = xxuser[domain.ldapuserphonenumber]; } + + // Check if the user already exists + var user = obj.users[userid]; if (user == null) { // This user does not exist, create a new account. var user = { type: 'user', _id: userid, name: username, creation: Math.floor(Date.now() / 1000), login: Math.floor(Date.now() / 1000), access: Math.floor(Date.now() / 1000), domain: domain.id };