PowerShell Tools for Linux
A comprehensive collection of PowerShell cmdlets designed to make Linux system administration easier and more PowerShell-like. Just because I could, not that I should.
This module is currently focused on Debian/Ubuntu/LinuxMint with some KDE-compatible features. If there's more you want/need or anything you find lacking, annoying, aggravating, infuriating, discombobulating, or outright unsatisfying, drop a new Issue here. Thank you!
- π System Information - Get detailed information about your Linux system, hardware, and configuration
- π¦ Package Management - Manage APT, DNF, Flatpak, and Snap packages with PowerShell cmdlets
- π₯ User & Group Management - Create, update, and manage local users and groups
- π Security & Certificates - View certificates, firewall status, and authentication logs
- π Network Tools - Query network configuration, IP settings, and connectivity
- π₯οΈ Desktop Environment - Manage Cinnamon applets, extensions, themes, and more
- π System Monitoring - Check memory, CPU, disk usage, and system health
- π§ Process & Service Management - Monitor processes, services, and system locks
- π Log Analysis - Query and analyze system logs and journals
- π¨ Firefox Management - Manage Firefox profiles and launch specific configurations
- PowerShell 7.0 or higher
- Linux operating system (Debian/Ubuntu/LinuxMint preferred)
- Appropriate system permissions for certain operations
Install-Module -Name LinuxTools -Scope CurrentUser-
Clone the repository
git clone https://github.com/Skatterbrainz/LinuxTools.git cd LinuxTools -
Import the module
Import-Module ./linuxtools.psd1
Import the module and explore available cmdlets:
# Import the module
Import-Module LinuxTools
# Get all available cmdlets
Get-Command -Module LinuxTools
# Get help for a specific cmdlet
Get-Help Get-SystemInfo -Full
# Example: Get system information
Get-SystemInfo
# Example: Update all packages
Update-LinuxPackages
# Example: Get local users
Get-LocalUserFull documentation for each cmdlet is available in the docs directory:
- Get-SystemInfo - Get comprehensive system information
- Get-LinuxPackages - List installed packages
- Get-LocalUser - Get local user accounts
- Get-ProcessList - Get running processes
- And many more...
Contributions are welcome! Feel free to:
- Report bugs
- Suggest new features or cmdlets
- Add support for more Linux distributions
- Improve documentation
- Submit pull requests
Please open an issue or submit a pull request.
This project is licensed under the MIT License - see the LICENSE file for details.
Skatterbrainz
- GitHub: @Skatterbrainz
- Built for PowerShell 7+ on Linux
- Inspired by the need to bring PowerShell-style management to Linux systems
- Thanks to all contributors and users who have provided feedback and suggestions
- Added: Get-LinuxInventory
- Fixed: Get-Certificates added missing properties and added verbose output
- Updated: Get-AutoStartApps to add missing comments and parameters
- Updated: Get-AptPackages merged -Upgradeable and removed separate function
- Updated: Get-SystemLocks to add -Name and correct the filtering, add comments
- Updated: Get-MemoryInfo to correct output type
- Updated: Get-USBDevices / complete rewrite to capture interfaces and endpoints data
- Updated: support.ps1 to add Get-NullString function
- Added: ConvertTo-Flac
- Updated: Get-FirewallStatus
- Added: Start-FlatpakApplication
- Added: Get-RootCertificates
- Added: Get-Certificates
- Added: Start-FileSync
- Fixed: PSD1 didn't load Out-GridForm (not enough coffee that day)
- Updated: Get-ProcessList
- Added: Get-TimeZone.md
- Added: Get-AuthLog
- Added: Out-GridForm
- Updated: New-LocalGroup
- Updated: New-LocalUser
- Updated: Remove-LocalGroup
- Updated: Remove-LocalGroupmember
- Updated: Remove-LocalUser
- Updated: Update-DnfPackage
- Updated: Invoke-LogAssessment
- Added: Get-IPC
- Added: Get-IPConfig
- Added: Get-IRQ
- Added: Get-DnfPackages
- Added: Get-SystemLocks
- Added: Get-SerialNumber
- Added: Update-DnfPackages
- Updated: Update-AptPackages to support nala
- Updated: Get-DeviceHardware
- Updated: Get-LinuxPackages
- Renamed: Get-AptPackageInventory to Get-AptPackages
- Renamed: Get-AptPkgUpgradeable to Get-AptPackageUpgradeable
- OmG! Are you NOT entertained? Why am I doing this? I keep asking myself that too.
- Added: Get-AutoStartApps
- Fixed: bug in Get-CinnamonVersion
- Fixed: bug in Get-Environment
- Fixed: Get-AptPkgUpgradeable
- Moved: Apt, Flatpak and Snap functions to public files
- Added Get-OpenFiles
- Added Update-AllModules
- Fixed: missing LINK properties on multiple function comments
- Updated New-LocalUser with steroids and a testosterone vape. Also -Password requires a SecureString
- Updated Update-LocalUser with even more steroids, caffeine and some sort of white powder substance. -NewPassword requires a SecureString.
- Updated New-LocalGroup but only with cold coffee
- Added Update-LocalGroup
- Added Remove-LocalGroup
- Added Get-DeviceHardware
- Added Get-UsbDevices
- Added Get-XsessionErrors
- Added Invoke-LogAssessment (requires module: PSAI)
- Added Get-YouTubeAudio
- Added New-ToastNotification
- Cleaned up Repository content
- Added Get-CinnamonVersion
- Added $IsCinnamon global variable
- Added Get-UbuntuAdjustments
- Added Get-DiskInfo
- Updated Get-DesktopEnvironment
- Added Get-CinnamonApplets
- Added Get-CinnamonExtension
- Added Get-CinnamonSpices
- Added Get-DegradedSystemInfo
- Added Get-DesktopThemes
- Added Get-ShutDownTimeOut
- Added Get-SystemCtl
- Updated Get-ProcessList
- Added Get-MemoryConfiguration
- Added Get-AppLaunchers
- Added Test-ServiceRebootPending
- Added Get-FirewallStatus
- Added Get-DesktopEnvironment
- Added Get-FireFoxProfiles
- Added Start-FireFoxProfile
- Fixed missing LINK ref for Get-ComputerInventory
- Added Get-SysCtl
- Added Get-MemoryInfo
- Added Get-MemoryPressure
- Added Add-LocalGroupMember
- Added Get-LocalGroupMember
- Added New-LocalGroup
- Added Remove-LocalGroupMember
- Updated Get-LocalGroup to change -Identity to -Name for consistency
- Added Get-ComputerInventory
- Added Get-CronTabs
- Added Get-DefaultAudioPlayer
- Added Get-DefaultBrowser
- Added Get-LinuxDistro
- Added Unlock-LocalUser
- Added Update-LocalUser
- Updated Get-LocalUser
- Updated New-LocalUser
- Updated Remove-LocalUser
- Added Get-LenovoDevice
- Updated Get-ComputerInfo to include serial number
- Bug fixes in Get-AptPkgInventory, Get-ComputerInventory
- Bug fixes in Get-Environment
- Added Get-MountedItems
- I can't remember what I did, and the repo history is being mean to me
- Congratulations! It's a healthy baby, ughhhh... something.