How to make Firefox run faster a.k.a. run it in single process (firefox is slow)

Chrome started to give me troubles on multiple webistes, because I would in order to work I needed to hard empty cache for every visit to the website so I have tried firefox once again after a while to check if it works or is it better than the chrome.

On the first run the speed of the firefox browser was more or less the same as the chrome. Then after a while I started seeing that firefox is slow, beacause I have a tendency to open quote a lot new tabs the number sometimes varies from 30 to multiple windows with 20+ tabs :D

What I saw in this usage is that firefox is using more than double memory of the Chrome, so if chrome in total has used 4Gigs the firefox usage would be 8Gigs+. This is not so acceptable to me as my laptop has 16Gigs of RAM so it would fill quite quickly if I open something esle as well.

After looking around I have found two options in chrome about:config that helped me, basically it means to run the firefox tabs in the single process and not in multiple like default setting. This helped me to decrease the amount of memory used from 6-8gigs to around 2-3 gigs.

Try it your self:

  1. in the firefox address type about:config
  2. in search enter string autostart
  3. you will find three settings, browser.privatebrowsing.autostart, browser.tabs.remote.autostart and browser.tabs.remote.autostart.2.
  4. Set all three to false (basically autostart.2 is as I understand for firefoxe’s lower then version 58 so if you are using it this will be the settings for you).
Posted in Uncategorized

SharePoint audit logs

Intro

SharePoint audit logs allows your organization to see who is accessing what files and folders, site collection, sites and subsites, document libraries, lists or list items you name it. In case you need to audit who did what on the SharePoint site for various reasons like for the compliance projects like GDPR, for the external auditor, tax audits or just because your organization policy is to audit everything you don’t need to look anywhere else. In today blog I will cover what is auditing on the SharePoint, where you need to enable it, and how to automate auditing to be enabled on all the SharePoint site collections within your farm (basically the reason to write this blog post is because of that, I was not able to find how to enable for all site collections on the SharePoint farm).

The article was built for SharePoint 2016 but I believe it works on SharePoint 2013 and SharePoint 2019 auditing works the same as well. If something is changed meanwhile please let me know in the comments below.

Where to enable Audit Settings on the farm level

  1. Go to the Central Administration
  2. Go to Application Management then  Manage Service Aplications
  3. Select the Secure Store Application
  4. On the ribbon, click ‘properties’
  5. In the ‘enable audit’ section; click to select the audit log
  6. To change the number of days that entries will be purged from the audit log, specify a number in days – default is 30

Where to configure audit settings for the site collection

You need to go to site settings > site collection audit settings.

There we can configure multiple stuff.

Audit Log Trimming

If you want to automatically trim audit log and after how log you can trim it here. The first setting enables trimming and second allows you to configure after how log to trim the log. If you leave it empty it will use the farm setting. Default end of the month means the change log retains data for 60 days. That means then logs will retain for two months. Recommended is not to set this setting on the site collection but to use the farm wide setting.

Documents and Items and Lists, Libraries, and Sites

Now we need to to set events to audit for various types. Following events are available:

  • Opened and downloaded documents, viewed items in lists, and viewed item properties (BTW N/A for SharePoint Online sites)
  • Edited items
  • Checked-out and checked-in items
  • Items that have been moved and copied to other locations in the site collection
  • Deleted and restored items
  • Changes to content type and column
  • Search queries
  • Changes to user accounts and permissions
  • Changed audit settings and deleted audit log events
  • Workflow events
  • Custom events

Depending on what you need to audit you can enable partially settings, but usually people want to audit everything so let’s check all the boxes.

FYI you need to be careful with the first option on the huge farms. Opened and downloaded documents, viewed items in lists, and viewed item properties can cause quite a lot impact on the SQL server and the size of the table where SharePoint is storing the logs.

Every SharePoint environment is different any you need to track how your database grows over time and if you can support this amount of logs.

