Vipul on PS

advertisement


It is Microsoft's new task-based commandline shell and scripting language designed
especially for system administration.
It helps Information Technology Professionals
and PowerShell users control and automate
the Administration of the Windows operating
system and applications that run on Windows.

To address recurring needs
(Viewing the logged Members )

To run script(s) as a scheduled task
(Running a command when user login or logoff)

To store and share ideas behind the scripts
(Creating and modifying files and folders)

Automate repetitive tasks
(Automate the user session time)

Presently, Microsoft Windows programmers
have several options when it comes to
scripting. They can use:
1. MS-DOS (or CMD) to create simple batch files
2. VBScript for more complex programming
3. PowerShell to make the most of the .NET framework

With one of the above or a combination of all,
a programmer gets complete control of all of
the objects on a Windows computer.


A cmdlet is a lightweight command that is
used in the Windows PowerShell environment.
Cmdlets follow a verb-noun naming pattern.
Examples of verbs: get, set, new
Examples of nouns: service, item, date

Below are sample Cmdlets following the verbnoun naming pattern:
PS C:\>get-childitem C:\
(Gets the items and child items in one or more specified locations.)
PS C:\>get-service
(Retrieve information about the services installed on your computer.)
PS C:\>set-location D:\
(It enables you to specify a new working location.)
PS C:\> set-location “c:\my documents”

Get-Help(get-help set-* gives all cmdlets that start with
Set-.)

Get-Command
(you’ll get back a list of all the Windows
PowerShell cmdlets)

Get-Member(will enumerate the properties and methods
of that object.)

Get-Psdrive
(Gets the Windows PowerShell drives in the
current session)

Format-List(each property is displayed on a separate
line)
They differ from commands used in other command-shell environments in that:

They are instances of .NET Framework classes; they are not stand-alone
executables.

They can be created from as few as a dozen lines of code.

They do not usually do their own parsing, error presentation, or output
formatting. All these are handled by the Windows PowerShell runtime.

They process input objects from the pipeline rather than from streams of text,
and cmdlets typically deliver objects as output to the pipeline.

They are record-oriented because they process a single object at a time.



An alias is an alternative name assigned to a
Cmdlet.
Aliases allow users to quickly interact with
the shell.
The Cmdlet get-alias is used to list all builtin aliases as shown in the diagram on the
next slide:



They are .NET programs used to provide easy
access to information external to the shell
environment in order for the users to view it
and manage it.
To obtain a listing of all the providers, the
Get-PSProvider cmdlet is used.
To work with specific providers, use the setlocation cmdlet then specify the provider
drive.

There are seven types of providers namely:
1. Alias
- Provides access to the windows
PowerShell aliases and their values
Get-PSProvider
Sl Alias:\
GCI | where-object {$_.name –like “s*”}
2. Environment
- Provides access to the Windows
environment variables.
3. FileSystem
- Provides access to files and
directories.
4. Function - Provides access to the functions
defined in Windows PowerShell.
5.
6.
7.
Registry
Provides access to the system registry keys
and values.
Variable
Provides access to Windows PowerShell
variables and their values.
Certificate
Provides read-only access to certificate
stores and certificates.
Scripting support is disabled by default in
Windows PowerShell.
Running a script when policy is not set
generates an error message that must be
fixed to allow script execution.

There are four levels of execution policy:
1.
Restricted
2.
AllSigned
3.
RemoteSigned
4.
Unrestricted
Will not run scripts or configuration files
All scripts and configuration files must be signed by a trusted
publisher
All scripts and configuration files downloaded from the internet must
be signed by a trusted publisher
All scripts and configuration files will run


Use the Get-ExecutionPolicy cmdlet to
retrieve the current effective script execution
policy.
Use the Set-ExecutionPolicy cmdlet to change
the script execution policy to unrestricted as
shown below:
Set-ExecutionPolicy unrestricted

Running a script can be done either within or
outside PowerShell.

Running the script within PowerShell requires
the following steps:
1. Type the full path to the script
2. Include the name of the script
3. Ensure you include the PS1 extension
C:\mytest\RetrieveAndSortServiceState.PS1

Running scripts outside PowerShell requires the
following steps:
1.
2.
3.
4.
5.
Type the full path to the script
Include the name of the script
Ensure you include the PS1 extension
Feed this to the PowerShell.exe program
Use the –noexit argument to keep the PowerShell
console after script execution
Powershell –noexit C:\mytest\RetrieveAndSortServiceState.PS1
Powershell evaluates the condition at the start of each cycle and if it’s true,
then it executes the command block as shown in the loop below:
$wmi = get-wmiObject win32_processor
if ($wmi.Architecture -eq 0)
{"This is an x86 computer"}
elseif($wmi.architecture -eq 1)
{"This is an MIPS computer"}
elseif($wmi.architecture -eq 2)
{"This is an Alapha computer"}
elseif($wmi.architecture -eq 3)
{"This is an PowerPC computer"}
elseif($wmi.architecture -eq 6)
{"This is an IPF computer"}
elseif($wmi.architecture -eq 9)
{"This is an x64 computer"}
else
{$wmi.architecture + " is not a cpu type I am familiar with"}
"Current clockspeed is : " + $wmi.CurrentClockSpeed + " MHZ"
"Max clockspeed is : " + $wmi.MaxClockSpeed + " MHZ"
"Current load percentage is: " + $wmi.LoadPercentage + " Percent"
"The L2 cache size is: " + $wmi.L2CacheSize + " KB"

They enable users to write a script that can
choose from a series of options without
writing a long series of If statements as
shown below:
$wmi = get-wmiobject win32_computersystem
"computer " + $wmi.name + " is: "
switch ($wmi.domainrole)
{
0 {"`t Stand alone workstation"}
1 {"`t Member workstation"}
2 {"`t Stand alone server"}
3 {"`t Member server"}
4 {"`t Back up domain controller"}
5 {"`t Primary domain controller"}
default {"`t The role can not be determined"}
}

Files and Folders
New-Item is a quick and easy way to create a
new file or folder on your computer.
Creating a file:
New-Item c:\scripts\new_file.txt type file
Creating a folder:
New-Item c:\scripts\Windows
PowerShell -type directory
$intFolders = 10
$intPad
$i = 1
New-Variable -Name strPrefix -Value "testFolder" -Option
constant
do {
if ($i -lt 10)
{$intPad=0
new-item -path c:\mytest -name $strPrefix$intPad$i -type
directory}
else
{new-item -path c:\mytest -name $strPrefix$i -type
directory}
$i++
}until ($i -eq $intFolders+1)
$intFolders = 10
$intPad
$i = 1
New-Variable -Name strPrefix -Value "testFolder" Option constant
do {
if ($i -lt 10)
{$intPad=0
Remove-item -path c:\mytest\$strPrefix$intPad$i}
else
{Remove-item -path c:\mytest\$strPrefix$i}
$i++
}until ($i -eq $intFolders+1)


Wilson, E. (2007). Microsoft Windows PowerShell
step by step. Washington: Microsoft Press.
Tomsho, G. (2010). MCTS guide to Microsoft
Windows Server 2008 Active Directory
configuration: Exam 70-640. Boston, MA: Course
Technology/Cengage Learning.

Schwichtenberg, H. (2008). Essential PowerShell.
The Addison-Wesley Microsoft technology series.
Upper Saddle River, NJ: Addison-Wesley.
Download