All posts by npulis

How To: Create local users or admins remotely

You might encounter the need to create a local user, add it to the local admins remotely. Being if the user cannot log in or the local admin is lost.

For the purpose you need to use PSTools which can be downloaded from here.

Once downloaded open a command prompt as Administrator from the server or a machine logged in with a domain administrator and type

PSEXEC \\computername NET USER localadmin <pass> /add

PSEXEC \\computername NET LOCALGROUP Administrators localadmin /ADD

localadmin being the username you wish to use and the <pass> is the user’s password.

(5476)

Fix: Cannot find server certificate with thumbprint while restoring SQL database

When restoring a database you might get the below error.

System.Data.SqlClient.SQLError: Cannot find server certificate with thumbprint

This is because the database was encrypted with Transparent Data Encryption (TDE) and you will not be able to restore it until you get the Certificate, the Private key and the password from the supplier of the database.

After you collect the required items above, open a new SQL query as the server admin on the database master.

First we need to create the master cerificate on the server by using

USE master
GO
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<MyComplexPassword>'
GO

Now that the master certificate has been installed you will need to install the certificate provided by the owner of the database

CREATE CERTIFICATE MyServerCert
FROM FILE = 'C:\TDECert\Cert.cer'
WITH PRIVATE KEY (FILE = 'C:\TDECert\key.pvk',
DECRYPTION BY PASSWORD = '<PasswordProvidedByTheSupplier>');

Once this is done and executed you will be allowed to restore the database.

(19501)

Fix: The term ‘Get-MsolUser’ is not recognized as the name of a cmdlet

When connecting to your Office 365 services, you might get the below error saying for any Msol cmdlet like new-msoluser, connect-msolservices and other.

The term 'Get-MsolUser' is not recognized as the name of a cmdlet

To fix this, download and install the Microsoft Online Services Sign-In Assistant for IT Professionals RTW which can be downloaded from this link.

After the installation you can check the installation of the assistant from your control panel. After that open a PowerShell window As Administrator and type.

Install-Module MSOnline -Force

Once done, enter the below

Connect-MsolService

Sign in with your global admin account and presto!

(6843)

FIX: WINDOWS 10 HOME TO PRO UPGRADE ERROR 0X803FA067

I came across an upgrade issue when I was upgrading Windows 10 Home to Windows 10 Pro using the Change Product Key feature. I first entered the default Windows 10 key from Microsoft VK7JG-NPHTM-C97JM-9MPGT-3V66T to convert the Windows 10 Home to Windows 10 Pro and when I clicked the start button to start the upgrade, I get the error saying that the the installation does not have a valid digital license with the error code Unable to upgrade your edition (0x803fa067).

The solution is very simple

– Boot the computer
– Open the activation screen
– Change the Product Key to VK7JG-NPHTM-C97JM-9MPGT-3V66T
– Disable internet connectivity by disabling network card
– Click start for the upgrade

(1576)

FIX: RDP ERROR THE FUNCTION REQUESTED IS NOT SUPPORTED

When trying to connect to a server or machine via Remote Desktop Connection you will get the below error which is strange as one would normally connect without any issues.

“Remote Desktop Connection
An authentication error has occurred.
The function requested is not supported
Remote computer: XXX.XXX.XXX.XXX”

After some research I found that this is due to a Windows Update patch which was released recently that is CVE-2018-0886 for RDP. So if the workstation was updated and the server was not yet.

There are two options for this.

Patch the server with the CVE-2018-0886 (Recommended)

Update the policy on the local computer (Not recommended but in case of emergency)

On the computer open Group Policy
Go to Computer Configuration > Administrative Templates > System > Credentials Delegation
Change Encryption Oracle to Remedition to Enabled
Change Protection Level to Vulnerable

Open MSTSC and you will be able to connect to the server.

(2708)

Review: Kernel for OST to PST

Today I am reviewing Kernel for OST to PST application which in my Opinion, it should be renamed to OST to anything as apart from recovering from corrupted OST files and converting them to PST, you can export to practically anything including Office 365, Google Apps/Gmail, Live/Outlook/Hotmail, Lotus Domino and others. Bearing in mind the fact that there is a good number of businesses going to cloud, it’s a must to have such feature.

Conversion is pretty straight forward, all you need is to select either an OST file with the option to bulk input the file selection. The rest is done with the application. The first pass will just open the file and the other passes on the file will try to recover deleted or corrupted messages, which if you have a healthy file can skip easily. The conversion is pretty fast and reliable keeping in mind it can run on any platform being Windows 7/ 8/ 10 to server editions as well.

