/bundles/itninjaweb/img/Breadcrumb_cap_w.png

Blog Posts tagged with Kace K1000 Management Appliance

Ask a question

Powershell Function for Kace REST API

Since there isn't official support for the API from Quest and the documentation provided is, well...lacking. I thought I would post what I use to interface with the API with examples of the endpoints I've been able to use successfully.

One of the biggest hurdles is incorrect paths in the documentation. For instance, /api/mi/managed_installs/add_to_machines is in the documentation, but the actual endpoint is /api/managed_install/managed_installs/add_to_machines. Some endpoints don't return the data they say they do, like /api/managed_install/machines/{MachineID}. it says it returns the MIs that the machine ID is a part of, but it just returns the machine information...which is useless (you could just use /api/inventory/machines).

Anyway, all of that aside, the below code (Powershell function) has examples that use the correct paths, and are tested and working on my 8.0 appliance. I use Powershell 5, and can't guarantee functionality for any previous Powershell versions. Also, be careful, as the API does not prompt for confirmation before processing, it just does it. The examples are in the comment-based help (for use with the Get-Help cmdlet). The function supports both single and multiple ORG appliances. For single org appliances, either omit the organization parameter or use -Organization Default. For multiple orgs, just use the name of the org with the Organization parameter. You can also log into the system org using -Organization System.

Please add comments below for any other paths that you have been able to use. Especially ones that differ from the documentation or aren't explained well in the documentation.

Note: Sorry the formatting is so crazy - it's cleaner in ISE.
#Requires -Version 5

#Initialize the WebSession hash table
if (!$Script:KaceREST) {

    $Script:KaceREST = @{}

}

#Force TLS 1.2 (required for K1000 8.0)
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

