Fabrice Romelard [MVP] Intranet – Extranet CTO SGS.

Post on 20-Dec-2015

219 views 1 download

Tags:

Transcript of Fabrice Romelard [MVP] Intranet – Extranet CTO SGS.

Powershell V2Code Session: C101

Fabrice Romelard [MVP]Intranet – Extranet CTOSGS

Presentation

MVP since 2003ASP.NET 2003-2006SQL Server 2006-2008SharePoint since 2008

French communities memberASP-PHPCodes SourcesGUSS

SharePoint Expert, SQL Server DBA and .NET developerCoworkers SGS at Geneva (Suisse)

Survey

Who know PowerShell ?

Who know SharePoint ?

Schedule

What’s SGS ?

What’s PowerShell ?

What’s New in PowerShell V2

PowerShell and SharePoint

A BRIEF HISTORY OF SGS

Founded in Rouen in 1878, under the name of Goldstück, Hainzé & Co.First registration as Société Générale de Surveillance in Geneva in 1919Growth by agglomerations of various companies which until 2002 had great degree of autonomyListed publicly in 1985Single share structure introduced in 2001Four significant shareholder groups

Famille A. Von Finck IFIL investmentAllianz SE FMR Corp

OUR IMPARTIAL SERVICES WORK ACROSS INDUSTRIES AND GEOGRAPHIES

Inspection Verification Testing Certification

THE WORLD’S LEADING INSPECTION, VERIFICATION, TESTING AND CERTIFICATION COMPANY

More than 50'000 employeesEurope, Middle East & Africa: 23’000 employeesAmericas: 11’300 employeesAsia/Pacific: 15’700 employees

A network of over 1’000 offices & laboratories

OUR EXPERTISE AND ACTIVITIES

AGRICULTURAL SERVICESMINERALS SERVICESOIL, GAS & CHEMICALS SERVICESAUTOMOTIVE SERVICESLIFE SCIENCE SERVICESINDUSTRIAL SERVICESSYSTEMS & SERVICES CERTIFICATIONGOVERNMENTS AND INSTITUTIONS SERVICES

SharePoint WSS Farms

Schedule

What’s SGS ?

What’s PowerShell ?

What’s New in PowerShell V2

PowerShell and SharePoint

Windows PowerShellNew command-line shell and scripting language

• As interactive and composable as BASH/KSH

• As programmatic as Perl/Python/Ruby

• As production oriented as AS400 CL/VMS DCL

• Allows access to data stores as easy to access as filesystem

Universal Automation Environment

Automation FrameworksAutomation Frameworks

Automation Frameworks

Cmdlets

In-Proc, Local, Remote

In-Proc, Local, RemoteRuntime Engines

In-Proc, Local, RemoteRuntime Engines

Automation Platform (API)

ScriptingLanguage

Type Normalizers

Type Normalizers

Type Normalizers

Providers Events, Jobs, Transactions

Shells, ISEs, GUI s, ApplicationsUniversal• Interactive or programmatic• Wide range of OSes• Local or Remote• Single or Multi Machine• Synch or Asynch• Wide range of authentication mechanisms• .NET, native code, COM, WMI, ADSI, XML, ADO, WebServices, WSMAN, etc• Simple scripting to systems programming

Powered by a strong community

Why powershell ??

Have better solution than standard « cmd.exe » (Evolution of MS-DOS)Replace Perl, KixStart or VBScript scripts, for execute simple tasks

PowerShell :Object OrientedCan use .Net objectsGive many command

Object oriented

In classical environment, command execution results in text

In PowerShell each result is object. We can use also the attributes and methods

Characteristics

.Net powered

Can call WSH, COM, and WMI objects with .Net objects

Many Commandlets

Standard in commands and parameters

Configuration de PowerShell

Version 1.0Pre-requisites : Framework .Net 2.0Available for:

Windows Server2008

• A feature• Not available in « Server Core »

•x86•x64•IA64

Windows Server 2003 SP1

• An update between SP1 and SP2 (KB926139, 140, 141)• To download

•x86•x64•IA64

Windows Vista • Update (KB928439)• To download

•x86•x64

Windows XP SP2 • Need an update (KB926139, 140, 141)• To download

•x86•x64

http://www.microsoft.com/windowsserver2003/technologies/management/powershell/download.mspx

PowserShell commands

PowerShell commands named « cmdlets »  (ie: command-applets).

One verb and a name with a dash (-),

Generic verb list(Get, Set, Add, Remove, etc.) with diferent name like Path, Variable, Item, Object etc.

Lot of name possible for commands

Parameters

Diferent solutions for use parametersget-command -Name [string] -Type [CommandTypes] -Verb [string] -Noun [string]

Use “” if parameter have a space or special char

Basic commands

First of all: « Get-Command ».

For help: Get-Help with command.

More help on command: « Get-Help Get-Command –detailed » with some examples « Get-Help Get-Command –full » with all technical informations

Aliases

Command « Short Name» Alias «my_cmd» for the command « very-long-command-to-write».

Help shell Unix or cmd.exe users with their uses …

ls, more, pwd, etc. ls is the command alias for Get-ChildItem which shows the file or folder list.

Variable use

A PowerShell variable is define by the prefix $ with the name and can receive value

We can create the named variable $current-process and store the active process list

$current_process = Get-Process

The Pipe

Action between commands

PowerShell built for transition data between commands without change (more text transform)

Get-Process | where { $_.handlecount -gt 400 } | Format-List

Conditions and operators

Condition in PowerShell, we can use operators If, ElseIf and Else

