Ho scritto lo script:

codice:
# Script che converte un disco virtuale da Flat a Sparse di una macchina virtuale.

# Parametri da inserire in una riga di comando:

# $PathVMFlat                         Variabile che contiene il path di una VM di tipo Flat.
# $VMNameFlat                         Variabile che contiene il nome di una VM di tipo Flat.
# $PathVMSparse                       Variabile che contiene il path di una VM di tipo Sparse.
# $VMNameSparse                       Variabile che contiene il nome di una VM di tipo Sparse.

# param($PathVMFlat,$VMNameFlat,$PathVMSparse,$VMNameSparse)

$FlatSparseDisk = '"C:\Program Files (x86)\VMware\VMware Workstation\vmware-vdiskmanager.exe" ' +  "-r " + $PathVMFlat + '\' + $VMNameFlat + ".vmdk -t 0 " + $PathVMSparse + '\' + $VMNameSparse + ".vmdk"

invoke-expression $FlatSparseDisk
ma, quando lo eseguo, ottengo:

codice:
D:\Users\Balubeto_Balubeto>powershell -ExecutionPolicy Unrestricted -file "D:\Us
ers\Public\Documents\Flat-Sparse_disk_VM.ps1" "D:\Users\Public\Documents\Virtual
 Machines\VM_template\VM_Windows_7_template" "VM_Windows_7_template.vmdk" "D:\Us
ers\Public\Documents" "VM_Windows_7_template.vmdk"
Invoke-Expression : Specificare un'espressione di valore sul lato destro dell'o
peratore '-'.
In D:\Users\Public\Documents\Flat-Sparse_disk_VM.ps1:14 car:18
+ invoke-expression <<<<  $FlatSparseDisk
    + CategoryInfo          : ParserError: (:) [Invoke-Expression], ParseExcep
   tion
    + FullyQualifiedErrorId : ExpectedValueExpression,Microsoft.PowerShell.Com
   mands.InvokeExpressionCommand


D:\Users\Balubeto_Balubeto>
Dove sbaglio?

GRAZIE

CIAO