Archive for the ‘Kaseya Scripts’ Category

Kaseya Script to get OS Install Date

Saturday, January 14th, 2012

This script pulls the Original Install date from the system info and writes it to a custom field in the Machine Summary on the Audit tab.

Step 1:

Click on Audit then Machine Summary.  In the top left of the right pane, click the “New Custom Field” button.  Type “Orignal Install Date” (without the quotes) and leave it as a string.

Step 2:

Import the script and run it.  The Original Install Date (as noted in System Info) will populate the custom field at the bottom of the Machine Summary Page.

<?xml version="1.0" encoding="utf-8"?>
<ScriptExport xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.kaseya.com/vsa/2008/12/Scripting">  
<Procedure name="System Install Date" treePres="3" id="1325867912" folderId="71817821612791213127822581">    
<Body description="Get System install date and write it to the custom Audit field: Original Install Date.">      
<Statement description="Attempts to return results of a shell command to a global variable '#global:cmdresults#'" name="Execute Shell Command - Get Results to Variable" continueOnFail="false">        
<Parameter xsi:type="StringParameter" name="Parameter1" value="systeminfo|find /i &quot;Original Install Date&quot;" />        
<Parameter xsi:type="StringParameter" name="Parameter2" value="false" />        
<Parameter xsi:type="StringParameter" name="Parameter3" value="User" />      
</Statement>      
<Statement description="Update the selected System Info field with the specified value for the agent this procedure runs on." name="UpdateSystemInfo" continueOnFail="false">        
<Parameter xsi:type="StringParameter" name="ColumnName" value="Original Install Date" />        
<Parameter xsi:type="StringParameter" name="Value" value="#global:cmdresults#" />      
</Statement>    
</Body>  
</Procedure>
</ScriptExport>
Not the most elegant script but it gets the job done.

Kaseya Maintenance: Legal Extortion? *UPDATE*

Tuesday, January 3rd, 2012

I have pretty good instincts, but sometimes I let my brain override my instincts.  I have to say a full 90% of the time i do this, my brain screws me.  This is one of those times.

Let me preface this by saying we are still a current customer of Kaseya and are attempting to get resolution to these issues.  I will keep this post updated as new developments occour.

In November of 2008 purchased 1000 seats of Kaseya VSA.  For as much as they charge for this, I expected a full immplementation team wth fireworks, dancing girls, and a marching band.  What I got was an email with a link to training.kaseya.com.  The training videos were so bad they kept calling IIS, ISS.  That was my first warning sign.

So now it’s time to install.  I checked their recommended specs, and spoke to Justin Ramsay aboiut what to get.  This was going to be a new install on new hardware with a fresh install of the OS and IIS.  I asked several times “will this run on Server 2008 or do I need to put it on 2003?”  2008 is fine was the answer.  After 2 days of this not installing, and dealing with level 1 support I get escalated to level 2 support and get this answer.

 Dear Customer,

Apologies for the delayed response.

The Kaseya Server is not currently supported for use on Windows Server 2008. Due to IIS changes, significant re-development is required and this is planned for a future release. Please refer the following KB article.

http://kb.kaseya.com/article.asp?article=291895&p=11855

Regards

Kaseya Support.

 

Fuck me again!  This was my second warning.  I even wrote it in my email response back to them which follows here.

 I was very specific with Justin Ramsey about Server 2008.  I asked him specifically if this would run on Server 2008 and he said yes.  I never would have gone with Server 2008 if there was even a question that it might not work.  Now I have a server OS that I have paid for and can’t use.  Also, since my server is hosted in Seattle, I will have to spend more time and money to get them to install a new Server2003 OS which I have to purchase.  In addition, I have invested about 9 hours configuring the server and   trying to get Kaseya installed.   That’s $1000 for the OS which is now worthless, 2-3 hours @$175 for the hosting support to rebuild the server, 9 hours of my time @ $149/hr AND the fact that I am now two weeks late getting this to my customers who are expecting it on the 1st.

I am going to need some help or a credit or something here or I will have to opt out of the contract and find a different solution.  My billing starts on 1/1/09 and it is going to take me at least 2 weeks to get my server straight and Kaseya installed.  Then I have to configure the agents.  

Please let me know what you can do ASAP.  If I don’t have a satisfactory answer by 12/31/08 I will be forced to opt out.   

Scott Smeltzer

Principal

On-site Tech Support

Their response:

Let me know when the server is running with Windows 2003. I’ll be more than happy to help you get installed.

