Если в ситуации, когда у вас есть виртуальные машины, которые находятся в сетевом сегменте, где у вас нет доступов, а безопасники могут, или в изолированной сети, но при этом вы сами имеете доступ к vCenter, а подключиться к пачке ВМ очень-очень надо, тогда можно использовать командлет Invoke-VMScript из powershell модуля VMware PowerCLI.
Можете сами проверить на любой виртуалке. Удалите сетевой адаптер, подключитесь через пош к vCenter: Connect-VIServer vcenter-server, если у вас самоподписной сертификат Set-PowerCLIConfiguration -InvalidCertificateAction Ignore и вызовите Invoke-VMScript -VM vm_name -ScriptText {Get-Process} -GuestCredential (Get-Credential)
По умолчанию для виндовых виртуалок параметр -ScriptType - powershell, для Linux - bash и ещё один тип bat.
Если хотите выполнить ваш локальный пош-скрипт, то один из вариантов $script = [IO.File]::ReadAllText("/ps/vmware.ps1") и уже затем Invoke-VMScript -VM vm_name -ScriptText $script -GuestCredential (Get-Credential) или для bat
$script $script = @'
set foo=bar
echo %foo%
'@
Invoke-VMScript -VM vm_name -ScriptType bat -ScriptText $script -GuestCredential (Get-Credential)
Но больше всего я оргазмирую знаете от чего? От того, что этот модуль от VMware работает и под PowerShell Core, а такого счастья для красноглазиков и маководов пока не очень много. ж)