{"id":30296004,"url":"https://github.com/adbertram/psvmwarefusion","last_synced_at":"2025-08-17T02:39:32.511Z","repository":{"id":300612627,"uuid":"1006252587","full_name":"adbertram/PSVmwareFusion","owner":"adbertram","description":"PowerShell module for managing VMware Fusion VMs","archived":false,"fork":false,"pushed_at":"2025-07-29T17:19:05.000Z","size":54,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-08-16T20:55:32.273Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"PowerShell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/adbertram.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-21T20:47:18.000Z","updated_at":"2025-07-29T17:19:08.000Z","dependencies_parsed_at":"2025-06-22T18:40:20.749Z","dependency_job_id":null,"html_url":"https://github.com/adbertram/PSVmwareFusion","commit_stats":null,"previous_names":["adbertram/psvmwarefusion"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/adbertram/PSVmwareFusion","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adbertram%2FPSVmwareFusion","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adbertram%2FPSVmwareFusion/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adbertram%2FPSVmwareFusion/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adbertram%2FPSVmwareFusion/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/adbertram","download_url":"https://codeload.github.com/adbertram/PSVmwareFusion/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adbertram%2FPSVmwareFusion/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270799867,"owners_count":24648130,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-17T02:00:09.016Z","response_time":129,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-08-17T02:39:29.994Z","updated_at":"2025-08-17T02:39:32.497Z","avatar_url":"https://github.com/adbertram.png","language":"PowerShell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PSVmwareFusion\n\nA PowerShell module for managing VMware Fusion virtual machines on macOS.\n\n## Description\n\nPSVmwareFusion provides a comprehensive set of PowerShell functions to manage VMware Fusion VMs directly from the command line. The module wraps VMware's `vmrun` command-line utility with PowerShell-friendly functions that support pipeline operations and rich object output.\n\n## Prerequisites\n\n- macOS with VMware Fusion installed\n- PowerShell 5.1 or later\n- VMware Fusion's `vmrun` utility (included with VMware Fusion)\n\n## Installation\n\n### From Source\n```powershell\ngit clone https://github.com/adbertram/PSVmwareFusion.git\nImport-Module ./PSVmwareFusion/PSVmwareFusion.psd1\n```\n\n## Functions\n\n### VM Management\n- **Get-FusionVm** - List and filter virtual machines\n- **Start-FusionVm** - Start virtual machines \n- **Stop-FusionVm** - Stop virtual machines\n- **Wait-FusionVmReady** - Wait for VM to be fully ready with VMware Tools\n\n### Snapshot Management\n- **Get-FusionVmSnapshot** - List VM snapshots with size and file information\n- **New-FusionVmSnapshot** - Create new VM snapshots\n- **Restore-FusionVmSnapshot** - Restore VMs to specific snapshots\n- **Remove-FusionVmSnapshot** - Delete VM snapshots\n\n## Usage Examples\n\n### Basic VM Operations\n```powershell\n# List all VMs\nGet-FusionVm\n\n# Get specific VM\nGet-FusionVm -VMName \"MyVM\"\n\n# Start a VM\nGet-FusionVm -VMName \"MyVM\" | Start-FusionVm\n\n# Stop a VM  \nGet-FusionVm -VMName \"MyVM\" | Stop-FusionVm\n```\n\n### Snapshot Operations\n```powershell\n# List all snapshots for a VM\nGet-FusionVm -VMName \"MyVM\" | Get-FusionVmSnapshot\n\n# Create a snapshot\nGet-FusionVm -VMName \"MyVM\" | New-FusionVmSnapshot -Name \"BeforeUpdate\" -Description \"Pre-update state\"\n\n# Create a snapshot after stopping the VM (faster)\nGet-FusionVm -VMName \"MyVM\" | New-FusionVmSnapshot -Name \"CleanState\" -Shutdown\n\n# Restore to a snapshot\nGet-FusionVm -VMName \"MyVM\" | Get-FusionVmSnapshot -Name \"BeforeUpdate\" | Restore-FusionVmSnapshot\n\n# Remove a snapshot\nGet-FusionVm -VMName \"MyVM\" | Get-FusionVmSnapshot -Name \"OldSnapshot\" | Remove-FusionVmSnapshot\n```\n\n### Advanced Pipeline Operations\n```powershell\n# Start multiple VMs\nGet-FusionVm | Where-Object Status -eq \"Stopped\" | Start-FusionVm\n\n# Get snapshot information with sizes\nGet-FusionVm | Get-FusionVmSnapshot | Format-Table Name, VMName, Size, SizeBytes\n\n# Remove old snapshots\nGet-FusionVm | Get-FusionVmSnapshot | Where-Object Name -like \"*old*\" | Remove-FusionVmSnapshot\n```\n\n## Object Properties\n\n### VM Objects\n- **Name** - VM display name\n- **Path** - Full path to .vmx file\n- **Status** - Current VM state (Running/Stopped)\n- **CurrentSnapshot** - Name of current snapshot\n- **IPAddress** - VM's IP address (if running)\n\n### Snapshot Objects  \n- **Name** - Snapshot name\n- **VMName** - Parent VM name\n- **VMPath** - Full path to parent VM\n- **Size** - Total size in GB\n- **SizeBytes** - Total size in bytes\n- **Files** - Array of snapshot files with paths, sizes, and types\n\n## Features\n\n- **Pipeline Support** - All functions support PowerShell pipeline operations\n- **Rich Objects** - Functions return structured objects instead of plain text\n- **Error Handling** - Comprehensive error handling with meaningful messages\n- **Verbose Output** - Detailed verbose logging for troubleshooting\n- **File System Integration** - Snapshot functions include actual file sizes and paths\n- **State Management** - Automatic VM state restoration after operations\n\n## Requirements\n\nThis module requires VMware Fusion to be installed on macOS. The module automatically detects the VMware Fusion installation and uses the appropriate `vmrun` executable.\n\n## Contributing\n\nContributions are welcome! Please feel free to submit issues and pull requests.\n\n## License\n\nThis project is licensed under the MIT License - see the LICENSE file for details.\n\n## Author\n\n**Adam Bertram**\n- GitHub: [@adbertram](https://github.com/adbertram)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadbertram%2Fpsvmwarefusion","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fadbertram%2Fpsvmwarefusion","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadbertram%2Fpsvmwarefusion/lists"}