Does your computer start up too slowly?
This could be down to a number of things but there are a few standard places to check:
- Amount of RAM in the computer – is there enough?
- Amount of free hard-disk space – is there more than 10% free?
- Is the Anti-Virus set to run upon startup – if so disable that option.
- Size of the user profile (my documents and desktop) – primarily a problem for domain users.
- Number of programmes loading at startup – the fewer the better.
The number of programmes loading at startup can yield a quick fix for older computers, and that’s where I’m focussing in Today’s blog, but I would not recommend jumping straight in and changing it as any changes here are likely to change the way some programmes work. Once the other options have been ruled out and you (or the user) are aware of the effect, then you can go ahead and make the change. But how will you make that change?
In Person
If you have sufficient knowledge to make the change and the computer is in front of you then by all means make the changes by running msconfig or the ever useful ccleaner. Hide any Microsoft items and then usually you can disable most of the other items safely. It’s probably worthwhile leaving the AntiVirus running though! Offending items can be present in both “Startup Programs” and “Services”.
Using Remote Control
You could have a qualified IT Professional (such as at The PC Support Group), carry this out for you using their remote control technology. Remote control technology enables an IT Professional to control your computer over the Internet without being physically present. You, the user, need to stop whatever you’re doing and give them perhaps 30 minutes to carry out the above. From the IT Professional’s perspective, this is a fairly common request . Looking for bottlenecks can be done fairly quickly but then getting a list of startup items and investigating which ones to disable and which ones to leave can be quite time consuming and may inconvenience the user if they’re left waiting while this is done. That’s where scripts come to the rescue.
KaseyaTM Scripts
KaseyaTM is by no means the only way of automating part of this speed-up but it forms the basis for The PC Support Group managed service, and scripting is just one part of it’s functionality. When one of our customers says that their computer is starting up slowly then we can draw on this scripting engine to help. First the usual bottlenecks, as listed above, are checked via the “system audit” function. Then a list of startup items is retrieved – this allows The PC Support Group to confirm what to disable and what to leave. We have two scripts to do this:
- Export services
- Export startupitems
These scripts are run, then the files retrieved (e.g. C:\exportserviceslist.txt) and reviewed. Finally the cleanup script is customized to disable the necessary startup items. The XML should be edited directly in an editor like Notepad++ and the relevant services/programs just copied & pasted over. This script is then imported back into Kaseya again and scheduled to run on the user’s computer.
This makes the work totally invisible to the user so that they can continue to work on their computer while we work on it in the background. More productivity for them and more productivity for us J
NB: The inspiration for the script came from http://www.on-sitetechsupport.com/category/kaseya-scripts/ In the future the script could be modified to make it generic so that it includes all programmes likely to be encountered and skips those not relevant to that computer. The PC Support Group accepts no responsibility for the use of these scripts.
Export Services Script
<?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="ListServicesExport" treePres="3" id="35789810">
<Body description="Export list of services to a file then upload the file to the KServer.">
<If description="Export list of services to a file then upload the file to the KServer.">
<Condition name="True" />
<Then>
<Statement name="ExecuteShellCommand" continueOnFail="false">
<Parameter xsi:type="StringParameter" name="Command" value="sc query >> c:\ServicesList.txt" />
<Parameter xsi:type="EnumParameter" name="ExecuteAccount" value="User" />
<Parameter xsi:type="BooleanParameter" name="Is64Bit" value="False" />
</Statement>
<Statement name="GetFile" continueOnFail="false">
<Parameter xsi:type="StringParameter" name="RemoteFileName" value="c:\ServicesList.txt" />
<Parameter xsi:type="StringParameter" name="KServerFileName" value="ServicesList.txt" />
<Parameter xsi:type="EnumParameter" name="Action" value="OverwriteSendAlert" />
</Statement>
</Then>
</If>
</Body>
</Procedure>
</ScriptExport>
Export Startup Items Script
<?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="ListStartupAppsExport" treePres="3" id="71790046">
<Body description="Exports the registry keys relating to Startup tasks and then Uploads the file using &#34;Get File&#34;
See Scripts --> Get File --> Machine, in order to retrieve uploaded file.">
<If description="Exports the registry keys relating to Startup tasks and then Uploads the file using &#34;Get File&#34;
See Scripts --> Get File --> Machine, in order to retrieve uploaded file.">
<Condition name="True" />
<Then>
<Statement name="ExecuteShellCommand" continueOnFail="false">
<Parameter xsi:type="StringParameter" name="Command" value="regedit /E c:\StartupTaskList.txt "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\"" />
<Parameter xsi:type="EnumParameter" name="ExecuteAccount" value="User" />
<Parameter xsi:type="BooleanParameter" name="Is64Bit" value="False" />
</Statement>
<Statement name="GetFile" continueOnFail="false">
<Parameter xsi:type="StringParameter" name="RemoteFileName" value="c:\StartupTaskList.txt" />
<Parameter xsi:type="StringParameter" name="KServerFileName" value="StartupTaskList.txt" />
<Parameter xsi:type="EnumParameter" name="Action" value="OverwriteSendAlert" />
</Statement>
</Then>
</If>
</Body>
</Procedure>
</ScriptExport>
Remove Startup Items Script
<?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="removeStartupTasks" treePres="3" id="1505946189">
<Body description="Removes applications from the Registry RUN key. Removes services not required on startup.">
<If description="Removes applications from the Registry RUN key. Removes services not required on startup.">
<Condition name="True" />
<Then>
<Statement description="" name="DeleteRegistryValue" continueOnFail="true">
<Parameter xsi:type="StringParameter" name="Path" value="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\ISUSPM Startup" />
</Statement>
<Statement description="" name="DeleteRegistryValue" continueOnFail="true">
<Parameter xsi:type="StringParameter" name="Path" value="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\ISUSScheduler" />
</Statement>
<Statement description="" name="DeleteRegistryValue" continueOnFail="true">
<Parameter xsi:type="StringParameter" name="Path" value="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\MSKDetectorExe" />
</Statement>
<Statement description="" name="DeleteRegistryValue" continueOnFail="true">
<Parameter xsi:type="StringParameter" name="Path" value="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\YBrowser" />
</Statement>
<Statement description="" name="DeleteRegistryValue" continueOnFail="true">
<Parameter xsi:type="StringParameter" name="Path" value="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\Adobe Photo Downloader" />
</Statement>
<Statement description="" name="DeleteRegistryValue" continueOnFail="true">
<Parameter xsi:type="StringParameter" name="Path" value="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\LogMeIn GUI" />
</Statement>
<Statement description="" name="DeleteRegistryValue" continueOnFail="true">
<Parameter xsi:type="StringParameter" name="Path" value="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\iTunesHelper" />
</Statement>
<Statement description="" name="DeleteRegistryValue" continueOnFail="true">
<Parameter xsi:type="StringParameter" name="Path" value="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\SunJavaUpdateSched" />
</Statement>
<Statement description="" name="DeleteRegistryValue" continueOnFail="true">
<Parameter xsi:type="StringParameter" name="Path" value="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\Adobe Reader Speed Launcher" />
</Statement>
<Statement description="" name="DeleteRegistryValue" continueOnFail="true">
<Parameter xsi:type="StringParameter" name="Path" value="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\Adobe ARM" />
</Statement>
<Statement description="" name="ExecuteShellCommand" continueOnFail="true">
<Parameter xsi:type="StringParameter" name="Command" value="sc stop JavaQuickStarterService && sc config JavaQuickStarterService start= demand >>>> c:\scriptlog.txt" />
<Parameter xsi:type="EnumParameter" name="ExecuteAccount" value="User" />
<Parameter xsi:type="BooleanParameter" name="Is64Bit" value="False" />
</Statement>
<Statement description="" name="ExecuteShellCommand" continueOnFail="true">
<Parameter xsi:type="StringParameter" name="Command" value="sc stop OrangeMobileBroadband_Service && sc config OrangeMobileBroadband_Service start= demand >>>> c:\scriptlog.txt" />
<Parameter xsi:type="EnumParameter" name="ExecuteAccount" value="User" />
<Parameter xsi:type="BooleanParameter" name="Is64Bit" value="False" />
</Statement>
<Statement description="" name="ExecuteShellCommand" continueOnFail="true">
<Parameter xsi:type="StringParameter" name="Command" value="sc stop WTGService && sc config WTGService start= demand >>>> c:\scriptlog.txt" />
<Parameter xsi:type="EnumParameter" name="ExecuteAccount" value="User" />
<Parameter xsi:type="BooleanParameter" name="Is64Bit" value="False" />
</Statement>
<Statement description="" name="GetFile" continueOnFail="false">
<Parameter xsi:type="StringParameter" name="RemoteFileName" value="c:\scriptlog.txt" />
<Parameter xsi:type="StringParameter" name="KServerFileName" value="scriptlog.txt" />
<Parameter xsi:type="EnumParameter" name="Action" value="OverwriteNoAlert" />
</Statement>
</Then>
</If>
</Body>
</Procedure>
</ScriptExport>
No comments:
Post a Comment