Presentation is loading. Please wait.

Presentation is loading. Please wait.

Presenters: Winfred Wangeci Jignash Reddy.  It is Microsoft's new task-based command- line shell and scripting language designed especially for system.

Similar presentations


Presentation on theme: "Presenters: Winfred Wangeci Jignash Reddy.  It is Microsoft's new task-based command- line shell and scripting language designed especially for system."— Presentation transcript:

1 Presenters: Winfred Wangeci Jignash Reddy

2  It is Microsoft's new task-based command- line 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.

3  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)

4  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.

5  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

6  Below are sample Cmdlets following the verb- noun 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”

7  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)

8

9

10

11

12

13

14 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.

15  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 built- in aliases as shown in the diagram on the next slide:

16

17  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 set- location cmdlet then specify the provider drive.

18  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.

19 5. Registry Provides access to the system registry keys and values. 6. Variable Provides access to Windows PowerShell variables and their values. 7. Certificate Provides read-only access to certificate stores and certificates.

20 1.To address recurring problems DirectoryListWithArguments.ps1 foreach ($i in $args) {Get-ChildItem $i | Where-Object {$_.length -gt 1000} | Sort-Object -property name}

21 2.To run the script as a scheduled task ListProcessesSortResults.ps1 $args = "localhost","loopback","127.0.0.1" foreach ($i in $args) {$strFile = "c:\mytest\"+ $i +"Processes.txt" Write-Host "Testing" $i "please wait..."; Get-WmiObject -computername $i -class win32_process | Select-Object name, processID, Priority, ThreadCount, PageFaults, PageFileUsage | Where-Object {!$_.processID -eq 0} | Sort-Object -property name | Format-Table | Out-File $strFile}

22 3. To store and share both the “secret commands” and the ideas behind the scripts AccountsWithNoRequiredPassword.ps1 $args = "localhost" foreach ($i in $args) {Write-Host "Connecting to" $i "please wait..."; Get-WmiObject -computername $i -class win32_UserAccount | Select-Object Name, Disabled, PasswordRequired, SID, SIDType | Where-Object {$_.PasswordRequired -eq 0} | Sort-Object -property name | Write-Host }

23 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.

24  There are four levels of execution policy: 1. Restricted Will not run scripts or configuration files 2. AllSigned All scripts and configuration files must be signed by a trusted publisher 3. RemoteSigned All scripts and configuration files downloaded from the internet must be signed by a trusted publisher 4. Unrestricted All scripts and configuration files will run

25  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

26  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

27  Running scripts outside 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 4.Feed this to the PowerShell.exe program 5.Use the –noexit argument to keep the PowerShell console after script execution Powershell –noexit C:\mytest\RetrieveAndSortServiceState.PS1

28 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"

29  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"} }

30  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

31 $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)

32 $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)

33  One of the most powerful and possibly confusing aspects of PowerShell.  The output of one program can be the input to another  Pipelining is passing data and objects from one cmdlet to another in a very robust fashion.  A | B | C meaning the output of A goes to B, and the output of B goes to C.

34 PS C:\> Get-Process | where { $_.handlecount -gt 400 } | Format-List This example is actually executing three cmdlets 1.The first, Get-Process, returns a list of all running processes 2.The second, Where {..} will return the conditioned value which handlecount is greater than 400. 3.Finally the Format-list will display the results in Alphabetic order

35 PS C:\> Get-Process | where { $_.handlecount -gt 400 } | Format-List ProcessName : csrss Id : 1080 ProcessName : explorer Id : 1952 ProcessName : Groove Id : 2656 ProcessName : inetinfo Id : 1524

36  The sort-object cmdlet is used to produce a listing of items in ascending/descending order Get-EventLog system -newest 5 | Sort-Object eventid Produces the output below:

37  Windows PowerShell -129 Commands Get-Command  Exchange PowerShell-394 Commands Get-EXCommand

38  New-Mailbox  Get-Mailbox  Set-Mailbox  Move-Mailbox  Remove-Mailbox

39  Count Mailbox in organizations (Get –mailbox).count  Getting all properties for a specific user Get-Mailbox | where {$_.Display Name -eq “DR kesh"} | format-list  List of all mailboxes in organization Get-Mailbox -ResultSize unlimited

40  Command for creating Users $UserName = $_.UserName $newUser = $container.Create("User", "cn=" + $UserNa me) $newUser.Put("sAMAccountName", $UserName) $newUser.SetInfo() $newUser.psbase.InvokeSet('AccountDisabled', $false) $newUser.SetInfo() $newUser.SetPassword("P@55w0rd“)  Making changes to users Apply policies Assign to groups Enable or disable features Changing attributes Moving mailboxes....

41  Prerequisites  Supported OS Microsoft Windows Server 2003 R2, or Microsoft Windows Server 2003 with SP1 or SP2 Windows XP with Service Pack 2 Windows Vista Windows 2008  The Microsoft.NET Framework 2.0 (2.0.50727)  Powershell  Exchange 2007

42  It is a hierarchical namespace, in which the layers build on one another like a Lightweight Directory Access Protocol (LDAP) directory used in Active Directory, or the file system structure on a hard disk drive.  WMI can be used to: report on drive configuration, report on available memory both physical and virtual, back up the event log, modify registry, schedule tasks, share folders, switch from a static to a dynamic IP address.  The WMI model has three sections namely: 1.Resources 2.Infrastructure 3.Consumers

43  To obtain a listing of WMI classes, use the Get-WmiObject cmdlet and specify the list argument as shown below: $strComputer = "." $wmiNS = "\root\cimv2" $strUsr ="" #Blank for current security. Domain\Username $strPWD = "" #Blank for current security. $strLocl = "MS_409" #US English. Can leave blank for current language $strAuth = "" #if specify domain in strUsr this must be blank $iFlag = "0" #only two values allowed: 0 and 128. $objLocator = New-Object -comobject "WbemScripting.SWbemLocator" $objWMIService = $objLocator.ConnectServer($strComputer, ` $wmiNS, $strUsr, $strPWD, $strLocl, $strAuth, $iFLag) $colItems = $objWMIService.subClassesOf() Write-Host "There are: " $colItems.count " classes in $wmiNS" foreach ($objItem In $colItems) { $objItem.path_.class }

44  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 ppt "Presenters: Winfred Wangeci Jignash Reddy.  It is Microsoft's new task-based command- line shell and scripting language designed especially for system."

Similar presentations


Ads by Google