Um método que tende a ser mais uma prática recomendada, na minha opinião, que também oferece maneiras mais fáceis de solucionar problemas, é construir a string em uma variável e, em seguida, passar essa variável para o comando final. Dessa maneira, você pode verificar se a string está sendo construída corretamente antes de transmiti-la ao comando. Tentar obter o PowerShell para criar um caminho ou cadeia dinâmica dentro do parâmetro de um cmdlet nem sempre funciona como você acha que acontecerá sempre.
Então, eu faria algo assim:
$argList = "C: \Computer1\ServerBackups$\$ComputerName\$JobTitle.vhd /accepteula"
Start-Process -filepath "C:\Powershell-Backup\disk2vhd.exe" -argumentlist $argList
Uma coisa a salientar é que o PowerShell trata as cadeias com variáveis incluídas de forma diferente com base no facto de estarem entre aspas simples ou aspas duplas. Se você colocar uma variável em uma cadeia de caracteres com aspas simples, o PowerShell a tratará como está, não resolverá essa variável para o que foi designado antes de criar a cadeia. Considerando que, se você usar aspas duplas, o PowerShell analisará a sequência dessas variáveis e as resolverá para o que é atribuído antes de finalizar a sequência. Você pode ver um bom exemplo disso no artigo da revista WindowsITPro: Single Quotes vs. Double Citações