129 lines
5.5 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Copyright (C) 2007 Intel Corporation
Intel(R) Active Management Technology (Intel AMT):
A brief overview of the SDK's C++ WS-Management Developer's Package
Introduction:
-------------
The C++ WS-Management Developer's Package is intended to provide a foundation
for developing WS-Management client applications in C++. While the package was
created with Intel(R) AMT in mind, it is intended to provide a general solution
for communicating with any WS-Management server.
The project includes:
- The WsmanClient.h interface class defines a general API for WS-Management
communication. This includes the basic WS-Management routines Create, Get,
Put, Delete, Invoke and Enumerate. We offer no fewer than three different
implementations of this interface based on OpenWSMAN, gSoap and Microsoft
WinRM*, each with its advantages and disadvantages.
- The XML utility header files XMLTypes.h and XMLUtils.h provide the tools
for serializing and deserializing the auto generated CIM classes.
XMLTypes.h includes the definitions of several basic types used in the
CIM classes as well as a utility class for converting between XML strings
and basic CIM types. XMLUtils.h defines the XMLElement and XMLDoc
interfaces for writing and parsing XML data.
Below are more detailed descriptions of the different components.
The zip includes:
1) Bin folder: compiled dlls and libs, 32-bit and
64-bit files:
*CimOpenWsmanClient.lib
*CimWinRMClient.lib
*CPPCimFramework.dll
*CPPCimFramework.lib
*CPPCimFrameworkUntyped.dll
*CPPCimFrameworkUntyped.lib
2) Src folder:
a) C++ source code for the dlls\libs included in this package.
b) OpenWsman and Libxml2 sources and libs
How to Build:
-------------
a) Using provided .bat file
1. Download latest version of CMAKE, from https://cmake.org/download/ 
Place the CMAKE content under Src\Tools\cmake folder.
2. Run Build_WS-ManagementCPP.bat, located under the Src\WS-Management
folder.
b) Interactive build:
1. Run Visual Studio 2019.
2. Navigate to: File -> Open -> CMake
3. Select the specific CMakeLists.txt for the project you want to build.
OpenWsmanClient:
----------------
The OpenWsmanClient is a multiplatform (Windows and Linux) WS-Management client
based on the open source project OpenWSMAN (see http://www.openwsman.org/),
which is available under a BSD license. The OpenWSMAN lib supports server and
mutual authentication (remote and local) and hence provides a complete
solution for communicating WS-Management in both Linux and Windows with
WS-Management servers such as Intel AMT. The HTTP layer of the WS-Management
Communication is handled using CurlLib (MIT license) for Linux and winhttp for
Windows. The library also uses the open source libxml library (MIT license).
Below are instructions for compiling the OpenWSMAN library.
(Note that the package includes precompiled Windows Release and Debug libraries
in the Openwsman folder). To use the OpenWsmanClient WS-Management client
include the generated library as well as the OpenWsmanClient.h file.
The Package includes OpenWsman compiled binaries, you may also compile OpenWsman
on your own using Visual Studio (OpenWsmanLib.vcproj).
SoapWsmanClient (gSOAP):
-----------------------
The SoapWsmanClient is a multiplatform (Windows and Linux) WS-Management client
based on gSOAP. Call makewsdl.bat to generate C++ files from the xsd and wsdl
definitions in the Include->Wsdls directory.
These define the general structure of the basic WS-Management routines. The
input and output of these routines are handled as dom (xml) elements by gSOAP
(in a manner such that the gSOAP routines are unaware of the CIM objects that
they are handling). The SoapWsmanClient receives a soap struct pointer in
its constructor, so that the user is free to define all aspects of the
soap communication before passing the soap struct to the client.
Download gSOAP from https://sourceforge.net/projects/gsoap2/
These 2 .exe files located in gsoap\bin are needed for compilation:
* wsdl2h.exe
* soapcpp2.exe
Update GSOAP_PATH variable in makewsdl.bat to be the path to these .exe files.
WRMWsmanClient:
---------------
The WinRM based WS-Management client is intended for WinRM enabled Windows
platforms (see the MSDN website for an updated list). To use this client
you must first configure WinRM from the command shell (e.g. add the
target IP address to the list of trusted hosts and "set WinRM/config
@{AllowUnencrypted="true"}"). See the WinRM help for details. The
WRMWsmanClient implementation uses COM objects. This means that the
function CoInitilaize must be invoked (once) at the beginning of the
client application, and CoUninitialize at the its end. Note that to date
the WRMWsmanClient does not support the option of passing an
EndpointReference as a Selector (as it is unclear whether this option is
supported by WinRM).
Please find more details in the WinRM_CPP Readme, located under:
Src\WS-Management\CimWinRMClient
Error Handling:
---------------
In the Exception.h file, a GeneralWsmanException (extends std::exception)
class is defined as a base class for all of the exceptions defined in the
many components of the project (WsmanClientException, CIMXmlException and
CimClassException). The exception classes contain error messages as well as
as an error code from the list of error codes defined in Exception.h.
-------------------------------------------------------------------
* Other names and brands may be claimed as the property of others.