function Send-KaceAPIRequest {
<#
.SYNOPSIS
    This function provides an easy(ish) method to interface with the K1000 REST API. 
.DESCRIPTION
    THe function will automatically log in to the appliance and establish a web session for the specified organiztion.
    Multiple organizations can be used at once, and the function will maintain a separate web session for each org.
    Data is returned from the function as the content from the full HtmlWebResponseObject that has been converted from JSON into a PSObject using ConvertFrom-Json.
    The -FullContent parameter can be used to return the original HtmlWebResponseObject in its entirety.
    
    Note: 
      The Kace REST API documentation is rife with incorrect paths. If the paths in the below examples differ from the documentations, then (at least at this point), the documentation is wrong.
      I use Powershell 5. I have done no testing with any previous version of Powershell, nor do I plan to.
      My K1000 is on version 8.0. This function has only been tested with this version.
      Use at your own risk.

.PARAMETER K1000Url
    The Url of the K1000. Must begin with either http:// or https://

.PARAMETER Method
    HTTP verb to be used in the request. Must be one of the following: GET, POST, PUT, DELETE, OPTIONS, PATCH

.PARAMETER URI
    The path to the API endpoint. Must begin with either /api or /ams. Ex. -URI /api/inventory/machines

.PARAMETER Query
    Query to be added the request. Must begin with a ?. If there are spaces, then the parameter must be enclosed in double or single quotes. Ex. -Query '?filtering=name eq MACHINE1'

.PARAMETER Organization
    The organization to send the request. Defaults to "Default"

.PARAMETER Body
    Only available if the Method is PUT, POST, or PATCH. Accepts a hash table @{Property1=Value1;Property2=Value2}.

.PARAMETER FullContent
    Switch that tells the function to return the full HtmlWebResponseObject instead of the default PsObject. Use for extra troubleshooting information.

.EXAMPLE
Get all machines (limited to 50 devices by default)
    Send-KaceAPIRequest -K1000Url https://K1000 -Method GET -URI /api/inventory/machines

.EXAMPLE
Get all machines (no limit) Note: ALL is case sensitive, but 0 can also be used
    Send-KaceAPIRequest -K1000Url https://K1000 -Method GET -URI /api/inventory/machines -Query '?paging=limit ALL'
    Send-KaceAPIRequest -K1000Url https://K1000 -Method GET -URI /api/inventory/machines -Query '?paging=limit 0'

.EXAMPLE
Get machines based on filters

    Machines with Win 7 enterprise x64 - full machine data -uses Organization called Test
        Send-KaceAPIRequest -K1000Url https://K1000 -Method GET -URI /api/inventory/machines -Query '?shaping=machine all&paging=limit all&filtering=os_name eq Microsoft Windows 7 Enterprise x64' -Organization Test

    Machines with softwre that contains "Chrome" installed - limited machine and software data
        Send-KaceAPIRequest -K1000Url https://K1000 -Method GET -URI /api/inventory/machines -Query '?shaping=machine limited,software limited&paging=limit all&filtering=software.display_name co Chrome'

    Machines in a label named Test - Note: if using label ID (label.id) to filter for devices in a SMART label, know that the ID is based on the manual label that the smart label is associated with, not the ID of the smart label
        Send-KaceAPIRequest -K1000Url https://K1000 -Method GET -URI /api/inventory/machines -Query '?shaping=machine all&paging=limit ALL&filtering=label.name eq Test'

.EXAMPLE
Add machine to Managed Install

    Get machines in set of names
        $Machines = Send-KaceAPIRequest -K1000Url https://K1000 -Method GET -URI /api/inventory/machines -Query '?shaping=machine limited&paging=limit ALL&filtering=name in MACHINE1;MACHINE2'

    Add machines from previous query to managed install with ID 111 in Org Test
    Note: defining the machine IDs as an array is necessary in case only one machine is being added
        Send-KaceAPIRequest -K1000Url https://K1000 -Method PUT -URI /api/managed_install/managed_installs/111/add_to_machines -Organization Test -Body @{Machines=[array]$Machines.Machines.Id}

.EXAMPLE
Remove machines from Managed Install
    
    Remove same machines from above add request
        Send-KaceAPIRequest -K1000Url https://K1000 -Method PUT -URI /api/managed_install/managed_installs/111/remove_from_machines -Organization Test -Body @{Machines=[array]$Machines.Machines.Id}

.EXAMPLE
Run a script with ID 15 on machines in a label named Test and check the status after 5 seconds

    Get machines and format a string for the below post request (IDs must be separated by commas)
    $Machines = Send-KaceAPIRequest -K1000Url https://K1000 -Method GET -URI /api/inventory/machines -Query '?paging=limit 0&shaping=machine limited&filtering=label.name eq Test'
        
    [string]$MachineIDs = $null

    foreach ($MachineID in $Machines.Machines.Id) {

        $MachineIDs += ',' + $MachineID

    }

    $MachineIDs = $MachineIDs.Substring(1)
    
    Note: Returns 0 if failed
    $ScriptRun = Send-KaceAPIRequest -K1000Url https://K1000 -Method POST -URI /api/script/15/actions/run?machineIDs=$MachineIDs

    if ($ScriptRun[0] -ne 0) {

        Start-Sleep -Seconds 5

        #Check Status of request
        Send-KaceAPIRequest -K1000Url $K1Url -Method GET -URI /api/script/runStatus/$ScriptRun

    }

    else {

        $ScriptRun[1]

    }

.LINK
    https://support.quest.com/download/downloads?id=6083693

.LINK
    http://support.quest.com/technical-documents/kace-sma/8.0/api-reference-guide/
#>

    Param (

        [Parameter(Position=0,Mandatory=$true,HelpMessage='Must begin with ''http://'' or ''https://''')]
        [ValidateScript({$_ -like "http://*" -or $_ -like "https://*"})]
        [String]
        $K1000Url,
        
        [Parameter(Position=1,Mandatory=$true,HelpMessage='Insert a valid HTTP verb: GET, OPTIONS, POST, PUT, DELETE, or PATCH')]
        [ValidateSet('GET','POST','PUT','DELETE','OPTIONS','PATCH')]
        [String]
        $Method='GET',

        [Parameter(Position=2,Mandatory=$true,HelpMessage='Must begin with ''/api'' or ''/ams''')]
        [ValidateScript({$_ -like "/api*" -or $_ -like "/ams*"})]
        [String]
        $URI,

        [Parameter(Position=3)]
        [ValidateScript({$_ -like "?*"})]
        [String]
        $Query,

        [Parameter(Position=4)]
        [String]
        $Organization='Default',

        [Parameter(Position=6)]
        [ValidateScript({$Script:KaceREST.Keys -contains $Organization})]
        [Switch]
        $ResetCookies=$false,

        [Parameter(Position=7)]
        [Switch]
        $FullContent=$false


    )

    DynamicParam {

        #Define Body paramter if method is PUT, POST, or PATCH
        if ($Method -in ('POST','PUT','PATCH')) {

            #Create parameter attributes
            $BodyParamAttributes = New-Object -Type System.Management.Automation.ParameterAttribute -Property @{

                Position=5
                ParameterSetName='_AllParameterSets'
                HelpMessage='Accepts a hastable with the required properties that will be converted to JSON'

            }

            #Add parameter attributes to collection
            $BodyParamAttributeCollection = New-Object -Type System.Collections.ObjectModel.Collection[System.Attribute]
            $BodyParamAttributeCollection.Add($BodyParamAttributes)

            #Create parameter
            $BodyParam = New-Object -Type System.Management.Automation.RuntimeDefinedParameter("Body", [Hashtable],$BodyParamAttributeCollection)

            #Define and return parameter
            $BodyParamDictionary = New-Object -Type System.Management.Automation.RuntimeDefinedParameterDictionary
            $BodyParamDictionary.Add("Body",$BodyParam)
            Return $BodyParamDictionary

        }

    }

    Begin {

        if ($ResetCookies) {

            $Script:KaceREST.Remove($Organization)

        }

        if (!$Script:KaceREST."$Organization") {

            #Get credentials for login and create login JSON request
            #HTTPS is recommended since credentials are sent in plain text
            #If the password needs to be stored to be able to run API requests for automation, then please read the following articles for doing this as securely as possible.
            #https://blog.kloud.com.au/2016/04/21/using-saved-credentials-securely-in-powershell-scripts/
            #https://stackoverflow.com/questions/29103238/accessing-windows-credential-manager-from-powershell
            #https://www.powershellgallery.com/packages/CredentialManager/2.0 (requires Powershell 5)
            try {
            
                $RestCredentials = Get-Credential -Message "Type in the K1000 REST Username/Password for Org $Organization"

                $RESTUserName = $RestCredentials.UserName

                if (!$RestCredentials -or $RestCredentials.Password.Length -eq 0) {
                
                    Throw "Operation cancelled by user or invalid credential object"
                    
                }

                $RESTPassword = [Runtime.InteropServices.Marshal]::PtrToStringAuto([Runtime.InteropServices.Marshal]::SecureStringToBSTR(($RestCredentials.Password)))

                $LoginBody = ConvertTo-Json -InputObject ([ordered]@{'password'=$RESTPassword;'userName'=$RESTUserName;'organizationName'=$Organization})

            }

            catch {

                if ($_.Exception -eq 'Operation cancelled by user or invalid credential object') {

                    Write-Error -Message "Unable to create login request for $K1000Url`: Invalid credential object or operation cancelled by user."

                    Exit

                }
                
                Write-Error -Message "$_`nUnable to create login request for $K1000Url.`nPlease check that the credentials are correct."

                Exit

            }

            #Log in to the API

            try {

                #Create key in the hash table for specified ORG to store Web session
                $script:KaceREST.Add($Organization,(New-Object Microsoft.PowerShell.Commands.WebRequestSession))
            
                #Post login request
                $LoginRequest = Invoke-WebRequest -Uri ("$K1000Url" + "/ams/shared/api/security/login") -Method Post -ContentType 'application/json' -Headers @{'Accept'='application/json';'x-dell-api-version'=1} -Body $LoginBody -WebSession $script:KaceREST.$Organization -ErrorAction Stop

                #Add CSRF token to web session
                $script:KaceREST.$Organization.Headers.Add('x-dell-csrf-token',$LoginRequest.Headers.'x-dell-csrf-token')

            }

            catch {
                
                #If login failed, clear the web session from the table
                $Script:KaceREST.Remove("$Organization")

                Write-Error -Message "$_`nUnable to log in to REST API at $K1000Url.`nPlease check that the Url and credentials are correct, and that mobile access is enabled for the specified user."

                Exit

            }
            
        }

    }

    Process {

        try {
            
            #Build the request URL
            $RequestUri = "$K1000Url" + "$Uri" + "$Query"

            #Convert the body hash table to JSON
            if ($PSBoundParameters.Body) {

                $Body = ConvertTo-Json -InputObject $PSBoundParameters.Body

            }
            
            #Send the request. -ContentType and Body parameters are required for PUT/POST requests. They are here for all requests because it simplifies coding and are ignored for the GET method anyway.
            $Response = Invoke-WebRequest -Uri $RequestUri -Method $Method -WebSession $Script:KaceREST.$Organization -ContentType 'application/json' -Body $Body -ErrorAction Stop

        }

        catch {

            Write-Error -Message "$_`n$Method request to `'$RequestUri`' for the $Organization org failed.`nPlease check that the API path is correct and mobile access is enabled for the specified user.`nUse -ResetCookies if you think that the token has expired."
            
            Exit

        }

    }

    End {

        #Return the response in friendly format, which is the content from the original HtmlWebResponseObject, converted from JSON to a PSObject (ConvertFrom-JSON). 
        #Use -FullContent to return the original HtmlWebResponseObject
        if ($Response.GetType().Name -eq 'HtmlWebResponseObject') {

            if ($FullContent) {

                $Response

            }

            else {

                ConvertFrom-JSON -InputObject $Response.Content

            }

        }

        else {

            Write-Error -Message "Unable to return HTML response"

        }

    }

}

