Nov 13 2009

Word, Excel 07 getting sharing violations on save

So we were getting various sharing volitions when trying to save some changes to an existing document, both on windows VISTA and windows 7, this started to become an annoyance, but let it go because it was only now and then. I found out it wasn’t isolated to me, turns out many others have been affected by this annoyance also.

So you might get error messages like "Your changes could not be saved to ‘Filename.xlsx’ but were save to a temporary document ‘CERSS322′ (this is a random string). Close the existing document, then open the temporary document and save it under a new name."

If you try and save it again you might also get "Your changes could not be saved to ‘Filename.xlsx’ because of a sharing violation. Try saving to a different file."

once again if you were to save it it might actually save correctly.

There was lots of talk about an Anti-Virus might actually open this file scanning it when you have it open hence the reason for the sharing violation, and this could be well possible, but its more likely to be the Windows  Desktop Indexing service., you could disable this though that might be a drastic measure. you can right click on the file and turn the indexing on that file off.

So to do this right click on the file giving you problems go to ‘Properties’  > click on the ‘Advanced’ button > removed the tick from ‘ Allow this file to have contents indexed in addition to file properties’

See images below for more info.

image

image


Jul 6 2009

3 Core Business Reasons for Windows 7 Upgrade

  1. Compatibility

The slow uptake or even non existent uptake of the VISTA operating system was due to incompatibility of drivers and applications, now that VISTA has been around for a while, and all major vendors now fully support Vista / 2008 server, being that windows 7 shares quite a bit of VISTA codebase in terms of drivers support. windows-7-logo-new[1]

Windows 7 also seems to have a very prominent place in the WWW, with major vendors jumping on board the beta band wagon, releasing pre driver support, Microsoft also already  offering upgrade paths, in association with all major PC vendors, such as Dell, HP, Asus the list goes on.

With that said its seems with the release of VISTA and the long public beta releases of windows 7, may of payed off with, thus compatibility between devices is a thing of the past.

 

2.  Legacy support

While this comes under compatibility I think this needs a specific mention, as I think this is one of the most compelling selling points from a SMB perspective. Its the ‘windows 7 XP mode’

what this is, is essentially a Virtual PC (VPC), but wait before you stop reading its a whole lot more than just a VPC… While they now support USB within the VPC, which is a vey nice addition. The VPC fully integrates with the guest OS, what this means is if you install an application within XP VPC,  it will appear within the windows 7 start menu, meaning you can launch the application from your primary machine without having to interact with the VPC at all.

Why is this such a big deal, and why should this help the SMB market take to windows 7 as there next OS?

Simple windows Vista no longer supports 16 bit applications, as it does not have a 16bit sub system like XP does. With the XP mode 16 bit is supported, therefore for all those SMB’s that have so many of those legacy systems that are 16bit based that couldn’t go to VISTA because of this reason, but yet IT managers, CTO’s and CEO’s  didn’t want to spend the money to re-develop a 32bit version, when they have a perfectly good working application.

With XP mode 16 bit is very plausible that you can run your 16bit apps directly from windows 7!

        3.  Efficiency

With the overhaul of the task bar (referred to as the superbar), jump lists, ‘Aero shake’ to quickly minimize all apps apart from the shaken app, and the massive additions of shortcut keys that interact with windows 7  (many can be found in my previous blog post) All of these significantly increase the speed of which a user can work, while some seem very gimmicky like the Aero shake, it actually serves a  unique and quick outcome.

The other side to efficiency of windows 7 is not just in the shortcuts and the new features but yet the OS it self has significantly improved on boot and shutdown times, It’s processing of newer applications on modern hardware is superior over XP, where windows 7 uses the processor and memory more efficiently.  Also for mobile users battery life is increased, it is said they they have reduced the power draw by up to 15%, and other tweaks for notebook users.

Last one is not for everyone but the fact that windows 7 allows Muti-touch, this can significantly speed up the processes of how quickly you can access your apps and files.


Jul 5 2009

Windows 7 – Shortcuts, hints and thoughts

Ok So I have installed windows 7 (7100) on my little EeePC 900, the EeePC has 2 gigs of RAM and a small 1.6 Atom, with this small combo 7 smashes the pre-installed XP.
Boot time is better by about 5 seconds and general performance to open applications and general processing is just far better, while it uses substantially more memory than XP, but lets face it all new entry level PC’s have 2 gigs of RAM these days.

