WINDOWS POWER SHELL

advertisement
MS WINDOWS
POWER SHELL
CSE 535 Operating Systems
What is Power Shell

PowerShell is Microsoft Windows’
object-oriented programming language
 interactive command line shell


PowerShell designed to
◦
automate system tasks:

◦
such as batch processing
create systems management tools
◦
for commonly implemented processes
What is it for?
The PowerShell language is similar to Perl.
 PowerShell includes

◦
more than 130 standard command line tools
◦ for functions that formerly required users

to create scripts in VB, VBScript or C#.
Where to Download?

http://www.microsoft.com/downloads/detail
s.aspx?FamilyID=50633a1f-a665-425d923c-1a269f8ac084&displayLang=en
Windows PowerShell Cmdlet

Cmdlet (or Command-let)
◦
which .NET objects can be accessed

◦
A Cmdlet name consists of two elements:


from the command line.
a verb and a noun
Example:
◦
one of the most useful Cmdlets:

Get-help
Automating Tasks

PowerShell offers ways
◦

Cmdlets:
◦
◦

combinations of cmdlets and associated logic.
Executables:
◦

very small .NET classes
appear as system commands
Scripts:
◦

to automate tasks:
standalone tools
Instantiation of standard .NET classes.
Integrating with .NET

PowerShell
integrates with the .NET environment
 Can be embedded within other applications.


Over a hundred cmdlets are included
to be used separately
 or combined with others

to automate more complex tasks
 Users can


also create and share cmdlets.
Abbreviations for Cmdlets

there are abbreviations
◦
for some of the Cmdlets, for example:
Get-Process

Can also be typed as:
ps
Linux-similar Cmdlets

“ps”
◦
◦
is command familiar to Linux users
as the command


there are a number of
◦



to view details about currently running processes.
other Linux-PowerShell parallels:
“man” is the same as “Get-Help –detailed”
“ls” is the same as “Get-ChildItem”
“pwd” is the same as “Get-Location”
Understanding Aliases

PowerShell commands are usually long.
◦

example: Get-ChildItem.
However, PowerShell has aliases.
◦
◦
Example:
“dir” is the same as “Get-ChildItem”
get-alias
get-alias dir
Obtaining PowerShell

PowerShell is installed
in Windows Server 2008
 is also part of Windows 7,


it does not come ready loaded with XP or
Vista!
Running PowerShell

Once PowerShell has been installed
◦

Click on “Start”, “Run”
◦

and then type in “powershell”
Start a new command prompt
◦

then it can be run in two ways:
and then type in “powershell”
the user can start using
◦
the PowerShell commands.
Cmdl: ps

One very useful Cmdlet is ps
◦

or get-process
lists the currently running processes
◦
◦
the number of memory page (frame)s
the percentage of processor usage
Pipe and Sort

The list is sorted alphabetically
◦

You can sort WS field
◦

according to the process name.
According to the memory usage
To do this the user
“pipes” the output of ps
◦ to a second Cmdlet “sort-object”
◦
ps | sort-object WS –descending
Sorting wrt Memory Usage
Filtering & Splitting the Commands

User can filter that
◦
the “powershell” not to be seen in output
 Add
a filter
 piped Cmdlets can be
◦
split over multiple lines:
ps | where-object –FilterScript
{$_.processname -ne "powershell"}
| sort-object WS –descending
Filtered
To concatenation symbol

The concatenation symbol (>)
◦
◦
◦
will send the result output file
after the information has been converted to HTML
so that it can then be viewed in a web browser:
ps |
where-object -FilterScript
{$_.processname -ne "powershell"} |
sort-object WS –descending |
convertto-html -property Name,
WS > ps.html
Displaying in Browser
Find all the processes on a computer
that started today
Get-Process | Where {$_.starttime -ge
[datetime]::today}
Find the processes that use more
than 1000 MB of memory and kill
them
get-process | where-object { $_.WS -gt
1000MB } | stop-process -whatif
Calculate the number of bytes in the
files in a directory
get-childitem | measure-object -property
length -sum
Defining Variables
PS C:\> $a = 5
PS C:\> $a
5
PS C:\>
Determine Variable
PS C:\> $a.GetType()
Piped Commands
dir | sort LastWriteTime | more
PS C:\WINDOWS> $a = dir | sort
LastWriteTime
PS C:\WINDOWS> $a[0]
PS C:\WINDOWS> $a[1]
Download