/bundles/itninjaweb/img/Breadcrumb_cap_w.png

Blogs

Kace Friday on 8/24/2018



Hello everyone,

This Friday, starting at 1 AM CST, please follow on twitter @questexperts as we will be having a product day for the Kace Appliances.  We will have all the latest release info on our Kace products as well as features, awesome tricks, and other helpful info.  This will be an entire day about the Kace products on social media. 
Be the first to comment

K1000 SMA v9 Upgrade - Unofficial Beta Findings

We've had the Beta for K1000 v9.0 running on our environment for a few weeks, and thought I'd put down my thoughts now it's in general release (today, 20/8/18, it's here if you'd like to take a look!), as well as ask everyone else who's been running it what theirs are - it's possible those who don't use certain aspects I do will find this interesting, and I certainly would love to hear about other people's experiences with elements I don't use. Please comment below with what you're finding about stuff I've missed, or if you have any further questions about anything I've mentioned.

 

Also bear in mind this has been accrued across the Beta - my comments and issues may not reflect everything about the finished v.9 release as I've typed this before it comes out, and are also purely my opinion.

 

UI

Let's head this off with the most noticeable (and one of the most anticipated reading uservoice) changes - you can change the UI colours! :

SfbaL2.png

 

My eyes have never been more thankful - I had a good few users who moaned when it went a bit bright and migraine-inducing. You've now got the choice of three options, 'Light' (White like v.8), 'Dark' (above, which is a nice off-grey rather than full-bore black), and 'Hybrid' (which is a bit of both, like the old v.6 UI). You can set any of these as the default for all users, with individuals able to then go in and change their individual preference (which is remembered rather than having to be edited every time they log on - thank you Quest!)

 

We run the K2000 SDA too so actually got a preview of this change when we upgraded to K2000 v.6 - I'm speaking entirely theoretically here, but the way Quest release Kace, it seems the SDA is a bit of a testbed for changes to the SMA, so there's a possible heads up for you...

 

On a side note, other than simply being nicer on the eyes (white text on dark backdrop on a screen is always better), I think the dark grey/orange/blue colour scheme is actually rather snazzy and highlights important info well... 

 

Service Desk

God bless pre-filled responses. No more impolite 'DONE' in a Resolution/Comment field from impatient techs. I've also found with the bulk of a message written, people are more inclined to take a couple of seconds and add technical details we may need later (We use a resolution field as a technical explanation of the issue for later Helpdesk reference, and comments for user interaction)

 

CC'd users being able to view and comment on tickets is a simple improvement but effective - makes getting people to approve/do leg work on tickets much easier. I'd still like to have a field to give CC'd users the ability to edit tickets they're CC'd in on. The only issue we bumped into here was when a typed email didn't match the user's email in the users section (case was our issue: Joe.Bloggs@company.com is not the same as joe.bloggs@company.com!). Being able to reply to an approval request email to approve or deny makes life easier too, especially for 'much too busy' people who are apparently so busy they stare constantly at their emails, you know the type.

 