But with saying that I would blame a lot of the memory usage on the rotten IE8 that is bundled with windows 7, I have many complaints about this browser, so rather than complain I am finding I am using Chrome more regularly, faster better on the memory and processor. MS if you read this use the KISS principle (Keep it simple stupid) Google has done this very well for years.

Anyways lets get to the shortcuts and handy little functions that windows 7 has added!

  • My absolute favourite function has to be the if you have multiple screen configurations, you can click on a maximise screen and drag it to your other screens. Previously we had to resize / minimize and then move the open window to a new screen and then maximize… very annoying.
  • Next is the many many windows short cut keys, also work with multiple monitors or even single display :
    • Windows key + Left: docks current window to the left side of the screen.
    • Windows key + Right: docks current window to the right side of the screen.
    • Windows key + Up: maximizes and/or restores foreground window.
    • Windows key + Down: minimizes active window.
  • Previously running an app in administrator was a right click, and then run as admin , while that still exists there is a quicker better way of doing this with keys: It’s now as easy as holding CTRL + SHIFT when you open the application.
  • Another one for those with multiple monitors: Windows + SHIFT + Left (or Right) will shift a window from monitor to monitor.

Some handy things windows 7 includes:

  • Windows 7 now includes Gabriola. This is an elaborate display typeface that takes advantage of OpenType layout to create a variety of stylistic sets.
  • Windows 7 now burns ISO files themselves instead of making us install unwanted third-party apps.
  • In the case that something happens to your system, you can make yourself a system repair disc. Just search “system repair disc” in the start menu.
  • For the advanced users finally a desktop OS that gives us the ability to setup software RAID, one of my favs!
  • Advance defrag for windows 7, read more here : http://blogs.msdn.com/e7/archive/2009/01/25/disk-defragmentation-background-and-engineering-the-windows-7-improvements.aspx
  • Multi-Threaded File copy, this is by use of the command line robocoy which is included within windows 7, this is something I personally use on a constant basis, and is very powerful, if you haven’t used this before you are missing out!
  • UAC is substantially improved, where there is no need to turn this off any more, it only disturbs you on install of applications. this is something I turned of on VISTA as soon as I could, but one windows 7 I Have found that its something that’s not annoying and have left it on its default setting. Its also now provides us with a toggle bar where we can increase or decrease the default UAC settings.
  • A new calculator- about time it only took about 10 years!
  • Owh yeah an codec’s to play AVI Divx and other regularly used formats FINNALY!!!!!!!
  • And the whole OS is touch friendly!

Another feature I will be talking about in more depth is the default install XP with program  integration as a virtual machine. I will be blogging about business reasons as to why corporate should go the distance and  install windows 7.

there is so much more they have done windows 7 is really all that and a bag of chips, its got my 2 thumbs up, I just hope they don’t bloat the final release with unnecessary junk


May 22 2009

2008 Server DFSR Replication Problems

I have used DFSR for some time now and had only great experiences with it, however it was low volumes of data, This time I was implementing this as a High availability solution for a web farm, We had about 40 gigs of data with a massive amount of files to replicate…. But the scheme of things 40 gig of data is really not that much.

Anyways cutting to the point after reading articles about the best way to proceed with a quick initial replication was said to be copy the files to the destination server, so I did this via robocopy, keeping all attributes and the permissions intact.

However contrary to popular believe this was what ultimately caused so much grief, as it started the replication off and I my event log was filling up with:

Event Type: Information
Event Source: DFSR
Event Category: None
Event ID: 4412
Date: <Date>
Time: <Time>
User: N/A
Computer: <Computer name>
Description:
The DFS Replication service detected that a file was changed on multiple servers. A conflict resolution algorithm was used to determine the winning file. The losing file was moved to the Conflict and Deleted folder.
Additional Information:
Original File Path: <File path>
New Name in Conflict Folder: <Folder name>
Replicated Folder Root: <Folder name>
File ID: <File ID>
Replicated Folder Name: <Folder name>
Replicated Folder ID: <Folder ID>
Replication Group Name: <Replication group name>
Replication Group ID: <Replication group ID>
Member ID: <Member ID>

see more about this here: http://support.microsoft.com/kb/944804

After further investigation, this was because the file ID of the files on the destination server differed from the source server…. Thanks robocopy.

This was filling up my ClonflictAndDeleted folder very quickly, with a lot of what I though was unnecessary crap. Never the less I let it run for a few days and I cam back to find the below event log:

Source : DFSR

Catagory : None

