SlideShare a Scribd company logo
Finally! Full-On Remote Computer Management (with PowerShell v2) Don Jones ConcentratedTech.com Pre-requisites for this presentation:  1) Strong understanding of basic Windows administration 2) Basic understanding of Windows PowerShell v2 use Level:  Advanced
This slide deck was used in one of our many conference presentations. We hope you enjoy it, and invite you to use it within your own organization however you like. For more information on our company, including information on private classes and upcoming conference appearances, please visit our Web site,  www.ConcentratedTech.com .  For links to newly-posted decks, follow us on Twitter: @concentrateddon or @concentratdgreg This work is copyright ©Concentrated Technology, LLC
About the Instructor Don Jones Contributing Editor,  technetmagazine.com IT author, consultant, and speaker Co-founder of Concentrated Technology Seven-time recipient of Microsoft ’s Most Valuable Professional (MVP) Award Author and Editor-in-Chief for Realtime Publishers Trainer for www.CBTNuggets.com
PowerShell Remoting Connects two copies of Windows PowerShell over the network The  “client copy” (where you sit) sends commands to one or more “server copies” (remote machines) Remote machines execute the commands locally, and send back the resulting objects
Underlying Technologies Relies on  PSSessions , an object that represents an authenticated connection between two computers Persist the connection in a variable Persist multiple connections in an array “ Persist” does not mean “constantly send traffic;” it re-connects on-demand and invisibly
Transport Mechanism Communications are handled by Windows Remote Management (WinRM), a service that implements Web Services for Management (WS-MAN) WinRM 2.0 uses HTTP and HTTPS as the underlying transport, on port 5985 (by default)
WinRM Security WinRM must be allowed to  listen  for requests Incoming requests are tagged with an application; this lets WinRM route requests to the correct app – like PowerShell Apps must be allowed to register as listeners with WinRM Local firewalls must obviously allow the traffic
More WinRM Security By default, WinRM uses Kerberos Doesn ’t transmit passwords at all Ensures mutual authentication of client and server Allows your credential to be delegated to the remote server Allows the use of alternate credentials WinRM can use HTTPS, which encrypts all traffic sent to and from WinRM
PowerShell Remoting “ Remote Shell” registers PowerShell as a WinRM listener PowerShell automatically applies encryption to the traffic it submits to WinRM PowerShell acts both as a client (where you sit) and a server (on the remote machine) Normally only Administrators can remotely invoke the shell
General Requirements Windows PowerShell v2 .NET Framework v2 WinRM Service v2 Win2008R2 and Win7 initial appearance Integrated in PowerShell v2 install for older OSs
Configuring in a Domain You will typically configure WinRM and Remote Shell in a domain environment GPO settings exist to do this – and the domain provides a common authentication mechanism (via Kerberos) Super-simple, super-easy – no need for manual configuration on a per-machine basis
Configuring Per-Machine Run  Set-WsManQuickConfig Starts the service, enables a firewall exception, and allows WinRM listening
Non-Domain Environment Trickier! Some terms: Client: The machine you ’re sitting in front of Server: The remote machine you want to manage You ’ll need to run several steps to make this work
Workgroup WinRM Steps Server: Enable-PSRemoting -force Won ’t work if network card is set to “Public” (vs. “Office” or “Home” or whatever) Administrator account must have a password
Workgroup WinRM Steps Client: Enable-PSRemoting WinXP only: Set-ItemProperty –Path HKLM:\System\CurrentControlSet\Control\Lsa –Name ForceGuest –Value  0  (zero) Set-Item WSMan:\localhost\Client\TrustedHosts –Value  server  –Force -concat
Workgroup WinRM Caution: You are sending a credential from your client to server without verifying the server ’s identity; only do this in a trusted environment For more info, see  http://blogs.msdn.com/wmi/archive/2009/07/24/powershell-remoting-between-two-workgroup-machines.aspx .
WinRM Service Settings Enable Enable if you have pre-WinRM 2.0 listeners Remember, this configured WinRM 2.0!
Remote Shell Settings Enable (Default if setting is not configured) Good idea Only useful is Windows PowerShell v2 is installed and if WinRM is enabled for listening
Troubleshooting Ensure PowerShell is being run as Administrator Caution: With UAC enabled,  explicitly  run as Administrator! No config needed to  send  remote commands; config needed to  receive  them Set-WSManQuickConfig or Enable-PSRemoting
Troubleshooting Ensure WinRM service starts automatically Default on server OS Disabled by default on client OS Use  Set-Service  cmdlet with  –computerName  to remotely change startup mode on multiple computers
Other Issues See  help about_remote_troubleshooting : Administrators in other domains Remoting for non-administrators Using an IP address vs. a computer name Connecting from a workgroup-based computer Adding computers to the  “trusted hosts” list Alternate ports for remoting Proxy servers with remoting Etc
PSSessions Use  New-PSSession  to create a new remoting session Pass an array of computer names to  -computerName  to create multiple new sessions Save the session(s) in a variable for later re-use
New-PSSession Numerous parameters allow customization Authentication mechanism Alternate credential Etc Read  Help New-PSSession  for all the details
Session Management Remove-PSSession : Close connection and delete session object No need to do this when you ’re completely finished – just close the shell Sessions do consume memory on both ends – so don ’t leave them sitting idle for no reason Get-PSSession : Get all of  your  currently-defined PSSessions No way to access others ’ sessions, even on the same machine
Session Tips Setting  –throttleLimit  on  New-PSSession  limits the number of sessions active at once – helps conserve resources Use  New-PSSessionOption  to create a new  “option object” that sets various advanced options; pass the resulting object to  –sessionOption  to apply those options when creating new sessions
Using Sessions Two ways: 1:1, or  interactive 1:many, or  batch Both techniques require that you establish the session first Trick: If you have multiple sessions in a $sessions variable… $sessions[0] is the first $sessions[1] is the second (and so on)
1:1 Remoting Use  Enter-PSSession  and provide a session object Prompt changes to show which computer ’s shell you’re now using Exit-PSSession  exits and returns you to your local shell
1:1 Remoting On-Demand Enter-PSSession  also provides parameters to create a new session on-demand Useful for creating one-off, ad-hoc remote sessions Session is automatically deleted when you run  Exit-PSSession
1:many Remoting Use  Invoke-Command  to specify a command Either specify computer names… … or pass it an array of PSSession objects
Why Sessions? You ’re  always  using a session with  Enter-PSSession  or  Invoke-Command If you use  –computerName , the session is created ad-hoc and deleted immediately If you use  –session , you can pass session objects that have already been created Pre-create the sessions if you will use them more than once in a sitting – saves typing credentials and stuff over and over
Invoke-Command Results PowerShell tacks on a  “PSComputerName” property which contains the computer that the result came from Makes it easy to separate and distinguish the results Output is serialized into XML on the remote computer, and the de-serialized back into objects in your copy of PowerShell (why? XML transmits across the network easily)
Multiple Computers Invoke-Command  automatically throttles how many computers it sends commands to in parallel -ThrottleLimit  lets you modify the default throttle Helps improve performance; means you may have to wait a bit when doing a large number of computers
Invoke-Command Tricks -command  is an alternate name for  –scriptblock , which is the real parameter name -scriptblock  takes a {script block} -filePath  uses a  local  script file (.PS1) -hideComputerName  – hides computer name in output (it ’s still accessible as a property of the output objects) Read help for more!!
More! You can also have  Invoke-Command  run as a background job ( -asJob  parameter); look up  Help *-Job  for details on working with jobs Quick example…
Thank You! Please feel free to pick up a card if you ’d like copies of my session materials I ’ll be happy to take any last questions while I pack up Please complete and submit an evaluation form for this and every session you attend!
 
