VG
Size: a a a
VG
VG
RH
RH
RH
RH
RH
RH
RH
RH
M
$vms = Get-VM | foreach {$_.name}Программа которая его вызывает может взаимодействовать только через CMD. Чтобы это было возможно, я пытаюсь сделать что-то подобное:
$vm_name = $vms -join ","
$vm_name = """$vm_name"""
$backup_target="C:\"
$App = "C:\windows\System32\wbadmin.exe"
$Arg1 = "start"
$Arg2 = "backup"
$Arg3 = "-backuptarget:$backup_target"
$Arg4 = "-hyperv:$vm_name"
$Arg5 = "-vssFull"
$Arg8 = "-quiet"
$command = "$App $Arg1 $Arg2 $Arg3 $Arg4 $Arg5 $Arg8"
write-host $command
Invoke-Expression $command
Exit 0
powershell -Command "$vms = Get-VM | foreach {$_.name};$vm_name = $vms -join ","$vm_name = """$vm_name""";$backup_target="D:\";$App = "C:\windows\System32\wbadmin.exe";$Arg1 = "start";$Arg2 = "backup";$Arg3 = "-backuptarget:$backup_target";$Arg4 = "-hyperv:$vm_name";$Arg5 = "-vssFull";$Arg8 = "-quiet";$command = "$App $Arg1 $Arg2 $Arg3 $Arg4 $Arg5 $Arg8";write-host $command;Invoke-Expression $command;Exit 0"Но получаю ошибку:
В строке отсутствует завершающий символ: ".Возможно из-за отсутсвия экранирования? Экранируем...
powershell -Command \"$vms = Get-VM | foreach {$_.name};$vm_name = $vms -join \",\"$vm_name = \"\"\"$vm_name\"\"\";$backup_target=\"D:\\\";$App = \"C:\\windows\\System32\\wbadmin.exe\";$Arg1 = \"start\";$Arg2 = \"backup\";$Arg3 = \"-backuptarget:$backup_target\";$Arg4 = \"-hyperv:$vm_name\";$Arg5 = \"-vssFull\";$Arg8 = \"-quiet\";$command = \"$App $Arg1 $Arg2 $Arg3 $Arg4 $Arg5 $Arg8\";write-host $command;Invoke-Expression $command;Exit 0\"получаем:
строка:1 знак:75...
+ "$vms = Get-VM | foreach {$_.name};$vm_name = $vms -join
M
AF
AF
M
AF
M
PG
AF
RH