No credit, no resolution, not even an apology for their ineptitude.  This was a HUGE red flag, but again, my brain overrode my gut.

A new install of Server 2003 and IIS and the thing was finally running.  I was getting agents deployed, writing scripts, life was good.  Now all I needed was a good backup solution that integrated with Kaseya.  What do you know?, Kaseya had a BUDR solution that plugged right in.

They gave me a 30 day trial which had to be extended 2X because I couldn’t get it to work.  Third warning.  Who in their right mind would waste 3 months trying to make something work?  It even crashed one of my clients servers while trying to install it.

We did end up getting it to work and $4200 later and I had a brand new shiny BUDR solution.  Now all I had to do was get it to replicate offsite.  Two months and ALOT of time on phone and email support I finally got the first files to replicate!  Two more months?!?!?  WTF was I thinking?  I should have handed this P.O.S. back to them during the trial period.

Sidenote: I have never taken drugs nor been committed to a psychiatric institution.  Four major red flags and my brain still proceded to override my gut instinct.

The offsite replication was so slow and clunky no customer was ever even close to having all of their files replicated.  For one of our larger clients, we “seeded” the backup at the colo.  After the first week, we didn’t even have one day transferred.  After 2 weeks, we had less than 2 days transferred.  12 days behind!  In working with Kaseya to reseed the backup and make it faster we learned that the replication process looks at the files at the colo one time and notes the file name in a text file.  Then it looks at the source and replicated everything that is not listed in the text file. Seriously?, a one time notation of the file name in a plain text file is how they keep track of what needs to be replicated?

Needless to say, we stoped using the BUDR and found another solution.  I asked Matt Wertheim, my current sales rep what my options were to return or sell the licences and he said they would not take them back and I could not sell them.  I told him I didn;t want thhem any longer and was not going to pay mainetenance.  Here is his response.

 Scott – following up on this maintenance invoice.  Unfortunately you can’t selectively opt out on maintenance.  It’s all or nothing on your support plan.  I was incorrect in assuming we could do this.  Your option on BUDR is to forfeit the seats if you don’t want to pay maintenance on them.  Let me know what you’d like to do so I can have accounting process accordingly.

 Matt

Forefit the seats?!?!?!?

Because I don’t want to pay maintenance on a product that never worked?!?!?!?!?

As of today, my VSA maintenance has been charged and updated in my Kserver but only through 1/22 when it expires again.  I can only assume they did this to buy some time to work this out, but as of now, I still have not heard from them.

 

More to come.

 

***************UPDATE*******************

This morning (1/24/12) I got a call from Matt Wertheim to discuss my BUDR issues.  I must say, up until this point it seemed that Matt has been passing this issue through to the accounting department and then giving me back the company line.  Today, however he said he had been in meetings all weekend and my issue was brought up.  After working with the accounting department again, he has come to a resolution that is acceptable to both On-site Tech Support AND Kaseya.

For as much crap as I gave Matt in our email conversations, he really is a good guy and worked very hard to achieve this resolution.

As I have said before, Kaseya is a great product but sometimes “company policy” is really screwed.  In the end, I am happy and got the resolution I was seeking.

Set Local User Password

Thursday, January 6th, 2011

The majority of our clients are on contract with full managed serivces.  On each of our managed machines we create a local administrator account on the local machine.  We use a Kaseya Script to create this account and put it into the Local Administrators group, but sometimes we need to change the password for that account.  This script prompts you for both the user name and new password. (So you need to know the user name)  This is a very fast and effective way to change user accounts in bulk or if you need to just change one very quickly. 

