Het is de week van interessante problemen denk ik dan maar. Een van die mooie functies in Windows is natuurlijk dat je op een gedeelde map van een Server rechtermuisknop kunt doen en dan de bestanden Offline beschikbaar kunt maken. Ideaal voor laptops want zo kun je zonder verbinding toch werken en zodra er weer verbinding is met de server worden deze wijzigingen gesynchroniseert.

Een kennis van mij heeft een nieuwe laptop met Windows Vista en ging met deze functie aan de slag. Er was nog niet geklikt of de foutmeldingen vlogen om de oren. Voor elk bestand in de server share kwam er een melding:

“Het proces heeft geen toegang tot het bestand omdat het door een ander proces wordt gebruikt”.

sync_error

Dus gevalletje rechten dacht ik. Na wat stoeien daarmee was het duidelijk dat dit het niet was. Offline bestanden in het configuratie scherm uit en aan gezet, etc.  Na wat zoeken kwam ik uiteindelijk op deze pagina.

Hierin werd de link naar het Microsoft Knowledge base artikel KB296264 gegeven waarin uitleg wordt gegeven over het “opportunistisch vergrendelen ingeschakeld voor SMB-clients”. Het moet niet gekker worden met dat vertalen.. In dat artikel staat ook de fijne vermelding:
“Als u opportunistisch vergrendelen uitschakelt, loopt de functie voor offlinebestanden in Windows Vista vast.”

Dus wat gebeurt er: Windows Vista gaat naar de Server toe en vraagt de server om het bestand even tijdelijk te blokkeren voor gebruikers. Dit zorgt ervoor dat Windows Vista een kopie lokaal kan maken die niet gewijzigd wordt tijdens het kopieren. Windows Vista heeft aan de client zijde het opportunistic locking aan staan. De Windows Server 2003 (In ons geval een Small Business Edition) heeft dat niet en ondersteund dus dit opportunistic locking niet. Daarom krijgt Windows Vista dus geen exclusieve toegang tot het bestand en het gevolg is de foutmelding.

Wat te doen?
Op zich is de oplossing heel simpel. De server heeft wel ondersteuning voor opportunistic locking maar standaard staat dit uit. Je moet er wel rekening mee houden dat wanneer je deze optie aanzet de server daarvoor opnieuw moet worden opgestart.

Op de SERVER loggen we in als Administrator of een ander account met administratieve rechten en doen de volgende stappen:

  • Klik op Start | Type REGEDIT [Enter]
  • Ga naar de sleutel HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesLanmanServerParameters
  • Aan de rechterkant staat de REG_DWORD EnableOplocks met de waarde 0
  • Verander deze waarde in 1
  • Sluit de Registor editor en herstart dan de server.

Nadat de server opnieuw is opgestart kan men de Windows Vista client opnieuw de synchronisatie laten starten en alles werkt nu vlekkeloos.

Thanks!