Pipeworks - Pipeworks Quickstart

[1 of 4]

PowerShell Pipeworks is a framework for building sites and services with Windows PowerShell.

It allows you to build any type of web application in PowerShell.

This walkthru shows you how to make a simple page, create some server side PowerShell, create a command service, and create a module service.

Here is a simple page built in PowerShell Pipeworks.


New-WebPage -Title 'Napier Industries' -Css @{            
    body=@{            
        'font-family' = 'Garamond'            
    }            
} -Description 'Napier Industries: Where Fun Happens' -PageContent {                        
    # Header            
    "<h1>Napier Industries</h1>"                        
                            
            
    # Sidebar            
    "<div style='float:right'>"                        
    'Products', 'Services', 'About' | Write-Link                        
    "</div>"                        
                
    # Slogan            
    "
    <h2>
    Napier Industries:  Where Fun Happens
    </h2>
    "                                        
                        
    # Bottom Bar            
    "<div style='position:absolute;float:bottom'>"                        
    'Legal', 'Jobs', 'Press', 'Financial' | Write-Link -Horizontal                        
    "</div>"                        
}   | Set-Content C:\inetpub\wwwroot\napier.html            
            
Start-Process http://localhost/napier.html            
            

[2 of 4]

Here is a simple example of mixed HTML and PowerShell.

This makes it a snap to do server side code in PowerShell.


ConvertFrom-InlinePowerShell -PowerShellAndHtml @'
<head>
<title>Getting Started with PowerShell: Common Verbs</title>
</head>
<body>
<h1>Getting Started With PowerShell</h1>
<p>PowerShell is big on standard naming. 
Every command should be named with a standard verb and a custom noun. 
These are all of the verbs in the 'Common' group.</p>
<h2>Common Verbs</h2>
<|
Get-Verb | Where-Object {$_.Group -eq 'Common' }
|>
</body>
'@ |            
    Set-Content C:\inetpub\wwwroot\PowerShellCommonVerbs.aspx            
                
Start-Process http://localhost/PowerShellCommonVerbs.aspx            

[3 of 4]

You can can easily create web services to interact with any cmdlet.

This simple example creates a web service to write the Write-ScriptHTML command built into Pipeworks

Import-Module Pipeworks                        
ConvertTo-CommandService -OutputDirectory c:\inetpub\wwwroot\Write-ScriptHTML -Command (Get-Command Write-ScriptHtml) -ParameterAlias @{script='Text';s='Text'} -RunOnline -Force -HideParameter Palette, End, Start             
            
Start-Process "http://localhost/Write-ScriptHTML/?s=Import-Module Pipeworks"            

[4 of 4]

You can bundle command services, server side pages, and module metadata together in module services.

This recreates the Pipeworks web site.


Import-Module Pipeworks            
ConvertTo-ModuleService -Name Pipeworks -AllowDownload -Force            
            
Start-Process http://localhost/Pipeworks

ShowUI - Fun With ShowUI Videos

[1 of 1]


<h1> Building a quick Twitter client in ShowUI</h1>            
<h1>.Video http://player.vimeo.com/video/25626751</h1>            
$null            
<h1> Writing a Drag and Drop Video Player in 12 lines of script</h1>            
<h1>.Video http://www.youtube.com/watch?v=JcLVbNnAm9A</h1>            
$null

Pipeworks - Building Basic Websites With PowerShell Pipeworks

[1 of 6]

Markup gets arcane. PowerShell Pipeworks provides a few commands to make it easy to write web pages in PowerShell A few to know are: - New-WebPage - New-Region - Write-Link Using these commands, it's possible to create full web pages while barely touching HTML Let's start with New-WebPage. New-WebPage creates the scaffolding for modern websites.


New-WebPage -Title 'My First Pipeworks Page' -PageBody @'
Hello World
'@ |             
    Set-Content C:\Inetpub\wwwroot\HelloWorldPipeworks.html            
                
Start-Process http://localhost/HelloWorldPipeworks.html            

[2 of 6]

We can customize the page with CSS

New-WebPage -Title 'Pipeworks Hello World' -Css @{            
    "Body" = @{            
        "font" = "20pt/.75em Helvetica"            
    }            
} -PageBody @'
    PowerShell|<br/>
    Pipeworks    
'@ |            
    Set-Content C:\Inetpub\wwwroot\HelloWorldAndSomeCSS.html            
                
Start-Process http://localhost/HelloWorldAndSomeCSS.html            

[3 of 6]

You can also easily add meta tags to help search engine optimization

New-WebPage -Title 'Pipeworks Hello World' -Description 'A Quick Page Built with Pipeworks' -Keyword 'PowerShell Pipeworks' -Css @{            
    "Body" = @{            
        "font" = "20pt/.75em Helvetica"            
    }            
} -PageBody @'
    PowerShell|<br/>
    Pipeworks    
'@ |            
    Set-Content C:\Inetpub\wwwroot\HelloWorldAndSomeSEO.html            
            
Start-Process http://localhost/HelloWorldAndSomeSeo.html            

[4 of 6]

New-WebPage is handy, but you can really demystify % based layout with New-Region New-Region creates a rich web region in a page.


New-WebPage -Title 'Page with Regions' -Description 'A Quick Page Built with New-Region' -Keyword 'PowerShell Pipeworks' -CSS @{            
    "Body" = @{            
        "font" = "20pt/.75em Helvetica"            
    }            
    "#Main" = @{            
        "padding" = "7px"            
    }            
    "#Sidebar" = @{            
        "font" = "12pt/1em Helvetica"            
        "padding" = "3px"            
    }            
} -PageBody (            
    New-Region -LeftMargin 10 -RightMargin 26 -Container Main -Content "Main" -IsStaticRegion            
), (            
    New-Region -LeftMargin 76 -RightMargin 10 -Container Sidebar -Content "Sidebar" -IsStaticRegion            
) |             
    Set-content C:\Inetpub\wwwroot\AQuickPageWithNewRegion.html            
            
Start-Process http://localhost/AQuickPageWithNewRegion.html            
            

[5 of 6]

You can easily make a region contain many layers of content by using the layer parameter

New-WebPage -Title 'Page with Regions' -Description 'A Quick Page Built with New-Region' -Keyword 'PowerShell Pipeworks' -CSS @{            
    "Body" = @{            
        "font" = "20pt Helvetica"            
    }            
    "#Main" = @{            
        "padding" = "7px"            
    }            
    "#Sidebar" = @{            
        "font" = "12pt/1em Helvetica"            
        "padding" = "3px"            
    }            
} -PageBody (            
    New-Region -LeftMargin 10 -RightMargin 26 -Container Main -Layer @{            
        'Getting Started' = 'There is no Try, Only Do'            
        'About Us' = 'More About Us'            
    }             
), (            
    New-Region -LeftMargin 76 -RightMargin 10 -Container Sidebar -Content "Sidebar" -IsStaticRegion            
) |             
    Set-content C:\Inetpub\wwwroot\AQuickPageWithMultipleRegions.html            
                    
Start-Process http://localhost/AQuickPageWithMultipleRegions.html            

[6 of 6]

Write-Link makes it easy to create weblinks of all shapes and sizes, including links for social media.


New-WebPage -Title 'Page with Social Media Links' -Description 'A Quick Page some Social Media Links' -Keyword 'PowerShell Pipeworks', 'New-Region', 'Write-Link' -CSS @{            
    "Body" = @{            
        "font" = "20pt Helvetica"            
    }            
    "#Main" = @{            
        "padding" = "7px"            
    }            
    "#Sidebar" = @{            
        "font" = "12pt/1em Helvetica"            
        "padding" = "3px"            
    }            
    "#BottomBar" = @{            
        "font" = "10pt Helvetica"            
        "padding" = "3px"            
    }            
} -PageBody (            
    New-Region -LeftMargin 10 -RightMargin 26 -BottomMargin 20 -Container Main -Layer @{            
        'Getting Started' = 'There is no Try, Only Do'            
        'About Us' = 'More About Us'            
    }             
), (            
    New-Region -LeftMargin 76 -RightMargin 10 -BottomMargin 20 -Container Sidebar -Content (            
        "Sidebar"                    
    ) -IsStaticRegion            
), (            
    New-Region -IsStaticRegion -Container BottomBar -Border 0 -TopMargin 85 -BottomMargin 95 -Content @(            
        "<p style='text-align:center'>"            
        Write-Link 'AboutUs', 'ContactUs', 'Directions', 'Jobs' 'About Us', 'Contact Us', 'Directions', 'Jobs' -Horizontal             
        '<br/>'            
        Write-Link "facebook:share", "twitter:tweet", "google:+1" -Horizontal                    
        "</p>"            
    )                
) |             
    Set-content C:\Inetpub\wwwroot\SidebarAndBottomBar.html            
                    
