Veeam Capacity Tier Unsupported legacy data block format

While working with Veeam version 9.5 update 4, I wanted to setup a scaling repository to Amazon AWS. The backups would be stored locally first then scale out to the cloud once they got too old. I had existing backups and wanted to test my new configuration. Following this guide from Veeam here, I initiated the transfer to AWS but got this error: Capacity Tier Unsupported legacy data block format.

I found out these backups I wanted to move to the capacity tier were created with Veeam Backup and Replication 9.5 version 9.5.0.823, note they were previous backups on an older version. The job was reverse incremental and set for optimal compression. In order to use the capacity tier with Amazon AWS you have to update to Veeam version 9.5 update 4.

After Updates

I updated to 9.5 update 4 AND changed the compression level to extreme. It was then when I followed the Veeam help center guide above that I got the error: Capacity Tier Unsupported legacy data block format. This was only when the full backup was getting moved to AWS. The incremental backups moved to AWS fine.

After a support case I created a new full backup set with extreme compression using the new Veeam 9.5 update 4 version. Then, following that guide above the full backup file moved to AWS fine. No issues.

The moral of the story is to keep your backup chain the same format as much as possible. Full backups and incremental backups with the same compression and Veeam version. If you do that you should not run into any mismatch legacy block data issues.

Thank you, you can check out my last Veeam blog post here.

How to enable copy paste in a VMware console

isolation.tools.copy.disable     false
isolation.tools.paste.disable    false

First off, this process is easy and most of the time you don’t even need to do enable this feature. However, during my day to day I have found it helpful when managing vms to enable copy / paste in the built-in console of VMware.

Second, this is not new. This functionality has been around at least since vsphere 4.x. Case and point, just check out VMware’s online publication here. So why blog about it? Syntax. I keep forgetting the exact name in the parameters to enable copy / paste. I’m writing about to help me remember and to have an easy reference for the future.

How To:

Log into VMware vCenter or ESXi directly > right click on a vm and select ‘Edit Settings’. Select ‘VM Options’

Edit VM settings > VM Options tab” class=”wp-image-445″/></figure>



<figure class=

Above, in VM Options expand ‘Advanced’ and select ‘Edit Configuration’

Below, in the Configuration Parameters click ‘Add parameter’ and enter the following for the key and value:

(Note: you will have to ‘Add parameter’ twice)

Name / KeyValue
isolation.tools.copy.disable false
isolation.tools.paste.disable false

You may have to restart your vm for the change to take effect. You should now be able to copy paste in a VMware console onto your vm.

Check out my other tech blog posts here.

Veeam Backup Service wont Start

Have you ever installed a new Veeam Backup server but then Veeam won’t start? 

I ran into this issue recently can got the error ‘The Veeam Backup Service service on Local Computer started and then stopped. Some services stop automatically if they are not in use by other services or programs.’ However, this does not make sense because the main Veeam backup service needs to run. The first thing I thought to check was the event logs.  I found this:

veeam event viewer error

Veeam wont start and it seemed to be a database issue. However this was a brand new Veeam server and was using a fresh SQL instance. I re-traced the steps I took to configure the server and the last thing I did was add the server to the domain and rebooted. 

After some web searches I found and option to check the registry. Apparently sometimes Veeam doesn’t update if you install Veeam before you add the server to the domain. 

regedit search

First go to HKEY_LOCAL_MACHINE > SOFTWARE > Veeam > Veeam Backup and Replication and verify that SqlServerName is correct and not some random windows generated name.

regedit sql server name

Second go to HKEY_LOCAL_MACHINE > SOFTWARE > Veeam > Veeam Backup Catalog and verify the CatalogSharedFolderPath is correct. 

regedit veeam catalogsharedfolderpath

After that the service should start up like normal. Now the event log about the database issue makes sense because of the registry setting for the SQL server name. I hope this saved you some trouble in case Veeam wont start. 

Check out my Veeam Engineer Study guide here.

Create Restart Program Batch Script

This week I was playing around with a new setup, multiple computers and multiple monitors. I tried to use a program called mouse ShareMouse… and it worked great. However the free version causes you to buy or restart the program every 30 min or so to use the ‘pro’ features. That’s when I thought to just create a restart program script just to see if it would work. 

I decided to use batch to script the restart for ShareMouse. I would need to use a loop, timeout, taskkill and start. First I stopped the service when the script started to ensure the loop didn’t fail if the program was already running. 

@echo off
title SharedMouse Restart Script

taskkill /F /IM ShareMouse.exe

Then you enter the loop. I start the program, wait an amount of time less than the program pro version timeout and stop ShareMouse. 

:loop
echo Starting Application
start "" "C:\Program Files (x86)\ShareMouse\ShareMouse.exe"
timeout /t 300
echo Stopping Application
taskkill /F /IM ShareMouse.exe
goto loop

I ran this script on every computer with ShareMouse and it worked fine. I went all day without hiccup. Just thought I’d share this simple restart program script. 

If you want to get ShareMouse you can find it here

Check out my last scripting post here.

gpupdate and RDP with PowerShell

How to gpudate and RDP with PowerShell

In my first PowerShell post, I described running into the issue of maintaining a network where you do not have all admin permissions. A second issue that I ran into was how to gpupdate and RDP with PowerShell.  Updates were pushed out from group policy but machines were not pulling them and staying up to date. How I forced gpupdate was a lot like how I forced remote reboots with PowerShell.

for($i=0; $i -lt $WorkstationArray.Count; $i++){
     $temp = $WorkstationArray[$i]
     Write-Output "Initiate gpupdate for: " $temp
     Invoke-GPUpdate -Computer $temp
}

Loop through an array and RDP into machines

While looping through an array of the workstations it was possible that some of them would be disconnected from the network. I added code to allow me to log any workstation that I could not RDP into. I also added code to save my username and password, but you could make that more secure and not save that in your script.

$LogFile = "C:\workstation_unreachables.txt"
$User="XXXXXXXXXXXXXXX"
$Password="XXXXXXXXXXXXXXX"

Function Logfile{
    Param ([string]$logstring)
    Add-content $LogFile -value $logstring
}

for($i=0; $i -lt $ServerArray.Count; $i++){ 
    cmdkey /generic:"$Templogin" /U:$User /pass:$Password
    $temp = $ServerArray[$i] mstsc /v:"$temp" /admin 
    $log = Read-Host -Prompt "Press y to log this computer name
                   Press any other key to continue"
    if ($log -match "y"){
        LogFile "$temp"
    }
}

Run PowerShell as admin

The last item I had to do was run the PowerShell script as an administrator.  I decided to make a batch script for that. This prompted me for admin credentials whenever it was ran.

@ECHO OFF 

PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {Start-Process PowerShell -ArgumentList '-NoProfile -ExecutionPolicy Bypass -File ""C:\gpupdate.ps1""' -Verb RunAs}"

:END
pause

I hope this helps with your admin tasks on your network. If you missed my first post you can read more here. Thank you – Powersjo