c# pdf viewer itextsharp : Reorder pages pdf software control dll winforms web page asp.net web forms Windows%20Powershell%20in%20Action%202nd%20Edition63-part1520

600
CHAPTER 14
E
RRORS
AND
EXCEPTIONS
Let’s see how these parameters are used by working through a few examples. We'll 
look at the Operations Manager log.
NOTE
This log may not be present on your system—it requires that 
you  use  Microsoft  Operations  Manager 
(MOM)
 If  you  don’t  use 
MOM
, just pick a log from the list you saw earlier (such as System) to 
work with instead.
Start by listing the newest 10 events in this log:
PS (1) > Get-EventLog -LogName 'Operations Manager' -Newest 10
Index Time          EntryType   Source                 InstanceID
----- ----          ---------   ------                 ----------
101 Apr 14 03:28  Information HealthService          1073743827
100 Apr 14 03:28  Error       HealthService          3221227482
99 Apr 14 03:28  Information Health Service ES...          102
98 Mar 31 03:20  Information HealthService          1073743827
97 Mar 31 03:20  Error       HealthService          3221227482
96 Mar 31 03:20  Information Health Service ES...          102
95 Mar 10 03:30  Information HealthService          1073743827
94 Mar 10 03:30  Error       HealthService          3221227482
93 Mar 10 03:30  Information Health Service ES...          302
92 Mar 10 03:30  Information Health Service ES...          301
The 
-Index
parameter lets you retrieve a specific entry from the log. Save this entry 
in a variable and then use 
Format-List
to display additional properties of the entry:
PS (2) > $e = Get-EventLog -LogName 'Operations Manager' -Index 99 
PS (3) > $e | Format-List
Index              : 99
EntryType          : Information 
InstanceId         : 102 
Message            : HealthService (2264) Health Service Store: The d
atabase engine (6.00.6002.0000) started a new in
stance (0).
Category           : General 
CategoryNumber     : 1 
ReplacementStrings : {HealthService, 2264, Health Service Store: , 0.
..}
Source             : Health Service ESE Store 
TimeGenerated      : 4/14/2010 3:28:02 AM 
TimeWritten        : 4/14/2010 3:28:02 AM 
UserName           :
Using 
Format-List
shows you, among other things, the 
InstanceID
and text of the 
event message. Now retrieve all the events using this message 
InstanceID
:
PS (4) > Get-EventLog -LogName 'Operations Manager' -Newest 10 ` 
>> -InstanceId 102 
>>
Reorder pages pdf - re-order PDF pages in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Support Customizing Page Order of PDF Document in C# Project
reorder pages in pdf online; how to reorder pages in pdf online
Reorder pages pdf - VB.NET PDF Page Move Library: re-order PDF pages in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Sort PDF Document Pages Using VB.NET Demo Code
move pdf pages in preview; move pages in pdf reader
P
OWER
S
HELL
AND
THE
EVENT
LOG
601
Index Time          EntryType   Source                 InstanceID
----- ----          ---------   ------                 ----------
99 Apr 14 03:28  Information Health Service ES...          102
96 Mar 31 03:20  Information Health Service ES...          102
90 Mar 10 03:29  Information Health Service ES...          102
84 Feb 24 03:23  Information Health Service ES...          102
81 Feb 14 17:55  Information Health Service ES...          102
78 Feb 10 03:28  Information Health Service ES...          102
72 Jan 23 03:21  Information Health Service ES...          102
66 Jan 13 03:25  Information Health Service ES...          102
60 Dec 10 03:27  Information Health Service ES...          102
57 Nov 25 03:21  Information Health Service ES...          102
You can use 
-Before
and 
-After
to retrieve messages around a specific date (and 
time if desired):
PS (5) > Get-EventLog -LogName 'Operations Manager' ` 
>> -After 'Oct 15/2009' -Before "Oct 28/2009" 
>>
Index Time          EntryType   Source                 InstanceID
----- ----          ---------   ------                 ----------
28 Oct 27 23:08  Information HealthService          1073743827
27 Oct 27 23:08  Error       HealthService          3221227482
26 Oct 27 23:07  Information Health Service ES...          102
25 Oct 27 21:41  Information HealthService          1073743827
24 Oct 27 21:41  Error       HealthService          3221227482
23 Oct 27 21:40  Information Health Service ES...          102
22 Oct 27 20:58  Information HealthService          1073743827
21 Oct 27 20:58  Error       HealthService          3221227482
20 Oct 27 20:58  Information Health Service ES...          102
19 Oct 18 11:24  Information HealthService          1073743827
18 Oct 18 11:24  Error       HealthService          3221227482
17 Oct 18 11:23  Information Health Service ES...          102
16 Oct 15 03:10  Information HealthService          1073743827
15 Oct 15 03:10  Error       HealthService          3221227482
14 Oct 15 03:09  Information Health Service ES...          102
Here you’ve retrieved all the messages between October 15 and October 28 in 2009. 
You can combine 
-Before
and 
-Newest
to get a specific number of messages before 
a particular date:
PS (7) > Get-EventLog -LogName 'Operations Manager' ` 
>> -Before 'Oct 15/2009' -Newest 10 
>>
Index Time          EntryType   Source                 InstanceID
----- ----          ---------   ------                 ----------
13 Oct 11 03:09  Information HealthService          1073743827
12 Oct 11 03:09  Error       HealthService          3221227482
11 Oct 11 03:08  Information Health Service ES...          102
10 Oct 10 08:48  Information HealthService          1073743827
9 Oct 10 08:48  Error       HealthService          3221227482
8 Oct 10 08:48  Information Health Service ES...          302
7 Oct 10 08:46  Information Health Service ES...          301
C# TIFF: How to Reorder, Rearrange & Sort TIFF Pages Using C# Code
Reorder, Rearrange and Sort TIFF Document Pages in C#.NET Application. C# TIFF Page Sorting Overview. Reorder TIFF Pages in C#.NET Application.
change pdf page order; how to change page order in pdf acrobat
VB.NET PowerPoint: Sort and Reorder PowerPoint Slides by Using VB.
Sort and Reorder PowerPoint Slides Range with VB amount of robust PPT slides/pages editing methods powerful & profession imaging controls, PDF document, image
move pages in pdf document; reorder pages in pdf
602
CHAPTER 14
E
RRORS
AND
EXCEPTIONS
6 Oct 10 08:46  Information Health Service ES...          300
5 Oct 10 08:46  Information Health Service ES...          102
4 Sep 17 15:18  Information HealthService          1073743827
And finally, you can use 
-Message
and 
-After
to find all messages matching a spe-
cific pattern that occurred after a specific date. For this example, just use the month 
and day numbers and let the year default to the current year:
PS (9) > Get-EventLog -LogName 'Operations Manager' ` 
>> -Message "*Data*6.0*" -After '4/1' | 
>> Format-List Name,Time,EntryType,Message 
>>
EntryType : Information
Message   : HealthService (2264) Health Service Store: The database 
engine (6.00.6002.0000) started a new instance (0).
This command returns a single entry indicating that the database engine started a 
new instance.
So why is all this useful? Imagine you see a critical error in an application. This 
error shows up in the Application log. You suspect that it might be related to either a 
hardware issue or a bad device driver. Rather than manually poring over hundreds of 
log entries, you can use the date from the Application log entry to retrieve the events 
in the System log that occurred shortly before the application. 
Digging through the entries, you identify the problem that led to the failure. 
From this, you get the 
Source
and 
InstanceID
identifying the problematic entry. 
You quickly write a script to remediate the problem on this machine but realize that 
there may be other machines in the organization with similar issues. You put together 
a list of potentially at-risk machines and pass this list to 
Get-EventLog
using the 
-ComputerName
parameter. You also specify the 
-Source
and 
-InstanceID
param-
eters of the problematic message. This command will search the event logs of all the 
at-risk machines, returning a list of event log entries matching the criteria. From this 
set of events, you can get the names of all the computers that need to be fixed. 
Finally, you can use PowerShell remoting to run the remediation script on all the 
machines with the problem.
NOTE
Although you need PowerShell remoting to run the remedia-
tion  script  on the  target  machines,  PowerShell  remoting  isn’t  used 
when  you  use 
Get-EventLog
to access a remote computer. 
Get-
EventLog
uses its own remoting protocol, as mentioned in chapter 12. 
This means 
Get-EventLog
can be used to examine the logs of the 
target computer to help diagnose what went wrong using its own built-
in remoting to connect to that computer. It’s not dependent on Power-
Shell remoting.
The 
Get-EventLog
filtering capabilities make this kind of “forensic” analysis very 
easy. One of the things you might want to analyze is PowerShell itself.
VB.NET TIFF: Modify TIFF File by Adding, Deleting & Sort TIFF
Users can use it to reorder TIFF pages in ''' &ltsummary> ''' Sort TIFF document pages in designed powerful & profession imaging controls, PDF document, image
how to rearrange pdf pages in preview; reorder pages in pdf file
C# PDF Page Rotate Library: rotate PDF page permanently in C#.net
page, it is also featured with the functions to merge PDF files using C# .NET, add new PDF page, delete certain PDF page, reorder existing PDF pages and split
move pdf pages; pdf rearrange pages
P
OWER
S
HELL
AND
THE
EVENT
LOG
603
14.5.2
Examining the PowerShell event log
When PowerShell is installed, the installation process creates a new event log called 
Windows PowerShell. As PowerShell executes, it writes a variety of information to 
this log, which you can see using the 
Get-EventLog
cmdlet. Let’s use the cmdlet to 
get the last few records from the PowerShell event log. As always, you can use the 
tools PowerShell provides to filter and scope the data you want to look at. You’ll use 
an array slice to get the last five records from the log:
PS (2) > (Get-EventLog 'windows powershell')[-5..-1]
WARNING: column "Message" does not fit into the display and was 
removed.
Index Time          EntryType   Source                 InstanceID
----- ----          ---------   ------                 ----------
5 Dec 27 17:25  Information PowerShell                    600
4 Dec 27 17:25  Information PowerShell                    600
3 Dec 27 17:25  Information PowerShell                    600
2 Dec 27 17:25  Information PowerShell                    600
1 Dec 27 17:25  Information PowerShell                    600
The default presentation of the event records doesn’t show much information. Let’s 
look at one event in detail and see what it contains:
PS (3) > (Get-EventLog "windows powershell")[0] | Format-List *
First, you get some basic event log elements common to all event log entries:
EventID          : 400
MachineName      : brucepayquad 
Data             : {}
Index            : 8915
Next, you see the event category. This isn’t the same as the error category discussed 
earlier. PowerShell event log entries are grouped into several large categories:
Category         : Engine Lifecycle
CategoryNumber   : 4
Next is the entry type and a message describing the entry. This is followed by a collec-
tion of  detail elements,  which include things such as the state transition for the 
engine, as well as some of the versioning information you saw on the 
$host
object 
earlier. This is included in case you have multiple hosts for a particular engine:
EntryType        : Information
Message          : Engine state is changed from None to Available.
Details:
NewEngineState=Available
PreviousEngineState=None
SequenceNumber=9
HostName=ConsoleHost
HostVersion=2.0
HostId=29f2d25c-551c-4e8b-9c15-3cd2103c4a70
EngineVersion=2.0
Read PDF in Web Image Viewer| Online Tutorials
from PDF documents; Extract images from PDF documents; Add, reorder pages in PDF files; Save and print PDF as you wish; More PDF Reading
rearrange pdf pages in preview; rearrange pdf pages online
C# PDF: C# Code to Process PDF Document Page Using C#.NET PDF
just following attached links. C# PDF: Add, Delete, Reorder PDF Pages Using C#.NET, C# PDF: Merge or Split PDF Files Using C#.NET.
reverse pdf page order online; change pdf page order online
604
CHAPTER 14
E
RRORS
AND
EXCEPTIONS
RunspaceId=ffff212a-7e81-4344-aecd-c6bcab05b
715
PipelineId=
CommandName=
CommandType=
ScriptName=
CommandPath=
CommandLine=
Source           : PowerShell
The following fields specify the replacement strings that are available. These strings 
are substituted into the log message text:
ReplacementStrings : {Available, None,     NewEngineState=Available
PreviousEngineState=None
SequenceNumber=9
HostName=ConsoleHost
HostVersion=2.0
HostId=29f2d25c-551c-4e8b-9c15-3cd2103c4a70
EngineVersion=2.0
RunspaceId=ffff212a-7e81-4344-aecd-c6bcab05b715                  
PipelineId=
CommandName=
CommandType=
ScriptName=
CommandPath=
CommandLine=}
Finally, some additional information for identifying the event log entry and when it 
occurred:
InstanceId      : 400
TimeGenerated   : 1/10/2010 6:02:19 PM 
TimeWritten     : 1/10/2010 6:02:19 PM 
UserName        : 
Site            : 
Container       :
Granted, the output isn’t all that interesting, but when you’re trying to figure out 
what went wrong on your systems, being able to see when the PowerShell interpreter 
was started or stopped could be useful. There are also certain types of  internal errors 
(also known as bugs) that may cause a PowerShell session to terminate. These errors 
also will be logged in the PowerShell event log.
That’s all we’re going to cover on event logs in this chapter. From these examples, 
you can see that the event logs provide a lot of information, much of which can help 
you manage and maintain your systems. The trick is being able to extract and correlate 
the information across the various logs, and this is where PowerShell can be very useful.
.NET Multipage TIFF SDK| Process Multipage TIFF Files
SDK, developers are easily to access, extract, swap, reorder, insert, mark up and delete pages in any multi upload to SharePoint and save to PDF documents.
reordering pdf pages; reorder pages in pdf preview
C# Word: How to Create Word Document Viewer in C#.NET Imaging
in C#.NET; Offer mature Word file page manipulation functions (add, delete & reorder pages) in document viewer; Rich options to add
pdf change page order; pdf change page order online
S
UMMARY
605
14.6
S
UMMARY
This chapter focused on the diagnostic features of PowerShell: the error-handling 
mechanisms and the various debugging, tracing, analysis, and logging features. And, 
although this is a fairly long chapter, it still can’t claim to be an exhaustive discussion 
of all of these features. Let’s summarize the areas that we did cover. We started with 
basic error handling:
• The two types of errors in PowerShell: terminating and nonterminating
• The 
ErrorRecord
object and the error stream
• The 
$error
variable and 
-ErrorVariable
parameter
• The 
$?
and 
$LASTEXITCODE
variables
$ErrorActionPreference
and the 
-ErrorAction
parameter
Next, we showed you how to work with terminating errors and exceptions:
• The 
trap
statement and how to use it
• The 
try/catch/finally
statements in PowerShell v2
• Using the 
throw
statement to generate your own terminating exceptions
And then we discussed some of the tools and techniques for finding static and run-
time errors in scripts:
• Using the host APIs to do 
printf
-style debugging
• Catching errors with strict mode, both v1 and v2 versions
• Using the PowerShell tokenizer 
API
to do static analysis of a script to catch 
problems before they happen
Finally, we looked at some techniques for examining the behavior of script that other 
people may be running by using the transcript feature in 
PowerShell.exe
and by 
looking at the event log using the 
Get-EventLog
cmdlet.
This chapter looked at ways to deal with errors in PowerShell scripts after they 
have occurred (sometimes long after, in the event log case). In chapter 15, we’ll look 
at ways of preventing errors in your scripts by using the PowerShell 
ISE
and the built-
in debugger.
606
C
H
A
P T E R   1 5
The PowerShell ISE 
and debugger
15.1  The PowerShell ISE  607
15.2  Using multiple PowerShell tabs  618
15.3  Extending the ISE  622
15.4  PowerShell script debugging 
features  638
15.5  The PowerShell v2 debugger  647
15.6  Command-line debugging  652
15.7  Summary  659
Big Julie: “I had the numbers taken off for luck, but I remember where the spots 
formerly were.”
—Guys and Dolls, words and music by Frank Loesser
In the previous chapter, you learned how PowerShell deals with errors and how those 
features help you find bugs in your scripts. In this chapter, we’re going to look at 
more tools that help you create correct, reliable scripts. We’ll cover the graphical Inte-
grated Scripting Environment 
(ISE)
as well as the debugger, both of which were intro-
duced with PowerShell v2. First, we’ll begin by covering the basic operation and usage 
patterns of the 
ISE
. Next, we’ll look at customizing and extending the 
ISE
using the 
object model provided for that purpose. Then, we’ll review how the debugger works 
within the 
ISE
and from the command line.
T
HE
P
OWER
S
HELL
ISE
607
15.1
T
HE
P
OWER
S
HELL
ISE
PowerShell v2 significantly improved the PowerShell scripting experience with the 
introduction of the 
ISE
. This new PowerShell host application adds many of the fea-
tures expected in a modern scripting environment:
• Syntax highlighting in the editor and command panes
• Multiple concurrent sessions
• Multiple editor tabs within a session
• Full globalization support
• An extension mechanism that allows you to add your own functionality to the 
environment
The goal of the first part of this chapter is to learn to use the 
ISE
effectively and adapt 
it to the individual’s working style and environment. We’ll begin with examining the 
layout and major features of the 
ISE
.
15.1.1
Controlling the ISE pane layout
The basic layout of the 
ISE
consists of three resizable panes: the editor, output, and 
command panes. The layout is shown in figure 15.1.
As you’d expect, the Editor pane holds all the current files being edited, and the 
output pane is where the output of executed commands is displayed. The last pane is 
the command pane and is intended for command entry. This arrangement is a bit 
different than most shells. Typically, shells interleave user commands with the output 
text all in the same pane. The 
ISE
does display the commands as they’re executed in 
context with the output, but the commands themselves are entered into a separate
Editor
pane
Output
pane
Command
pane
Figure 15.1 The basic layout of the PowerShell ISE. The user interface is broken into 
three panes: editor, output, and command input.
608
CHAPTER 15
T
HE
P
OWER
S
HELL
ISE 
AND
DEBUGGER
pane. This arrangement makes it possible to edit complex commands interactively 
while preserving the critical aspects of the traditional shell experience. Let’s take a 
closer look at the elements in the command pane.
The command pane
The command pane is composed of three separate pieces: the command input editor, 
the prompt line, and the status line, as shown in figure 15.2. In figure 15.2, you can 
see that there are two elements in the prompt line: the text of the prompt and a con-
trol for changing the position of the command pane relative to the editor pane. As is
Prompt bar
Command
input editor
Status bar
Font size 
Current position in file
Status
informaton
Change command window position
Figure 15.2 The ISE command pane includes the prompt line, the command input editor 
and the status line, as well as controls to change the font size and command pane position.
Output pane
Command
input pane
Output pane
Command input
pane
When command pane
is down, it appears
below output pane
When command pane
is up, it appears above 
output pane
Script editor
Script editor
Figure 15.3 The command pane can be above or below the output pane.
T
HE
P
OWER
S
HELL
ISE
609
the case with the console host, the prompt text is set by the user-definable 
prompt 
function. The position control is used to exchange the relative positions of the output 
and command panes, as shown in figure 15.3.
When the position icon (an up arrow) is clicked, the command pane moves from 
below the output pane to above it and the icon changes to a down arrow, as shown in 
figure 15.3. When the position icon is clicked again, the original positions are restored.
The ISE toolbar
Moving on in our coverage of the basic 
ISE
elements, let’s look at the toolbar. The tool-
bar gives you quick access to common features (such as cut, copy, and paste) but some 
PowerShell-specific features are also included. The toolbar is shown in figure 15.4.
In the 
ISE
toolbar, along with the standard items are 
ISE
-specific controls for run-
ning scripts, for creating remote tabs, and for launching the console host 
Power-
Shell.exe
. We’ll cover remote tabs later in section 15.2.2. The toolbar also contains 
controls that allow additional layout options for the 
ISE
. You can see one of these 
alternate layouts in figure 15.5.
The side-by-side layout in figure 15.5 is most effective on a large monitor, allow-
ing you to have full-sized execution and editor panes beside each other.
New remote
PowerShell tab
Show/hide
script pane
Run script, run selection,
and stop
Clear output pane
Cut, copy, and
paste
Change layout
Undo/redo
edits
New file
Open file
Save file
Launch
powershell.exe
Figure 15.4 The ISE toolbar provides controls to create, open, and save files; run scripts; 
and control the layout of the ISE. It also allows the user to start a remote PowerShell 
session in a new tab as well as launch the console host 
PowerShell.exe
.
Figure 15.5 The layout of the 
PowerShell ISE with the edi-
tor pane on the side. The orga-
nization of the three major 
panes in the ISE can be con-
trolled to a large extent by 
user settings.
Documents you may be interested
Documents you may be interested