|
|
<span style="color: #606060" id="lnum1"> 1:</span> Function Out-MSWord { |
|
|
<span style="color: #606060" id="lnum2"> 2:</span> <span style="color: #008000">#requires -version 2.0</span> |
|
|
<span style="color: #606060" id="lnum3"> 3:</span>  |
|
|
<span style="color: #606060" id="lnum4"> 4:</span> <<span style="color: #008000">#</span> |
|
|
<span style="color: #606060" id="lnum5"> 5:</span> .Synopsis |
|
|
<span style="color: #606060" id="lnum6"> 6:</span> Accept pipelined input from a PowerShell expression and write output to a Microsoft Word document. |
|
|
<span style="color: #606060" id="lnum7"> 7:</span> .Description |
|
|
<span style="color: #606060" id="lnum8"> 8:</span> Pipe cmdlet output to this <span style="color: #0000ff">function</span> and create a MS Word document. You must have Microsoft Word installed. |
|
|
<span style="color: #606060" id="lnum9"> 9:</span> This has been tested with Microsoft Word 2007. If you don<span style="color: #006080">'t specify a filename, Microsoft Word will open |
|
|
<span style="color: #606060" id="lnum10"> 10:</span> upon completion and you can manually save the document. You can specify a filename along with optional |
|
|
<span style="color: #606060" id="lnum11"> 11:</span> parameters -append or -noclobber. |
|
|
<span style="color: #606060" id="lnum12"> 12:</span> |
|
|
<span style="color: #606060" id="lnum13"> 13:</span> The -noclobber parameter will not overwrite any existing files. Otherwise, if you specify a file and it |
|
|
<span style="color: #606060" id="lnum14"> 14:</span> already exists, it will be overwritten. |
|
|
<span style="color: #606060" id="lnum15"> 15:</span>  |
|
|
<span style="color: #606060" id="lnum16"> 16:</span> The -Tee parameter will write piped input to the console as well as send it to the Word file. |
|
|
<span style="color: #606060" id="lnum17"> 17:</span> |
|
|
<span style="color: #606060" id="lnum18"> 18:</span> You can specify font size, name and color for the document body and footer. The defaults are 8pt Consolas. |
|
|
<span style="color: #606060" id="lnum19"> 19:</span> You will get best results using a fixed width font like Courier New or Lucida Console. Page numbering is |
|
|
<span style="color: #606060" id="lnum20"> 20:</span> automatically defined for the lower right corner of each page. If you don'</span>t specify a footer it defaults to |
|
|
<span style="color: #606060" id="lnum21"> 21:</span> Printed [datetime]. |
|
|
<span style="color: #606060" id="lnum22"> 22:</span>  |
|
|
<span style="color: #606060" id="lnum23"> 23:</span> .Parameter Path |
|
|
<span style="color: #606060" id="lnum24"> 24:</span> The path and filename <span style="color: #0000ff">for</span> the new Microsoft Word document. |
|
|
<span style="color: #606060" id="lnum25"> 25:</span> .Parameter InputObject |
|
|
<span style="color: #606060" id="lnum26"> 26:</span> Pipelined objects passed to this <span style="color: #0000ff">function</span>. |
|
|
<span style="color: #606060" id="lnum27"> 27:</span> .Parameter Tee |
|
|
<span style="color: #606060" id="lnum28"> 28:</span> Display objects <span style="color: #0000ff">in</span> the console and write to the Word document. |
|
|
<span style="color: #606060" id="lnum29"> 29:</span> .Parameter Append |
|
|
<span style="color: #606060" id="lnum30"> 30:</span> Append data to the Microsoft Word document |
|
|
<span style="color: #606060" id="lnum31"> 31:</span> .Parameter NoClobber |
|
|
<span style="color: #606060" id="lnum32"> 32:</span> Don<span style="color: #006080">'t overwrite the Microsoft Word document if it already exists. |
|
|
<span style="color: #606060" id="lnum33"> 33:</span> .Parameter Font |
|
|
<span style="color: #606060" id="lnum34"> 34:</span> Font name to use in the document body. Default is Consolas. |
|
|
<span style="color: #606060" id="lnum35"> 35:</span> .Parameter FontSize |
|
|
<span style="color: #606060" id="lnum36"> 36:</span> Font size to use in the document body. Default is 8. This parameter has an alias of Size. |
|
|
<span style="color: #606060" id="lnum37"> 37:</span> .Parameter FontColor |
|
|
<span style="color: #606060" id="lnum38"> 38:</span> Font color to use in the document body. Valid choices are Auto,Black,Blue,Green,Red,Teal,Violet, and Yellow. |
|
|
<span style="color: #606060" id="lnum39"> 39:</span> The default is Auto. This paramater has an alias of Color. |
|
|
<span style="color: #606060" id="lnum40"> 40:</span> .Parameter FooterText |
|
|
<span style="color: #606060" id="lnum41"> 41:</span> Text to use for the document footer. The default is Printed [datetime]. This parameter has an alias |
|
|
<span style="color: #606060" id="lnum42"> 42:</span> of Footer. |
|
|
<span style="color: #606060" id="lnum43"> 43:</span> .Parameter FooterFont |
|
|
<span style="color: #606060" id="lnum44"> 44:</span> Font to use for the document footer. Default is Consolas. |
|
|
<span style="color: #606060" id="lnum45"> 45:</span> .Parameter FooterSize |
|
|
<span style="color: #606060" id="lnum46"> 46:</span> Font size to use for the document footer. Default is 8. |
|
|
<span style="color: #606060" id="lnum47"> 47:</span>  |
|
|
<span style="color: #606060" id="lnum48"> 48:</span> .Example |
|
|
<span style="color: #606060" id="lnum49"> 49:</span> get-service | where {$_.status -eq "running"} | Out-MSWord |
|
|
<span style="color: #606060" id="lnum50"> 50:</span> |
|
|
<span style="color: #606060" id="lnum51"> 51:</span> This will create a Microsoft Word document with a list of all running processes. |
|
|
<span style="color: #606060" id="lnum52"> 52:</span> .Example |
|
|
<span style="color: #606060" id="lnum53"> 53:</span> gwmi win32_bios | ow -path "c:\files\my3.doc" -noclobber |
|
|
<span style="color: #606060" id="lnum54"> 54:</span>  |
|
|
<span style="color: #606060" id="lnum55"> 55:</span> Save the output from Get-WMIObject for the Win32_Bios class to a file called c:\files\my3.doc. If the file |
|
|
<span style="color: #606060" id="lnum56"> 56:</span> already exists it will not be overwritten. |
|
|
<span style="color: #606060" id="lnum57"> 57:</span> .Example |
|
|
<span style="color: #606060" id="lnum58"> 58:</span> get-eventlog -list | ow c:\test\log.docx -tee |
|
|
<span style="color: #606060" id="lnum59"> 59:</span> |
|
|
<span style="color: #606060" id="lnum60"> 60:</span> Take the outpout from Get-Eventlog and not only save it to the specified file but also display the results |
|
|
<span style="color: #606060" id="lnum61"> 61:</span> in the console. This example assumes you are using the alias ow for the Out-MSWord function. |
|
|
<span style="color: #606060" id="lnum62"> 62:</span> .Example |
|
|
<span style="color: #606060" id="lnum63"> 63:</span> get-process | sort workingset -descending | where {$_.workingset -lt 100mb -and $_.workingset -gt 25mb} | ow c:\files\ps.doc -fontcolor yellow -font "Lucida Console" -fontsize 10.5 -append |
|
|
<span style="color: #606060" id="lnum64"> 64:</span> |
|
|
<span style="color: #606060" id="lnum65"> 65:</span> This expression will create a Word document of processes with a workingset of between 25MB and 100MB. The |
|
|
<span style="color: #606060" id="lnum66"> 66:</span> results will be appended to the file, ps.doc, written in a yellow Lucida Console 10.5 font. This example |
|
|
<span style="color: #606060" id="lnum67"> 67:</span> assumes you are using the ow alias for this function. |
|
|
<span style="color: #606060" id="lnum68"> 68:</span> .Example |
|
|
<span style="color: #606060" id="lnum69"> 69:</span> @((gwmi win32_operatingsystem),(gwmi win32_bios),(gwmi win32_computersystem)) | ow -footertext ("{0} captured: {1}" -f $env:computername,(get-date)) |
|
|
<span style="color: #606060" id="lnum70"> 70:</span>  |
|
|
<span style="color: #606060" id="lnum71"> 71:</span> Take the output from the three Get-WMIObject expressions and write output to all of them to a Microsoft Word |
|
|
<span style="color: #606060" id="lnum72"> 72:</span> document. A custom footer will be included that shows the computername and the current datetime. |
|
|
<span style="color: #606060" id="lnum73"> 73:</span> .Example |
|
|
<span style="color: #606060" id="lnum74"> 74:</span> $file="c:\reports\eventreport.doc" |
|
|
<span style="color: #606060" id="lnum75"> 75:</span> C:\PS>"Eventlog report for $env:computername" | Out-MSWord $file -size 14 |
|
|
<span style="color: #606060" id="lnum76"> 76:</span> C:\PS>$events=get-eventlog System -newest 100 | group EntryType |
|
|
<span style="color: #606060" id="lnum77"> 77:</span> C:\PS>for ($i=0;$i -lt $events.count;$i++) { |
|
|
<span style="color: #606060" id="lnum78"> 78:</span> switch ($events[$i].name) { |
|
|
<span style="color: #606060" id="lnum79"> 79:</span> "Information" { |
|
|
<span style="color: #606060" id="lnum80"> 80:</span> Out-MSWord $file -input "Information Events" -size 10 -append |
|
|
<span style="color: #606060" id="lnum81"> 81:</span> $events[$i].group | format-list TimeWritten,EventID,Source,Message | |
|
|
<span style="color: #606060" id="lnum82"> 82:</span> Out-MSWord $file -color Green -append |
|
|
<span style="color: #606060" id="lnum83"> 83:</span> } |
|
|
<span style="color: #606060" id="lnum84"> 84:</span> "SuccessAudit" { |
|
|
<span style="color: #606060" id="lnum85"> 85:</span> Out-MSWord $file -input "Success Audit Events" -size 10 -append |
|
|
<span style="color: #606060" id="lnum86"> 86:</span> $events[$i].group | format-list TimeWritten,EventID,Source,Message | |
|
|
<span style="color: #606060" id="lnum87"> 87:</span> Out-MSWord $file -color Green -append |
|
|
<span style="color: #606060" id="lnum88"> 88:</span> } |
|
|
<span style="color: #606060" id="lnum89"> 89:</span> "Error" { |
|
|
<span style="color: #606060" id="lnum90"> 90:</span> Out-MSWord $file -input "Error Events" -size 10 -append |
|
|
<span style="color: #606060" id="lnum91"> 91:</span> $events[$i].group | format-list TimeWritten,EventID,Source,Message | |
|
|
<span style="color: #606060" id="lnum92"> 92:</span> Out-MSWord $file -color Red -append |
|
|
<span style="color: #606060" id="lnum93"> 93:</span> } |
|
|
<span style="color: #606060" id="lnum94"> 94:</span> "FailureAudit" { |
|
|
<span style="color: #606060" id="lnum95"> 95:</span> Out-MSWord $file -input "Failure Audit Events" -size 10 -append |
|
|
<span style="color: #606060" id="lnum96"> 96:</span> $events[$i].group | format-list TimeWritten,EventID,Source,Message | |
|
|
<span style="color: #606060" id="lnum97"> 97:</span> Out-MSWord $file -color Red -append |
|
|
<span style="color: #606060" id="lnum98"> 98:</span> } |
|
|
<span style="color: #606060" id="lnum99"> 99:</span> "Warning" { |
|
|
<span style="color: #606060" id="lnum100"> 100:</span> Out-MSWord $file -input "Warning Events" -size 10 -append |
|
|
<span style="color: #606060" id="lnum101"> 101:</span> $events[$i].group | format-list TimeWritten,EventID,Source,Message | |
|
|
<span style="color: #606060" id="lnum102"> 102:</span> Out-MSWord $file -color Yellow -append |
|
|
<span style="color: #606060" id="lnum103"> 103:</span> } |
|
|
<span style="color: #606060" id="lnum104"> 104:</span> } #end Switch |
|
|
<span style="color: #606060" id="lnum105"> 105:</span> } #end foreach |
|
|
<span style="color: #606060" id="lnum106"> 106:</span>  |
|
|
<span style="color: #606060" id="lnum107"> 107:</span> In this example a formatted Microsoft Word document is created that list eventlog information for the local |
|
|
<span style="color: #606060" id="lnum108"> 108:</span> computer. Event log information is grouped by EntryType and then group is processed by using a For statement |
|
|
<span style="color: #606060" id="lnum109"> 109:</span> and a Switch construct. Event information is written to the Microsoft Word document in a corresponding font |
|
|
<span style="color: #606060" id="lnum110"> 110:</span> color. This example also shows how to insert text into the document by explicitly using the -InputObject |
|
|
<span style="color: #606060" id="lnum111"> 111:</span> parameter. |
|
|
<span style="color: #606060" id="lnum112"> 112:</span>  |
|
|
<span style="color: #606060" id="lnum113"> 113:</span> .Inputs |
|
|
<span style="color: #606060" id="lnum114"> 114:</span> Accepts objects as pipelined input. |
|
|
<span style="color: #606060" id="lnum115"> 115:</span> .Outputs |
|
|
<span style="color: #606060" id="lnum116"> 116:</span> Microsoft Word document object |
|
|
<span style="color: #606060" id="lnum117"> 117:</span> .Link |
|
|
<span style="color: #606060" id="lnum118"> 118:</span> Out-Printer |
|
|
<span style="color: #606060" id="lnum119"> 119:</span> Out-File |
|
|
<span style="color: #606060" id="lnum120"> 120:</span> .Notes |
|
|
<span style="color: #606060" id="lnum121"> 121:</span> NAME: Out-MSWord |
|
|
<span style="color: #606060" id="lnum122"> 122:</span> VERSION: 2.0 |
|
|
<span style="color: #606060" id="lnum123"> 123:</span> AUTHOR: Jeffery Hicks |
|
|
<span style="color: #606060" id="lnum124"> 124:</span> LASTEDIT: September 18, 2009 |
|
|
<span style="color: #606060" id="lnum125"> 125:</span>  |
|
|
<span style="color: #606060" id="lnum126"> 126:</span>  |
|
|
<span style="color: #606060" id="lnum127"> 127:</span> #> |
|
|
<span style="color: #606060" id="lnum128"> 128:</span>  |
|
|
<span style="color: #606060" id="lnum129"> 129:</span> [CmdletBinding()] |
|
|
<span style="color: #606060" id="lnum130"> 130:</span>  |
|
|
<span style="color: #606060" id="lnum131"> 131:</span> #define the parameters |
|
|
<span style="color: #606060" id="lnum132"> 132:</span> param ( |
|
|
<span style="color: #606060" id="lnum133"> 133:</span> [Parameter(ValueFromPipeline=$False,Position=0,Mandatory=$False,HelpMessage="The filename and path for the saved Word document.")] |
|
|
<span style="color: #606060" id="lnum134"> 134:</span> [ValidateScript({Test-Path (split-path $_)})] |
|
|
<span style="color: #606060" id="lnum135"> 135:</span> [String]$Path, |
|
|
<span style="color: #606060" id="lnum136"> 136:</span> |
|
|
<span style="color: #606060" id="lnum137"> 137:</span> [Parameter(ValueFromPipeline=$True,Position=1,Mandatory=$True,HelpMessage="Pipelined input.")] |
|
|
<span style="color: #606060" id="lnum138"> 138:</span> [object[]]$InputObject, |
|
|
<span style="color: #606060" id="lnum139"> 139:</span>  |
|
|
<span style="color: #606060" id="lnum140"> 140:</span> [Parameter(ValueFromPipeline=$False,Mandatory=$False, HelpMessage="If specified, write to the console and the Word document.")] |
|
|
<span style="color: #606060" id="lnum141"> 141:</span> [switch]$Tee, |
|
|
<span style="color: #606060" id="lnum142"> 142:</span> |
|
|
<span style="color: #606060" id="lnum143"> 143:</span> [Parameter(ValueFromPipeline=$False,Mandatory=$False,HelpMessage="If specified, append to output write to the Word document.")] |
|
|
<span style="color: #606060" id="lnum144"> 144:</span> [switch]$Append, |
|
|
<span style="color: #606060" id="lnum145"> 145:</span> |
|
|
<span style="color: #606060" id="lnum146"> 146:</span> [Parameter(ValueFromPipeline=$False,Mandatory=$False,HelpMessage="If specified, don'</span>t overwrite the existing Word document specified by `$path.<span style="color: #006080">")] |
|
|
<span style="color: #606060" id="lnum147"> 147:</span> [switch]$NoClobber, |
|
|
<span style="color: #606060" id="lnum148"> 148:</span> |
|
|
<span style="color: #606060" id="lnum149"> 149:</span> [Parameter(ValueFromPipeline=$False,Mandatory=$False,HelpMessage="</span>The font family to use <span style="color: #0000ff">for</span> the document body.<span style="color: #006080">")] |
|
|
<span style="color: #606060" id="lnum150"> 150:</span> [string]$Font="</span>Consolas<span style="color: #006080">", |
|
|
<span style="color: #606060" id="lnum151"> 151:</span> |
|
|
<span style="color: #606060" id="lnum152"> 152:</span> [Parameter(ValueFromPipeline=$False,Mandatory=$False,HelpMessage="</span>The font size to use <span style="color: #0000ff">for</span> the document body.<span style="color: #006080">")] |
|
|
<span style="color: #606060" id="lnum153"> 153:</span> [Alias("</span>Size<span style="color: #006080">")] |
|
|
<span style="color: #606060" id="lnum154"> 154:</span> [double]$FontSize=8, |
|
|
<span style="color: #606060" id="lnum155"> 155:</span> |
|
|
<span style="color: #606060" id="lnum156"> 156:</span> [Parameter(ValueFromPipeline=$False,Mandatory=$False,HelpMessage="</span>The font color to use <span style="color: #0000ff">for</span> the document body.<span style="color: #006080">")] |
|
|
<span style="color: #606060" id="lnum157"> 157:</span> [ValidateSet("</span>Auto<span style="color: #006080">","</span>Black<span style="color: #006080">","</span>Blue<span style="color: #006080">","</span>Green<span style="color: #006080">","</span>Red<span style="color: #006080">","</span>Teal<span style="color: #006080">","</span>Violet<span style="color: #006080">","</span>Yellow<span style="color: #006080">")] |
|
|
<span style="color: #606060" id="lnum158"> 158:</span> [Alias("</span>Color<span style="color: #006080">")] |
|
|
<span style="color: #606060" id="lnum159"> 159:</span> [string]$FontColor="</span>Auto<span style="color: #006080">", |
|
|
<span style="color: #606060" id="lnum160"> 160:</span> |
|
|
<span style="color: #606060" id="lnum161"> 161:</span> [Parameter(ValueFromPipeline=$False,Mandatory=$False,HelpMessage="</span>Text to use <span style="color: #0000ff">for</span> the footer.<span style="color: #006080">")] |
|
|
<span style="color: #606060" id="lnum162"> 162:</span> [Alias("</span>Footer<span style="color: #006080">")] |
|
|
<span style="color: #606060" id="lnum163"> 163:</span> [string]$FooterText=("</span>printed {0}<span style="color: #006080">" -f (Get-Date)), |
|
|
<span style="color: #606060" id="lnum164"> 164:</span> |
|
|
<span style="color: #606060" id="lnum165"> 165:</span> [Parameter(ValueFromPipeline=$False,Mandatory=$False,HelpMessage="</span>The font to use <span style="color: #0000ff">for</span> the document footer.<span style="color: #006080">")] |
|
|
<span style="color: #606060" id="lnum166"> 166:</span> [string]$FooterFont="</span>Consolas<span style="color: #006080">", |
|
|
<span style="color: #606060" id="lnum167"> 167:</span> |
|
|
<span style="color: #606060" id="lnum168"> 168:</span> [Parameter(ValueFromPipeline=$False,Mandatory=$False,HelpMessage="</span>The font size to use <span style="color: #0000ff">for</span> the document footer.<span style="color: #006080">")] |
|
|
<span style="color: #606060" id="lnum169"> 169:</span> [double]$FooterSize=8 |
|
|
<span style="color: #606060" id="lnum170"> 170:</span> |
|
|
<span style="color: #606060" id="lnum171"> 171:</span> ) #end param definition |
|
|
<span style="color: #606060" id="lnum172"> 172:</span>  |
|
|
<span style="color: #606060" id="lnum173"> 173:</span> |
|
|
<span style="color: #606060" id="lnum174"> 174:</span> BEGIN{ |
|
|
<span style="color: #606060" id="lnum175"> 175:</span>  |
|
|
<span style="color: #606060" id="lnum176"> 176:</span> #define some MS Word variables |
|
|
<span style="color: #606060" id="lnum177"> 177:</span> $wdSeekMainDocument = 0 |
|
|
<span style="color: #606060" id="lnum178"> 178:</span> $wdSeekPrimaryFooter = 4 |
|
|
<span style="color: #606060" id="lnum179"> 179:</span> $wdSeekPrimaryHeader = 1 |
|
|
<span style="color: #606060" id="lnum180"> 180:</span> $wdAlignPageNumberCenter = 1 |
|
|
<span style="color: #606060" id="lnum181"> 181:</span> $wdAlignPageNumberInside = 3 |
|
|
<span style="color: #606060" id="lnum182"> 182:</span> $wdAlignPageNumberLeft = 0 |
|
|
<span style="color: #606060" id="lnum183"> 183:</span> $wdAlignPageNumberOutside = 4 |
|
|
<span style="color: #606060" id="lnum184"> 184:</span> $wdAlignPageNumberRight = 2 |
|
|
<span style="color: #606060" id="lnum185"> 185:</span> $wdStory = 6 |
|
|
<span style="color: #606060" id="lnum186"> 186:</span> |
|
|
<span style="color: #606060" id="lnum187"> 187:</span> #define color values |
|
|
<span style="color: #606060" id="lnum188"> 188:</span> $Auto = 0 |
|
|
<span style="color: #606060" id="lnum189"> 189:</span> $Black = 1 |
|
|
<span style="color: #606060" id="lnum190"> 190:</span> $Blue = 16711680 |
|
|
<span style="color: #606060" id="lnum191"> 191:</span> $Green = 32768 |
|
|
<span style="color: #606060" id="lnum192"> 192:</span> $Red = 255 |
|
|
<span style="color: #606060" id="lnum193"> 193:</span> $Teal = 8421376 |
|
|
<span style="color: #606060" id="lnum194"> 194:</span> $Violet = 8388736 |
|
|
<span style="color: #606060" id="lnum195"> 195:</span> $Yellow = 32896 |
|
|
<span style="color: #606060" id="lnum196"> 196:</span> |
|
|
<span style="color: #606060" id="lnum197"> 197:</span> # #select font color |
|
|
<span style="color: #606060" id="lnum198"> 198:</span> switch ($fontcolor) { |
|
|
<span style="color: #606060" id="lnum199"> 199:</span> "</span>Auto<span style="color: #006080">" {$color=$Auto} |
|
|
<span style="color: #606060" id="lnum200"> 200:</span> "</span>Black<span style="color: #006080">" {$color=$Black } |
|
|
<span style="color: #606060" id="lnum201"> 201:</span> "</span>Blue<span style="color: #006080">" {$color=$Blue } |
|
|
<span style="color: #606060" id="lnum202"> 202:</span> "</span>Green<span style="color: #006080">" {$color=$Green } |
|
|
<span style="color: #606060" id="lnum203"> 203:</span> "</span>Red<span style="color: #006080">" {$color=$Red } |
|
|
<span style="color: #606060" id="lnum204"> 204:</span> "</span>Teal<span style="color: #006080">" {$color=$Teal } |
|
|
<span style="color: #606060" id="lnum205"> 205:</span> "</span>Violet<span style="color: #006080">" {$color=$Violet } |
|
|
<span style="color: #606060" id="lnum206"> 206:</span> "</span>Yellow<span style="color: #006080">" {$color=$Yellow } |
|
|
<span style="color: #606060" id="lnum207"> 207:</span> |
|
|
<span style="color: #606060" id="lnum208"> 208:</span> default { |
|
|
<span style="color: #606060" id="lnum209"> 209:</span> #this line should never get called since there is data validation with the fontcolor parameter, but I'll leave it in |
|
|
<span style="color: #606060" id="lnum210"> 210:</span> #just in case |
|
|
<span style="color: #606060" id="lnum211"> 211:</span> Write-Warning "</span>Invalid color choice: $fontcolor. Using Default. Valid color choices are: Black,Blue,Green,Red,Teal,Violet and Yellow.<span style="color: #006080">" |
|
|
<span style="color: #606060" id="lnum212"> 212:</span> $color=$wdAuto} |
|
|
<span style="color: #606060" id="lnum213"> 213:</span> } #end Switch |
|
|
<span style="color: #606060" id="lnum214"> 214:</span> |
|
|
<span style="color: #606060" id="lnum215"> 215:</span> $ErrorActionPreference="</span>SilentlyContinue<span style="color: #006080">" |
|
|
<span style="color: #606060" id="lnum216"> 216:</span> |
|
|
<span style="color: #606060" id="lnum217"> 217:</span> Trap { |
|
|
<span style="color: #606060" id="lnum218"> 218:</span> Write-Warning "</span>There was an error. Make sure you have Microsoft Word installed and that you are specifying valid filename or path.<span style="color: #006080">" |
|
|
<span style="color: #606060" id="lnum219"> 219:</span> Break |
|
|
<span style="color: #606060" id="lnum220"> 220:</span> } |
|
|
<span style="color: #606060" id="lnum221"> 221:</span> #create the MS Word COM object |
|
|
<span style="color: #606060" id="lnum222"> 222:</span> $word=New-Object -ComObject "</span>Word.Application<span style="color: #006080">" -ea Stop |
|
|
<span style="color: #606060" id="lnum223"> 223:</span> |
|
|
<span style="color: #606060" id="lnum224"> 224:</span> #get document if -append |
|
|
<span style="color: #606060" id="lnum225"> 225:</span> if ($append) |
|
|
<span style="color: #606060" id="lnum226"> 226:</span> { |
|
|
<span style="color: #606060" id="lnum227"> 227:</span> #verify file exists and if so, open it |
|
|
<span style="color: #606060" id="lnum228"> 228:</span> if (Test-Path $path) |
|
|
<span style="color: #606060" id="lnum229"> 229:</span> { |
|
|
<span style="color: #606060" id="lnum230"> 230:</span> $doc=$word.documents.open($path) |
|
|
<span style="color: #606060" id="lnum231"> 231:</span> $blnNewFile=$False |
|
|
<span style="color: #606060" id="lnum232"> 232:</span>  |
|
|
<span style="color: #606060" id="lnum233"> 233:</span> } |
|
|
<span style="color: #606060" id="lnum234"> 234:</span> else |
|
|
<span style="color: #606060" id="lnum235"> 235:</span> { |
|
|
<span style="color: #606060" id="lnum236"> 236:</span> #you asked to append to a file that doesn't exist so create a new one |
|
|
<span style="color: #606060" id="lnum237"> 237:</span> $doc=$word.Documents.add() |
|
|
<span style="color: #606060" id="lnum238"> 238:</span> $blnNewfile=$True |
|
|
<span style="color: #606060" id="lnum239"> 239:</span> } |
|
|
<span style="color: #606060" id="lnum240"> 240:</span> } |
|
|
<span style="color: #606060" id="lnum241"> 241:</span> else |
|
|
<span style="color: #606060" id="lnum242"> 242:</span> { |
|
|
<span style="color: #606060" id="lnum243"> 243:</span> #create a new document |
|
|
<span style="color: #606060" id="lnum244"> 244:</span> $doc=$word.Documents.add() |
|
|
<span style="color: #606060" id="lnum245"> 245:</span> $blnNewFile=$True |
|
|
<span style="color: #606060" id="lnum246"> 246:</span>  |
|
|
<span style="color: #606060" id="lnum247"> 247:</span> } |
|
|
<span style="color: #606060" id="lnum248"> 248:</span> |
|
|
<span style="color: #606060" id="lnum249"> 249:</span> $selection=$word.Selection |
|
|
<span style="color: #606060" id="lnum250"> 250:</span> |
|
|
<span style="color: #606060" id="lnum251"> 251:</span> #get the footer |
|
|
<span style="color: #606060" id="lnum252"> 252:</span> $doc.ActiveWindow.ActivePane.view.SeekView=$wdSeekPrimaryFooter |
|
|
<span style="color: #606060" id="lnum253"> 253:</span>  |
|
|
<span style="color: #606060" id="lnum254"> 254:</span> #set the footer |
|
|
<span style="color: #606060" id="lnum255"> 255:</span> $selection.HeaderFooter.Range.Text=$footerText |