{"id":16213,"date":"2018-10-09T08:00:05","date_gmt":"2018-10-09T15:00:05","guid":{"rendered":"https:\/\/www.sapien.com\/blog\/?p=16213"},"modified":"2018-10-09T07:48:20","modified_gmt":"2018-10-09T14:48:20","slug":"powershell-studio-2018-service-release-v5-5-155","status":"publish","type":"post","link":"https:\/\/dev.sapien.com\/blog\/2018\/10\/09\/powershell-studio-2018-service-release-v5-5-155\/","title":{"rendered":"PowerShell Studio 2018: Service Release v5.5.155"},"content":{"rendered":"<p>We released a new service build of PowerShell Studio 2018 (v5.5.155). This service build is included as part of the regular update cycle for our subscribers.<\/p>\n<p>&nbsp;<\/p>\n<h2>New Features<\/h2>\n<p>This service release introduces new features such as Scope Highlighting and updates PowerShell Studio\u2019s ribbon to surface hidden features.<\/p>\n<p><a href=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/09\/PowerShell-Studio-Update.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"PowerShell Studio Update\" src=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/09\/PowerShell-Studio-Update_thumb.png\" alt=\"PowerShell Studio Update\" width=\"644\" height=\"396\" border=\"0\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<h3>Updated Ribbon<\/h3>\n<p>The most notable change with this build is the redesigned ribbon. We update the ribbon\u2019s <strong>Home<\/strong> tab in order to surface hidden features and moved features from the <strong>Tools<\/strong> tabs over to the Home tab.<\/p>\n<p><a href=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/09\/Updated-Ribbon.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"Updated Ribbon\" src=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/09\/Updated-Ribbon_thumb.png\" alt=\"Updated Ribbon\" width=\"644\" height=\"60\" border=\"0\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<h4>Run and Debug<\/h4>\n<p>The Run and Debug commands have been reorganized to two separate groups:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"Run Debug Groups\" src=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/09\/Run-Debug-Groups.png\" alt=\"Run Debug Groups\" width=\"453\" height=\"122\" border=\"0\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>The <strong>Custom Tool<\/strong> menu was moved to the Run group to make it more accessible.<\/p>\n<p>&nbsp;<\/p>\n<h4>Edit<\/h4>\n<p>The biggest change involves the Edit group. New menus have been added to surface new and existing features, and some functionality has been relocated from the <strong>Tools<\/strong> tab.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"Edit Group\" src=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/09\/Edit-Group.png\" alt=\"Edit Group\" width=\"336\" height=\"126\" border=\"0\" \/><\/p>\n<p>&nbsp;<\/p>\n<h5>Sign Script Menu<\/h5>\n<p>We copied the Sign Script menu over from the <strong>Tools<\/strong> tab.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"Sign Menu\" src=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/09\/Sign-Menu.png\" alt=\"Sign Menu\" width=\"218\" height=\"120\" border=\"0\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>Use this menu to sign your scripts or remove an existing signature.<\/p>\n<p>&nbsp;<\/p>\n<h5>Analysis Menu<\/h5>\n<p>We added an Analysis menu that contains the commands located in the Analysis group of the <strong>Tools<\/strong> tab.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"Analyze Menu\" src=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/09\/Analyze-Menu.png\" alt=\"Analyze Menu\" width=\"476\" height=\"161\" border=\"0\" \/><\/p>\n<p>&nbsp;<\/p>\n<h5>Convert Menu<\/h5>\n<p>The new Convert menu contains commands that transform your script in one way or another.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"Convert Menu\" src=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/09\/Convert-Menu.png\" alt=\"Convert Menu\" width=\"216\" height=\"321\" border=\"0\" \/><\/p>\n<p>&nbsp;<\/p>\n<p><strong>Uppercase<br \/>\n<\/strong>Converts the current character or selection to uppercase.<\/p>\n<p><strong>Lowercase<br \/>\n<\/strong>Converts the current character or selection to lowercase.<\/p>\n<p><strong>Decimal<\/strong><br \/>\nConverts the selected hexadecimal number to a decimal number.<\/p>\n<p><strong>Hexadecimal<\/strong><br \/>\nConverts the selected decimal number to a hexadecimal number.<\/p>\n<p><strong>Rename<\/strong><br \/>\nRenames the references of the selected object or command.<\/p>\n<p><strong>Splat Command<\/strong><br \/>\nSplats the parameters of the command.<\/p>\n<p><strong>Expand Aliases<\/strong><br \/>\nExpands all the aliases in the script.<\/p>\n<p><strong>Qualify Cmdlets<\/strong><br \/>\nRenames the cmdlets in the script to use the fully qualified (ModuleName\\CommandName) name.<\/p>\n<p><strong>Unqualify Cmdlets<br \/>\n<\/strong>Renames fully qualified cmdlets in the script to use their short name.<\/p>\n<p>&nbsp;<\/p>\n<h5>Find Replace Menu<\/h5>\n<p>The Find Replace button now contains a sub-menu:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"Find Menu\" src=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/09\/Find-Menu.png\" alt=\"Find Menu\" width=\"363\" height=\"120\" border=\"0\" \/><\/p>\n<p>&nbsp;<\/p>\n<p><strong>Find in Files\u2026<\/strong><br \/>\nCopied over from the <strong>Tools<\/strong> tab. Search multiple files for specific text.<\/p>\n<p><strong>Find All References<\/strong><br \/>\nFinds all the references of the object \/ command within the script or project.<\/p>\n<p>&nbsp;<\/p>\n<h5>New Button Group<\/h5>\n<p>There is a new group of buttons added the <strong>Edit<\/strong> group:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"Edit Button Group\" src=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/09\/Edit-Button-Group.png\" alt=\"Edit Button Group\" width=\"113\" height=\"31\" border=\"0\" \/><\/p>\n<p><strong>Assemblies<br \/>\n<\/strong>The assemblies command has been moved into this group. The assemblies dialog allows you to select external assemblies to be imported by the script and PowerShell Studio&#8217;s PrimalSense&#x2122;.<\/p>\n<p><strong>Compare Files<br \/>\n<\/strong>Copied from the <strong>Tools<\/strong> tab.\u00a0 Compare the script with another file.<\/p>\n<p><strong>Generate Comment-Based Help<\/strong><br \/>\nGenerates commend-based help for the selected command.<\/p>\n<p><strong>Scope Highlighting<\/strong><br \/>\nThis button toggles the new Scope Highlighting feature, which is covered below.<\/p>\n<p>&nbsp;<\/p>\n<h3>Scope Highlighting<\/h3>\n<p>When editing scripts, sometimes it is necessary to determine the scope of a script block. To determine this, previously you had the option to use the bracket highlighting to find the matching opening and closing bracket\u2014but doing this requires you stop what you are doing and unnecessarily move away from the line you are editing. With the new Scope Highlighting feature you can visually determine which is the scope you are currently editing, without having to scroll or leave the line you are editing.<\/p>\n<p><a href=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/09\/Scope-Highlighting.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"Scope Highlighting\" src=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/09\/Scope-Highlighting_thumb.png\" alt=\"Scope Highlighting\" width=\"624\" height=\"364\" border=\"0\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>You can enable the Scope Highlighting feature from Ribbon &gt; Home &gt; Edit:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"Toggle Scope Highlighting\" src=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/09\/Toggle-Scope-Highlighting.png\" alt=\"Toggle Scope Highlighting\" width=\"338\" height=\"121\" border=\"0\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>Since the option is surfaced on the ribbon, you easily enable or disable this feature when necessary.<\/p>\n<p>&nbsp;<\/p>\n<h3>Updated Control Sets<\/h3>\n<p>This build updates some existing control sets.<\/p>\n<h4>Button \u2013 Run Process and Button \u2013 Start Job<\/h4>\n<p>These control sets now use splatting in the button click events to make the script easier to read:<\/p>\n<p><a href=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/09\/Control-Set-Splatting.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"Control Set Splatting\" src=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/09\/Control-Set-Splatting_thumb.png\" alt=\"Control Set Splatting\" width=\"644\" height=\"431\" border=\"0\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<h4>Process Tracker<\/h4>\n<p>We updated the process tracker control set, to allow you to redirect the output of external processes.<\/p>\n<h4>\u00a0<a href=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/09\/Process-Tracker-Button.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"Process Tracker Button\" src=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/09\/Process-Tracker-Button_thumb.png\" alt=\"Process Tracker Button\" width=\"528\" height=\"484\" border=\"0\" \/><\/a><\/h4>\n<p>&nbsp;<\/p>\n<p>The <strong>Add-ProcessTracker<\/strong> function has several new parameters to facilitate output redirection and gives more control over whether or not the process is displayed.<\/p>\n<p>A special thanks to <em>James Vierra<\/em> for demonstrating to a PowerShell Studio user how to redirect the output of a process in a GUI, which is the reason for this update.<\/p>\n<p>&nbsp;<\/p>\n<h5>New Parameters:<\/h5>\n<table class=\"nicetable\" border=\"0\" width=\"1016\" cellspacing=\"0\" cellpadding=\"2\">\n<tbody>\n<tr>\n<td valign=\"top\" width=\"153\"><strong>Parameter<\/strong><\/td>\n<td valign=\"top\" width=\"861\"><strong>Description<\/strong><\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"153\">\n<p align=\"left\">RedirectOutputScript<\/p>\n<\/td>\n<td valign=\"top\" width=\"861\">\n<p align=\"left\">The script block that handles output from the process.<br \/>\nUse $_.Data to access the output text.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"153\">RedirectErrorScript<\/td>\n<td valign=\"top\" width=\"861\">The script block that handles error output from the process.<br \/>\nUse $_.Data to access the output text.<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"153\">NoNewWindow<\/td>\n<td valign=\"top\" width=\"861\">Start the new process in the current console window.<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"153\">WindowStyle<\/td>\n<td valign=\"top\" width=\"861\">Specifies the state of the window that is used for the new process.<br \/>\nValid values are Normal, Hidden, Minimized, and Maximized.<br \/>\nThe default value is Normal.<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"153\">WorkingDirectory<\/td>\n<td valign=\"top\" width=\"861\">Specifies the location of the executable file or document that runs in the process.<br \/>\nThe default is the current directory.<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"153\">RedirectInput<\/td>\n<td valign=\"top\" width=\"861\">Redirects the input of the process. If this switch is set, the function will return the process object.<br \/>\nUse the process object&#8217;s StandardInput property to access the input stream.<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"153\">PassThru<\/td>\n<td valign=\"top\" width=\"861\">Returns the process that was started.<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"153\">SyncObject<\/td>\n<td valign=\"top\" width=\"861\">The object used to marshal the process event handler calls that are issued.<br \/>\nYou must pass a control to sync, otherwise it will produce an error when redirecting output.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<h5>Example \u2013 Redirecting Output<\/h5>\n<p>In this example, we show how to redirect the output of a process:<\/p>\n<pre lang=\"PowerShell\">$paramAddProcessTracker = @{\r\n\tFilePath\t\t\t\t\t\t  = 'ping.exe'\r\n\tArguments\t\t\t\t\t\t  = 'sapien.com'\r\n\tSyncObject\t\t\t\t\t\t  = $buttonRunProcess\r\n\tRedirectOutputScript\t\t\t  = {\r\n\t\t# Use $_.Data to access the output text\r\n\t\t$richtextboxOutput.AppendText($_.Data)\r\n\t\t$richtextboxOutput.AppendText(\"`r`n\")\r\n\t}\r\n\tRedirectErrorScript\t\t\t\t\t  = {\r\n\t\tif ($_.Data)\r\n\t\t{\r\n\t\t\t# Use $_.Data to access the output text\t\t\r\n\t\t\t# Use red to display errors\r\n\t\t\t$colorOld = $richtextboxOutput.SelectionColor;\r\n\t\t\t$richtextboxOutput.SelectionColor = 'Red'\r\n\t\t\t$richtextboxOutput.AppendText($_.Data)\r\n\t\t\t$richtextboxOutput.AppendText(\"`r`n\")\r\n\t\t\t$richtextboxOutput.SelectionColor = $colorOld\r\n\t\t}\r\n\t}\r\n}\r\n\t\r\nAdd-ProcessTracker @paramAddProcessTracker<\/pre>\n<p>Output:<\/p>\n<p><a href=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/09\/Redirect-Output-Example.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"Redirect Output Example\" src=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/09\/Redirect-Output-Example_thumb.png\" alt=\"Redirect Output Example\" width=\"644\" height=\"401\" border=\"0\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<h5>Example \u2013 Redirecting Input<\/h5>\n<p>In this example, we show how to redirect the input of a process:<\/p>\n<pre lang=\"PowerShell\">$paramAddProcessTracker = @{\r\n\tFilePath\t\t\t\t  = 'powershell.exe'\r\n\tSyncObject\t\t\t\t  = $buttonRunProcess\r\n\tRedirectOutputScript\t\t\t  = {\r\n\t\t# Use $_.Data to access the output text\r\n\t\t$richtextbox1.AppendText($_.Data)\r\n\t\t$richtextbox1.AppendText(\"`r`n\")\r\n\t}\r\n\tRedirectInput\t\t\t\t  = $true\r\n}\r\n\t\r\n$process = Add-ProcessTracker @paramAddProcessTracker\r\n\t\r\n#Write to the console\r\n$process.StandardInput.WriteLine(\"Get-Process\")<\/pre>\n<p>Output:<\/p>\n<p><a href=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/09\/Redirect-Input-Example.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"Redirect Input Example\" src=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/09\/Redirect-Input-Example_thumb.png\" alt=\"Redirect Input Example\" width=\"644\" height=\"351\" border=\"0\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<h3>New Form Template<\/h3>\n<p>TextBox \u2013 Redirect Process Output<\/p>\n<p>This new GUI template uses the Process Tracker to redirect and display the output of an external process using a textbox. Any process error output is distinguished in red.<\/p>\n<p><a href=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/09\/Redirect-Template.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"Redirect Template\" src=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/09\/Redirect-Template_thumb.png\" alt=\"Redirect Template\" width=\"644\" height=\"401\" border=\"0\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<h4>Universal Version Control \u2013 Git Menu Update<\/h4>\n<p>The Git provider now has <strong>All<\/strong> variants to applicable commands. In addition, the Universal Version Control commands now support tooltips.<\/p>\n<p><a href=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/09\/Git-All-Command.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"Git All Command\" src=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/09\/Git-All-Command_thumb.png\" alt=\"Git All Command\" width=\"391\" height=\"128\" border=\"0\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<h3>Build Messages \u2013 Tools Output<\/h3>\n<p>Project and form build messages are now displayed in the <strong>Tools Output<\/strong> Panel.<\/p>\n<p><a href=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/09\/Tools-Pane-Build-Output.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"Tools Pane - Build Output\" src=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/09\/Tools-Pane-Build-Output_thumb.png\" alt=\"Tools Pane - Build Output\" width=\"644\" height=\"222\" border=\"0\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>Moving the build messages to the <strong>Tools Output<\/strong> panel allows the <strong>Output<\/strong> panel to focus on script output.<\/p>\n<p>&nbsp;<\/p>\n<h3>New Snippet<\/h3>\n<p>There is a new snippet <strong>Get-ScriptName<\/strong>. The script inserts a function that returns the name of the script or package executable.<\/p>\n<p>&nbsp;<\/p>\n<h3>About Box \u2013 Copy Version Information<\/h3>\n<p>The About Box\u2019s<strong> Copy Version Info<\/strong> button will now copy the application and OS information to the clipboard.<\/p>\n<p><a href=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/09\/About-Box-Copy-Version-Info.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"About Box - Copy Version Info\" src=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/09\/About-Box-Copy-Version-Info_thumb.png\" alt=\"About Box - Copy Version Info\" width=\"615\" height=\"484\" border=\"0\" \/><\/a><\/p>\n<p>Use this feature to copy the relevant information for technical support on our forums:<\/p>\n<p>&nbsp;<\/p>\n<pre>Product:  PowerShell Studio 2018 (64 Bit)\r\nBuild:    v5.5.155\r\nOS:       Windows 10 Pro (64 Bit)\r\nBuild:    v10.0.17134.0\r\n<\/pre>\n<p>&nbsp;<\/p>\n<h3>PowerShell Browser \u2013 Module Versions<\/h3>\n<p>The PowerShell browser (Object Browser panel) will now display the version number of the cached modules:<\/p>\n<p><a href=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/09\/PowerShell-Browser-Module-Versions.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"PowerShell Browser Module Versions\" src=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/09\/PowerShell-Browser-Module-Versions_thumb.png\" alt=\"PowerShell Browser Module Versions\" width=\"366\" height=\"380\" border=\"0\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<h3>Database Browser \u2013 Field Types<\/h3>\n<p>The Database browser (Object Browser panel) will now display the field types:<\/p>\n<p><a href=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/09\/Database-Browser-Field-Types.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"Database Browser - Field Types\" src=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/09\/Database-Browser-Field-Types_thumb.png\" alt=\"Database Browser - Field Types\" width=\"366\" height=\"380\" border=\"0\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<h3>Packager Updates<\/h3>\n<p>This build introduces new additions to the packager.<\/p>\n<p>&nbsp;<\/p>\n<h4>Version Information from Manifest<\/h4>\n<p>The MSI builder can now pull the version information directly from your module manifest.<\/p>\n<p>Go to the MSI Settings and press the browse button next to the version field:<\/p>\n<p><a href=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/09\/Version-Browse-Button.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;\" title=\"Version Browse Button\" src=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/09\/Version-Browse-Button_thumb.png\" alt=\"Version Browse Button\" width=\"644\" height=\"432\" border=\"0\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>Select the Manifest file filter:<\/p>\n<p><a href=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/09\/Select-Manifest-Filter.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;\" title=\"Select Manifest Filter\" src=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/09\/Select-Manifest-Filter_thumb.png\" alt=\"Select Manifest Filter\" width=\"644\" height=\"391\" border=\"0\" \/><\/a><\/p>\n<p>Then select the desired file:<\/p>\n<p><a href=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/09\/MSI-Setting-Version-from-Manifest.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;\" title=\"MSI Setting Version from Manifest\" src=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/09\/MSI-Setting-Version-from-Manifest_thumb.png\" alt=\"MSI Setting Version from Manifest\" width=\"644\" height=\"432\" border=\"0\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>The MSI Builder will than use the version directly from the manifest:<\/p>\n<p><a href=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/09\/Version-Output-From-PSBuild.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;\" title=\"Version Output From PSBuild\" src=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/09\/Version-Output-From-PSBuild_thumb.png\" alt=\"Version Output From PSBuild\" width=\"644\" height=\"138\" border=\"0\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<h4>Warning Messages<\/h4>\n<p>The packager (PSBuild) now displays warning messages in certain instances:<\/p>\n<ul>\n<li>If the script has a<em> #requires<\/em> version higher than the packaging engine target.<\/li>\n<li>If the script has a <em>#requires<\/em> statement that specifies PowerShell Core.<\/li>\n<li>If you are using a switch statement in the script\u2019s parameter block.<br \/>\nRefer to the following article: <a title=\"https:\/\/www.sapien.com\/blog\/2015\/11\/30\/passing-parameters-to-a-script-in-an-executable-file\/\" href=\"https:\/\/www.sapien.com\/blog\/2015\/11\/30\/passing-parameters-to-a-script-in-an-executable-file\/\">https:\/\/www.sapien.com\/blog\/2015\/11\/30\/passing-parameters-to-a-script-in-an-executable-file\/<\/a><\/li>\n<li>If the script contains <em>#requires -RunAsAdministrator<\/em> and the a elevation manifest is not selected.<\/li>\n<\/ul>\n<p><a href=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/09\/PSBuild-Warnings.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"PSBuild Warnings\" src=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/09\/PSBuild-Warnings_thumb.png\" alt=\"PSBuild Warnings\" width=\"644\" height=\"163\" border=\"0\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<h4>Macro Variables<\/h4>\n<p>The packager will expand the following text in a script when the executable is built:<\/p>\n<blockquote><p>__PRODUCTVERSION__<br \/>\n__FILEVERSION__<br \/>\n__PRODUCTDESCRIPTION__<br \/>\n__PRODUCTNAME__<br \/>\n__COMPANY__<br \/>\n__COPYRIGHT__<br \/>\n__FILE__<br \/>\n__DATE__<br \/>\n__TIME__<br \/>\n__TARGET__<br \/>\n__PROCESSOR__<\/p>\n<p>&nbsp;<\/p><\/blockquote>\n<p><a href=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/09\/Packager-Micro-Output.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"Packager Micro Output\" src=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/09\/Packager-Micro-Output_thumb.png\" alt=\"Packager Micro Output\" width=\"644\" height=\"339\" border=\"0\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<h3><\/h3>\n<h3>Requires Statement PrimalSense<\/h3>\n<p>PowerShell Studio will now provide PrimalSense for requires statement parameters and values:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"Requires PrimalSense\" src=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/09\/Requires-PrimalSense.png\" alt=\"Requires PrimalSense\" width=\"563\" height=\"192\" border=\"0\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"Requires PrimalSense Values\" src=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/09\/Requires-PrimalSense-Values.png\" alt=\"Requires PrimalSense Values\" width=\"299\" height=\"101\" border=\"0\" \/><\/p>\n<p>&nbsp;<\/p>\n<h2>Feedback<\/h2>\n<p>Please continue providing your feedback. Many of the new features included in the service builds are suggestions from users like you. Submit your suggestions or feature requests on the <a href=\"https:\/\/www.sapien.com\/forums\/viewforum.php?f=9\">Wish List and Feature Requests<\/a> forum or the new <a href=\"https:\/\/www.sapien.com\/requests\">Feature Requests<\/a> page.<\/p>\n<p>You can view the complete service build log <a href=\"https:\/\/www.sapien.com\/software\/version_history\" target=\"_blank\" rel=\"noopener\">here<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>We released a new service build of PowerShell Studio 2018 (v5.5.155). This service build is included as part of the regular update cycle for our subscribers. &nbsp; New Features This service release introduces new features such as Scope Highlighting and updates PowerShell Studio\u2019s ribbon to surface hidden features. &nbsp; Updated Ribbon The most notable change [&hellip;]<\/p>\n","protected":false},"author":10,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[703,624,21,632],"tags":[28,1244,645,155,141],"class_list":["post-16213","post","type-post","status-publish","format-standard","hentry","category-powershell-studio","category-service-build","category-software-news","category-whats-new-software-news","tag-powershell","tag-powershell-studio-2018","tag-service-build-2","tag-service-release","tag-whats-new"],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/dev.sapien.com\/blog\/wp-json\/wp\/v2\/posts\/16213","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dev.sapien.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dev.sapien.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dev.sapien.com\/blog\/wp-json\/wp\/v2\/users\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/dev.sapien.com\/blog\/wp-json\/wp\/v2\/comments?post=16213"}],"version-history":[{"count":18,"href":"https:\/\/dev.sapien.com\/blog\/wp-json\/wp\/v2\/posts\/16213\/revisions"}],"predecessor-version":[{"id":16369,"href":"https:\/\/dev.sapien.com\/blog\/wp-json\/wp\/v2\/posts\/16213\/revisions\/16369"}],"wp:attachment":[{"href":"https:\/\/dev.sapien.com\/blog\/wp-json\/wp\/v2\/media?parent=16213"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dev.sapien.com\/blog\/wp-json\/wp\/v2\/categories?post=16213"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dev.sapien.com\/blog\/wp-json\/wp\/v2\/tags?post=16213"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}