Use of personal devices for work, as well as employees working outside the office, may be changing how your organization manages devices. Certain parts of your organization might require deep, granular control over devices, while other parts might seek lighter, scenario-based management that empowers the modern workforce. Windows 10 offers the flexibility to respond to these changing requirements, and can easily be deployed in a mixed environment. You can shift the percentage of Windows 10 devices gradually, following the normal upgrade schedules used in your organization.
Your organization might have considered bringing in Windows 10 devices and downgrading them to Windows 7 until everything is in place for a formal upgrade process. While this may appear to save costs due to standardization, greater savings can come from avoiding the downgrade and immediately taking advantage of the cost reductions Windows 10 can provide. Because Windows 10 devices can be managed using the same processes and technology as other previous Windows versions, it’s easy for versions to coexist.
Your organization can support various operating systems across a wide range of device types, and manage them through a common set of tools such as Microsoft Endpoint Configuration Manager, Microsoft Intune, or other third-party products. This “managed diversity” enables you to empower your users to benefit from the productivity enhancements available on their new Windows 10 devices (including rich touch and ink support), while still maintaining your standards for security and manageability. It can help you and your organization benefit from Windows 10 much faster.
This six-minute video demonstrates how users can bring in a new retail device and be up and working with their personalized settings and a managed experience in a few minutes, without being on the corporate network. It also demonstrates how IT can apply policies and configurations to ensure device compliance.
The video demonstrates the configuration process using the classic Azure portal, which is retired. Customers should use the new Azure portal. Learn how use the new Azure portal to perform tasks that you used to do in the classic Azure portal.
This topic offers guidance on strategies for deploying and managing Windows 10, including deploying Windows 10 in a mixed environment. The topic covers management options plus the four stages of the device lifecycle:
Содержание
- Reviewing the management options with Windows 10
- Deployment and Provisioning
- Identity and Authentication
- Settings and Configuration
- Updating and Servicing
- Next steps
- Windows System Resource Manager Overview
- Role/Feature description
- Practical applications
- Methods of resource management
- Built-in resource management policies
- Custom resource management
- Removed or deprecated functionality
- Knowledge Management Tools
- Looking for Knowledge Management Software?
- Knowledge Management
- Looking for a Knowledge Management solution?
- Introducing Knowledge Management
- Implementing knowledge management thus has several dimensions including:
- 8 Steps to Implementing a Knowledge Management Program at Your Organization
- 5 Core Considerations for a Knowledge Management Program
- Prepare for Implementation Challenges
- 8 Steps to Knowledge Management Implementation
- Step 1: Establish Knowledge Management Program Objectives
- Step 2: Prepare for Change
- Step 3: Define a High-Level Process as a Foundation
- Step 4: Determine and Prioritize Technology Needs
- Step 5: Assess Current State
- Step 6: Build a Knowledge Management Implementation Roadmap
- Step 7: Implementation
- Step 8: Measure and Improve the Knowledge Management Program
- The Power of Knowledge Management
Reviewing the management options with Windows 10
Windows 10 offers a range of management options, as shown in the following diagram:
As indicated in the diagram, Microsoft continues to provide support for deep manageability and security through technologies like Group Policy, Active Directory, and Microsoft Configuration Manager. It also delivers a “mobile-first, cloud-first” approach of simplified, modern management using cloud-based device management solutions such as Microsoft Enterprise Mobility + Security (EMS). Future Windows innovations, delivered through Windows as a Service, are complemented by cloud services like Microsoft Intune, Azure Active Directory, Azure Information Protection, Office 365, and the Microsoft Store for Business.
Deployment and Provisioning
With Windows 10, you can continue to use traditional OS deployment, but you can also “manage out of the box.” To transform new devices into fully-configured, fully-managed devices, you can:
Avoid reimaging by using dynamic provisioning, enabled by a cloud-based device management services such as Microsoft Autopilot or Microsoft Intune.
Create self-contained provisioning packages built with the Windows Configuration Designer.
Use traditional imaging techniques such as deploying custom images using Microsoft Endpoint Configuration Manager.
You have multiple options for upgrading to Windows 10. For existing devices running Windows 7 or Windows 8.1, you can use the robust in-place upgrade process for a fast, reliable move to Windows 10 while automatically preserving all the existing apps, data, and settings. This can mean significantly lower deployment costs, as well as improved productivity as end users can be immediately productive – everything is right where they left it. Of course, you can also use a traditional wipe-and-load approach if you prefer, using the same tools that you use today with Windows 7.
Identity and Authentication
You can use Windows 10 and services like Azure Active Directory in new ways for cloud-based identity, authentication, and management. You can offer your users the ability to “bring your own device” (BYOD) or to “choose your own device” (CYOD) from a selection you make available. At the same time, you might be managing PCs and tablets that must be domain-joined because of specific applications or resources that are used on them.
You can envision user and device management as falling into these two categories:
Corporate (CYOD) or personal (BYOD) devices used by mobile users for SaaS apps such as Office 365. With Windows 10, your employees can self-provision their devices:
For corporate devices, they can set up corporate access with Azure AD Join. When you offer them Azure AD Join with automatic Intune MDM enrollment, they can bring devices into a corporate-managed state in one step, all from the cloud.
Azure AD Join is also a great solution for temporary staff, partners, or other part-time employees. These accounts can be kept separate from the on-premises AD domain but still access needed corporate resources.
Likewise, for personal devices, employees can use a new, simplified BYOD experience to add their work account to Windows, then access work resources on the device.
Domain joined PCs and tablets used for traditional applications and access to important resources. These may be traditional applications and resources that require authentication or accessing highly sensitive or classified resources on-premises. With Windows 10, if you have an on-premises Active Directory domain that’s integrated with Azure AD, when employee devices are joined, they automatically register with Azure AD. This provides:
Single sign-on to cloud and on-premises resources from everywhere
Conditional access to corporate resources based on the health or configuration of the device
Domain joined PCs and tablets can continue to be managed with the Configuration Manager client or Group Policy.
For more information about how Windows 10 and Azure AD optimize access to work resources across a mix of devices and scenarios, see Using Windows 10 devices in your workplace.
As you review the roles in your organization, you can use the following generalized decision tree to begin to identify users or devices that require domain join. Consider switching the remaining users to Azure AD.
Settings and Configuration
Your configuration requirements are defined by multiple factors, including the level of management needed, the devices and data managed, and your industry requirements. Meanwhile, employees are frequently concerned about IT applying strict policies to their personal devices, but they still want access to corporate email and documents. With Windows 10, you can create a consistent set of configurations across PCs, tablets, and phones through the common MDM layer.В
MDM: MDM gives you a way to configure settings that achieve your administrative intent without exposing every possible setting. (In contrast, Group Policy exposes fine-grained settings that you control individually.) One benefit of MDM is that it enables you to apply broader privacy, security, and application management settings through lighter and more efficient tools. MDM also allows you to target Internet-connected devices to manage policies without using GP that requires on-premises domain-joined devices. This makes MDM the best choice for devices that are constantly on the go.
Group Policy and Microsoft Endpoint Configuration Manager: Your organization might still need to manage domain joined computers at a granular level such as Internet Explorer’s 1,500 configurable Group Policy settings. If so, Group Policy and Configuration Manager continue to be excellent management choices:
Group Policy is the best way to granularly configure domain joined Windows PCs and tablets connected to the corporate network using Windows-based tools. Microsoft continues to add Group Policy settings with each new version of Windows.
Configuration Manager remains the recommended solution for granular configuration with robust software deployment, Windows updates, and OS deployment.
Updating and Servicing
With Windows as a Service, your IT department no longer needs to perform complex imaging (wipe-and-load) processes with each new Windows release. Whether on current branch (CB) or current branch for business (CBB), devices receive the latest feature and quality updates through simple – often automatic – patching processes. For more information, see Windows 10 deployment scenarios.
MDM with Intune provide tools for applying Windows updates to client computers in your organization. ConfigurationВ Manager allows rich management and tracking capabilities of these updates, including maintenance windows and automatic deployment rules.
Next steps
There are a variety of steps you can take to begin the process of modernizing device management in your organization:
Assess current management practices, and look for investments you might make today. Which of your current practices need to stay the same, and which can you change? Specifically, what elements of traditional management do you need to retain and where can you modernize? Whether you take steps to minimize custom imaging, re-evaluate settings management, or reassesses authentication and compliance, the benefits can be immediate. You can use the MDM Migration Analysis Tool (MMAT) to help determine which Group Policies are set for a target user/computer and cross-reference them against the list of available MDM policies.
Assess the different use cases and management needs in your environment. Are there groups of devices that could benefit from lighter, simplified management? BYOD devices, for example, are natural candidates for cloud-based management. Users or devices handling more highly regulated data might require an on-premises Active Directory domain for authentication. Configuration Manager and EMS provide you the flexibility to stage implementation of modern management scenarios while targeting different devices the way that best suits your business needs.
Review the decision trees in this article. With the different options in Windows 10, plus Configuration Manager and Enterprise Mobility + Security, you have the flexibility to handle imaging, authentication, settings, and management tools for any scenario.
Optimize your existing investments. On the road from traditional on-premises management to modern cloud-based management, take advantage of the flexible, hybrid architecture of Configuration Manager and Intune. Starting with Configuration Manager 1710, co-management enables you to concurrently manage Windows 10 devices by using both Configuration Manager and Intune. See these topics for details:
Источник
Windows System Resource Manager Overview
Applies To: Windows Server 2012
You can use Windows System Resource Manager to allocate processor and memory resources to applications, users, Remote Desktop Services sessions, and Internet Information Services (IIS) application pools.
With Windows System Resource Manager for the Windows ServerВ® 2012 operating system, you can manage server processor and memory usage with standard or custom resource policies. Managing your resources can help ensure that all the services provided by a single server are available on an equal basis or that your resources will always be available to high-priority applications, services, or users.
Windows System Resource Manager only manages processor resources when the combined processor load is greater than 70 percent. This means that it does not actively limit the resources that can be used by each consumer when processor load is low. When there is contention for processor resources, resource allocation policies help ensure minimum resource availability based on the management profile that you define.
Role/Feature description
You can use Windows System Resource Manager to:
Manage system resources (processor and memory) with preconfigured policies, or create custom policies that allocate resources per process, per user, per Remote Desktop Services session, or per Internet Information Services (IIS) application pool.
Use calendar rules to apply different policies at different times without manual intervention or reconfiguration.
Automatically select resource policies that are based on server properties and events (such as cluster events or conditions) or changes to installed physical memory or number of processors.
Collect resource usage data locally or in a custom SQL database. Resource usage data from multiple servers can be consolidated on a single computer running Windows System Resource Manager.
Create a computer group to help organize Remote Desktop Session Host servers that you want to manage. Policies can easily be exported or modified for an entire computer group.
Practical applications
Because Windows ServerВ 2008В R2 is designed to give as many resources as possible to non-operating system tasks, a server running a single role usually does not require resource management. However, when multiple applications and services are installed on a single server, they are not aware of competing processes. An unmanaged application or service will typically use all available resources to complete a task. Thus, it is important to use a tool such as Windows System Resource Manager to manage system resources on multipurpose servers. Using Windows System Resource Manager provides two key benefits:
More services can run on a single server because service availability can be improved through dynamically managed resources.
High-priority users or system administrators can access the system even during times of maximum resource load.
Methods of resource management
Windows System Resource Manager includes five built-in resource management policies that you can use to quickly implement management. In addition, you can create custom resource management policies to meet your specific needs.
Built-in resource management policies
You can enable built-in resource management policies by selecting the type of policy to use. No further configuration is required.
When the Equal_Per_Process resource allocation policy is managing the system, each running process is given equal treatment. For example, if a server that is running ten processes reaches 70 percent processor utilization, Windows System Resource Manager will limit each process to using 10 percent of the processor resources while they are in contention. Note that resources not used by low utilization processes will be allocated to other processes.
When the Equal_Per_User resource allocation policy is managing the system, processes are grouped according to the user account that is running them, and each of these process groups is given equal treatment. For example, if four users are running processes on the server, each user will be allocated 25 percent of the system resources to complete those processes. A user running a single application is allocated the same resources as a user running several applications. This policy is especially useful for application servers.
When the Equal_Per_Session resource allocation policy is managing the system, resources are allocated on an equal basis for each session connected to the system. This policy is for use with RD Session Host servers.
Equal per IIS application pool
When the Equal_Per_IISAppPool resource allocation policy is managing the system, each running IIS application pool is given equal treatment, and applications that are not in an IIS application pool can only use resources that are not being consumed by IIS application pools.
Weighted Remote Sessions
When the Weighted_Remote_Sessions resource allocation policy is managing the system, the processes are grouped according to the priority assigned with the user account. For example, if three users are remotely connected, the user assigned Premium priority will receive highest priority access to the CPU, the user assigned Standard priority will receive second priority to the CPU, and the user assigned Basic priority will receive lowest priority to the CPU. This policy is for use with RD Session Host servers.
When Weighted_Remote_Sessions is set as the managing policy, system management is delegated to the Windows Server 2012 scheduler, and Windows System Resource Manager only profiles the system. Setting or removing Weighted_Remote_Sessions as the managing policy requires a restart of the computer imposed by the kernel.
Custom resource management
You can use custom resource management methods to identify resource users and allocate resources to them based on your own criteria.
Process matching criteria
Enable you to select services or applications to be managed by resource allocation policy rules. You can choose by file name or command, or you can specify users or groups. For example, you could create a process matching criterion that applies management to the application iexplore.exe when it is run by the user Administrator.
Resource allocation policies
Allocate processor and memory resources to processes that are specified by the process matching criteria that you create.
Exclude applications, services, users, or groups from management by Windows System Resource Manager.
You can also use command-line path matching in a resource allocation policy to exclude an application from management by only that policy.
Use a calendar interface to control one-time events or recurring changes to resource allocation. Different resource allocation policies can be active at different times of day, on different days of the week, or according to other scheduling paradigms.
Conditional policy application
Automatically switch resource allocation policies in response to certain system events (such as installing new memory or additional processors, starting or stopping a node, or changing the availability of a resource group in a cluster).
Removed or deprecated functionality
Windows System Resource Manager (WSRM) is deprecated beginning with Windows ServerВ® 2012. You should begin planning now to use alternate methods for any applications, code, or scenarios that depend on this feature. Windows System Resource ManagerВ is an administrative tool that controls how CPU and memory resources are allocated. For more information, see. Deprecated Features for Windows 7 and Windows Server 2008 R2
Источник
Looking for Knowledge Management Software?
Knowledge Management
This is a knowledge management site covering the theories, frameworks, models, tools, and supporting disciplines that are relevant to both the student and the practitioner. The goal of this site is to provide a comprehensive overview of knowledge management by examining its objectives, scope, strategy, best practices, knowledge management tools, and so on. The site is structured very much like a textbook, with introductory concepts at the top, more subject-specific discussions in the latter half.
Looking for a
Knowledge Management solution?
Introducing Knowledge Management
Knowledge management is essentially about getting the right knowledge to the right person at the right time. This in itself may not seem so complex, but it implies a strong tie to corporate strategy, understanding of where and in what forms knowledge exists, creating processes that span organizational functions, and ensuring that initiatives are accepted and supported by organizational members. Knowledge management may also include new knowledge creation, or it may solely focus on knowledge sharing, storage, and refinement. For a more comprehensive discussion and definition, see my knowledge management definition.
It is important to remember that knowledge management is not about managing knowledge for knowledge’s sake. The overall objective is to create value and leverage and refine the firm’s knowledge assets to meet organizational goals.
Implementing knowledge management thus has several dimensions including:
In the past, failed initiatives were often due to an excessive focus on primitive knowledge management tools and systems, at the expense of other areas. While it is still true that KM is about people and human interaction, KM systems have come a long way and have evolved from being an optional part of KM to a critical component. Today, such systems can allow for the capture of unstructured thoughts and ideas, can create virtual conferencing allowing close contact between people from different parts of the world, and so on. This issue will also be addressed throughout the site, and particularly in the knowledge management strategy section.
At this point, the articles presented on this site focus on the first five dimensions. For now at least, the political dimension is beyond the scope of this site.
Throughout the site, I will explain and discuss known theories, occasionally contributing with some of my own frameworks. I will also discuss the potential role of knowledge management systems from a broad perspective, and in the section on KM tools I will provide specific advice on this topic. I have tried to organize the site as logically as possible, moving from a general introduction to knowledge and KM to introducing key subjects like organizational memory, learning, and culture. The later sections discuss several models and frameworks as well as knowledge management initiatives, strategy, and systems, before finally presenting an overview of various tools and techniques.
If you’re thinking of implementing a knowledge base for your organization, we strongly recommend using Helpjuice knowledge base software as your platform
Источник
8 Steps to Implementing a Knowledge Management Program at Your Organization
A winning knowledge management program increases staff productivity, product and service quality, and deliverable consistency by capitalizing on intellectual and knowledge-based assets. However, implementation can be a challenge.
Eager to reap the benefits, many organizations leap into a knowledge management solution (e.g. document management, data mining, blogging, and community forums) without first considering the objectives they wish to fulfill or how the organization will adopt and follow best practices for managing its knowledge assets long term.
The key to long-term success is a more measured and phased approach.
5 Core Considerations for a Knowledge Management Program
A successful knowledge management program will consider these five areas:
Prepare for Implementation Challenges
Implementing a knowledge management program is no easy feat. Even with the best planning, prepare to encounter and work around obstacles.
Some common challenges you may want to prepare for include:
8 Steps to Knowledge Management Implementation
This eight-step approach will help you plan for common challenges, minimize the risks, and maximize the rewards.
This approach was developed based on tried-and-true activities for implementing any new organizational program. The early steps emphasize strategy, planning and requirements gathering; the later steps focus on execution and continual improvement.
Step 1: Establish Knowledge Management Program Objectives
Before selecting a tool, defining a process, and developing workflows, envision and articulate the ideal end state. To establish the appropriate program objectives, identify and document the business problems that need resolution and the business drivers that will provide momentum and justification for the implementation.
Document both short-term and long-term objectives that address the business problems and support the business drivers. Short-term objectives should seek to provide validation that the program is on the right path while long-term objectives will help to create and communicate the big picture.
Step 2: Prepare for Change
Knowledge management is more than just an application of technology — it’s a culture change. Employees will likely have to rethink the way they share the knowledge they develop and possess.
One common hurdle to increasing knowledge sharing is that companies primarily reward individual performance. This practice promotes a «knowledge is power» behavior that contradicts a knowledge-sharing, knowledge-driven culture.
Successfully implementing a new knowledge management program may require changes within the organization’s norms and shared values; changes that some people might resist or even attempt to quash. To minimize the negative impact, prepare to manage cultural change.
Recruit knowledge-management champions throughout the organization who will encourage knowledge sharing behaviors within their departments and provide valuable feedback to the implementation team.
Step 3: Define a High-Level Process as a Foundation
Laying out a high-level knowledge management process is a key step for effective implementation. Beginning with a high-level process will help you progressively develop and hone detailed procedures throughout steps four, five, and six. Keep in mind: the people who will be the users and contributors of knowledge should be part of this conversation. The fully developed process should be finalized and approved prior to step seven (implementation).
Organizations that overlook or loosely define the knowledge management process will not realize the full potential of their knowledge management objectives. How knowledge is identified, captured, categorized and disseminated will be ad hoc at best. Common knowledge management best practices to consider in your plan include: knowledge strategy, creation, identification, classification, capture, validation, transfer, maintenance, archival, measurement and reporting.
Step 4: Determine and Prioritize Technology Needs
It’s time to assess what kind of technology will enhance and automate your knowledge management related activities. You can determine and prioritize your knowledge management technology needs based on your program objectives established in step one and the process controls and criteria you defined in step three.
The marketplace for knowledge management solutions is vast and diverse; it is imperative to know the primary providers, understand the cost and benefit of each type of technology, and figure out how each solution could help—or hinder—you from reaching your objectives.
Gain an understanding of what employees use today and what is working and not working for them. Don’t be too quick to purchase a new technology without first determining if your existing technologies are already meeting your needs. You can also wait to make costly technology decisions after the knowledge management program is well underway if there is broad support and a need for enhanced computing and automation.
Step 5: Assess Current State
After you have established your program objectives, prepared for cultural changes, defined a high-level process, and determined and prioritized your technology needs, you can assess the current state of knowledge management within your organization.
The assessment should cover the five core knowledge management components: people, processes, technology, structure and culture. A typical assessment should provide an overview of the current state, the gaps between the current and desired states, and the recommendations for closing those gaps.
These recommendations will be the foundation for the roadmap in step six.
Step 6: Build a Knowledge Management Implementation Roadmap
With the current-state assessment in hand, it is time to build the implementation roadmap for your knowledge management program. But before going too far, you should re-confirm senior leadership’s support and commitment, as well as the funding to implement and maintain the knowledge management program. Without these prerequisites, your efforts will be futile. Having solid evidence of your organization’s shortcomings, via the assessment, should drive the urgency rate up.
Having a strategy on how to overcome the shortcomings will be critical in gaining leadership’s support and getting the funding you will need. This strategy can be presented as a roadmap of related projects, each addressing specific gaps identified by the assessment. The roadmap can span months and years and illustrate key milestones and dependencies. A good roadmap will yield some short-term wins in the first step of projects, which will bolster support for subsequent steps.
As time progresses, continue to review and evolve the roadmap based upon the changing economic conditions and business drivers. You will undoubtedly gain additional insight through the lessons learned from earlier projects that can be applied to future projects as well.
Step 7: Implementation
Implementing a knowledge management program and maturing the overall effectiveness of your organization will require significant personnel resources and funding. Be prepared for the long haul, but make sure that you’re making incremental advances and celebrate them. As long as there the value and benefits of the developing program are recognized, there should be little resistance to continue investing in knowledge management.
With that said, it’s time for the rubber to meet the road. You know what the objectives are. You have properly mitigated cultural issues. You’ve got the processes and technologies that will enable and launch your knowledge management program. You know what the gaps are and have a roadmap to tell you how to address them.
As you advance through each step of the roadmap, make sure you are realizing your short-term wins. Without them, your program may lose momentum and the support of key stakeholders.
Step 8: Measure and Improve the Knowledge Management Program
How will you know your knowledge management investments are working? You will need a way to measure your effectiveness and compare to anticipated results. If possible, establish some baseline measurements in order to capture the before shot of the organization’s performance prior to implementing the knowledge management program. Then, after implementation, trend and compare the new results to the old results to see how performance has improved.
Don’t be discouraged if the benefits are not as obvious as you would have anticipated. It will take time for the organization to become proficient with the new processes and improvements. Over time, the results should follow suit.
When deciding upon the appropriate metrics to measure your organization’s progress, establish a balanced scorecard that provides metrics in the areas of performance, quality, compliance and value. The key point behind establishing a knowledge management balanced scorecard is that it provides valuable insight into what’s working and what’s not. You can then take the necessary actions to mitigate compliance, performance, quality, and value gaps, thus improving the overall efficacy of the knowledge management program.
The Power of Knowledge Management
Implementing a complete knowledge management program takes time and resources, however, the results can be impressive. You can also minimize risk by taking a phased approach that gives beneficial returns at each step.
Organizations that have made this kind of investment in knowledge management realize tangible results quickly. They add to their top and bottom lines through faster cycle times, enhanced efficiency, better decision making and greater use of tested solutions across the enterprise.
An earlier version of this article was published in CIO Update.
Источник
Adblock
detector
From Wikipedia, the free encyclopedia
Original author(s) | Microsoft |
---|---|
Developer(s) | Microsoft |
Operating system | Microsoft Windows |
Platform | IA-32, x86-64, and ARM (historically Itanium, DEC Alpha, MIPS, and PowerPC) |
Type | Systems management |
License | Proprietary |
Website | docs.microsoft.com/en-us/previous-versions/windows/desktop/wmi_v2/windows-management-infrastructure |
Windows Management Instrumentation (WMI) consists of a set of extensions to the Windows Driver Model that provides an operating system interface through which instrumented components provide information and notification. WMI is Microsoft’s implementation of the Web-Based Enterprise Management (WBEM) and Common Information Model (CIM) standards from the Distributed Management Task Force (DMTF).
WMI allows scripting languages (such as VBScript or Windows PowerShell) to manage Microsoft Windows personal computers and servers, both locally and remotely. WMI comes preinstalled in Windows 2000 and in newer Microsoft OSes. It is available as a download for Windows NT and[1] Windows 95 to Windows 98.[2]
Microsoft also provides a command-line interface to WMI called Windows Management Instrumentation Command-line (WMIC).[3]
Purpose of WMI[edit]
The purpose of WMI is to define a proprietary set of environment-independent specifications which allow management information to be shared between management applications. WMI prescribes enterprise management standards and related technologies for Windows that work with existing management standards, such as Desktop Management Interface (DMI) and SNMP. WMI complements these other standards by providing a uniform model. This model represents the managed environment through which management data from any source can be accessed in a common way.
Development process[edit]
Because WMI abstracts the manageable entities with CIM and a collection of providers, the development of a provider implies several steps. The major steps can be summarized as follows:
- Create the manageable entity model
- Define a model
- Implement the model
- Create the WMI provider
- Determine the provider type to implement
- Determine the hosting model of the provider
- Create the provider template with the ATL wizard
- Implement the code logic in the provider
- Register the provider with WMI and the system
- Test the provider
- Create consumer sample code.
Importance of WMI providers[edit]
Since the release of the first WMI implementation during the Windows NT 4.0 SP4 era (as an out-of-band download), Microsoft has consistently added WMI providers to Windows:
- Under Windows NT 4.0, Microsoft had roughly 15 WMI providers available once WMI was installed
- When Windows 2000 was released, there were 29 WMI providers as part of the operating system installation
- With the release of Windows Server 2003, Microsoft included in the platform more than 80 WMI providers
- Windows Vista includes 13 new WMI providers,[4] taking the number close to around 100 in all
- Windows Server 2008 includes more providers, including providers for IIS 7, PowerShell and virtualization
- Windows 10 includes 47 providers for the Mobile Device Management (MDM) service.[5]
Many customers[which?] have interpreted the growth in numbers of providers as a sign that WMI has become at Microsoft the «ubiquitous» management layer of Windows, even if Microsoft has never made this commitment explicit.
Because of a constant increasing exposure of management data through WMI in Windows, people in the IT systems management field started to develop scripts and automation procedures based on WMI.[citation needed] Beyond the scripting needs, most leading management-software packages, such as MOM, SCCM, ADS, HP OpenView for Windows (HPOV), BMC Software or CA, Inc. are WMI-enabled and capable of consuming and providing WMI information through various User Interfaces. This enables administrators and operators not capable of scripting or programming on top of WMI to enjoy the benefits of WMI without even learning about it. However, if they want to, because WMI is scriptable, it gives them the opportunity to consume WMI information from scripts or from any WMI-aware enterprise-management software.
Features[edit]
For someone willing to develop one or many WMI providers, WMI offers many features out of the box. Here are the most important advantages:
- Automation interfaces:
Because WMI comes with a set of automation interfaces ready to use, all management features supported by a WMI provider and its set of classes get the scripting support for free out-of-the box. Beyond the WMI class design and the provider development, the Microsoft development and test teams are not required to create, validate or test a scripting model as it is already available from WMI. - .NET Management interfaces:
Because the System.Management namespace [6] relies on the existing COM/DCOM plumbing, the created WMI provider and its set of WMI classes becomes automatically available to all .NET applications independently of the language used (e.g. C#, VB.NET). Beyond the WMI class design and the provider development, like for scripting, the Microsoft development and test teams are not required to create, validate and test new assemblies to support a new namespace in the .NET Framework as this support is already available from WMI for free. - C/C++ COM/DCOM programming interfaces:
Like most components in Windows, COM/DCOM programmers can leverage the features of the provider they develop at the COM/DCOM interfaces level. Like in previous environments (scripting and .NET Framework), a COM/DCOM consumer just needs to interact with the standard set of WMI COM interfaces to leverage the WMI provider capabilities and its set of supported WMI classes. To make all management information available from the native APIs, the WMI provider developer just needs to interact with a set of pre-defined WMI COM interfaces. This will make the management information available at the WMI COM level automatically. Moreover, the scripting COM interface object model is very similar to the COM/DCOM interface object model, which makes it easy for developers to be familiar with the scripting experience. - Remoting capabilities over DCOM and SOAP:
More than simply offering local COM capabilities, as management is all about remoting, WMI offers the DCOM transport. In addition, SOAP transport will be available in Windows Server 2003 R2 through the WS-Management initiative led by Microsoft, Intel, Sun Microsystems and Dell. This initiative allows running any scripts remotely or to consume WMI data through a specific set of interfaces handling SOAP requests/responses. The advantage for the WMI provider developer is that when he exposes all his features through WMI, Windows Remote Management/WS-Management can in turn consume that information as well (embedded objects in WMI instances are not supported in Windows Server 2003 R2. It is however a target for Vista). All the layering to WS-Management and the mapping of the CIM data model to SOAP comes for free out of the WMI/WS-Management solution. In the event DCOM must be used, implementing DCOM requires the presence of a proxy DLL deployed on each client machine. As WMI is available in the Windows operating system since Windows 2000, these issues are eliminated. - Support for Queries:
WMI offers support for WQL[7] queries out of the box. This means that if a provider is not designed to support queries, WMI supports it by using an enumeration technique out of the provider. - Eventing capabilities:
WMI offers the capability to notify a subscriber for any event it is interested in. WMI uses the WMI Query Language (WQL) to submit WQL event queries and defines the type of events to be returned. The eventing mechanism, with all related callbacks, is part of the WMI COM/DCOM and automation interfaces. Anyone writing a WMI provider can have the benefit of this functionality at no cost for his customers. It will be up to the consumer to decide how it wants to consume the management information exposed by the WMI provider and its related set of WMI classes. - Code template generator:
To speed up the process of writing a WMI provider including all COM/DCOM interfaces and related definitions, the WMI team developed the WMI ATL Wizard to generate the code template implementing a provider. The code generated is based on the WMI class model initially designed by the developer. The WMI provider developer will be able to interface the pre-defined COM/DCOM interfaces for the WMI provider with its set of native APIs retrieving the management information to expose. The exercise consists in filling the “gaps” in the provider code to create the desired interfacing logic. - Predictability:
Predictability is an important concern for IT professionals because it defines the capability of someone having an experience with a set of interfaces managing a Windows component to apply this knowledge right away, intuitively, to any other manageable Windows component without having relearn everything from ground up. Predictability for a customer is a real gain as it increases the Return of Investment (ROI). A person facing such a situation simply expects things to work the same way based on his previous experience. The constant increase of COM programming/scriptable interfaces has a huge impact on the predictability, as this makes it difficult for customers to automate, manage Windows and leverage their existing knowledge. WMI with CIM address this problem by always exposing the same programming object model (COM/DCOM, Automation, .NET) whatever the manageable entity is. - Protect existing customer investments:
Protecting customers and partners investment motivates customers to invest in technologies. As Microsoft did invest a lot these past years in writing WMI providers, customers and partners invested in tools leveraging the WMI capabilities of Windows. Therefore, they naturally continue to exploit these capabilities instead of having to use a new set of specific interfaces for each Windows manageable component. A specific set of interfaces means having a specific set of agents or in-house developed software based on a new model or set of interfaces especially dedicated to a component or technology. By leveraging the capabilities of WMI today, customers and partners can leverage the work investment made in the past while minimizing their costs in developments, learning curves and new discoveries. This will also have a great impact on the stability and reliability of their infrastructure as they continue to leverage an existing implementation with an improved technology. - Provide a logical and unified administration model:
As briefly described before in the introduction, this model is based on an industry standard called CIM defined by the DMTF (http://www.dmtf.org). The CIM class-based schema is defined by a consortium of constructors and software developers that meets the requirements of the industry. This implies that not only Microsoft leverages the WMI capabilities, but also any other third party constructors or developers write their own code to fit into the model. For instance, Intel is doing this for some of their network driver adapters and software. HP is leveraging existing WMI providers and implementing their own WMI providers in their HP Open View Enterprise Management software. IBM consumes WMI from the Tivoli management suite, MOM and SMS are also consuming and providing WMI information. Lastly, Windows XP SP2 leverages WMI to get information status from anti-virus software and firewalls.
WMI tools[edit]
Some WMI tools can also be useful during the design and development phases. These tools are:
- The MOF compiler (MOFComp.exe): The Managed Object Format (MOF) compiler parses a file containing Managed Object Format statements and adds the classes and class instances defined in the file to the CIM repository. The MOF format is a specific syntax to define CIM class representation in an ASCII file (e.g. MIB are to SNMP what MOF files are to CIM). MOFComp.exe is included in every WMI installation. Every definition existing in the CIM repository is initially defined in an MOF file. MOF files are located in %SystemRoot%System32WBEM. During the WMI setup, they are loaded in the CIM repository.
- The WMI Administrative Tools: The WMI Administrative Tools are made of four tools: WMI CIM Studio, WMI Object Browser, WMI Event Registration and WMI Event Viewer. The most important tool for a WMI provider developer is WMI CIM Studio as it helps in the initial WMI class creation in the CIM repository. It uses a web interface to display information and relies on a collection of ActiveX components installed on the system when it runs for the first time. WMI CIM Studio provides the ability to:
- Connect to a chosen system and browse the CIM repository in any namespace available.
- Search for classes by their name, by their descriptions or by property names.
- Review the properties, methods and associations related to a given class.
- See the instances available for a given class of the examined system.
- Perform Queries in the WQL language.
- Generate an MOF file based on selected classes.
- Compile an MOF file to load it in the CIM repository.
- WinMgmt.exe: WinMgmt.exe is not a tool; it is the executable that implements the WMI Core service. Under the Windows NT family of operating systems, WMI runs as a service. On computers running Windows 98, Windows 95 or Windows Me, WMI runs as an application. Under the Windows NT family of operating systems, it is also possible to run this executable as an application, in which case, the executable runs in the current user context. For this, the WMI service must be stopped first. The executable supports some switches that can be useful when starting WMI as a service or as an application. WMI provider developers who may want to debug their providers essentially need to run the WMI service as an application.[8]
- WBEMTest.exe: WBEMTest.exe is a WMI tester tool, which is delivered with WMI. This tool allows an administrator or a developer to perform most of the tasks from a graphical interface that WMI provides at the API level. Although available under all Windows NT-based operating systems, this tool is not officially supported by Microsoft. WBEMTest provides the ability to:
- Enumerate, open, create and delete classes.
- Enumerate, open, create and delete instances of classes.
- Select a namespace.
- Perform data and event queries.
- Execute methods associated to classes or instances.
- Execute every WMI operation asynchronously, synchronously or semi-asynchronously.
Developer(s) | Microsoft |
---|---|
Operating system | Microsoft Windows |
Type | Command |
License | Proprietary commercial software |
Website | docs.microsoft.com/en-us/windows-server/administration/windows-commands/wmic |
- The WMI command line tool (WMIC): WMIC is a command-line tool designed to ease WMI information retrieval about a system by using some simple keywords (aliases). WMIC.exe is only available under Windows XP Professional, Windows Server 2003, Windows Vista, Windows 7 and Windows Server 2008. By typing “WMIC /?” from the command-line, a complete list of the switches and reserved keywords is available.
- There is a Linux port of WMI command line tool, written in Python, based on Samba4 called ‘wmi-client’[9]
- WBEMDump.exe: WBEMDump is a tool delivered with the Platform SDK. This command line tool comes with its own Visual C++ project. The tool can show the CIM repository classes, instances, or both. It is possible to retrieve the same information as that retrieved with WMIC. WBEMDump.exe requires more specific knowledge about WMI, as it doesn’t abstract WMI as WMIC. However, it runs under Windows NT 4.0 and Windows 2000. It is also possible to execute methods exposed by classes or instances. Even if it is not a standard WMI tool delivered with the system installation, this tool can be quite useful for exploring the CIM repository and WMI features.
- WMIDiag.vbs: The WMI Diagnosis Tool is a VBScript downloadable from Microsoft here and is a tool for testing and validating WMI on Windows 2000 and greater. The download includes pretty thorough documentation and the tool supports numerous switches. When run, it will generate up to four text files which: list the steps taken (the LOG file), an overview of the results (REPORT file), a statistics file (in comma separated values format), and optionally a file listing of the providers registered on the machine (PROVIDERS, also in comma separated values format). The report file that is generated includes a list of the issues identified and potential ways to fix them.
- WMI Explorer: The WMI Explorer Tool is a freely available and opensource program downloadable here and is a tool for enumerating and querying WMI providers in a graphical user interface.
Wireless networking example[edit]
In the .NET Framework, the ManagementClass class represents a Common Information Model (CIM) management class. A WMI class can be a Win32_LogicalDisk in the case of a disk drive, or a Win32_Process, such as a running program like Notepad.exe.
This example shows how «MSNdis_80211_ServiceSetIdentifier» WMI class is used to find the SSID of the Wi-Fi network that the system is currently connected to in the language C#:
ManagementClass mc = new ManagementClass("root\WMI", "MSNdis_80211_ServiceSetIdentifier", null); ManagementObjectCollection moc = mc.GetInstances(); foreach (ManagementObject mo in moc) { string wlanCard = (string)mo["InstanceName"]; bool active; if (!bool.TryParse((string)mo["Active"], out active)) { active = false; } byte[] ssid = (byte[])mo["Ndis80211SsId"]; }
The «MSNdis_80211_ServiceSetIdentifier» WMI class is only supported on Windows XP and Windows Server 2003.
WMI driver extensions[edit]
The WMI extensions to WDM provide kernel-level instrumentation such as publishing information, configuring device settings, supplying event notification from device drivers and allowing administrators to set data security through a WMI provider known as the WDM provider. The extensions are part of the WDM architecture; however, they have broad utility and can be used with other types of drivers as well (such as SCSI and NDIS). The WMI Driver Extensions service monitors all drivers and event trace providers that are configured to publish WMI or event trace information. Instrumented hardware data is provided by way of drivers instrumented for WMI extensions for WDM. WMI extensions for WDM provide a set of Windows device driver interfaces for instrumenting data within the driver models native to Windows, so OEMs and IHVs can easily extend the instrumented data set and add value to a hardware/software solution. The WMI Driver Extensions, however, are not supported by Windows Vista and later operating systems.[10]
See also[edit]
- Open Management Infrastructure
- ANT catalog § WISTFULTOLL
References[edit]
- ^ «WMI Redistributable for Windows NT». microsoft.com. Archived from the original on 24 February 2010. Retrieved 4 May 2018.
- ^ «WMI Redistributable for Windows 95 and Windows 98». microsoft.com. Archived from the original on 23 April 2007. Retrieved 4 May 2018.
- ^ Description of WMIC Archived 2007-05-02 at the Wayback Machine
- ^ «Windows Vista Client Manageability». microsoft.com. Archived from the original on 3 March 2016. Retrieved 4 May 2018.
- ^ «WMI providers supported in Windows 10». Microsoft. 25 June 2017. Archived from the original on 30 September 2018. Retrieved 30 September 2018.
- ^ «System.Management Namespace». msdn2.microsoft.com. Archived from the original on 16 April 2008. Retrieved 4 May 2018.
- ^ «WMI query language (WQL) via PowerShell». ravichaganti.com. 1 May 2011. Archived from the original on 12 October 2017. Retrieved 4 May 2018.
- ^ «WMI Tasks: Computer Software (Windows)». msdn2.microsoft.com. Archived from the original on 6 April 2008. Retrieved 4 May 2018.
- ^ D’Vine, Rhonda. «Ubuntu – Error». packages.ubuntu.com. Archived from the original on 2 May 2017. Retrieved 4 May 2018.
- ^ «The Windows Vista and Windows «Longhorn» Server Developer Story: Application Compatibility Cookbook». msdn2.microsoft.com. Archived from the original on 21 April 2008. Retrieved 4 May 2018.
External links[edit]
- WMI at the Microsoft Developer Network
- CIM terminology
- WMI Overview and Background
- WMI and CIM overview
- How improved support for WMI makes PowerShell the best environment to use and script WMI
- Microsoft WMI Webcast
- WMI Code Creator
You must have heard of WMI as a part of your everyday management and technical duties, especially when you’ve tried to get information from devices connected to your computer. But what is WMI really and why is it important for a network?
Windows Management Instruments, or WMI in short, is the Microsoft version of an industry-standard called Web-Based Enterprise Management (WEBM).
This standard lays down the specifications for accessing and using management information in an enterprise environment.
Specifically, it sets the rules for accessing data from non-uniform technologies through a standardized architecture.
WMI is the Microsoft implementation of this standard and in fact, it is an infrastructure that enables you to access data and information, regardless of the underlying device. In other words, this infrastructure is device-independent.
WEBM uses the Common Information Model (CIM) as its schema and since WMI is also a similar implementation, this also uses CIM as its schema.
This schema is well-suited for WMI because it stores data about the environment in the form of interrelated systems, each composed of a discrete set of elements.
This way, vendors have a predefined set of values that they can build on, and this is why this schema is most ideal for managing such information.
Uses of WMI
The central role of any server is to listen to the requests coming from clients and to respond appropriately.
When a client needs data or functionality from a server, it sends a request over the network.
The server, in turn, receives the request, processes it, and sends back the necessary information or error, depending on the nature of the request.
The server can also do a whole lot of other related things such as verifying the authenticity of the requester, ensuring that the client has the necessary permissions, the request is in the appropriate format, and more.
All this means, the functionality to listen in to requests is the core requirement for a device to become a server.
This functionality can come as a part of its operating system or it can come from an installed application. In some cases, both these sources can be combined as well.
To understand this better, let’s take two servers as examples.
In the case of Microsoft Windows Server, the functionality to listen and respond to clients comes as a part of the operating system while in the case of Apache Web Server, an additional application called Apache should be installed on top of the operating system.
WMI facilitates this communication between servers and clients. In fact, WMI is most useful to get management data from remote computers because it allows connections to be made through DCOM. The most salient feature of WMI is that it provides a uniform interface for local as well as remote applications, so the scripts or applications do not have to call a lot of other APIs.
Also, management applications and scripts can be programmed to get data through WMI in many languages such as C++, C#, and more. You can even create your own WMI providers to add to the available set of management tasks.
Besides, scripting languages, you can also access WMI through its own dedicated command-line interface called WMIC. This CLI is compatible with most shells, including the standard Windows command-line. All that you have to do is type WMIC followed by the parameter.
WMI Architecture
Now that we know the uses of WMI, let’s take a look at its architecture and the different components present in it.
Here are some key components of WMI:
WMI Infrastructure
WMI infrastructure is a component of the Windows operating system and is called WMI Service (winmgmt).
In turn, this has two core components, namely, WMI Core and WMI Repository.
WMI Service
The WMI infrastructure is implemented in the Windows operating system as a service. This WMI service sits between WMI providers and managing applications.
It automatically starts at the time of system boot. You can stop it at any time, and it will start up again when any application or script requests for access to any WMI namespace.
WMI Repository
WMI repository is a database for storing all static data related to WMI.
Dynamic data is not stored in these repositories and the only way to retain this dynamic data is for a WMI provider to capture and retrieve it or a WMI application to log it through a WMI class.
This repository is organized as WMI namespaces. The WMI Services creates a few repositories such as rootdefault, rootcmiv2, and rootsubscription during system startup. The remaining namespaces are created by WMI providers.
WMI Providers
WMI providers are a COM object that monitors one or more managed objects. In other words, it collects, manages, and reads data from those managed objects that it is programmed to access.
These providers can be implemented through the operating system or through programming languages such as C++ and Visual Basic, and they are accessible through the command-line interface.
There are many built-in WMI providers in Windows such as Active Directory, Boot Configuration Data, Distributed File System, and more.
The role of WMI providers is to respond to queries from management applications and programmed scripts.
Managed objects
Managed objects are logical and physical components that are managed through WMI. It can be a hardware or a software component, but it has to be an instance of the WMI class. Managed objects can include processors, servers, applications, operating systems, memory, network-attached equipment, and services.
WMI Consumer
WMI consumers, as the name suggests, is the application or script that interacts with the WMI infrastructure. These applications can run queries, provider methods, or even subscribe to events.
WMI API
This API provides access to the WMI infrastructure for any application that wants to use WMI. The response to these APIs goes through classes, instances, and methods.
Latest version of WMI
The latest version of WMI is called Windows Management Infrastructure, or MI, in short. This latest version is fully compatible with the previous versions and comes with more features and advantages such as tighter integration with PowerShell, lower development time, and more.
Thus, these are some of the fundamental concepts of WMI. We hope they help you to better understand this architecture and appreciate its role in your client-server communication model.
Windows Management Instrumentation (WMI)
The promises of WMI ”Microsoft’s implementation of the WEB Based Enterprise Management (WBEM) standard ”finally materialized in Windows Server 2003. Not only did Microsoft add WMI providers to almost all OS components , it also provided a Command Line Interface (CLI) called WMIC. This section introduces WMI and provides an overview of the features of Windows Server 2003 WMI providers.
More Information About WMI
If you are interested in a complete in-depth description of WMI with samples to perform almost every task imaginable, the following books are strongly recommended:
-
Understanding WMI Scripting by Alain Lissoir. (Digital Press 2003)
-
Leveraging WMI Scripting by Alain Lissoir. (Digital Press 2003)
Another great source of WMI information is Microsoft Developers Network (MSDN). Microsoft offers tutorials, whitepapers, sample code, and commands, and also describes all the WMI objects with their properties and methods .
To browse the WMI schema, I recommend you do not use the Windows Server 2003 built-in tool (WBEMTest.exe), but rather install the WMI SDK (Software Developer’s Kit) downloaded from Microsoft (make sure you get SDK version 1.5 minimum). The SDK comes with two great tools: Common Information Model (CIM) Studio and WMI Object Browser. CIM Studio allows browsing of any WMI schema metadata; all that is needed is the initial namespace and you get the following:
-
Classes with properties and methods
-
Schema information including inheritance
-
Data type and associations
Whereas CIM Studio is a metadata browser (only allows access to the schema), WMI Object Browser provides access to data. All object instances in a namespace can be accessed. It is possible to see values, update values, and execute methods. The interfaces are nearly identical between the two tools.
Most examples in this section will relate to Microsoft Cluster, but the examples can be easily modified to deal with almost any WMI providers.
WMI Architecture
Just as it takes two to tango, it takes three to make WMI useful! The three required elements are
-
OS support : This is an available add-on for Windows NT 4.0 and built in to Windows 2000 and newer .
-
Providers : Converts the data between native and WMI Application Programming Interface (API) and data structures. Most of the providers are new with Windows Server 2003.
-
Applications and/or UIs : Applications are mostly left to a third-party; however, WMIC provides a simple user CLI in Windows Server 2003.
Obviously, this description is simplified, but it shows that the WMI providers are key elements that provide WMI with its richness. WMI does not limit providers to OS components; for example, Exchange 2000 ships with WMI providers. Over time, more products will ship with providers.
Exploring the WMI Providers
As previously mentioned, a WMI provider is a software layer that converts (thunk is the Microsoft term ) between Windows native and the WMI standard format. For example, when WMIC is used to collect cluster information, the cluster WMI provider converts the request between the WMI format and the native ClusApi. A WMI call can actually involve multiple native calls, and WMI object properties might or might not exist in the native environment.
The definitive and complete description for each WMI provider is available on MSDN. However, for a simple introduction to what is available on your server, look at your server in the directory %WinDir%system32wbem for files with the extension Managed Object Format (.mof). Each of those files describes providers in a C-like format. You will be able to find:
-
The purpose for the provider, which is usually obvious from the file name . For example, the file ClusWMI.MOF for the Microsoft Cluster provider.
-
The namespace location in the schema for the provider. For example, in the file DSProv.MOF:
Instance of __Namespace { Name = "LDAP"; }; #pragma namespace("\.rootdirectoryLDAP")
-
The object’s properties and methods. For example, in the file TsCfgWmi.MOF:
class Win32_TerminalServiceSetting : CIM_Setting { [key,read] string ServerName; [read] uint32 TerminalServerMode; [read] uint32 LicensingType; [read] string LicensingName; [read] string LicensingDescription; [read,write] uint32 ActiveDesktop; [read,write] uint32 UserPermission; [read] uint32 DeleteTempFolders; [read] uint32 UseTempFolders; [read] uint32 AllowTSConnections; [read] uint32 SingleSession; [read] string ProfilePath; [read] string HomeDirectory; [read] uint32 Help; [read,write] string Logons; [read] string DirectConnectLicenseServers; [Implemented] uint32 AddDirectConnectLicenseServer([In] string LicenseServerName); [Implemented] uint32 DeleteDirectConnectLicenseServer([In] string LicenseServerName); [Implemented] uint32 ChangeMode([In] uint32 LicensingType); [Implemented] uint32 SetAllowTSConnections([In] uint32 AllowTSConnections); [Implemented] uint32 SetSingleSession([In] uint32 SingleSession); [Implemented] uint32 SetProfilePath([In] string ProfilePath); [Implemented] uint32 SetHomeDirectory([In] string HomeDirectory); [Implemented] uint32 SetPolicyPropertyName([In] string PropertyName,[In] boolean Value); };
-
A description of each property or method. For example, in DNSProv.MOF:
string ContainerName; [Key, Propagated ("MicrosoftDNS_Domain.Name" ): ToSubClass, Read: ToSubClass, Description("This string represents the Fully Qualified Domain Name of " "the Domain which contains this Resource Record. This property " "may contain the strings, "..Cache" or "..RootHints", if the " "DNS' internal cache or Root Hints (respectively) contain this " "Resource Record." ): ToSubClass ]
note
The directory only contains files for components you have installed. For example, if your server is not configured as a DNS, the file DnsProv.MOF will probably not be there.
You can also learn more about the WMI providers on your server by browsing. You can browse the schema using the CIM Studio (the GUI from the WMI SDK mentioned previously). For example Figures 10.10 through 10.14 show what information is available from the cluster provider.
Figure 10.10. Initial display of the CIM Studio.
Figure 10.14. Association class.
Figure 10.11. Object hierarchy.
Figure 10.12. Class properties.
Figure 10.13. Class methods.
The default namespace is \RootCIMv2 . When accessing objects, the path only needs to be specified if the objects are not stored in the default path . Most classes in the form Win32_<something> are stored in the default namespace. Objects such as cluster or LDAP are stored in their own namespace.
WMI Access from Scripts
WMI does not restrict the choice of programming language. Most developers will use a highly optimized language like C or C++. However, when doing simple management, it is possible to use WMI with minimum development effort or expertise using Windows Scripting Host (WSH). WMI can be scripted from any scripting language, but in this chapter Visual Basic Script (VBScript) is used to provide coding examples.
Getting Started
The VBS examples presented here are simple and are best executed using the CSCRIPT processor. Windows offers the choice of console-based scripting or windows-based scripting. However, only console-based scripting allows simple input and output interaction (some of the examples use the WScript.StdIn.Readline method to capture user input). To execute an example script, copy the script from this document using a simple editor like Notepad and save it using a unique file name like FOO.VBS. Then, use the console command:
C:> cscript foo.vbs
The biggest obstacle is simply how to get going. After the first script is available, it’s simple to use it as a template and adapt it for another purpose. The three most common syntactic examples to access objects are as follows :
-
To get all instances from a class, use
GetObject(<Schema_Path>).InstancesOf(<class_name>)
-
To select a subset of objects in a class based on a criterion, use WMI Query Language (WQL which will look very familiar to you if you have ever worked with SQL):
GetObject( <Scema_Path> ).ExecQuery( <WQL> )
-
To get notification of an asynchronous event, use
ToGetObject( <Schema_Path> ).ExecNotificationQuery( <WQL> )
Beware that WMI returns object sets, even in the case of a set with a single object (such as a cluster, because a node can only belong to a single cluster at a time). For nonreal-time objects, loop through the object using the VBS syntax:
FOR EACH object IN objectset NEXT
Accessing Properties
The object properties defined in the class are accessed using the ObjectName.PropertyName syntax. For example, InterfaceType and Size are properties of the DiskDrive class and can be viewed using the following code:
DIM oResourceSet, oResource SET oResourceSet = GetObject( "winmgmts://./root/CIMv2" ). _ InstancesOf( "Win32_DiskDrive" ) FOR EACH oResource IN oResourceSet WScript.Echo( "Disk " & oResource.DeviceID & " has " & _ oResource.InterfaceType & " interface " & _ oResource.Size & " bytes" ) NEXT SET oResourceSet = NOTHING SET oResource = NOTHING
Using Methods
Methods are used to perform operations on objects. For example, renaming a printer requires more than changing the Name property. A method called RenamePrinter changes the name, updates the Registry, and does anything else that needs to be done. Another example involves pausing printers; the following VBS code would prompt for every printer that is running on a server and allow the user to pause it:
DIM oPrinterSet, oPrinter CONST PAUSED=1 CONST RUNNING=0 SET oPrinterSet = GetObject( "winmgmts://./root/CIMv2" )._ InstancesOf("Win32_Printer") FOR EACH oPrinter IN oPrinterSet IF oPrinter.PrinterState = RUNNING THEN Wscript.Echo( "Pause " & oPrinter.Name & "?" ) strInput = WScript.StdIn.ReadLine strInput = UCASE( LEFT( strInput , 1 ) ) IF strInput = "Y" THEN CALL oPrinter.Pause( ) END IF ELSEIF oPrinter.PrinterState = PAUSED THEN WScript.Echo( oPrinter.Name & " is paused." ) END IF NEXTSET oPrinterSet = NOTHING SET oPrinter = NOTHING
In general, a method performs its work on the object that is used to invoke it; for example, a rename method’s only input is the new name; the old name is assumed to be the name of the current object. However, there are times when this cannot be the case. To create a new instance of an object, for example, any object in the same class can be used. So to create a new cluster resource group object, use the CreateGroup method from any ResourceGroup object.
Association Classes
An association class relates two objects. The objects can be in the same class, as in the case of MSCluster_ResourceToDependentResource or in different classes such as MSCluster_ ResourceGroupToResource . The association objects usually have only two string properties of type Reference (REF) , and each property points to an object in the respective target classes. Type REF as a pseudo-WQL format; it isn’t a true WQL query and needs to be modified to be used as a WQL query. However, it contains all the information to create a valid WQL query that will provide the desired object.
For example, one instance of MSCluster_ResourceGroupToResource has the following properties:
ResourceGroupTo.GroupComponent [ra] MSCluster_ResourceGroup.Name="Cluster Group" ResourceGroupTo.PartComponent [ra] MSCluster_Resource.Name="Cluster IP Address"
The WQL is not valid because it includes the object name in the association. Turning these into valid WQL requires adding Select From at the front and replacing the period with Where and would produce:
Select * From MSCluster_ResourceGroup Where Name="Cluster Group" Select * From MSCluster_Resource Where Name="Cluster IP Address"
This can then be used as the argument of a WMI query:
GetObject( "winmgmts://./root/MSCluster" ).ExecQuery( <WQL> )
Association classes by themselves are cumbersome to use. However, WMI provides a method to use association classes without having to actually deal with the class instances. Using the associated WMI syntax, you can retrieve the associated classes. For example, the association class MSCluster_ResourceGroupToResource links cluster resource groups to their resources. Using that class, without actually manipulating instances of it, to associate the two classes and retrieve all instances of MSCluster_Resource that belong to the cluster group requires the WMI syntax:
ASSOCIATORS OF {MSCluster_ResourceGroup.Name='Cluster Group'} WHERE AssocClass=MSCluster_ResourceGroupToResource"
Using this WMI feature, it becomes trivial to use association classes. For example, the following code allows the user to specify a cluster group and will return all the names of all the resources in that group along with the resource type:
REM REM Given a resource group name, find all the resources and REM their types in that group using associators REM OPTION EXPLICIT ON ERROR RESUME NEXT DIM refWMIServices, oResourceSet, oResource, oResourceTypeSet DIM oResourceType, strQuery, strInput, nCount WSCript.Echo ("Enter name of the resource group to look for:" ) strInput = WScript.StdIn.ReadLine SET refWMIServices = GetObject( "winmgmts://./root/MSCluster" ) strQuery = "ASSOCIATORS OF {MSCluster_ResourceGroup='" & _ strInput & "'} WHERE AssocClass=" & _ "MSCluster_ResourceGroupToResource" SET oResourceSet = refWMIServices.ExecQuery( strQuery ) nCount = oResourceSet.Count IF Err.Number <> 0 THEN WScript.Echo ("Group " & strInput & " was not found!" ) WsCript.Quit END IF WScript.Echo ( "Got " & nCount & " resources in " & _ strInput & ":" ) FOR EACH oResource IN oResourceSet WITH oResource strQuery = "ASSOCIATORS OF {MSCluster_Resource='" & _ .Name & "'} WHERE AssocClass=" & _ "MSCluster_ResourceTypeToResource" SET oResourceTypeSet = refWMIServices.ExecQuery( _ strQuery ) FOR EACH oResourceType IN oResourceTypeSet WScript.Echo ( "Resource Name -> " & .Name & _ " of type -> " & oResourceType.Name ) NEXT END WITH NEXT SET oResourceSet = NOTHING SET oResource = NOTHING SET oResourceTypeSet = NOTHING SET oResourceType = NOTHING
Two association classes are used in this example:
-
MSCluster_ResourceGroupToResource
-
MSCluster_ResourceTypeToResource
Yet, no instances of those association classes are manipulated by the script! Also, the fact that the name field is the primary key for MSCluster_ResourceGroup and MSCluster_Resource shortens the syntax by omitting the .Name in the WQL string.
Updating Properties
When accessing an object with the GetObject method, the system actually returns an in-memory private copy of the object. This guarantees that a bug in a program does not accidentally damage a live object; however, it makes updating objects more difficult. Updating an object requires three things:
-
The object must be writeable .
-
You must update the local copy of the object by writing to Object.Property .
-
You must propagate the update to the system object using the SWbemNamedValueSet.Put_ method.
For example, this simple code will disable an account by updating the Disabled property (Here we pick on «Test User»):
DIM oUserSet, oUser, oNamedValueSet CONST wbemChangeFlagUpdateOnly = 1 SET oNamedValueSet = CreateObject( _ "WbemScripting.SWbemNamedValueSet" ) CALL oNamedValueSet.Add ( "__PUT_EXTENSIONS", TRUE ) CALL oNamedValueSet.Add ( "__PUT_EXT_CLIENT_REQUEST", TRUE ) strQuery = "Select * From Win32_UserAccount Where Name=" & _ """Test User""" SET oUserSet = GetObject( "winmgmts://./root/CIMv2" ). _ ExecQuery( strQuery ) FOR EACH oUser IN oUserSet EXIT FOR NEXT oUser.Disabled = "True" arProperties = ARRAY( "oUser.Disabled" ) CALL oNamedValueSet.Add ( "__PUT_EXT_PROPERTIES", arProper-ties ) CALL oUser.Put_( wbemChangeFlagUpdateOnly, oNamedValueSet ) SET oUser = NOTHING SET oUserSet = NOTHING SET oNamedValueSet = NOTHING
note
The FOR EACH “ EXIT FOR “ NEXT construct in the previous code sample might look unusual at first; however, it is a simple technique to obtain the only object from an object set that we expect to contain only one object. For a more robust program, it would be advisable to check that oUserSet.Count=1 and take an error action if not. The Count property of an object set is an inherited property that always returns the number of items in the set.
Event Classes
Events are different from the previous objects in that they are not permanent, but rather happen in an asynchronous fashion in real time. After an event has happened , it’s lost unless it’s captured. Windows Server 2003 event logs might capture a lot of events, but it’s sometimes preferable to get the events as they occur. For example, the MSCluster_Event classes have a special-purpose method called MSCluster_Event.NextEvent that can be used to wait for an event to occur and return the new event. To display all cluster resource state change events in real time on the console, use this simple code:
DIM oEvents, oItem SET oEvents = GetObject( "winmgmts://./root/MSCluster" ). _ ExecNotificationQuery( "Select * from MSCluster_EventResourceStateChange" ) DO SET oItem = oEvents.NextEvent WITH oItem WScript.Echo( DATE & " " & TIME & _ " EventNewState=" &.EventNewState & _ " EventObjectName=" &.EventObjectName & _ " EventObjectPath=" &.EventObjectPath & _ " EventObjectType=" &.EventObjectType & _ " EventTypeMajor=" & .EventTypeMajor & _ " EventTypeMinor=" &.EventTypeMinor ) END WITH LOOP SET oEvents = NOTHING SET oItem = NOTHING
note
This simple code works, but good programming technique requires a user-triggered method to exit the loop. In this example, the code will never reach the cleanup section. It is assumed the user will terminate this using Ctl+C.
WMIC Management
The goal of WMI is to standardize Windows management. However, until now, Microsoft has offered only a set of APIs and providers. This limited the penetration of WMI to programmers, whereas the ultimate goal of WMI is to facilitate the tasks of system Administrators and application Administrators. Windows Server 2003 provides a CLI to WMI called WMIC.
WMIC is an incredibly powerful tool that provides a common interface and syntax to manage almost everything on a system. Because WMIC can manage anything that offers a WMI provider, Administrators and end users finally have access to the stated benefits of WMI.
The first time WMIC is invoked, the system installs the required component to allow you to use the WMIC tool:
C:>wmic Please wait while WMIC is being installed.
This only occurs the first time and takes less than 30 seconds.
WMIC has two separate sets of help:
-
The WMIC command uses /? for help and /?:FULL for advanced help. Everything in WMIC is context sensitive, which means that the help information displayed depends on what precedes the /? . The main problem with context-sensitive help is similar to a Catch-22; if I don’t know where it is, I can’t get there to ask for help!
-
The other set of help comes from the common «Help and Support.» I recommend that everyone read though the WMIC help topics.
WMIC can generate output in any format desired. The default formats available are text, CSV, HTML, and XML. However, it is possible to define new formats.
WMIC Command Syntax
WMIC commands are made of multiple context sensitive parts ; refer to the online help for the full description. However, to get started, the following format is usually used: WMIC /NameSpace:<Path> [global switches] PATH <Class> [WHERE WQL] [Verb/VerbQualifier [[PropertyName [=Value] MethodName [Parameters] ]/Qualifier]
In creating WMI queries, the WMIC options shown here are important in formatting the query to accomplish what you want. Following is a list of definitions of these options:
-
/NameSpace qualifier is only required for objects not in the default namespace.
-
You can also use the /Output:FileSpecification global switch.
-
PATH <object> specifies the object class you want to work with.
-
The WQL clause is optional, but allows selecting a particular object set. By default, all objects of the chosen class are selected.
-
The most useful verbs are GET, SET , and CALL. GET is used to get a property list. SET is used to modify a property. CALL is used to invoke a method.
-
The most useful final qualifiers are /VALUE, /FORMAT: specifier , and /EVERY:time. /VALUE directs the output to be in list format. When not specified, the output defaults to tabular for text output. /EVERY and /FORMAT are described in detail in the next topic.
WMIC Navigation
Navigating the WMI schema with WMIC initially might appear like navigating a labyrinth. Using the /? command to get help greatly eases the feeling of navigating blind. The command WMIC /? will show you the syntax elements and also all the aliases defined.
The first step in navigating using WMIC is to discover aliases. An alias is nothing more that a shortcut. Microsoft includes aliases for the most useful classes. For example, the WMIC /? command will show you that there is an OS class. So to access the OS class, all you have do is type WMIC OS . However, the output will be very disappointing. By default, WMIC outputs text in table format. In this case, the table is very wide and only contains one row of information. To change the output in to a more useable column, you would type WMIC OS GET /VALUE . This produces the same output, but instead of being truncated to the right, it just scrolls in your command window.
If you are interested in finding out what an alias actually points to, you can use the command WMIC ALIAS <Alias> GET /VALUE . Using this command will show that the OS alias actually points to Win32_OperatingSystem . So the following two commands are equivalent:
WMIC OS GET /VALUE WMIC PATH Win32_OperatingSystem GET /VALUE
Follow the same technique to browse all the available aliases. Some aliases might fall short on information; for example, if your test machine only has IDE drives , the SCSI alias will not have any instances. Also note that WMIC actually appeared in Windows XP so you can use it on your Windows XP clients . WMIC is not and will never be available for Windows 2000 or earlier.
WMIC Help
After you have found a class to investigate you can easily obtain more information about the class. For example, to find out the properties of the OS class, type WMIC OS GET /? . This will list all the properties available in the class. Similarly, the command WMIC OS CALL /? lists all the methods available.
note
Most properties and methods have descriptive names. But what if the descriptive name still does not satisfy you? For example, CSDversion is a property of the Win32_OperatingSystem class available via the OS alias. But what is it? The command WMIC OS GET CSDversion /?:FULL will display further specific information. Note the description you obtain in this manner is the same as what you obtained looking at the MOF files earlier, but it’s a lot easier to obtain and not all providers have easily accessible MOF files.
WMIC Output Formatting
The previous sections introduced you to the WMIC commands. However, all the examples so far have been simple and resulted in immediate display of text results in a command-prompt window. WMIC can do much more. For managing a server, WMIC command mode with immediate text results are fine, but for monitoring a server, the powerful output formatting of WMIC and its repeating feature are needed.
WMIC formats results using common style sheets (files with .XSL extensions). To use the style sheet, simply add the /FORMAT:Style-sheet to a WMIC command. The standard style sheets provided are
-
CSV : Allows you to output the results to a file using comma-separated fields. This is great for sending data to a simple database or Excel.
-
HFORM : HTML with the data in list format. This format is great when viewing a lot of properties from a single object.
-
HTABLE : HTML with the data in table format. This format is best for viewing a few properties from a lot of instances. Optionally, the table can be sorted by using the syntax /FORMAT:HTABLE:»sortby=field_name»
-
MOF : Microsoft Operations Framework source file used to describe the WMI namespace.
-
RAWXML : XML data that can be easily imported into any XML-aware applications such as SQL.
-
XML : Generates HTML of the XML data.
The default style sheets can be found in the same %WinDir%System32WBEM directory as the MOF files. Also, you can create your own style sheet and translation; see TechNet at http://www.microsoft.com/technet/prodtechnol/windowsserver2003/proddocs/entserver/wmic_creating_format.asp.
WMIC Repeating Command
Now that you have learned to use WMIC to extract system information and either display it or send it to an application, wouldn’t it be nice if you could make it refresh the information at fixed intervals? That is exactly what the /EVERY qualifier does. You specify a repeat interval in seconds, and the command repeats over and over at fixed intervals.
Using a combination of /OUTPUT , /FORMAT , and /EVERY , it is now possible to use WMIC to create Web pages that are automatically updated and served via IIS. As you travel out of the office, you still can keep track of your server infrastructure remotely.
WMI and WMIC Limitations
You must understand some of the limitations of WMI and WMIC to prevent frustration:
-
WMIC does not allow access to asynchronous WMI event classes. In order to access events, you must perform WMI calls either from a high-level language (like C++) or from a scripting language. However, you can access events that have been logged to the Windows Event log using the Event Log provider.
-
WMIC does not allow access to linked private properties. For example, cluster resources have common properties (properties that all cluster resources have, such as PendingTimeout ) and they have private properties (such as IP addresses that only make sense for a resource of type IP address). Only common properties can be manipulated with WMIC.
-
WMI reports errors that it receives from the WMI APIs. However, because data and control flow through the WMI providers, component-specific errors and events cannot be reported , but have to be converted to generic WMI errors. Therefore, WMI errors will be less informative than native API errors.
-
The WMIC syntax checker is extremely picky, and you must be very careful. Make sure you preserve the order of the qualifiers and parameters.
-
Because the providers are an additional layer of software that adds overhead, WMI usually performs worse than native applications. WMI should be used for management purposes and not to write time-critical applications.
Especially Useful Classes
So far, we have dealt in generalities. However, some WMI classes are especially useful for managing a server. The list is not meant to be exhaustive, and everyone has favorites; however, this is a good starting point.
NtEvent
The class Win32_NTLogEvent provides access to the Windows NT event logs. It provides access to all entries maintained in the system event logs, including the system and application log. The log is selected using WQL on the LogFile property. WMIC provides an alias called NtEvent for easy access. For example, the command
wmic ntevent where "logfile='Application' and eventcode=7026" get sourcename,message /value
produces the list of all system event 7026 (service failed to load).
Hotfixes
The class Win32_QuickFixEngineering provides easy access to all hotfixes applied to a system. WMIC has a QFE alias, so the command WMIC QFE GET HOTFIXID will list ID of all hotfixes applied to a system. WMIC QFE will list all information (including IDs) known about the hotfix .
BIOS
The class Win32_BIOS provides easy access to your server’s BIOS, especially the version and build date. WMIC has a BIOS alias, so the simple command WMIC BIOS GET /VALUE will show you most of what you will ever want to know without having to shut down and look at the BIOS using <F9 or F10>.
Terminal Services
The class Win32_TerminalService offers access to remote Terminal Services. When managing servers, it is safer to leave administrative mode terminal services disabled until needed. This WMI class provides a simple interface to enable or disable remote Terminal Services. The following command
wmic /node:<IP or network name> /user:<DomainUser> path Win32_TerminalServiceSetting where AllowTsConnections=0 call SetAllowTsConnections 1
enables terminal services on a remote machine. If the password for the username specified does not match the local password, WMIC will prompt for the password. After you are finished performing your remote session, you can either disable remote connections from the computer property box or use the following command remotely:
wmic /node:<IP or network name> /user:<DomainUser> path Win32_TerminalServiceSetting where AllowTsConnections=1 call SetAllowTsConnections 0
If you’ve invested any amount of time into knowledge management within your organization, you know how involved a process it is.
In the simplest of terms, knowledge management encompasses all processes that deal with:
- Collection of knowledge and information
- Storage of incoming and currently-owned knowledge
- Communication and interpretation of this knowledge
- Creation, deployment, and use of organizational information and knowledge
Needless to say, the vast majority of these processes involve the use of a variety of knowledge management software and tools.
These tools, then, are a vital aspect of your overall knowledge management system.
Looking to improve your organization’s knowledge management strategy? Sign up for a 14-day free trial to see how Helpjuice’s knowledge base software can help with capturing, organizing, and sharing organizational knowledge.
What is Knowledge Management Software?
Knowledge management software is any technology platform that helps businesses better capture, organize, manage, and make use of the knowledge and expertise of their employees. This can include information about processes, best practices, policies, procedures, and other important information that is relevant to the organization.
Most knowledge management tools offer a variety of functionalities that help organizations better manage their knowledge, such as search and navigation features, powerful analytics, content management, and access control. All of this makes the organizational knowledge that resides in your company to become easily discoverable and shared with the appropriate stakeholders, thereby improving business efficiency, productivity, and innovation.
Now that we have an idea of what knowledge management software is as well as some of its key benefits, let’s take a look at the various types of knowledge management platforms that you’ll want to look at in order to improve your overall knowledge management capabilities.
- Knowledge Base and Wiki Software
- Document Management Systems
- Learning Management Systems
- Decision Support Systems
- Collaboration Software
- Intranet Software
- Content Relationship Management Systems
For each of these technologies, we’ll provide examples of some of the best knowledge management software on the market.
Without further ado, let’s dig in.
Knowledge Base and Wiki Software
Knowledge base software as well as wiki software typically serves as the foundation of any knowledge management system as the purpose of these tools is to ensure that the right people have access to the right knowledge at the right time.
Essentially, a knowledge base or a wiki allows you to capture both the tacit knowledge and explicit knowledge of your various employees and organize it in a self-serve digital library that can be easily shared and put into action when needed.
Let’s take a look at some of the more popular options when it comes to knowledge base software.
1. Helpjuice
Helpjuice’s knowledge base software allows you to easily create top-notch internal knowledge bases as well as customer-serving knowledge bases.
Helpjuice’s software comes with a range of customization features that allow you to tailor the look and feel of your knowledge base to fit your brand. There are also plenty of collaboration features that let teams collaborate remotely and in real-time. Managers can make comments, assign tasks, request revisions, view version history, and more. Additionally, Helpjuice’s advanced reporting and analytics features help you keep track of the performance of your knowledge base and make relevant improvements.
Features:
- Advanced analytics
- Instant, Google-like search
- Easy-to-use editor with WYSIWYG and markdown options
- Collaborative features, including a live commenting feature
- Integration with a range of tools like Salesforce, Zapier, Slack, and Microsoft Teams
- Localization/multiple languages
- Excellent customer support, hands-on user onboarding, and free expert customization
2. Guru
Guru is a corporate wiki tool built mainly for SaaS and B2B tech companies. It comes with an intuitive and straightforward WYSIWYG editor for content creation and features for detecting duplicate content.
There’s a native Guru-Slack integration that works smoothly and lets users instantly capture knowledge. Guru’s AI even suggests appropriate tags for your content based on other content and how your team works with it.
The advanced analytics features let you see what your team uses and when they’re using it. However, it’s important to note that content is organized into collections, boards, groups, and cards which can take a while to set up and can possibly overwhelm new users.
Features:
- Intelligently-suggested tags
- Advanced analytics
- Browser extension
3. Confluence
Confluence can be a good pick for teams using other Atlassian products, like Jira and Trello. The software integrates smoothly with these tools so that information can flow freely among everyone in the organization. You can use the platform to store all kinds of documents your teams need, from quarterly planning docs to new hire blogs.
Confluence is a good option for businesses needing a knowledge base with project collaboration features. You can choose between 75+ templates for quicker document creation and add additional features and integrations through apps in the Add-in Marketplace. New users can expect a bit of a learning curve.
Features:
- Apps and integrations
- Analytics
- Sandbox
4. Notion
Notion is a suitable tool for companies that need an all-in-one solution where they can combine knowledge management, project management, and other tasks into one system.
Instead of using a bunch of separate tools, you can easily migrate your existing knowledge documents into Notion. Notion will then automatically organize your content and prioritize it based on importance, cases, and value. Keep in mind that Notion is best for creating internal knowledge bases. If you’re looking for a knowledge base with more built-in features to help with creating customer-facing knowledge bases then you’ll want to consider a Notion alternative.
Features:
- Categorization
- Content management
- Markdown editor
5. Document360
Document360 is a SaaS knowledge base platform that allows you to create both customer self-service knowledge bases as well as internal knowledge bases.
Document360 features a range of tools and features for creating, organizing, and publishing content to help facilitate knowledge sharing as well as improve overall organizational efficiency.
Features:
- Content editor
- Knowledge base assistant that connects your product or website to your knowledge base
- API access
Document Management Systems
Document management systems (DMS) are software tools that help organizations manage, store, and track electronic documents and images. In the context of knowledge management, DMS can be used to store and organize important business documents, such as policies, procedures, and technical guides, making them easily accessible to employees.
A DMS operates as a sort of digital filing cabinet, as it allows organizations to locate and access necessary documentation with ease—while ensuring the documentation remains secure at all times. (Note: While a DMS and EDMS are sometimes used interchangeably, an EDMS tends to have enhanced features to help with managing document workflows).
Needless to say, a high-quality DMS tool is an essential part of your organization’s overall knowledge management system.
Let’s take a look at some of the most popular document management systems on the market.
1. ConcordNow
(Source)
Concord is a cloud-based DMS focusing specifically on storing contractual documentation.
Organizations can use Concord throughout the contractual process—from creation to implementation.
Specifically, Concord enables organizations to:
- Create new contracts using templates and pre-created documents
- Review contracts internally and with third-parties both on- and offline
- Approve and sign contractual agreements
- Store and manage official contracts and other documents
By streamlining the process of creating and documenting digital contractual agreements, Concord allows you to focus more on actually moving forward with said agreements in a productive and efficient manner.
Pros:
- Intuitive user interface
- Ability to manage and track workflow lifecycles
- Third-party integrations
Cons:
- Issues when migrating from a separate tool
2. M-Files
(Source)
M-Files is a DMS that aims to streamline your organization’s document-related processes to improve overall business performance.
M-Files does this by allowing your team to create workflows for creating, storing, and retrieving electronic documentation. This, in turn, allows you to reduce redundancies, avoid conflicts, and protect against data loss.
With M-Files, you’ll have complete visibility and control over your digital documents at all times.
Pros:
- Easy to pick up and go
- Customizability
- Integration and migration processes
Cons:
- Technical support and documentation lacking at times
3. eFileCabinet
(Source)
eFileCabinet provides another option for organizations looking for a comprehensive DMS solution.
eFileCabinet ensures you’ll always be able to find the documents you’re looking for at any given time.
The software’s automated filing capabilities, coupled with robust search capabilities, ensure your documents are always at arm’s length—while remaining secure at all times.
Pros
- Organizational, navigational, and search functions
- Mobile-friendly interface and processes
- Security and accessibility options
Cons
- Some processes not as streamlined and intuitive as could be
4. Teamwork
(Source)
Teamwork is primarily known as a team management software, but they also have a really great knowledge management add-on called Teamwork Spaces.
Teamwork Spaces provides a number of features and functions to help enhance collaboration, including:
- Ability to transform documents with interactive widgets
- A powerful editor
- Info panels
- Integration with Teamwork (task management, chat, project management etc)
With Teamwork Spaces your team will have a single source of truth and an integrated project management software that ensures you get stuff done, fast.
Pros
- Professional documents with dynamic content for your team and clients.
- Follow and get notified about important topics that need your attention
- Easily collaborate across teams
Cons
- Limited features in free version
Learning Management Systems
Learning management systems (LMS) are software tools centered around the storage, tracking, and delivery of professional online training and development programs as well as other educational materials in an effort to improve overall organizational learning. This is particularly useful for knowledge management, as an LMS can be used to store and organize learning materials, such as instructional videos, articles, and quizzes, and deliver them to employees in a structured, organized way.
Some key features of LMS include:
- Course creation and management. LMS allows users to create and manage online courses, including uploading learning materials and setting up assessments and quizzes.
- Learning tracking and reporting. LMS tracks the progress of learners through a course and generates reports on their performance, making it easy for managers to monitor employee learning and identify areas for improvement.
- Collaboration. LMS often includes collaboration tools that allow learners to communicate with each other and with instructors, fostering a sense of community and collaboration.
- Mobile access. Many LMS are designed to be mobile-friendly, allowing learners to access course materials and complete assignments from any device.
- Integration with other tools. LMS can be integrated with other software tools, such as HR systems, making it easier for organizations to track employee learning and development.
A high-quality LMS, then, is one that enables organizations to deliver the information held within these documents as efficiently as possible.
1. Docebo
(Source)
Docebo is an AI-powered learning management system that allows for the creation, storage, and delivery of multimedia lessons, courses, and other educational content.
In enabling easy access to interactive, engaging, experiential learning materials, Docebo allows your team members to quickly learn new skills and gain new knowledge.
They can then just as quickly turn around and begin using this new knowledge to the benefit of your organization.
Pros
- Simple and intuitive onboarding process and UI
- Pre-made widgets help simplify processes
- Software constantly being improved
Cons
- Integrations with third-party tools can be difficult
- Updates sometimes unpolished or buggy
2. Travitor
(Source)
Travitor allows organizations to create, develop, and deliver training programs—both live and on-demand—to their employees.
In addition to the basic LMS functionality offered by Travitor, the tool also provides full reporting and analytics of employee engagement with learning materials.
This allows managers to better understand where their employees’ strengths and weaknesses lie—in turn enabling them to focus future training sessions accordingly.
Pros
- User-friendly onboarding and training
- Navigability
- Customizability
Cons
- Reports not as robust as other options
3. Thought Industries
(Source)
For organizations looking to create and deliver audience-facing learning materials for monetization purposes, Thought Industries has you covered.
Thought Industries’ LMS tool makes it easy to create fully-brandable, engaging educational experiences for your audience. This allows you to quickly bring your courses and classes to the market—ensuring for maximum profitability in the process.
Pros
- Scalability in terms of features specific to your needs
- Simple, mobile-friendly UI
- Comprehensive, all-in-one LM tool
Cons
- Lacking in customization options
- Some navigability issues at certain touchpoints
Decision Support Systems
Decision support systems (DSS) are computer-based systems that are designed to help decision-makers analyze data and make more informed decisions. They can be used in a variety of settings, including business, government, and healthcare, to support decision-making in areas such as resource allocation, risk management, and strategic planning.
DSS can be particularly useful for knowledge management because they can help organizations extract insights from large amounts of data and present them in a clear, concise, and actionable way. Decision support systems typically include tools for data analysis, visualization, and modeling, which can help decision-makers better understand complex issues and identify trends and patterns that may not be immediately apparent.
While DSS’ can be used to collect and manage data of any kind, the most common type of data involved revolves around:
- Marketing and sales performance
- Support services
- Internal processes
The goal is to use data to identify the paths that will lead to the most growth for your business, be it financial growth, improved productivity, or otherwise.
1. Salesforce Analytics Cloud
(Source)
Salesforce Analytics Cloud allows you to combine and experiment with a wide variety of data points in order to:
- Gather further insight
- Identify causal and other relationships
- Answer burning questions within your organization or industry
For Salesforce users, Analytics Cloud will always make the path of least resistance crystal clear—allowing your organization to move forward with confidence.
Pros
- Highly-customizable dashboard
- Technically fast and efficient
- Highly secure
Cons
- Requires Salesforce, and only considers data piped through Salesforce
- Requires higher-than-average technical knowledge
2. Directorpoint
(Source)
Directorpoint is a board management tool that allows C-suite teams to administer and manage meetings with ease.
With Directorpoint, teams can create meeting calendars, agendas, and other content-related materials during the planning phase—then deliver these materials to the necessary individuals once the time arrives.
Additionally, Directorpoint allows teams to communicate and collaborate in real-time. Whether sending full documents and files, or delivering surveys and other interactive materials, Directorpoint ensures your remote meetings will proceed as if its taking place in one physical location.
Pros
- Intuitive UI
- Share multimedia and content and data in real-time
- Support services
Cons
- Minor issues with customization
3. Riskturn
(Source)
Riskturn is another tool that uses big data to help inform business decisions—in this case, with the specific goal of mitigating the financial risks involved in making such decisions.
Using a myriad of financial and other data, Riskturn runs simulations to determine the most likely scenario(s) to come from a given decision. This allows you to the best course of action not just for the situation at hand, but for future endeavors revolving around the same issues, as well.
In other words, Riskturn doesn’t just point your team in the right direction; it also allows your organization to gain a true understanding of why a certain direction is the right way to go. In turn, your team will be equipped to continue making optimal decisions moving forward.
Pros
- Intuitive UI and reports dashboard
- Multiple forecasting options and settings
- Adaptable and scalable to your business’ needs
Cons
- Selective list of integrations (but Riskturn’s team is responsive in adding in-demand integrations)
Whenever your teams engage with one another, knowledge is created and shared.
This is why collaboration tools are such a vital component of knowledge management as they help to facilitate communication and collaboration among team members. You can then make use of another type of knowledge management tool, such as knowledge base software, to more effectively capture, organize, and disseminate the ideas and information that’s being shared via collaboration software.
It’s essential, then, to consider how the communication and collaboration tools your organization uses tie into your overall knowledge management software stack.
Specifically, you want to know that:
- Your teams are easily able to share knowledge and information in the first place
- This knowledge can be communicated in a variety of formats
- Engagements are logged, and knowledge is stored, at all times
- Integration capabilities
1. Samepage
(Source)
Samepage is an all-in-one collaboration software that allows teams to remotely manage and work on projects together.
Samepage provides a number of features and functions to help enhance collaboration, including:
- Multimedia chat
- Screen- and file-sharing
- Task management
With Samepage, your team will—literally and figuratively—always be on the same page when
Pros
- Robust project management capabilities
- Ability to create customized teams
- Easy setup and onboarding
Cons
- Backend navigability sometimes not intuitive
- Relatively high cost
2. Blink
(Source)
Blink is a communications tool aimed at enabling teams to maintain alignment when members are constantly “on the go.”
For teams with employees “in the field,” or for organizations with multiple physical locations, Blink helps ensure everyone involved can communicate, collaborate, and deliver information to one another at all times.
Blink also provides comprehensive reports and analytics revolving around collaborative engagements, allowing your teams to make adjustments to processes as necessary.
Pros
- Mobile-friendly capabilities
- Strong search and navigation capabilities
- Ability to create multiple channels and chat groups
Cons
- Cost for higher-tiered solution may be too expensive for smaller companies
3. DialMyCalls
(Source)
DialMyCalls is a simple communications tool used to deliver automated messages via text or phone to various audiences.
In terms of knowledge management, organizations can use DialMyCalls to communicate essential information to your internals teams and/or your customers as needed. With DialMyCalls, you can identify specific individuals within your contact list to target with specific messages, and schedule them to be delivered at the optimal moment.
DialMyCalls also provides reports on audience engagement, allowing you to both address internal miscommunications appropriately, and improve your customer-facing messaging accordingly, as well.
Pros
- Simple tool for automated communications
- Ability to analyze deliverability and efficiency reports for messages
- Affordable for growing businesses
Cons
- Minor issues with search history accessibility
- Process of adding contact info to new contact profiles can be unintuitive and time-consuming
Intranet Software
Intranets are internal networks that are used by organizations to share information and resources among employees. They can be used as a type of knowledge management software as they provide a centralized platform for storing and sharing information and documents within an organization.
Intranet software can include features such as document libraries, wikis, and forums, which can be used to organize and share knowledge among employees. Some intranets may also have search functionality and other features specifically designed for knowledge management.
1. Microsoft SharePoint
Microsoft SharePoint is a web-based platform that is designed to help organizations collaborate and share content. It includes a range of tools and features for document management, collaboration, and communication, as well as custom development capabilities.
SharePoint is often used as a tool for knowledge management because it provides a centralized repository for storing and organizing digital content, as well as tools for collaboration and communication. It can be used to create intranet sites, document libraries, and other collaboration spaces that can facilitate knowledge sharing and collaboration among team members.
Features:
- SharePoint includes tools for storing, organizing, and managing digital documents, such as documents, presentations, and spreadsheets.
- SharePoint includes tools for collaboration and communication, such as discussion forums, wikis, and social networking features.
Pros
- It integrates easily with other programs within the Microsoft Suite
- It’s highly customizable
- It can be used for a variety of internal and customer-facing purposes
Cons
- Lacking in the number of integrations for software outside Microsoft’s Suite
- Functionality surrounding permissions can be confusing
- Not very friendly for new users
CRM software is used more for managing customer-related information so it’s technically not considered a type of knowledge management software as knowledge management software is more focused on managing and disseminating organizational information and knowledge while CRM software is focused on managing and optimizing customer relationships.
With that said, we’ve decided to include this section on our list of the best knowledge management tools as the knowledge your organization learns about your customers as time goes on is vital to the success of your business. Moreover, there is some overlap in functionality and CRM software can be used in conjunction with knowledge management software.
So without further ado, here are some of the best CRM tools available.
1. HubSpot CRM
(Source)
HubSpot’s CRM provides a centralized location on which to store any and all customer-related data.
In centralizing your data via HubSpot, you’ll ensure your various team members are always seeing the most up-to-date information on their audiences.
This includes data on the customer’s persona and behavioral profiles, as well as their engagement history with your company.
In staying on the same page when engaging with your customers, your team can provide a streamlined experience to each individual they serve.
Hubspot also helps teams score leads and segment customers based on the known data about them. In turn, your team can create highly-relevant content and offers that resonate with specific customers within your base.
Pros
- Intuitive UI and simple onboarding
- Powerful integrations
- Scalable for growing businesses
Cons
- Customizability not as flexible as other options
- Some instances of bugs and/or crashes reported
2. Salesforce Sales Cloud
(Source)
Salesforce Sales Cloud is a fully-customizable CRM that allows teams to capture customer information and updates in real-time.
With Sales Cloud, your team can create customized sales pipelines for specific customer segments—and even individual audience members. You can then set up workflows to reach these targets in the most efficient way possible.
Once you set your workflows in motion, you can then begin capturing results within Sales Cloud’s reports and analytics dashboard. Here, you can identify leaks in your funnel and gaps in your buyer’s journey—and begin working on cleaning up these areas as needed.
Pros
- Customized functionality
- Integrates with thousands of tools
- Continually updated by Salesforce team
Cons
- Learning curve (and tool overall) may be too complex for non-technical startups
- Cost may be too expensive for startups
3. Pipedrive
(Source)
Pipedrive is a CRM that focuses heavily on identifying and prioritizing high-quality leads among your target audience.
Once you’ve identified your high-value targets, you can then use Pipedrive to create customized funnels based on your target’s profile and other relevant factors.
You can then set up automated workflows to optimize your target’s path to purchase—increasing their probability of converting even further.
Pros
- Automation simplifies otherwise time-consuming tasks
- User-friendly pipeline customization UI
- Affordable for small businesses
Cons
- Customization processes sometimes include redundancies
- Tool doesn’t scale with the needs of a growing business
Knowledge Management Software Features to Look For
The best knowledge management tools for your organization will depend on your specific needs and requirements. With that said, some of the features you should consider when choosing the right software for your knowledge management initiatives include:
- Ease of use. You want software that’s easy to use with a user-friendly interface. This will make it more likely that your employees will actually use the software and contribute their knowledge and expertise.
- Strong search capabilities. Employees need to easily be able to find the information they need, when they need it, making strong search and discovery an important feature to look for.
- Collaboration. Consider tools for collaboration and communication, such as community forums, knowledge bases, project management, and social networking features, to facilitate knowledge sharing and collaboration among team members.
- Security and access control. Look for software that includes these features so you can ensure that sensitive information is protected from unauthorized access.
- Version control. This is important for allowing team members to track changes to documents and other content over time, and to revert to earlier versions if necessary.
- Integrations. Ideally, the knowledge management software you choose can integrate with whatever other tools are in your tech stack so that you can streamline processes as well as leverage the data from your other tools.
- Customization. Look for software that is customizable and can be tailored to meet the specific needs of your organization.
By considering these key features, you can choose software that will support your knowledge management efforts and help your organization achieve its goals.
Benefits of Using Knowledge Management Software
While it isn’t necessary to use knowledge management software in order to implement knowledge management strategies within an organization, it can be a powerful tool for managing and organizing knowledge, and can help to make the process of implementing knowledge management more efficient and effective.
By providing a centralized platform for storing and organizing knowledge, knowledge management software can help to establish a consistent and structured approach to managing knowledge within an organization. This can include processes such as capturing and documenting new knowledge, organizing and categorizing knowledge, and making knowledge available to employees.
Using knowledge management software can also help to ensure that knowledge management processes are efficient and effective, by providing tools and functionality specifically designed for managing knowledge. For example, knowledge management software may include features such as search functionality, document libraries, and tagging systems, which can help to make it easier for employees to access and use knowledge. Moreover, knowledge management software aids in facilitating collaboration between employees and enhances the sharing of information, ideas, and overall expertise.
Essentially, if you want to make the most of your knowledge management capabilities, you should incorporate the use of dedicated knowledge management software.
Below are just some of the benefits of using knowledge management software to implement and improve an organization’s knowledge management capabilities.
1. Improved Access to Information
Knowledge management software can make it easier for employees to access the information they need, by providing a centralized platform for storing and organizing knowledge. This can help to reduce the time and effort required to find and access information, and can also help to ensure that employees are using the most up-to-date and accurate information.
2. Enhanced Collaboration and Knowledge Sharing
Knowledge management software can facilitate collaboration and knowledge sharing among employees by providing tools such as wikis, forums, and discussion boards. This can help to promote the exchange of ideas and experiences, and can also help to ensure that knowledge is not siloed within individual departments or teams.
3. Increased Efficiency
By providing a single location for storing and accessing information, knowledge management software can help to streamline processes and improve efficiency. This can be particularly useful for organizations with large amounts of information and documents to manage.
4. Improved Decision Making
Access to accurate and up-to-date information can help employees make better informed decisions, which can ultimately lead to better business outcomes.
5. Enhanced Knowledge Retention
By providing a platform for storing and organizing knowledge, knowledge management software can help to ensure that important knowledge, particularly tribal knowledge, is not lost when employees leave the organization.
6. Enable Innovation
Knowledge management software facilitates access to sources of knowledge and expertise as well as promotes cross-team collaboration, which helps to expose employees to new ideas as well as diverse perspectives and expertise. This can lead to new insights and innovative solutions.
7. Improved Productivity
By enabling organizations to more effectively manage, share, and use the knowledge and expertise of their employees, knowledge management software can ultimately enable employees to be more productive.
Helpjuice’s Knowledge Base for Knowledge Management
A knowledge base is a centralized database on which an organization’s entire breadth of knowledge is created, stored, managed, and shared with both internal teams and audience members.
Whereas document management systems focus on storing actual files and documentation, knowledge bases focus on storing knowledge. “Knowledge,” in this sense, refers to the actual information being shared within such documentation—as well as the documentation itself.
The key features of a high-quality knowledge base include:
- A fully-customizable UI (on both the front- and backend)
- Comprehensive search and navigation capabilities
- Robust and understandable analytics and reporting
Knowledge bases can be created to assist your audience, your internal teams, or both. For your audience, knowledge bases allow individuals to find the answers to common questions and dig deeper into the various aspects of your services. Internally, knowledge bases ensure your teams always have the information they need to best complete their assigned duties.
Overall, knowledge bases promote efficiency: They allow the user to quickly find what they’re looking for, so they can get back to taking on the task at hand.
For more information about how a knowledge base can help your organization, sign up for a free demo.
Get a live demo with our VP of Success to learn how Helpjuice’s knowledge base software can help your organization’s knowledge management strategy.