Event ID : 2104

Type: Error

Description :

The DFS Replication service failed to recover from an internal database error on volume F:. Replication has been stopped for all replicated folders on this volume.

Additional Information: Error: 9203 (The database is corrupt (-1018)) Volume: DB587759-DC0B-11DC-940D-00304888DB13 Database: F:\System Volume Information\DFSR

 

Brilliant I had a corruption

 

Possible Solutions


Taken from Google Groups [1]

I recently had a spat with the "new and improved" DFSR and wanted to let everybody in on the proceedure for reseting a DFSR member.

First off, removing everything using the GUI doesn’t help when the database is corrupt. DFSR keeps the database regardless of its membership status. So if for example you had a broken DFSR server and removed it from every replication group, when you added it back you’d still be out of luck.

To clear it completely after the server is no longer a member of *any* dfsr replication group (i.e. remove it from all of them in the gui and wait for AD replication to propgate the changes):

1. Stop the "DFS Replication" service.

2. On the drive(s) in question, grant yourself full permission to the hidden system "System Volume Information" folder.

3. Navigate into the folder and delete (or move to be extra careful) the DFSR folder.

4. Navigate to each replication group the server was a member of and delete (or move to be extra careful) each hidden system "DfsrPrivate" folder.

5. Start the "DFS Replication" service.

You may now treat the server as a brand new member for the replication groups. Now all you need to deal with is DFSR’s sloppy initial replication routines (hint: those missing files are in the "DfsrPrivate \PreExisting" folder).

 

http://www.eventidwiki.com/index.php?title=Event_ID_:_2104%2C_DFSR

 

However this did not work the folder would not rename under 2008 even with UAC off, this did work for me though

1. Click Start, right click Command prompt and click run as administrator to open a command prompt window, then go to driverletter:\System Volume Information\dfsr prompt, type the command below to rename it:

Ren “old folder name” “new folder name”

I did this on both servers participating in the replication. further to this I deleted the folder I was replicating on the destination server, and let DFS do all off the creating.

after 2 days I had a fully functional DFSR, working the way it should!!!!!

Some commands I found useful through the process:

dfsrdiag backlog /rgname:”cluster replication” /rfname:websites /rmem:RECEVINGSERVER /smem:SENDINGSERVER >c:\backlog1.txt

You might also find the %systemVolume%windows\debug folder useful.

 

Good Luck.


Apr 15 2009

Windows Mobile Wrong time zone

I have just done a ROM update on my windows mobile enabled device and while there are many new features, and the integration to hide a lot the old and ugly windows mobile interface is superb, however there is a few things lacking the most important is the Time Zone. While it seems to pick up your timezone based on weather points you use at first. for example Las Vegas GMT –8. Although after entering in Sydney (where I am based) it would at best come up with a +11 naturally this would through the clock out 1 hour.

So if you are having problems with your time zone I suggest the first steps

That seems to fix the bulk of the issues going around with the Windows mobiles, however if you like me have updated your ROM and there seems to no avail in sight.

If your in a +10 time zone your in luck

Here is a registry entry for +10

Windows Registry Editor Version 5.00

 

[HKEY_LOCAL_MACHINE\Time]

"TimeZoneInformation"=hex:A8,FD,FF,FF,53,00,79,00,64,00,6E,00,65,00,79,00,20,00,53,00,74,00,61,00,6E,\

      00,64,00,61,00,72,00,64,00,20,00,54,00,69,00,6D,00,65,00,00,00,00,00,00,00,\

      00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,03,00,00,00,05,\

      00,03,00,00,00,00,00,00,00,00,00,00,00,53,00,79,00,64,00,6E,00,65,00,79,00,\

      20,00,44,00,61,00,79,00,6C,00,69,00,67,00,68,00,74,00,20,00,54,00,69,00,6D,\

      00,65,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\

      00,00,00,00,0A,00,00,00,05,00,02,00,00,00,00,00,00,00,C4,FF,FF,FF

**Copy and save this file as a .REG (yes you can import a registry key in windows mobile) to import the REG file you will need this app – http://www.pocketpcfreeware.mobi/download-task-manager.html

For those with other time zones if you have another mobile device, or an  emulator, you can always change the time zone to the correct location and then from the registry location of ‘HKEY_LOCAL_MACHINE\Time\TimeZoneInformation’ you should be able to copy and replace this on your PDA then your good to go.

 

**NOTE any registry changes are made at your own risk, I take no liability for any damage.


