' + AddRefreshButton('PullEventLog(1)') + AddButton("Clear Log", 'ClearLog()') + AddButton("Save...", 'SaveEventLog()') + fr);
QH('id_TableEventLog', x + '
');
}
@@ -44196,7 +44488,7 @@ var CreateWebSocketWrapper = function (host, port, path, certhash) {
y++;
var icon = 1, m = messages[i];
if (m['EventSeverity'] >= 8) { icon = 2; } if (m['EventSeverity'] >= 16) { icon = 3; }
- x += '
| ' + (parseInt(i) + 1) + ' | ' + m['Time'].toLocaleDateString('en', { year: 'numeric', month: '2-digit', day: 'numeric' }) + ' ' + m['Time'].toLocaleTimeString('en', { hour:'2-digit', minute:'2-digit', second:'2-digit' }) + ' | ' + m['EntityStr'].replace('(r)', '®') + ' | ' + m['Desc'];
}
x += TableEnd(y == 0 ? ' ' : '');
QH('id_TableEventLog2', x + ' ');
@@ -44305,7 +44597,7 @@ var CreateWebSocketWrapper = function (host, port, path, certhash) {
for (var i in subscriptionsFilters) { x += ''; }
x += '' + "Filter" + ' ';
x += '';
- x += '' + "Authentication" + ' ';
+ x += '' + "Authentication" + ' ';
x += '';
x += '';
x += '';
@@ -44370,7 +44662,7 @@ var CreateWebSocketWrapper = function (host, port, path, certhash) {
auditLog = messages;
var i, x = '';
- x += TableEnd(' ' + AddRefreshButton('PullAuditLog(1)') + AddButton("Save...", 'SaveAuditLog()') + AddButton("Clear Log", 'ClearAuditLog()') /* + AddButton("Settings...", 'ShowAuditLogSettings()')*/) + ' ';
+ x += TableEnd(' ' + AddRefreshButton('PullAuditLog(1)') + AddButton("Save...", 'SaveAuditLog()') + AddButton("Clear Log", 'ClearAuditLog()') /* + AddButton("Settings...", 'ShowAuditLogSettings()')*/) + ' ';
if (messages.length == 0) {
x = "No audit log events found.";
} else {
@@ -44385,7 +44677,7 @@ var CreateWebSocketWrapper = function (host, port, path, certhash) {
if (m['Event']) description += ", " + m['Event'];
if (m['ExStr'] != null) description += ", " + m['ExStr'];
if (initiator != '' && addr != '') initiator += ", ";
- x += ' ' + m['Time'].toLocaleDateString('en', { year: "numeric", month: "2-digit", day: "numeric" }) + ' ' + m['Time'].toLocaleTimeString('en', { hour:"2-digit", minute:"2-digit", second:"2-digit" }) + ' | ' + initiator + addr + ' | ' + description;
+ x += ' | ' + m['Time'].toLocaleDateString('en', { year: 'numeric', month: '2-digit', day: 'numeric' }) + ' ' + m['Time'].toLocaleTimeString('en', { hour:'2-digit', minute:'2-digit', second:'2-digit' }) + ' | ' + initiator + addr + ' | ' + description;
}
x += TableEnd(y == 0 ? ' ' : '') + ' ';
}
@@ -44473,6 +44765,9 @@ var CreateWebSocketWrapper = function (host, port, path, certhash) {
for (var i in xxCertificates) { if (xxCertificates[i]['InstanceID'] == certInstanceId) { xxTlsCurrentCert = i; } }
}
+
+ try { if ((currentcomputer['tls'] == 0) && (xxTlsSettings[0]['MutualAuthentication'] !== true)) { QV('tlsNotification4', true); } } catch (ex) { console.log(ex); }
+
// Setup the certificates
for (var i in xxCertificates) {
xxCertificates[i].TrustedRootCertficate = (xxCertificates[i]['TrustedRootCertficate'] == true);
@@ -44493,10 +44788,10 @@ var CreateWebSocketWrapper = function (host, port, path, certhash) {
function getTlsSecurityState(x) {
if (xxTlsSettings[x]['Enabled'] == false) return "Disabled";
- var r = ((xxTlsSettings[x]['MutualAuthentication'] == true) ? 'Mutual-auth TLS' : 'Server-auth TLS') + ((xxTlsSettings[x]['AcceptNonSecureConnections'] == true) ? " and non-TLS" : '');
+ var r = ((xxTlsSettings[x]['MutualAuthentication'] == true) ? "Mutual-auth TLS" : "Server-auth TLS") + ((xxTlsSettings[x]['AcceptNonSecureConnections'] == true) ? " and non-TLS" : '');
if ((xxTlsSettings[x]['MutualAuthentication'] == true) && (xxTlsSettings[x]['TrustedCN'])) {
var trustedCn = MakeToArray(xxTlsSettings[x]['TrustedCN']);
- if (trustedCn.length > 0) { r += ", Trusted name" + ((trustedCn.length > 1)?'s':'') + ": " + trustedCn.join(', ') + "."; }
+ if (trustedCn.length > 0) { r += ', ' + ((trustedCn.length > 1) ? 'Trusted names' : 'Trusted name') + ': ' + trustedCn.join(', ') + '.'; }
}
return r;
}
@@ -44545,7 +44840,7 @@ var CreateWebSocketWrapper = function (host, port, path, certhash) {
if (xxdialogMode) return;
var c = xxCertificates[h], x = ' ';
- x += addHtmlValue("Certificate", c.X509Certificate.length + " bytes, Download");
+ x += addHtmlValue("Certificate", c.X509Certificate.length + " bytes, " + '' + "Download" + '');
x += addHtmlValue("Trusted root", c.TrustedRootCertficate ? "Yes" : "No");
if (c.TrustedRootCertficate == false && c.XPrivateKey) { x += addHtmlValue("Private key", "Present"); }
@@ -44565,7 +44860,7 @@ var CreateWebSocketWrapper = function (host, port, path, certhash) {
}
*/
- x += '
Certificate Subject ';
+ x += '
' + "Certificate Subject" + ' ';
for (var i in c.XSubject) { if (c.XSubject[i]) { x += addHtmlValue(xxCertSubjectNames[i] ? xxCertSubjectNames[i] : i, EscapeHtml(c.XSubject[i])); } }
// x += addHtmlValueNoTitle("Fingerprint", c.fingerprint.substring(0,29) + ' ' + c.fingerprint.substring(30)); // TODO: Parse the certificate using Forge and get the fingerprint
x += '
' + "Issuer Certificate" + ' ';
@@ -44604,12 +44899,14 @@ var CreateWebSocketWrapper = function (host, port, path, certhash) {
var xxDragDropCertFiles = null;
function addCertButton(files) {
if (xxdialogMode || !xxAccountAdminName) return;
- var x = '';
+ var x = '', op0 = '', op2 = '';
xxDragDropCertFiles = files;
- if ((!xxDragDropCertFiles) && (certificateStore.length > 0)) { x += '' + "Operation" + ' '; }
+
+ if (certificateStore.length > 0) { op0 += ''; }
+ if ((!xxDragDropCertFiles) && ((op0 != '') || (op2 != ''))) { x += '' + "Operation" + ' '; }
x += '';
if (certificateStore.length > 0) {
@@ -44620,7 +44917,7 @@ var CreateWebSocketWrapper = function (host, port, path, certhash) {
}
x += '' + "Certificate" + ' ';
}
- x += '' + "Certificate type" + ' ';
+ x += '' + "Certificate type" + ' ';
setDialogMode(11, "Add Certificate", 3, addCertButtonOk, x);
addCertButtonUpdate();
}
@@ -44633,11 +44930,12 @@ var CreateWebSocketWrapper = function (host, port, path, certhash) {
if (Q('certoptype').value == 0) { QE('idx_dlgOkButton', true); return; }
}
var certopen = getInputElement('certopen');
- QE('idx_dlgOkButton', !certopen || certopen.files.length == 1);
+ QE('idx_dlgOkButton', !certopen || (certopen.files.length == 1) || (Q('certoptype').value == 2));
}
function addCertButtonOk() {
+
if ((xxDragDropCertFiles) || (certificateStore.length == 0) || (Q('certoptype').value == 1)) {
var certopen = getInputElement('certopen');
var files = xxDragDropCertFiles;
@@ -44660,11 +44958,11 @@ var CreateWebSocketWrapper = function (host, port, path, certhash) {
function addCertButtonOk2(file) {
var data = file.target.result;
var i = data.indexOf('-----BEGIN CERTIFICATE-----');
- if (i > 0) {
+ if (i >= 0) {
// This is a .PEM file, keep everything between BEGIN/END, clean it up and use as-is. It's already Base64.
data = data.substring(i + 27);
i = data.indexOf('-----END CERTIFICATE-----');
- if (i > 0) data = data.substring(0, i)
+ if (i >= 0) data = data.substring(0, i)
data = data.replace(/\r\n/g, '');
} else {
// This is a .CER file, just base64 encode it and we should be ok.
@@ -45211,6 +45509,7 @@ var CreateWebSocketWrapper = function (host, port, path, certhash) {
xxSystemDefense = responses;
updateSystemDefense();
QV('go18', true); // Show System Defense Panel
+ if (urlvars['norefresh']) { UpdateDefenseStats(); } // If norefresh is set, pull the system defense stats now.
}
}
@@ -45300,9 +45599,11 @@ var CreateWebSocketWrapper = function (host, port, path, certhash) {
QH('id_TableSystemDefense', x);
if (xxFilterStatisticsTimer == null) {
- UpdateDefenseStats();
xxFilterStatisticsTimerActive = false;
- if (!urlvars['norefresh']) { xxFilterStatisticsTimer = setInterval(UpdateDefenseStats, 5000); }
+ if (!urlvars['norefresh']) {
+ UpdateDefenseStats();
+ xxFilterStatisticsTimer = setInterval(UpdateDefenseStats, 5000);
+ }
}
}
@@ -45321,7 +45622,6 @@ var CreateWebSocketWrapper = function (host, port, path, certhash) {
} else {
// No active policy, stop the timer
xxFilterStatistics[network] = {};
- updateSystemDefense();
StopDefenseStatsTimer();
}
}
@@ -45356,7 +45656,7 @@ var CreateWebSocketWrapper = function (host, port, path, certhash) {
if (xxdialogMode) return;
var x = '';
x += '' + "Default Policy" + ' ';
setDialogMode(11, "Default System Defense Policy", 3, changeDefaultPolicyOk, x, network);
}
@@ -45514,11 +45814,11 @@ var CreateWebSocketWrapper = function (host, port, path, certhash) {
x += '';
}
@@ -45671,7 +45971,7 @@ var CreateWebSocketWrapper = function (host, port, path, certhash) {
function showWifiStateDlg() {
if (xxdialogMode) return;
var s = '';
- for (var i in xxWifiState) { s += '' + xxWifiState[i] + ' '; }
+ for (var i in xxWifiState) { s += ' '; }
setDialogMode(11, "Wireless State", 3, wifiStateDlg, s);
}
@@ -45777,17 +46077,17 @@ var CreateWebSocketWrapper = function (host, port, path, certhash) {
// http://www.dmtf.org/sites/default/files/standards/documents/DSP0134_2.7.1.pdf
var DMTFCPUStatus = ["Unknown", "Enabled", "Disabled by User", "Disabled By BIOS (POST Error)", "Idle", "Other"];
var DMTFMemType = ["Unknown", "Other", "DRAM", "Synchronous DRAM", "Cache DRAM", "EDO", "EDRAM", "VRAM", "SRAM", "RAM", "ROM", "Flash", "EEPROM", "FEPROM", "EPROM", "CDRAM", "3DRAM", "SDRAM", "SGRAM", "RDRAM", "DDR", "DDR-2", "BRAM", "FB-DIMM", "DDR3", "FBD2", "DDR4", "LPDDR", "LPDDR2", "LPDDR3", "LPDDR4"];
- var DMTFMemFormFactor = ['', 'Other','Unknown','SIMM','SIP','Chip','DIP','ZIP','Proprietary Card','DIMM','TSOP','Row of chips','RIMM','SODIMM','SRIMM','FB-DIM'];
+ var DMTFMemFormFactor = ['', "Other","Unknown","SIMM","SIP","Chip","DIP","ZIP","Proprietary Card","DIMM","TSOP","Row of chips","RIMM","SODIMM","SRIMM","FB-DIM"];
var DMTFProcFamilly = { // Page 46 of DMTF document
- 191: 'Intel® Core™ 2 Duo Processor',
- 192: 'Intel® Core™ 2 Solo processor',
- 193: 'Intel® Core™ 2 Extreme processor',
- 194: 'Intel® Core™ 2 Quad processor',
- 195: 'Intel® Core™ 2 Extreme mobile processor',
- 196: 'Intel® Core™ 2 Duo mobile processor',
- 197: 'Intel® Core™ 2 Solo mobile processor',
- 198: 'Intel® Core™ i7 processor',
- 199: 'Dual-Core Intel® Celeron® processor' };
+ 191: "Intel® Core™ 2 Duo Processor",
+ 192: "Intel® Core™ 2 Solo processor",
+ 193: "Intel® Core™ 2 Extreme processor",
+ 194: "Intel® Core™ 2 Quad processor",
+ 195: "Intel® Core™ 2 Extreme mobile processor",
+ 196: "Intel® Core™ 2 Duo mobile processor",
+ 197: "Intel® Core™ 2 Solo mobile processor",
+ 198: "Intel® Core™ i7 processor",
+ 199: "Dual-Core Intel® Celeron® processor" };
var HardwareInventory;
function processHardware(stack, name, responses, status) {
@@ -45862,7 +46162,7 @@ var CreateWebSocketWrapper = function (host, port, path, certhash) {
// Now find the name of the power schema in the AMT_SystemPowerScheme table
for (var j = 0; j < AmtSystemPowerSchemes.length; j++) {
var selected = ((AmtSystemPowerSchemes[j]['SchemeGUID'] == currentguid)?' checked':'');
- s += '' + AmtSystemPowerSchemes[j]['Description'] + ' ';
+ s += '' + AmtSystemPowerSchemes[j]['Description'] + ' ';
}
setDialogMode(11, "Intel® AMT Power Policy", 3, showPowerPolicyDlgOk, s);
@@ -45959,8 +46259,8 @@ var CreateWebSocketWrapper = function (host, port, path, certhash) {
r['Handle'] = -1;
}
x += '';
- if (state > 0 && xxAccountAdminName) x += " " + AddButton2((state == 1?'Disable':'Enable'), 'changeAccountStateButton(event,' + r['Handle'] + ',' + state + ')');
- if (!hidden && xxAccountAdminName) x += " " + AddButton2("Edit...", 'changeAccountButton(event,' + r['Handle'] + ')');
+ if (state > 0 && xxAccountAdminName) x += ' ' + AddButton2((state == 1?'Disable':'Enable'), 'changeAccountStateButton(event,' + r['Handle'] + ',' + state + ')');
+ if (!hidden && xxAccountAdminName) x += ' ' + AddButton2("Edit...", 'changeAccountButton(event,' + r['Handle'] + ')');
x += ' ' + name + ' ' + rb + ' ';
}
}
@@ -46025,7 +46325,7 @@ var CreateWebSocketWrapper = function (host, port, path, certhash) {
function updateRealms(r) {
QV('id_d2permissions', r != null);
if (r != null) {
- var x = ' ';
+ var x = ' ';
for (var y in amtstack.RealmNames) { var c = ''; if (r.indexOf(parseInt(y)) >= 0) c = ' checked'; if (amtstack.RealmNames[y]) x += ''; }
QH('id_d2realms', x);
}
@@ -46045,7 +46345,7 @@ var CreateWebSocketWrapper = function (host, port, path, certhash) {
var i, n = a['DigestUsername'];
if (!n) n = GetSidString(atob(a['KerberosUserSid']));
x += addHtmlValue("Name", n);
- if (xxAccountEnabledInfo[h]) { x += addHtmlValue("State", ((xxAccountEnabledInfo[h]['Enabled'] == true)?'Enabled':'Disabled')); }
+ if (xxAccountEnabledInfo[h]) { x += addHtmlValue("State", ((xxAccountEnabledInfo[h]['Enabled'] == true)?"Enabled":"Disabled")); }
if (n == xxAccountAdminName) {
x += addHtmlValue("Permission", "Administrator");
} else {
@@ -46137,6 +46437,11 @@ var CreateWebSocketWrapper = function (host, port, path, certhash) {
terminal.m.TermResetScreen();
terminal.m.TermDraw();
if (xxdialogMode == 3) setDialogMode();
+ if (terminal.disconnectCode == 2) { // BUSY
+ messagebox("Remote Terminal", "The remote device is busy, a session may already be open.");
+ } else if (terminal.disconnectCode == 3) { // UNSUPPORTED
+ messagebox("Remote Terminal", "The device indicated that this type of connection of not supported.");
+ }
break;
case 3:
break;
@@ -46145,8 +46450,8 @@ var CreateWebSocketWrapper = function (host, port, path, certhash) {
NW_SetupMainMenu(currentView);
}
- function termPaste() { terminal.m.TermSendKeys(d3pastetextarea.value) }
- function termSendKey(k) { terminal.m.TermSendKey(k) }
+ function termPaste() { terminal.m.TermSendKeys(d3pastetextarea.value); return false; }
+ function termSendKey(k) { terminal.m.TermSendKey(k); return false; }
function termToggleSize() {
@@ -46192,8 +46497,8 @@ var CreateWebSocketWrapper = function (host, port, path, certhash) {
} else {
if (terminal.m.capture.length > 0) {
var n = 'TerminalCapture', d = new Date();
- if (amtsysstate) { n += "-" + amtsysstate['AMT_GeneralSettings'].response['HostName']; }
- n += '-' + d.getFullYear() + "-" + ("0"+(d.getMonth()+1)).slice(-2) + "-" + ("0" + d.getDate()).slice(-2) + "-" + ("0" + d.getHours()).slice(-2) + "-" + ("0" + d.getMinutes()).slice(-2);
+ if (amtsysstate) { n += '-' + amtsysstate['AMT_GeneralSettings'].response['HostName']; }
+ n += '-' + d.getFullYear() + '-' + ('0'+(d.getMonth()+1)).slice(-2) + '-' + ('0' + d.getDate()).slice(-2) + '-' + ('0' + d.getHours()).slice(-2) + '-' + ('0' + d.getMinutes()).slice(-2);
var chooser = document.createElement('input');
chooser.setAttribute('type', 'file');
@@ -46467,6 +46772,13 @@ var CreateWebSocketWrapper = function (host, port, path, certhash) {
// desktop.m.ResetScreen();
webRtcDesktopReset();
+ if (desktop.disconnectCode == 2) { // BUSY
+ messagebox("Remote Desktop", "The remote device is busy, a session may already be open.");
+ } else if (desktop.disconnectCode == 3) { // UNSUPPORTED
+ messagebox("Remote Desktop", "The device indicated that this type of connection of not supported.");
+ } else if (desktop.disconnectCode == 50000) { // KVM-Disconnect
+ messagebox("Remote Desktop", "KVM disconnection, they may indicate that Intel AMT is unable to capture the display (Try RLE8 encoding), or unsupported GPU.");
+ }
break;
case 3:
@@ -46665,22 +46977,22 @@ var CreateWebSocketWrapper = function (host, port, path, certhash) {
}
+
+
+
// Save the desktop image to file
function deskSaveImage() {
- if (xxdialogMode || desktop.State != 3) return;
+ if (xxdialogMode || (desktop.State != 3) || (urlvars && urlvars['norecord'])) return;
var n = 'Desktop', d = new Date();
- if (amtsysstate) { n += "-" + amtsysstate['AMT_GeneralSettings'].response['HostName']; }
- n += '-' + d.getFullYear() + "-" + ("0"+(d.getMonth()+1)).slice(-2) + "-" + ("0" + d.getDate()).slice(-2) + "-" + ("0" + d.getHours()).slice(-2) + "-" + ("0" + d.getMinutes()).slice(-2);
- Q('Desk')['toBlob'](
- function(blob) {
+ if (amtsysstate) { n += '-' + amtsysstate['AMT_GeneralSettings'].response['HostName']; }
+ n += '-' + d.getFullYear() + '-' + ('0' + (d.getMonth() + 1)).slice(-2) + '-' + ('0' + d.getDate()).slice(-2) + '-' + ('0' + d.getHours()).slice(-2) + '-' + ('0' + d.getMinutes()).slice(-2);
- var chooser = document.createElement('input');
- chooser.setAttribute('type', 'file');
- chooser.setAttribute('nwsaveas', n + '.jpg');
- chooser.addEventListener('change', function () { require('fs').writeFile(this.value, blob, function () { }); }, false);
- chooser.click();
- }
- );
+ var b64image = document.getElementById('Desk').toDataURL('image/png').split(',')[1];
+ var chooser = document.createElement('input');
+ chooser.setAttribute('type', 'file');
+ chooser.setAttribute('nwsaveas', n + '.png');
+ chooser.addEventListener('change', function () { console.log('cc'); require('fs').writeFile(this.value, b64image, 'base64', function () { }); }, false);
+ chooser.click();
}
// Send special keys
@@ -46719,7 +47031,7 @@ var CreateWebSocketWrapper = function (host, port, path, certhash) {
if (data.action == 'download') { p24gotDownloadCommand(data); return; }
if (data.action == 'upload') { p24gotUploadData(data); return; }
if (data.action == 'pong') { return; }
- data.path = data.path.replace(/\//g, "\\");
+ data.path = data.path.replace(/\//g, '\\');
if ((p24filetree != null) && (data.path == p24filetree.path)) {
// This is an update to the same folder
var checkedNames = p24getCheckedNames();
@@ -46765,12 +47077,12 @@ var CreateWebSocketWrapper = function (host, port, path, certhash) {
// Figure out the name and shortname
var f = filetreexx[i], name = f.n, shortname;
shortname = name;
- if (name.length > 70) { shortname = '' + EscapeHtml(name.substring(0, 70)) + "..."; } else { shortname = EscapeHtml(name); }
+ if (name.length > 70) { shortname = '' + EscapeHtml(name.substring(0, 70)) + "..." + ''; } else { shortname = EscapeHtml(name); }
name = EscapeHtml(name);
// Figure out the date
var fdatestr = '';
- if (f.d != null) { var fdate = new Date(f.d), fdatestr = (fdate.getMonth() + 1) + "/" + (fdate.getDate()) + "/" + fdate.getFullYear() + " " + fdate.toLocaleTimeString() + " "; }
+ if (f.d != null) { var fdate = new Date(f.d), fdatestr = (fdate.getMonth() + 1) + '/' + (fdate.getDate()) + '/' + fdate.getFullYear() + ' ' + fdate.toLocaleTimeString() + ' '; }
// Figure out the size
var fsize = '';
@@ -46782,7 +47094,7 @@ var CreateWebSocketWrapper = function (host, port, path, certhash) {
h = '';
} else {
var link = shortname;
- if (f.s > 0) { link = '' + shortname + ''; }
+ if (f.s > 0) { link = '' + shortname + ''; }
h = '';
}
@@ -47074,10 +47386,10 @@ var CreateWebSocketWrapper = function (host, port, path, certhash) {
if ((e.shiftKey != true) && (require('os').platform() == 'win32')) { iderStartIMR(); return; }
// Setup the IDER session (WebSocket)
- var x = 'Mount disk images on a Intel® AMT computer - Experimental. ';
- x += '';
- x += '';
- x += 'Session Start ';
+ var x = '' + "Mount disk images on a Intel® AMT computer - Experimental." + ' ';
+ x += '';
+ x += '';
+ x += '' + "Session Start" + ' ';
setDialogMode(11, "Storage Redirection", 3, iderStart2, x);
var iderurl = null;
try { iderurl = localStorage.getItem('iderurl'); } catch (ex) { }
@@ -47118,7 +47430,8 @@ var CreateWebSocketWrapper = function (host, port, path, certhash) {
desktop.Start(currentcomputer._id, 0, 'x', 'x', 0, wsstack.comm, meshCentralServer);
} else {
var ports = portsFromHost(currentcomputer['host'], currentcomputer['tls']);
- ider.Start(ports.host, ports.redir, amtstack.wsman.comm.user, amtstack.wsman.comm.pass, currentcomputer['tls']);
+
+ ider.Start(ports.host, ports.redir, amtstack.wsman.comm.user, amtstack.wsman.comm.pass, currentcomputer['tls'], wsstack.comm.getPeerCertificateFingerprint(), wsstack.comm.xtlsoptions);
}
@@ -47293,9 +47606,9 @@ var CreateWebSocketWrapper = function (host, port, path, certhash) {
xxPolicies = { 'User': [], 'Alert': [], 'Periodic': [] };
for (var i in responses['AMT_RemoteAccessPolicyAppliesToMPS'].responses) {
var policy = responses['AMT_RemoteAccessPolicyAppliesToMPS'].responses[i];
- var server = Clone(getItem(xxCiraServers, "Name", getItem(policy['ManagedElement']['ReferenceParameters']['SelectorSet']['Selector'], "@Name", "Name")['Value']));
+ var server = Clone(getItem(xxCiraServers, 'Name', getItem(policy['ManagedElement']['ReferenceParameters']['SelectorSet']['Selector'], '@Name', 'Name')['Value']));
server.MpsType = policy['MpsType']; // MpsType was added in Intel AMT 11.6
- var ptype = (getItem(policy['PolicySet']['ReferenceParameters']['SelectorSet']['Selector'], "@Name", "PolicyRuleName")['Value']).split(' ')[0];
+ var ptype = (getItem(policy['PolicySet']['ReferenceParameters']['SelectorSet']['Selector'], '@Name', 'PolicyRuleName')['Value']).split(' ')[0];
xxPolicies[ptype].push(server);
}
@@ -47304,8 +47617,8 @@ var CreateWebSocketWrapper = function (host, port, path, certhash) {
function updateRemoteAccess() {
if (xxEnvironementDetection == null) return;
- var x = '', e = 'Disabled', ciraProxySupport = (xxRemoteAccess['IPS_HTTPProxyService'] && xxRemoteAccess['IPS_HTTPProxyAccessPoint']);
- if (xxEnvironementDetection['DetectionStrings'] && xxEnvironementDetection['DetectionStrings'].length > 0) { e = 'Enabled, ' + xxEnvironementDetection['DetectionStrings'].length + ' domain' + (xxEnvironementDetection['DetectionStrings'].length > 1?'s':''); }
+ var x = '', e = "Disabled", ciraProxySupport = (xxRemoteAccess['IPS_HTTPProxyService'] && xxRemoteAccess['IPS_HTTPProxyAccessPoint']);
+ if (xxEnvironementDetection['DetectionStrings'] && xxEnvironementDetection['DetectionStrings'].length > 0) { e = "Enabled, " + xxEnvironementDetection['DetectionStrings'].length + ' ' + (xxEnvironementDetection['DetectionStrings'].length > 1?'domains':'domain'); }
// General settings
x += TableStart();
@@ -47709,7 +48022,7 @@ var CreateWebSocketWrapper = function (host, port, path, certhash) {
function showEditNameDlg(x) {
if (xxdialogMode) return;
var t = amtsysstate['AMT_GeneralSettings'].response['HostName'], y = amtsysstate['AMT_GeneralSettings'].response['DomainName'];
- if (y != null && y.length > 0) t += "." + y;
+ if (y != null && y.length > 0) t += '.' + y;
var r = ' ';
if (x == 1) {
var s = (amtsysstate['AMT_GeneralSettings'].response['SharedFQDN'] == true);
@@ -48006,17 +48319,24 @@ var CreateWebSocketWrapper = function (host, port, path, certhash) {
function powerActionResponse00(stack, name, response, status) {
if (status == 200) {
+ var powerState = 3;
+ try {
+ var x = amtsysstate['CIM_ServiceAvailableToElement'].responses[0]['PowerState'];
+ if (x == 2) { powerState = 1; } else { powerState = 2; }
+ } catch (ex) { }
amtPowerBootCapabilities = response.Body;
QH('d5actionSelect', '');
- addOption('d5actionSelect', "Power up", 2);
- addOption('d5actionSelect', "Power cycle", 5);
- addOption('d5actionSelect', "Power down", 8);
- addOption('d5actionSelect', "Reset", 10);
- if (amtPowerBootCapabilities['ForceDiagnosticBoot'] == true) {
- addOption('d5actionSelect', "Power on to diagnostic", 300);
- addOption('d5actionSelect', "Reset to diagnostic", 301);
+ if (powerState & 2) { addOption('d5actionSelect', "Power up", 2); }
+ if (powerState & 1) {
+ addOption('d5actionSelect', "Reset", 10);
+ addOption('d5actionSelect', "Power cycle", 5);
+ addOption('d5actionSelect', "Power down", 8);
}
- if (amtversion > 9) {
+ if (amtPowerBootCapabilities['ForceDiagnosticBoot'] == true) {
+ if (powerState & 2) { addOption('d5actionSelect', "Power on to diagnostic", 300); }
+ if (powerState & 1) { addOption('d5actionSelect', "Reset to diagnostic", 301); }
+ }
+ if ((amtversion > 9) && (powerState & 1)) {
addOption('d5actionSelect', "OS Wake from Standby", 500);
addOption('d5actionSelect', "OS Power Saving", 501);
addOption('d5actionSelect', "Soft-off", 12);
@@ -48025,20 +48345,20 @@ var CreateWebSocketWrapper = function (host, port, path, certhash) {
addOption('d5actionSelect', "Hibernate", 7);
}
if (amtPowerBootCapabilities['BIOSSetup'] == true) {
- addOption('d5actionSelect', "Power up to BIOS", 100);
- addOption('d5actionSelect', "Reset to BIOS", 101);
+ if (powerState & 2) { addOption('d5actionSelect', "Power up to BIOS", 100); }
+ if (powerState & 1) { addOption('d5actionSelect', "Reset to BIOS", 101); }
}
if (amtPowerBootCapabilities['SecureErase'] == true) {
- addOption('d5actionSelect', "Power up to Secure Erase", 104);
- addOption('d5actionSelect', "Reset to Secure Erase", 105);
+ if (powerState & 2) { addOption('d5actionSelect', "Power up to Secure Erase", 104); }
+ if (powerState & 1) { addOption('d5actionSelect', "Reset to Secure Erase", 105); }
}
- addOption('d5actionSelect', "Reset to IDE-R Floppy", 200);
- addOption('d5actionSelect', "Power on to IDE-R Floppy", 201);
- addOption('d5actionSelect', "Reset to IDE-R CDROM", 202);
- addOption('d5actionSelect', "Power on to IDE-R CDROM", 203);
- addOption('d5actionSelect', "Reset to PXE", 400);
- addOption('d5actionSelect', "Power on to PXE", 401);
+ if (powerState & 1) { addOption('d5actionSelect', "Reset to IDE-R Floppy", 200); }
+ if (powerState & 2) { addOption('d5actionSelect', "Power on to IDE-R Floppy", 201); }
+ if (powerState & 1) { addOption('d5actionSelect', "Reset to IDE-R CDROM", 202); }
+ if (powerState & 2) { addOption('d5actionSelect', "Power on to IDE-R CDROM", 203); }
+ if (powerState & 1) { addOption('d5actionSelect', "Reset to PXE", 400); }
+ if (powerState & 2) { addOption('d5actionSelect', "Power on to PXE", 401); }
addOption('d5actionSelect', "Custom action...", 999);
if (amtversion > 5) { addOption('d5actionSelect', "User consent...", 998); } // On AMT 5 and higher, offer the option of doing user consent alone.
@@ -48048,8 +48368,15 @@ var CreateWebSocketWrapper = function (host, port, path, certhash) {
}
}
+
+
function powerActionDlgCheck() {
+ AmtOcrPba = null;
+ AmtOcrPbaLength = 0;
var action = d5actionSelect.value;
+
+
+
if ((action == 500) || (action == 501)) {
// Perform OS wake from standby or OS sleep (Intel AMT 10+)
amtstack.RequestOSPowerStateChange((action == 501)?3:2, function (stack, name, response, status) {
@@ -48058,7 +48385,7 @@ var CreateWebSocketWrapper = function (host, port, path, certhash) {
setTimeout(function () { setDialogMode(0); }, 1300);
});
} else if ((action == 104) || (action == 105)) {
- var x = ("Confirm execution of Intel® Remote Secure Erase?" + ' ' + "Enter Secure Erase password if required." + ' ');
+ var x = ("Confirm execution of Intel® Remote Secure Erase?" + ' ' + "Enter Secure Erase password if required." + ' ');
x += (' ');
x += ('
' + "WARNING: This will wipe data on the remote system." + ' ');
@@ -48069,6 +48396,7 @@ var CreateWebSocketWrapper = function (host, port, path, certhash) {
powerActionDlg();
}
}
+
function powerActionDlg() {
//if (amtversion == 0) return;
@@ -48108,16 +48436,19 @@ var CreateWebSocketWrapper = function (host, port, path, certhash) {
var AvdPowerDlg;
function showAdvPowerDlg() {
+ try { Q('idx_d24Command').value = (amtsysstate['CIM_ServiceAvailableToElement'].responses[0]['PowerState'] == 2)?10:2; } catch (ex) { }
+
// Show boot capabilities
QV('d24dBiosPause', amtPowerBootCapabilities['BIOSPause'] == true);
QV('d24dBiosSecureBoot', amtPowerBootCapabilities['BIOSSecureBoot'] == true);
QV('d24dReflashBios', amtPowerBootCapabilities['BIOSReflash'] == true);
QV('d24dBiosSetup', amtPowerBootCapabilities['BIOSSetup'] == true);
- // QV('', amtPowerBootCapabilities['ForceCDorDVDBoot'] == true);
- // QV('', amtPowerBootCapabilities['ForceDiagnosticBoot'] == true);
- // QV('', amtPowerBootCapabilities['ForceHardDriveBoot'] == true);
- // QV('', amtPowerBootCapabilities['ForceHardDriveSafeModeBoot'] == true);
- // QV('', amtPowerBootCapabilities['ForcePXEBoot'] == true);
+ QV('ForceDVDBootOption', amtPowerBootCapabilities['ForceCDorDVDBoot'] == true);
+ QV('ForceDiagBootOption', amtPowerBootCapabilities['ForceDiagnosticBoot'] == true);
+ QV('ForceHDBootOption', amtPowerBootCapabilities['ForceHardDriveBoot'] == true);
+ //QV('', amtPowerBootCapabilities['ForceHardDriveSafeModeBoot'] == true);
+ //QV('', amtPowerBootCapabilities['ForceWinREBoot'] == true);
+ QV('ForcePXEBootOption', amtPowerBootCapabilities['ForcePXEBoot'] == true);
QV('d24dForceProgressEvents', amtPowerBootCapabilities['ForcedProgressEvents'] == true);
QV('d24dUseIDER', amtPowerBootCapabilities['IDER'] == true);
QV('d24dLockKeyboard', amtPowerBootCapabilities['KeyboardLock'] == true);
@@ -48138,6 +48469,7 @@ var CreateWebSocketWrapper = function (host, port, path, certhash) {
}
function showAdvPowerDlgChange() {
+ var ok = true;
QV('idd_d24IDERBootDevice', Q('d24UseIDER').checked);
QV('idd_d24RSEPass', Q('d24SecureErase') ? Q('d24SecureErase').checked : false);
@@ -48152,16 +48484,16 @@ var CreateWebSocketWrapper = function (host, port, path, certhash) {
QE('idd_d24RSEPass', !ospower);
// If the boot source is not "None" (0), disable all boot settings.
- var bootSettingOpts = ['d24BiosPause', 'd24BiosSecureBoot', 'd24BiosSetup', 'd24ForceProgressEvents', 'd24LockPowerButton', 'd24LockResetButton', 'd24LockSleepButton', 'd24LockKeyboard', 'd24UserPasswordBypass', 'd24ReflashBios', 'd24SafeMode', 'd24UseIDER', 'd24SerialOverLan', 'd24SecureErase'];
- if (idx_d24ForceBootDevice.value > 0) {
- for (var i in bootSettingOpts) {
- Q(bootSettingOpts[i]).checked = false;
- }
- }
- for (var i in bootSettingOpts) { QE(bootSettingOpts[i], idx_d24ForceBootDevice.value == 0); }
+ //var bootSettingOpts = ['d24BiosPause', 'd24BiosSecureBoot', 'd24BiosSetup', 'd24ForceProgressEvents', 'd24LockPowerButton', 'd24LockResetButton', 'd24LockSleepButton', 'd24LockKeyboard', 'd24UserPasswordBypass', 'd24ReflashBios', 'd24SafeMode', 'd24UseIDER', 'd24SerialOverLan', 'd24SecureErase'];
+ //if ((idx_d24ForceBootDevice.value > 0) && (idx_d24ForceBootDevice.value < 5)) { for (var i in bootSettingOpts) { Q(bootSettingOpts[i]).checked = false; } }
+ //for (var i in bootSettingOpts) { QE(bootSettingOpts[i], idx_d24ForceBootDevice.value == 0); }
+
+
+ QE('idx_dlgOkButton', ok);
}
function showAdvPowerDlgOk() {
+
var action = Q('idx_d24Command').value;
if ((action == 500) || (action == 501)) {
// Perform OS wake from standby or OS sleep (Intel AMT 10+)
@@ -48338,16 +48670,40 @@ var CreateWebSocketWrapper = function (host, port, path, certhash) {
rsepass = null;
}
+
+ // Remove read-only parameters
+ delete r['WinREBootEnabled'];
+ delete r['UEFILocalPBABootEnabled'];
+ delete r['UEFIHTTPSBootEnabled'];
+ delete r['SecureBootControlEnabled'];
+ delete r['BootguardStatus'];
+ delete r['OptionsCleared'];
+ delete r['BIOSLastStatus'];
+ delete r['UefiBootParametersArray'];
+ if (r['UefiBootNumberOfParams'] != null) r['UefiBootNumberOfParams'] = 0;
+
+ //r['EnforceSecureBoot'] = true;
+
+
//if (((action == 104) || (action == 105)) && !r['SecureErase']) { /*console.log("This Intel® AMT does not support Secure Erase");*/ cleanup(); return; }
console.log("Boot Action: " + action);
console.log("Setting Boot Settings: " + ObjectToString2(r));
statusbox("Power Action", "Setting boot settings...");
- amtstack.Put('AMT_BootSettingData', r, powerActionResponse2, r, 1);
+
+ // Set the boot order to null, this is needed for some AMT versions that don't clear this automatically.
+ amtstack.CIM_BootConfigSetting_ChangeBootOrder(null, function (stack, name, response, status) {
+ if (status != 200) { messagebox("Power Action", format("PUT CIM_BootConfigSetting_ChangeBootOrder, Error #{0}", status) + ((response.Header && response.Header.WsmanError) ? (', ' + response.Header.WsmanError) : '')); return; }
+ if (response.Body.ReturnValue!=0) {
+ messagebox("Change Boot Order", "Change Boot Order returns "+ response.Body.ReturnValueStr);
+ return;
+ }
+ amtstack.Put('AMT_BootSettingData', r, powerActionResponse2, 0, 1);
+ }, 0, 1);
}
function powerActionResponse2(stack, name, response, status, tag) {
//console.log("powerActionResponse2(" + name + "," + response + "," + status + ")");
- if (status != 200) { messagebox("Power Action", format("PUT AMT_BootSettingData, Error #{0}", status)); console.log(tag); return; }
+ if (status != 200) { messagebox("Power Action", format("PUT AMT_BootSettingData, Error #{0}", status) + ((response.Header && response.Header.WsmanError) ? (', ' + response.Header.WsmanError) : '')); return; }
//if (status == 408) { messagebox("Power Action", "Access denied."); return; }
//if (errcheck(status, stack)) return;
//console.log("Setup next boot...");
@@ -48360,12 +48716,21 @@ var CreateWebSocketWrapper = function (host, port, path, certhash) {
var action = d5actionSelect.value, bootSource = null;
if (action == 999) {
+
if (idx_d24ForceBootDevice.value > 0) { bootSource = ['Force CD/DVD Boot', 'Force PXE Boot', 'Force Hard-drive Boot', 'Force Diagnostic Boot'][idx_d24ForceBootDevice.value - 1]; }
} else {
if (action == 300 || action == 301) { bootSource = 'Force Diagnostic Boot'; }
if (action == 400 || action == 401) { bootSource = 'Force PXE Boot'; }
+ if (action == 600 || action == 601) {
+
+ bootSource = 'Force OCR UEFI HTTPS Boot';
+ }
}
+
+ // Resetting Force boot data in case it was changed so that it won't be used on the next power action
+ Q('idx_d24ForceBootDevice').value = 0;
+
console.log('ChangeBootOrder: ' + bootSource);
amtstack.CIM_BootConfigSetting_ChangeBootOrder((bootSource == null)?bootSource:'http://schemas.xmlsoap.org/ws/2004/08/addressinghttp://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_BootSourceSettingIntel(r) AMT: ' + bootSource + '', powerActionResponse3);
}
@@ -48374,11 +48739,16 @@ var CreateWebSocketWrapper = function (host, port, path, certhash) {
function powerActionResponse3(stack, name, response, status) {
console.log('powerActionResponse3(' + name + ',' + response + ',' + status + ')');
if (errcheck(status, stack)) return;
+ if (response.Body.ReturnValue!=0) {
+ messagebox("Change Boot Order", "Change Boot Order returns "+ response.Body.ReturnValueStr);
+ return;
+ }
+
//console.log("Performing Power State Change...");
statusbox("Power Action", "Performing power action...");
var action = d5actionSelect.value;
- if (action == 100 || action == 201 || action == 203 || action == 300 || action == 401) action = 2; // Power up
- if (action == 101 || action == 200 || action == 202 || action == 301 || action == 400) action = 10; // Reset
+ if (action == 100 || action == 201 || action == 203 || action == 300 || action == 401 || action == 601) action = 2; // Power up
+ if (action == 101 || action == 200 || action == 202 || action == 301 || action == 400 || action == 600) action = 10; // Reset
if (action == 104) action = 2; // Power on with Remote Secure Erase
if (action == 105) action = 10; // Reset with Remote Secure Erase
@@ -48502,7 +48872,7 @@ var CreateWebSocketWrapper = function (host, port, path, certhash) {
if (i != ii || j != jj) {
if (xx != '') { x += xx; xx = ' '; }
ii = i; jj = j;
- if (i != '') { xx += EscapeHtml(i + " / " + j); } else { xx += "Root"; }
+ if (i != '') { xx += EscapeHtml(i + ' / ' + j); } else { xx += "Root"; }
}
//var handle = "\"" + i + "\",\"" + j + "\",\"" + k + "\"";
var handle = '\"' + i + ((i != '') ? '/' : '') + j + ((j != '') ? '/' : '') + k + '\"';
@@ -48599,9 +48969,9 @@ var CreateWebSocketWrapper = function (host, port, path, certhash) {
} else {
x += ' ';
}
- x += ' ';
- x += ' ';
- x += ' ';
+ x += ' ';
+ x += ' ';
+ x += ' ';
x += ' ';
x += '
';
x += ' | '; }
function AddButton(v, f) { return ''; }
function AddButton2(v, f, s) { return ''; }
- function AddRefreshButton(f) { return ''; }
+ function AddRefreshButton(f) { return ''; }
function MoreStart() { return '▼ More
'; };
function MoreEnd() { return ' ▲ Less '; };
function getSelectedOptions(sel) { var opts = [], opt; for (var i = 0, len = sel.options.length; i < len; i++) { opt = sel.options[i]; if (opt.selected) { opts.push(opt.value); } } return opts; }
|