This slide deck was used in one of our many conference presentations. We hope you enjoy it, and invite you to use it within your own organization however you like. For more information on our company, including information on private classes and upcoming conference appearances, please visit our Web site,  www.ConcentratedTech.com .  For links to newly-posted decks, follow us on Twitter: @concentrateddon or @concentratdgreg This work is copyright ©Concentrated Technology, LLC

More Related Content

PPTX
PDF
Juniper Chassis Cluster Configuration with SRX-1500s
PPTX
Introduction to penetration testing
PPTX
Wireshark.pptx
PPT
Networking and penetration testing
PPTX
VLANs_Module_3.pptx
PDF
PDF
Kali linux tutorial
Juniper Chassis Cluster Configuration with SRX-1500s
Introduction to penetration testing
Wireshark.pptx
Networking and penetration testing
VLANs_Module_3.pptx
Kali linux tutorial

What's hot (20)

PPT
Web Application Security
PDF
Support formation vidéo : Cisco ASA, configuration
PPT
PPTX
Vulnerabilities in modern web applications
PPT
PDF
PPTX
Chapter_4 of Computer Networking: A Top Down Approach 6th edition Jim Kurose,...
PPT
Web Proxy Server
PPTX
Penetration testing overview
PPTX
Telnet & SSH Configuration
PDF
20 palo alto site to site
PPTX
WiFi Secuiry: Attack & Defence
PPT
Protocole rip
PPTX
OpenvSwitch Deep Dive
PPTX
Nessus-Vulnerability Tester
PPTX
Spyware and rootkit
PPTX
Wireshark
PPTX
Packet sniffers
Web Application Security
Support formation vidéo : Cisco ASA, configuration
Vulnerabilities in modern web applications
Chapter_4 of Computer Networking: A Top Down Approach 6th edition Jim Kurose,...
Web Proxy Server
Penetration testing overview
Telnet & SSH Configuration
20 palo alto site to site
WiFi Secuiry: Attack & Defence
Protocole rip
OpenvSwitch Deep Dive
Nessus-Vulnerability Tester
Spyware and rootkit
Wireshark
Packet sniffers
Ad