Mar 30 2009

Outlook 2007 constantly consuming 50% + CPU

Just a quick one today. I was recently given a high spec notebook that each time on load with outlook it would consume 50% or more of the CPU.

So I thought it might be a good idea to post on my findings.

 

1. First thing was to disable any and all third party comm add-ins

you can easily find these in tools > Trust Center >  Add in tab (to the left) > click on Go (at the bottom)

Restart outlook.

 

If you still have a high utilization then like me you might be scratching you head.

 

Open outlook and check the calendar, if there are multiple cleaners open close them all off and close outlook and open again.

For me that resolved the issue, the user had about 7+ calendar items open at all times, this is why outlook seemed to be hogging so many resources.

 

Hope this helps


Mar 6 2009

Fix: Windows Mobile Memory Leak

Summary:
Release memory on your HTC Touch Diamond/Pro devices (Windows Mobile), It is a memory reclaimer similar to Oxios but with advanced settings and actually works! this applications is specially for diamond/pro devices! Great solution for the Windows Mobile memory leak problem.

Description:
htcAddicts developed a very useful tool for HTC Touch Diamond/Pro called “cleanRAM”.
The cleanRAM attempts to release as much memory as possible without damaging the internal state of the Windows Mobile device. it’ll refresh/recover your device RAM. This can save you a lot of SOFT RESET!

Configuration Menu:
There are 3 levels of cleaning and Personally customized processes list.
Level 1 – Basic purge only (quick) – Close non-responding tasks without TouchFLO 3D interface
Level 2 – Quality purge – Recommended for best performance
Level 3 – Fundamental purge (time-consuming) – Reset non-responding tasks and services
Personally customized processes list – Select the processes you wish to close
Also you can find:
1. RAM status notification (in the end of the cleaning) (On/Off)
2. Restart Processes Mode (On/Off)
3. Show Hidden Processes (On/Off)

Changelog:
Version 1.0.4 – Fixed: about screen + small issue (nk.exe error msg) for htc touch pro users
Version 1.0.3 – Added: all registry settings is now in the archive/installation file (cab) + new icon for “cleanRAM config” shortcut (red)
Version 1.0.2 – Fixed: application shortcuts doesn’t appears (on some devices)
Version 1.0.1 – Fixed: some small issues with Level 1
Version 1.0.0 – Added: “Reset Processes Mode” new feature with restart time chooser
Version 0.9.5 – Added: “Show Hidden Processes” new feature to show all processes (including services. dangeros!)
Version 0.9.2 – Fixed: problem with “RAM Status Notification” screen and other small issues

What’s next:
1. Auto Schedule – I don’t know if this feature possible but I promise to check it
2. Custom mode: two different tables mode, one with restart applications and the other with kill applications
3. Solve some memory small issue (Level 3)
4. Fix the shortcut problem after install (Solved!)

Installation Instructions:
1. Download the attached .cab file from http://www.htcaddicts.com/?id=65.
2. Copy this file to some temporary folder in your device.
3. Execute it from your device (recommend you install to device memory).
* The cleanRAM will install into /Program files/htcAddicts.
* There is also a two links to “cleanRAM Config” (configuration tool) and “cleanRAM” (is the actual memory reclaimer) in the Start > Programs

Requirements:
HTC Touch Diamond/Pro with Microsoft Windows Mobile 6.1
Microsoft .NET Compact Framework 3.5

[Download .NET]
Use cleanRAM at your own risk!!! NO WARRANTY!!!

Download:
http://www.htcaddicts.com/?id=65
[Google Translated]

 

A big Thanks to www.htcAddicts.com for this awesome APP, it works flawlessly, I tried it on setting 1, it gave back 20MB of memory back!!!

 

Original Post can be found here: http://forum.xda-developers.com/showthread.php?t=487490


Jan 30 2009

Prepare for 2007 Exchange Server install

I thought I would blog about this, because we had so many issues, and I found Microsoft’s documentation to be rather poor on this occasion.

However it does explain the steps that need to be done in order to prepare (just not how to execute them easily)

So best to start with a quick read of the article

http://technet.microsoft.com/en-us/library/bb125224.aspx

If you’re not patient and want to skip (little like me) then the steps are in short.

 

  1. setup /PrepareLegacyExchangePermissions: <domain name here>
    or
    setup /pl <domain name here>
  2. Setup /PrepareSchema
    or
    setup /ps
  3. Setup /PrepareAD [/OrganizationName: <organization name> ]
    or
    setup /p [/on:<organization name>]
  4. Setup /PrepareDomain
    or
    setup /pd

 

