# PS Commands Note: unless otherwise stated, replace any variable such as `$ComputerName` with the appropriate data.
## Computers
### Remotely Fetch a (Partial) Installed Program List for $ComputerName ```powershell Get-WmiObject win32_product -ComputerName $ComputerName | Sort-Object | select Vendor, Name, version ```
### Remotely Fetch Installed Programs from $ComputerName by searching $Column (Vendor, Name, or version) for $SearchTerm ```powershell Get-WmiObject win32_product -ComputerName $ComputerName | Where-Object {$_.$Column -like “*$SearchTerm*”} | Sort-Object | select Vendor, Name, version ```
### Remotely Fetch $ComputerName's Boot Time ```powershell Get-CimInstance -ClassName Win32_OperatingSystem -ComputerName $ComputerName | slect csname, lastbootuptime ```
### Fetch $ComputerName's Group Membership ```powershell Get-ADPrincipalGroupMembership (Get-ADComputer $ComputerName) | select-object name ```
### Remotely Fetch $ComputerName's Make & Model ```powershell Get-CimInstance -ComputerName $ComputerName -ClassName Win32_ComputerSystem | Select-Object -Property Manufacturer, Model ```
### Remotely Fetch $ComputerName's Serial Number ```powershell Get-CimInstance -ComputerName $ComputerName -ClassName Win32_bios | Select-Object -Property SerialNumber ```
### Remotely Fetch $ComputerName's Total/Free Storage ```powershell Get-WmiObject Win32_LogicalDisk -ComputerName $ComputerName -Filter DriveType=3 | Select-Object DeviceID, @{'Name'='Size (GB)'; 'Expression'={[math]::truncate($_.size / 1GB)}}, @{'Name'='Freespace (GB)'; 'Expression'={[math]::truncate($_.freespace / 1GB)}} ```
### Remotely Fetch $ComputerName's BIOS Version ```powershell Get-WmiObject -Class Win32_BIOS -ComputerName $ComputerName ``` ## Users
### Fetch $Username's Group Membership ```powershell Get-ADPrincipalGroupMembership (Get-ADUser $Username) | select-object name ```
## Groups
### Fetch AD Groups with $SearchTerm in them ```powershell Get-ADGroup -Filter 'name -like "*$SearchTerm*"' | Sort-Object | select Name ```