PowerShell to enable all audit settings on all site collections

So manually enabling auditing on each collection would be PITA, because you need to manually go to each site collection, open site collection audit settings and click all 8 check-boxes. That is the reason why I have created a PowerShell that discover all the site collections and enables all auditing on all of them.

FYI I’ve seen farms with as much as 200k+ site collections so imagine if you need to do this manually :D

This PowerShell will run with elevated privileges and on all SharePoint site collections will enable all the auditing settings.

[Microsoft.SharePoint.SPSecurity]::RunWithElevatedPrivileges(
{
   $sites = Get-SPSite -Limit All
   foreach($site in $sites)
   {
       $site.Audit.AuditFlags = $site.Audit.AuditFlags = [Microsoft.SharePoint.SPAuditMaskType]::CheckOut `
-bxor [Microsoft.SharePoint.SPAuditMaskType]::CheckIn `
-bxor [Microsoft.SharePoint.SPAuditMaskType]::View `
-bxor [Microsoft.SharePoint.SPAuditMaskType]::Delete `
-bxor [Microsoft.SharePoint.SPAuditMaskType]::Update `
-bxor [Microsoft.SharePoint.SPAuditMaskType]::ProfileChange `
-bxor [Microsoft.SharePoint.SPAuditMaskType]::ChildDelete `
-bxor [Microsoft.SharePoint.SPAuditMaskType]::SchemaChange `
-bxor [Microsoft.SharePoint.SPAuditMaskType]::SecurityChange `
-bxor [Microsoft.SharePoint.SPAuditMaskType]::Undelete `
-bxor [Microsoft.SharePoint.SPAuditMaskType]::Workflow `
-bxor [Microsoft.SharePoint.SPAuditMaskType]::Copy `
-bxor [Microsoft.SharePoint.SPAuditMaskType]::Move `
-bxor [Microsoft.SharePoint.SPAuditMaskType]::Search
       $site.Audit.Update()
       $site.Dispose()
   }
})

Where to View and Generate SharePoint Audit Logs Reports

When you have configured audit logs you can find them in Site Settings > Audit Log Reports.

Once you configure the audit logs you can view them in Site Settings. Under Site Collection Administration you will find the Audit Logs Reports option. This is really simple you just need to select what type of the audit events want and SharePoint will generate excel file for you.

In the file you will have two sheets, the first will be the count of the event your selected for all the documents and on the second screen you will have all the users that accessed the document. Plain and simple.

The PITA is that you need to do this for every different event and for every site collection so that can be again time consuming.

PowerShell to automate viewing audit logs from all site collections

So manually generating excel files for each site collection is a lot of the manual job so I decided to ease your life with the PowerShell.

Add-PSSnapin Microsoft.SharePoint.Powershell -ErrorAction SilentlyContinue
[Microsoft.SharePoint.SPSecurity]::RunWithElevatedPrivileges(
{
  $sites = Get-SPSite -Limit All
  foreach($site in $sites)
  {
      $auditQuery = New-Object Microsoft.SharePoint.SPAuditQuery($site)
      $auditLogs = $site.Audit.GetEntries($auditQuery)
      foreach($logEntry in $auditLogs)
      {
        $user = $site.RootWeb.SiteUsers.GetByID($logEntry.UserId).Name
        Write-Host "Document: " $logEntry.DocLocation " Event: " $logEntry.Event " User: " $user " Details: " $logEntry.EventData
      }
  }
})

This is example that I generated on my test farm for all the site collections:

SharePoint audit logs

SharePoint audit logs

I hope you guys now understand how to set audit logs on the farm wide level and for each site collection out there. Let me know in the comments below what do you think about it and how do you audit your farm.

BTW if you want professional looking solution, where you can manage multiple SharePoint farms audit logs, and you want exportable report that is professional looking you want to look at the SPDocKit solution. SPDocKit is easily installed and you can use it to offload your audit logs from the farm and keep logs for longer periods. When you offload the logs, the audit table will be a lot smaller and if you need to search thru the audit logs, or provide access to the auditor from few months ago you can use the SPDocKit because it will hold the logs practically forever. 

Posted in SharePoint Tagged with:

Remote Desktop Services Manager 2016

Are you missing good old terminal services manager (remote desktop services manager) from the Windows Server 2008 R2? For reason that is unknown to me as of today the Microsoft has decided to remove this mmc snapin that was a quick management tool, if you needed to kill the process on the specific server or check the users currently logged on the servers. As of today the Microsoft has not provided any official replacement for this handy tool.

That is pity because I have used the tool numerous times.

So I started researching if I can and to me seems that the tool from Windows 2008 R2 works on the Windows 2012, 2012 R2, 2016 and Windows 10 as well! :-) So everything you need to do is to copy file from here: tsadmin and do following steps:

  1. The zip consist 4 files, tsadmin.msc, wts.dll, tsadmin.dll and tsadmin.reg that I have created for this experiment to work.
  2. extract the files to c:\Windows\System32\
  3. Double click on the tsadmin.reg to add to the registry required information for the terminal services manager in order to load the MMC snapin
  4. Double click on the tsadmin.exe
  5. voila it works!
  6. The best is if you add more servers under mygroup, when you run it again it will just work and read the servers you have added before 

So what you can do? I have tested to work with:

  • Windows server remote desktop services 2012
  • Windows server remote desktop services 2012 R2
  • Windows server remote desktop services 2016
  • Windows server remote desktop services 2019 build 17623 (at a time of the article the Windows 2019 RTM was not announced yet)

The functions working are:

  • disconnecting a session
  • sending message
  • resetting session
  • status of the session
  • logging of the session
  • ending a process on the processes tab (one of the simplest most important features of the tool) 

 

Let me know in the comments is it working as it should for you as well?

BTW if you need powerful full blown management tools you can take a look at SysKit Monitor.

Posted in Remote Desktop Services, Windows general

SQL Server Analysis Services Flight Recorder – how to check the change logs as a PRO

So you have assigned weekend DBA role and you need to take care about your company SQL servers as well. I will focus here on checking the change logs for the SQL server analysis services, it some other blog post we will pay attention to the SQL server database service as well.

The specific problem that I have is on the specific role for the database the cell data read permission were enabled. I was testing some third party app and the third party app was relying on this type of permissions, so of course if you do not assign appropriate permissions for the cell data the application would work and would return something like: “read access to the cell is denied“.

The error has lead me that the read permissions were enabled on the cell data level and the user is not able to read the data from particular place because cell data was not configured.

I have disabled enable read permissions for the cell data in the Role properties for a specific role, and of course the soon I did that the 3rd party application started working, I knew I need to add another property in order application to work.

What I didn’t know is what exactly was in that property before, so when I just ticked enable read permissions and saved the query and lost the query whatever was before. Okay so I have now enabled read permissions of all the content but I know I need to specify just specific content.

I need to know what was there before the save.

First you need to find the logs of the Analysis services which are located here: C:\Program Files\Microsoft SQL Server\MSAS11.MSSQLSERVER\OLAP\Log (of course if your installation is in the different place you need to look there, but to find where are the logs go you can chenk in the Properties of the SQL Analysis server and then go to general tab

Then navigate to that location any you will see a files that looks something like this:

The key for us is the Flight recorder back, so it is like a ‘black-box’ trace of what has changed on the SQL server, or in this scenario of what has changed on the SQL Server analysis services. This is a great this because it will trace all the recent changes on the server, and if you deleted something accidentally you will be able to see what was there before (the settings not the actual data) and then to revert changes on the SQL server.

When you open the flight recorder file it will look something like this:

So inside this file is the trace of everything that you have recently changed on the SQL server. This is really powerful, if you deleted something or if you need to check the audit log or what happens on the query begin, on the query end or if you query subcube everything will be in one single location.

What I knew is I have changed Expression for the content, and basically I have lost it and this is how it looks like :-)

 

What you need to focus in the eventclass command begin and command end in my situation.

There is it, after a change I had expression that was there before

So from this screenshot we can clearly see that the change was on the roleID with a ID 3, and the I have ticked the checkbox Allowed (in the SQL management studio it is called enabled read permissions on the cell data page) and that the expression was the below. BINGO!

So this change was just before I deleted the whole expression and I am easily able to extract query for the SQL server studio and paste it again on the server.

SQL Server Analysis Services Flight Recorder from SQL server is a great tool to check really detailed recent changes on the SQL server, if you deleted something by accident or you don’t remember the exact something on the SQL server this can help you revert the changes. Play with it I am sure you will find it useful.

Posted in SQL

Citrix XenApp Installation Guide

This is a step-by-step Citrix XenApp installation guide created to help you quickly deploy and configure XenApp solution in your environment.

For those of you who have stumbled upon the XenApp for the first time, let me explain what actually XenApp does.

Citrix XenApp is application virtualization software that allows Windows applications to be accessed via individual devices from a shared server or cloud system without the necessity of installing them. With XenApp, Windows applications can be used on devices that typically could not run them (such as Mac computers, mobile devices…), but also it enables otherwise incompatible apps to run on Windows desktops.

The latest released version is Citrix XenApp 7.13., and this is the one we used for this guide.

Read more ›

Posted in Citrix

7 Things You Should Do When You Inherit An SQL Server

I’ve decided to put together this blog post as a beginner’s guide to dealing with an inherited SQL server environment.

You should read this if you’re going to be put in charge of the SQL servers in your company, for example if you’ve just been hired as the new DBA or if you’re a consultant or maybe a Windows admin tasked with the job of being a DBA as well.

If you’ve inherited a mess, where do you start? What do you do when the only guy who knows the infrastructure leaves?

Read more ›

Posted in SQL

Adding GUI to the server core aka Converting a Server Core to full GUI version Windows Server 2012 R2

Lately I had a lot of issues with converting three server core systems to a full GUI version of the Windows Server 2012 R2.

I have tried following stuff the would not work for me with the following error message (The source files could not be found. Use the “Source” option to specify the location of the files that are required to restore the feature. For more information on specifying a source location):

  1. mounted the Windows image to the drive and tried installing feature via Dism /online /enable-feature /featurename:ServerCore-FullServer /featurename:Server-Gui-Shell /featurename:Server-Gui-Mgmt (this should download the files from the windows update but it would not work)
  2. mount the windows image to the folder on some drive and then pull source from there the process includes following:
    – create a folder to mount the windows image mkdir c:\mountdir
    – determine the index number I need to use from the source of image Dism /get-wiminfo /wimfile:<drive>:sources\install.wim
    – Mount the WIM file using: Dism /mount-wim /WimFile:c:\sources\install.wim /Index:4 /MountDir:c:\mountdir /readonly (index can change in your environment depending on the output from the previous command in mine it was number 4 Datacenter
    – start the powershell in cmd and run: Install-WindowsFeature Server-Gui-Mgmt-Infra,Server-Gui-Shell –Restart  –Source c:\mountdir\windows\winsxs

Read more ›

Posted in Uncategorized

Downloads folder slow to load/sort in Windows 10

If you are like me you probably love to download various stuff from the internet and then over time when you have a lot of files in the downloads folder it is slow to load, or when you want to sort by date for example it takes forever or never finishes.

What happens here is is downloads folder is optimized as pictures folder so probably windows is trying to generate a thumbnail of the files/picture.

Here is the solution:

Read more ›

Posted in Windows general

Free Helpdesk ticketing solution for internal IT with Office 365 SSO

For our company communication with our clients we are using ticketing system Zendesk. I must say zendesk is a great solution that is very modern and fast, it comes for the with the integrated chat and phone as well.

We were looking for a solution where we will have a ticketing system for the internal infrastructure, because over the years we grew a lot and now we have few system engineers that are maintaining internal IT for the test systems for our developers. The Zendesk was great, but we are using SSO with it so in order to open ticket for the internal IT some people would need to logout from one zendesk system and then login to another via SSO or not SSO so that would possibly cause a huge mess. So we decided to look elsewhere.

What I found is great zendesk competitor Freshdesk which is free for unlimited agents in the basic edition:

Freshdesk Plans

Freshdesk is free and really easy solution that from now on we will use for internal IT needs. What is the best on the end not only freshdesk is free but the Single Sign On integration with Azure is free as well. Here is the tutorial on how to configure freshdesk to work with your existing Azure subscription so users can authenticate thru Azure Active Directory. Awesome stuff, great work guys!

Posted in Active Directory, Azure

European Collaboration Summit 2017 – not your usual SharePoint conference

I am proud to be a part of a three-day community-driven conference in Zagreb with the most influential experts from all around the world to discuss the latest news regarding Microsoft technologies that is organized by a company I work for.

Topics vary from novelties in Office 365, Azure, SharePoint, Exchange, Skype, and Project Server. Here’s what it’s all about!

The European Collaboration Summit 2017 is a nonprofit event and will take place in Zagreb, Croatia on May 29-31, 2017.

So what else do you need to know?

Well, namely that you will get to hear incredible speakers deliver the most exciting lectures, attend pre-conference workshops, and get a chance to mingle among consultants, admins, developers, business people, nerds, speakers, MVPs, masters, and fellow Microsoft employees.

What makes the ECS a special and unique event?

We’ve had this idea that we could combine the ethos of the SPC Adriatics Zagreb, Office 365 Conference Germany and Nordics. This means that we’ve decided to combine the experience gained with SharePoint and Office 365 community events, and create the best event in Europe.

Also, it’s a kind of conference that has the legendary Microsoft Office Development Patterns and Practices Team (PnP), an awesome party after the closing ceremony, and pretty cool prizes from our sponsors–you know those gadgets you know you want to but never get around to actually buy one for yourself. How cool is that?

Let’s get down to business, shall we?

I’d like to name a few interesting lectures that you will get to hear and of course much more.

  • Cool Dashboards, Charts and Visualizations for Power UsersBenjamin Niaulin will discuss how to build, interesting dashboards, charts, animations, data visualizations, KPI, and much more with out of the box features and products.
  • Introduction to Microsoft Flow: Power to the peopleSerge Luca and Isabelle Can Campenhoudt will give an overview of what is Microsoft Flow, its current functionalities and the roadmap.
  • PowerApps & the Common Data Model for ITPros, Admins and ArchitectsNicki Borell will talk about the vision of Microsoft business application platform innovation with PowerApps and the Azure cloud platform.
  • Working with OneDrive for BusinessHand Brender will explain the implementation of Next Generation Sync Client (NGSC), the limitations and the competitors.
  • Exchange Server 2016 – Have you upgraded yet? Vladimir Meloski will guide you through the architecture changes in 2016 and how to prepare, test and deploy Exchange 2016 in your organization.
  • Azure for Office 365 developers – the best bits – Chris O’Brien will dig into the most relevant Azure capabilities, using real scenarios to show winning combinations such as SharePoint web hooks and Azure functions.

Refer to this agenda for a detailed list of lectures and get ready for the be mind-blown with “what is new” and “best practices” sessions guiding you through the changes happening in the IT world right now.

Save your seat now, visit us in Zagreb and join in on the discussion about the perspectives for business users, developers and IT Pros, and how the digital workplace is changing as we speak!

BeFunky Collage

Posted in Uncategorized Tagged with:

Follow me:

  • Facebook
  • Twitter
  • Linkedin
  • Youtube