In order to run these commands you must run them from the command prompt on a server that is apart of the domain you are preparing, ensure you have the exchange 07 cd in the dvd drive and <DVD drive letter> then dir ensure you see the ’setup.exe’ and ’setup.com’ files in the DVD drive these should be in the root directory of the DVD

 

Now run the commands.

If you are unlucky like me you will get a few errors like:

"Exchange 2007 cannot be used with the version of Windows operating system running on this computer."

there are 2 possible reasons that this could happen for

you are trying to run the setup file which is a x64 bit file on a x86 system, you can not do this.

the other reason is that you are running the setup commands on a 2008 server, and you may be running exchange 2007 install not the exchange 2007 SP1. (2008 server requires SP1)

So if you are like us in the postion where you have many x64 bit 2008 servers but no x64 2003 servers then you’re going to have to download the 32 bit Exchange 2007 Management tools

get it from here:

http://www.microsoft.com/downloads/details.aspx?FamilyID=6be38633-7248-4532-929b-76e9c677e802&displaylang=en

the download is an EXE so I suggest installing winRAR and extracting it rather than installing it (unless you will use it), once extracted you will have the setup files, you can now run all of your prep on a x86 system.

 

Another good resource is this: http://support.microsoft.com/default.aspx/kb/555854


Jan 23 2009

Windows Mobile 6.5 Pre Release Beta Leaked

 

So it seems as though Windows Mobile 6.5 has been leaked already, there are some skeptical’s out there, saying its just a modified 6.1 release, but I am defiantly a believer that this is 6.5, the way the scrolling effect is shown, looks beyond anything else that other vendors such as Sony, HTC and Samsung have been able to do with the programs . The home screen seems to match the previous screen shots seen of 6.5.

