Slides from talk at PowerShell Conference Europe 2016 (@PSConfEu). In this deck:
-- Why write PowerShell help?
-- How help for modules differs from cmdlet help
-- Mechanics:
---- Comment-based help vs. XML help
---- About topic format requirements and best practices
-- About Help Content
---- How to start an About topic
---- How to organize an About topic.
---- About topic checklist
-- How to support online help
A presentation covering some of the interesting things going on with Powershell in the Infosec community. I give a brief overview of what powershell is, then go over some interesting aspects of three different offensive powershell frameworks and finally give a demo of how a local user can escalate to domain admin privileges using just these frameworks.
A presentation covering some of the interesting things going on with Powershell in the Infosec community. I give a brief overview of what powershell is, then go over some interesting aspects of three different offensive powershell frameworks and finally give a demo of how a local user can escalate to domain admin privileges using just these frameworks.
Get-Help: An intro to PowerShell and how to Use it for Eviljaredhaight
This talk covers the basics of how PowerShell works and how to use it. It then goes over a lot of the interesting offensive PowerShell tools that are available and gives a demo of using PowerShell to escalate to Domain Admin privileges on a network.
A video of the talk is available here: https://www.youtube.com/watch?v=YSUJNInriiY
This presentation introduces Microsoft Powershell version 5. It defines what are commands and how can you use them to write scripts and classes in Powershell.
A technical overview of PowerShell. See http://blogs.msdn.com/allandcp/archive/2009/03/11/powershell-to-the-people-the-aftermath.aspx for more background and resources.
This is the thirteenth set of slides from a Perl programming course that I held some years ago.
I want to share it with everyone looking for intransitive Perl-knowledge.
A table of content for all presentations can be found at i-can.eu.
The source code for the examples and the presentations in ODP format are on https://github.com/kberov/PerlProgrammingCourse
PECL Picks - Extensions to make your life betterZendCon
One of the biggest strengths of PHP is its "glue" power. Take any C library and with a little magic and a compiler you have a fantastic extension. These extensions hide in PECL, but few people can tell the good from the unmaintained or just plain broken. Find the best extensions for your project, learn about PECL, and find out how to become a part of the PECL developer community.
Zend_Cache: how to improve the performance of PHP applicationsEnrico Zimuel
In this talk i showed some caching techniques in PHP using the Zend_Cache class of hte Zend Framework.
I presented the functions and the flexibility of the Zend_Cache with the use of the backends: File, APC, Memcached, Zend Server Community Edition.
Abstraction, encapsulation, polymorphism, and interfaces: whether you've been programming in PHP for years or are just starting your journey, these terms can be overwhelming even on a good day. Variables, conditionals, those all make sense. But this whole object-oriented thing is way more complicated. Not only that, people that already understand it, act like it's so easy and they talk right over the simple questions and never explain the basic concepts in a way that actually makes sense. In this session, we'll take you through real-life examples of object-oriented terminology in a way that will make sense of all the mumbo jumbo and allow you to utilize object-oriented programming (OOP) immediately.
PowerUp - Automating Windows Privilege EscalationWill Schroeder
This slidedeck was given as a firetalk at @BSidesBoston '14, and covers the genesis and implementation of PowerUp, a Powershell tool for Windows privilege escalation.
This is an end-to-end introduction to PowerShell, as an interactive shell but more as a scripting language. From the perspective of a full-stack developer, this presentation covers the basics and six of the common issues that occasional users run into.
Add-On Development: EE Expects that Every Developer will do his Dutyreedmaniac
Add-Ons are what make ExpressionEngine the flexible powerhouse that it is today. Being able to write your own simple plugins or incredibly expansive modules allows you to mold ExpressionEngine to nearly any task that your website might require. However, with that power comes a great responsibility to insure that your code is not slowing down the entire site or unduly stressing the server through bad code architecture.
There are simple tools already built into ExpressionEngine and PHP that you can use to see precisely what your Add-On is doing during page processing and where it might be doing more work than is absolutely necessary. Every developer should use these to optimize their work from the very beginning of development, prior to release. This workshop will explain these tools and how you can use them effectively. It will also delve deeper into optimization techniques and tricks that will keep your code light and clean, while finding a balance between functionality and performance.
Get-Help: An intro to PowerShell and how to Use it for Eviljaredhaight
This talk covers the basics of how PowerShell works and how to use it. It then goes over a lot of the interesting offensive PowerShell tools that are available and gives a demo of using PowerShell to escalate to Domain Admin privileges on a network.
A video of the talk is available here: https://www.youtube.com/watch?v=YSUJNInriiY
This presentation introduces Microsoft Powershell version 5. It defines what are commands and how can you use them to write scripts and classes in Powershell.
A technical overview of PowerShell. See http://blogs.msdn.com/allandcp/archive/2009/03/11/powershell-to-the-people-the-aftermath.aspx for more background and resources.
This is the thirteenth set of slides from a Perl programming course that I held some years ago.
I want to share it with everyone looking for intransitive Perl-knowledge.
A table of content for all presentations can be found at i-can.eu.
The source code for the examples and the presentations in ODP format are on https://github.com/kberov/PerlProgrammingCourse
PECL Picks - Extensions to make your life betterZendCon
One of the biggest strengths of PHP is its "glue" power. Take any C library and with a little magic and a compiler you have a fantastic extension. These extensions hide in PECL, but few people can tell the good from the unmaintained or just plain broken. Find the best extensions for your project, learn about PECL, and find out how to become a part of the PECL developer community.
Zend_Cache: how to improve the performance of PHP applicationsEnrico Zimuel
In this talk i showed some caching techniques in PHP using the Zend_Cache class of hte Zend Framework.
I presented the functions and the flexibility of the Zend_Cache with the use of the backends: File, APC, Memcached, Zend Server Community Edition.
Abstraction, encapsulation, polymorphism, and interfaces: whether you've been programming in PHP for years or are just starting your journey, these terms can be overwhelming even on a good day. Variables, conditionals, those all make sense. But this whole object-oriented thing is way more complicated. Not only that, people that already understand it, act like it's so easy and they talk right over the simple questions and never explain the basic concepts in a way that actually makes sense. In this session, we'll take you through real-life examples of object-oriented terminology in a way that will make sense of all the mumbo jumbo and allow you to utilize object-oriented programming (OOP) immediately.
PowerUp - Automating Windows Privilege EscalationWill Schroeder
This slidedeck was given as a firetalk at @BSidesBoston '14, and covers the genesis and implementation of PowerUp, a Powershell tool for Windows privilege escalation.
This is an end-to-end introduction to PowerShell, as an interactive shell but more as a scripting language. From the perspective of a full-stack developer, this presentation covers the basics and six of the common issues that occasional users run into.
Add-On Development: EE Expects that Every Developer will do his Dutyreedmaniac
Add-Ons are what make ExpressionEngine the flexible powerhouse that it is today. Being able to write your own simple plugins or incredibly expansive modules allows you to mold ExpressionEngine to nearly any task that your website might require. However, with that power comes a great responsibility to insure that your code is not slowing down the entire site or unduly stressing the server through bad code architecture.
There are simple tools already built into ExpressionEngine and PHP that you can use to see precisely what your Add-On is doing during page processing and where it might be doing more work than is absolutely necessary. Every developer should use these to optimize their work from the very beginning of development, prior to release. This workshop will explain these tools and how you can use them effectively. It will also delve deeper into optimization techniques and tricks that will keep your code light and clean, while finding a balance between functionality and performance.
Add-On Development: EE Expects that Every Developer will do his DutyLeslie Doherty
A presentation on Add-On Development: EE Expects that Every Developer will do his Duty as given at the EECI2009 conference in Leiden by Paul Burdick, lead developer at Solspace.
This is about encouraging our audience about known good practices. let them introduced why continuous feature development is essential and why that adds value over following rigid processes.
Introducing PS>Attack: An offensive PowerShell toolkitjaredhaight
PS>Attack is designed to make it easy for Penetration Testers to incorporate PowerShell into their bag of tricks. Its a custom PowerShell console packed with some of the best offensive tools available. It's designed to be easy to use and opsec safe.
A short introduction to the more advanced python and programming in general. Intended for users that has already learned the basic coding skills but want to have a rapid tour of more in-depth capacities offered by Python and some general programming background.
Execrices are available at: https://github.com/chiffa/Intermediate_Python_programming
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on the notifications, alerts, and approval requests using Slack for Bonterra Impact Management. The solutions covered in this webinar can also be deployed for Microsoft Teams.
Interested in deploying notification automations for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
In this insightful webinar, Inflectra explores how artificial intelligence (AI) is transforming software development and testing. Discover how AI-powered tools are revolutionizing every stage of the software development lifecycle (SDLC), from design and prototyping to testing, deployment, and monitoring.
Learn about:
• The Future of Testing: How AI is shifting testing towards verification, analysis, and higher-level skills, while reducing repetitive tasks.
• Test Automation: How AI-powered test case generation, optimization, and self-healing tests are making testing more efficient and effective.
• Visual Testing: Explore the emerging capabilities of AI in visual testing and how it's set to revolutionize UI verification.
• Inflectra's AI Solutions: See demonstrations of Inflectra's cutting-edge AI tools like the ChatGPT plugin and Azure Open AI platform, designed to streamline your testing process.
Whether you're a developer, tester, or QA professional, this webinar will give you valuable insights into how AI is shaping the future of software delivery.
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
Are you looking to streamline your workflows and boost your projects’ efficiency? Do you find yourself searching for ways to add flexibility and control over your FME workflows? If so, you’re in the right place.
Join us for an insightful dive into the world of FME parameters, a critical element in optimizing workflow efficiency. This webinar marks the beginning of our three-part “Essentials of Automation” series. This first webinar is designed to equip you with the knowledge and skills to utilize parameters effectively: enhancing the flexibility, maintainability, and user control of your FME projects.
Here’s what you’ll gain:
- Essentials of FME Parameters: Understand the pivotal role of parameters, including Reader/Writer, Transformer, User, and FME Flow categories. Discover how they are the key to unlocking automation and optimization within your workflows.
- Practical Applications in FME Form: Delve into key user parameter types including choice, connections, and file URLs. Allow users to control how a workflow runs, making your workflows more reusable. Learn to import values and deliver the best user experience for your workflows while enhancing accuracy.
- Optimization Strategies in FME Flow: Explore the creation and strategic deployment of parameters in FME Flow, including the use of deployment and geometry parameters, to maximize workflow efficiency.
- Pro Tips for Success: Gain insights on parameterizing connections and leveraging new features like Conditional Visibility for clarity and simplicity.
We’ll wrap up with a glimpse into future webinars, followed by a Q&A session to address your specific questions surrounding this topic.
Don’t miss this opportunity to elevate your FME expertise and drive your projects to new heights of efficiency.
Let's dive deeper into the world of ODC! Ricardo Alves (OutSystems) will join us to tell all about the new Data Fabric. After that, Sezen de Bruijn (OutSystems) will get into the details on how to best design a sturdy architecture within ODC.
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
"Impact of front-end architecture on development cost", Viktor TurskyiFwdays
I have heard many times that architecture is not important for the front-end. Also, many times I have seen how developers implement features on the front-end just following the standard rules for a framework and think that this is enough to successfully launch the project, and then the project fails. How to prevent this and what approach to choose? I have launched dozens of complex projects and during the talk we will analyze which approaches have worked for me and which have not.
Connector Corner: Automate dynamic content and events by pushing a buttonDianaGray10
Here is something new! In our next Connector Corner webinar, we will demonstrate how you can use a single workflow to:
Create a campaign using Mailchimp with merge tags/fields
Send an interactive Slack channel message (using buttons)
Have the message received by managers and peers along with a test email for review
But there’s more:
In a second workflow supporting the same use case, you’ll see:
Your campaign sent to target colleagues for approval
If the “Approve” button is clicked, a Jira/Zendesk ticket is created for the marketing design team
But—if the “Reject” button is pushed, colleagues will be alerted via Slack message
Join us to learn more about this new, human-in-the-loop capability, brought to you by Integration Service connectors.
And...
Speakers:
Akshay Agnihotri, Product Manager
Charlie Greenberg, Host
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
JMeter webinar - integration with InfluxDB and GrafanaRTTS
Watch this recorded webinar about real-time monitoring of application performance. See how to integrate Apache JMeter, the open-source leader in performance testing, with InfluxDB, the open-source time-series database, and Grafana, the open-source analytics and visualization application.
In this webinar, we will review the benefits of leveraging InfluxDB and Grafana when executing load tests and demonstrate how these tools are used to visualize performance metrics.
Length: 30 minutes
Session Overview
-------------------------------------------
During this webinar, we will cover the following topics while demonstrating the integrations of JMeter, InfluxDB and Grafana:
- What out-of-the-box solutions are available for real-time monitoring JMeter tests?
- What are the benefits of integrating InfluxDB and Grafana into the load testing stack?
- Which features are provided by Grafana?
- Demonstration of InfluxDB and Grafana using a practice web application
To view the webinar recording, go to:
https://www.rttsweb.com/jmeter-integration-webinar
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
Professional Help for PowerShell Modules
1. Professional Help for
PowerShell Modules
June Blender
Technology Evangelist
SAPIEN Technologies, Inc.
Windows PowerShell MVP
juneb@sapien.com
@juneb_get_help
2. Tested Versions
The information and code used in this presentation were
tested with the following system attributes.
• Windows 7 Pro RTM, Windows Server 2012 R2 Ultimate,
Microsoft Windows 10 Pro 10.0.10586 (x64), Windows
Server 2012 R2 (x64), Microsoft Window 10 Home Insider
Preview 10.0.14279
• Windows PowerShell 3.0, 4.0, 5.0.10586.122,
5.0.14279.1000
Contact: June Blender, @juneb_get_help, juneb@sapien.com
3. Slides and code for all help talks:
PowerShell Help Deep Dive
(GitHub)
https://github.com/juneb/PowerShellHelpDeepDive
4. • Why write help -- for modules?
• Rules & Syntax
• Comment-based help v. XML help
• Improve the content
• Write great cmdlet help - Use checklists
• Writing great About Help
• Re-purposing Github wiki
Agenda
5. I'm too busy to write help...
... shifting the
burden
Inefficient
7. Why write help for a module?
• Likely to share it
• Like to keep it (and need to maintain it)
• More complex than a script
• More valuable
8. How is help different for a module
• Examples are intertwined
• About topic (at least one; typically more)
• Benefit from "Get-Help -Online"
9. Don't write help for your own module
• Find a writer
• Get a buddy
• Immersed in the implementation
• Need a beginner perspective focused
on the user experience
10. Benefits to the Author of Writing
Help
• It makes you a better blogger and
instructor
• Writing help as a code spec
• Examples -EQ Tests
11. "Help-Driven Development"
Help as a code specification
• Description: Describe the UI.
• Examples:
– Which parameters you need
– Recognizable parameter names
– Parameter attributes
– Parameter combinations -> parameter sets
• Expected outcomes for testing
• Inputs: Coordinate types with other cmdlets
• Outputs: Define return values
Advanced Help for Advanced Functions #PSBlogWeek
12. "Help-Driven Development"
Help Examples as a Pester test
spec
• Help examples are user contract
• Supports behavior-driven development
• Supports "white box" testing
• Test input possibilities
• Test piping between cmdlets
https://github.com/juneb/PesterTDD
16. What can go wrong with comment-based help?
• One keyword typo, all ignored
• One misplaced value, all ignored
• More than one empty line between help and
function
Troubleshooting Comment-Based Help
17. XML Help
Costs / Benefits
Benefits
• All command types (cmdlets/functions/workflows/CIM
commands)
• Updatable Help
• Multiple spoken languages
• Robust; error-safe
• Separates help from code (Github)
Costs
• PSMAML XML or Markdown file -> XML
• Help might not match code
18. What can go wrong with XML help?
• Naming XML help files
• Missing #.ExternalHelp keyword in functions
(3.0 file names)
• Comment-based help takes precedence over XML help
• # .ExternalHelp keyword takes precedence over CBH
• Command not found (Get-Help uses Get-Command)
• Invalid schema (rare; pretty forgiving)
Writing XML Help for Advanced Functions
19. Naming XML Help Files
Cmdlets, CIM commands, Workflows
• PowerShell 3.0
<CmdletDefinitionFile>-help.xml
MSFT_NetQosPolicy.cdxml-help.xml
Microsoft.PowerShell.Archive.dll-help.xml
• PowerShell 4.0 (5.0 script modules)
<ModuleName>-help.xml
Microsoft.PowerShell.ODataUtils-help.xml
Writing XML Help for Advanced Functions
20. Naming XML Help Files
Functions
• PowerShell 3.0
No filename requirements.
Requires # .ExternalHelp comment keyword
function Get-Widget {
# .ExternalHelp MyModule.psm1-help.xml
}
• PowerShell 4.0
(Works for script modules beginning in 5.0)
<ModuleName>-help.xml
Does not require #.ExternalHelp comment
Writing XML Help for Advanced Functions
21. .ExternalHelp keyword
– Associates a function with an XML help file
# .ExternalHelp <filename>-help.xml
function MyFunction {}
– 3.0: Required for functions
– 4.0: Required for script modules
Optional in manifest modules (value ignored)
– 5.0: Required only for 3.0 XML help file names
<ModuleName>.psm1-help.xml
Writing XML Help for Advanced Functions
22. Where do I put help files?
XML, About
• In language-specific subdirectory of a module
directory, e.g. en-US
• In the root of the module directory
• In the subdirectory of the module directory
(should work...)
Writing XML Help for Advanced Functions
23. It's all about the content!
PowerShell Help Deep Dive (GitHub)
24. Code comments v. help
"I have code comments. Isn't that enough?"
"I'll just put my code comments in comment-based
help."
What's different? They're opposites!
• Audience
• Perspective
• Subject
25. Easy (help) writing rules
• Use clear, simple language
– Get, not "retrieve"
– Use, not "utilize"
– Change, not "modify"
– Be careful with "remove" -- is this
permanent? Delete?
• Use active voice:
– Passive: The objects can be exported ...
– Active: You can export the objects ...
To export the objects, <do
this>.
26. Easy (help) writing rules
• Give instructions in the order that the
user needs them.
– Click Run in the Things section of the Home
tab.
– Click the Home tab and, in the Things
section, click Run.
27. Easy (help) writing rules
• Task first, then instructions:
(Start with "To")
– Use the Format parameter to format the
date.
– To format the date, use the Format
parameter.
– Using the Credential parameter will help
you to avoid Access Denied errors.
– To avoid Access Denied errors, use the
Credential parameter.
29. Reuse content
• You don't have to be original. Reusing is
efficient.
• Reuse parameter descriptions!
• Be sure to cite and credit the original author
with a link.
30. Write, use, and share checklists
• Checklists for Authoring PowerShell Help on
GitHub
http://github.com/juneb/PowerShellHelpDeepDiv
e
31. Synopsis Checklist "Elevator
speech"
Will this cmdlet solve my problem?
• Identify the technology (What kind of disk?)
• Describe the action and outcome
• Generic v. specific
(Removes all events from the session.)
Checklists for Authoring PowerShell Help
32. Use Synopsis Checklist:
Invoke-Pester (3.4.0)
• Identify the technology (What kind of disk?)
Testing PowerShell code
• Be specific about the action and outcome.
Runs *.Tests.ps1 files. Recursive.
• If it's generic, say so.
All by default; parameters filter the tests
Result:
Runs all or selected Pester tests (*.Tests.ps1) in
a directory and its subdirectories.
36. about_Topic Template : 1000-1500
words
• TOPIC Line 1, column 1
about_<Name> Line 2, column 5
Line 3 (blank)
• SHORT DESCRIPTION Line 4, column 1
<Description> Line 5, column 5
• LONG DESCRIPTION
• <SUBTOPICS>
• EXAMPLES
• NOTE:
• TROUBLESHOOTING NOTE: #Known bugs
• SEE ALSO #Add URL of your Github wiki
• KEYWORDS
* UTF-8 encoding
39. About Help Checklist
"It tells the story of your module." -- Chrissy
LeMaire
• What problem does the module solve?
• How do I use the cmdlets together to solve it?
• Meta-cmdlet help
• In what order do I use the commands?
• Is one a prerequisite?
• Is one designed to pipe to another?
• Examples+++
41. Short Description
• 1-2 paragraphs that describe the concept.
• "Will this module solve my problem?"
• In which domain or technology does it work?
• System requirements
• If the topic is long, list the subtitles in this
section, like a table of contents.
43. Long Description
Start with an outline
• Brainstorm your subtopics.
• Arrange subtopics in an order useful to the
reader.
– Simple to complex
– Basic to advanced
– Required order: Get/Set
• Write a sentence or paragraph for every
subtopic.
• Reorder subtopics. Best order for the reader.
• Have a friend read it.
44. Long description: Typical ordered
outline
• Purpose / Solution / Task
• Basic example
• Cmdlet/Function list
• How-to sections
(New/Get/Set/Save)
• Examples (try it)
• Background info
46. about_Pester : Long description
outline
• Problem statement: Unit/integration testing
• Language basics, DSL (describe, it, should
be)
• How-to: Create, Write, Run
• How to save; default output is Write-Host
• Example. Try it.
• Real-world examples (from original file)
47. about_Pester : Long description final
• What does Pester test (concepts)
• The Pester language (basics + example)
• How to Create a Pester Test
• How to Run a Pester Test
• Example
• Pester Test Output (Write-Host v. custom
object)
• Real-world examples (Pester's own tests)
48. Can I use my GitHub wiki?
YES!!
It's online help!
49. Supporting "Get-Help -Online"
PS C:>Get-Help Get-Widget -Online
Not for About help
Supporting Online Help (MSDN)
Two ways to specify an online help URI for
a command:
-- First related link in help topic (preceden
-- HelpUri attribute
50. Supporting Online Help
First related link in help topic
-- Value must begin with 'http' or 'https'
Supporting Online Help (MSDN)
51. Supporting Online Help
First related link in help topic
-- Value must begin with 'http' or 'https'
Supporting Online Help (MSDN)
53. Supporting Online Help
Function: HelpUri attribute of CmdletBinding
C# Cmdlets: HelpUri attribute of Cmdlet class
CIM commands: HelpUri attribute of CmdletMetadata ele
Supporting Online Help (MSDN)
54. Online Help : About_help is not
supported
SEE ALSO
Pester Wiki (it's excellent!)
Supporting Online Help (MSDN)
55. Help for DSC, Classes : About topics
about_WineGlass.help.txt
56. References
Troubleshooting Comment-Based Help
Writing XML Help for Advanced Functions
Naming Help Files (PS 3.0 only; not updated for 4.0+)
Checklists for Authoring PowerShell Help
How to Write Great Help Examples
Supporting Online Help (MSDN)
Slides and code for all help talks: PowerShell Help Deep Dive (GitHub)
Use help as a code spec: Advanced Help for Advanced Functions
Use help examples as a test spec: https://github.com/juneb/PesterTDD
57. Professional Help for
PowerShell Modules
June Blender
Technology Evangelist
SAPIEN Technologies, Inc.
Windows PowerShell MVP
juneb@sapien.com
@juneb_get_help
Editor's Notes
Direct positive correlation
Practice in explaining concepts and writing instructions; People who write good help are good instructors; People who are good instructors write good help
Force you to confront issues that you'd rather forget; but that users will encounter
What if you hedge your bets and use both.
In a script module with correctly-formatted .EXTERNALHELP, an error in comment-based help -> autogenerated help
What if you hedge your bets and use both.
In a script module with correctly-formatted .EXTERNALHELP, an error in comment-based help -> autogenerated help
If the credential changes, an error occurs.If a user name is entered, a password prompt is displayed.
PowerForensics: Invoke-ForensicDD, Get-ForensicBootSector (master boot record v. guid partition table)