#Define K1 URL amd Organization name
$K1Url = "https://K1000"
$OrgName = "Default"

#Get all machines (limited to 50 devices by default)
$Machines = Send-KaceAPIRequest -K1000Url $K1Url -Method GET -URI /api/inventory/machines -Organization $OrgName
View comments (5)

Managing Dell Servers with the Dell KACE K1000 and Dell Open Manage

Managing servers as part of a systems management solution presents unique challenges that need to be addressed differently from client systems. Dell offers a set of freely available tools, called OpenManage, to help manage servers purchased from Dell. These tools deliver remote access management, BIOS and system chassis management, and active hardware system monitoring via SNMP or IPMI. Integrating the OpenManage toolset with the Dell | KACE K1000 Systems Management Appliance provides a comprehensive end-to-end solution for managing Dell servers. This white paper discusses the issues and the capabilities of addressing those issues with the combined OpenManage and Dell KACE offerings.

View comments (1)

KACE Launches New Help Desk Module For Upgraded KBOX IT Management Applicance

http://www.kace.com

KACE LAUNCHES NEW HELP DESK MODULE FOR UPGRADED KBOX IT MANAGEMENT APPLIANCE

Automated support ticket management and enhanced Microsoft Security Bulletin patch installation process reduces IT staffing costs for mid-market organizations