some of the updates to 6.5 so far

  • MSTOUCH(UPDATE)
  • TouchRecognizer
  • Touch LockScreen
  • IE6[IE Mobile8.12Pro]2009 Only for 6.5
  • CMHome For WM6.5PRO
  • Live For WM6.5

    Seems you can try it out for yourself to:

    for touch pro users here:

    http://forum.xda-developers.com/showthread.php?t=474406

    other phones

    http://forum.xda-developers.com/showthread.php?t=473884

    BE SURE TO READ THE POST, and Flash at your own risk.

     

     

    I am going to flash my old dopod 838 pro and see how it goes, I will share my findings.


  • Jan 8 2009

    AD Based Outlook Email Signature for 2003 and 2007 Part 4 – Now writes TXT and RTF as well as HTML – Revised.

    (This is a continuation of http://bradmarsh.net/index.php/2008/11/20/ad-based-outlook-email-signature-for-2003-and-2007-part-4-now-writes-txt-and-rtf-as-well-as-html/)

    Ok due to various people having problems with the RTF, where it might show the HTML rather then display correctly, Also it has come to my Attention RTF (not always) will not show images or wont handle them to well.  Other problems where it might not show in outlook also.

    anyway’s this has been tested and all above issues seem to be resolved at least for me :)

    The below is the new section:

    What we are doing here in short is copying the .txt file we have created and then taking the text file and formatting this into something a little more presentable.

    '===========================================================================
    ' Formats the RTF
    '===========================================================================
    Const wdExtend = 1 
    'const wdStory = 6
    'const wdMove = 1
     
     
    Set objWord = CreateObject("Word.Application")
    objWord.Visible = True
    'Be sure to change the file name to your desired name
    Set objDoc = objWord.Documents.Open(Folderlocation & "Elcom.rtf")
    Set objSelection = objWord.Selection
     
    set objSelection = objDoc.Range()
    'objDoc.Range()
    'objSelection.HomeKey wdExtend
     
    'you can add more functions IE Bold, underline, different font etc
    objSelection.Font.Size = "10"
    objSelection.Font.Name = "Arial"
     
    'Save the file
    'Be sure to change the file name to your desired name
    objDoc.SaveAs Folderlocation & "Elcom.rtf", RTF
     
     
    ' Close the active document
    objDoc.Close
     
    'Close Word
    objWord.Quit

    I have used the TXT file, as this removes any images that might become broken. As I originally tried copying the HTML to get the colours and other items. However to do this I would have to call a .exe file that would convert HTML to RTF. This is all fine, but it creates a more complex script, which is something I really wanted to avoid.

    However it would be obviously the optimal way of doing it, this way we get a nice looking RTF with colour.

    I might still do this, but I with the HTML to RTF converter I do have it will not do images.

    If you know of a good HTML to RTF converter that can be called as a .exe then let me know and I might just do the script, otherwise this is the best that I can do for the time being.

    Here is the complete new code:

    '====================
    '
    ' VBScript: <Signatures.vbs>
    ' AUTHOR: Peter Aarts
    ' Contact Info: peter.aarts@l1.nl
    ' Version 2.04
    ' Date: January 20, 2006
    ' Moddified By Brad Marsh Now works with both 2003 and 2007 outlook 
    ' Contact: gentex@tpg.com.au
    ' Date 19 feb 08
    ' Tested on Vista, XP, XP64 and office 2003 and 2007. 
    ' NOTE will not work that well with various email accounts\
    ' modified: 8 Jan 09 - Brad Marsh
    ' added more support for RTF, copies TXT pulling out images and allows for formatting
    '====================  
     
    'Option Explicit
    On Error Resume Next  
     
    Dim qQuery, objSysInfo, objuser
    Dim FullName, EMail, Title, PhoneNumber, MobileNumber, FaxNumber, OfficeLocation, Department
    Dim web_address, FolderLocation, HTMFileString, StreetAddress, Town, State, Company
    Dim ZipCode, PostOfficeBox, UserDataPath  
     
    ' Read LDAP(Active Directory) information to asigns the user's info to variables.
    '====================
    Set objSysInfo = CreateObject("ADSystemInfo")
    objSysInfo.RefreshSchemaCache
    qQuery = "LDAP://" & objSysInfo.Username
    Set objuser = GetObject(qQuery)  
     
    FullName = objuser.displayname
    EMail = objuser.mail
    Company = objuser.Company
    Title = objuser.title
    PhoneNumber = objuser.TelephoneNumber
    FaxNumber = objuser.FaxNumber
    OfficeLocation = objuser.physicalDeliveryOfficeName
    StreetAddress = objuser.streetaddress
    PostofficeBox = objuser.postofficebox
    Department = objUser.Department
    ZipCode = objuser.postalcode
    Town = objuser.l
    MobileNumber = objuser.TelephoneMobile
    web_address = "http://www.elcom.com.au" 
     
    ' This section creates the signature files names and locations.
    '====================
    ' Corrects Outlook signature folder location. Just to make sure that
    ' Outlook is using the purposed folder defined with variable : FolderLocation
    ' Example is based on Dutch version.
    ' Changing this in a production enviremont might create extra work
    ' all employees are missing their old signatures
    '====================
    Dim objShell, RegKey, RegKey07, RegKeyParm
    Set objShell = CreateObject("WScript.Shell")
    RegKey = "HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Common\General"
    RegKey07 = "HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Common\General"
    RegKey07 = RegKey07 & "\Signatures"
    RegKey = RegKey & "\Signatures"
    objShell.RegWrite RegKey , "AD_elcom"
    objShell.RegWrite RegKey07 , "AD_elcom"
    UserDataPath = ObjShell.ExpandEnvironmentStrings("%appdata%")
    FolderLocation = UserDataPath &"\Microsoft\AD_elcom\"
    HTMFileString = FolderLocation & "Elcom.htm"  
     
    ' This section disables the change of the signature by the user.
    '====================
    'objShell.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Common\MailSettings\NewSignature" , "L1-Handtekening"
    'objShell.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Common\MailSettings\ReplySignature" , "L1-Handtekening"
    'objShell.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Outlook\Options\Mail\EnableLogging" , "0", "REG_DWORD"  
     
    ' This section checks if the signature directory exits and if not creates one.
    '====================
    Dim objFS1
    Set objFS1 = CreateObject("Scripting.FileSystemObject")
    If (objFS1.FolderExists(FolderLocation)) Then
    Else
    Call objFS1.CreateFolder(FolderLocation)
    End if  
     
    ' The next section builds the signature file
    '====================
    Dim objFSO
    Dim objFile,afile
    Dim aQuote
    aQuote = chr(34)  
     
    ' This section builds the HTML file version
    '====================
    Set objFSO = CreateObject("Scripting.FileSystemObject")  
     
    ' This section deletes to other signatures.
    ' These signatures are automaticly created by Outlook 2003.
    '====================
    Set AFile = objFSO.GetFile(Folderlocation&"Elcom.rtf")
    aFile.Delete
    Set AFile = objFSO.GetFile(Folderlocation&"Elcom.txt")
    aFile.Delete  
     
     
    '=========================================================
    ' This adds the Text file, will need to be changed accordingly
    '==========================================================
     
    Set objFile = objFSO.CreateTextFile(Folderlocation&"Elcom.txt",True)
    objfile.writeLine ""& FullName & " | " & title & " |  " & title & " | "& Company & " | Australian Technology Park" 
    objfile.writeLine "T +612 " & PhoneNumber & " | F +612 9209 4423 | www.elcom.com.au | " & Email &" "
    objfile.writeLine " "
    objfile.writeLine " "
    objfile.writeLine "--------------------------------------------------------------------------------"
    objfile.writeLine "This email is intended for the intended recipients(s) and may contain confidential information. "
    objfile.writeLine "Reproduction, dissemination or distribution of this message is prohibited unless authorised by the sender."
    objfile.writeLine "If you are not the intended recipient, please notify the sender immediately and you must not read,"
    objfile.writeLine "keep, use, disclose, copy or distribute this email without the sender's prior permission."
    objfile.writeLine "The views expressed by the sender are not necessarily those of Elcom Technology Pty Ltd "
    objFile.Close
     
     
    Set objFile = objFSO.CreateTextFile(HTMFileString,True)
    objFile.Close
    Set objFile = objFSO.OpenTextFile(HTMFileString, 2)  
     
    objfile.write "<!DOCTYPE HTML PUBLIC " & aQuote & "-//W3C//DTD HTML 4.0 Transitional//EN" & aQuote & ">" & vbCrLf
    objfile.write "<HTML><HEAD><TITLE>Microsoft Office Outlook Signature</TITLE>" & vbCrLf
    objfile.write "<META http-equiv=Content-Type content=" & aQuote & "text/html; charset=windows-1252" & aQuote & ">" & vbCrLf
    objfile.write "<META content=" & aQuote & "MSHTML 6.00.3790.186" & aQuote & " name=GENERATOR></HEAD>" & vbCrLf
    objfile.write "<body>" & vbCrLf
    objfile.write "<font color=696969 face=" & aQuote & "Arial" & aQuote & "><h6> "& FullName & " | " & title & " | "& Company & " | Australian Technology Park <br>"& vbCrLf
    objfile.write "T +612 " & PhoneNumber & " | F +612 9209 4423 | <a href=http://www.elcom.com.au><font color=#696969>www.elcom.com.au</font></a> |<a href=mailto:" & Email &" > <font color=#696969>" & Email &" " & vbCrLf
    objfile.write "</h6></font></a></B>" & vbCrLf
    objfile.write "</font>" & vbCrLf
    objfile.write "<font color=696969 face=arial><A href=http://www.elcom.com.au/> <img src=http://www.elcom.com.au/images/elcom-logo-web-175x70.gif border=0></a>" & vbCrLf
    objfile.write "<br>" & vbCrLf
    objfile.write "<img src=http://www.elcom.com.au/images/mspartner.jpg>" & vbCrLf
    objfile.write "<br>" & vbCrLf
    objfile.write "</font><font color=696969 size=1 face=arial><br>" & vbCrLf
    objfile.write "<hr size=1 align=left width=465 color=696969>" & vbCrLf
    objfile.write " This email is intended for the intended recipients(s) and may contain confidential information. <br> Reproduction, dissemination or distribution of this message is prohibited unless authorised by the sender.<br> If you are not the intended recipient, please notify the sender immediately and you must not read,<br> keep, use, disclose, copy or distribute this email without the sender's prior permission.<br> The views expressed by the sender are not necessarily those of Elcom Technology Pty Ltd</font>"  & vbCrLf
    objfile.write "</FONT></BODY></HTML>" & vbCrLf
    objFile.Close
     
     
    '==========================================================================
    ' This copies the .htm file and changes it to a RTF format
    '==========================================================================
    'Set the Source and Destination paths below - CHANGE your file name
    '----------------------------------------------------
     
    Const OverwriteExisting = True
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    objFSO.CopyFile Folderlocation & "Elcom.txt" , Folderlocation & "Elcom.rtf", OverwriteExisting
     
     
     
    '===========================================================================
    ' Formats the RTF
    '===========================================================================
    Const wdExtend = 1 
    'const wdStory = 6
    'const wdMove = 1
     
     
    Set objWord = CreateObject("Word.Application")
    objWord.Visible = True
    'Be sure to change the file name to your desired name
    Set objDoc = objWord.Documents.Open(Folderlocation & "Elcom.rtf")
    Set objSelection = objWord.Selection
     
    set objSelection = objDoc.Range()
    'objDoc.Range()
    'objSelection.HomeKey wdExtend
     
    'you can add more functions IE Bold, underline, different font etc
    objSelection.Font.Size = "10"
    objSelection.Font.Name = "Arial"
     
    'Save the file
    'Be sure to change the file name to your desired name
    objDoc.SaveAs Folderlocation & "Elcom.rtf", RTF
     
     
    ' Close the active document
    objDoc.Close
     
    'Close Word
    objWord.Quit
     
     
     
    ' ===========================
    ' This section readsout the current Outlook profile and then sets the name of the default Signature
    ' ===========================
    ' Use this version to set all accounts
    ' in the default mail profile
    ' to use a previously created signature  
     
    Call SetDefaultSignature("Elcom","")  
     
    ' Use this version (and comment the other) to
    ' modify a named profile.
    'Call SetDefaultSignature _
    ' ("Signature Name", "Profile Name")  
     
    Sub SetDefaultSignature(strSigName, strProfile)
    Const HKEY_CURRENT_USER = &H80000001
    strComputer = "."  
     
    If Not IsOutlookRunning Then
    Set objreg = GetObject("winmgmts:" & _
    "{impersonationLevel=impersonate}!\\" & _
    strComputer & "\root\default:StdRegProv")
    strKeyPath = "Software\Microsoft\Windows NT\" & _
    "CurrentVersion\Windows " & _
    "Messaging Subsystem\Profiles\"
    ' get default profile name if none specified
    If strProfile = "" Then
    objreg.GetStringValue HKEY_CURRENT_USER, _
    strKeyPath, "DefaultProfile", strProfile
    End If
    ' build array from signature name
    myArray = StringToByteArray(strSigName, True)
    strKeyPath = strKeyPath & strProfile & _
    "\9375CFF0413111d3B88A00104B2A6676"
    objreg.EnumKey HKEY_CURRENT_USER, strKeyPath, _
    arrProfileKeys
    For Each subkey In arrProfileKeys
    strsubkeypath = strKeyPath & "\" & subkey
    objreg.SetBinaryValue HKEY_CURRENT_USER, _
    strsubkeypath, "New Signature", myArray
    objreg.SetBinaryValue HKEY_CURRENT_USER, _
    strsubkeypath, "Reply-Forward Signature", myArray
    Next
    Else
    strMsg = "Please shut down Outlook before " & _
    "running this script."
    MsgBox strMsg, vbExclamation, "SetDefaultSignature"
    End If
    End Sub  
     
    Function IsOutlookRunning()
    strComputer = "."
    strQuery = "Select * from Win32_Process " & _
    "Where Name = 'Outlook.exe'"
    Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" _
    & strComputer & "\root\cimv2")
    Set colProcesses = objWMIService.ExecQuery(strQuery)
    For Each objProcess In colProcesses
    If UCase(objProcess.Name) = "OUTLOOK.EXE" Then
    IsOutlookRunning = True
    Else
    IsOutlookRunning = False
    End If
    Next
    End Function  
     
    Public Function StringToByteArray _
    (Data, NeedNullTerminator)
    Dim strAll
    strAll = StringToHex4(Data)
    If NeedNullTerminator Then
    strAll = strAll & "0000"
    End If
    intLen = Len(strAll) \ 2
    ReDim arr(intLen - 1)
    For i = 1 To Len(strAll) \ 2
    arr(i - 1) = CByte _
    ("&H" & Mid(strAll, (2 * i) - 1, 2))
    Next
    StringToByteArray = arr
    End Function  
     
    Public Function StringToHex4(Data)
    ' Input: normal text
    ' Output: four-character string for each character,
    ' e.g. "3204" for lower-case Russian B,
    ' "6500" for ASCII e
    ' Output: correct characters
    ' needs to reverse order of bytes from 0432
    Dim strAll
    For i = 1 To Len(Data)
    ' get the four-character hex for each character
    strChar = Mid(Data, i, 1)
    strTemp = Right("00" & Hex(AscW(strChar)), 4)
    strAll = strAll & Right(strTemp, 2) & Left(strTemp, 2)
    Next
    StringToHex4 = strAll  
     
     
    End Function

    Enjoy