Skip to content

Windows Fabric Logs, Disk Space Usage and Circular Logging in SharePoint 2013 servers

Hi All,

I copied all these steps from one guy’s blog ( I tried to add that link in references but somehow I lost that link and now I am not finding that link on internet) and followed below steps and it worked fine and I was able to reduce the disk space usage.

To understand what Windows Fabric is, what is does and how it works you may refer to this link –
“Understanding how Windows Fabric Works (with regards to Lync)”

There are two (2) User Defined Collector sets by default when a Lync Front-End server is deployed.

  • FabricLeaseLayerTraces
  • FabricTraces

You can find these in Performance Monitor

And the default location of the files generated by these data collectors is in C:\ProgramData\Windows Fabric\Fabric\log\Traces folder of each Front-End server.

The screenshot above is from one of the FE Servers in my lab setup. As you can see there are multiple files with approximately 128MB size each. What happens is that once the log file reached a new log file is generated with an incremental version.



And there is no limit as to how many of these files are created and can ultimately use up all available free space.

So the questions:

Why the 128MB Maximum file size?

It can be any size really, it’s just that 128MB is the default when the data collector was created. You can simply check this using the logman utility.

What triggers the data collector to start?

A Task is scheduled to run at system startup which calls the “StartTracing.cmd” batch file.

Where can I find StartTracing.cmd and how is Task Scheduler able to call it when there is no relative path indicated in the Task?

A relative path (eg. C:\Windows\etc\whatever.exe) is not necessary because the file StartTracing.cmd is located in a path that is already defined in the Environment Variables.

Think of notepad for example which you can run by just typing notepad.exe without having to specify the path – that is the same concept.

How do I stop Windows Fabric from generating multiple log trace files?

The short answer is to turn on Circular Logging.

How? According to this article – – you can turn on circular logging by running this command (from an elevated command prompt)

Logman update trace FabricLeaseLayerTraces -f bincirc –cnf

I did use that article as a guide to enable the Circular Logging for both collectors, but somehow logman still kept on generating new files. I’m not saying that it is wrong, only that some parameters were not included to achieve my intended outcome.

So why didn’t it work? That is because despite circular logging being turned on, the versioning is still enabled and the overwrite switch was not specified. In order to really turn on Circular Logging and keep the number of files to 1, this is what I did:


  • Run these commands in an elevated command prompt:

Logman update trace FabricLeaseLayerTraces -f bincirc –v –cnf -ow
Logman update trace FabricTraces -f bincirc –v –cnf -ow

What do the switches mean?

-f bincrc = turn on circular logging
–v = turn off file versioning
–cnf = turn off creation of new files
-ow = turn on overwrite of existing log file

  • Temporarily stop the logging

logman stop fabricleaselayertraces
logman stop fabrictraces

  • (Optional) Delete the existing log files

del “C:\ProgramData\Windows Fabric\Fabric\log\Traces\*.*”

  • Start logging

logman start fabricleaselayertraces
logman start fabrictraces

.  Query

logman query FabricTraces

logman query FabricLeaseLayerTraces

The Result?

Notice that the versioning has been removed.

The same log files will be overwritten every time.

Also, you may want to consider increasing the maximum file size to a much higher value (like 2GB or higher) since there will only one log file for each data collector.

logman update fabrictraces -max 2048
logman update fabricleaselayertraces -max 2048



Filter SharePoint List or Library items based on Approval Workflow status

If you want to filter a SharePoint library/list based on the value of a column, you type in the text string that you want to filter on. But you can’t use the text such as “Approved”, “Canceled”, etc when you try to filter items in a list on an Approval Workflow column. Instead of using text value you have to use the integer value for the status.

Here are the integer values:

0 – Starting

1 – Failed on Start

2 – In Progress

3 – Error Occurred

4 – Canceled

5 – Completed

6 – Failed on Start (retrying)

7 – Error Occurred (retrying

15 – Canceled

16 – Approved

17 – Rejected

Delete Sealed column for SharePoint List Using Powershell

Sealed columns means, you do not see delete button and you cannot delete columns manually.

Follow below steps to delete Sealed columns:

$site = Get-SPSite “Site Url”
$web = $site.OpenWeb(“site URL”)
//$web = Get-SPWeb -identity SubSite URL
$list = $web.Lists[“ListName”]
$field = $list.Fields[“Field Name”]
$field.AllowDeletion = “true”
$field.Sealed = “false”

Stop User Profile Synchronization service Or User Profile Synchronization service stuck on Starting or Stopping

Follow below script when User Profile Synchronization service stuck on Starting or Stopping:

1. Log on to the Server where User Profile Synchronization Service was stuck in stopping state.
2. Make sure the Forefront Identity Manager and Forefront Identity Manager Synchronization Service are using the farm account as the service account
3. Launch SharePoint 2013 Management Shell
4. Get the GUID for User Profile Synchronization Service
Get-SPServiceInstance | Select-Object TypeName, ID
5. Check the status of User Profile Synchronization Service
Get-SPServiceInstance -Identity GUIDOfUserProfileSynchronization
6. To stop this , type the GUID of User Profile Synchronization Serviec
Stop-SPServiceInstance -Identity GUIDOfUserProfileSynchronization
IISRESET on the front end servers.

Add-PSSnapin Microsoft.SharePoint.Powershell
$TypeName = “User Profile Synchronization Service”
$ServerName = “SERVERNAME” #Replace with your server name where the service is stuck on Starting
$Serviceinstance = Get-SPServiceInstance | where-object {$_.TypeName -eq $TypeName -and $_.Server.Address -eq $ServerName}
Read-Host -Prompt “Press Enter to exit”


Get-SPServiceInstance | Where-Object {$_.TypeName -eq ‘User Profile Synchronization Service’}                                                                                                                                                    Stop-SPServiceInstance GUID



Delete items from SharePoint list using Powershell

$Web = Get-SPWeb $Url
$List = $Web.lists[$ListName]
if($List -eq $null){
Write-Error “The List cannot be found”;return
Write-Warning “Deleting all list items from $($ListName)”
$Items = $List.GetItems()
$Items | ForEach-Object{

Update Infopath connections

Follow below steps to update InfoPath form connections, especially when you deploy form from one environment to another environment:

  1. Export all prod forms to their source files
  2. Open up the manifest file for each in a text editor.
  3. Change all references to new URL from old URL.
  4. Save the file.
  5. Right click on the manifest and open in design mode.
  6. Validate that all data connections point to test.
  7. Also ‘modify’ each data connection that points to a sp list. Just click modify on each list connection and next thru the wizard. This ensures the form has the correct list guid.
  8. Save the file to a new location. It will save as the combined xsn, but now its updated for test.
  9. Now you can make any changed needed and deploy the updates xsn files to test

Run stsadm.exe commands from anywhere in the command prompt

Follow below steps to run STSADM commands from anywhere in command prompt:

• Open command prompt
• Type in the following command: @set PATH=C:\Program Files\Common Files\Microsoft Shared\web server extensions\15\BIN;%PATH%
• You can now run the stsadm.exe commands from anywhere in the command prompt.