MOUNTAIN VIEW, Calif. – January 30, 2006 - KACE™, the leader in IT management solutions for mid-market organizations, today announced the general availability of KBOX™ IT Management Suite 2.1. The new version of the automation appliance integrates with a new help desk module and improved patch management, software distribution and the new ability to manage automated installs of all patches in Microsoft Security Bulletins.

"Patch management is a critical part of a comprehensive security program for IT governance,” said Andrew Plato, President / Principal Consultant for Anitian, a nationally recognized leader in information security and network infrastructure solutions. “Manually applying patches consumes valuable time and lacks auditing and accountability capabilities. The ability of KBOX to automate and manage system patching saves time and helps IT departments maintain security compliance."

In a recent review of 33 IT asset and software management tools, industry-leading tools analyst Steven Russman reported in ECPWeb.com's Tools Manager report: “KBOX offers surprisingly robust software-reconciliation and knowledge-base functions for a mid-market product. The user interface is well designed, straightforward and easy to navigate. We give it high ratings for workflow management (e.g., job, policy, and script-scheduling wizards), event notification (i.e., creating custom alerts using a combination of conditions) and the ability to add custom data fields.”

“KACE’s new help desk module brings the end-users of Windows business desktops into the IT management process by helping IT staff identify technical problems in a manageable way,” said Rob Meinhardt, CEO of KACE. “The KBOX is designed to automate IT management and give IT managers more time to keep their networks secure and running smoothly.”

The KBOX IT Management Suite automatically manages, monitors, and controls the inventory, distribution, patch, security, compliance, messaging, licensing and performance demands of every node on the network.

New features in version 2.1 include:

New Help Desk module – Trouble ticket submission, tracking and management integrated with the KBOX knowledge base, hardware and software inventory, remote control, and customizable reporting;

Automation of Microsoft Security Bulletin updates - Automated creation of managed installs for individual patches and all patches in Microsoft Security Bulletins;

Additional Security and Configuration Wizards - New wizards enable IT managers to easily prevent programs from running, set and lift quarantine policies, deploy McAfee SuperDAT Updater and Symantec Norton AntiVirus, enforce remote desktop configuration, and MSI Installer wizard;

Automated Power-on for late night virus scans and patch updates - Wake-On-LAN support allows IT managers to schedule all your machines to power on at midnight for the important virus scan or software distribution;

Support for Multiple Remote Control Packages – Easy integration and customization for VNC, NetOps, XP Remote and Dameware;

