Thanks for the information. I'll play around with it.

- Sean

On Tue, Jun 20, 2017 at 5:02 AM, Michael B. Smith <[email protected]>
wrote:

> Yeah, the thing that always makes me cringe is the lack of error detection
> and reporting in so much public PowerShell…
>
>
>
> And you are correct, while PowerShell does have “using <namespace>” it
> does not have “using <variable> <block>”.
>
>
>
> But it can be implemented fairly easily….
>
>
>
> https://davewyatt.wordpress.com/2014/04/11/using-object-
> powershell-version-of-cs-using-statement/
>
>
>
> *From:* [email protected] [mailto:listsadmin@lists.
> myitforum.com] *On Behalf Of *Brian Desmond
> *Sent:* Tuesday, June 20, 2017 8:08 AM
> *To:* [email protected]
> *Subject:* RE: [NTSysADM] Set-ImageSize Help
>
>
>
> I wouldn’t really worry about it, but, the thing I see that’s not disposed
> is the $Graphics variable. You can tell it needs to be by looking up the
> class on MSDN
> <https://msdn.microsoft.com/en-us/library/system.drawing.graphics(v=vs.110).aspx>
> and seeing that it implements IDiposable.
>
>
>
> From a pattern perspective, all the disposes should be wrapped in try {…}
> finally {$foo.Dispose()} blocks. In C#/VB you’d use a using {} block but
> AFAIK PowerShell doesn’t have an equivalent. For example:
>
>
>
> $NewImage = $null
>
> $Graphics = $null
>
>
>
> try
>
> {
>
>     $NewImage = new-object System.Drawing.Bitmap $NewWidth,$NewHeight
>
>
>
>     $Graphics = [System.Drawing.Graphics]::FromImage($NewImage)
>
>     $Graphics.InterpolationMode = [System.Drawing.Drawing2D.
> InterpolationMode]::HighQualityBicubic
>
>     $Graphics.DrawImage($OldImage, 0, 0, $NewWidth, $NewHeight)
>
>
>
>     $ImageFormat = $OldImage.RawFormat
>
> }
>
> finally
>
> {
>
>     if ($Graphics -ne $null)
>
>     {
>
>         $Graphics.Dispose()
>
>     }
>
>
>
>     if ($NewImage -ne $null)
>
>     {
>
>         $NewImage.Dispose()
>
>     }
>
> }
>
>
>
>
>
>
>
> Thanks,
>
> Brian Desmond
>
>
>
> (w) 312.625.1438 <(312)%20625-1438> | (c) 312.731.3132 <(312)%20731-3132>
>
>
>
> *From:* [email protected] [mailto:listsadmin@lists.
> myitforum.com <[email protected]>] *On Behalf Of *Sean Martin
> *Sent:* Monday, June 19, 2017 11:33 PM
>
> *To:* [email protected]
> *Subject:* Re: [NTSysADM] Set-ImageSize Help
>
>
>
> Hey Brian,
>
>
>
> Thanks for the input. An initial batch of about 1500 photos will be run in
> a controlled scenario. For ongoing automation, the script will execute
> weekly and process an average of 5-10 photos per execution. Can you
> elaborate on your comment about the unmanaged resources? Any recommendation
> on releasing those resources?
>
>
>
> - Sean
>
>
>
> On Sat, Jun 17, 2017 at 7:42 AM, Brian Desmond <[email protected]>
> wrote:
>
> Also note that script does not dispose of all of the unmanaged resources
> it uses. For one-offs you’re never going to notice anything, but, if you’re
> going to run a ton of images through it at once or host it inside something
> other than a one-off PowerShell window, you may see memory and/or handle
> counts grow undesirably for the process.
>
>
>
> Thanks,
>
> Brian
>
>
>
>
>
> Thanks,
>
> Brian Desmond
>
>
>
> w – 312.625.1438 <(312)%20625-1438> | c – 312.731.3132 <(312)%20731-3132>
>
>
>
> *From:* [email protected] [mailto:listsadmin@lists.
> myitforum.com] *On Behalf Of *Sean Martin
> *Sent:* Friday, June 16, 2017 6:03 PM
>
>
> *To:* [email protected]
> *Subject:* Re: [NTSysADM] Set-ImageSize Help
>
>
>
> Ah! That's where I was confused. That did the trick, thanks again for your
> help!
>
>
>
> - Sean
>
>
>
> On Fri, Jun 16, 2017 at 2:47 PM, Michael B. Smith <[email protected]>
> wrote:
>
> Dot sourcing is “more-or-less” equivalent to ipmo.
>
>
>
> So you need to separate that into 2 lines.
>
>
>
>                . .\Set-ImageSize.ps1
>
>                Set-ImageSize  -Image $Source -Destination $Destination
> -WidthPx $Width -HeightPx $Height
>
>
>
>
>
> *From:* [email protected] [mailto:listsadmin@lists.
> myitforum.com] *On Behalf Of *Sean Martin
> *Sent:* Friday, June 16, 2017 5:49 PM
> *To:* [email protected]
> *Subject:* Re: [NTSysADM] Set-ImageSize Help
>
>
>
> Thanks for the additional insight. Dot sourcing eliminated the error, but
> it's not actually performing the resize. I haven't had to use dot sourcing
> in the past, are there any particular considerations when passing
> parameters, or should it be as simple as the following line:
>
>
>
> . .\Set-ImageSize.ps1 $Source -Destination $Destination -WidthPx $Width
> -HeightPx $Height
>
>
>
> On Fri, Jun 16, 2017 at 12:10 PM, Michael B. Smith <[email protected]>
> wrote:
>
> Don’t use ipmo. Use dot-sourcing.
>
>
>
> *From:* [email protected] [mailto:listsadmin@lists.
> myitforum.com] *On Behalf Of *Sean Martin
> *Sent:* Friday, June 16, 2017 3:54 PM
> *To:* [email protected]
> *Subject:* Re: [NTSysADM] Set-ImageSize Help
>
>
>
> Commenting the line that loads system.windows.forms didn't make a
> difference.
>
>
>
> My script, along with set-image.ps1 are in the same directory. I use
> "import-module .\set-imagesize.ps1 within a try/catch block and that
> succeeds. The script fails at the point where it runs:
>
>
>
> set-imagesize $sourcephoto -destination $destination -Widthpx $Width
> -HeightPx $height
>
>
>
> The variables are set as follows:
>
>
>
> $sourcephoto = <uncpath to file>
>
> $destination = <uncpath to directory>
>
> $width = "96"
>
> $height = "96"
>
>
>
> I was able to test interactively by setting the same variables and running
> the command. Kind of stumped as to why it won't run within my script.
>
>
>
> On Fri, Jun 16, 2017 at 11:10 AM, Michael B. Smith <[email protected]>
> wrote:
>
> One of the problems is that the script loads system.windows.forms – which
> is inherently interactive. However, the script doesn’t appear to use it.
> So… take that line out.
>
>
>
> Tell me more about your setup for “running your script”?
>
>
>
>
>
>
>
> *From:* [email protected] [mailto:listsadmin@lists.
> myitforum.com] *On Behalf Of *Sean Martin
> *Sent:* Friday, June 16, 2017 2:35 PM
> *To:* [email protected]
> *Subject:* [NTSysADM] Set-ImageSize Help
>
>
>
> Good morning/afternoon,
>
>
>
> Looking for a bit of assistance. I'm writing a script to import photos
> into Active Directory and part of the process requires that the photos be
> resized, so I downloaded this gem: https://gallery.technet.
> microsoft.com/scriptcenter/Resize-Image-File-f6dd4a56
>
>
>
> Importing and using the set-imagesize cmdlet works just fine when I run
> through the process interactively. However, I get the error "The term
> 'Set-ImageSize' is not recognized as the name of a cmdlet, function......"
> when I run my script.
>
>
>
> I've verified the "module" imports successfully, so I've been banging my
> head on why the cmdlet isn't recognized.
>
>
>
> Anyone run into a similar scenario?
>
>
>
>
>
>
>
>
>

Reply via email to