Skip to main content

Playing with the ISE Profile

Since PowerShell 3 and 4, I’ve been teaching more of my PowerShell classes using the ISE rather than using the shell.  This is because the Intellisense really helps my students learn PowerShell.  One thing that I did not like about the ISE is that the cmdlet Start-Transcript could not be used in the ISE.  Now with PowerShell V5, you can. 

For those who have taken my PowerShell classes know that I have transcripts starting automatically in my Shell profile.  Well, time to do the same thing in the ISE.  My goal is to provide my students with a transcript of my activates from the ISE for their review after class.  First off, I need to create a profile for the ISE.

I can do this by Simply creating the correct profile file in my WindowPowerShell directory in my profile.

1

2

if (!(test-path $profile ))

{new-item -type file -path $profile -force} 

Here is the result:

     Directory: C:\Users\JASON\Documents\WindowsPowerShell

 

 

Mode                LastWriteTime         Length Name                                          

----                -------------         ------ ----                                          

-a----        3/15/2015   5:27 PM              0 Microsoft.PowerShellISE_profile.ps1    

 

image

Next I open the Microsoft.PowerShellISE_Profile.ps1 file and add in my transcript naming code.

1

2

3

4

5

6

7

8

9

10

11

12

13

# -- Automate PowerShell Transcription --

# Create a filename based on a time stamp.

$Filename = "$(Get-Date -Format "yyyy-MM-dd hh-mm-ss").txt"

$HD = $Env:HomeDrive

$HP = $Env:HomePath

$Path = "$($HD)$($HP)\Documents\WindowsPowerShell\ISE Transcripts"

# Turn on PowerShell transcripting.

Start-Transcript -Path "$Path\$Filename" -IncludeInvocationHeader

 

# Remove all trascript files older that 100 days.

Get-ChildItem -Path $Path |

    Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-100)} |

    Remove-Item

This code is very simple.  It creates a custom Date-Time stamped transcript file.  This helps if I have multiple ISE sessions open.  It also deletes old transcripts that are over 100 days old.  Close the ISE and open it.  You should be good to go.

Just remember, these transcript log files will get big, fast.  You may need to adjust the auto delete from 100 days to something less.  In line 12, the value –100 is the one to change.

Comments

Popular posts from this blog

Adding a Comment to a GPO with PowerShell

As I'm writing this article, I'm also writing a customization for a PowerShell course I'm teaching next week in Phoenix.  This customization deals with Group Policy and PowerShell.  For those of you who attend my classes may already know this, but I sit their and try to ask the questions to myself that others may ask as I present the material.  I finished up my customization a few hours ago and then I realized that I did not add in how to put a comment on a GPO.  This is a feature that many Group Policy Administrators may not be aware of. This past summer I attended a presentation at TechEd on Group Policy.  One organization in the crowd had over 5,000 Group Policies.  In an environment like that, the comment section can be priceless.  I always like to write in the comment section why I created the policy so I know its purpose next week after I've completed 50 other tasks and can't remember what I did 5 minutes ago. In the Group Policy module for PowerShell V3, th

Return duplicate values from a collection with PowerShell

If you have a collection of objects and you want to remove any duplicate items, it is fairly simple. # Create a collection with duplicate values $Set1 = 1 , 1 , 2 , 2 , 3 , 4 , 5 , 6 , 7 , 1 , 2   # Remove the duplicate values. $Set1 | Select-Object -Unique 1 2 3 4 5 6 7 What if you want only the duplicate values and nothing else? # Create a collection with duplicate values $Set1 = 1 , 1 , 2 , 2 , 3 , 4 , 5 , 6 , 7 , 1 , 2   #Create a second collection with duplicate values removed. $Set2 = $Set1 | Select-Object -Unique   # Return only the duplicate values. ( Compare-Object -ReferenceObject $Set2 -DifferenceObject $Set1 ) . InputObject | Select-Object – Unique 1 2 This works with objects as well as numbers.  The first command creates a collection with 2 duplicates of both 1 and 2.   The second command creates another collection with the duplicates filtered out.  The Compare-Object cmdlet will first find items that are diffe

How to list all the AD LDS instances on a server

AD LDS allows you to provide directory services to applications that are free of the confines of Active Directory.  To list all the AD LDS instances on a server, follow this procedure: Log into the server in question Open a command prompt. Type dsdbutil and press Enter Type List Instances and press Enter . You will receive a list of the instance name, both the LDAP and SSL port numbers, the location of the database, and its status.