User Self-Service Under IT Control – Users can install approved software, download approved files and run approved scripts without the need to have administrative privileges on their desktops;

New hardware design - 1U rack mount with cool silver faceplate; Dual Intel Xeon 3.0 GHz 2MB Cache with 800 MHz Bus; 2 GB Memory; 3x160GB SATA hard drives; Dual NIC cards.

Pricing for KBOX™ IT Automation Appliance 2.1 starts at $7,500 for a 100-node network. The KBOX™ Policy and Scripting Module, the KBOX™ Security Enforcement and Audit Module and the KBOX™ Help Desk Module are priced separately. For more information, please contact KACE at 888-522-3638 or via email to sales@kace.com.

About KBOX™ by KACE

The KBOX IT Management Suite is an inclusive secure appliance that instantly manages, monitors, and controls the inventory, distribution, patch, security, configuration, compliance, licensing and performance demands of every node on the network. KBOX automates routine and complex IT maintenance tasks, improves IT productivity and security, and robustly promotes network uptime in an extremely flexible, intelligent and unique approach.

About KACE™

KACE is a privately-held technology company that's Rethinking IT through its KBOX™ product line which delivers easy-to-use, comprehensive IT automation solutions that are affordable and really work. KACE is headquartered in Mountain View, California, and has offices in Charlotte, North Carolina and Chicago, Illinois. To learn more about KACE and its product offerings, please visit www.kace.com or call 1-888-522-3638.

Be the first to comment

New KBOX Appliances Bring Enterprise-Grade, Cross Platform IT Automation to Mid-Market

http://www.kace.com

New KBOX Appliances Bring Enterprise-Grade, Cross Platform IT Automation to Mid-Market

KBOX 1000 Series Offers Affordable, Easy to Use Linux, Windows and Mac IT Management

MOUNTAIN VIEW, Calif. – September 12, 2006 - KACE™, the leader in IT management solutions for mid-market organizations, today announced the new KBOX™ 1000 Series Systems Management Appliances, an easy-to-use, affordable line of turnkey IT Automation appliances that allow comprehensive management of laptops, desktops and servers and other network devices across several operating systems.

“Managing mixed environments has traditionally been difficult - but environments will only become more commonplace as many enterprises dip their toes in the Mac or Linux waters with the impending Microsoft® Windows Vista™ rollout,” said Andi Mann, senior analyst at Enterprise Management Associates. “The KBOX 1000 series will go a long way in making mixed environments an easily-managed reality for organizations in the mid market space.”

The KBOX™ 1000 Series is a significant upgrade to KACE’s flagship product launched in 2005, the KBOX™ IT Management Suite. The new KBOX 1000 Series expands its comprehensive management capabilities from Windows to Linux (Red Hat) and Mac OS X.

“We are excited to see KACE bring some of the robust functionality of the KBOX to mixed-environments that run a combination of Mac, Windows and Linux servers and desktops,” said Michelle Drolet, CEO Conqwest. “The KBOX 1000 Series is going to help our clients more cost-effectively manage all of their software and hardware.”

The KBOX™ 1000 Series is a secure, robust line of appliances that provides affordable, end-to-end systems management including: hardware and software inventory, software distribution, patch management, scripting and policy configuration, remote control, alerting, reporting and dashboards, security audit and enforcement, and a end-user self service portal. New features include:

- Flexible wizard-based reporting with 50+ pre-configured reports and dashboards

- Application metering to ease license compliance and harvesting

- Mac OS X and Linux Support:

· Detailed hardware and software inventory

· Remote installation and distribution of applications, updates, service packs and any digital asset

· Pre-configured remote control with support for most industry standard packages

· Alerting based on network and system events

· LDAP integration

The KBOX 1000 Series also includes an optional help desk module that provides trouble ticket submission, tracking and management. Out-of-the box integration with KBOXÂ’s comprehensive management capabilities, including the new Mac and Linux features, allows organizations to solve problems on all systems in real time-- not simply track them.

“The KBOX 1000 is a response to our customers and prospects with mixed Windows, Mac and Linux environments, who have found that tools such as Microsoft SMS cannot meet their needs.” said Marty Kacin, president and CTO of KACE. “The KBOX 1000 Series supports these mixed environments with a rich set of functionality that is affordable for organizations of all sizes.”

The 1000 Series is available in the following models:

· KBOX 1100 for managing 100-1000 systems

· KBOX 1200 for managing 1000 or more systems

