Adam Blai



  1. Adam Blai – Demonology Seminar (Audio)
    • Video
    • Published on :- 2016-Apr 23
    • Occasion :- Adam Blai speaking at One Faith Experience – April 2016.
  2. Catholic Demonologist Adam Blai On Demonic Possession



Adam Blai – Demonology Seminar (Audio)

  1. Exorcist
    • Only a priest can do exorcist by Canon Law
  2. Participation
    • Over 100 solemn exorcism
  3. Unworthiness
    • I am not holy
    • Do not be afraid to do what God the father has called you to do
    • Do not let Satan trick you into thinking you are not holy, you are not equipped
    • He is going to use if you say Yes
  4. Reasons
    • Do not do it for
      • Excitement
      • Selfish reasons
    • Do it
      • It has to be because you are called
      • Asked to serve
        • By Bishop or elder
  5. Election
    • God allows us to be tempted
      • So that we can exercise free will
      • Grants us an opportunity to love God and be obedient to God
      • Corrective experiences
        • Enter into a deeper relationship with God
        • God allows extraordinary activities so that we can know the limits of our power & grace
  6. Permission
    • The Devil can not do anything unless permitted God
  7. Authority
    • Authority given by Jesus to the Apostles
    • Permission to Bishop
      • Bishop lent to the Priest
    • Oversight
      • Do not want to exercise if patient is
        • Mentally ill
        • Physically ill
  8. Demons
    • Demons are fallen Angels
    • At Creation
      • They had a ministry
      • They had work assignment

Error – System.InvalidCastException: Unable to cast COM object of type ‘Microsoft.Office.Interop.Excel.ApplicationClass’ to interface type ‘Microsoft.Office.Interop.Excel._Application’


A very good friend email me this afternoon that he his working with our corporate support engineer and getting the message pasted below.


Error Image

Error Message


Error Message – Details


Error Text


System.InvalidCastException: Unable to cast COM object of type ‘Microsoft.Office.Interop.Excel.ApplicationClass’ to interface type ‘c._Application’. This operation failed because the QueryInterface call on the COM component for the interface with IID ‘{000208D5-0000-0000-C000-000000000046}’ failed due to the following error: Library not registered. (Exception from HRESULT: 0x8002801D (TYPE_E_LIBNOTREGISTERED)).

How did we get here?

Here are what preceded the error message:

  1. A new laptop with Microsoft Office 2016 installed
  2. Tried to use MS Office 2010 based Access Application
    • Corrupted MS Office Access Database
  3. Uninstalled MS Office 2016
  4. Installed MS Office 2010




  1. Ensure that MS Excel is installed and running
  2. Attempt to have Application Save file as Excel File and Read directly from Excel
  3. Review Windows Registry
  4. Review Component Services



Ensure that MS Excel is installed and running

Run MS Excel


In Application Save File As Excel, Start Excel, and Load File

The problem we were having is with trying to have application use OLE to pass generated data to Excel.

We thus tried out a different track, which is to run query and save the result set into a file.

Once saved in a file, we launch Excel and loaded the generated file.

Review Windows Registry

Regedit or regedt32

Find – 000208D5-0000-0000-C000-000000000046


Find – Microsoft.Office.Interop.Excel


Map Microsoft.Office.Interop.Excel, Version =w.x.y.z to Office Version


Product Version Version ( RTM / SP[n] ) Version #
 Office 2010
 Office 2007  
 RTM  12.0.4518.1014
 SP1  12.0.6213.1000
 SP2  12.0.6425.1000
 SP3  12.0.6607.1000
 Office 2003




Control Panel – Programs and Features

Accessed Programs and Features and please do the following:

  1. Installed Features
    • Make sure that the following features are included
      • .NET Programmability Support
  2. Repair
    • Chose to Repair Microsoft Office 2010


Once .Net Programmability feature is installed and Repair performed if need be, please reboot computer.



Folder – C:\Windows\assembly

Please review C:\Windows\assembly and look for Microsoft.Office.Interop.* files

The files you want to look for are:

  1. Assembly
    • Microsoft.Office..Interop.Excel
      • Version :-



Office Product & Interop

  1. Office 2007
    • How to determine which version of a 2007 Office product is installed
  2. Office 2003
    • Installing and Using the Office 2003 Primary Interop Assemblies


