Skip to main content

Falha ao Converter VMDK para VHD

Ao utilizar o Microsoft Virtual Machine Converter para converter VMDK para VHD, a seguinte mensagem de erro aparece.

ConvertTo-MvmcVirtualHardDisk : The entry 2 is not a supported disk database entry for the descriptor.
At C:\SCRIPTS\ConverterVMDKtoVHDX.ps1:3 char:1
+ ConvertTo-MvmcVirtualHardDisk -SourceLiteralPath D:\MGLREDMINE01\MGLR ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : WriteError: (Microsoft.Accel...nversionService:DriveConversionService) [ConvertTo-MvmcVirtualHardDisk], VmdkDescriptorParseException
    + FullyQualifiedErrorId : DiskConversion,Microsoft.Accelerators.Mvmc.Cmdlet.Commands.ConvertToMvmcVirtualHardDiskCommand
 
ConvertTo-MvmcVirtualHardDisk : One or more errors occurred.
At C:\SCRIPTS\ConverterVMDKtoVHDX.ps1:3 char:1
+ ConvertTo-MvmcVirtualHardDisk -SourceLiteralPath D:\MGLREDMINE01\MGLR ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : WriteError: (Microsoft.Accel...nversionService:DriveConversionService) [ConvertTo-MvmcVirtualHardDisk], AggregateException
    + FullyQualifiedErrorId : DiskConversion,Microsoft.Accelerators.Mvmc.Cmdlet.Commands.ConvertToMvmcVirtualHardDiskCommand

Para corrigir esse problema, siga os passos abaixo.

Caso existam os arquivos NOMEDAVM-flat.vmdk, edite o arquivo NOMEDAVM.vmdk em um editor de textos (Notepad ou o Notepad++).

Comente a linha ddb.toolsInstallType = “2”, como mostra a imagem abaixo.

Após comentar a linha acima, salve o arquivo e tente efetuar a conversão do VMDK novamente.

PowerShell – Como importar um módulo

Antes de importar: instale o módulo

Se você receber um módulo como uma pasta com arquivos, precisará instalá-lo em seu computador antes de importá-lo para o Windows PowerShell. Normalmente, para instalar basta apenas copiar o módulo para um local específico em uma unidade que seu computador possa acessar.

A maioria dos módulos é instalada para você. O Windows PowerShell é fornecido com vários módulos pré-instalados. No Windows Server 2008 R2, o Add Features Wizard no Server Manager instala automaticamente os módulos de recurso selecionados por você. Muitos outros módulos são fornecidos com um instalador ou programa de instalação que instala o módulo.

Como importar um módulo

Para usar os comandos em um módulo, importe o módulo para uma sessão do Windows PowerShell. Para importar módulos de um local de módulo padrão para a sessão atual, use o formato de comando a seguir.

import-module <module-name>

Por exemplo, o comando a seguir importa o módulo BitsTransfer para a sessão atual.

import-module BitsTransfer

Para importar um módulo que não está em um local de módulo padrão, use o caminho totalmente qualificado para a pasta do módulo no comando. Por exemplo, para adicionar o módulo TestCmdlets no diretório C:\ps-test a sua sessão, digite:

import-module c:\ps-test\TestCmdlets

SQL Server – Backup de Todas as Bases de Dados

Para executar backup de todas as bases do SQL Server, crie um arquivo com o código abaixo.

DECLARE @BackupFile varchar (255), @DB varchar( 30), @Description varchar(255 ), @LogFile varchar(50 )

DECLARE @Name varchar (30), @MediaName varchar( 30), @BackupDirectory nvarchar(200 )
SET @BackupDirectory = 'F:\SQL Server\Backup\'

DECLARE Database_CURSOR CURSOR FOR SELECT name FROM sysdatabases WHERE name <> 'tempdb' AND name <> 'model' AND name <> 'Northwind'

OPEN Database_Cursor
FETCH next FROM Database_CURSOR INTO @DB
WHILE @@fetch_status = 0