Pricing for KBOX™ 1000 Systems Management Series Appliances starts at $9500 for 100 nodes.

The KBOX family also includes the KBOX 2000 Series Systems Deployment Appliances for OS and application provisioning of Windows and Linux desktops, laptops, and servers.

About KACE™

KACE, a privately-held technology company, is the leader in IT automation appliances. KACE is headquartered in Mountain View, California, and has offices in Charlotte, North Carolina and Chicago, Illinois. To learn more about KACE and its product offerings, please visit www.kace.com or call 1-888-522-3638.

Be the first to comment

Education Market Manages Networks with KACE

http://www.kace.com/

KBOX Family of Appliances Helps Education Sector Ensure FERPA Compliance, Manage Mixed Network Environments

MOUNTAIN VIEW, Calif. - November 29, 2006 - KACE, the leader in IT management solutions for mid-market organizations, today announced that its KBOX™ family of systems management and deployment appliances is gaining popularity in the education sector, where mixed-environment, location-independent networks are the norm and managing them is a daily challenge.

KBOX™ 1000 Series Systems Management Appliances and KBOX™ 2000 Systems Deployment Appliances allow budget-minded education organizations affordable enterprise-grade network management functionality, and they help ensure compliance with the Family Educational Rights and Privacy Act (FERPA), the Federal law that protects the privacy of student education records.

Portland Community College, Portland, Oregon, (PCC), one of the largest community colleges in the country, uses KBOX 1000 Series to manage more than 2,100 endpoints throughout its three main campuses and the many remote locations of its Extended Learning Campus.

“We’ve been using the KBOX 1000 for 6 months, and its robust security functionality has been the cornerstone of our Administrative Electronic Information Policy management,” said Michael Heuer, TSS Customer Support Manager, Portland Community College. “Its appliance-based software delivery architecture made deployment so simple it was almost plug-and-play, it works with our existing tools and apps, and its reporting abilities are helping us make smart equipment purchase and replacement decisions.”

A partial listing of KACE customers in the education sector includes:

•Academy School District 20 (Colorado Springs, Colorado)

•Edmonds Community College (Lynnwood, Washington)

•Holmesdale Technology College (Snodland, Kent, England)

•Rancho Santiago Community College District (Orange County, California)

•Teachers' Curriculum Institute (Palo Alto, California)

“With the KBOX 2000, we’re able to sidestep machine-to-machine provisioning hassles and view the deployment status of every end point in our network from the centralized console,” said Chris Carey, IT Manager, Bellarmine College Preparatory (San Jose, California). “The appliance was ready to use in a matter of days, packs a lot of functionality like remote systems repair and recovery, and still fits our budget.”

The KBOX™ 1000 Series offers comprehensive cross-platform management of networked machines running Windows®, Linux (Red Hat) and Mac OS X. The KBOX 1000 Series is a secure, robust line of appliances that provides affordable, end-to-end systems management, including: hardware and software inventory, software distribution, patch management, scripting and policy configuration, remote control, alerting, reporting and dashboards, security audit and enforcement, help desk and a end-user self service portal.

Pricing for KBOX™ 1000 Series Systems Management Appliances starts at $9500 for 100 managed nodes.

The KBOX™ 2000 Series is the only appliance-based solution to combine disk imaging, scripted installation and remote system recovery into a centralized, affordable and easy-to-use solution for automating the end-to-end systems provisioning of desktops, laptops and servers.

Pricing for KBOX™ 2000 Series Systems Deployment Appliances starts at $12,900 for 100 managed nodes.

About KACE

KACE™, a privately held technology company, is the leader in IT automation appliances. The KBOX™ 1000 family of systems management appliances delivers easy-to-use, comprehensive IT automation, is affordable and really works. The KBOX™ 2000 Series provides centralized systems provisioning and remote system recovery for mid-market organizations. KACE is headquartered in Mountain View, California, and has offices in Charlotte, North Carolina, and Chicago, Illinois. To learn more about KACE and its product offerings, please visit http://www.kace.com or call 1-888-522-3638.

©KACE 2006. Note to editors: KACE and KBOX are trademarks or registered trademarks of KACE Networks, Inc. All other trademarks, brand names, or product names belong to their respective holders.

Editorial Contact:

Bret Clement

Page One PR

(303) 462-3057

bret@pageonepr.com

Be the first to comment
Showing 1 - 5 of 552 results

Top Contributors

Talk About appdeploy-package-kb