Blog – Support

  1. Microsoft
    • Description of the startup switches for Excel
  2.  act!
    • Error: “Unable to cast COM object of type ‘Microsoft.Office.Interop.Outlook.ApplicationClass’ to interface type ‘Microsoft.Office.Interop.Outlook._Application’… When Synchronizing Act! and Microsoft® Outlook®
  3. netdocuments
    • “Library Not Registered” error when using EMS in Outlook


  1. COM related exception

SQL Server – Files In use – Day 1


One of the many areas that that one needs to keep an eye one when monitoring database engines  is which files are opened, how they are opened ( exclusively, read only), what other processes are competing for them, etc.

Day 1

This is Day 1 and so we will start off with the basic tools.




Microsoft really did a very job with Resource Monitor.

Prior to Resource Monitor, Task manager was the go to quick tool.

Task Manager

Here is what Task Manager exposes:

unfortunately, it only exposes information at process level.


Resource Monitor

Tab – Disk

Here we see the active Disk Activities.


  1. We are able to filter by Process
  2. And, we can order by
    • Process Name
    • File name
    • Reads/Writes/Totals

Tab – CPU

Tab – CPU – Original

When we switch over to the CPU Tab, here is what we see


We are forced to choose a process.

Tab – CPU – Process = sqlservr.exe

Once we chose sqlservr.exe from the list of processes:

Tab – CPU – Process = sqlservr.exe = Drive C:

  1. Unfortunately, we were getting really bad storage utilization a few months ago, and had to move to System Drive C: till more storage was allocated
  2. Will come back and move the rollover data and log files
Tab – CPU – Process = sqlservr.exe = Drive D & E:

  1. Most of our SQL Server Data and log files are on Drive D & E:
  2. Will come back and segregate them


I real like the straightforwardness of SysInternals tools.


Here is how to use handle.


Look for file handles

Here we ask for a specific process:

  1. -p = sqlservr
  2. type = file

handle -nobanner -p sqlservr | find "File" | more


Look for file handles – File  – Extension [ mdf, ndf, ldf]

Here we ask for files that have have df in their names.

  1. -p = sqlservr
  2. type = file

handle -nobanner -p sqlservr | find "File" | find "df" | more



SQL Server

Sql Server Management Studio ( SSMS )

You can also use SSMS Activity Monitor.

But, to me it is a big hammer to what one really needs.



Can’t go anywhere else but to SysInternals, Mark Russinovich & Bryce Cogswell.

To me they made it cool to want to look into things, Windows Internals anyone.

SQL Server – Extended Event – Metadata – Get Current Target File


For some optimization work that we are doing, I will like to know the name of the Extended Events’ Engine currently targeted file.




As always we know that Microsoft exposes a lot of metadata via Dynamic Management Views.

The specific ones that we will use are:

  1. sys.dm_xe_sessions
    • Currently executing Extended Event Sessions
  2. sys.dm_xe_session_targets
    • Targets for currently executing sessions


			= tblXES.[name]

		, [executionCount]
			= tblXEST.execution_count

		, [executionDuration]
			= tblXEST.execution_duration_ms

		, [targetData]
			= tblXEST.target_data

		, [fileCurrent]
			= cast(tblXEST.target_data as xml).value('(//File/@name)[1]','nvarchar(255)')

FROM sys.dm_xe_sessions AS tblXES

INNER JOIN sys.dm_xe_session_targets AS tblXEST

    ON tblXES.[address] = tblXEST.[event_session_address]


		( tblXEST.target_name = 'event_file' )



Sample Output


Guillaume Fourrat – VSS backup of AlwaysOn Secondaries


Catching up a bit on other people’s posting and wanted to share this one from Guillaume Fourrat.

Guillaume titles it “VSS backup of AlwaysOn Secondaries” and it is here.


VSS backup of AlwaysOn Secondaries


Hi Everyone,

Today I’m going to highlight one of the changes brought by SQL Server 2012 SP2, which is the way we handle VSS Backup requests on AlwaysOn Secondary Databases.