Viewers also liked (20)

PPTX
PowerShell crashcourse for Sharepoint admins
PPTX
Implementing dr w. hyper v clustering
PPT
PowerShell v4 Desired State Configuration
PPTX
Best free tools for win database admin
PPTX
Introduction to powershell
PPTX
Meet Windows PowerShell
PPTX
Ive got a powershell secret
PPTX
PowerShell and WMI
PPT
No-script PowerShell v2
PPTX
VDI-in-a-Box: Microsoft Desktop Virtualization for Smaller Businesses and Uses
PPT
Free tools for win server administration
PPT
From VB Script to PowerShell
KEY
PowerShell and the Future of Windows Automation
PPTX
PowerShell crash course
PPTX
Managing enterprise with PowerShell remoting
PPTX
Basic PowerShell Toolmaking - Spiceworld 2016 session
PPT
Managing SQLserver
PPT
PowerShell crashcourse
PPT
PS scripting and modularization
PPT
PowerShell crashcourse for Sharepoint admins
Implementing dr w. hyper v clustering
PowerShell v4 Desired State Configuration
Best free tools for win database admin
Introduction to powershell
Meet Windows PowerShell
Ive got a powershell secret
PowerShell and WMI
No-script PowerShell v2
VDI-in-a-Box: Microsoft Desktop Virtualization for Smaller Businesses and Uses
Free tools for win server administration
From VB Script to PowerShell
PowerShell and the Future of Windows Automation
PowerShell crash course
Managing enterprise with PowerShell remoting
Basic PowerShell Toolmaking - Spiceworld 2016 session
Managing SQLserver
PowerShell crashcourse
PS scripting and modularization
Ad

Similar to PowerShell Remoting (20)