Start-Process http://localhost/SidebarAndBottomBar.html

AutoBrowse - Simple Automated Browsing With AutoBrowse

[1 of 1]


<h1> One simple pipeline is all it takes to open up bing, search, and close a browser</h1>            
Open-Browser -Url http://bing.com/ -Visible |             
<pre>            
Set-BrowserControl -Name q -Value Start-Automating |            
Invoke-BrowserControl -Name go -Click |             
Close-Browser            
</pre>

Pipeworks - Making Tables With Out-HTML

[1 of 1]


<h1> The example below renders a quick 'Person' object with Out-HTML.</h1>            
New-Object PSObject |            
<pre>            
Add-Member NoteProperty FirstName John -PassThru |            
Add-Member NoteProperty LastName Smith -PassThru |            
Add-Member NoteProperty Addresss '1234 Nowhere St' -PassThru |            
Out-HTML               
</pre>            
<h1> You can also run existing commands in PowerShell and use the Select-Object command to pick and choose properties</h1>            
Get-Date  |            
<pre>            
Select-Object DayOfWeek, Month, Day, Year |            
Out-HTML            
</pre>            
<h1> Select-Object can also caculate properties on the fly:</h1>            
Get-Command -Module Pipeworks |             
<pre>            
Select-Object Name,            
@{            
Name='Verb';            
Expression={            
($_.Name -split "-")[0]            
}            
}, @{            
Name='Noun';            
Expression={            
($_.Name -split "-")[1]            
}            
} |            
Out-Html            
            
</pre>

ShowUI - Advanced ShowUI Videos

[1 of 1]


<h1> Show-CPU</h1>            
<h1>.Video http://www.youtube.com/watch?v=TmpeeuL6wAY</h1>            
$null            
<h1> Show-Clock</h1>            
<h1>.Video http://www.youtube.com/watch?v=Hqn-b2HMgSM</h1>            
$null

PingMe - Getting Started With PingMe

[1 of 1]


<h1> PingMe is a PowerShell module to ping things.</h1>            
<h1> It's great for simple web monitoring, DNS record checks, or good old fashioned 'echo'</h1>
<h1> You start by adding pings:</h1>
Add-Ping "http://startautomating.com"
<h1> You can pipe in a lot of things to ping</h1>
"http://start-automating.com",
<pre>
"http://blog.start-automating.com",
"http://ezout.start-automating.com",
"http://modules.start-automating.com",    
"http://tools.start-automating.com" |
Add-Ping
</pre>
<h1> To see what you've registered, run Get-Ping</h1>            
Get-Ping            
<h1> To see the results, run:</h1>            
Get-Ping -Resolve            
<h1> Anything that works appears in green, and anything that fails appears in red, with whatever failure information came back</h1>            
<h1> You can keep watching the results, by using</h1>            
Watch-Ping -Continous

Pipeworks - New-Region And JQueryUI

[1 of 10]

New-Region makes it simple to create sites that use JQueryUI to add a little extra kick.

New-Region takes a simple table in PowerShell containing a layer name and content.

By using several different switches, you can customize how this is laid out in JQueryUI.


New-Region -LayerId SimpleTabs -Layer @{            
    "-AsTab"= "If you use -AsTab, the Region will be created as a tab"            
    "Makes Tabs Easy" = "Did you know you can add hashtables together in PowerShell?  This can make really cool layout really simple."            
    "Tabs Will Be Alphabetized" = "By Default, the Layers will be alphabetized"            
    "Unless You Say So" = "But you can specify your own layer order with -Order"            
} -AsTab            

[2 of 10]

-AsAccordian will create a JQueryUI accordian instead

New-Region -LayerId SimpleAccordian -Layer @{            
    "-AsAccordian"= "If you use -AsAccordian, the Region will be created as an accordian"            
    "Makes Accordians Easy" = "Did you know you can add hashtables together in PowerShell?  This can make really cool layout really simple."            
    "Tabs Will Be Alphabetized" = "By Default, the Layers will be alphabetized"            
    "Unless You Say So" = "But you can specify your own layer order with -Order"            
} -AsAccordian            

[3 of 10]

-AsPopup will create Popups.


New-Region -LayerId SimplePopup -Layer @{            
    "-AsPopup"= "If you use -AsPopup, the Region will be created as a popup.<br/>
Please, remember that most users really hate popups, but, in case you need it, here it is."            
} -AsPopup            

[4 of 10]

-AsPopout might be a better alternative. It pops the content out directly below a wide button.


New-Region -LayerId SimplePopout -Layer @{            
    "-AsPopout"= "If you use -AsPopout, then a wide button will toggle if the region is displayed."            
} -AsPopout            

[5 of 10]

-AsPopdown will create a small button that pops out content directly below.

If multiple items are expanded, they will be stacked.


New-Region -LayerId SimplePopdown -Layer @{            
    "-AsPopdown"= "If you use -AsPopdown, then a button will toggle if the region is displayed, and all displayed regions will be stacked"            
    "A Second Region"= "Here's a second region, so you can see how multiple popdowns expand"            
} -AsPopdown            

[6 of 10]

-AsWidget will create a widget with a simple header.


New-Region -LayerId SimpleWidget -Layer @{            
    "-AsWidget"= "Makes simple JQueryUI Widgets."                
} -AsWidget            

[7 of 10]

You can also make a region resizable

New-Region -LayerId SimpleResizable -Style @{            
    width='300px';            
    height='300px'            
} -layer @{            
    "-AsResizable"= "-AsResizable makes resizable items."            
} -asresizable            

[8 of 10]

By using the -Content parameter, the layer can avoid having a header.


New-Region -LayerId SimpleResizableWithContent -Style @{            
    width='300px';            
    height='300px'            
} -Content "-AsResizable does not need a layer name." -asresizable            

[9 of 10]

-AsDraggable will let you create drag and drop widgets

New-Region -LayerId SimpleResizableWithContent -Style @{            
    width='300px';            
    height='300px'            
} -Layer @{"Drag Me"= "-AsDraggable lets you make draggable widgets"} -asdraggable            

[10 of 10]

You can combine -AsResizable and -AsDraggable for resizable, draggable widget

New-Region -LayerId SimpleResizableWithContent -Style @{            
    width='300px';            
    height='300px'            
} -Layer @{"Drag Me and Resize Me"= "-AsDraggable and -AsResizable are not exclusive"} -asdraggable -asresizable

EZOut - Improving How Xml Looks In PowerShell

[1 of 5]

Another view we can improve is the way that XML is rendered in PowerShell

[xml]"<a an='anattribute'><b d='attribute'><c/></b></a>"                    

[2 of 5]

It's not very intuitive.

I cannot really only see the element I am looking at, instead of a chunk of data Create a quick view for any XML element.

Piping it into Out-FormatData will make one or more format views into a full format XML file Piping the output of that into Add-FormatData will create a temporary module to hold the formatting data There's also a Remove-FormatData and

Write-FormatView -TypeName "System.Xml.XmlNode" -Wrap -Property "Xml" -VirtualProperty @{            
    "Xml" = {             
        $strWrite = New-Object IO.StringWriter            
        ([xml]$_.Outerxml).Save($strWrite)            
        "$strWrite"            
    }            
} |             
    Out-FormatData |            
    Add-FormatData            

[3 of 5]

Now let's take a look at how the xml renders

[xml]"<a an='anattribute'><b d='attribute'><c /></b></a>"            

[4 of 5]

In case we want to go back to the original formatter, we can remove the formatter without giving the formatter a name, the

Remove-FormatData -Name "System.Xml.XmlNode"            

[5 of 5]

And we're back to the original formatting

[xml]"<a an='anattribute'><b d='attribute'><c/></b></a>"

Pipeworks - New-WebPage Basics

[1 of 5]

New-WebPage helps make the basic parts of a webpage

New-WebPage -Title "My First Pipeworks Page" -Keyword "PowerShell", "Pipeworks" -Description "My First Pipeworks Page"            

[2 of 5]

New-WebPage can also provide a hashtable for CSS

New-WebPage -Title 'Pipeworks Hello World' -Css @{            
    "Body" = @{            
        "font" = "20pt/.75em Helvetica"            
    }            
} -PageBody @'
    PowerShell|<br/>
    Pipeworks    
'@            

[3 of 5]

Or link to an RSS feed

New-WebPage -Title 'Pipeworks Hello World' -Rss @{            
    "Pipeworks Blog" = "Blog.xml"            
} -PageBody @'
    PowerShell|<br/>
    Pipeworks    
'@            

[4 of 5]

It's also easy to use New-WebPage to construct redirection pages

