//----------------------------------------------------------------------------
//
// Copyright (c) Intel Corporation, 2011 - 2015 All Rights Reserved.
//
// File: GeneralInfoApi.cs
//
// Contents: Api code for Intel(R) Active Management Technology
// (Intel® AMT) GeneralInfo Sample.
//
// Notes: This sample demonstrates how to how to use various commands of
// the GeneralInfo service.
//
//----------------------------------------------------------------------------
using System;
using Intel.Management.Wsman;
using Connection;
using System.Security;
namespace GeneralInfo
{
public class GeneralInfoApi : Connection_setup
{
#region CONSTANTS
private const string SKU_STRING = "Sku";
private const string RESERVED_STRING = "Reserved";
private static readonly uint[] AMT_HIGHER_2_SKU_VERSION_VALUES = {0x00000001,0x00000002,0x00000004,0x00000008,
0x00000010,0x00000020,0x00000040,0x00000080,
0x00000100,0x00000200,0x00000400,0x00000800,
0x00001000,0x00002000,0x00004000,0x00008000,
0xFFFF0000};
private static readonly string[] AMT_HIGHER_2_SKU_VERSION_STRINGS = {"Reserved","Intel(r)QST","ASF","Intel(r)AMT",
"Intel(r)Standard Manageability","Intel(r)TPM","Reserved",
"Reserved","Intel(r)RPAT","Reserved","Reserved","Reserved",
"Reserved","Intel(r)AT-p","Corporate",
"Level III Manageability Upgrade","Reserved"};
private const uint ENABLED = 2;
private const uint HOST_NAME = 2;
private static readonly string[] KVM_ENABLED_STATE_STRINGS = {"Unknown", "Other", "Enabled", "Disabled",
"Shutting Down", "Not Applicable",
"Enabled but Offline", "In Test", "Deferred",
"Quiesce", "Starting"};
private static readonly string[] InstanceID = { "Flash", "Netstack", "AMTApps", "AMT", "Sku", "VendorID", "Build Number", "Recovery Version", "Recovery Build Num", "Legacy Mode" };
// AMT_RedirectionService states
private enum RedirectionServiceStates : int
{
NONE = 32768,
IDER,
SOL,
IDER_SOL,
}
private const string FIRST_VERSION_SUPPORTING_KVM = "6.0.0";
//Privacy levels
private enum PrivacyLevel
{
Default = 0,
Enhanced,
Extreme,
}
// Provisioning Mode Types
private enum ProvisioningModeTypes
{
ProvisioningModeCurrent = 0,
ProvisioningModeEnterprise,
ProvisioningModeSmallBusiness,
ProvisioningModeRemoteConnectivity,
}
// Provisioning State Types
private enum ProvisioningStateTypes
{
ProvisioningStatePre = 0,
ProvisioningStateIn,
ProvisioningStatePost,
}
// Password Model State Types
private enum PasswordModelStateTypes
{
PasswordModelCoupled = 0,
PasswordModelSeparate,
PasswordModelSeparateHash,
}
#endregion CONSTANTS
#region CONSTRUCTORS
// Creating the connection to the WSMan Client.
// Inheriting Connection details from Connection_setup class.
public GeneralInfoApi(string ip, string username, SecureString pwd, bool krb, MpsManager proxy, bool acceptSelfSignedCertificate = false)
: base(ip, username, pwd, krb, proxy, acceptSelfSignedCertificate)
{
}
public GeneralInfoApi(string ip, string username, SecureString pwd, string clientCert, bool krb, MpsManager proxy, bool acceptSelfSignedCertificate = false)
: base(ip, username, pwd, clientCert, krb, proxy, acceptSelfSignedCertificate)
{
}
#endregion CONSTRUCTORS
#region PUBLIC_FUNCTIONS
///
///
///
public void GetPrivacyLevel()
{
Console.WriteLine("---------------Get Privacy Level--------------");
string version = UtilitiesMethods.GetCoreVersion(wsmanClient);
if (UtilitiesMethods.CompareVersions(version, "7.0") < 0)
Console.WriteLine("This use case is supported from Intel AMT FW version 7.0 and above.");
else
{
IManagedReference generalSettingRef = wsmanClient.NewReference("SELECT * FROM AMT_GeneralSettings WHERE InstanceID='Intel(r) AMT: General Settings'");
IManagedInstance generalSettingInstance = generalSettingRef.Get();
IWsmanItem privacyLevel = generalSettingInstance.GetProperty("PrivacyLevel");
if (privacyLevel.Count != 0)
Console.WriteLine("Privacy Level: {0}\n", (PrivacyLevel)uint.Parse(privacyLevel.ToString()));
else
Console.WriteLine("Privacy Level is not supported");
}
}
///
/// Getting the host name.
///
public void GetHostName()
{
Console.WriteLine("---------------Get HostName--------------");
IManagedReference generalSettingRef = wsmanClient.NewReference("SELECT * FROM AMT_GeneralSettings WHERE InstanceID='Intel(r) AMT: General Settings'");
IManagedInstance generalSettingInstance = generalSettingRef.Get();
IWsmanItem hostName = generalSettingInstance.GetProperty("HostName");
Console.WriteLine("Intel AMT HostName: {0}\n", hostName.ToString());
}
///
/// Getting the administrator's ACL status.
///
public void GetAdminAclStatus()
{
Console.WriteLine("---------------Get Admin ACL Status--------------");
// Getting the AMT_AuthorizationService instance.
IManagedReference authorizationServiceRef = wsmanClient.NewReference("SELECT * FROM AMT_AuthorizationService WHERE Name='Intel(r) AMT Authorization Service'");
IManagedInstance inputObject = authorizationServiceRef.CreateMethodInput("GetAdminAclEntryStatus");
IManagedInstance outputObject = authorizationServiceRef.InvokeMethod(inputObject);
IWsmanItem returnValue = outputObject.GetProperty("ReturnValue");
if (returnValue.ToString().CompareTo("0") == 0)
{
IWsmanItem isDefault = outputObject.GetProperty("IsDefault");
if (isDefault.ToString().CompareTo("true") == 0)
Console.WriteLine("Admin password was never changed...");
Console.WriteLine("Intel AMT Admin ACL Status: {0}", returnValue.ToString());
Console.WriteLine("AdminACLEntrySatus IsDefault: {0}\n", isDefault.ToString());
}
}
///
/// Getting the administrator's network ACL status.
///
public void GetAdminNetAclStatus()
{
Console.WriteLine("---------------Get Admin Net ACL Status--------------");
IManagedReference authorizationServiceRef = wsmanClient.NewReference("SELECT * FROM AMT_AuthorizationService WHERE Name='Intel(r) AMT Authorization Service'");
IManagedInstance inputObject = authorizationServiceRef.CreateMethodInput("GetAdminNetAclEntryStatus");
IManagedInstance outputObject = authorizationServiceRef.InvokeMethod(inputObject);
IWsmanItem returnValue = outputObject.GetProperty("ReturnValue");
Console.WriteLine("Intel AMT Admin ACL Status: {0}\n", returnValue.ToString());
if (returnValue.ToString().CompareTo("0") == 0)
{
IWsmanItem isDefault = outputObject.GetProperty("IsDefault");
Console.WriteLine("AdminNetAclEntryStatus IsDefault: {0}", isDefault.ToString());
}
}
///
/// Getting audit provisioning record.
///
public void GetAuditProvisionRecord()
{
Console.WriteLine("---------------Get audit provisioning record---------------");
string version = UtilitiesMethods.GetCoreVersion(wsmanClient);
if (UtilitiesMethods.CompareVersions(version ,"6.1") < 0)
Console.WriteLine("This use case is supported from Intel AMT FW version 6.1 and above.");
else
{
IManagedInstance provisioningAuditRecordInstance = null;
try
{
IManagedReference provisioningAuditRecordRef = wsmanClient.NewReference("IPS_ProvisioningAuditRecord");
IWsmanEnumeration provisioningAuditRecordCollection = provisioningAuditRecordRef.Enumerate("http://schemas.dmtf.org/wbem/wsman/1/wsman/SelectorFilter", null);
if (provisioningAuditRecordCollection == null)
{
Console.WriteLine("No Audit Provisioning Record was found");
return;
}
foreach (IWsmanItem provisioningAuditRecordItem in provisioningAuditRecordCollection)
{
provisioningAuditRecordInstance = provisioningAuditRecordItem.Object;
}
}
catch (Exception e)
{
Console.WriteLine("Error occurred in GetAuditProvisionRecord. ");
if (e.Message == "No instance found.")
throw new Exception("Audit Provisioning Record is not supported");
throw e;
}
if (provisioningAuditRecordInstance != null)
if (provisioningAuditRecordInstance.SimpleName == "IPS_TLSProvisioningRecord")
{
Console.WriteLine("The provisioning type: TLS");
IWsmanItem provisioningItem = provisioningAuditRecordInstance.GetProperty("ProvisioningTLSMode");
Console.WriteLine("Provisioning TLS mode:{0}", provisioningItem.ToString());
provisioningItem = provisioningAuditRecordInstance.GetProperty("SecureDNS");
Console.WriteLine("Secure DNS:{0}", provisioningItem.ToString());
provisioningItem = provisioningAuditRecordInstance.GetProperty("HostInitiated");
Console.WriteLine("Host Initiated:{0}", provisioningItem.ToString());
provisioningItem = provisioningAuditRecordInstance.GetProperty("ProvServerFQDN");
Console.WriteLine("Provisioning Server FQDN:{0}", provisioningItem.ToString());
provisioningItem = provisioningAuditRecordInstance.GetProperty("SelectedHashData");
Console.WriteLine("Selected Hash Data:{0}", provisioningItem.ToString());
provisioningItem = provisioningAuditRecordInstance.GetProperty("SelectedHashType");
Console.WriteLine("Selected Hash Type:{0}", provisioningItem.ToString());
provisioningItem = provisioningAuditRecordInstance.GetProperty("AdditionalCaSerialNums");
Console.WriteLine("Additional CA Serial Numbers:{0}", provisioningItem.ToString());
provisioningItem = provisioningAuditRecordInstance.GetProperty("HashIsOemDefault");
Console.WriteLine("Hash is OEM Default:{0}", provisioningItem.ToString());
provisioningItem = provisioningAuditRecordInstance.GetProperty("IsTimeValid");
Console.WriteLine("Is Time Valid:{0}", provisioningItem.ToString());
provisioningItem = provisioningAuditRecordInstance.GetProperty("ProvServerIP");
Console.WriteLine("Provisioning Server IP:{0}", provisioningItem.ToString());
}
else if (provisioningAuditRecordInstance.SimpleName == "IPS_ManualProvisioningRecord")
Console.WriteLine("The provisioning type: Manual");
else if (provisioningAuditRecordInstance.SimpleName == "IPS_ClientProvisioningRecord")
Console.WriteLine("The provisioning type: Client");
else
Console.WriteLine("The provisioning type: Unknown");
}
}
///
/// Getting code versions.
///
public void GetCodeVersions()
{
Console.WriteLine("---------------Get Code Versions--------------");
// Get BIOS version.
// Traversing the CIM_BIOSElement instances using the managed host as a reference.
IManagedReference biosElementRef = wsmanClient.NewReference("SELECT * FROM CIM_BIOSElement WHERE Name='Primary BIOS'");
IManagedInstance biosElementInstance = biosElementRef.Get();
IWsmanItem version = biosElementInstance.GetProperty("Version");
IWsmanItem elementName = biosElementInstance.GetProperty("ElementName");
Console.WriteLine("Bios Version: {0}", version.ToString());
Console.WriteLine("Element Name: {0}", elementName.ToString());
foreach (string instID in InstanceID)
{
// Traversing the CIM_SoftwareIdentity instance representing the FW Core Version, using the managed host as a reference.
IManagedReference softwareIdentityRef = wsmanClient.NewReference("SELECT * FROM CIM_SoftwareIdentity WHERE InstanceID='" + instID + "'");
// Other InstanceID can be specified to display more details, such as Vendor ID.
IManagedInstance softwareIdentityInstance = softwareIdentityRef.Get();
IWsmanItem versionString = softwareIdentityInstance.GetProperty("VersionString");
int version1 = Convert.ToInt32(versionString.Count);
Console.WriteLine("{0}: {1} ", instID, versionString);
if (version1 > 0)
{
if (instID.CompareTo(SKU_STRING) == 0)
{
int version2 = -1;
version2 = Convert.ToInt32(versionString.ToString());
if (version2 != -1)
{
bool firstOccurance = true;
for (uint i = 0; i < AMT_HIGHER_2_SKU_VERSION_VALUES.Length; i++)
{
if ((version2 & AMT_HIGHER_2_SKU_VERSION_VALUES[i]) != 0)
{
if (AMT_HIGHER_2_SKU_VERSION_STRINGS[i].CompareTo(RESERVED_STRING) != 0)
{
if (firstOccurance)
{
Console.Write(" ({0}", AMT_HIGHER_2_SKU_VERSION_STRINGS[i]);
firstOccurance = false;
}
else
Console.Write(",\n {0}", AMT_HIGHER_2_SKU_VERSION_STRINGS[i]);
}
}
}
if (!firstOccurance)
Console.WriteLine(")");
}
}
}
//end version
}
}
///
/// Getting the provisioning mode.
///
public void GetProvisioningMode()
{
Console.WriteLine("---------------Get Provisioning Mode--------------");
// Getting the AMT_SetupAndConfigurationService instance.
IManagedReference setupAndConfigurationServiceRef = wsmanClient.NewReference("SELECT * FROM AMT_SetupAndConfigurationService WHERE Name='Intel(r) AMT Setup and Configuration Service'");
IManagedInstance setupAndConfigurationServiceInstance = setupAndConfigurationServiceRef.Get();
IWsmanItem provisioningMode = setupAndConfigurationServiceInstance.GetProperty("ProvisioningMode");
Console.Write("Provisioning Mode: ");
switch (Convert.ToInt16(provisioningMode.ToString()))
{
case (byte)ProvisioningModeTypes.ProvisioningModeCurrent:
Console.WriteLine("Current provisioning mode based on the Flash image settings\n");
break;
case (byte)ProvisioningModeTypes.ProvisioningModeEnterprise:
Console.WriteLine("Enterprise provisioning mode\n");
break;
case (byte)ProvisioningModeTypes.ProvisioningModeSmallBusiness:
Console.WriteLine("Small business provisioning mode\n");
break;
case (byte)ProvisioningModeTypes.ProvisioningModeRemoteConnectivity:
Console.WriteLine("Remote connectivity provisioning mode\n");
break;
default:
Console.WriteLine("Unknown.\n");
break;
}
}
///
/// Getting the provisioning state.
///
public void GetProvisioningState()
{
Console.WriteLine("---------------Get Provisioning State--------------");
// Getting the AMT_SetupAndConfigurationService instance.
IManagedReference setupAndConfigurationServiceRef = wsmanClient.NewReference("SELECT * FROM AMT_SetupAndConfigurationService WHERE Name='Intel(r) AMT Setup and Configuration Service'");
IManagedInstance setupAndConfigurationServiceInstance = setupAndConfigurationServiceRef.Get();
IWsmanItem provisioningState = setupAndConfigurationServiceInstance.GetProperty("ProvisioningState");
Console.Write("Provisioning State: ");
switch (Convert.ToInt16(provisioningState.ToString()))
{
case (byte)ProvisioningStateTypes.ProvisioningStatePre:
Console.WriteLine("Pre Provisioning state\n");
break;
case (byte)ProvisioningStateTypes.ProvisioningStatePost:
Console.WriteLine("Post Provisioning state\n");
break;
case (byte)ProvisioningStateTypes.ProvisioningStateIn:
Console.WriteLine("In Provisioning state\n");
break;
default:
Console.WriteLine("Unknown.\n");
break;
}
}
///
/// Getting the password model.
///
public void GetPasswordModel()
{
Console.WriteLine("---------------Get Password Model--------------");
// Getting the AMT_SetupAndConfigurationService instance.
IManagedReference setupAndConfigurationServiceRef = wsmanClient.NewReference("SELECT * FROM AMT_SetupAndConfigurationService WHERE Name='Intel(r) AMT Setup and Configuration Service'");
IManagedInstance setupAndConfigurationServiceInstance = setupAndConfigurationServiceRef.Get();
IWsmanItem passwordModel = setupAndConfigurationServiceInstance.GetProperty("PasswordModel");
Console.Write("Password Model: ");
switch (Convert.ToInt16(passwordModel.ToString()))
{
case (byte)PasswordModelStateTypes.PasswordModelCoupled:
Console.WriteLine("PasswordModelCoupled\n");
break;
case (byte)PasswordModelStateTypes.PasswordModelSeparate:
Console.WriteLine("PasswordModelSeparate\n");
break;
case (byte)PasswordModelStateTypes.PasswordModelSeparateHash:
Console.WriteLine("PasswordModelSeparateHash\n");
break;
default:
Console.WriteLine("unknown.\n");
break;
}
}
///
/// Getting the configuration server's information.
///
public void GetConfigServerInfo()
{
Console.WriteLine("---------------Get Config Server Info--------------");
// Getting the AMT_SetupAndConfigurationService instance.
IManagedReference remotePortRef = wsmanClient.NewReference("SELECT * FROM CIM_RemotePort WHERE Name='Intel(r) AMT Remote Port'");
// Retrieve the instance of CIM_RemotePort.
IManagedInstance remotePortInstance = remotePortRef.Get();
//Examine the infoFormat and accessInfo to see configuration server host name and IP Address.
IWsmanItem infoFormat = remotePortInstance.GetProperty("InfoFormat");
IWsmanItem accessInfo = remotePortInstance.GetProperty("AccessInfo");
//Examine portInfo for details of the port - the server listens, too.
IWsmanItem portInfo = remotePortInstance.GetProperty("PortInfo");
if ((Convert.ToUInt16(infoFormat.ToString())) == HOST_NAME)
Console.WriteLine("Host Name: {0}", accessInfo.ToString());
else
Console.WriteLine("Ip Address: {0}", accessInfo.ToString());
Console.WriteLine("Port: {0}\n", portInfo.ToString());
}
///
/// Getting the core version.
///
public void GetCoreVersion(ref string coreVersion)
{
Console.WriteLine("--------------Getting the Core version-------------");
IManagedReference softwareIdentityRef = wsmanClient.NewReference("SELECT * FROM CIM_SoftwareIdentity WHERE InstanceID='AMT FW Core Version'");
IManagedInstance softwareIdenetityInstance = softwareIdentityRef.Get();
IWsmanItem versionString = softwareIdenetityInstance.GetProperty("VersionString");
Console.WriteLine("Intel(R) AMT FW Core Version:{0}\n", versionString.ToString());
coreVersion = versionString.ToString();
}
///
/// Getting the core version.
///
public void GetCoreVersion()
{
Console.WriteLine(" ----------- Get Core version ------------");
IManagedReference softwareIdentityRef = wsmanClient.NewReference("SELECT * FROM CIM_SoftwareIdentity WHERE InstanceID='AMT FW Core Version'");
IManagedInstance softwareIdenetityInstance = softwareIdentityRef.Get();
IWsmanItem versionString = softwareIdenetityInstance.GetProperty("VersionString");
Console.WriteLine("Intel(R) AMT FW Core Version:{0}\n", versionString.ToString());
}
///
/// Getting the enabled interfaces.
///
public void GetEnabledInterfaces()
{
Console.WriteLine("---------------Get Enabled Interfaces--------------");
Console.WriteLine("Enabled interfaces: ");
IManagedReference webUIServiceRef = wsmanClient.NewReference("SELECT * FROM AMT_WebUIService WHERE Name='Intel(r) AMT Web Browser UI Service'");
// Getting the AMT_WebUIService instance.
IManagedInstance webUIServiceInstance = webUIServiceRef.Get();
IWsmanItem enabledState = webUIServiceInstance.GetProperty("EnabledState");
Console.WriteLine("\tWebUI: {0}", (Convert.ToUInt16(enabledState.ToString()) == ENABLED) ? "\tEnabled" : "\tDisabled");
IManagedReference redirectionServiceRef = wsmanClient.NewReference("SELECT * FROM AMT_RedirectionService WHERE Name='Intel(r) AMT Redirection Service'");
// Getting the AMT_RedirectionService instance.
IManagedInstance redirectionServiceInstance = redirectionServiceRef.Get();
enabledState = redirectionServiceInstance.GetProperty("EnabledState");
switch (Convert.ToUInt16(enabledState.ToString()))
{
case (int)RedirectionServiceStates.NONE:
Console.WriteLine("\tIDER: \tDisabled");
Console.WriteLine("\tSOL: \tDisabled");
break;
case (int)RedirectionServiceStates.IDER:
Console.WriteLine("\tIDER: \tEnabled");
Console.WriteLine("\tSOL: \tDisabled");
break;
case (int)RedirectionServiceStates.SOL:
Console.WriteLine("\tIDER: \tDisabled");
Console.WriteLine("\tSOL: \tEnabled");
break;
case (int)RedirectionServiceStates.IDER_SOL:
Console.WriteLine("\tIDER: \tEnabled");
Console.WriteLine("\tSOL: \tEnabled");
break;
default:
Console.WriteLine("\tUnknown state");
break;
}
string fwCoreVersion = "";
GetCoreVersion(ref fwCoreVersion);
if (UtilitiesMethods.CompareVersions(fwCoreVersion, FIRST_VERSION_SUPPORTING_KVM) >= 0)
{
// Traversing the AMT_RedirectionService instance using the managed system as EPR.
/*CIM_RedirectionService KvmRedirectionService = (CIM_RedirectionService)AssociationTraversalTypedUtils.GetAssociated(wsmanClient,
AssociationTraversalTypedUtils.DiscoverManagedHost(wsmanClient),
typeof(CIM_RedirectionService), typeof(CIM_HostedService));
*/
//Cross check if it gives the right results.
IManagedReference kvmRedirectionSAPRef = wsmanClient.NewReference("SELECT * FROM CIM_KVMRedirectionSAP WHERE Name='KVM Redirection Service Access Point'");
IManagedInstance kvmRedirectionSAPInstance = kvmRedirectionSAPRef.Get();
IWsmanItem enabledState1 = kvmRedirectionSAPInstance.GetProperty("EnabledState");
if (enabledState1.ToString().Length < KVM_ENABLED_STATE_STRINGS.Length)
{
Console.WriteLine("\tKVM: \t{0}", KVM_ENABLED_STATE_STRINGS[Convert.ToInt16(enabledState1.ToString())]);
}
}
}
///
/// Getting the security parameters.
/// This function is performed by default in the wired interface.
///
/// true- for performing the operation in the wireless. else- false
public void GetSecurityParameters(bool isWireless)
{
string fwVersion = UtilitiesMethods.GetCoreVersion(wsmanClient);
Console.WriteLine("---------------Get Security Parameters--------------");
// Getting the AMT_SetupAndConfigurationService instance.
IManagedReference setupAndConfiguration = wsmanClient.NewReference("SELECT * FROM AMT_SetupAndConfigurationService WHERE Name='Intel(r) AMT Setup and Configuration Service'");
IManagedInstance setupAndConfigurationInstance = setupAndConfiguration.Get();
Console.WriteLine("Enterprise mode: {0}", setupAndConfigurationInstance.GetProperty("ProvisioningMode").IsString.ToString());
//Obtain the current provisioning state:
IWsmanItem provisioningState = setupAndConfigurationInstance.GetProperty("ProvisioningState");
Console.Write("Provisioning state: ");
switch (Convert.ToInt16(provisioningState.ToString()))
{
case (byte)ProvisioningStateTypes.ProvisioningStatePre:
Console.WriteLine("Pre Provisioning state");
break;
case (byte)ProvisioningStateTypes.ProvisioningStatePost:
Console.WriteLine("Post Provisioning state");
break;
case (byte)ProvisioningStateTypes.ProvisioningStateIn:
Console.WriteLine("In Provisioning state");
break;
default:
Console.WriteLine("unknown.");
break;
}
//Console.WriteLine(Convert.ToInt16(setupAndConfigurationInstance.GetProperty("ProvisioningMode").ToString()) == (byte)ProvisioningModeTypes.ProvisioningModeEnterprise);
// Traversing the AMT_TLSProtocolEndpoint instances using the Intel AMT as a reference.
IManagedReference tlsSettingDataRef = wsmanClient.NewReference("SELECT * FROM AMT_TLSSettingData WHERE InstanceID='Intel(r) AMT 802.3 TLS Settings'");
IManagedInstance tlsSettingDataInstance = tlsSettingDataRef.Get();
IWsmanItem enabledState = tlsSettingDataInstance.GetProperty("Enabled");
Console.WriteLine("TLS Enabled: {0}", enabledState.ToString());
// Traversing the AMT_CryptographicCapabilities instance using the Intel AMT as a reference.
IManagedReference cryptographicCapabilitiesRef = wsmanClient.NewReference("SELECT * FROM AMT_CryptographicCapabilities WHERE InstanceID='Intel(r) AMT: Cryptographic Capabilities 0'");
IManagedInstance cryptographicCapabilitiesInstance = cryptographicCapabilitiesRef.Get();
IWsmanItem hardwareAcceleration = cryptographicCapabilitiesInstance.GetProperty("HardwareAcceleration");
Console.WriteLine("HW CryptoEnabled: {0}", hardwareAcceleration.IsString.ToString());
//Console.WriteLine(CryptographicCapabilities.HardwareAcceleration == 1);
// Traversing the AMT_GeneralSettings instance using Intel AMT as a reference.
IManagedReference generalSettings = wsmanClient.NewReference("SELECT * FROM AMT_GeneralSettings WHERE InstanceID='Intel(r) AMT: General Settings'");
IManagedInstance generalSettingsInstance = generalSettings.Get();
//Check for the state of the Network Interface.
enabledState = generalSettingsInstance.GetProperty("NetworkInterfaceEnabled");
Console.WriteLine("Network Interface Enabled:{0}", enabledState.ToString());
// Getting the AMT_RedirectionService instance.
IManagedReference redirectionServiceRef = wsmanClient.NewReference("SELECT * FROM AMT_RedirectionService WHERE Name='Intel(r) AMT Redirection Service'");
IManagedInstance redirectionServiceInstance = redirectionServiceRef.Get();
//Check for the state of the IDER.
enabledState = redirectionServiceInstance.GetProperty("EnabledState");
Console.Write("IDER Enabled: ");
bool isIder = ((int)RedirectionServiceStates.IDER == Convert.ToInt64(enabledState.ToString())) ||
((int)RedirectionServiceStates.IDER_SOL == Convert.ToInt64(enabledState.ToString()));
Console.WriteLine(isIder.ToString());
// Removed this code because CIM_SoftwareInstallationService removed from 7.0 MOFs.
//// Getting the CIM_SoftwareInstallationService instance
//CIM_SoftwareInstallationService SoftwareInstallationService = (CIM_SoftwareInstallationService)GetServiceInstance(typeof(CIM_SoftwareInstallationService));
//Console.Write("FW UpdateEnabled: ");
//Console.WriteLine(SoftwareInstallationService.EnabledState == ENABLED);
// Traversing the CIM_EthernetPort instance using Intel AMT as a reference
IManagedReference ethernetPortSettingsRef = wsmanClient.NewReference("SELECT * FROM AMT_EthernetPortSettings WHERE InstanceID='Intel(r) AMT Ethernet Port Settings " + (isWireless ? "1'" : "0'"));
// “InstanceID” is equal to either “Intel(r) AMT Ethernet Port Settings 0” (wired interface)
// or “Intel(r) AMT Ethernet Port Settings 1” (wireless interface).
if (UtilitiesMethods.CompareVersions(fwVersion, "9.5") >= 0 && !isWireless)
Console.WriteLine(
"\nGetting Ethernet Port Settings information (wired) is not supported in FW versions greater than 9.5.\tTo use wireless please add the 'wireless' argument...");
else if (UtilitiesMethods.CompareVersions(fwVersion, "9.5") < 0 || (UtilitiesMethods.CompareVersions(fwVersion, "9.5") >= 0 && isWireless)) // version that greater than 9.5 is not supported in a lan-less machine.
{
IManagedInstance ethernetPortSettingsInstance = ethernetPortSettingsRef.Get();
IWsmanItem linkIsUp = ethernetPortSettingsInstance.GetProperty("LinkIsUp");
IWsmanItem macAddress = ethernetPortSettingsInstance.GetProperty("MACAddress");
IWsmanItem instanceID = ethernetPortSettingsInstance.GetProperty("InstanceID");
Console.Write("{0} ({1}) - Link Is Up: ", instanceID.ToString(), macAddress.ToString());
Console.WriteLine(linkIsUp.ToString());
}
}
public void GetSecurityParameters()
{
GetSecurityParameters(false);
}
#endregion
}
}