PDF
Windows PowerShell Remoting Presentation.pdf
PPT
Automating Active Directory mgmt in PowerShell
PPTX
Inventory your network and clients with PowerShell
PPTX
PowerShell 2 remoting
PPTX
DOCX
Assessment itemManaging Services and SecurityValue 15Due D.docx
PDF
PowerShell for SharePoint Developers
PPTX
PowerShell 2.0 remoting
PPTX
April 2010-intro-to-remoting-part2
PPTX
Enterprise PowerShell for Remote Security Assessments
PDF
One-Man Ops
PPTX
Wsv406 Advanced Automation Using Windows Power Shell2.0
PPT
LOAD BALANCING OF APPLICATIONS USING XEN HYPERVISOR
ODP
VM201 - IdoSphere
PPT
Sdwest2008 V101 F Dpowerpoint Final
PDF
Introduction to PowerShell
PPTX
PowerShell - Be A Cool Blue Kid
PPT
Powershell Seminar @ ITWorx CuttingEdge Club
PPTX
Feb 2010 Intro To Remoteing Part1
PPTX
Practical Introduction To Linux
Windows PowerShell Remoting Presentation.pdf
Automating Active Directory mgmt in PowerShell
Inventory your network and clients with PowerShell
PowerShell 2 remoting
Assessment itemManaging Services and SecurityValue 15Due D.docx
PowerShell for SharePoint Developers
PowerShell 2.0 remoting
April 2010-intro-to-remoting-part2
Enterprise PowerShell for Remote Security Assessments
One-Man Ops
Wsv406 Advanced Automation Using Windows Power Shell2.0
LOAD BALANCING OF APPLICATIONS USING XEN HYPERVISOR
VM201 - IdoSphere
Sdwest2008 V101 F Dpowerpoint Final
Introduction to PowerShell
PowerShell - Be A Cool Blue Kid
Powershell Seminar @ ITWorx CuttingEdge Club
Feb 2010 Intro To Remoteing Part1
Practical Introduction To Linux

More from Concentrated Technology (18)

PPT
Wsus sample scripts
PPTX
Wsus best practices
PPT
Virtualization today
PPTX
Virtualization auditing & security deck v1.0
PPTX
PPT
Top ESXi command line v2.0
PPT
Supporting SQLserver
PPT
Securely connecting to apps over the internet using rds
PPT
Rapidly deploying software
PPT
PS error handling and debugging
PPT
Prepping software for w7 deployment
PPTX
PowerShell crashcourse for sharepoint
PPT
PowerShell 8tips
PPTX
PowerShell custom properties
PPTX
Managing SQLserver for the reluctant DBA
PPT
Iis implementation
PPT
Hyper v r2 deep dive
PPT
How to configure esx to pass an audit
Wsus sample scripts
Wsus best practices
Virtualization today
Virtualization auditing & security deck v1.0
Top ESXi command line v2.0
Supporting SQLserver
Securely connecting to apps over the internet using rds
Rapidly deploying software
PS error handling and debugging
Prepping software for w7 deployment
PowerShell crashcourse for sharepoint
PowerShell 8tips
PowerShell custom properties
Managing SQLserver for the reluctant DBA
Iis implementation
Hyper v r2 deep dive
How to configure esx to pass an audit

Recently uploaded (20)

PDF
Spectral efficient network and resource selection model in 5G networks
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Approach and Philosophy of On baking technology
PDF
Network Security Unit 5.pdf for BCA BBA.
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PDF
Machine learning based COVID-19 study performance prediction
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
KodekX | Application Modernization Development
PDF
Electronic commerce courselecture one. Pdf
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
cuic standard and advanced reporting.pdf
PDF
Modernizing your data center with Dell and AMD
PPTX
Big Data Technologies - Introduction.pptx
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
NewMind AI Weekly Chronicles - August'25 Week I
Spectral efficient network and resource selection model in 5G networks
The AUB Centre for AI in Media Proposal.docx
Approach and Philosophy of On baking technology
Network Security Unit 5.pdf for BCA BBA.
Digital-Transformation-Roadmap-for-Companies.pptx
20250228 LYD VKU AI Blended-Learning.pptx
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
Machine learning based COVID-19 study performance prediction
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
KodekX | Application Modernization Development
Electronic commerce courselecture one. Pdf
Dropbox Q2 2025 Financial Results & Investor Presentation
cuic standard and advanced reporting.pdf
Modernizing your data center with Dell and AMD
Big Data Technologies - Introduction.pptx
Encapsulation_ Review paper, used for researhc scholars
Advanced methodologies resolving dimensionality complications for autism neur...
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Understanding_Digital_Forensics_Presentation.pptx
NewMind AI Weekly Chronicles - August'25 Week I

