PoshCode Archive  Artifact [6a62829cad]

Artifact 6a62829cad4100bc826db1e05b93a28865682c030b01273510dfaf81b76ed2cd:

  • File Set-PowerGUIWelcomePage.ps1 — part of check-in [31d8801812] at 2018-06-10 14:27:27 on branch trunk — This script customizes the welcome screen which PowerGUI admin console displays on start-up or when a folder is selected in the left-hand tree. (user: Dmitry Sotnikov size: 3040)

# encoding: ascii
# api: powershell
# title: Set-PowerGUIWelcomePage
# description: This script customizes the welcome screen which PowerGUI admin console displays on start-up or when a folder is selected in the left-hand tree.
# version: 1.1
# type: script
# author: Dmitry Sotnikov
# license: CC0
# x-poshcode-id: 961
# x-derived-from-id: 984
# x-archived: 2016-03-19T17:57:10
# x-published: 2009-03-17T14:17:00
#
# You can use it to introduce branding to the PowerGUI consoles used in your company or to provide your employees with additional information.
# Create the MHT file by saving it from Internet Explorer, Microsoft Word or another editor, then run this script to set a reference to the file from PowerGUI configuration.
# See http://dmitrysotnikov.wordpress.com/2009/02/11/rebranding-powergui-consolerebranding-powergui-console/ for details
#
########################################################
# Modifies the default PowerGUI admin console
# welcome screen to the mht file you supply
# Details available at:
# http://dmitrysotnikov.wordpress.com/2009/02/11/rebranding-powergui-consolerebranding-powergui-console/ 
########################################################
# Usage:
# & .\Set-PowerGUIWelcomePage.ps1 \\server\share\my.mht
########################################################
# (c) Dmitry Sotnikov, Oleg Shevnin
#  1.1 - Mar 17: added exception if PowerGUI Admin Console is running
#  v1, Feb 11, 2009
#
########################################################

param ($mhtpath)
# this should be path (local or UNC) to the new welcome page

# make sure that the admin console is closed
if (( get-process Quest.PowerGUI -ErrorAction SilentlyContinue ) -ne $null) { 
	throw "Please close the PowerGUI administrative console before running this script " 
}

# verify that the new file exists and is mht
if ( $mhtpath -eq $null ) {
	$mhtpath = Read-Host "Please provide path to the MHT file."
}
$mhtfile = Get-ChildItem $mhtpath
if ( $mhtfile -eq $null) { 
	throw "MHT file $mhtpath not found. Please verify the script parameter." 
}
if ( $mhtfile.Extension -ne ".mht" ) {
	throw "File $mhtpath is not an MHT file. Only MHT files are supported." 
}

# Locate PowerGUI configuration for current user on this computer
$cfgpath = "$($env:APPDATA)\Quest Software\PowerGUI\quest.powergui.xml"

# Create backup
Copy-Item $cfgpath "$cfgpath.backupconfig"

# Read the file
$xml = [xml]$(Get-Content $cfgpath)

# If the section for custom welcome page does not exist - create it
$node = $xml.SelectSingleNode("//container[@id='4b510268-a4eb-42e0-9276-06223660291d']")
if ($node -eq $null) {
	$node = $xml.CreateElement("container")
	
	$node.SetAttribute("id", "4b510268-a4eb-42e0-9276-06223660291d")
	$node.SetAttribute("name", "Home Page")
	
	$node.AppendChild($xml.CreateElement("value"))
	$xml.SelectSingleNode("/configuration/items").AppendChild($node)
}

# Set the new value and save the file
$node.Value = $mhtpath
$xml.Save($cfgpath)