$current_process = Get-ProcessIf ($current_process.count -lt 50){        Write-Host « Low server load";}Elseif (($current_process.count -ge 50) -and ($current_process.count -lt 80)){        Write-Host « Middle server load";}Else{        Write-Host « High server load";}

Loop use

We can create loop in PowerShell as While, Do While, For or Foreach.

$var = 1 // One variable set to 1while ($var -le 50) {$var; $var += 1} // while the value is not equal to 50, we add 1

for ($var = 1; $var -le 50; $i++) //

{$var} // each steps we show the variable value

Objects use

WMI objectsInclude in PowerShell in standard, no creation needGet-WmiObject –list

.NET and COM objectsCreate a new object for a variablePS C:\> $xls = New-Object -ComObject Excel.ApplicationWe can use the methods and properties

Windows PowerShell

Basic Scripts for Services and file management

demo

Schedule

What’s SGS ?

What’s PowerShell ?

What’s New in PowerShell V2 ?

PowerShell and SharePoint

PowerShell V2 Goals

Reduce the cost and effort to:Use PowerShell

Get, learn, share scripts

Layer applications on PowerShellGUI, web, workflow, etc.

Manage anything/everythingServers, clients, distributed systems, applications, web services, cloud services, raw HW, other OSes, everythingUsing any and all mechanisms (WMI, .Net, native code, web services, WSMAN)

Pre-requisites

Microsoft .NET Framework 2.0

Windows PowerShell remoting et background jobs needs WinRM 2.0 CTP3 : Only for Vista SP1 and W2008

Windows PowerShell Integrated Scripting Environment (ISE) and Out-GridView cmdlet needs Microsoft .NET Framework 3.5 SP1

Changes (1)

Windows PowerShell Remoting1:1 et 1:plusieurs

Background JobsAdvanced FunctionsModulesTransactions

Changes (2)

Script DebuggingNouvelles CmdletsWindows PowerShell Integrated Scripting Environment (ISE)Nouveaux opérateurs

Splatting (@)SplitJoin

Who Does What?V1 V2

Developer •Cmdlets and/or providers• Help

•PowerShell cmdlets •Transaction support

PowerShell • CLI & API

• Rich language w/access to com, wmi, .Net, adsi, xml & ado

• Utilities to manipulate, format, import/export

• 129 Cmdlets

•Web service & workflow activities

•Richer language w/access to web services, unmanaged code, wsman

• Richer utilities including eventing, job control, remote execution

• 241 Cmdlets

•Graphical ISE to create/debug scripts

Users •Simple ad hoc scripts•Sophisticated production scripting

•Systems programming•Across multiple machines

Community

• Write and share scripts • Write and Share Modules

V1 Scripts and Cmdlets run on PowerShell V2

PowerShell V2 in Windows 7PowerShell V2 in Server Core

Announcing

Managing Raw HW and Other OSes

Management initiative driven by DMTFPlatform independent, interoperable & industry standard management solutionCIM based standards for Server and Desktop managementWS-Management (WSMAN)

ITConsole

ManagedPlatforms

WSMAN

Raw HW Management - Examples

Power control and boot control HW/ SW inventory Alerts and lifecycle events Config/manage BIOS Software and Firmware update Health monitoring

Hardware Sample Commands

Power Off Command

Invoke-WSManAction -CN $svr -cred $cred -port 16992 `-Auth digest CIM_ComputerSystem `–Action RequestStateChange `–SelectorSet @{Name="ManagedSystem"} `-valueSet @{RequestedState="3"}

Chassis ClassGet-WSManInstance -CN $svr -cred $cred -port 16992 -Auth digest -enum CIM_Chassis

Chip ClassGet-WSManInstance –CN $srv -cred $cred -port 16992 -Auth digest -enum CIM_Chip

Power On Command

Invoke-WSManAction -CN $svr -cred $cred -port 16992 `-Auth digest CIM_ComputerSystem `–Action RequestStateChange `–SelectorSet @{Name="ManagedSystem"} `-valueSet @{RequestedState=“2"} 

Remote management

Remote WMI Remote Command/Script Execution Remote Background Jobs Remote Interactive Session

Server list management

-ComputerName <string[]> # txt format list-Throttle <int> # fix parallel session number-AsJob # execut in background

PS> gwmi -CN (cat servers.txt) Win32_Bios -Throttle 64 | Select __Server, Name, Manufacturer, Version | ConvertTo-Html > BiosInventory.htm

PS> $job = gwmi -CN (cat servers.txt) Win32_Bios -Throttle 64 –AsJobPS> Wait-job $j # or go do something elsePS> Receive-Job $j | Select __Server, Name, Manufacturer, Version | ConvertTo-Html > BiosInventory.htm

PowerShell V2

xxxxx

demo

Schedule

What’s SGS ?

What’s PowerShell ?

What’s New in PowerShell V2 ?

PowerShell and SharePoint

Use the SharePoint objects

Load the SharePoint DLL[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint") > $null

Set the variable$site = new-object Microsoft.SharePoint.SPSite(“http://myWebApp”)

Use the MSDN site as the .NET SharePoint Development

PowerShell & SharePoint

Scripts for SharePoint management

demo

PowerShell V2

Conclusion

Related LinksTechnical Blog

http://blogs.developpeur.org/fabrice69/Online Articles

http://www.asp-php.netSharePoint Management PowerShell scripts

http://sharepointpsscripts.codeplex.comPowerShell Blogs

http://blogs.technet.com/powershell/http://blogs.msdn.com/powershell/http://scriptingof.blogspot.com/

PowerShell V2

Questions ?

Save the date for tech·days next year!

14 – 15 avril 2010, CICG

Classic Sponsoring Partners

Premium Sponsoring Partners