PowerShell Remoting

  • 1. Finally! Full-On Remote Computer Management (with PowerShell v2) Don Jones ConcentratedTech.com Pre-requisites for this presentation: 1) Strong understanding of basic Windows administration 2) Basic understanding of Windows PowerShell v2 use Level: Advanced
  • 2. This slide deck was used in one of our many conference presentations. We hope you enjoy it, and invite you to use it within your own organization however you like. For more information on our company, including information on private classes and upcoming conference appearances, please visit our Web site, www.ConcentratedTech.com . For links to newly-posted decks, follow us on Twitter: @concentrateddon or @concentratdgreg This work is copyright ©Concentrated Technology, LLC
  • 3. About the Instructor Don Jones Contributing Editor, technetmagazine.com IT author, consultant, and speaker Co-founder of Concentrated Technology Seven-time recipient of Microsoft ’s Most Valuable Professional (MVP) Award Author and Editor-in-Chief for Realtime Publishers Trainer for www.CBTNuggets.com
  • 4. PowerShell Remoting Connects two copies of Windows PowerShell over the network The “client copy” (where you sit) sends commands to one or more “server copies” (remote machines) Remote machines execute the commands locally, and send back the resulting objects
  • 5. Underlying Technologies Relies on PSSessions , an object that represents an authenticated connection between two computers Persist the connection in a variable Persist multiple connections in an array “ Persist” does not mean “constantly send traffic;” it re-connects on-demand and invisibly
  • 6. Transport Mechanism Communications are handled by Windows Remote Management (WinRM), a service that implements Web Services for Management (WS-MAN) WinRM 2.0 uses HTTP and HTTPS as the underlying transport, on port 5985 (by default)
  • 7. WinRM Security WinRM must be allowed to listen for requests Incoming requests are tagged with an application; this lets WinRM route requests to the correct app – like PowerShell Apps must be allowed to register as listeners with WinRM Local firewalls must obviously allow the traffic
  • 8. More WinRM Security By default, WinRM uses Kerberos Doesn ’t transmit passwords at all Ensures mutual authentication of client and server Allows your credential to be delegated to the remote server Allows the use of alternate credentials WinRM can use HTTPS, which encrypts all traffic sent to and from WinRM
  • 9. PowerShell Remoting “ Remote Shell” registers PowerShell as a WinRM listener PowerShell automatically applies encryption to the traffic it submits to WinRM PowerShell acts both as a client (where you sit) and a server (on the remote machine) Normally only Administrators can remotely invoke the shell
  • 10. General Requirements Windows PowerShell v2 .NET Framework v2 WinRM Service v2 Win2008R2 and Win7 initial appearance Integrated in PowerShell v2 install for older OSs
  • 11. Configuring in a Domain You will typically configure WinRM and Remote Shell in a domain environment GPO settings exist to do this – and the domain provides a common authentication mechanism (via Kerberos) Super-simple, super-easy – no need for manual configuration on a per-machine basis
  • 12. Configuring Per-Machine Run Set-WsManQuickConfig Starts the service, enables a firewall exception, and allows WinRM listening
  • 13. Non-Domain Environment Trickier! Some terms: Client: The machine you ’re sitting in front of Server: The remote machine you want to manage You ’ll need to run several steps to make this work
  • 14. Workgroup WinRM Steps Server: Enable-PSRemoting -force Won ’t work if network card is set to “Public” (vs. “Office” or “Home” or whatever) Administrator account must have a password
  • 15. Workgroup WinRM Steps Client: Enable-PSRemoting WinXP only: Set-ItemProperty –Path HKLM:\System\CurrentControlSet\Control\Lsa –Name ForceGuest –Value 0 (zero) Set-Item WSMan:\localhost\Client\TrustedHosts –Value server –Force -concat
  • 16. Workgroup WinRM Caution: You are sending a credential from your client to server without verifying the server ’s identity; only do this in a trusted environment For more info, see http://blogs.msdn.com/wmi/archive/2009/07/24/powershell-remoting-between-two-workgroup-machines.aspx .
  • 17. WinRM Service Settings Enable Enable if you have pre-WinRM 2.0 listeners Remember, this configured WinRM 2.0!
  • 18. Remote Shell Settings Enable (Default if setting is not configured) Good idea Only useful is Windows PowerShell v2 is installed and if WinRM is enabled for listening
  • 19. Troubleshooting Ensure PowerShell is being run as Administrator Caution: With UAC enabled, explicitly run as Administrator! No config needed to send remote commands; config needed to receive them Set-WSManQuickConfig or Enable-PSRemoting
  • 20. Troubleshooting Ensure WinRM service starts automatically Default on server OS Disabled by default on client OS Use Set-Service cmdlet with –computerName to remotely change startup mode on multiple computers
  • 21. Other Issues See help about_remote_troubleshooting : Administrators in other domains Remoting for non-administrators Using an IP address vs. a computer name Connecting from a workgroup-based computer Adding computers to the “trusted hosts” list Alternate ports for remoting Proxy servers with remoting Etc
  • 22. PSSessions Use New-PSSession to create a new remoting session Pass an array of computer names to -computerName to create multiple new sessions Save the session(s) in a variable for later re-use
  • 23. New-PSSession Numerous parameters allow customization Authentication mechanism Alternate credential Etc Read Help New-PSSession for all the details
  • 24. Session Management Remove-PSSession : Close connection and delete session object No need to do this when you ’re completely finished – just close the shell Sessions do consume memory on both ends – so don ’t leave them sitting idle for no reason Get-PSSession : Get all of your currently-defined PSSessions No way to access others ’ sessions, even on the same machine
  • 25. Session Tips Setting –throttleLimit on New-PSSession limits the number of sessions active at once – helps conserve resources Use New-PSSessionOption to create a new “option object” that sets various advanced options; pass the resulting object to –sessionOption to apply those options when creating new sessions
  • 26. Using Sessions Two ways: 1:1, or interactive 1:many, or batch Both techniques require that you establish the session first Trick: If you have multiple sessions in a $sessions variable… $sessions[0] is the first $sessions[1] is the second (and so on)
  • 27. 1:1 Remoting Use Enter-PSSession and provide a session object Prompt changes to show which computer ’s shell you’re now using Exit-PSSession exits and returns you to your local shell
  • 28. 1:1 Remoting On-Demand Enter-PSSession also provides parameters to create a new session on-demand Useful for creating one-off, ad-hoc remote sessions Session is automatically deleted when you run Exit-PSSession
  • 29. 1:many Remoting Use Invoke-Command to specify a command Either specify computer names… … or pass it an array of PSSession objects
  • 30. Why Sessions? You ’re always using a session with Enter-PSSession or Invoke-Command If you use –computerName , the session is created ad-hoc and deleted immediately If you use –session , you can pass session objects that have already been created Pre-create the sessions if you will use them more than once in a sitting – saves typing credentials and stuff over and over
  • 31. Invoke-Command Results PowerShell tacks on a “PSComputerName” property which contains the computer that the result came from Makes it easy to separate and distinguish the results Output is serialized into XML on the remote computer, and the de-serialized back into objects in your copy of PowerShell (why? XML transmits across the network easily)
  • 32. Multiple Computers Invoke-Command automatically throttles how many computers it sends commands to in parallel -ThrottleLimit lets you modify the default throttle Helps improve performance; means you may have to wait a bit when doing a large number of computers
  • 33. Invoke-Command Tricks -command is an alternate name for –scriptblock , which is the real parameter name -scriptblock takes a {script block} -filePath uses a local script file (.PS1) -hideComputerName – hides computer name in output (it ’s still accessible as a property of the output objects) Read help for more!!
  • 34. More! You can also have Invoke-Command run as a background job ( -asJob parameter); look up Help *-Job for details on working with jobs Quick example…
  • 35. Thank You! Please feel free to pick up a card if you ’d like copies of my session materials I ’ll be happy to take any last questions while I pack up Please complete and submit an evaluation form for this and every session you attend!
  • 36.  
  • 37. This slide deck was used in one of our many conference presentations. We hope you enjoy it, and invite you to use it within your own organization however you like. For more information on our company, including information on private classes and upcoming conference appearances, please visit our Web site, www.ConcentratedTech.com . For links to newly-posted decks, follow us on Twitter: @concentrateddon or @concentratdgreg This work is copyright ©Concentrated Technology, LLC

Editor's Notes

  • #2: MGB 2003 © 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
  • #36: MGB 2003 © 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.