New-WebPage -Title 'Simple Redirect' -RedirectTo 'OtherPage.html'                  

[5 of 5]

Or add analytics trackers:

New-WebPage -Title 'My Web Page' -AnalyticsID 'UA-24591838-13'            
            

Pipeworks - PowerShell Pipeworks Quickstart Video

[1 of 1]


<h1>.Video http://www.youtube.com/watch?v=xPRC3EDR_GU</h1>            
$null

Pipeworks - New Webpage and JQuery

[1 of 3]

New-WebPage can make it simple to work with Javascript libraries like jQuery.

-UseJQuery will include the latest JQuery.


New-WebPage -UseJQuery -Title JQueryExample -PageBody @'
    <a href="http://jquery.com/">jQuery</a>
    <script>
        $(document).ready(function(){
            $("a").click(function(event){
            alert("As you can see, the link no longer took you to jquery.com");
            event.preventDefault();
        });
        });
    </script>
'@                  

[2 of 3]

-UseJQueryUI will include JQueryUI.

You can then use New-Region to automatically lay things out in tabs, accordians, and other controls.


New-Region -Layer @{            
    "About Us" = "Here's Some Information About Us"            
    "Contact Us" = "Visit our offices, or call our phone number"                
} |             
New-WebPage -UseJQueryUI -Title 'JQueryUI Example'            

[3 of 3]

The -JQueryUITheme parameter lets you change the JQueryUI theme. The default theme is Redmond

New-Region -Layer @{            
    "About Us" = "Here's Some Information About Us"            
    "Contact Us" = "Visit our offices, or call our phone number"                
} |             
New-WebPage -UseJQueryUI -JQueryUITheme -Title 'JQueryUI Theme Example'

Pipeworks - Pipeworks Pages Screencasts

[1 of 1]


<h1>Write-Link</h1>            
<h1>.Video http://www.youtube.com/watch?v=5Ns2i9XsZak</h1>            
$null            
             
<h1>Out-HTML</h1>            
<h1>.Video http://www.youtube.com/watch?v=0SvlBy2BcB8</h1>            
$null

Pipeworks - Converting Scripts Into Services

[1 of 15]

Pipeworks makes it easy to convert scripts into services.

To do it, you can use the command:

Get-Command ConvertTo-CommandService            

[2 of 15]

ConvertTo-CommandService takes PowerShell commands and converts them into web services.

By default, it creates a discoverability portal, which tells you information about the command.

We'll do a quick demo with a New-Password function:

function New-Password {            
    <#
    .Synopsis
        Generates a new password
    .Description
        Generates a new password in one line of somewhat creative PowerShell script.  
        Pipes all available characters into Get-Random, and then joins those characters
    .Example
        New-Password
    .Example
        New-Password -Length 16
    
    #>            
    param(            
    # The length of the password            
    #|Default 8            
    [int]$length=8            
    )                      
                
    process {            
        ([char[]](33..126) | Get-Random -Count $length) -join ''            
    }                              
}            

[3 of 15]

To convert a script block that declares a function into a web service, simply run

ConvertTo-CommandService -Command (Get-Command New-Password) -Force            

[4 of 15]

Assuming you have instaled IIS and ASP.NET, this next step will create a New-Password page and then navigate it to it with IIS

ConvertTo-CommandService -Command (Get-Command New-Password) -OutputDirectory C:\inetpub\wwwroot\New-Password-Help -Force            
            
Start-Process "http://localhost/New-Password-Help"            

[5 of 15]

To make it a real service, we can use the -RunOnline switch

ConvertTo-CommandService -Command (Get-Command New-Password) -RunOnline -OutputDirectory C:\inetpub\wwwroot\New-Password-One -Force            
                
                
Start-Process "http://localhost/New-Password-One"            

[6 of 15]

And that's it. One web service surrounding the New-Password function, with one easy PowerShell command.

We can customize the service as we go.

For instance, New-Password doesn't actually need parameters, and so we can choose to have it run without input

ConvertTo-CommandService -Command (Get-Command New-Password) -RunOnline -RunWithoutInput -OutputDirectory C:\inetpub\wwwroot\New-Password-NoInput             
                   
Start-Process "http://localhost/New-Password-NoInput/"            

[7 of 15]

If you want to track who is using the service, use the -AnalyticsId parameter

Get-Help ConvertTo-CommandService -Parameter AnalyticsId            

[8 of 15]

If you want to make some advertising money off of the service, use the -AdSenseId and -AdSlot parameters

Get-Help ConvertTo-CommandService -Parameter Ad*            

[9 of 15]

It's possible to do allow someone to download the command

ConvertTo-CommandService -Command (Get-Command New-Password) -RunOnline -RunWithoutInput -AllowDownload -OutputDirectory C:\inetpub\wwwroot\New-Password-Downloadable             
                
Start-Process http://localhost/New-Password-Downloadable/            

[10 of 15]

And, for security and other reasons, it's possible to hide parameters

ConvertTo-CommandService -Command (Get-Command New-Password) -RunOnline -RunWithoutInput -AllowDownload -Force -OutputDirectory c:\inetpub\wwwroot\New-Password-Final            
                
Start-Process http://localhost/New-Password-Final/            

[11 of 15]

Each command you create is both a web site and a service. Used from the browser, it's a web site. Used from another application, it's a service.

Just like all commands in PowerShell have parameters like -ErrorAction and -ErrorVariable, all of the services have some parameters too.

Any command you can download has the -Download parameter

Start-Process http://localhost/New-Password-Final/?-Download            

[12 of 15]

Commands tell you a lot about themselves by using the -GetMetaData parameter

Start-Process http://localhost/New-Password-Final/?-GetMetaData            

[13 of 15]

You can also use the parameters of a command in a uniform way

Start-Process http://localhost/New-Password-Final/?New-Password_Length=16            

[14 of 15]

You can request output as XML

Start-Process "http://localhost/New-Password-Final/?New-Password_Length=16&-AsXml=true"            

[15 of 15]

Or request bare output

Start-Process "http://localhost/New-Password-Final/?New-Password_Length=16&-Bare=true"            
             

The Four Types of Strings

[1 of 1]


<h1> PowerShell has a lot of built in capabilities for working with strings.</h1>            
<h1> You can declare a string on of four forms:</h1>            
<h1> Singly quoted strings...</h1>            
'They ignore $variables and $($expressions) inside of them'            
<h1> Doubly quoted strings...</h1>            
"They can include $variables and $($subexpressions | Where-Object { 'You Do Stuff' -eq $true })"            
<h1> Single Quoted here documents</h1>            
@'
Which must start as the last thing on a line and end as the first thing on a line, but
may include single quotes without escaping '
'@            
<h1> Doubly quoted here documents</h1>            
@"
Which can include $variables and $($subexpressions), and can include double quotes without escaping them "
"@

