Files
ESP-Nodes/assets/powershell.md
2024-09-14 16:42:10 -04:00

3.4 KiB

Working with Files and Folders

Get-Help

Get-Children

Gets items in a specified location. To list the folders in my drive C, I will run the command below:

Get-ChildItem c:\

This will list all the top-level folders. To list all files, folders include sub-folders use the -Recurse parameter.

Copy-Item and Move-Item

You could use the Get-ChildItem Cmdlet to list items in a folder, then pipe the result to Copy-Item Cmdlet to copy the items to a new location. The command below will do the job:

Get-ChildItem C:\Dropbox | Copy-Item -Destination C:\NewFolder

The above PowerShell command will only copy the top-level folders and files - it will NOT copy sub-folders and files. To copy all files and folders including sub-folders, include the -Recurse parameter in the Get-ChildItem command as shown below:

Get-ChildItem C:\Dropbox -Recurse | Copy-Item -Destination C:\NewFolder

While the Copy-Item Cmdlet copies items from one location to another the Move-Item Cmdlet moves the item.

RemoveItem

NewItem

New-Item can be used to create files, folders and registry keys and entries. The command below creates a text file called weekly_file.txt in c:\logfiles folder:

New-Item -Path c:\logfiles -Name weekly_file.tx

RenameItem

Rename-Item Cmdlet is used to rename things in Windows. This Cmdlet can rename files, folders and registry keys. This command will rename weekly_file.txt to monthly_file.txt

Rename-Item -Path C:\logfiles\weekly_file.txt -NewName monthly_file.txt

Export-Csv

Export-Csv converts a set of string into CSV and saves in a file. This Cmdlet is very important in reporting.

Get-Command -Verb Export
Get-Command -Verb Export | Select-Object CommandType, Name, Version, Source | Export-Csv -
NoTypeInformation -Path C:\NewFolder\ExportCommands.CSV

Managing Processes

Get-Process

This PowerShell Cmdlet lists all the processes running on a local computer. If you use the ComputerName parameter, you can display the processes on a remote computer.

Start-Process and Stop-Process

The Start-Process Cmdlet can start a stopped process while the Stop-Process Cmdlet can stop a running process. To start a process, pipe the output of Get-Process command to the Start-Process command. As an example, to stop a process with ID 10500, use the command below.

Get-Process -Id 10500 | Stop-Process

Getting Computer Information

Get-WmiObject

Get-WmiObject has a parameter called -Class this allows you to specify the WMI object you wish to access. The command below will get a list of WMI classes, Get-WmiObject -List -Class Win32*

Once you know the name of the WMI class, you can execute Get-WmiObject to return useful information from a local or remote computer. Below is a list of the most important WMI classes you may need:

  • Win32_PhysicalMemory - information about available memory
  • Win32_Processor - Processor information
  • Win32_LogicalDisk - Logical disk drive information
  • Win32_DiskDrive - Physical disk information
  • Win32_OperatingSystem - Information about the operating system

To get information about the operating system, run the command below:

Get-WmiObject -Class Win32_OperatingSystem

SYSTEMINFO

SYSTEMINFO displays operating system configuration information for a local or remote computer.

SYSTEMINFO /FO LIST