Dashboards are nice and simple now with the new selection of widgets - select what you want and boom, instant dashboard. It's not extensive enough for everything you might want, but for a quick heads up, the large numbered counters for things like Overdue Tickets are great and take 30s (if that) to set up - as a bonus, you can click on them and they'll take you directly to the issue: i.e. you've got 6 overdue tickets on your dashboard, click the 6 and it'll take you directly to those 6 overdue tickets. Nice. I would like the dashboard to sit on an adjustably sized grid (so we can go more than 4 widgets wide on a wide-screen monitor or a window that's been zoomed out slightly), but I'd also like a holiday in the Seychelles and a new car...

 

Being able to put Downloads behind approval systems means we are going to be moving over to using that instead of getting users to raise tickets for software installs. We can shove our entire library of managed installations onto the Downloads section (behind user labels of course) and let the users ask for what they want with just a single approval needed rather than getting them to raise a ticket, have us process it, then apply the label for install, check in to ensure success, then fill out and close the ticket. Happy users and Happy Technicians.

 

Systems Management

Loads of good things here! Mostly related to the changes that have been made to the Agent, which makes it much more attractive as a tool for everyday work than previously (no offence <v.9.0 Agents, I still loved you)

 

Agents being a 'desktop application' (you get a little icon in your taskbar on Windows now) 

P8QRqy.png

has made life a lot easier for all involved. Users can tell if they're connected (and appreciate that happy green K as 'doing something'), and request an inventory. We can also troubleshoot Agent issues a lot quicker. A knock-on effect of the changes in the Agent has meant device actions are browser-agnostic ( a similar, non-official fix has been in existence for a while thanks to UntchV; https://www.itninja.com/blog/view/use-kace-k1000-device-actions-with-any-windows-browser, but this is the 'Official' version) K1000 sends the device action to your agent, instead of via an (always, to my mind at least, slightly dodgy) ActiveX control in IE. This means we now use device actions all the time (all our service desk techs use Chrome) instead of never like we used to. Being able to Teamviewer/VNC/load MMC consoles/file locations from the Management console in a couple of clicks streamlines the process a huge amount. We're going all in with our custom actions now to leverage this as much as possible. The only thing I'd like extra to this is for the device listed in a service desk ticket to have the device action button next to it so you can go into a ticket and resolve it from the same page, but again, holiday and new car...

 

Here's a bunch of smaller things which I've bundled together quickly: 

1. WinRM/SSH Tunnels are something we're beginning to utilise, initially for simple WoL's, but we'll be attempting to use them to manage Agents on some of our multiple VLANS. 

2. Introduction of Raspbian support is nice, as we have a bunch of Pi's running various screens and so on around the business, and we can now tie them into K1000.

3. We're a Dell shop now, but have a couple of older HP's and Lenovos knocking about - their (lack of) warranty data was picked up immediately once we'd added the API keys. Good job Kace.

4. Software License Harvesting - waiting for this to kick in, but it all looks good. You can also exclude software from being recognised as a 'license' so no more non-compliance warning for having no Powershell licenses...

5. Not messed about with the unified Task Schedule list too much, but you can essentially queue up things to happen in the correct order now - i.e. in the middle of the night, WoL a machine that's asleep, send out installations, patch those installations, patch the machine, run a script, then send it back to sleep when you're done. This unifies the 'send it and hope it hits in the right order' procedure that we've used previously - there were ways around this, but they were a bit ad-hoc. To have it built in from the ground up is muuuuch better.

 

From a personal note, it's good to see Quest taking some proper steps forward. If this is the kind of improvement we can see in a Major Version update from now on I'll be delighted.

 

I've probably missed a load of stuff, so would love to hear from anyone else about their experiences with it. 

Be the first to comment

VB script to ADD/Delete registry to ALL USERS HKCU profile during installation.

Option Explicit
On error resume next
Dim oFSO,oShell,oNetwork 

' Set Registry Constants
Const HKEY_CLASSES_ROOT =&H80000000
Const HKEY_CURRENT_USER =&H80000001
Const HKEY_LOCAL_MACHINE = &H80000002
Const HKEY_USERS = &H80000003

Set oShell = CreateObject("WScript.Shell")
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oNetwork = CreateObject("WScript.Network")

 '###################################################################################
' -----------Edit below section As per HKCU registry key ------------------------
'###################################################################################      

AddToUserHives "SOFTWARE\TEST\Google\Chrome","UpdateDisabled","REG_DWORD", "1"
AddToUserHives "SOFTWARE\TEST2\Google\Chrome","UpdateDisabled","REG_SZ", "1"
AddToUserHives "SOFTWARE\TEST1\Google\Chrome","UpdateDisabled","REG_DWORD", "1"

DeleteFromUserHives "SOFTWARE\TEST1\Google\Chrome"



'###################################################################################
' -----------Below are the function dont edit below section-------------------------
'###################################################################################

Function FileExist(sFilePath)
If oFSO.FileExists(sFilePath) Then
FileExist = True
Else
FileExist = False
End If
End Function

Function IsRegKeyExist(sRootKey,sSubKey)
Dim sKeyName,iRetVal
sKeyName = sRootKey & "\" & sSubKey
    iRetVal = oShell.Run("REG QUERY" & " " & chr(34) &  sKeyName & chr(34),0,True)
    If iRetVal <> 0 Then
        IsRegKeyExist = False
    Else
        IsRegKeyExist = True
    End If
End Function

Function IsRegValNameExist(sRootKey,sSubKey,sValueName)
Dim sKeyName,iRetVal
sKeyName = sRootKey & "\" & sSubKey
    iRetVal = oShell.Run("REG QUERY " & chr(34) & sKeyName & chr(34) & " /v " & chr(34) & sValueName & chr(34),0,True)
    If iRetVal <> 0 Then
        IsRegValNameExist = False
    Else
        IsRegValNameExist = True
    End If
End Function


Sub CreateKey(sRootKey,sSubKey)
Dim sKeyName,iRetVal
sKeyName = sRootKey & "\" & sSubKey
    If Not IsRegKeyExist(sRootKey,sSubKey) Then
        ''''LogItem "About to create: " & chr(34) & sKeyName & chr(34),True,False
        iRetVal = oShell.Run("REG ADD " & chr(34) &  sKeyName & chr(34) & " /f",0,True)
        If iRetVal <> 0 Then
            ''''LogItem chr(34) & sKeyName & chr(34) & " was not created",True,False
        Else
            ''''LogItem chr(34) & sKeyName & chr(34) & " has been created",True,False
        End If
    Else
        '''LogItem chr(34) & sKeyName & chr(34) & " already exists",True,False
    End If
End Sub

Sub DeleteKey(sRootKey,sSubKey)
Dim sKeyName,iRetVal
sKeyName = sRootKey & "\" & sSubKey
    If IsRegKeyExist(sRootKey,sSubKey) Then
        ''''LogItem "About to delete: " & chr(34) & sKeyName & chr(34),True,False
        iRetVal = oShell.Run("REG DELETE " & chr(34) &  sKeyName & chr(34) & " /f",0,True)
        If iRetVal <> 0 Then
            ''''LogItem chr(34) & sKeyName & chr(34) & " was not deleted",True,False
        Else
            ''''LogItem chr(34) & sKeyName & chr(34) & " has been deleted",True,False
        End If
    Else
        ''''LogItem chr(34) & sKeyName & chr(34) & " does not exist.",True,False
    End If
End Sub
 
Sub SetRegVal(sRootKey,sSubKey,sValueName,sDataType,sValue)
    Dim sKeyName
sKeyName = sRootKey & "\" & sSubKey
    
    If Not IsRegKeyExist(sRootKey,sSubKey) Then
        CreateKey sRootKey,sSubKey
    End If
    
    If Right(sValue,1) = "\" Then
    sValue = sValue & "\"
    End If

    Dim iRetVal
    iRetVal = oShell.Run("REG ADD " & chr(34) & sKeyName & chr(34) & " /v " & chr(34) & sValueName & chr(34) & " /t " & sDataType & " /d " & chr(34) &  sValue & chr(34) & " /f",0,True)
    If iRetVal <> 0 Then
        '''LogItem "The value of " & chr(34) & sValueName & chr(34) & " under " & sKeyName & " was not set to " & chr(34) & sValue & chr(34) & " as " &  sDataType,True,False
        '''LogItem "The process returned: " & iRetVal,True,False
    Else
        '''LogItem "The value of " & chr(34) & sValueName & chr(34) & " under " & sKeyName & " was set to " & chr(34) & sValue & chr(34) & " as " &  sDataType,True,False
    End If
End Sub

Sub DelRegValName(sRootKey,sSubKey,sValueName)
Dim iRetVal,sKeyName
sKeyName = sRootKey & "\" & sSubKey
    If IsRegValNameExist(sRootKey,sSubKey,sValueName) Then
        '''LogItem "About to delete " & chr(34) & sValueName & chr(34) & " under " & chr(34) & sRootKey & "\" & sSubKey & chr(34),True,False
        iRetVal = oShell.Run("REG DELETE " & chr(34) &  sKeyName & chr(34) & " /v " & sValueName & " /f",0,True)
        If iRetVal <> 0 Then
            '''LogItem chr(34) & sKeyName & "\" & sValueName & chr(34) & " was not deleted",True,False
        Else
            '''LogItem chr(34) & sKeyName & "\" & sValueName & chr(34) & " has been deleted",True,False
        End If
    Else
        '''LogItem chr(34) & sKeyName & "\" & sValueName & chr(34) & " does not exist.",True,False
    End If
End Sub

Sub AddToUserHives(sUserRegPath,sValueName,sType,sValue)
    Dim oReg
    Set oReg = GetObject("winmgmts://./root/default:StdRegProv")

    Dim sProListRegPath
    sProListRegPath = "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList"

    ' Enumerate profile list from registry
    Dim oProfile,oProfiles,sProfileDir
oReg.EnumKey HKEY_LOCAL_MACHINE, sProListRegPath, oProfiles

    Dim sProfile,sProfileName
    Dim iRetVal
    For Each oProfile In oProfiles
        oReg.GetExpandedStringValue HKEY_LOCAL_MACHINE, sProListRegPath & "\" & oProfile, "ProfileImagePath", sProfileDir

        sProfile = Split(sProfileDir, "\")
        sProfileName = sProfile(2)

        ' filter out unnecessary profiles 
     If (sProfileName <> "config") And (sProfileName <> "system32") And (sProfileName <> "ServiceProfiles") And (sProfileName <> "Administrator") And (sProfileName <> "localservice")And (sProfileName <> "networkservice") Then
    If FileExist(sProfileDir & "\NTuser.dat") Then
''''LogItem "Will try to mount user hive: " & sProfileDir & "\NTuser.dat",True,False
If MountHive(sProfileDir & "\NTuser.dat") Then
SetRegVal "HKU","CUSTOM\" & sUserRegPath,sValueName,sType,sValue
UnmountHive
Else
Dim oWMI
Set oWMI = GetObject("winmgmts://./root/cimv2")
Dim sDomain
sDomain = oNetwork.UserDomain
Dim oAccount
'Set oAccount = oWMI.Get("Win32_UserAccount.Name='" & sProfileName & "',Domain='" & sDomain & "'")
Dim sSID 
'sSID = oAccount.SID
sSID = oProfile
SetRegVal "HKU",sSID & "\" & sUserRegPath,sValueName,sType,sValue
End If
End If
End If
Next

    MountDefaultHive
    ''''LogItem "Will now update default user hive for all users.",True,False
SetRegVal "HKU","CUSTOM\" & sUserRegPath,sValueName,sType,sValue
    '''LogItem "Default user hive is now updated for all users.",True,False
UnmountHive
End Sub

Sub DeleteFromUserHives(sUserRegPath)
    Dim oReg
    Set oReg = GetObject("winmgmts://./root/default:StdRegProv")

    Dim sProListRegPath
    sProListRegPath = "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList"

    ' Enumerate profile list from registry
    Dim oProfile,oProfiles,sProfileDir
oReg.EnumKey HKEY_LOCAL_MACHINE, sProListRegPath, oProfiles

    Dim sProfile,sProfileName
    Dim iRetVal
    For Each oProfile In oProfiles
        oReg.GetExpandedStringValue HKEY_LOCAL_MACHINE, sProListRegPath & "\" & oProfile, "ProfileImagePath", sProfileDir

        sProfile = Split(sProfileDir, "\")
        sProfileName = sProfile(2)

        ' filter out unnecessary profiles 
If (sProfileName <> "config") And (sProfileName <> "system32") And (sProfileName <> "ServiceProfiles") And (sProfileName <> "Administrator") And (sProfileName <> "localservice")And (sProfileName <> "networkservice") Then
         If FileExist(sProfileDir & "\NTuser.dat") Then
                ''''LogItem "Will try to mount user hive: " & sProfileDir & "\NTuser.dat",True,False
                If MountHive(sProfileDir & "\NTuser.dat") Then
                    DeleteKey "HKU","CUSTOM\" & sUserRegPath
                    UnmountHive
                Else
                    Dim oWMI
Set oWMI = GetObject("winmgmts://./root/cimv2")
                    
                    Dim sDomain
                    sDomain = oNetwork.UserDomain

                    Dim oAccount
                    'Set oAccount = oWMI.Get("Win32_UserAccount.Name='" & sProfileName & "',Domain='" & sDomain & "'")

                    Dim sSID 
                    'sSID = oAccount.SID
sSID = oProfile



                    DeleteKey "HKU",sSID & "\" & sUserRegPath
                End If
            End If
        End If
    Next

    MountDefaultHive
    '''LogItem "Will now update default user hive for all users.",True,False
DeleteKey "HKU","CUSTOM\" & sUserRegPath
    ''''LogItem "Default user hive is now updated for all users.",True,False
UnmountHive
End Sub
 
Function MountHive(sHivePath)
Dim sCmd,iRetVal
sCmd = "REG.EXE LOAD HKEY_USERS\CUSTOM " & chr(34) & sHivePath & chr(34)
''''LogItem "About to run: " & sCmd,True,False
iRetVal = oShell.Run(sCmd,0,True)
    If iRetVal <> 0 Then
        MountHive = False
        ''''LogItem chr(34) & sHivePath & chr(34) & " is currently in use.",True,False
    Else
        MountHive = True
        ''''LogItem chr(34) & sHivePath & chr(34) & " is now mounted.",True,False
    End If
End Function

Sub UnmountHive
Dim sCmd
sCmd = "REG UNLOAD HKEY_USERS\CUSTOM"
Dim iRetVal
iRetVal = oShell.Run(sCmd,0,True)
    If iRetVal <> 0 Then
        ''''LogItem "Unable to unmount user hive. Exit code: " & iRetVal,True,False
        QuitScript(1603)
    Else
        '''LogItem "Unmounted user hive. Exit code: " & iRetVal,True,False
    End If
End Sub

Sub MountDefaultHive
Dim sCmd
sCmd = "REG LOAD HKEY_USERS\CUSTOM " & chr(34) & "%SYSTEMDRIVE%\Users\Default\NTUSER.DAT" & chr(34)
Dim iRetVal
iRetVal = oShell.Run(sCmd,0,True)
End Sub
View comments (1)

Did you miss the first KACE Education Virtual User Group webinar? View the recording now.

KACE Education Virtual User Group Members

Several of you were not able to attend the inaugural meeting, so we are providing the link to the recording, as promised. Many thanks to Beth and Peter for their excellent presentation: “How to manage your imaging project with KACE this summer!” The detailed explanations of both the “how to’s” and the re-imaging results will be extremely valuable to many group members this summer and in the future.

Haven't joined the KACE Educations Virtual User Group yet? 

Just mail: KACEResearch@quest.com and let us know you want to join.

Next Steps

The next step for your User Group is to please complete the survey which will help us plan for the future including:

  • ·        Feedback on the first webinar
  • ·        Topics for next webinar(s)
  • ·        Invitation to participate in User Experience testing
  • ·        Opportunity to meet up in person
  • ·        More

It will take less than five minutes of your time. Take the Survey Now Then...

Save the date!

Our next KACE Education Virtual User Group webinar will be on November 6, 2018 and will feature Eric J. Rzeszut from the University of Virginia for a topic based on the survey results. You will be sent details as we get closer to November.

Thank you again to Beth and Peter and to you for your participating in the KACE Education Virtual Group. We look forward to our next meeting in November.

See you then!

The KACE User Group Team

Be the first to comment

Reminder: Today, 7/26/2018 @ 1:00pm ET - KACE Education Virtual User Group Meeting

Interested in joining the new KACE Education Virtual User Group? We are happy to report that our first Virtual User Group webinar is scheduled! A link to the details and registration is provided at the bottom of this email.


Announcing the first KACE Education Virtual User Group meeting

Featured Topic: How to manage your imaging project with KACE this summer!

Presenters: Beth Skrobanski and Peter Small

From: Albemarle County Public Schools

When: July 26th, 2018

 Register for the Presentation


Haven't joined the KACE Educations Virtual User Group yet? 

Just mail: KACEResearch@quest.com and let us know you want to join.

View comments (2)
Showing 1 - 5 of 3208 results