System.Management.Automation.ParameterBindingValidationException: Cannot bind argument to parameter 'WalkThru' because it is null. at System.Management.Automation.ParameterBinderBase.ValidateNullOrEmptyArgument(CommandParameterInternal parameter, CompiledCommandParameter parameterMetadata, Type argumentType, Object parameterValue, Boolean recurseIntoCollections) at System.Management.Automation.ParameterBinderBase.BindParameter(CommandParameterInternal parameter, CompiledCommandParameter parameterMetadata, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameter(CommandParameterInternal argument, MergedCompiledCommandParameter parameter, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameter(UInt32 parameterSets, CommandParameterInternal argument, MergedCompiledCommandParameter parameter, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameters(UInt32 parameterSets, Collection`1 arguments, CommandMetadata commandMetadata) at System.Management.Automation.CmdletParameterBinderController.BindCommandLineParametersNoValidation(Collection`1 arguments) at System.Management.Automation.CmdletParameterBinderController.BindCommandLineParameters(Collection`1 arguments) at System.Management.Automation.CommandProcessor.BindCommandLineParameters(CommandParameterInternal[] parameters) at System.Management.Automation.CommandProcessor.Prepare(CommandParameterInternal[] parameters) at System.Management.Automation.CommandProcessorBase.DoPrepare(CommandParameterInternal[] parameters) at System.Management.Automation.Internal.PipelineProcessor.Start(Boolean incomingStream) at System.Management.Automation.Internal.PipelineProcessor.SynchronousExecuteEnumerate(Object input, Hashtable errorResults, Boolean enumerate) At line:7 char:45 + $Name = Write-WalkthruHTML -WalkThru <<<< $walkthru -StepByStep
System.Management.Automation.ParameterBindingValidationException: Cannot bind argument to parameter 'WalkThru' because it is null. at System.Management.Automation.ParameterBinderBase.ValidateNullOrEmptyArgument(CommandParameterInternal parameter, CompiledCommandParameter parameterMetadata, Type argumentType, Object parameterValue, Boolean recurseIntoCollections) at System.Management.Automation.ParameterBinderBase.BindParameter(CommandParameterInternal parameter, CompiledCommandParameter parameterMetadata, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameter(CommandParameterInternal argument, MergedCompiledCommandParameter parameter, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameter(UInt32 parameterSets, CommandParameterInternal argument, MergedCompiledCommandParameter parameter, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameters(UInt32 parameterSets, Collection`1 arguments, CommandMetadata commandMetadata) at System.Management.Automation.CmdletParameterBinderController.BindCommandLineParametersNoValidation(Collection`1 arguments) at System.Management.Automation.CmdletParameterBinderController.BindCommandLineParameters(Collection`1 arguments) at System.Management.Automation.CommandProcessor.BindCommandLineParameters(CommandParameterInternal[] parameters) at System.Management.Automation.CommandProcessor.Prepare(CommandParameterInternal[] parameters) at System.Management.Automation.CommandProcessorBase.DoPrepare(CommandParameterInternal[] parameters) at System.Management.Automation.Internal.PipelineProcessor.Start(Boolean incomingStream) at System.Management.Automation.Internal.PipelineProcessor.SynchronousExecuteEnumerate(Object input, Hashtable errorResults, Boolean enumerate) At line:7 char:45 + $Name = Write-WalkthruHTML -WalkThru <<<< $walkthru -StepByStep
System.Management.Automation.ParameterBindingValidationException: Cannot bind argument to parameter 'WalkThru' because it is null. at System.Management.Automation.ParameterBinderBase.ValidateNullOrEmptyArgument(CommandParameterInternal parameter, CompiledCommandParameter parameterMetadata, Type argumentType, Object parameterValue, Boolean recurseIntoCollections) at System.Management.Automation.ParameterBinderBase.BindParameter(CommandParameterInternal parameter, CompiledCommandParameter parameterMetadata, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameter(CommandParameterInternal argument, MergedCompiledCommandParameter parameter, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameter(UInt32 parameterSets, CommandParameterInternal argument, MergedCompiledCommandParameter parameter, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameters(UInt32 parameterSets, Collection`1 arguments, CommandMetadata commandMetadata) at System.Management.Automation.CmdletParameterBinderController.BindCommandLineParametersNoValidation(Collection`1 arguments) at System.Management.Automation.CmdletParameterBinderController.BindCommandLineParameters(Collection`1 arguments) at System.Management.Automation.CommandProcessor.BindCommandLineParameters(CommandParameterInternal[] parameters) at System.Management.Automation.CommandProcessor.Prepare(CommandParameterInternal[] parameters) at System.Management.Automation.CommandProcessorBase.DoPrepare(CommandParameterInternal[] parameters) at System.Management.Automation.Internal.PipelineProcessor.Start(Boolean incomingStream) at System.Management.Automation.Internal.PipelineProcessor.SynchronousExecuteEnumerate(Object input, Hashtable errorResults, Boolean enumerate) At line:7 char:45 + $Name = Write-WalkthruHTML -WalkThru <<<< $walkthru -StepByStep
System.Management.Automation.ParameterBindingValidationException: Cannot bind argument to parameter 'WalkThru' because it is null. at System.Management.Automation.ParameterBinderBase.ValidateNullOrEmptyArgument(CommandParameterInternal parameter, CompiledCommandParameter parameterMetadata, Type argumentType, Object parameterValue, Boolean recurseIntoCollections) at System.Management.Automation.ParameterBinderBase.BindParameter(CommandParameterInternal parameter, CompiledCommandParameter parameterMetadata, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameter(CommandParameterInternal argument, MergedCompiledCommandParameter parameter, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameter(UInt32 parameterSets, CommandParameterInternal argument, MergedCompiledCommandParameter parameter, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameters(UInt32 parameterSets, Collection`1 arguments, CommandMetadata commandMetadata) at System.Management.Automation.CmdletParameterBinderController.BindCommandLineParametersNoValidation(Collection`1 arguments) at System.Management.Automation.CmdletParameterBinderController.BindCommandLineParameters(Collection`1 arguments) at System.Management.Automation.CommandProcessor.BindCommandLineParameters(CommandParameterInternal[] parameters) at System.Management.Automation.CommandProcessor.Prepare(CommandParameterInternal[] parameters) at System.Management.Automation.CommandProcessorBase.DoPrepare(CommandParameterInternal[] parameters) at System.Management.Automation.Internal.PipelineProcessor.Start(Boolean incomingStream) at System.Management.Automation.Internal.PipelineProcessor.SynchronousExecuteEnumerate(Object input, Hashtable errorResults, Boolean enumerate) At line:7 char:45 + $Name = Write-WalkthruHTML -WalkThru <<<< $walkthru -StepByStep
System.Management.Automation.ParameterBindingValidationException: Cannot bind argument to parameter 'WalkThru' because it is null. at System.Management.Automation.ParameterBinderBase.ValidateNullOrEmptyArgument(CommandParameterInternal parameter, CompiledCommandParameter parameterMetadata, Type argumentType, Object parameterValue, Boolean recurseIntoCollections) at System.Management.Automation.ParameterBinderBase.BindParameter(CommandParameterInternal parameter, CompiledCommandParameter parameterMetadata, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameter(CommandParameterInternal argument, MergedCompiledCommandParameter parameter, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameter(UInt32 parameterSets, CommandParameterInternal argument, MergedCompiledCommandParameter parameter, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameters(UInt32 parameterSets, Collection`1 arguments, CommandMetadata commandMetadata) at System.Management.Automation.CmdletParameterBinderController.BindCommandLineParametersNoValidation(Collection`1 arguments) at System.Management.Automation.CmdletParameterBinderController.BindCommandLineParameters(Collection`1 arguments) at System.Management.Automation.CommandProcessor.BindCommandLineParameters(CommandParameterInternal[] parameters) at System.Management.Automation.CommandProcessor.Prepare(CommandParameterInternal[] parameters) at System.Management.Automation.CommandProcessorBase.DoPrepare(CommandParameterInternal[] parameters) at System.Management.Automation.Internal.PipelineProcessor.Start(Boolean incomingStream) at System.Management.Automation.Internal.PipelineProcessor.SynchronousExecuteEnumerate(Object input, Hashtable errorResults, Boolean enumerate) At line:7 char:45 + $Name = Write-WalkthruHTML -WalkThru <<<< $walkthru -StepByStep
System.Management.Automation.ParameterBindingValidationException: Cannot bind argument to parameter 'WalkThru' because it is null. at System.Management.Automation.ParameterBinderBase.ValidateNullOrEmptyArgument(CommandParameterInternal parameter, CompiledCommandParameter parameterMetadata, Type argumentType, Object parameterValue, Boolean recurseIntoCollections) at System.Management.Automation.ParameterBinderBase.BindParameter(CommandParameterInternal parameter, CompiledCommandParameter parameterMetadata, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameter(CommandParameterInternal argument, MergedCompiledCommandParameter parameter, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameter(UInt32 parameterSets, CommandParameterInternal argument, MergedCompiledCommandParameter parameter, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameters(UInt32 parameterSets, Collection`1 arguments, CommandMetadata commandMetadata) at System.Management.Automation.CmdletParameterBinderController.BindCommandLineParametersNoValidation(Collection`1 arguments) at System.Management.Automation.CmdletParameterBinderController.BindCommandLineParameters(Collection`1 arguments) at System.Management.Automation.CommandProcessor.BindCommandLineParameters(CommandParameterInternal[] parameters) at System.Management.Automation.CommandProcessor.Prepare(CommandParameterInternal[] parameters) at System.Management.Automation.CommandProcessorBase.DoPrepare(CommandParameterInternal[] parameters) at System.Management.Automation.Internal.PipelineProcessor.Start(Boolean incomingStream) at System.Management.Automation.Internal.PipelineProcessor.SynchronousExecuteEnumerate(Object input, Hashtable errorResults, Boolean enumerate) At line:7 char:45 + $Name = Write-WalkthruHTML -WalkThru <<<< $walkthru -StepByStep
System.Management.Automation.ParameterBindingValidationException: Cannot bind argument to parameter 'WalkThru' because it is null. at System.Management.Automation.ParameterBinderBase.ValidateNullOrEmptyArgument(CommandParameterInternal parameter, CompiledCommandParameter parameterMetadata, Type argumentType, Object parameterValue, Boolean recurseIntoCollections) at System.Management.Automation.ParameterBinderBase.BindParameter(CommandParameterInternal parameter, CompiledCommandParameter parameterMetadata, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameter(CommandParameterInternal argument, MergedCompiledCommandParameter parameter, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameter(UInt32 parameterSets, CommandParameterInternal argument, MergedCompiledCommandParameter parameter, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameters(UInt32 parameterSets, Collection`1 arguments, CommandMetadata commandMetadata) at System.Management.Automation.CmdletParameterBinderController.BindCommandLineParametersNoValidation(Collection`1 arguments) at System.Management.Automation.CmdletParameterBinderController.BindCommandLineParameters(Collection`1 arguments) at System.Management.Automation.CommandProcessor.BindCommandLineParameters(CommandParameterInternal[] parameters) at System.Management.Automation.CommandProcessor.Prepare(CommandParameterInternal[] parameters) at System.Management.Automation.CommandProcessorBase.DoPrepare(CommandParameterInternal[] parameters) at System.Management.Automation.Internal.PipelineProcessor.Start(Boolean incomingStream) at System.Management.Automation.Internal.PipelineProcessor.SynchronousExecuteEnumerate(Object input, Hashtable errorResults, Boolean enumerate) At line:7 char:45 + $Name = Write-WalkthruHTML -WalkThru <<<< $walkthru -StepByStep
System.Management.Automation.ParameterBindingValidationException: Cannot bind argument to parameter 'WalkThru' because it is null. at System.Management.Automation.ParameterBinderBase.ValidateNullOrEmptyArgument(CommandParameterInternal parameter, CompiledCommandParameter parameterMetadata, Type argumentType, Object parameterValue, Boolean recurseIntoCollections) at System.Management.Automation.ParameterBinderBase.BindParameter(CommandParameterInternal parameter, CompiledCommandParameter parameterMetadata, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameter(CommandParameterInternal argument, MergedCompiledCommandParameter parameter, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameter(UInt32 parameterSets, CommandParameterInternal argument, MergedCompiledCommandParameter parameter, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameters(UInt32 parameterSets, Collection`1 arguments, CommandMetadata commandMetadata) at System.Management.Automation.CmdletParameterBinderController.BindCommandLineParametersNoValidation(Collection`1 arguments) at System.Management.Automation.CmdletParameterBinderController.BindCommandLineParameters(Collection`1 arguments) at System.Management.Automation.CommandProcessor.BindCommandLineParameters(CommandParameterInternal[] parameters) at System.Management.Automation.CommandProcessor.Prepare(CommandParameterInternal[] parameters) at System.Management.Automation.CommandProcessorBase.DoPrepare(CommandParameterInternal[] parameters) at System.Management.Automation.Internal.PipelineProcessor.Start(Boolean incomingStream) at System.Management.Automation.Internal.PipelineProcessor.SynchronousExecuteEnumerate(Object input, Hashtable errorResults, Boolean enumerate) At line:7 char:45 + $Name = Write-WalkthruHTML -WalkThru <<<< $walkthru -StepByStep
System.Management.Automation.ParameterBindingValidationException: Cannot bind argument to parameter 'WalkThru' because it is null. at System.Management.Automation.ParameterBinderBase.ValidateNullOrEmptyArgument(CommandParameterInternal parameter, CompiledCommandParameter parameterMetadata, Type argumentType, Object parameterValue, Boolean recurseIntoCollections) at System.Management.Automation.ParameterBinderBase.BindParameter(CommandParameterInternal parameter, CompiledCommandParameter parameterMetadata, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameter(CommandParameterInternal argument, MergedCompiledCommandParameter parameter, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameter(UInt32 parameterSets, CommandParameterInternal argument, MergedCompiledCommandParameter parameter, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameters(UInt32 parameterSets, Collection`1 arguments, CommandMetadata commandMetadata) at System.Management.Automation.CmdletParameterBinderController.BindCommandLineParametersNoValidation(Collection`1 arguments) at System.Management.Automation.CmdletParameterBinderController.BindCommandLineParameters(Collection`1 arguments) at System.Management.Automation.CommandProcessor.BindCommandLineParameters(CommandParameterInternal[] parameters) at System.Management.Automation.CommandProcessor.Prepare(CommandParameterInternal[] parameters) at System.Management.Automation.CommandProcessorBase.DoPrepare(CommandParameterInternal[] parameters) at System.Management.Automation.Internal.PipelineProcessor.Start(Boolean incomingStream) at System.Management.Automation.Internal.PipelineProcessor.SynchronousExecuteEnumerate(Object input, Hashtable errorResults, Boolean enumerate) At line:7 char:45 + $Name = Write-WalkthruHTML -WalkThru <<<< $walkthru -StepByStep
System.Management.Automation.ParameterBindingValidationException: Cannot bind argument to parameter 'WalkThru' because it is null. at System.Management.Automation.ParameterBinderBase.ValidateNullOrEmptyArgument(CommandParameterInternal parameter, CompiledCommandParameter parameterMetadata, Type argumentType, Object parameterValue, Boolean recurseIntoCollections) at System.Management.Automation.ParameterBinderBase.BindParameter(CommandParameterInternal parameter, CompiledCommandParameter parameterMetadata, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameter(CommandParameterInternal argument, MergedCompiledCommandParameter parameter, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameter(UInt32 parameterSets, CommandParameterInternal argument, MergedCompiledCommandParameter parameter, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameters(UInt32 parameterSets, Collection`1 arguments, CommandMetadata commandMetadata) at System.Management.Automation.CmdletParameterBinderController.BindCommandLineParametersNoValidation(Collection`1 arguments) at System.Management.Automation.CmdletParameterBinderController.BindCommandLineParameters(Collection`1 arguments) at System.Management.Automation.CommandProcessor.BindCommandLineParameters(CommandParameterInternal[] parameters) at System.Management.Automation.CommandProcessor.Prepare(CommandParameterInternal[] parameters) at System.Management.Automation.CommandProcessorBase.DoPrepare(CommandParameterInternal[] parameters) at System.Management.Automation.Internal.PipelineProcessor.Start(Boolean incomingStream) at System.Management.Automation.Internal.PipelineProcessor.SynchronousExecuteEnumerate(Object input, Hashtable errorResults, Boolean enumerate) At line:7 char:45 + $Name = Write-WalkthruHTML -WalkThru <<<< $walkthru -StepByStep
System.Management.Automation.ParameterBindingValidationException: Cannot bind argument to parameter 'WalkThru' because it is null. at System.Management.Automation.ParameterBinderBase.ValidateNullOrEmptyArgument(CommandParameterInternal parameter, CompiledCommandParameter parameterMetadata, Type argumentType, Object parameterValue, Boolean recurseIntoCollections) at System.Management.Automation.ParameterBinderBase.BindParameter(CommandParameterInternal parameter, CompiledCommandParameter parameterMetadata, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameter(CommandParameterInternal argument, MergedCompiledCommandParameter parameter, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameter(UInt32 parameterSets, CommandParameterInternal argument, MergedCompiledCommandParameter parameter, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameters(UInt32 parameterSets, Collection`1 arguments, CommandMetadata commandMetadata) at System.Management.Automation.CmdletParameterBinderController.BindCommandLineParametersNoValidation(Collection`1 arguments) at System.Management.Automation.CmdletParameterBinderController.BindCommandLineParameters(Collection`1 arguments) at System.Management.Automation.CommandProcessor.BindCommandLineParameters(CommandParameterInternal[] parameters) at System.Management.Automation.CommandProcessor.Prepare(CommandParameterInternal[] parameters) at System.Management.Automation.CommandProcessorBase.DoPrepare(CommandParameterInternal[] parameters) at System.Management.Automation.Internal.PipelineProcessor.Start(Boolean incomingStream) at System.Management.Automation.Internal.PipelineProcessor.SynchronousExecuteEnumerate(Object input, Hashtable errorResults, Boolean enumerate) At line:7 char:45 + $Name = Write-WalkthruHTML -WalkThru <<<< $walkthru -StepByStep
System.Management.Automation.ParameterBindingValidationException: Cannot bind argument to parameter 'WalkThru' because it is null. at System.Management.Automation.ParameterBinderBase.ValidateNullOrEmptyArgument(CommandParameterInternal parameter, CompiledCommandParameter parameterMetadata, Type argumentType, Object parameterValue, Boolean recurseIntoCollections) at System.Management.Automation.ParameterBinderBase.BindParameter(CommandParameterInternal parameter, CompiledCommandParameter parameterMetadata, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameter(CommandParameterInternal argument, MergedCompiledCommandParameter parameter, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameter(UInt32 parameterSets, CommandParameterInternal argument, MergedCompiledCommandParameter parameter, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameters(UInt32 parameterSets, Collection`1 arguments, CommandMetadata commandMetadata) at System.Management.Automation.CmdletParameterBinderController.BindCommandLineParametersNoValidation(Collection`1 arguments) at System.Management.Automation.CmdletParameterBinderController.BindCommandLineParameters(Collection`1 arguments) at System.Management.Automation.CommandProcessor.BindCommandLineParameters(CommandParameterInternal[] parameters) at System.Management.Automation.CommandProcessor.Prepare(CommandParameterInternal[] parameters) at System.Management.Automation.CommandProcessorBase.DoPrepare(CommandParameterInternal[] parameters) at System.Management.Automation.Internal.PipelineProcessor.Start(Boolean incomingStream) at System.Management.Automation.Internal.PipelineProcessor.SynchronousExecuteEnumerate(Object input, Hashtable errorResults, Boolean enumerate) At line:7 char:45 + $Name = Write-WalkthruHTML -WalkThru <<<< $walkthru -StepByStep
System.Management.Automation.ParameterBindingValidationException: Cannot bind argument to parameter 'WalkThru' because it is null. at System.Management.Automation.ParameterBinderBase.ValidateNullOrEmptyArgument(CommandParameterInternal parameter, CompiledCommandParameter parameterMetadata, Type argumentType, Object parameterValue, Boolean recurseIntoCollections) at System.Management.Automation.ParameterBinderBase.BindParameter(CommandParameterInternal parameter, CompiledCommandParameter parameterMetadata, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameter(CommandParameterInternal argument, MergedCompiledCommandParameter parameter, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameter(UInt32 parameterSets, CommandParameterInternal argument, MergedCompiledCommandParameter parameter, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameters(UInt32 parameterSets, Collection`1 arguments, CommandMetadata commandMetadata) at System.Management.Automation.CmdletParameterBinderController.BindCommandLineParametersNoValidation(Collection`1 arguments) at System.Management.Automation.CmdletParameterBinderController.BindCommandLineParameters(Collection`1 arguments) at System.Management.Automation.CommandProcessor.BindCommandLineParameters(CommandParameterInternal[] parameters) at System.Management.Automation.CommandProcessor.Prepare(CommandParameterInternal[] parameters) at System.Management.Automation.CommandProcessorBase.DoPrepare(CommandParameterInternal[] parameters) at System.Management.Automation.Internal.PipelineProcessor.Start(Boolean incomingStream) at System.Management.Automation.Internal.PipelineProcessor.SynchronousExecuteEnumerate(Object input, Hashtable errorResults, Boolean enumerate) At line:7 char:45 + $Name = Write-WalkthruHTML -WalkThru <<<< $walkthru -StepByStep
System.Management.Automation.ParameterBindingValidationException: Cannot bind argument to parameter 'WalkThru' because it is null. at System.Management.Automation.ParameterBinderBase.ValidateNullOrEmptyArgument(CommandParameterInternal parameter, CompiledCommandParameter parameterMetadata, Type argumentType, Object parameterValue, Boolean recurseIntoCollections) at System.Management.Automation.ParameterBinderBase.BindParameter(CommandParameterInternal parameter, CompiledCommandParameter parameterMetadata, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameter(CommandParameterInternal argument, MergedCompiledCommandParameter parameter, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameter(UInt32 parameterSets, CommandParameterInternal argument, MergedCompiledCommandParameter parameter, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameters(UInt32 parameterSets, Collection`1 arguments, CommandMetadata commandMetadata) at System.Management.Automation.CmdletParameterBinderController.BindCommandLineParametersNoValidation(Collection`1 arguments) at System.Management.Automation.CmdletParameterBinderController.BindCommandLineParameters(Collection`1 arguments) at System.Management.Automation.CommandProcessor.BindCommandLineParameters(CommandParameterInternal[] parameters) at System.Management.Automation.CommandProcessor.Prepare(CommandParameterInternal[] parameters) at System.Management.Automation.CommandProcessorBase.DoPrepare(CommandParameterInternal[] parameters) at System.Management.Automation.Internal.PipelineProcessor.Start(Boolean incomingStream) at System.Management.Automation.Internal.PipelineProcessor.SynchronousExecuteEnumerate(Object input, Hashtable errorResults, Boolean enumerate) At line:7 char:45 + $Name = Write-WalkthruHTML -WalkThru <<<< $walkthru -StepByStep
System.Management.Automation.ParameterBindingValidationException: Cannot bind argument to parameter 'WalkThru' because it is null. at System.Management.Automation.ParameterBinderBase.ValidateNullOrEmptyArgument(CommandParameterInternal parameter, CompiledCommandParameter parameterMetadata, Type argumentType, Object parameterValue, Boolean recurseIntoCollections) at System.Management.Automation.ParameterBinderBase.BindParameter(CommandParameterInternal parameter, CompiledCommandParameter parameterMetadata, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameter(CommandParameterInternal argument, MergedCompiledCommandParameter parameter, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameter(UInt32 parameterSets, CommandParameterInternal argument, MergedCompiledCommandParameter parameter, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameters(UInt32 parameterSets, Collection`1 arguments, CommandMetadata commandMetadata) at System.Management.Automation.CmdletParameterBinderController.BindCommandLineParametersNoValidation(Collection`1 arguments) at System.Management.Automation.CmdletParameterBinderController.BindCommandLineParameters(Collection`1 arguments) at System.Management.Automation.CommandProcessor.BindCommandLineParameters(CommandParameterInternal[] parameters) at System.Management.Automation.CommandProcessor.Prepare(CommandParameterInternal[] parameters) at System.Management.Automation.CommandProcessorBase.DoPrepare(CommandParameterInternal[] parameters) at System.Management.Automation.Internal.PipelineProcessor.Start(Boolean incomingStream) at System.Management.Automation.Internal.PipelineProcessor.SynchronousExecuteEnumerate(Object input, Hashtable errorResults, Boolean enumerate) At line:7 char:45 + $Name = Write-WalkthruHTML -WalkThru <<<< $walkthru -StepByStep
System.Management.Automation.ParameterBindingValidationException: Cannot bind argument to parameter 'WalkThru' because it is null. at System.Management.Automation.ParameterBinderBase.ValidateNullOrEmptyArgument(CommandParameterInternal parameter, CompiledCommandParameter parameterMetadata, Type argumentType, Object parameterValue, Boolean recurseIntoCollections) at System.Management.Automation.ParameterBinderBase.BindParameter(CommandParameterInternal parameter, CompiledCommandParameter parameterMetadata, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameter(CommandParameterInternal argument, MergedCompiledCommandParameter parameter, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameter(UInt32 parameterSets, CommandParameterInternal argument, MergedCompiledCommandParameter parameter, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameters(UInt32 parameterSets, Collection`1 arguments, CommandMetadata commandMetadata) at System.Management.Automation.CmdletParameterBinderController.BindCommandLineParametersNoValidation(Collection`1 arguments) at System.Management.Automation.CmdletParameterBinderController.BindCommandLineParameters(Collection`1 arguments) at System.Management.Automation.CommandProcessor.BindCommandLineParameters(CommandParameterInternal[] parameters) at System.Management.Automation.CommandProcessor.Prepare(CommandParameterInternal[] parameters) at System.Management.Automation.CommandProcessorBase.DoPrepare(CommandParameterInternal[] parameters) at System.Management.Automation.Internal.PipelineProcessor.Start(Boolean incomingStream) at System.Management.Automation.Internal.PipelineProcessor.SynchronousExecuteEnumerate(Object input, Hashtable errorResults, Boolean enumerate) At line:7 char:45 + $Name = Write-WalkthruHTML -WalkThru <<<< $walkthru -StepByStep
System.Management.Automation.ParameterBindingValidationException: Cannot bind argument to parameter 'WalkThru' because it is null. at System.Management.Automation.ParameterBinderBase.ValidateNullOrEmptyArgument(CommandParameterInternal parameter, CompiledCommandParameter parameterMetadata, Type argumentType, Object parameterValue, Boolean recurseIntoCollections) at System.Management.Automation.ParameterBinderBase.BindParameter(CommandParameterInternal parameter, CompiledCommandParameter parameterMetadata, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameter(CommandParameterInternal argument, MergedCompiledCommandParameter parameter, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameter(UInt32 parameterSets, CommandParameterInternal argument, MergedCompiledCommandParameter parameter, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameters(UInt32 parameterSets, Collection`1 arguments, CommandMetadata commandMetadata) at System.Management.Automation.CmdletParameterBinderController.BindCommandLineParametersNoValidation(Collection`1 arguments) at System.Management.Automation.CmdletParameterBinderController.BindCommandLineParameters(Collection`1 arguments) at System.Management.Automation.CommandProcessor.BindCommandLineParameters(CommandParameterInternal[] parameters) at System.Management.Automation.CommandProcessor.Prepare(CommandParameterInternal[] parameters) at System.Management.Automation.CommandProcessorBase.DoPrepare(CommandParameterInternal[] parameters) at System.Management.Automation.Internal.PipelineProcessor.Start(Boolean incomingStream) at System.Management.Automation.Internal.PipelineProcessor.SynchronousExecuteEnumerate(Object input, Hashtable errorResults, Boolean enumerate) At line:7 char:45 + $Name = Write-WalkthruHTML -WalkThru <<<< $walkthru -StepByStep
System.Management.Automation.ParameterBindingValidationException: Cannot bind argument to parameter 'WalkThru' because it is null. at System.Management.Automation.ParameterBinderBase.ValidateNullOrEmptyArgument(CommandParameterInternal parameter, CompiledCommandParameter parameterMetadata, Type argumentType, Object parameterValue, Boolean recurseIntoCollections) at System.Management.Automation.ParameterBinderBase.BindParameter(CommandParameterInternal parameter, CompiledCommandParameter parameterMetadata, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameter(CommandParameterInternal argument, MergedCompiledCommandParameter parameter, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameter(UInt32 parameterSets, CommandParameterInternal argument, MergedCompiledCommandParameter parameter, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameters(UInt32 parameterSets, Collection`1 arguments, CommandMetadata commandMetadata) at System.Management.Automation.CmdletParameterBinderController.BindCommandLineParametersNoValidation(Collection`1 arguments) at System.Management.Automation.CmdletParameterBinderController.BindCommandLineParameters(Collection`1 arguments) at System.Management.Automation.CommandProcessor.BindCommandLineParameters(CommandParameterInternal[] parameters) at System.Management.Automation.CommandProcessor.Prepare(CommandParameterInternal[] parameters) at System.Management.Automation.CommandProcessorBase.DoPrepare(CommandParameterInternal[] parameters) at System.Management.Automation.Internal.PipelineProcessor.Start(Boolean incomingStream) at System.Management.Automation.Internal.PipelineProcessor.SynchronousExecuteEnumerate(Object input, Hashtable errorResults, Boolean enumerate) At line:7 char:45 + $Name = Write-WalkthruHTML -WalkThru <<<< $walkthru -StepByStep
System.Management.Automation.ParameterBindingValidationException: Cannot bind argument to parameter 'WalkThru' because it is null. at System.Management.Automation.ParameterBinderBase.ValidateNullOrEmptyArgument(CommandParameterInternal parameter, CompiledCommandParameter parameterMetadata, Type argumentType, Object parameterValue, Boolean recurseIntoCollections) at System.Management.Automation.ParameterBinderBase.BindParameter(CommandParameterInternal parameter, CompiledCommandParameter parameterMetadata, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameter(CommandParameterInternal argument, MergedCompiledCommandParameter parameter, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameter(UInt32 parameterSets, CommandParameterInternal argument, MergedCompiledCommandParameter parameter, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameters(UInt32 parameterSets, Collection`1 arguments, CommandMetadata commandMetadata) at System.Management.Automation.CmdletParameterBinderController.BindCommandLineParametersNoValidation(Collection`1 arguments) at System.Management.Automation.CmdletParameterBinderController.BindCommandLineParameters(Collection`1 arguments) at System.Management.Automation.CommandProcessor.BindCommandLineParameters(CommandParameterInternal[] parameters) at System.Management.Automation.CommandProcessor.Prepare(CommandParameterInternal[] parameters) at System.Management.Automation.CommandProcessorBase.DoPrepare(CommandParameterInternal[] parameters) at System.Management.Automation.Internal.PipelineProcessor.Start(Boolean incomingStream) at System.Management.Automation.Internal.PipelineProcessor.SynchronousExecuteEnumerate(Object input, Hashtable errorResults, Boolean enumerate) At line:7 char:45 + $Name = Write-WalkthruHTML -WalkThru <<<< $walkthru -StepByStep
System.Management.Automation.ParameterBindingValidationException: Cannot bind argument to parameter 'WalkThru' because it is null. at System.Management.Automation.ParameterBinderBase.ValidateNullOrEmptyArgument(CommandParameterInternal parameter, CompiledCommandParameter parameterMetadata, Type argumentType, Object parameterValue, Boolean recurseIntoCollections) at System.Management.Automation.ParameterBinderBase.BindParameter(CommandParameterInternal parameter, CompiledCommandParameter parameterMetadata, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameter(CommandParameterInternal argument, MergedCompiledCommandParameter parameter, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameter(UInt32 parameterSets, CommandParameterInternal argument, MergedCompiledCommandParameter parameter, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameters(UInt32 parameterSets, Collection`1 arguments, CommandMetadata commandMetadata) at System.Management.Automation.CmdletParameterBinderController.BindCommandLineParametersNoValidation(Collection`1 arguments) at System.Management.Automation.CmdletParameterBinderController.BindCommandLineParameters(Collection`1 arguments) at System.Management.Automation.CommandProcessor.BindCommandLineParameters(CommandParameterInternal[] parameters) at System.Management.Automation.CommandProcessor.Prepare(CommandParameterInternal[] parameters) at System.Management.Automation.CommandProcessorBase.DoPrepare(CommandParameterInternal[] parameters) at System.Management.Automation.Internal.PipelineProcessor.Start(Boolean incomingStream) at System.Management.Automation.Internal.PipelineProcessor.SynchronousExecuteEnumerate(Object input, Hashtable errorResults, Boolean enumerate) At line:7 char:45 + $Name = Write-WalkthruHTML -WalkThru <<<< $walkthru -StepByStep
System.Management.Automation.ParameterBindingValidationException: Cannot bind argument to parameter 'WalkThru' because it is null. at System.Management.Automation.ParameterBinderBase.ValidateNullOrEmptyArgument(CommandParameterInternal parameter, CompiledCommandParameter parameterMetadata, Type argumentType, Object parameterValue, Boolean recurseIntoCollections) at System.Management.Automation.ParameterBinderBase.BindParameter(CommandParameterInternal parameter, CompiledCommandParameter parameterMetadata, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameter(CommandParameterInternal argument, MergedCompiledCommandParameter parameter, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameter(UInt32 parameterSets, CommandParameterInternal argument, MergedCompiledCommandParameter parameter, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameters(UInt32 parameterSets, Collection`1 arguments, CommandMetadata commandMetadata) at System.Management.Automation.CmdletParameterBinderController.BindCommandLineParametersNoValidation(Collection`1 arguments) at System.Management.Automation.CmdletParameterBinderController.BindCommandLineParameters(Collection`1 arguments) at System.Management.Automation.CommandProcessor.BindCommandLineParameters(CommandParameterInternal[] parameters) at System.Management.Automation.CommandProcessor.Prepare(CommandParameterInternal[] parameters) at System.Management.Automation.CommandProcessorBase.DoPrepare(CommandParameterInternal[] parameters) at System.Management.Automation.Internal.PipelineProcessor.Start(Boolean incomingStream) at System.Management.Automation.Internal.PipelineProcessor.SynchronousExecuteEnumerate(Object input, Hashtable errorResults, Boolean enumerate) At line:7 char:45 + $Name = Write-WalkthruHTML -WalkThru <<<< $walkthru -StepByStep
System.Management.Automation.ParameterBindingValidationException: Cannot bind argument to parameter 'WalkThru' because it is null. at System.Management.Automation.ParameterBinderBase.ValidateNullOrEmptyArgument(CommandParameterInternal parameter, CompiledCommandParameter parameterMetadata, Type argumentType, Object parameterValue, Boolean recurseIntoCollections) at System.Management.Automation.ParameterBinderBase.BindParameter(CommandParameterInternal parameter, CompiledCommandParameter parameterMetadata, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameter(CommandParameterInternal argument, MergedCompiledCommandParameter parameter, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameter(UInt32 parameterSets, CommandParameterInternal argument, MergedCompiledCommandParameter parameter, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameters(UInt32 parameterSets, Collection`1 arguments, CommandMetadata commandMetadata) at System.Management.Automation.CmdletParameterBinderController.BindCommandLineParametersNoValidation(Collection`1 arguments) at System.Management.Automation.CmdletParameterBinderController.BindCommandLineParameters(Collection`1 arguments) at System.Management.Automation.CommandProcessor.BindCommandLineParameters(CommandParameterInternal[] parameters) at System.Management.Automation.CommandProcessor.Prepare(CommandParameterInternal[] parameters) at System.Management.Automation.CommandProcessorBase.DoPrepare(CommandParameterInternal[] parameters) at System.Management.Automation.Internal.PipelineProcessor.Start(Boolean incomingStream) at System.Management.Automation.Internal.PipelineProcessor.SynchronousExecuteEnumerate(Object input, Hashtable errorResults, Boolean enumerate) At line:7 char:45 + $Name = Write-WalkthruHTML -WalkThru <<<< $walkthru -StepByStep
System.Management.Automation.ParameterBindingValidationException: Cannot bind argument to parameter 'WalkThru' because it is null. at System.Management.Automation.ParameterBinderBase.ValidateNullOrEmptyArgument(CommandParameterInternal parameter, CompiledCommandParameter parameterMetadata, Type argumentType, Object parameterValue, Boolean recurseIntoCollections) at System.Management.Automation.ParameterBinderBase.BindParameter(CommandParameterInternal parameter, CompiledCommandParameter parameterMetadata, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameter(CommandParameterInternal argument, MergedCompiledCommandParameter parameter, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameter(UInt32 parameterSets, CommandParameterInternal argument, MergedCompiledCommandParameter parameter, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameters(UInt32 parameterSets, Collection`1 arguments, CommandMetadata commandMetadata) at System.Management.Automation.CmdletParameterBinderController.BindCommandLineParametersNoValidation(Collection`1 arguments) at System.Management.Automation.CmdletParameterBinderController.BindCommandLineParameters(Collection`1 arguments) at System.Management.Automation.CommandProcessor.BindCommandLineParameters(CommandParameterInternal[] parameters) at System.Management.Automation.CommandProcessor.Prepare(CommandParameterInternal[] parameters) at System.Management.Automation.CommandProcessorBase.DoPrepare(CommandParameterInternal[] parameters) at System.Management.Automation.Internal.PipelineProcessor.Start(Boolean incomingStream) at System.Management.Automation.Internal.PipelineProcessor.SynchronousExecuteEnumerate(Object input, Hashtable errorResults, Boolean enumerate) At line:7 char:45 + $Name = Write-WalkthruHTML -WalkThru <<<< $walkthru -StepByStep
System.Management.Automation.ParameterBindingValidationException: Cannot bind argument to parameter 'WalkThru' because it is null. at System.Management.Automation.ParameterBinderBase.ValidateNullOrEmptyArgument(CommandParameterInternal parameter, CompiledCommandParameter parameterMetadata, Type argumentType, Object parameterValue, Boolean recurseIntoCollections) at System.Management.Automation.ParameterBinderBase.BindParameter(CommandParameterInternal parameter, CompiledCommandParameter parameterMetadata, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameter(CommandParameterInternal argument, MergedCompiledCommandParameter parameter, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameter(UInt32 parameterSets, CommandParameterInternal argument, MergedCompiledCommandParameter parameter, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameters(UInt32 parameterSets, Collection`1 arguments, CommandMetadata commandMetadata) at System.Management.Automation.CmdletParameterBinderController.BindCommandLineParametersNoValidation(Collection`1 arguments) at System.Management.Automation.CmdletParameterBinderController.BindCommandLineParameters(Collection`1 arguments) at System.Management.Automation.CommandProcessor.BindCommandLineParameters(CommandParameterInternal[] parameters) at System.Management.Automation.CommandProcessor.Prepare(CommandParameterInternal[] parameters) at System.Management.Automation.CommandProcessorBase.DoPrepare(CommandParameterInternal[] parameters) at System.Management.Automation.Internal.PipelineProcessor.Start(Boolean incomingStream) at System.Management.Automation.Internal.PipelineProcessor.SynchronousExecuteEnumerate(Object input, Hashtable errorResults, Boolean enumerate) At line:7 char:45 + $Name = Write-WalkthruHTML -WalkThru <<<< $walkthru -StepByStep
System.Management.Automation.ParameterBindingValidationException: Cannot bind argument to parameter 'WalkThru' because it is null. at System.Management.Automation.ParameterBinderBase.ValidateNullOrEmptyArgument(CommandParameterInternal parameter, CompiledCommandParameter parameterMetadata, Type argumentType, Object parameterValue, Boolean recurseIntoCollections) at System.Management.Automation.ParameterBinderBase.BindParameter(CommandParameterInternal parameter, CompiledCommandParameter parameterMetadata, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameter(CommandParameterInternal argument, MergedCompiledCommandParameter parameter, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameter(UInt32 parameterSets, CommandParameterInternal argument, MergedCompiledCommandParameter parameter, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameters(UInt32 parameterSets, Collection`1 arguments, CommandMetadata commandMetadata) at System.Management.Automation.CmdletParameterBinderController.BindCommandLineParametersNoValidation(Collection`1 arguments) at System.Management.Automation.CmdletParameterBinderController.BindCommandLineParameters(Collection`1 arguments) at System.Management.Automation.CommandProcessor.BindCommandLineParameters(CommandParameterInternal[] parameters) at System.Management.Automation.CommandProcessor.Prepare(CommandParameterInternal[] parameters) at System.Management.Automation.CommandProcessorBase.DoPrepare(CommandParameterInternal[] parameters) at System.Management.Automation.Internal.PipelineProcessor.Start(Boolean incomingStream) at System.Management.Automation.Internal.PipelineProcessor.SynchronousExecuteEnumerate(Object input, Hashtable errorResults, Boolean enumerate) At line:7 char:45 + $Name = Write-WalkthruHTML -WalkThru <<<< $walkthru -StepByStep
System.Management.Automation.ParameterBindingValidationException: Cannot bind argument to parameter 'WalkThru' because it is null. at System.Management.Automation.ParameterBinderBase.ValidateNullOrEmptyArgument(CommandParameterInternal parameter, CompiledCommandParameter parameterMetadata, Type argumentType, Object parameterValue, Boolean recurseIntoCollections) at System.Management.Automation.ParameterBinderBase.BindParameter(CommandParameterInternal parameter, CompiledCommandParameter parameterMetadata, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameter(CommandParameterInternal argument, MergedCompiledCommandParameter parameter, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameter(UInt32 parameterSets, CommandParameterInternal argument, MergedCompiledCommandParameter parameter, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameters(UInt32 parameterSets, Collection`1 arguments, CommandMetadata commandMetadata) at System.Management.Automation.CmdletParameterBinderController.BindCommandLineParametersNoValidation(Collection`1 arguments) at System.Management.Automation.CmdletParameterBinderController.BindCommandLineParameters(Collection`1 arguments) at System.Management.Automation.CommandProcessor.BindCommandLineParameters(CommandParameterInternal[] parameters) at System.Management.Automation.CommandProcessor.Prepare(CommandParameterInternal[] parameters) at System.Management.Automation.CommandProcessorBase.DoPrepare(CommandParameterInternal[] parameters) at System.Management.Automation.Internal.PipelineProcessor.Start(Boolean incomingStream) at System.Management.Automation.Internal.PipelineProcessor.SynchronousExecuteEnumerate(Object input, Hashtable errorResults, Boolean enumerate) At line:7 char:45 + $Name = Write-WalkthruHTML -WalkThru <<<< $walkthru -StepByStep
System.Management.Automation.ParameterBindingValidationException: Cannot bind argument to parameter 'WalkThru' because it is null. at System.Management.Automation.ParameterBinderBase.ValidateNullOrEmptyArgument(CommandParameterInternal parameter, CompiledCommandParameter parameterMetadata, Type argumentType, Object parameterValue, Boolean recurseIntoCollections) at System.Management.Automation.ParameterBinderBase.BindParameter(CommandParameterInternal parameter, CompiledCommandParameter parameterMetadata, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameter(CommandParameterInternal argument, MergedCompiledCommandParameter parameter, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameter(UInt32 parameterSets, CommandParameterInternal argument, MergedCompiledCommandParameter parameter, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameters(UInt32 parameterSets, Collection`1 arguments, CommandMetadata commandMetadata) at System.Management.Automation.CmdletParameterBinderController.BindCommandLineParametersNoValidation(Collection`1 arguments) at System.Management.Automation.CmdletParameterBinderController.BindCommandLineParameters(Collection`1 arguments) at System.Management.Automation.CommandProcessor.BindCommandLineParameters(CommandParameterInternal[] parameters) at System.Management.Automation.CommandProcessor.Prepare(CommandParameterInternal[] parameters) at System.Management.Automation.CommandProcessorBase.DoPrepare(CommandParameterInternal[] parameters) at System.Management.Automation.Internal.PipelineProcessor.Start(Boolean incomingStream) at System.Management.Automation.Internal.PipelineProcessor.SynchronousExecuteEnumerate(Object input, Hashtable errorResults, Boolean enumerate) At line:7 char:45 + $Name = Write-WalkthruHTML -WalkThru <<<< $walkthru -StepByStep