public/Expand-Partition.ps1
function Expand-Partition { [CmdletBinding()] Param ( [string[]] $ComputerName, $DriveLetter, [System.Management.Automation.PSCredential] $Credential ) $scriptblock = { $driveletter = $using:driveletter if ($DriveLetter){ foreach ($drive in $driveletter){ try { $maxsize = (Get-PartitionSupportedSize -DriveLetter $drive).sizemax Write-Host "[ $env:COMPUTERNAME ] - Expanding $drive to $maxsize" Resize-Partition -DriveLetter $drive -Size $maxsize } catch{ Write-Error "Error with Drive Letter $drive" } } } else{ #Expand them ALL! (if they have a drive letter) $driveletter = (Get-Partition | Where-Object {$_.driveletter}).driveletter foreach ($drive in $driveletter) { $maxsize = (Get-PartitionSupportedSize -DriveLetter $drive).sizemax Write-Host "[ $env:COMPUTERNAME ] - Expanding $drive to $maxsize" Resize-Partition -DriveLetter $drive -Size $maxsize } } }# end script block #Execute Scriptblock on Computername(s) with set parameters. $params = @{ ScriptBlock = $scriptblock } if ($ComputerName){ $params['ComputerName'] = $ComputerName } if ($Credential){ $params['Credential'] = $Credential } Invoke-Command @params } |