diff --git a/all b/all index 590d761..123ed84 100644 --- a/all +++ b/all @@ -5,13 +5,13 @@ ############################# # Setting path for vboxmanage -$virtualBoxPath = "c:\Program Files\Oracle\VirtualBox" +$Env:Path = "c:\Program Files\Oracle\VirtualBox\" # creating backup paths -$remoteBackupPath = "\\freenas\programas\VM_Backup\" -$backupDriveLetterMount = "L:" -$backupFilename = $backupDriveLetterMount + "\" + [string](Get-Date).Year + [string](Get-Date).Month + [string](Get-Date).Day + "_Intranet_Backup.ova" - +$remoteBackupPath = "\\freenas\programas\VM_Backup" +$backupDriveLetterMount = "L" +$backupFilename = " -o " + $backupDriveLetterMount + ":\" + [string](Get-Date).Year + [string](Get-Date).Month + [string](Get-Date).Day + "_Intranet_Backup.ova" +$vmName = "2018_intranet" # setting path var to VirtualBox folder $Reg = "Registry::HKLM\System\CurrentControlSet\Control\Session Manager\Environment" $regex = "[cC]\:\\Program Files\\Oracle\\VirtualBox" @@ -23,31 +23,52 @@ if ( -Not ($OldPath -match $regex)){ Set-ItemProperty -Path "$Reg" -Name PATH -Value $virtualBoxPath } -# mounting backup path -New-SmbMapping -LocalPath "$backupDriveLetterMount" -RemotePath "$remoteBackupPath" +# mounting backup path New-PSDrive -Name L -Root \\freenas\programas\VM_Backup\ -Persist -PSProvider FileSystem +New-PSDrive -Name $backupDriveLetterMount -Root $remoteBackupPath -Persist -PSProvider FileSystem -# backing up vm -vboxmanage controlvm poweroff -vboxmanage export -oovf10 -o "$backupFilename" +# stoping vm +$vmanagerStopVM = "VBoxManage.exe" +$vmanagerStopVM += @(" controlvm ") +$vmanagerStopVM += @(@vmName) +$vmanagerStopVM += @(" poweroff") +Write-host "$vmanagerStopVM" +Invoke-Expression "$vmanagerStopVM" + +#backing up vm +$vmanagerBackup = "VBoxManage.exe" +$vmanagerBackup += @(" export ") +$vmanagerBackup += @($vmName) +$vmanagerBackup += @(" --ovf10") +$vmanagerBackup += @([string]$backupFilename) +Write-host "$vmanagerBackup" +Invoke-Expression "$vmanagerBackup" # remove old Backups $backupFileCount = ( Get-ChildItem -Filter *.ova $remoteBackupPath | Measure-Object ).Count $limitDate = (get-date).AddDays(-12).ToString("yyyMMdd") -$backupPath = $backupDriveLetterMount + "\" +$backupPath = $backupDriveLetterMount + ":\" -if ($backupFileCount -gt 3) { - Get-ChildItem $backupPath | - ForEach-Object { - # get actual - $lasWriteTime = (Get-Content $_.LastWriteTime).ToString("yyMMdd") +# start vm +$vmanagerStart = "VBoxManage.exe" +$vmanagerStart += @(" startvm ") +$vmanagerStart += @($vmName) +$vmanagerStart += @(" -type headless") +Write-host "$vmanagerStart" +Invoke-Expression "$vmanagerStart" - # delete backup files older than 12 days - if ($lasWriteTime -lt limitDate ) { - $fileNameFull = Get-Content $_.FullName - Remove-Item –path $fileNameFull - } - } -} +#if ($backupFileCount -gt 3) { +# Get-ChildItem $backupPath | +# ForEach-Object { +# # get actual +# $lasWriteTime = (Get-Content $_.LastWriteTime).ToString("yyMMdd") +# +# # delete backup files older than 12 days +# if ($lasWriteTime -lt $limitDate ) { +# $fileNameFull = Get-Content $_.FullName +# Remove-Item –path $fileNameFull +# } +# } +# } # removing backup path -Remove-SmbMapping -RemotePath "$remoteBackupPath" -Force +Remove-PSDrive -Name $backupDriveLetterMount \ No newline at end of file