<?xml version=”1.0″ encoding=”utf-8″?>
<ScriptExport xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xmlns:xsd=”http://www.w3.org/2001/XMLSchema” xmlns=”http://www.kaseya.com/vsa/2008/12/Scripting”>
  <Procedure name=”Change Password for Local User” treePres=”3″>
    <Body description=”Changes the password of the user and sets it to never expire.”>
      <If description=”Creates a local Administrator named &quot;OTSAdmin&quot; and makes it so that that users is hidden from the logon list. The Password can be changed by replacing the fourth word the first net use command.”>
        <Condition name=”True” />
        <Then>
          <Statement description=”Execute the given command as if it were typed in at a command prompt.” name=”ExecuteShellCommand” continueOnFail=”false” osType=”NT4|2000|XP|2003|Vista|2008″>
            <Parameter xsi:type=”StringParameter” name=”Command” value=”net accounts /maxpwage:unlimited” />
            <Parameter xsi:type=”EnumParameter” name=”ExecuteAccount” value=”System” />
            <Parameter xsi:type=”BooleanParameter” name=”Is64Bit” value=”False” />
          </Statement>
          <Statement description=”Create a named procedure variable and assign a value retrieved from the managed machine by the agent.” name=”GetVariable” continueOnFail=”false”>
            <Parameter xsi:type=”EnumParameter” name=”VariableType” value=”Prompt” />
            <Parameter xsi:type=”StringParameter” name=”SourceContent” value=”user” />
            <Parameter xsi:type=”StringParameter” name=”VariableName” value=”user” />
          </Statement>
          <Statement description=”Create a named procedure variable and assign a value retrieved from the managed machine by the agent.” name=”GetVariable” continueOnFail=”false”>
            <Parameter xsi:type=”EnumParameter” name=”VariableType” value=”Prompt” />
            <Parameter xsi:type=”StringParameter” name=”SourceContent” value=”pass” />
            <Parameter xsi:type=”StringParameter” name=”VariableName” value=”pass” />
          </Statement>
          <Statement description=”net user user_name  new_password /pwnexp:Y&#xD;&#xA;&#xD;&#xA;Changes the password of the user and sets it to never expire.” name=”ExecuteShellCommand” continueOnFail=”false” osType=”NT4|2000|XP|2003|Vista|2008″>
            <Parameter xsi:type=”StringParameter” name=”Command” value=”net user #user# #pass#” />
            <Parameter xsi:type=”EnumParameter” name=”ExecuteAccount” value=”System” />
            <Parameter xsi:type=”BooleanParameter” name=”Is64Bit” value=”False” />
          </Statement>
        </Then>
      </If>
    </Body>
  </Procedure>
</ScriptExport>

Get Rid of Unwanted Startup Items with Kaseya

Wednesday, December 8th, 2010

Why do software companies think their software is the sole reason your computer exists? No matter how often you clean out your start-up tasks, software companies always put their stuff back in there.

It’s even worse with client machines. Most clients don’t have any idea how many items run at start-up, all they know is that their computer is slow. The following script is one that I created to clean all that up.

This is part 1 of my 12 step “Monthly Cleanup/Tuneup” script that I run on all client machines. Over the nex few weeks (sooner if I get positive feedback from you all) I will be posting each step of the script and at the end I will post the master “Monthly Cleanup/Tuneup” script that will put all of these little gems together for an automated cleaning. I run this monthly for all of my clients but you can run it as often as you wish.