BEGIN
SET @Name = @DB + '( Daily BACKUP )'
SET @MediaName = @DB + '_Dump' + CONVERT( varchar, CURRENT_TIMESTAMP , 112)

SET @BackupFile = @BackupDirectory + + @DB + '_' + 'Full' + '_' +
CONVERT(varchar , CURRENT_TIMESTAMP , 112 ) + '.bak'
SET @Description = 'Normal' + ' BACKUP at ' + CONVERT(varchar , CURRENT_TIMESTAMP ) + '.'

IF (SELECT COUNT(*) FROM msdb .dbo. backupset WHERE database_name = @DB) > 0 OR @DB = 'master'
BEGIN
SET @BackupFile = @BackupDirectory + @DB + '_' + 'Full' + '_' +

CONVERT(varchar , CURRENT_TIMESTAMP , 112 ) + '.bak'
--SET some more pretty stuff for sql server.
SET @Description = 'Full' + ' BACKUP at ' + CONVERT(varchar , CURRENT_TIMESTAMP ) + '.'

END
ELSE
BEGIN
SET @BackupFile = @BackupDirectory + @DB + '_' + 'Full' + '_' +
CONVERT(varchar , CURRENT_TIMESTAMP , 112 ) + '.bak'
--SET some more pretty stuff for sql server.

SET @Description = 'Full' + ' BACKUP at ' + CONVERT(varchar , CURRENT_TIMESTAMP ) + '.'
END
BACKUP DATABASE @DB TO DISK = @BackupFile
WITH NAME = @Name, DESCRIPTION = @Description ,

MEDIANAME = @MediaName, MEDIADESCRIPTION = @Description ,
STATS = 10
FETCH next FROM Database_CURSOR INTO @DB
END
CLOSE Database_Cursor
DEALLOCATE Database_Cursor

Para executar, utilize o comando abaixo.

sqlcmd -S . -i "C:\Scripts\Nome_do_Arquivo.sql"

Pode ser executado quando necessário, ou como uma tarefa.

PowerShell – Habilitando a Execução de Scripts

Por padrão, até mesmo devido a uma questão de segurança, a possibilidade de execução de scripts Power Shell vem desabilitada no sistema. Para habilitar essa característica precisamos mudar a política de execução da seguinte forma.

Execute o Power Shell e digite no terminal o seguinte comando:

Get-ExecutionPolicy

O retorno deverá ser Restricted

 

 

Para permitir a execução de scripts sem qualquer restrição, vamos utilizar a regra Unrestricted, que permite executar todo e qualquer script PowerShell para isso, digite o comando abaixo:

Set-ExecutionPolicy Unrestricted

Será exibida uma mensagem informando sobre a proteção quanto à execução de Scripts. Digite “S” e pressione Enter. Conforme a imagem abaixo.

 

 

Agora digite novamente 

Get-ExecutionPolicy

e o retorno será Unrestricted, ou seja, scripts PowerShell já podem ser executados de forma irrestrita nesta máquina.

 

Existem outras regras além da Unrestricted e da Restricted que não permite a execução de nenhum script, a serem definidas quanto a execução de scripts baseados em PowerShell:
AllSigned – Todos os scripts devem ser assinados por alguém confiável.
Remote Signed – Todos os scripts que forem baixados da Internet devem ser assinados por alguém confiável.

PowerShell – Envio de E-mail (SMTP)

Segue abaixo, um simples exemplo de como enviar e-mail com PowerShell através de SMTP.

$smtpServer = "smtp.dominio.com.br"
 $msg = new-object Net.Mail.MailMessage
 $smtp = new-object Net.Mail.SmtpClient($smtpServer)
 $msg.From = "email@dominio.com.br"
 $msg.To.Add("email@dominio.com.br")
 $msg.Subject = "Envio de E-mail"
 $msg.Body = "Envio de E-mail"
 $smtp.Send($msg)

Warning: Use of undefined constant XML - assumed 'XML' (this will throw an Error in a future version of PHP) in /home/mmva7lky/public_html/wp-content/plugins/wp-syntaxhighlighter/wp-syntaxhighlighter.php on line 1048