Sometimes things that are meant to make your life easier make it harder. As is the case with RES Workspace Manager with Zero-profiling. If you have published Outlook 2010 or 2013 in RES Workspace Manager and you’ve enabled Zero-profiling fixing a corrupted Autocomplete dat file is not an easy job. Luckily there is a tool called Nk2edit. With NK2edit you can repair and edit NK2 and Autocomplete.dat files. The nice thing about NK2edit is that it has command line parameters. So in my case I made a little Powershell script that does the job.
When a user opens Outlook 2010 a couple of files are being loaded out of the Zero profile. They are loaded under C:\Users\$Username\Appdata\Local\Microsoft\Outlook. A file called Stream_Autocomplete_XXXXX.dat is created. In that file the is the autocomplete data stored. All you helpdesk have to do is enter the UNC path of that file in the script. Request the user to close Outlook and let the script do it’s thing. In the background you regenerate the autocomplete file by simple load and save it. This resolves the problem. To do so I let the /Script parameter refer to an empty script file. This manipulates nk2edit to load and save the .dat file. For the script to work you’ll need to download NK2edit.exe. You do not need a commercial license for the script to work, however if you use it commercially you of course do need one ;-).
$Choice = "y" While ($Choice -eq "Y"){ [console]::ForegroundColor = "Cyan" Write-Host "Vul de locatie van het autocomplete bestand:" -NoNewline $Locatie = Read-host $Result = Test-Path $Locatie While ($Result -ne $True){Write-Host "De opgegeven locatie bestaat niet. Vul opnieuw in:" -NoNewline Cyan $Locatie = Read-host $Result = Test-Path $Locatie} Write-host "NK2edit wordt uitgevoerd" .\NK2Edit.exe /nobackup /nofirstbackup /script .\Script.txt $Locatie Start-Sleep -s 5 $Testresult = ((Get-date) - (GI $locatie ).LastWriteTime).Seconds While ($Testresult -ne 15){ $Testresult = ((Get-date) - (GI $locatie ).LastWriteTime).Seconds } Write-host "NK2Edit is klaar" $Choice = "" While ($choice -notmatch "[y|n]"){$choice = read-host "Wilt u dit voor nog een user uitvoeren? (Y/N)"} [console]::ResetColor() }
I compressed the script and NK2edit in a zip file. Click here to download.