You can export to either PST, DBX or MBOX apart from saving to MSG, EML, PDF and other common extensions. The best part of the application was the ability to save directly to email servers such as Office 365, Lotus Domino, various Exchange server versions, Yahoo, Gmail and other. All in one console and with a user friendly interface. This really saves a lot of time as using the conventional way, you would need to use Outlook, export using Outlook to PST. This of course does not recover from corrupted OST so it’s a show stopper. Adding to this then if you want to import to Exchange, you would need to transfer all the exported PSTs to a central location and use the NewMailboxImportRequest keeping in mind that you have Exchange 2010 upwards and this must be done one by one. As stated above with Kernel for OST to PST you will can easily do this with a bulk job and you can also directly import to Exchange of any version or any cloud service of your choice. Adding to this, the application also scans the OST file for deleted and recoverable items from corruption.

From my experience I have gone through a number of problem-solving with regards to Exchange, but one time I was called in to assist with a corrupted EDB file and broken down Exchange server. Rebuilding the Exchange server was an easy task but re-importing the data was going to be an issue. With Kernel for OST to PST, I was able to copy all OST files from the computers to a central location and I was able to convert the OST files and import them directly to Exchange using Kernel for OST to PST. This incident had 20 mailboxes, but the software has saved me a lot of time and costs which would ended up in more downtime and recovery time for the client.

The software is easy to use and the export features are straight forward with minimal administration effort. It saved me a lot of time and stress and it is recommended for such operations. Pricing varies depending on what features you would need. The Personal license costs $99 with the option to go for Home license which give you the ability to install on various computers respectively costing $199. These two version will give you the ability to convert OST files to PST. If you want to upload OST files directly to Exchange and cloud, you would need to purchase the Corporate license for $299 and if you want all features including conversion of multiple OST files in bulk you need to purchase the Technician version which costs $399. More information on the website of Kernel For OST to PST.

(779)

Fix: BEGIN TRY does not work with BULK INSERT on SQL

I have created a stored procedure that does a BULK IMPORT. I wanted to add a bit of fault checking and added a BEGIN TRY and a BEGIN CATCH so that it sends an email with the error message if the T-SQL fails. The problem is that the BEGIN CATCH was being skipped and the procedure stops processing with the below error message.

Msg 4860, Level 16, State 1, Line 2
Cannot bulk load. The file "C:\temp\fileimport.txt" does not exist.

To fix the issue what I did is to add the BULK INSERT command in a variable and execute it. This way, the BEGIN CATCH is not ignored or skipped.

Fix below

BEGIN TRY
DECLARE @bulkimport varchar(1000)
SET @bulkimport = 'BULK INSERT mytable FROM ''C:\temp\fileimport.txt''
WITH (FIELDTERMINATOR = ''*'', ROWTERMINATOR = ''\n'')'
EXECUTE (@bulkimport)
END TRY

BEGIN CATCH
SELECT error_message()
END CATCH

(707)

Fix: Windows 10 Home to Pro upgrade error 0x803fa067

I came across an upgrade issue when I was upgrading Windows 10 Home to Windows 10 Pro using the Change Product Key feature. I first entered the default Windows 10 key from Microsoft VK7JG-NPHTM-C97JM-9MPGT-3V66T to convert the Windows 10 Home to Windows 10 Pro and when I clicked the start button to start the upgrade, I get the error saying that the the installation does not have a valid digital license with the error code Unable to upgrade your edition (0x803fa067).

The solution is very simple

– Boot the computer
– Open the activation screen
– Change the Product Key to VK7JG-NPHTM-C97JM-9MPGT-3V66T
– Disable internet connectivity by disabling network card
– Click start for the upgrage

(27813)

How to: Execute DOS commands from T-SQL

Sometimes you might have the need to execute a copy, delete or run a batch file from a stored procedure. This can be done by using the xp_cmdshell and execute your command line.

This can be done as below

EXECUTE master..xp_cmdshell 'copy c:\test.txt c:\test1.txt'

You can run it using parameters as below

DECLARE @sql VARCHAR(200)
SET @sql = 'copy c:\test.txt c:\test1.txt'
EXECUTE master..xp_cmdshell @sql

If you are running the xp_cmdshell and get the error "SQL Server blocked access to procedure 'sys.xp_cmdshell' of component 'xp_cmdshell' because this component is turned off as part of the security configuration for this server." Follow the code below to enable the feature.

EXEC sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
EXEC sp_configure 'xp_cmdshell', 1;
GO
RECONFIGURE;
GO

(3697)