Until now, any request for a FULL database backup (VSS_BT_FULL) thru VSS against a DB that is an AlwaysOn secondary was failing by design. Our VSS Writer SQLWriter would return FAILED_AT_PREPARE_SNAPSHOT (0x800423f4 – VSS_E_WRITERERROR_NONRETRYABLE).

A copy-only VSS backup (VSS_BT_COPY) would work.

The rationale being the following: a FULL backup is actually updating the target DB (reset of differential bitmap mainly), which is not possible when the DB is read only. Furthermore, because of the failover possibilities introduced by AlwaysOn, the favored option was to use Native SQL Servers backup that could rely on SQL Server variable backup location ( if needed, and be ‘alwayson –aware’.

So that could be the end of the story: against an AlwaysOn Secondary DB, either use Copy_only VSS backups or use native backups.

But of course that wouldn’t make for a very interesting blog post…

Enters HyperV…

Consider the following scenario:

Large Windows HyperV Servers, hosting many HyperV virtual Servers, some of them SQL Servers in Always On architecture.

In short: a Private Cloud.

In this context, the IT usually takes care of the infrastructure at host level, and lets users deal with whatever happens within the VMs. One of the key tasks of IT is to manage backups (eg. for disaster recovery at datacenter level, or to provide restore of single VMs).

And the mainstream way to do that is to take VSS backups of the Host Disk Volumes. Microsoft System Center DPM will do exactly that.

But VSS backups are all about taking backups that are consistent: in ‘standalone’ SQL Server context you may already know all the logic SQLWriter implements to make sure that IO against the Databases that are backed up are frozen during the snapshot operation. So, back to our HyperV context, collecting a point-in-time image of a VHD without bothering with what happens within the VM would be defeating that very purpose right?

So what happens is the following: the VSS backup is propagated to Guest VMs thru HyperV integration services. That propagation hardcodes the backup type to VSS_BT_FULL, and therefore all guest VMs are initiating a VSS backup/snapshot in their own context. The purpose is to make sure that all applications are quiesced within all running VMs at the time we take the snapshot at the host level. This will enable us to generate a consistent backup of running VMs.

But let’s now put this in the context where one of the VMs is running an AlwaysOn secondary DB: you guessed it, it’s not going to work:


The important thing to know here is that the error returned by SQLWriter in VM3 will actually bubble up all the way to the initial VSS backup command at Host level, and will make it fail as a whole.

So we ended up in a situation where the IT infrastructure folks would see their Host backups failing from time to time for an unknown reason, depending on whether one or more of the VM present on the Host Drive being backup up had a secondary AlwaysOn DB! It could be that the AlwaysOn AG spans different HyperV hosts and therefore that the presence of a Secondary DB on a given Host is not something static over time.

Because of the complexity of the whole call chain, and because infrastructure IT operators may not have any visibility (or understanding) of the VM content, you can imagine what kind of troubleshooting challenges this would offer… And even when the situation is understood, well, what do we do? If host level backup must be somehow manually synchronized to the applicative state of Guest VMs, the Private Cloud scenario becomes quite more complicated all of a sudden.

This is the reason why SQL Server 2012 SP2 ships a code change for SQLWriter that will implement the following:


As you can see, SQLWriter now detects this specific situation and changes the backup type to VSS_BT_COPYONLY. This will only happen for VSS_BT_FULL backups against AlwaysOn secondary Dbs. VSS_BT_FULL backups against primary DB will happen without change.

In this case, the VSS backup will now successfully complete in VM3 and the host-level backup success state will no longer be tied to guest VM’s AlwaysOn activity. Private Cloud scenario unlocked!

Important note: the fact that VSS backup of AlwaysOn secondaries now works does not make it the preferred solution to backup SQL Server AlwaysOn architectures. The main purpose of the SP2 change is to avoid a situation where a single SQL Server in a VM fails a complete host-level backup operation that encompassing dozens of VMs.

The resulting backup for the VM hosting SQL should be considered a Disaster Recovery one, where AlwaysOn will be removed at once at restore time, not as a way to rebuild a subset of the nodes for an AlwaysOn Availability group. And for regular databases within the VM, that backup is as good any regular VSS one.

Finally, SQL Server 2012 SP2 only contains a partial fix for this issue. Servers running case-sensitive sort orders will require SQL Server 2012 SP2 Cumulative Update 2.


Guillaume Fourrat
SQL Server Escalation Engineer
Microsoft France


I really like the post for the reasons listed below:

  1. It is not something about a stupid query that can not be written a different way as it is embedded in the code or generated via an ORM Tool ( Entity Framework, Hibernate )
    • That is, it can be changed and optimized
    • Furthermore, we are not handicapped by what the developer thinks is fanciful and should be upheld by all means
  2. It affects a whole lot of parties
    • 3rd Party tools vendors that utilize VSS to backup SQL Server databases
    • Corporations that do not know or care what VSS is or does, they do not have a DBA and could care less that sql server datafiles can not just be backed up like other files
  3. The Application logs an error
    • The application actually logs the error and it is the hope that support staff will capture & review the errors periodically
  4. MSFT can and has provided a fix
    • MSFT has provided a fix and that means they are aware and tracking it
    • The patch will be brought into the main line code and all future versions will benefit going forward
    • If it breaks in subsequent version, we have every right to open a ticket thru Corporate Support or as a Connect Item
  5. And, above all else this is an actual technical problem
    • It is not a process problem
    • It is not a people problem
    • It is not one handicapped by long institutional or inter-department slight or grievance

Anti Virus – Free and Inexpensive AV for Windows Server


These days the top tier AntiVirus tools are free for Desktop computers.



As Vendors have to make money somehow they usually charge a bit for server products.

And, more for corporate deploy and management.

Here are some products that can be run on servers dating back to Windows 2003.

Vendor Product OS Link Price
 Avast For Business Endpoint Security Microsoft Windows XP/Vista/7/8/8.1/10 (32/64 bit)
Windows Server 2003, 2008, 2012/R2, 2016
 Comodo Cloud Antivirus XP (32bit), Win7/Win8/Win8.1/Win10 (32 bit & 64 bit) Product
 Immunet Windows XP, Windows Vista, Windows 7, Windows 8,
Windows 10, Windows 2003, Windows 2008, Windows 2012
 Link  Free
 Panda Free AntiVirus  Link  Free





  1. Avast
    • Avast For Business Endpoint Security – PC and server
      • Security Features
      • System Requirements
  2. Comodo
    • Introduction to Comodo Cloud Antivirus
    • System Requirements
    • Download
  3.  Panda
    • Operating System
      • What are the minimum installation requirements for Panda Security for Desktops?
    • Cloud Cleaner



  1. Solvps
    • Top 3 Free Antivirus Compatible with Windows Server or VPS (Updated 2017)

SQL Server – v2014 – Help – Error Message – “No Content was found on your computer”


Trying to access Help for my installed SQL Server v2014, but No Go!


Error Message



No Content was found on your computer




  1. Launch “Microsoft SQL Server 2014” \ “Documentation & Community” \ “SQL Server Documentation


From Start Menu, Launch SQL Server Documentation


Help Library Manager

The “Help Library Manager” window appears….


We are given the following options:

  1. Choose online or local help
  2. Check for updates online
  3. Install content from online
  4. Install content from disk


Install Content From Disk

Did not work…

We chose to install from disk…

Install Content From Disk – Location of help media

Unfortunately, we were unable to find local sources.


Install Content From Online


Install Content From Online – “SQL Server 2014”

Navigate to “SQL Server 2014


Install Content From Online – “Update Pending”

Chose all entries under “SQL Server 2014


Install Content From Online – “Updating Local Library”

Updating Local Library…


Install Content From Online – “Updating Local Library – Finished updating”

Completed Local Library update.


Things should now work

Other Errors

Error #1 – “Can’t find the help viewer 2.0 executable”

Error Message



Title :- can’t find the help viewer 2.0 executable
Message :- There was a problem sending the command to the program.




  1. Access “Control Panel” \ “Programs and Features”
  2. Select “Microsoft Help Viewer 1.1
    • Right click on your selection
    • And, from the drop-down menu choose the Repair option

Programs and Features

Maintenance Mode




Erland Sommarskog, SQL Server MVP

SQL Server > Transact SQL > Finally! T-SQL Reference for SQL 2014 available for download!


  1. msdn
    • Finally! T-SQL Reference for SQL 2014 available for download!