Fabrice Romelard [MVP] Intranet – Extranet CTO SGS.
-
date post
20-Dec-2015 -
Category
Documents
-
view
217 -
download
1
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