<?xml version=”1.0″ encoding=”utf-8″?>
<ScriptExport xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xmlns:xsd=”http://www.w3.org/2001/XMLSchema” xmlns=”http://www.kaseya.com/vsa/2008/12/Scripting”>
  <Procedure name=”Cleanup Startup Tasks” treePres=”3″>
    <Body description=”Removes all BS items from start up.&#xD;&#xA;”>
      <If description=”">
        <Condition name=”True” />
        <Then>
          <Statement description=”Delete the specified registry value – Regedit displays keys as folders and values as documents.” name=”DeleteRegistryValue” continueOnFail=”true”>
            <Parameter xsi:type=”StringParameter” name=”Path” value=”HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\iTunesHelper” />
          </Statement>
          <Statement description=”Delete the specified registry value – Regedit displays keys as folders and values as documents.” name=”DeleteRegistryValue” continueOnFail=”true”>
            <Parameter xsi:type=”StringParameter” name=”Path” value=”HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\Quicktime Task” />
          </Statement>
          <Statement description=”Delete the specified registry value – Regedit displays keys as folders and values as documents.” name=”DeleteRegistryValue” continueOnFail=”true” osType=”Windows”>
            <Parameter xsi:type=”StringParameter” name=”Path” value=”HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\GrooveMonitor” />
          </Statement>
          <Statement description=”Delete the specified registry value – Regedit displays keys as folders and values as documents.” name=”DeleteRegistryValue” continueOnFail=”true” osType=”Windows”>
            <Parameter xsi:type=”StringParameter” name=”Path” value=”HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\Adobe Reader Speed Launcher” />
          </Statement>
          <Statement description=”Delete the specified registry value – Regedit displays keys as folders and values as documents.” name=”DeleteRegistryValue” continueOnFail=”true” osType=”Windows”>
            <Parameter xsi:type=”StringParameter” name=”Path” value=”HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\RoxWatchTray” />
          </Statement>
          <Statement description=”Delete the specified registry value – Regedit displays keys as folders and values as documents.” name=”DeleteRegistryValue” continueOnFail=”true” osType=”Windows”>
            <Parameter xsi:type=”StringParameter” name=”Path” value=”HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\SunJavaUpdateSched” />
          </Statement>
          <Statement description=”Delete the specified registry value – Regedit displays keys as folders and values as documents.” name=”DeleteRegistryValue” continueOnFail=”true” osType=”Windows”>
            <Parameter xsi:type=”StringParameter” name=”Path” value=”HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\TkBellExe” />
          </Statement>
          <Statement description=”Delete the specified registry value – Regedit displays keys as folders and values as documents.” name=”DeleteRegistryValue” continueOnFail=”true” osType=”Windows”>
            <Parameter xsi:type=”StringParameter” name=”Path” value=”HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\Adobe ARM” />
          </Statement>
          <Statement description=”Delete the specified registry value – Regedit displays keys as folders and values as documents.” name=”DeleteRegistryValue” continueOnFail=”true” osType=”Windows”>
            <Parameter xsi:type=”StringParameter” name=”Path” value=”HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\BCSSync” />
          </Statement>
          <Statement description=”Delete the specified registry value – Regedit displays keys as folders and values as documents.” name=”DeleteRegistryValue” continueOnFail=”true” osType=”Windows”>
            <Parameter xsi:type=”StringParameter” name=”Path” value=”HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\Acrobat Assistant 8.0″ />
          </Statement>
          <Statement description=”Delete the specified registry value – Regedit displays keys as folders and values as documents.” name=”DeleteRegistryValue” continueOnFail=”true” osType=”Windows”>
            <Parameter xsi:type=”StringParameter” name=”Path” value=”HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\SearchSettings” />
          </Statement>
          <Statement description=”Delete the specified registry value – Regedit displays keys as folders and values as documents.” name=”DeleteRegistryValue” continueOnFail=”true” osType=”Windows”>
            <Parameter xsi:type=”StringParameter” name=”Path” value=”HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\NeroFilterCheck” />
          </Statement>
          <Statement description=”Delete the specified registry value – Regedit displays keys as folders and values as documents.” name=”DeleteRegistryValue” continueOnFail=”true” osType=”Windows”>
            <Parameter xsi:type=”StringParameter” name=”Path” value=”HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\AppleSyncNotifier” />
          </Statement>
        </Then>
      </If>
    </Body>
  </Procedure>
</ScriptExport>

You can also download the XML file here. (Right click and “Save As”)

Disable or Uninstall Business Contact Manager with Kaseya

Saturday, September 25th, 2010

Business contact manager is a huge pain in the butt and I have yet to meet anyone who uses it.  Recently we had a client that needed to roll out 23 new computers but they all had Business Contact Manager installed on them.  We used this Kaseya script to uninstall it. 

(more…)

How OnePlan Saved my customer $30,000

Monday, June 14th, 2010

It was a typical Monday, working in the office when I got a call from a contract customer.  She said that one of their high level employees was going to be termintated that afternoon and wanted me to come into the office the next day to change the passwords and lock the computers.  She said he wasn’t in the office so it wasn’t a rush.  I knew this employee had a company laptop so using the Live Connect function of Kaseya2 I clicked on the laptop to see what he was doing.  At first he was trying to access his 401K, then he started researching how to transfer his 401K, so at that point I had a good idea that he knew he was going to be fired.   The next thing he did was open his email and then open the company customer database. 

I knew this wasn’t going to be good.   There were over 75,000 customers in that database and he was trying to email them to his hotmail account.  Since i was a bit late to the game, I watched and waited until the email came in to the hotmail account and then went to work.  I already had the VNC window open, so when I saw a lull in activity I deleted the email, emptied the recycle bin and logged out of the hotmail account. 

Next I used one of the great features of K2 Live Connect – Remote Command Shell.  It gives a remote command shell without the user being aware of anything.  I changed all the passwords on the laptop and used the remote shutdown script in the Agent Procedures. 

Of course he tried to log back in, but since I changed thepasswords, his efforts were foiled! (it seems like an appropriate word) 

As of now we still do not have the laptop back, but the email has been deleted and as an added measure, I scheduled an automatic reboot every 7 minutes when the machine is on.

Change DNS and WINS via Kaseya Script

Friday, April 9th, 2010

Today we phased out an older server and promoted a newer one to DC. Typically this is no problem. Once it’s complete, reboot all the workstations and they will find the new DHCP/DNS server automatically. In our case, all o f the workstations were statically assigned. Since I didn’t want to have to touch 60+ workstations, I wrote this Kaseya Script to take care of it for me. (more…)