FBWF works well when you install as described in the first posts.
But it has some massive drawbacks in the commit function that should write files to disk:
1. the commit cant create folders
If you create a new folder while the volume is fbwf protected you cant commit that.
If you install a
software that creates a new folder an put files in there the commit for the files throw out an error
So it is impossible to create new foldes while fbwf is active on the volume
2. You cant delete files with the commit function
Nevertheless i use it because its really fast.
I added a shutdown script to xp which writes all files to disk when i shutdown.
This can be done in the group policies. start mmc.exe and add group policies snap in.
you will find the setting in
Windows Settings -> scripts Startup / Shutdown.
If it helps somebody, here is the vbs script:
'Settings:
volume = "c:"
Call DetectifActive()
Function DetectifActive ()
Set WshShellDetect = WScript.CreateObject("WScript.Shell")
Set WshExecDetect = WshShellDetect.Exec("fbwfmgr /displayconfig")
isactive = LCase(WshExecDetect.StdOut.ReadAll)
If InStr(isactive, "filter state: enabled.") <> 0 Then
Call StartCommit()
End If
End Function
Function StartCommit ()
Set WshShell = WScript.CreateObject("WScript.Shell")
Set WshExec = WshShell.Exec("fbwfmgr /overlaydetail") 'get the contents of the
overlay
fbwfoverlay = LCase(WshExec.StdOut.ReadAll)
folders = Split(fbwfoverlay,vbNewLine)
For each folder in folders
result = 0
dirstartpos = 0
dirlength = 0
grabpos = 0
commitfile = ""
If InStr(folder, "file") <> 0 then
dirstartpos = InStr(folder, "\") ' returns the position of the directory start
dirlenght = Len(folder) ' returns the lenght of the string
grabpos = dirlenght - dirstartpos + 1
commitfile = Right(folder,grabpos)
Call commit(commitfile)
End If
Next
wscript.sleep(500)
End Function
Function commit (file)
helpchar = """"
Set WshShellCommit = WScript.CreateObject("WScript.Shell")
Set WshExecCommit = WshShellCommit.Exec("fbwfmgr /commit " & volume & " " & helpchar & file & helpchar)
commitoutput = LCase(WshExecCommit.StdOut.ReadAll)
End Function
Bookmarks