<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;AkUMSH85cSp7ImA9WxNXF0Q.&quot;"><id>tag:blogger.com,1999:blog-4442861564658029135</id><updated>2009-10-05T20:04:49.129-07:00</updated><title>Grinding-IT-Out</title><subtitle type="html">Your basic ITPro blog... What's going on at work, what I'm interested in.</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://grinding-it-out.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://grinding-it-out.blogspot.com/" /><link rel="hub" href="http://pubsubhubbub.appspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/4442861564658029135/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Derek Mangrum</name><uri>http://www.blogger.com/profile/05932163848657045446</uri><email>noreply@blogger.com</email></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>94</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><link rel="self" href="http://feeds.feedburner.com/Grinding-IT-Out" type="application/atom+xml" /><feedburner:emailServiceId>Grinding-IT-Out</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2FGrinding-IT-Out" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FGrinding-IT-Out" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Ffeeds.feedburner.com%2FGrinding-IT-Out" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/Grinding-IT-Out" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FGrinding-IT-Out" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FGrinding-IT-Out" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FGrinding-IT-Out" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><feedburner:feedFlare href="http://www.plusmo.com/add?url=http%3A%2F%2Ffeeds.feedburner.com%2FGrinding-IT-Out" src="http://plusmo.com/res/graphics/fbplusmo.gif">Subscribe with Plusmo</feedburner:feedFlare><feedburner:feedFlare href="http://www.thefreedictionary.com/_/hp/AddRSS.aspx?http%3A%2F%2Ffeeds.feedburner.com%2FGrinding-IT-Out" src="http://img.tfd.com/hp/addToTheFreeDictionary.gif">Subscribe with The Free Dictionary</feedburner:feedFlare><feedburner:feedFlare href="http://www.bitty.com/manual/?contenttype=rssfeed&amp;contentvalue=http%3A%2F%2Ffeeds.feedburner.com%2FGrinding-IT-Out" src="http://www.bitty.com/img/bittychicklet_91x17.gif">Subscribe with Bitty Browser</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsalloy.com/?rss=http%3A%2F%2Ffeeds.feedburner.com%2FGrinding-IT-Out" src="http://www.newsalloy.com/subrss3.gif">Subscribe with NewsAlloy</feedburner:feedFlare><feedburner:feedFlare href="http://www.live.com/?add=http%3A%2F%2Ffeeds.feedburner.com%2FGrinding-IT-Out" src="http://tkfiles.storage.msn.com/x1piYkpqHC_35nIp1gLE68-wvzLZO8iXl_JMledmJQXP-XTBOLfmQv4zhj4MhcWEJh_GtoBIiAl1Mjh-ndp9k47If7hTaFno0mxW9_i3p_5qQw">Subscribe with Live.com</feedburner:feedFlare><feedburner:feedFlare href="http://mix.excite.eu/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FGrinding-IT-Out" src="http://image.excite.co.uk/mix/addtomix.gif">Subscribe with Excite MIX</feedburner:feedFlare><feedburner:feedFlare href="http://www.yourminis.com/subscribe.aspx?u=http%3A%2F%2Ffeeds.feedburner.com%2FGrinding-IT-Out" src="http://www.yourminis.com/images/addtoyourminisbadge.gif">Subscribe with Yourminis.com</feedburner:feedFlare><feedburner:feedFlare href="http://download.attensa.com/app/get_attensa.html?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FGrinding-IT-Out" src="http://www.attensa.com/blogs/attensa/WindowsLiveWriter/BadgeredintoBadges_10C02/attensa_feed_button5.gif">Subscribe with Attensa for Outlook</feedburner:feedFlare><feedburner:feedFlare href="http://www.webwag.com/wwgthis.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FGrinding-IT-Out" src="http://www.webwag.com/images/wwgthis.gif">Subscribe with Webwag</feedburner:feedFlare><feedburner:feedFlare href="http://hub.netomat.net/account/account.autoSubscribe.jspa?urls=http%3A%2F%2Ffeeds.feedburner.com%2FGrinding-IT-Out" src="http://www.netomat.net/blogger/images/icon_netomat_feedbutton.gif">Subscribe with netomat Hub</feedburner:feedFlare><feedburner:feedFlare href="http://www.podcastready.com/oneclick_bookmark.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FGrinding-IT-Out" src="http://www.podcastready.com/images/podcastready_button.gif">Subscribe with Podcast Ready</feedburner:feedFlare><feedburner:feedFlare href="http://www.flurry.com/pushRssFeed.do?r=fb&amp;url=http%3A%2F%2Ffeeds.feedburner.com%2FGrinding-IT-Out" src="http://www.flurry.com/images/flurry_rss_logo2.gif">Subscribe with Flurry</feedburner:feedFlare><feedburner:feedFlare href="http://www.wikio.com/subscribe?url=http%3A%2F%2Ffeeds.feedburner.com%2FGrinding-IT-Out" src="http://www.wikio.com/shared/img/add2wikio.gif">Subscribe with Wikio</feedburner:feedFlare><feedburner:feedFlare href="http://www.dailyrotation.com/index.php?feed=http%3A%2F%2Ffeeds.feedburner.com%2FGrinding-IT-Out" src="http://www.dailyrotation.com/rss-dr2.gif">Subscribe with Daily Rotation</feedburner:feedFlare><feedburner:browserFriendly>Thank you for visiting. If I can be a resource to you in any way, please comment on an entry and let me know.</feedburner:browserFriendly><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><entry gd:etag="W/&quot;DkEGRH8zfCp7ImA9WxNSF04.&quot;"><id>tag:blogger.com,1999:blog-4442861564658029135.post-1334273934519038718</id><published>2009-08-31T09:03:00.001-07:00</published><updated>2009-08-31T09:03:45.184-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-31T09:03:45.184-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="BackupExec" /><category scheme="http://www.blogger.com/atom/ns#" term="SAN" /><category scheme="http://www.blogger.com/atom/ns#" term="Windows" /><category scheme="http://www.blogger.com/atom/ns#" term="Disaster Recovery" /><category scheme="http://www.blogger.com/atom/ns#" term="MD3000i" /><title>Backup-To-Disk Problems with BackupExec 12.5 to a Virtual Disk on a MD3000i</title><content type="html">&lt;p&gt;…A long title for a weeks-long problem!&lt;/p&gt;  &lt;p&gt;Well, it has been a long time since I have updated this blog. But, that doesn’t mean nothing has been going on! :-)&lt;/p&gt;  &lt;p&gt;For the past couple of weeks, I have been troubleshooting a problem with my backups. I use BackupExec, so that shouldn’t really surprise anyone! But, in this case, the problem (as best as I can tell) turned out to lie elsewhere.&lt;/p&gt;  &lt;p&gt;Here’s the skinny…&lt;/p&gt;  &lt;p&gt;I do all of my backups to tape, except for my Exchange backups. They go to disk. I have a 3TB disk on my &lt;a href="http://www.dell.com/content/topics/topic.aspx/global/products/pvaul/topics/en/us/pvaul_md3000i_landing?c=us&amp;amp;l=en&amp;amp;s=gen" target="_blank"&gt;MD3000i&lt;/a&gt; that I use for this. That way, I can make the most efficient use of &lt;a href="http://www.symantec.com/business/backup-exec-for-windows-servers" target="_blank"&gt;BackupExec’s&lt;/a&gt; GRT technology. It was working fine for a while until (as is often the case in Windows environments) it just stopped working.&lt;/p&gt;  &lt;p&gt;My backup-to-disk jobs started failing with the error code: E00084AF&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.symantec.com/business/support/knowledge_base_results.jsp?content=all&amp;amp;SearchTerm=E00084AF" target="_blank"&gt;Symantec’s KB&lt;/a&gt; had a number of articles that spoke to the issue, but nothing seemed to work. I spent about a week on my own trying to solve the problem, running updates, tweaking the registry, deleting/recreating jobs… Nothing worked, so it was then time to call Symantec Tech Support.&lt;/p&gt;  &lt;p&gt;Now, like most people, I &lt;strong&gt;&lt;em&gt;DO NOT &lt;/em&gt;&lt;/strong&gt;like calling tech support, especially for large companies. This has nothing to do with my ego and everything to do with the fact that, in most cases, the first-level support is likely a guy just like me… someone who kinda-knows the product, is sitting in front of a computer either reading from a ‘tech-support script’ or just searching their own KB as you describe your problem to them. I know they are trying to be helpful, but you end up spending most of your time re-hashing everything you have already tried! &amp;lt;/rant&amp;gt;&lt;/p&gt;  &lt;p&gt;I will say this, however… the Symantec guys were willing to ‘spend the time’ with me on this. I never felt rushed by them or brushed aside. I appreciated that.&lt;/p&gt;  &lt;p&gt;Anyway, none of this troubleshooting helped and we all went into the weekend scratching our heads, wondering what we were going to try/look at next. Then, over the weekend, I had an idea…&lt;/p&gt;  &lt;p&gt;As a Windows guy I have learned that, sometimes, you just need to start over. For example, if a distribution list in Outlook isn't working right, you may have to just delete it and re-create it (or add then remove someone). I have come across similar situations many, many times... Situations where 'touching' an object somehow resets things and gets it working again. Sometimes it's just a matter of changing a setting, saving, and then changing the setting back.&lt;/p&gt;  &lt;p&gt;This is essentially what I did with my virtual disk on my MD3000i. I went into the management console of my MD3000i and changed the 'ownership/preferred path' of the virtual disk from one controller module to the other. Then, after a server reboot I ran a test job and it worked. The backups have been running fine ever since.&lt;/p&gt;  &lt;p&gt;I have no idea what initiated this issue, or where it originated. That is the most frustrating part. I am just glad that things are working again!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4442861564658029135-1334273934519038718?l=grinding-it-out.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Grinding-IT-Out?a=Q1Otyz9Q8zw:I2LZNVtiZVQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Grinding-IT-Out?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Grinding-IT-Out/~4/Q1Otyz9Q8zw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://grinding-it-out.blogspot.com/feeds/1334273934519038718/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=4442861564658029135&amp;postID=1334273934519038718" title="7 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4442861564658029135/posts/default/1334273934519038718?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4442861564658029135/posts/default/1334273934519038718?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Grinding-IT-Out/~3/Q1Otyz9Q8zw/backup-to-disk-problems-with-backupexec.html" title="Backup-To-Disk Problems with BackupExec 12.5 to a Virtual Disk on a MD3000i" /><author><name>Derek Mangrum</name><uri>http://www.blogger.com/profile/05932163848657045446</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="06106917718758965303" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">7</thr:total><feedburner:origLink>http://grinding-it-out.blogspot.com/2009/08/backup-to-disk-problems-with-backupexec.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0ECQ30yeCp7ImA9WxJUFU0.&quot;"><id>tag:blogger.com,1999:blog-4442861564658029135.post-9197474709039992775</id><published>2009-07-13T10:21:00.001-07:00</published><updated>2009-07-13T10:21:02.390-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-13T10:21:02.390-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="PowerShell" /><title>Powershell and E-mail</title><content type="html">&lt;p&gt;There are times when I need to notify a group of people of a change made on our network file system. Perhaps the contents of the folder has changed and I need to let everyone who has access to that folder know. Perhaps permissions to a folder has changed (someone has been added or removed) and I want to notify everyone with rights to the folder.&lt;/p&gt;  &lt;p&gt;This is normally an annoyingly manual process. Cull names from the security tab and generate a list of people, then paste them in to a mail message, etc… you get the idea.&lt;/p&gt;  &lt;p&gt;So, I decided I would see if I could write a Powershell script to do the heavy lifting for me. Specifically, I want my script to:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Gather the e-mail addresses of everyone with access to a shared folder &lt;/li&gt;    &lt;li&gt;Create an e-mail message and address to these people &lt;/li&gt;    &lt;li&gt;Save this message in my Drafts folder for further processing &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Really a simple task, but, if automated, will save me tons of time.&lt;/p&gt;  &lt;p&gt;The script is not yet written, but I have the basics down. Of course, it is ridiculously simple with PowerShell (and the &lt;a href="http://www.quest.com/powershell/activeroles-server.aspx" target="_blank"&gt;Quest AD Cmdlets&lt;/a&gt;)&lt;/p&gt;  &lt;p&gt;Here is the basic framework I have thus far…&lt;/p&gt;  &lt;div&gt;   &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #008000"&gt;# Get Email address of group members&lt;/span&gt;
$addrs = Get-QADGroup &amp;lt;GroupName&amp;gt; | Get-QADGroupMember | select email

$ol = New-Object -comObject Outlook.Application

$mail = $ol.CreateItem(0)

&lt;span style="color: #008000"&gt;#Address mail&lt;/span&gt;
&lt;span style="color: #0000ff"&gt;foreach&lt;/span&gt; ($addr &lt;span style="color: #0000ff"&gt;in&lt;/span&gt; $addrs)
{
    $mail.Recipients.Add($addr.email)
}

$mail.Subject = &lt;span style="color: #006080"&gt;&amp;quot;Some Subject&amp;quot;&lt;/span&gt;
$mail.Body = &lt;span style="color: #006080"&gt;&amp;quot;Some Body&amp;quot;&lt;/span&gt;

&lt;span style="color: #008000"&gt;#Save to drafts&lt;/span&gt;
$mail.Save()&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;&lt;/p&gt;
As you can tell, there is a lot of work yet to do. Input, validation, etc., etc.&amp;#160; But, in just a few lines of code, this script is already performing tasks that would take me minutes to do. I love how easy it is to access AD objects and COM objects and pass data back and forth.

  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4442861564658029135-9197474709039992775?l=grinding-it-out.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Grinding-IT-Out?a=d_-W1PxR-O0:6D6SKOuTE1Q:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Grinding-IT-Out?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Grinding-IT-Out/~4/d_-W1PxR-O0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://grinding-it-out.blogspot.com/feeds/9197474709039992775/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=4442861564658029135&amp;postID=9197474709039992775" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4442861564658029135/posts/default/9197474709039992775?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4442861564658029135/posts/default/9197474709039992775?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Grinding-IT-Out/~3/d_-W1PxR-O0/powershell-and-e-mail.html" title="Powershell and E-mail" /><author><name>Derek Mangrum</name><uri>http://www.blogger.com/profile/05932163848657045446</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="06106917718758965303" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://grinding-it-out.blogspot.com/2009/07/powershell-and-e-mail.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ck8FSHY4fip7ImA9WxJWFkw.&quot;"><id>tag:blogger.com,1999:blog-4442861564658029135.post-7293572225667326159</id><published>2009-06-21T12:00:00.001-07:00</published><updated>2009-06-21T12:00:19.836-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-21T12:00:19.836-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Personal" /><title>Perspective</title><content type="html">&lt;p&gt;I invest a lot of time (measured in actual minutes and hours) on computers. My job is in IT, managing dozens of Windows servers, dozens of Dell and Cisco switches/routers/WAPs/etc., over a hundred Cisco IP phones and their users, multiple software packages and all the other ‘trimming’s that come with a typical SMB systems installation. I spend many more hours reading and learning about technology, trying to keep up on trends, learn about what’s on the horizon, develop my skills on solutions we have in place. Much of my free time is spent on the computer, playing games, watching &lt;a href="http://www.ted.com/talks" target="_blank"&gt;TED Talks&lt;/a&gt;, &lt;a href="http://www.stumbleupon.com/" target="_blank"&gt;Stumbling&lt;/a&gt;, etc. All this to say, I’m no different than most of you, I am guessing…&lt;/p&gt;  &lt;p&gt;I spend a lot of time on computers.&lt;/p&gt;  &lt;p&gt;But, today is Father’s Day. For me, this is a day of perspective. Because, when I look into the eyes of my two sons, when my 5 year old runs up to me and gives me the longest hug I’ve had in a long time and tells me, “I’m so glad you are my father.”, well I am reminded of what is really important.&lt;/p&gt;  &lt;p&gt;I just want to say to all you fathers out there, Happy Father’s Day. I hope and pray that this is a day of joy and happiness for you. &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4442861564658029135-7293572225667326159?l=grinding-it-out.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Grinding-IT-Out?a=BgGUlUQs4uA:NN0YsibvYNs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Grinding-IT-Out?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Grinding-IT-Out/~4/BgGUlUQs4uA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://grinding-it-out.blogspot.com/feeds/7293572225667326159/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=4442861564658029135&amp;postID=7293572225667326159" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4442861564658029135/posts/default/7293572225667326159?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4442861564658029135/posts/default/7293572225667326159?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Grinding-IT-Out/~3/BgGUlUQs4uA/perspective.html" title="Perspective" /><author><name>Derek Mangrum</name><uri>http://www.blogger.com/profile/05932163848657045446</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="06106917718758965303" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://grinding-it-out.blogspot.com/2009/06/perspective.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C08MRno6cSp7ImA9WxJWE0s.&quot;"><id>tag:blogger.com,1999:blog-4442861564658029135.post-7338501698869254425</id><published>2009-06-18T14:51:00.001-07:00</published><updated>2009-06-18T14:51:27.419-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-18T14:51:27.419-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Network" /><title>BAD_ADDRESS = bad!</title><content type="html">&lt;p&gt;I was working to deploy some new IP phones on our Gilbert campus, and kept getting DHCP address assignment errors. The phones would sit there ‘configuring IP’… Just sitting there. Meanwhile, my DHCP scopes was filling up with leases to “BAD_ADDRESS”. Do a web search for “DHCP BAD_ADDRESS” and you will get a good idea of the problem.&lt;/p&gt;  &lt;p&gt;While some reported this problem being associated with Mac clients or other IPv6 clients on the network, this was not my problem at all. My problem was simple duplicate IP addresses on the network. The tough part of this was that there were no DNS entries for the offending IP address and no valid DHCP leases for these IPs. Yet, I was able to ping the addresses, so &lt;em&gt;something&lt;/em&gt; out there was using these addresses.&lt;/p&gt;  &lt;p&gt;I tried using ping/arp to find the devices on the network, but did not have any success until a network engineer I was talking to suggested that go to my core router/switch on the network and do my ARP lookups on that device. I had been doing them from my workstation and a couple of edge switches. This was the key and I had struck gold. My core switch (managing all of my VLANs) had all of these IP/MAC entries in its ARP table.&lt;/p&gt;  &lt;p&gt;From there, I was able to find the actual devices that has these BAD_ADDRESSes. This exposed the root problem that turned out to be an interesting residual from &lt;a href="http://grinding-it-out.blogspot.com/2009/03/multi-homed-domain-controller-fail.html" target="_blank"&gt;a previous issue I had worked on&lt;/a&gt;. It turns out that there were a number of phones on my network that were still configured to use the now-defunct IP address from our old multi-homed configuration. So, essentially, their DHCP server no longer existed. Thus, they had little choice but to hold on to their assigned IP address for dear life, hoping and praying that, someday, their long-lost DHCP server would return. Little did they know that the server was sitting right next to them, just with a new IP address. I quickly generated a list of these devices and rebooted them. They immediately found the DHCP server and got an IP address.&lt;/p&gt;  &lt;p&gt;But, back to the BAD_ADDRESS issue… My DHCP scope had no record (no active leases) for these residual IP addresses being held by these orphaned devices. So, when I plugged a new phone in, my DHCP server was more than happy to attempt to hand those IP address out. From what I have gathered, the basic steps in DHCP go something like this (super-simplified and possibly not even right):&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Client makes request&lt;/li&gt;    &lt;li&gt;Server pulls an unused address from the appropriate scope&lt;/li&gt;    &lt;li&gt;Server responds to client with this IP address and associated network configuration&lt;/li&gt;    &lt;li&gt;Client verifies that IP address is actually available (not currently on the network)&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;SUCCESS! Client keeps the network configuration and is happily on the network&lt;/li&gt;      &lt;li&gt;FAILURE! Client reports back to DHCP server that IP is already in use&lt;/li&gt;      &lt;ul&gt;       &lt;li&gt;DHCP adds entry in its DHCP lease DB for this IP address, assigning it to ‘BAD_ADDRESS’&lt;/li&gt;        &lt;li&gt;Start process over with next available IP address&lt;/li&gt;     &lt;/ul&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;p&gt;Once all devices were talking to the correct DHCP server, this problem simply went away. My new phones were immediately configured and working.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4442861564658029135-7338501698869254425?l=grinding-it-out.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Grinding-IT-Out?a=-D3IdmYb4ls:n5mWNJzA5Ns:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Grinding-IT-Out?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Grinding-IT-Out/~4/-D3IdmYb4ls" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://grinding-it-out.blogspot.com/feeds/7338501698869254425/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=4442861564658029135&amp;postID=7338501698869254425" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4442861564658029135/posts/default/7338501698869254425?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4442861564658029135/posts/default/7338501698869254425?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Grinding-IT-Out/~3/-D3IdmYb4ls/badaddress-bad.html" title="BAD_ADDRESS = bad!" /><author><name>Derek Mangrum</name><uri>http://www.blogger.com/profile/05932163848657045446</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="06106917718758965303" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://grinding-it-out.blogspot.com/2009/06/badaddress-bad.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUMFQXs_fyp7ImA9WxNTFkQ.&quot;"><id>tag:blogger.com,1999:blog-4442861564658029135.post-2801469956908807216</id><published>2009-06-17T09:26:00.002-07:00</published><updated>2009-08-19T08:56:50.547-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-19T08:56:50.547-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="File Management" /><category scheme="http://www.blogger.com/atom/ns#" term="Virtualization" /><category scheme="http://www.blogger.com/atom/ns#" term="Disaster Recovery" /><category scheme="http://www.blogger.com/atom/ns#" term="Servers" /><title>File Store saga</title><content type="html">&lt;p&gt;So, we had an issue with a Dynamic disk in a VM. This disk would not be active after a VM restart. I had to manually reactivate it. In doing this, my shares and &lt;a href="http://technet.microsoft.com/en-us/library/cc784710(WS.10).aspx" target="_blank"&gt;ABE&lt;/a&gt; settings were lost and had to be reset. &lt;/p&gt;  &lt;p&gt;After some research, I found that there were two options to fix this that did not include backup-rebuild-restore. These options are:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Attach disk to IDE rather than SCSI.&lt;/li&gt;    &lt;li&gt;In Registry, change the 'START' value in “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\storvsc” from 3 to 0.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;The first option seemed the ‘better’ choice, as it is just using the tools/software, rather than reg-hacking. So, that is the option I went with first. But, our disk size ended up causing problems with this. We experienced some file corruption (thank God for backups) and ended up having to move the disk back to SCSI. So, it was off to Plan B…&lt;/p&gt;  &lt;p&gt;… which worked perfectly. After changing the registry value and doing a couple of test reboots, everything looked good and stable. Then, we just had to ‘clean up’ our corrupted files. Users a re still trickling in with files that can’t be opened. But, a quick restore from our pre-problem backups is fixing things in most cases.&lt;/p&gt;  &lt;h3&gt;WHAT I LEARNED:&lt;/h3&gt;  &lt;ol&gt;   &lt;li&gt;Verify and Clarify! Do your research and develop a plan. Then, verify that plan, not just the steps/technologies/ideas, but the actual plan! Run through it one more time. Get one more pair of eyes on it. Verify that the actual steps you are planning on taking are solid. My discussions on this topic lead me to believe that moving from SCSI to IDE was the best approach, but I didn’t run my actual plan by other engineers. I am confident my flaw would have been caught had I done so.&lt;/li&gt;    &lt;li&gt;Take precautions! I could have/should have taken extra precautions before executing my plan. I had recent backups, but not up-to-the-minute backups. Should have done that. Is it too much to ‘expect’ failure and prepare accordingly? Maybe not…&lt;/li&gt;    &lt;li&gt;Be thankful for the Grace of God found in His people! My co-workers were/are awesome! I am humbled and grateful for their understanding and grace during this ordeal.&lt;/li&gt;    &lt;li&gt;Don’t rush. I has anxious to get this fixed. And, because of that, I rushed things. Oh, I didn’t feel like I was rushing things at the time. But looking back (isn’t hindsight great?!) I see now that I should have taken more time to contemplate this issue. Overconfidence? Perhaps…&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Also, as a result of this, we made some changes to our DR plans… Specifically, we increased the frequency of our file store backups… from once a day to every six hours.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4442861564658029135-2801469956908807216?l=grinding-it-out.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Grinding-IT-Out?a=xG87K_rbBY8:qGNiICudcew:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Grinding-IT-Out?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Grinding-IT-Out/~4/xG87K_rbBY8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://grinding-it-out.blogspot.com/feeds/2801469956908807216/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=4442861564658029135&amp;postID=2801469956908807216" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4442861564658029135/posts/default/2801469956908807216?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4442861564658029135/posts/default/2801469956908807216?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Grinding-IT-Out/~3/xG87K_rbBY8/file-store-saga.html" title="File Store saga" /><author><name>Derek Mangrum</name><uri>http://www.blogger.com/profile/05932163848657045446</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="06106917718758965303" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://grinding-it-out.blogspot.com/2009/06/file-store-saga.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUAHQnk6fyp7ImA9WxJXEEQ.&quot;"><id>tag:blogger.com,1999:blog-4442861564658029135.post-690878412020868395</id><published>2009-06-03T22:35:00.001-07:00</published><updated>2009-06-03T22:35:33.717-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-03T22:35:33.717-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="File Management" /><category scheme="http://www.blogger.com/atom/ns#" term="Virtualization" /><category scheme="http://www.blogger.com/atom/ns#" term="Servers" /><title>Dynamic Disks and Hyper-V VMs… Not So Much!</title><content type="html">&lt;p&gt;As per &lt;a href="http://support.microsoft.com/kb/558126" target="_blank"&gt;here&lt;/a&gt;, disks in Hyper-V VMs should be Basic (not Dynamic), or they will start up as inactive when you boot the VM. So, you have to reactivate the disk every time you reboot the VM. This also causes any shares on the volume(s) to disappear.&lt;/p&gt;  &lt;p&gt;Don’t ask me how I know this…&lt;/p&gt;  &lt;p&gt;Also don’t ask me if I am going to enjoy performing the ‘fix’ on a disk with over 2TB of data on it…&lt;/p&gt;  &lt;p&gt;&amp;lt;weep&amp;gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4442861564658029135-690878412020868395?l=grinding-it-out.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Grinding-IT-Out?a=n5Dsh7ZpRmA:5iC76hBalBY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Grinding-IT-Out?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Grinding-IT-Out/~4/n5Dsh7ZpRmA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://grinding-it-out.blogspot.com/feeds/690878412020868395/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=4442861564658029135&amp;postID=690878412020868395" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4442861564658029135/posts/default/690878412020868395?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4442861564658029135/posts/default/690878412020868395?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Grinding-IT-Out/~3/n5Dsh7ZpRmA/dynamic-disks-and-hyper-v-vms-not-so.html" title="Dynamic Disks and Hyper-V VMs… Not So Much!" /><author><name>Derek Mangrum</name><uri>http://www.blogger.com/profile/05932163848657045446</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="06106917718758965303" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://grinding-it-out.blogspot.com/2009/06/dynamic-disks-and-hyper-v-vms-not-so.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUEDRnY6eCp7ImA9WxJXEEs.&quot;"><id>tag:blogger.com,1999:blog-4442861564658029135.post-3381746379068415086</id><published>2009-06-03T15:21:00.001-07:00</published><updated>2009-06-03T15:21:17.810-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-03T15:21:17.810-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Disaster Recovery" /><category scheme="http://www.blogger.com/atom/ns#" term="Servers" /><title>BackupExec… Oh How I Hate Thee!</title><content type="html">&lt;p&gt;I just have to say it out loud. This has got to be the worst software ever conceived of by man. Why is it, when I create and the start a job, it just sits there for (seemingly) EVER?! I created a restore job and, after determining that I wanted to change the job, I canceled it, made changes, and started it again… NOPE! Instead, it just sits there… going on an hour now!! No alerts waiting for a response… just sitting there.&lt;/p&gt;  &lt;p&gt;I really hate this software!&lt;/p&gt;  &lt;p&gt;I could rant about so many things about BackupExec (now trying version 12.5) that I hate… D2D performance being very poor, jobs constantly getting stuck, etc. etc.&lt;/p&gt;  &lt;p&gt;The question is, where can I go?&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4442861564658029135-3381746379068415086?l=grinding-it-out.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Grinding-IT-Out?a=rr4SGcNpLPg:jVl5p8TlXIw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Grinding-IT-Out?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Grinding-IT-Out/~4/rr4SGcNpLPg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://grinding-it-out.blogspot.com/feeds/3381746379068415086/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=4442861564658029135&amp;postID=3381746379068415086" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4442861564658029135/posts/default/3381746379068415086?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4442861564658029135/posts/default/3381746379068415086?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Grinding-IT-Out/~3/rr4SGcNpLPg/backupexec-oh-how-i-hate-thee.html" title="BackupExec… Oh How I Hate Thee!" /><author><name>Derek Mangrum</name><uri>http://www.blogger.com/profile/05932163848657045446</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="06106917718758965303" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://grinding-it-out.blogspot.com/2009/06/backupexec-oh-how-i-hate-thee.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0YAR3g5eyp7ImA9WxJSGU8.&quot;"><id>tag:blogger.com,1999:blog-4442861564658029135.post-4785967101066035001</id><published>2009-05-09T20:09:00.001-07:00</published><updated>2009-05-09T20:12:26.623-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-05-09T20:12:26.623-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Personal" /><title>Carbonite = WIN!</title><content type="html">&lt;p&gt;So, our home computer crashed and we had to get a new one. We had been talking about this for a while anyway, but circumstances caused us to get one sooner than we wanted.&lt;/p&gt;  &lt;p&gt;We got a new Lenovo (and new 20” LCD monitor) from Fry’s Electronics. It is a nice setup.&lt;/p&gt;  &lt;p&gt;Last year, we got backup service from &lt;a href="http://carbonite.com/" target="_blank"&gt;Carbonite&lt;/a&gt; and used it to back up all of our data files (office docs, pictures, e-mail, videos, etc). This backup came in handy over the weekend! File restores from Carbonite worked like a charm, though it isn’t the fastest service on the planet. It certainly earned its wage this weekend!&lt;/p&gt;  &lt;p&gt;So, we are pretty much back up and running. As part of our ‘upgrade’, we went from an XP system to a Vista system. New UI, but we are getting used to it.&lt;/p&gt;  &lt;p&gt;Of course, there are already some upgrades we want to do… new webcam, a second hard drive, new scanner (no Vista drivers for our current one).&lt;/p&gt;  &lt;p&gt;The fun never ends…&lt;/p&gt;  &lt;p&gt;P.S. If you are interested in Carbonite, let me know and I will send you an invite… Customers get credit for referrals. Thx!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4442861564658029135-4785967101066035001?l=grinding-it-out.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Grinding-IT-Out?a=GKIWlx-WKvo:vK5PyeP6lH8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Grinding-IT-Out?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Grinding-IT-Out/~4/GKIWlx-WKvo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://grinding-it-out.blogspot.com/feeds/4785967101066035001/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=4442861564658029135&amp;postID=4785967101066035001" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4442861564658029135/posts/default/4785967101066035001?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4442861564658029135/posts/default/4785967101066035001?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Grinding-IT-Out/~3/GKIWlx-WKvo/carbonite-win.html" title="Carbonite = WIN!" /><author><name>Derek Mangrum</name><uri>http://www.blogger.com/profile/05932163848657045446</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="06106917718758965303" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://grinding-it-out.blogspot.com/2009/05/carbonite-win.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUQDQX8-cSp7ImA9WxJSFUs.&quot;"><id>tag:blogger.com,1999:blog-4442861564658029135.post-635574435747830969</id><published>2009-05-05T16:49:00.001-07:00</published><updated>2009-05-05T16:49:30.159-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-05-05T16:49:30.159-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Windows" /><category scheme="http://www.blogger.com/atom/ns#" term="Virtualization" /><title>Upgrading our Virtualization Infrastructure, and Other Updates…</title><content type="html">&lt;p&gt;We are going to be adding a second Hyper-V virtualization host soon. We currently have four VM hosts, three running Virtual Server and one running Hyper-V. Our goal, as you can probably imagine, is to get off of Virtual Server completely. This second Hyper-V host will just about get us there. We will be able to put our most critical VMs on Hyper-V and keep our ‘lesser’ VMs on Virtual Server. This is critical for us, as the performance and stability gains are impressive. As one example, our main file server (a VM) was, until recently, hosted on Virtual Server. It would literally take from 1-3 hours to reboot on that VM hosting platform. After moving this VM to Hyper-V, it now takes 1-3 minutes to reboot. Also, backups have increased in speed by almost 50%, greatly reducing our backup window, and expected recovery window. So, our data is getting safer faster and can be retrieved faster. All very good things!&lt;/p&gt;  &lt;p&gt;I have also been spending some time looking at more depth in to Server 2008. We aren’t ready to upgrade our Domain yet, but the File Services role for Windows Server 2008 has some impressive new features. And, since we are nearing file server capacity and need to expand, this might be a good time to upgrade. But, just doing the research as of now.&lt;/p&gt;  &lt;p&gt;In either case, the march towards Windows Server 2008 is under way. We’ve got quite a way to go, but we are moving in that direction.&lt;/p&gt;  &lt;p&gt;Finally, we are expanding our server room on our Mesa campus. This will help us consolidate our server resources to a single location, as well as give us some breathing room in our racks. As part of the expansion, we have added a few more power circuits, which were sorely needed. Overall, this will be a big win for us as we look to grow/update our systems.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4442861564658029135-635574435747830969?l=grinding-it-out.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Grinding-IT-Out?a=qjJhEmN6JFg:wcYgHcDFgFE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Grinding-IT-Out?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Grinding-IT-Out/~4/qjJhEmN6JFg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://grinding-it-out.blogspot.com/feeds/635574435747830969/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=4442861564658029135&amp;postID=635574435747830969" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4442861564658029135/posts/default/635574435747830969?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4442861564658029135/posts/default/635574435747830969?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Grinding-IT-Out/~3/qjJhEmN6JFg/upgrading-our-virtualization.html" title="Upgrading our Virtualization Infrastructure, and Other Updates…" /><author><name>Derek Mangrum</name><uri>http://www.blogger.com/profile/05932163848657045446</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="06106917718758965303" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://grinding-it-out.blogspot.com/2009/05/upgrading-our-virtualization.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0IDQnozfyp7ImA9WxJTFE8.&quot;"><id>tag:blogger.com,1999:blog-4442861564658029135.post-527852328406412337</id><published>2009-04-22T11:39:00.001-07:00</published><updated>2009-04-22T11:39:33.487-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-04-22T11:39:33.487-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="PowerShell" /><category scheme="http://www.blogger.com/atom/ns#" term="Office" /><title>When was an Outlook Calendar item created?</title><content type="html">&lt;p&gt;I had never been asked this question before, nor had I ever needed this information myself before.&lt;/p&gt;  &lt;p&gt;Looking at the properties of an Outlook Calendar item, you can see the ‘Modified’ date/time. But, this isn’t necessarily the CREATION date/time. I couldn’t find a way to see this data from within the Outlook UI. So, I turned to PowerShell. I figured the value is there, I just needed to get to it.&lt;/p&gt;  &lt;p&gt;&lt;em&gt;** If you know of an easier way, please let me know.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/whaggard/archive/2007/03/21/retrieving-your-outlook-appointments-for-a-given-date-range.aspx" target="_blank"&gt;This excellent blog post&lt;/a&gt; gave me most of what I needed.&lt;/p&gt;  &lt;p&gt;From that, I created the following snippet that does the trick:&lt;/p&gt;  &lt;div&gt;   &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #008000"&gt;# Connect to Outlook Calendar&lt;/span&gt;
$outlook = New-Object -ComObject Outlook.Application
$session = $outlook.Session
$session.Logon()
$calendarItems = $outlook.session.GetDefaultFolder(9).Items
$calendarItems.Sort(&lt;span style="color: #006080"&gt;&amp;quot;[Start]&amp;quot;&lt;/span&gt;)
$calendarItems.IncludeRecurrences = $true

$&lt;span style="color: #0000ff"&gt;filter&lt;/span&gt; = &lt;span style="color: #006080"&gt;&amp;quot;[End] &amp;gt;= '4/19/2009' AND [Start] &amp;lt;= '4/22/2009'&amp;quot;&lt;/span&gt;

&lt;span style="color: #0000ff"&gt;foreach&lt;/span&gt; ($appt &lt;span style="color: #0000ff"&gt;in&lt;/span&gt; $calendarItems.Restrict($&lt;span style="color: #0000ff"&gt;filter&lt;/span&gt;))
{
    $appt | Select CreationTime, LastModificationTime, Subject
}&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;At some point, I would like to make this into a function… accepting input for date ranges, etc.&lt;/p&gt;

&lt;p&gt;Also, I want to figure out how to look at other people’s calendars. I am thinking I need to pass parameters to Logon(), but did not get my initial attempts to work.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4442861564658029135-527852328406412337?l=grinding-it-out.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Grinding-IT-Out?a=V2Jo4Z9KMII:Na4qa2gvZT0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Grinding-IT-Out?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Grinding-IT-Out/~4/V2Jo4Z9KMII" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://grinding-it-out.blogspot.com/feeds/527852328406412337/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=4442861564658029135&amp;postID=527852328406412337" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4442861564658029135/posts/default/527852328406412337?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4442861564658029135/posts/default/527852328406412337?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Grinding-IT-Out/~3/V2Jo4Z9KMII/when-was-outlook-calendar-item-created.html" title="When was an Outlook Calendar item created?" /><author><name>Derek Mangrum</name><uri>http://www.blogger.com/profile/05932163848657045446</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="06106917718758965303" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://grinding-it-out.blogspot.com/2009/04/when-was-outlook-calendar-item-created.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEQCSHo9cCp7ImA9WxVbEkU.&quot;"><id>tag:blogger.com,1999:blog-4442861564658029135.post-5788807880423601284</id><published>2009-03-28T17:26:00.001-07:00</published><updated>2009-03-28T17:26:09.468-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-03-28T17:26:09.468-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Network" /><category scheme="http://www.blogger.com/atom/ns#" term="Wireless" /><category scheme="http://www.blogger.com/atom/ns#" term="Windows" /><title>Multi-Homed Domain Controller = FAIL!</title><content type="html">&lt;p&gt;Apparently, this is not a good idea…&lt;/p&gt;  &lt;p&gt;I am just finishing my &lt;strike&gt;crawl&lt;/strike&gt; walk down a long and winding path. It all started when we began having problems authenticating our wireless clients against our &lt;a href="http://technet.microsoft.com/en-us/network/bb643123.aspx" target="_blank"&gt;IAS&lt;/a&gt; server. We have a DC running IAS. This DC also runs an app for our VoIP phones. As such, this DC has two NICs, one on our DATA VLAN and one on our VOICE VLAN.&lt;/p&gt;  &lt;p&gt;The IAS authentication problem would show up sporadically. Using &lt;a href="http://www.wireshark.org/" target="_blank"&gt;WireShark&lt;/a&gt;, we would see authentication requests coming from the &lt;a href="http://www.cisco.com/en/US/products/ps6366/index.html" target="_blank"&gt;WLC&lt;/a&gt; to our IAS box, but no responses going back out. Things would just ‘black hole’ at the IAS box. I ended up opening tickets with both Cisco and Microsoft on this problem. Until we found a solution, our only sure-fire way to fix things (for a time) was to reboot the IAS/DC server.&lt;/p&gt;  &lt;p&gt;It didn’t take long to notice that the WLC was working as expected. So, we focused on the Microsoft side of the equation. To their credit, Microsoft stuck with us as we worked through this. We had this ticket open for a few weeks and ran through various levels of support and various engineers. It wasn’t until we got to “level 3” support at Microsoft that we found the problem. This engineer suspected something that no one (me included) thought to even check… &lt;em&gt;Could requests be coming in on one NIC and going out the other?&lt;/em&gt; As they say… &lt;strong&gt;EUREKA&lt;/strong&gt;!&lt;/p&gt;  &lt;p&gt;Of course, the first thing we had to do was wait… because, you know, we couldn’t exactly trigger this problem, or time it, or predict it. It would just happen all of a sudden. But, the next time we saw the problem, I ran WireShark on &lt;em&gt;both&lt;/em&gt; interfaces. Sure enough, requests were coming in on one NIC and going out the other. The WLC didn’t like that, not one bit.&lt;/p&gt;  &lt;p&gt;So, we had found our problem. Unfortunately, fixing the problem isn’t as easy as disabling one of the NICs. I mean, that works in the short-term, but it is not a solution. The phone paging system uses the voice VLAN NIC, as do our phones. We had a couple of phones give fits trying to register with the CallMan last week. I had disabled the voice VLAN NIC. Re-enabling this brought my phones back up.&lt;/p&gt;  &lt;p&gt;This particular issue was easily resolved by putting an IP Helper address on the voice VLAN on the router. Phones now get their DHCP responses from the data VLAN.&lt;/p&gt;  &lt;p&gt;But, we still have to fix the paging app. It has to have a NIC on the voice VLAN, so it looks like we will be migrating this app to its own box… Probably a better solution anyway.&lt;/p&gt;  &lt;p&gt;Moral of the story: multi-homed DCs can cause problems… Also, don’t try to do too much on your DCs (or any box, for that matter). &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4442861564658029135-5788807880423601284?l=grinding-it-out.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Grinding-IT-Out?a=da_7emR7lls:VKP63RvlEyg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Grinding-IT-Out?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Grinding-IT-Out/~4/da_7emR7lls" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://grinding-it-out.blogspot.com/feeds/5788807880423601284/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=4442861564658029135&amp;postID=5788807880423601284" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4442861564658029135/posts/default/5788807880423601284?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4442861564658029135/posts/default/5788807880423601284?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Grinding-IT-Out/~3/da_7emR7lls/multi-homed-domain-controller-fail.html" title="Multi-Homed Domain Controller = FAIL!" /><author><name>Derek Mangrum</name><uri>http://www.blogger.com/profile/05932163848657045446</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="06106917718758965303" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://grinding-it-out.blogspot.com/2009/03/multi-homed-domain-controller-fail.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CE8FSXY7fCp7ImA9WxVVF0k.&quot;"><id>tag:blogger.com,1999:blog-4442861564658029135.post-5976085190710461014</id><published>2009-03-10T20:39:00.001-07:00</published><updated>2009-03-10T20:40:18.804-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-03-10T20:40:18.804-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="E-Mail" /><category scheme="http://www.blogger.com/atom/ns#" term="Office" /><title>GMail’s Archive feature in Outlook… PART 2</title><content type="html">&lt;p&gt;I am following up on my &lt;a href="http://grinding-it-out.blogspot.com/2009/03/gmails-archive-feature-in-outlook.html" target="_blank"&gt;original post, available here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;These are the actual steps (as best as I remember them) that I followed to create this setup.&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Open Outlook &lt;/li&gt;    &lt;li&gt;Click Tools|Macro|Macros &lt;/li&gt;    &lt;li&gt;Enter ‘MoveTo_Archive’ (without quotes) as the Macro Name &lt;/li&gt;    &lt;li&gt;Click ‘Create’ &lt;/li&gt;    &lt;li&gt;Paste code into Module1 &lt;/li&gt;    &lt;li&gt;NOTE: Change the code in the MoveTo_Archive Sub, replacing &amp;lt;MyMailbox&amp;gt; with your actual mailbox name &lt;/li&gt;    &lt;li&gt;ALSO: Make sure the ‘_Archive’ folder exists in your mailbox. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;That should do it. Hope this helps.&lt;/p&gt;  &lt;p&gt;…not sure what I would screencap.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4442861564658029135-5976085190710461014?l=grinding-it-out.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Grinding-IT-Out?a=RB_5AoqsINQ:18ZfjcMBXo0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Grinding-IT-Out?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Grinding-IT-Out/~4/RB_5AoqsINQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://grinding-it-out.blogspot.com/feeds/5976085190710461014/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=4442861564658029135&amp;postID=5976085190710461014" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4442861564658029135/posts/default/5976085190710461014?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4442861564658029135/posts/default/5976085190710461014?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Grinding-IT-Out/~3/RB_5AoqsINQ/gmails-archive-feature-in-outlook-part.html" title="GMail’s Archive feature in Outlook… PART 2" /><author><name>Derek Mangrum</name><uri>http://www.blogger.com/profile/05932163848657045446</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="06106917718758965303" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">3</thr:total><feedburner:origLink>http://grinding-it-out.blogspot.com/2009/03/gmails-archive-feature-in-outlook-part.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE4AQX06fip7ImA9WxVVEUQ.&quot;"><id>tag:blogger.com,1999:blog-4442861564658029135.post-3905361194388026732</id><published>2009-03-04T13:02:00.001-07:00</published><updated>2009-03-04T13:02:20.316-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-03-04T13:02:20.316-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="PowerShell" /><title>Powershell – Preserving history for future sessions</title><content type="html">&lt;p&gt;Typing ‘exit’ in a Powershell console, as you would imagine, exits the console. I use &lt;a href="http://www.powershellplus.com/"&gt;PowerShellPlus&lt;/a&gt; almost exclusively (and love it!). Typing ‘exit’ while in PowerShellPlus (known affectionately as simply “teh+”) gives you the option of closing the app or starting a new, clean console session. I often use this as a quick way to clean out my console environment.&lt;/p&gt;  &lt;p&gt;I have also written a small function, named ‘exitt’, that exits AFTER securing the console. I sign all of my scripts. But sometimes, while working on something, I will set my Execution Policy to ‘remotesigned’ for a while. But, I pretty much always set my Execution Policy to ‘allsigned’ before exiting. That way, nothing unsigned by myself will accidentally (or maliciously… am I paranoid?) run the next time I start Powershell.&lt;/p&gt;  &lt;p&gt;Anyway, back to my point…&lt;/p&gt;  &lt;p&gt;When I type ‘exit’ or run my ‘exitt’ function and stay in teh+, my history is wiped out. This usually isn’t a problem. But, there are times when I want a clean, fresh console AND my history. To that end, I tweaked my ‘exitt’ function and my profile a bit.&lt;/p&gt;  &lt;p&gt;(NOTE: I did this before really researching things on the Internet. There are probably better ways of handling this, but this works for me).&lt;/p&gt;  &lt;p&gt;The meat of my ‘exitt’ function looks like this:&lt;/p&gt; &lt;!-- Stylesheet link --&gt;&lt;link href="http://www.thecomplex.plus.com/styles/SyntaxHighlighter.css" type="text/css" rel="stylesheet" /&gt;&lt;!-- Code --&gt;  &lt;div class="dp-highlighter" id="hlDiv" style="width: 98.61%; height: 321px"&gt;   &lt;div class="bar"&gt;&lt;/div&gt;    &lt;ol class="dp-rb"&gt;     &lt;li class="alt"&gt;&lt;span&gt;&lt;span class="keyword"&gt;param&lt;/span&gt;&lt;span&gt;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;      &lt;li class=""&gt;&lt;span&gt;(&amp;#160;&amp;#160; &lt;/span&gt;&lt;/li&gt;      &lt;li class="alt"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; [Parameter(Position=0, Mandatory=&lt;span class="variable"&gt;$false&lt;/span&gt;&lt;span&gt;, ValueFromPipeLine=&lt;/span&gt;&lt;span class="variable"&gt;$false&lt;/span&gt;&lt;span&gt;)]&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;      &lt;li class=""&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [&lt;span class="keyword"&gt;switch&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;span class="variable"&gt;$history&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="variable"&gt;$false&lt;/span&gt;&lt;span&gt;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;      &lt;li class="alt"&gt;&lt;span&gt;)&amp;#160; &lt;/span&gt;&lt;/li&gt;      &lt;li class=""&gt;&lt;span&gt;&amp;#160; &lt;/span&gt;&lt;/li&gt;      &lt;li class="alt"&gt;&lt;span&gt;&lt;span class="comment"&gt;# Call Secure-Console function to set executionPolicy to AllSigned&lt;/span&gt;&lt;span&gt;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;      &lt;li class=""&gt;&lt;span&gt;Secure-Console&amp;#160; &lt;/span&gt;&lt;/li&gt;      &lt;li class="alt"&gt;&lt;span&gt;&amp;#160; &lt;/span&gt;&lt;/li&gt;      &lt;li class=""&gt;&lt;span&gt;&lt;span class="comment"&gt;# If switched, export history for future use. Otherwise, blow out history&lt;/span&gt;&lt;span&gt;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;      &lt;li class="alt"&gt;&lt;span&gt;&lt;span class="keyword"&gt;if&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span class="variable"&gt;$history&lt;/span&gt;&lt;span&gt;)&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;      &lt;li class=""&gt;&lt;span&gt;{&amp;#160; &lt;/span&gt;&lt;/li&gt;      &lt;li class="alt"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span class="builtin"&gt;Get-History&lt;/span&gt;&lt;span&gt; | &lt;/span&gt;&lt;span class="builtin"&gt;Export-Clixml&lt;/span&gt;&lt;span&gt;&amp;#160;&lt;/span&gt;&lt;span class="string"&gt;&amp;quot;c:\scripts\hist.xml&amp;quot;&lt;/span&gt;&lt;span&gt; -Force&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;      &lt;li class=""&gt;&lt;span&gt;}&amp;#160; &lt;/span&gt;&lt;/li&gt;      &lt;li class="alt"&gt;&lt;span&gt;&lt;span class="keyword"&gt;else&lt;/span&gt;&lt;span&gt;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;      &lt;li class=""&gt;&lt;span&gt;{&amp;#160; &lt;/span&gt;&lt;/li&gt;      &lt;li class="alt"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span class="builtin"&gt;Remove-Item&lt;/span&gt;&lt;span&gt;&amp;#160;&lt;/span&gt;&lt;span class="string"&gt;&amp;quot;c:\scripts\hist.xml&amp;quot;&lt;/span&gt;&lt;span&gt; -Force -ea SilentlyContinue&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;      &lt;li class=""&gt;&lt;span&gt;}&amp;#160; &lt;/span&gt;&lt;/li&gt;      &lt;li class="alt"&gt;&lt;span&gt;&amp;#160; &lt;/span&gt;&lt;/li&gt;      &lt;li class=""&gt;&lt;span&gt;&lt;span class="comment"&gt;#Close Program&lt;/span&gt;&lt;span&gt;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;      &lt;li class="alt"&gt;&lt;span&gt;exit&amp;#160; &lt;/span&gt;&lt;/li&gt;   &lt;/ol&gt; &lt;/div&gt;  &lt;p&gt;So, if I run the function with the –history switch, it writes the current history out to an XML file.&lt;/p&gt;  &lt;p&gt;Then, my profile has this bit:&lt;/p&gt; &lt;!-- Stylesheet link --&gt;&lt;link href="http://www.thecomplex.plus.com/styles/SyntaxHighlighter.css" type="text/css" rel="stylesheet" /&gt;&lt;!-- Code --&gt;  &lt;div class="dp-highlighter" id="hlDiv" style="width: 99.02%; height: 97px"&gt;   &lt;div class="bar"&gt;&lt;/div&gt;    &lt;ol class="dp-rb"&gt;     &lt;li class="alt"&gt;&lt;span&gt;&lt;span class="keyword"&gt;if&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span class="builtin"&gt;Test-Path&lt;/span&gt;&lt;span&gt;&amp;#160;&lt;/span&gt;&lt;span class="string"&gt;&amp;quot;c:\scripts\hist.xml&amp;quot;&lt;/span&gt;&lt;span&gt;)&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;      &lt;li class=""&gt;&lt;span&gt;{&amp;#160; &lt;/span&gt;&lt;/li&gt;      &lt;li class="alt"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span class="builtin"&gt;Add-History&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span class="builtin"&gt;Import-Clixml&lt;/span&gt;&lt;span&gt;&amp;#160;&lt;/span&gt;&lt;span class="string"&gt;&amp;quot;c:\scripts\hist.xml&amp;quot;&lt;/span&gt;&lt;span&gt;)&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;      &lt;li class=""&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span class="builtin"&gt;Remove-Item&lt;/span&gt;&lt;span&gt;&amp;#160;&lt;/span&gt;&lt;span class="string"&gt;&amp;quot;c:\scripts\hist.xml&amp;quot;&lt;/span&gt;&lt;span&gt; -Force -ea SilentlyContinue&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;      &lt;li class="alt"&gt;&lt;span&gt;}&amp;#160; &lt;/span&gt;&lt;/li&gt;   &lt;/ol&gt; &lt;/div&gt;  &lt;p&gt;Pretty simple, and it works for me. &lt;/p&gt;  &lt;p&gt;After writing this, I did a quick search in the ‘tubes and came across &lt;a href="http://blogs.msdn.com/powershell/archive/2006/07/01/perserving-command-history-across-sessions.aspx"&gt;JSnover’s solution to this&lt;/a&gt;. Maybe I will do that first next time.&amp;#160; &lt;/p&gt;  &lt;p&gt;:-)&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4442861564658029135-3905361194388026732?l=grinding-it-out.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Grinding-IT-Out?a=KbuhrZ0QwCM:bTALuckrsy4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Grinding-IT-Out?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Grinding-IT-Out/~4/KbuhrZ0QwCM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://grinding-it-out.blogspot.com/feeds/3905361194388026732/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=4442861564658029135&amp;postID=3905361194388026732" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4442861564658029135/posts/default/3905361194388026732?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4442861564658029135/posts/default/3905361194388026732?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Grinding-IT-Out/~3/KbuhrZ0QwCM/powershell-preserving-history-for.html" title="Powershell – Preserving history for future sessions" /><author><name>Derek Mangrum</name><uri>http://www.blogger.com/profile/05932163848657045446</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="06106917718758965303" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://grinding-it-out.blogspot.com/2009/03/powershell-preserving-history-for.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0AGR3o5eSp7ImA9WxVVEEw.&quot;"><id>tag:blogger.com,1999:blog-4442861564658029135.post-5829190172805170856</id><published>2009-03-02T09:35:00.001-07:00</published><updated>2009-03-02T09:35:26.421-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-03-02T09:35:26.421-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Automation" /><category scheme="http://www.blogger.com/atom/ns#" term="E-Mail" /><title>GMail’s Archive feature in Outlook…</title><content type="html">&lt;p&gt;I love this feature. This, plus GMail’s great search, keeps my Inbox clean while making all of my past mail easily accessible. Of course, all you GMailers out there already know this.&lt;/p&gt;  &lt;p&gt;Now, when it comes to Outlook… well… not so much.&lt;/p&gt;  &lt;p&gt;I used to just delete stuff and use the ‘Deleted Items’ folder as my archive folder. But, that is not really an ideal solution. So, I thought that I would create an Archive folder and then move message to that instead. After some searching, I found and modified a Macro. This code is not original to me. Unfortunately, I didn’t document where I got it, so I can’t give proper credit. I even searched some this morning, looking for the original again, with no luck. But, whoever you are, thank you!&lt;/p&gt;  &lt;p&gt;Tie this to a button and a key combo, and you have a nice archive folder. Works great for me… My Inbox is clean and I know where to look for past emails.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;div&gt;   &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #0000ff"&gt;Sub&lt;/span&gt; MoveMessages(strFolder &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; &lt;span style="color: #0000ff"&gt;String&lt;/span&gt;)
    &lt;span style="color: #0000ff"&gt;Dim&lt;/span&gt; olkItem &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Object&lt;/span&gt;, _
        olkFolder &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; Outlook.MAPIFolder
    &lt;span style="color: #0000ff"&gt;Set&lt;/span&gt; olkFolder = OpenMAPIFolder(strFolder)
    &lt;span style="color: #0000ff"&gt;If&lt;/span&gt; TypeName(olkFolder) = &lt;span style="color: #006080"&gt;&amp;quot;MAPIFolder&amp;quot;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Then&lt;/span&gt;
        &lt;span style="color: #0000ff"&gt;For&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Each&lt;/span&gt; olkItem &lt;span style="color: #0000ff"&gt;In&lt;/span&gt; Application.ActiveExplorer.Selection
            olkItem.UnRead = &lt;span style="color: #0000ff"&gt;False&lt;/span&gt;
            olkItem.Save
            olkItem.Move olkFolder
        &lt;span style="color: #0000ff"&gt;Next&lt;/span&gt;
    &lt;span style="color: #0000ff"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff"&gt;If&lt;/span&gt;
    &lt;span style="color: #0000ff"&gt;Set&lt;/span&gt; olkFolder = &lt;span style="color: #0000ff"&gt;Nothing&lt;/span&gt;
    &lt;span style="color: #0000ff"&gt;Set&lt;/span&gt; olkItem = &lt;span style="color: #0000ff"&gt;Nothing&lt;/span&gt;
&lt;span style="color: #0000ff"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Sub&lt;/span&gt;

&lt;span style="color: #0000ff"&gt;Sub&lt;/span&gt; MoveTo_Archive()
    MoveMessages &lt;span style="color: #006080"&gt;&amp;quot;\&amp;lt;MyMailbox&amp;gt;\_Archive&amp;quot;&lt;/span&gt;
&lt;span style="color: #0000ff"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Sub&lt;/span&gt;

&lt;span style="color: #0000ff"&gt;Function&lt;/span&gt; OpenMAPIFolder(szPath)
    &lt;span style="color: #0000ff"&gt;Dim&lt;/span&gt; app, ns, flr, szDir, i
    &lt;span style="color: #0000ff"&gt;Set&lt;/span&gt; flr = &lt;span style="color: #0000ff"&gt;Nothing&lt;/span&gt;
    &lt;span style="color: #0000ff"&gt;Set&lt;/span&gt; app = CreateObject(&lt;span style="color: #006080"&gt;&amp;quot;Outlook.Application&amp;quot;&lt;/span&gt;)
    &lt;span style="color: #0000ff"&gt;If&lt;/span&gt; Left(szPath, Len(&lt;span style="color: #006080"&gt;&amp;quot;\&amp;quot;&lt;/span&gt;)) = &lt;span style="color: #006080"&gt;&amp;quot;\&amp;quot;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Then&lt;/span&gt;
        szPath = Mid(szPath, Len(&lt;span style="color: #006080"&gt;&amp;quot;\&amp;quot;&lt;/span&gt;) + 1)
    &lt;span style="color: #0000ff"&gt;Else&lt;/span&gt;
        &lt;span style="color: #0000ff"&gt;Set&lt;/span&gt; flr = app.ActiveExplorer.CurrentFolder
    &lt;span style="color: #0000ff"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff"&gt;If&lt;/span&gt;
    &lt;span style="color: #0000ff"&gt;While&lt;/span&gt; szPath &amp;lt;&amp;gt; &lt;span style="color: #006080"&gt;&amp;quot;&amp;quot;&lt;/span&gt;
        i = InStr(szPath, &lt;span style="color: #006080"&gt;&amp;quot;\&amp;quot;&lt;/span&gt;)
        &lt;span style="color: #0000ff"&gt;If&lt;/span&gt; i &lt;span style="color: #0000ff"&gt;Then&lt;/span&gt;
            szDir = Left(szPath, i - 1)
            szPath = Mid(szPath, i + Len(&lt;span style="color: #006080"&gt;&amp;quot;\&amp;quot;&lt;/span&gt;))
        &lt;span style="color: #0000ff"&gt;Else&lt;/span&gt;
            szDir = szPath
            szPath = &lt;span style="color: #006080"&gt;&amp;quot;&amp;quot;&lt;/span&gt;
        &lt;span style="color: #0000ff"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff"&gt;If&lt;/span&gt;
        &lt;span style="color: #0000ff"&gt;If&lt;/span&gt; IsNothing(flr) &lt;span style="color: #0000ff"&gt;Then&lt;/span&gt;
            &lt;span style="color: #0000ff"&gt;Set&lt;/span&gt; ns = app.GetNamespace(&lt;span style="color: #006080"&gt;&amp;quot;MAPI&amp;quot;&lt;/span&gt;)
            &lt;span style="color: #0000ff"&gt;Set&lt;/span&gt; flr = ns.Folders(szDir)
        &lt;span style="color: #0000ff"&gt;Else&lt;/span&gt;
            &lt;span style="color: #0000ff"&gt;Set&lt;/span&gt; flr = flr.Folders(szDir)
        &lt;span style="color: #0000ff"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff"&gt;If&lt;/span&gt;
    &lt;span style="color: #0000ff"&gt;Wend&lt;/span&gt;
    &lt;span style="color: #0000ff"&gt;Set&lt;/span&gt; OpenMAPIFolder = flr
&lt;span style="color: #0000ff"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Function&lt;/span&gt;

&lt;span style="color: #0000ff"&gt;Function&lt;/span&gt; IsNothing(obj)
  &lt;span style="color: #0000ff"&gt;If&lt;/span&gt; TypeName(obj) = &lt;span style="color: #006080"&gt;&amp;quot;Nothing&amp;quot;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Then&lt;/span&gt;
    IsNothing = &lt;span style="color: #0000ff"&gt;True&lt;/span&gt;
  &lt;span style="color: #0000ff"&gt;Else&lt;/span&gt;
    IsNothing = &lt;span style="color: #0000ff"&gt;False&lt;/span&gt;
  &lt;span style="color: #0000ff"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff"&gt;If&lt;/span&gt;
&lt;span style="color: #0000ff"&gt;End&lt;/span&gt; Function&lt;/pre&gt;
&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4442861564658029135-5829190172805170856?l=grinding-it-out.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Grinding-IT-Out?a=CP3-YaPz13U:GOmUCUnUuLE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Grinding-IT-Out?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Grinding-IT-Out/~4/CP3-YaPz13U" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://grinding-it-out.blogspot.com/feeds/5829190172805170856/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=4442861564658029135&amp;postID=5829190172805170856" title="7 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4442861564658029135/posts/default/5829190172805170856?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4442861564658029135/posts/default/5829190172805170856?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Grinding-IT-Out/~3/CP3-YaPz13U/gmails-archive-feature-in-outlook.html" title="GMail’s Archive feature in Outlook…" /><author><name>Derek Mangrum</name><uri>http://www.blogger.com/profile/05932163848657045446</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="06106917718758965303" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">7</thr:total><feedburner:origLink>http://grinding-it-out.blogspot.com/2009/03/gmails-archive-feature-in-outlook.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkENRHc9eSp7ImA9WxVWEEs.&quot;"><id>tag:blogger.com,1999:blog-4442861564658029135.post-2756108400997633603</id><published>2009-02-19T10:31:00.001-07:00</published><updated>2009-02-19T10:31:35.961-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-19T10:31:35.961-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Windows" /><category scheme="http://www.blogger.com/atom/ns#" term="Virtualization" /><category scheme="http://www.blogger.com/atom/ns#" term="Servers" /><title>Score 1 for Hyper-V!</title><content type="html">&lt;p&gt;In my &lt;a href="http://grinding-it-out.blogspot.com/2009/02/hyper-v-fails-where-virtual-server-2005.html"&gt;last post&lt;/a&gt;, I lamented that it was possible that &lt;a href="http://www.microsoft.com/windowsserver2008/en/us/hyperv.aspx"&gt;Hyper-V&lt;/a&gt; was failing where &lt;a href="http://www.microsoft.com/windowsserversystem/virtualserver/"&gt;Virtual Server&lt;/a&gt; was not. Happily, it turns out I was completely wrong.&lt;/p&gt;  &lt;p&gt;The culprit turned out to be Windows Server 2003 itself. Specifically, Windows Server 2003 Standard SP2. This platform has a problem working well with our application. Our Windows Server 2003 R2 Enterprise SP2 box worked fine hosted on both Virtual Server and (more importantly) Hyper-V.&lt;/p&gt;  &lt;p&gt;So, we will be migrating our production application to the new OS, hosting our VM on our Hyper-V box. Which is what we wanted all along.&lt;/p&gt;  &lt;p&gt;I have to say that our successful outcome on this project was due to diligent testing. We kept testing different configurations until we had multiple test results, each differing by only one variable. We were then able to clearly define the problem piece of the puzzle.&lt;/p&gt;  &lt;p&gt;Thanks to our team for helping with this!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4442861564658029135-2756108400997633603?l=grinding-it-out.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Grinding-IT-Out?a=nP4mH1ikBmY:JnE6qIv5bhI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Grinding-IT-Out?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Grinding-IT-Out/~4/nP4mH1ikBmY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://grinding-it-out.blogspot.com/feeds/2756108400997633603/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=4442861564658029135&amp;postID=2756108400997633603" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4442861564658029135/posts/default/2756108400997633603?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4442861564658029135/posts/default/2756108400997633603?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Grinding-IT-Out/~3/nP4mH1ikBmY/score-1-for-hyper-v.html" title="Score 1 for Hyper-V!" /><author><name>Derek Mangrum</name><uri>http://www.blogger.com/profile/05932163848657045446</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="06106917718758965303" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://grinding-it-out.blogspot.com/2009/02/score-1-for-hyper-v.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkAESHg6fSp7ImA9WxVXE0Q.&quot;"><id>tag:blogger.com,1999:blog-4442861564658029135.post-6918574991756315407</id><published>2009-02-11T15:18:00.001-07:00</published><updated>2009-02-11T15:18:29.615-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-11T15:18:29.615-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Windows" /><category scheme="http://www.blogger.com/atom/ns#" term="Virtualization" /><category scheme="http://www.blogger.com/atom/ns#" term="Servers" /><title>Hyper-V Fails where Virtual Server 2005 R2 Succeeds</title><content type="html">&lt;p&gt;&lt;a href="http://lh5.ggpht.com/_06A6cuUZTfU/SZNOswuiCrI/AAAAAAAAAI4/nhlRc-jcAtE/s1600-h/noHV%5B6%5D.jpg"&gt;&lt;img title="Hyper-V FAIL!" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 0px 0px 5px; border-right-width: 0px" height="235" alt="Hyper-V FAIL!" src="http://lh4.ggpht.com/_06A6cuUZTfU/SZNOtLJ86-I/AAAAAAAAAI8/GoScQbv1lyY/noHV_thumb%5B4%5D.jpg?imgmax=800" width="478" align="right" border="0" /&gt;&lt;/a&gt; Well, it appears we have to take a step back to move forward. This is a VERY disappointing situation and I am hoping that someone at Microsoft (Hyper-V team) will stumble across this and take interest.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://codersforchrist.com/cs/blogs/nick/archive/2009/02/08/Our-Virtual-Check_2D00_in-System.aspx"&gt;First, go read this blog post&lt;/a&gt;. Don’t worry, it will only take a minute… I will wait for you.&lt;/p&gt;  &lt;p&gt;.&lt;/p&gt;  &lt;p&gt;.&lt;/p&gt;  &lt;p&gt;.&lt;/p&gt;  &lt;p&gt;Are you back? Good.&lt;/p&gt;  &lt;p&gt;We ran further tests today. Specifically, I created a VM on one of our Virtual Server 2005 R2 hosts and we ran the printing tests. We had no problems at all. So, our current reality is:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Physical server: no problems &lt;/li&gt;    &lt;li&gt;Virtual Server 2005 R2 VM: no problems &lt;/li&gt;    &lt;li&gt;Hyper-V VM: CRASH! &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;At this point, our options are pretty clear…&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Migrate our VM from Hyper-V to Virtual Server 2005 R2, or &lt;/li&gt;    &lt;li&gt;Install our workload onto a physical server &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;As you can guess, neither of these options are ideal. Option 1 is taking a step backward to a technology that is being left behind. I don’t want to have a workload on that platform that can’t be moved to the current offering. Option 2 defeats the whole purpose of virtualization and all of the perceived benefits it offers!&lt;/p&gt;  &lt;p&gt;So, here we sit, wondering what to do and where to turn for solutions. We have done some research and wonder if items like this are helpful: &lt;/p&gt;  &lt;p&gt;&lt;a href="http://support.microsoft.com/kb/955455"&gt;The print process crashes under heavy stress on a computer that is running Windows Server 2003 or Windows XP Professional x64 Edition if the computer uses hyper-threading technology&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;I went down a rabbit-hole for a while on hyper-threading and virtual platforms… Not sure if I am heading in the right direction.&lt;/p&gt;  &lt;p&gt;I would really appreciate any thoughts or suggestions you might have.&lt;/p&gt;  &lt;p&gt;I will post more as it becomes available.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4442861564658029135-6918574991756315407?l=grinding-it-out.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Grinding-IT-Out?a=eOukJobvgf0:Lee_dG89Dzs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Grinding-IT-Out?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Grinding-IT-Out/~4/eOukJobvgf0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://grinding-it-out.blogspot.com/feeds/6918574991756315407/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=4442861564658029135&amp;postID=6918574991756315407" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4442861564658029135/posts/default/6918574991756315407?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4442861564658029135/posts/default/6918574991756315407?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Grinding-IT-Out/~3/eOukJobvgf0/hyper-v-fails-where-virtual-server-2005.html" title="Hyper-V Fails where Virtual Server 2005 R2 Succeeds" /><author><name>Derek Mangrum</name><uri>http://www.blogger.com/profile/05932163848657045446</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="06106917718758965303" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://grinding-it-out.blogspot.com/2009/02/hyper-v-fails-where-virtual-server-2005.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DU8CQ3Yzfip7ImA9WxVXEk0.&quot;"><id>tag:blogger.com,1999:blog-4442861564658029135.post-3875920330492047438</id><published>2009-02-09T12:31:00.001-07:00</published><updated>2009-02-09T12:31:02.886-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-09T12:31:02.886-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Virtualization" /><title>Starting VMs that try to share DVD drive</title><content type="html">&lt;p&gt;This was an odd one…&lt;/p&gt;  &lt;p&gt;I created a new VM on my Hyper-V host. The VM would not start. It turns out that I had two VMs on this Host both trying to use the hosts DVD drive as its own. This doesn’t work.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.experts-exchange.com/OS/Microsoft_Operating_Systems/Q_24075454.html"&gt;Found a description and the solution here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Moral of the story: Make sure an ‘off’ VM is not trying to use the DVD drive if it is already assigned to an ‘on’ VM.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4442861564658029135-3875920330492047438?l=grinding-it-out.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Grinding-IT-Out?a=1rd6Baz9mSA:MhC5KzRvl84:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Grinding-IT-Out?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Grinding-IT-Out/~4/1rd6Baz9mSA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://grinding-it-out.blogspot.com/feeds/3875920330492047438/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=4442861564658029135&amp;postID=3875920330492047438" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4442861564658029135/posts/default/3875920330492047438?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4442861564658029135/posts/default/3875920330492047438?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Grinding-IT-Out/~3/1rd6Baz9mSA/starting-vms-that-try-to-share-dvd.html" title="Starting VMs that try to share DVD drive" /><author><name>Derek Mangrum</name><uri>http://www.blogger.com/profile/05932163848657045446</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="06106917718758965303" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://grinding-it-out.blogspot.com/2009/02/starting-vms-that-try-to-share-dvd.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0AGRXg9eyp7ImA9WxVQEUo.&quot;"><id>tag:blogger.com,1999:blog-4442861564658029135.post-215310618564022644</id><published>2009-01-28T14:55:00.001-07:00</published><updated>2009-01-28T14:55:24.663-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-01-28T14:55:24.663-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Database" /><title>Installing SQL Server 2008 Express Edition Management Studio</title><content type="html">&lt;p&gt;&lt;a href="http://www.microsoft.com/express/download/"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; margin: 0px 5px 5px 0px; border-left: 0px; border-bottom: 0px" height="180" alt="image" src="http://lh6.ggpht.com/_06A6cuUZTfU/SYDUSmYbooI/AAAAAAAAAI0/pXi-YpksmPA/image%5B15%5D.png?imgmax=800" width="288" align="left" border="0" /&gt;&lt;/a&gt; I have a new VM that I am configuring as a development platform. I am installing some of the &lt;a href="http://www.microsoft.com/express/download/"&gt;Visual Studio Express Edition&lt;/a&gt; tools, specifically Visual Web Developer 2008 EE and Visual C# 2008 EE. I’m not a developer, but I enjoy dabbling. This will give me the tools to do that.&lt;/p&gt;  &lt;p&gt;I first installed Visual Web Developer (did this a week ago). As part of this install, it installed SQL Server 2008 Express Edition. While this installed the database engine, it did not install the SQL Server Management Studio (SSMS). Now, SSMS for version 2005 was a separate download and install. This version, however, is not able to manage a 2008 install. So, I went looking for the 2008 version of the SSMS. It turns out that there are multiple versions of the SQL Server 2008 EE product…&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=58ce885d-508b-45c8-9fd3-118edd8e6fff&amp;amp;DisplayLang=en"&gt;SQL Server 2008 Express (Runtime Only)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=7522A683-4CB2-454E-B908-E805E9BD4E28&amp;amp;displaylang=en"&gt;SQL Server 2008 Express with Tools&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=B5D1B8C3-FDA5-4508-B0D0-1311D670E336&amp;amp;displaylang=en"&gt;SQL Server 2008 Express with Advanced Services&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;It looks like the WebDev install included only the Runtime version of SQL Server EE. So, if I wanted to get the Management Studio, I had to use one of the other two distros of this product. Here’s where the snag came that I wanted to share.&lt;/p&gt;  &lt;p&gt;The install of the &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=7522A683-4CB2-454E-B908-E805E9BD4E28&amp;amp;displaylang=en"&gt;SQL Server 2008 Express with Tools&lt;/a&gt; allows you to install a new instance or add to an existing instance. My first thought was to add to an existing instance (as I already had an installation of this product). However, when I went through this step, it did not allow me to add the Management Studio. I think it saw that the currently-installed instance was the ‘Runtime Only’ version, so it did not offer me the Management Studio.&lt;/p&gt;  &lt;p&gt;After wrestling with this for a few minutes, I decided I would just install a new instance, hoping to get access to the Management Studio that way. This worked even better than I wanted. I was able to select ONLY the Management Studio on the new instance install page. This page listed ‘Instance resources’ and ‘Shared resources’. Management Studio was under ‘Shared resources’. I selected it and left everything else unchecked.&lt;/p&gt;  &lt;p&gt;Worked like a charm.&lt;/p&gt;  &lt;p&gt;This wasn’t completely intuitive (you can’t add to an existing install if the existing install is the Runtime Only version). So, you have to use the ‘install a new instance’ option.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4442861564658029135-215310618564022644?l=grinding-it-out.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Grinding-IT-Out?a=RBfO9b0x8yI:c_9sNpDaPVU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Grinding-IT-Out?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Grinding-IT-Out/~4/RBfO9b0x8yI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://grinding-it-out.blogspot.com/feeds/215310618564022644/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=4442861564658029135&amp;postID=215310618564022644" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4442861564658029135/posts/default/215310618564022644?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4442861564658029135/posts/default/215310618564022644?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Grinding-IT-Out/~3/RBfO9b0x8yI/installing-sql-server-2008-express.html" title="Installing SQL Server 2008 Express Edition Management Studio" /><author><name>Derek Mangrum</name><uri>http://www.blogger.com/profile/05932163848657045446</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="06106917718758965303" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://grinding-it-out.blogspot.com/2009/01/installing-sql-server-2008-express.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CU8ESX09eyp7ImA9WxVQEUs.&quot;"><id>tag:blogger.com,1999:blog-4442861564658029135.post-5777317114634262562</id><published>2009-01-28T10:30:00.001-07:00</published><updated>2009-01-28T10:30:08.363-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-01-28T10:30:08.363-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Servers" /><title>What’s Up with What’s Up Gold?!</title><content type="html">&lt;p&gt;&lt;a href="http://www.whatsupgold.com/"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; margin-left: 0px; border-left: 0px; margin-right: 0px; border-bottom: 0px" height="88" alt="image" src="http://lh3.ggpht.com/_06A6cuUZTfU/SYCWERfthDI/AAAAAAAAAIo/M6ZP1UBiAX4/image%5B5%5D.png?imgmax=800" width="461" align="right" border="0" /&gt;&lt;/a&gt;I want to start by saying that I really like this product.&amp;#160; We are currently running What’s Up Gold (WUG) v12.3.1 to monitor over 100 devices on our network.&amp;#160; We are monitoring a combination of servers, switches, routers, websites, and more. Our implementation is not complete, but we are constantly adding to it; adding monitors, notification, etc. We are especially focusing on notification now. Currently, I have my WUG dashboard open on my second monitor throughout the day. So, I can see real-time performance of our systems. The BIG ‘killer-app’ feature for me is the history that WUG keeps for the metrics it monitors.&lt;/p&gt;  &lt;p&gt;This has been especially useful when evaluating storage usage, bandwidth utilization, and CPU/memory usage on some of our high-load systems. We have caught things that would have become problems BEFORE they became problems. I feel like this tool has paid for itself in these scenarios! Also, we have recently been looking at the Windows NT Service monitor feature. This is cool. You can monitor services on machines and, if WUG sees that a service is stopped, can re-start it automatically. Very nice! This, combined with alerting, gives us good active monitoring and remediation capability. It’s always best to know about, and fix, a problem before your users have to report it to you. WUG makes this available.&lt;/p&gt;  &lt;p&gt;With that all being said, I have to rail on some thing that I really DON’T like about What’s Up Gold. Like I said above, we are running version 12.3.1. You would think that a product as mature as this (in its 12th version) would be a bit more ‘enterprise’ friendly. I have had an experience over the past few weeks that has led me to a contrary opinion.&lt;/p&gt;  &lt;p&gt;When installing WUG, you have the option of using a local ‘Express Edition’ SQL database or a full-blown SQL Server 2005 installation. We originally installed WUG on a machine and used a local DB. As you probably know, SQL Server Express Edition and a 4GB limit on its database size. Well, over time, our WUG database grew to 4GB and then promptly when ‘caput’! We had a choice… delete history or migrate the database. We have a SQL Server 2005 installation with capacity to spare, so our decision was to migrate the database.&lt;/p&gt;  &lt;p&gt;Following the ‘Migration Guide’ from &lt;a href="http://www.whatsupgold.com/"&gt;Ipswitch&lt;/a&gt;, I was able to move the database form the local SQL engine to our SQL Server. Everything seemed to be fine… until I tried to add another device to WUG. When I tried this, I got…&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_06A6cuUZTfU/SYCWEg-ZTWI/AAAAAAAAAIs/xoWLxrXf37Q/s1600-h/clip_image002%5B8%5D.jpg"&gt;&lt;img title="clip_image002" style="border-right: 0px; border-top: 0px; display: inline; margin-left: 0px; border-left: 0px; margin-right: 0px; border-bottom: 0px" height="218" alt="clip_image002" src="http://lh5.ggpht.com/_06A6cuUZTfU/SYCWFOlsk6I/AAAAAAAAAIw/Qx32s17vz-g/clip_image002_thumb%5B5%5D.jpg?imgmax=800" width="688" align="left" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;And, this is where things became very difficult. First, I have to state that I am not a DBA. But, I can find my way around the SQL Server Management tools, run queries, etc. Anyway, with this error in hand, I went where I always go when I have a question… Google. I also went to WUG’s website to search their KB. It was about this time that my frustration with WUG, specifically their help and technical support, really began to blossom. Their KB articles are very poorly written; much too vague and general. Any discussion threads I found related to this issue was just populated by frustrated users, not much in the way of constructive input on the part of WUG technicians.&lt;/p&gt;  &lt;p&gt;I found a few vague references to ‘sp_dropserver’ and ‘sp_addserver’, but no real explanation of why or how I would use these to fix this particular problem. Nor was I able to find an actual explanation of the problem itself. &lt;/p&gt;  &lt;p&gt;After a while of frustrating searching, I contacted WUG technical support and opened a ticket with them. I sent them a detailed description of the problem I was having and how it came about. I sent them the picture shown here so they would see exactly what I saw, hoping to get some… you know… support. Instead, I got the following e-mail in response:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;-----------------------&lt;/p&gt;    &lt;p&gt;Hello Derek, &lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160; You will find the steps to resolve the issue in the migration guide:&lt;/p&gt;    &lt;p&gt;&lt;a href="http://www.whatsupgold.com/wugdbmg"&gt;http://www.whatsupgold.com/wugdbmg&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;&amp;#160; As with all SQL operations this should be performed by a SQL DBA.&lt;/p&gt;    &lt;p&gt;----------------------&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Helpful, huh? I can really see what they are paying these tech support guys for! Such great analysis! Such support! I had already used the Migration Guide to help with the original migration. Further, the error message references the ‘sp_addlinkedserver’ command, but the Migration Guide talks about the ‘sp_dropserver’ and ‘sp_addserver’ commands. I responded to tech support, indicating my concerns and issues I had with running these commands on my SQL Server. I let them know that I executed the commands and got an error, which I sent along. Their ‘oh-so-helpful’ response was:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;-----------------------&lt;/p&gt;    &lt;p&gt;Hello Derek, &lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160; Please have your DBA execute the commands. &lt;/p&gt;    &lt;p&gt;-----------------------&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Yes, that was the full extent of their response. Never mind that I had said that I DID RUN THE COMMANDS! Never mind that I had reported that the commands generated an error. So, I again asked if they could please help explain the error and help me determine a solution to this problem. I reiterated that I ran the commands and got an error and that the problem was still not resolved.&lt;/p&gt;  &lt;p&gt;Their response:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;-----------------------&lt;/p&gt;    &lt;p&gt;Hello Derek,&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Operation of WhatsUp Gold with a full SQL database should be done with the assistance of a qualified DBA. Ipswitch does not provide these services. Our partners can provide services in such areas.&lt;/p&gt;    &lt;p&gt;&lt;a href="http://www.whatsupgold.com/partners/index.aspx"&gt;http://www.whatsupgold.com/partners/index.aspx&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;-----------------------&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Nice, huh?! Was I asking them to provide ‘qualified DBA’ services?! No, I was not! I was asking them to tell me why THEIR PRODUCT wasn’t working. The fact that THEIR PRODUCT uses a database server should not preclude them from having to provide support if the problem involves the database! This was ridiculous. This clown wasn’t even TRYING to help. And, he never did, I am sad to say.&lt;/p&gt;  &lt;p&gt;So, it took more research, trial-and-error, and a bit of luck, to find a solution to this problem. The various posts, KB articles (from Ipswitch and Microsoft), and other resources all hinted at parts of the problem. But, Ipswitch should have definitive support for this problem. The fact that they don’t and are not helpful is deplorable.&lt;/p&gt;  &lt;p&gt;So, we will continue to use What’s Up Gold… But, I can’t imagine a scenario where I would actually try to use their tech support services again… They are completely worthless! I have been in this industry to 20 years or so and they ‘provided’, without exception, the worst service I have ever experienced.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4442861564658029135-5777317114634262562?l=grinding-it-out.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Grinding-IT-Out?a=ivboJMUxyWU:vebDmt2s7nA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Grinding-IT-Out?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Grinding-IT-Out/~4/ivboJMUxyWU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://grinding-it-out.blogspot.com/feeds/5777317114634262562/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=4442861564658029135&amp;postID=5777317114634262562" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4442861564658029135/posts/default/5777317114634262562?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4442861564658029135/posts/default/5777317114634262562?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Grinding-IT-Out/~3/ivboJMUxyWU/whats-up-with-whats-up-gold.html" title="What’s Up with What’s Up Gold?!" /><author><name>Derek Mangrum</name><uri>http://www.blogger.com/profile/05932163848657045446</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="06106917718758965303" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://grinding-it-out.blogspot.com/2009/01/whats-up-with-whats-up-gold.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkcAR3g4eip7ImA9WxVREEk.&quot;"><id>tag:blogger.com,1999:blog-4442861564658029135.post-7539206933157733044</id><published>2009-01-15T10:20:00.001-07:00</published><updated>2009-01-15T10:20:46.632-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-01-15T10:20:46.632-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Servers" /><title>Setting up SNMP on Windows Server 2008</title><content type="html">&lt;p&gt;Had an odd little ditty today…&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_06A6cuUZTfU/SW9walCvfgI/AAAAAAAAAIg/KERhTyX3qvA/s1600-h/image%5B4%5D.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 10px 0px 0px; border-right-width: 0px" height="235" alt="image" src="http://lh5.ggpht.com/_06A6cuUZTfU/SW9wbVHEHcI/AAAAAAAAAIk/jzfUrOQ05bY/image_thumb%5B2%5D.png?imgmax=800" width="513" align="left" border="0" /&gt;&lt;/a&gt; I needed to set up SNMP on a Windows Server 2008 box so that I could add it to our What’s Up Gold monitoring system. As you probably know, Server 2008 relies heavily on the concepts of Roles and Features. Well, SNMP is a Feature. So, in Server Manager I added the SNMP Feature.&lt;/p&gt;  &lt;p&gt;Then, like in previous versions of Windows, I went to the Services UI, scrolled down to ‘SNMP Service’, right-clicked, and selected Properties.&lt;/p&gt;  &lt;p&gt;I expected to see a nice series of tabs that would allow me to configure the SNMP Service with things like ‘community names’ and ‘trap destinations’. Instead, I only got the standard tabs you see on most Services. The service was installed and running, but there was no way to configure it.&lt;/p&gt;  &lt;p&gt;Turns out, the ‘fix’ to this is simple… &lt;a href="http://www.experts-exchange.com/OS/Microsoft_Operating_Systems/Server/Windows_Server_2008/Q_23817059.html"&gt;Log out and log back in.&lt;/a&gt; After logging back in, all teh SNMP configuration tabs were there.&lt;/p&gt;  &lt;p&gt;You shouldn’t have to do that, but it is only a small inconvenience.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4442861564658029135-7539206933157733044?l=grinding-it-out.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Grinding-IT-Out?a=z2Pxo0YlKVM:SejohWz4x4g:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Grinding-IT-Out?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Grinding-IT-Out/~4/z2Pxo0YlKVM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://grinding-it-out.blogspot.com/feeds/7539206933157733044/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=4442861564658029135&amp;postID=7539206933157733044" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4442861564658029135/posts/default/7539206933157733044?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4442861564658029135/posts/default/7539206933157733044?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Grinding-IT-Out/~3/z2Pxo0YlKVM/setting-up-snmp-on-windows-server-2008.html" title="Setting up SNMP on Windows Server 2008" /><author><name>Derek Mangrum</name><uri>http://www.blogger.com/profile/05932163848657045446</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="06106917718758965303" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://grinding-it-out.blogspot.com/2009/01/setting-up-snmp-on-windows-server-2008.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEMMQ3c8eip7ImA9WxVSFEU.&quot;"><id>tag:blogger.com,1999:blog-4442861564658029135.post-8935759523993822347</id><published>2009-01-09T00:34:00.001-07:00</published><updated>2009-01-09T00:34:42.972-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-01-09T00:34:42.972-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="PowerShell" /><title>First Powershell Wrapper Functions for SourceGear Vault Client</title><content type="html">&lt;p&gt;I have written three functions so far. They cover the main tasks I perform when working with my Vault for my Powershell scripts. &lt;/p&gt;  &lt;p&gt;They are:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;In-VaultFile&lt;/li&gt;    &lt;li&gt;Out-VaultFile&lt;/li&gt;    &lt;li&gt;Get-VaultCheckoutList&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;A couple of items to note:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Getting the command-line to work was a bit tricky&lt;/li&gt;    &lt;li&gt;The ‘vault.exe’ app outputs XML, which made generating feedback really nice. Of course, I didn’t know about [xml]$var at first. But, once I read about that, things moved along nicely.&lt;/li&gt;    &lt;li&gt;I don’t like that I have to store my username and password in the cleartext in my script file. Not sure what options I have on that one. I certainly don’t want to have to type it out every time!&lt;/li&gt;    &lt;li&gt;The Vault Command Line Client has a lot of other functions available. I will probably be adding wrappers for some others in the near future… Like creating new folders, viewing history, etc.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;I love that we can expose only certain functions from within a module. That is cool!&lt;/p&gt;  &lt;p&gt;Lastly, I just want to say THANK YOU to Mr. Snover and his team! I haven’t had this much fun working on computers in quite a while! Sys Admin is FUN AGAIN!&lt;/p&gt;  &lt;p&gt;Anyway, here’s the code…&lt;/p&gt;  &lt;pre&gt;&lt;span style="color: #008000"&gt;#################################################################
# FUNCTION: In-VaultFile
#
# WRITTEN BY: Derek Mangrum
#
# 2009-01-08 : Initial Version
#################################################################
&lt;/span&gt;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000cd"&gt;In-VaultFile
&lt;/span&gt;&lt;span style="color: #000000"&gt;{
&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #008000"&gt;#
&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;SYNOPSIS&lt;/span&gt;&lt;span style="color: #000000"&gt; 
    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;Checks&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;a&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;file&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;in&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;to&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;SourceGear&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;Vault&lt;/span&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;DESCRIPTION&lt;/span&gt;&lt;span style="color: #000000"&gt; 
    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;Checks&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;a&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;file&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;in&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;to&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;SourceGear&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;Vault&lt;/span&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;NOTES&lt;/span&gt;&lt;span style="color: #000000"&gt; 
    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;Author&lt;/span&gt;&lt;span style="color: #000000"&gt;     &lt;/span&gt;&lt;span style="color: #000000"&gt;:&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;Derek&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;Mangrum&lt;/span&gt;&lt;span style="color: #000000"&gt;  &lt;/span&gt;&lt;span style="color: #8b4513"&gt;derek.mangrum&lt;/span&gt;&lt;span style="color: #000000"&gt;@&lt;/span&gt;&lt;span style="color: #8b4513"&gt;gmail.com&lt;/span&gt;&lt;span style="color: #000000"&gt; 
    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;Requires&lt;/span&gt;&lt;span style="color: #000000"&gt;   &lt;/span&gt;&lt;span style="color: #000000"&gt;:&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;PowerShell&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;V2&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;CTP3&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;or&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;later&lt;/span&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;LINK&lt;/span&gt;&lt;span style="color: #000000"&gt; 
    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;http&lt;/span&gt;&lt;span style="color: #000000"&gt;:&lt;/span&gt;&lt;span style="color: #ff0000"&gt;//&lt;/span&gt;&lt;span style="color: #0000ff"&gt;grinding&lt;/span&gt;&lt;span style="color: #ff0000"&gt;-&lt;/span&gt;&lt;span style="color: #0000ff"&gt;it&lt;/span&gt;&lt;span style="color: #ff0000"&gt;-&lt;/span&gt;&lt;span style="color: #8b4513"&gt;out.blogspot.com&lt;/span&gt;&lt;span style="color: #ff0000"&gt;/&lt;/span&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;EXAMPLE&lt;/span&gt;&lt;span style="color: #000000"&gt; 
    &lt;/span&gt;&lt;span style="color: #5f9ea0"&gt;In-VaultFile&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #008000; text-decoration: underline"&gt;c:\scripts\file01.ps1&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;This is my comment&amp;quot;&lt;/span&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;EXAMPLE&lt;/span&gt;&lt;span style="color: #000000"&gt;
    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;dir&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #008000; text-decoration: underline"&gt;c:\scripts\Modules -Recurse -Filter&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;*&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;psm1&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;|&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #5f9ea0"&gt;In-VaultFile&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #5f9ea0"&gt;-Comment&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;My comments&amp;quot;&lt;/span&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;PARAMETER&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;File&lt;/span&gt;&lt;span style="color: #000000"&gt;
    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;The&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;file&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;that&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;you&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;want&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;to&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;check&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;in&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;PARAMETER&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;Comment&lt;/span&gt;&lt;span style="color: #000000"&gt;
    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;Comments&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;for&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;the&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;check&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;in&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;operation&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;Required&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;span style="color: #008000"&gt;#&amp;gt;
&lt;/span&gt;&lt;span style="color: #000000"&gt;    
    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;param&lt;/span&gt;&lt;span style="color: #000000"&gt; 
    ( 
        [&lt;/span&gt;&lt;span style="color: #0000ff"&gt;Parameter&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;Position&lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;0&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;Mandatory&lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #0000ff"&gt;$true&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;ValueFromPipeLine&lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #0000ff"&gt;$true&lt;/span&gt;&lt;span style="color: #000000"&gt;)]
            [&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;]&lt;/span&gt;&lt;span style="color: #800080"&gt;$File&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;
        [&lt;/span&gt;&lt;span style="color: #0000ff"&gt;Parameter&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;Position&lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;1&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;Mandatory&lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #0000ff"&gt;$true&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;ValueFromPipeLine&lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #0000ff"&gt;$false&lt;/span&gt;&lt;span style="color: #000000"&gt;)]
            [&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;]&lt;/span&gt;&lt;span style="color: #800080"&gt;$Comment&lt;/span&gt;&lt;span style="color: #000000"&gt;
    )

    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;BEGIN&lt;/span&gt;&lt;span style="color: #000000"&gt;
    {
    } &lt;/span&gt;&lt;span style="color: #008000"&gt;#END BEGIN
&lt;/span&gt;&lt;span style="color: #000000"&gt;    
    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;PROCESS&lt;/span&gt;&lt;span style="color: #000000"&gt;
    {
        &lt;/span&gt;&lt;span style="color: #5f9ea0"&gt;checkIn-File&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$File&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$Comment&lt;/span&gt;&lt;span style="color: #000000"&gt;    
    } &lt;/span&gt;&lt;span style="color: #008000"&gt;#END PROCESS
&lt;/span&gt;&lt;span style="color: #000000"&gt;    
    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;END&lt;/span&gt;&lt;span style="color: #000000"&gt; 
    {    
    } &lt;/span&gt;&lt;span style="color: #008000"&gt;#END END
&lt;/span&gt;&lt;span style="color: #000000"&gt;}

&lt;/span&gt;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000cd"&gt;checkIn-File
&lt;/span&gt;&lt;span style="color: #000000"&gt;{
    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;param&lt;/span&gt;&lt;span style="color: #000000"&gt;
    (
        [&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;]&lt;/span&gt;&lt;span style="color: #800080"&gt;$File&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;
        [&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;]&lt;/span&gt;&lt;span style="color: #800080"&gt;$Comment&lt;/span&gt;&lt;span style="color: #000000"&gt;
    )
    
    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt; (&lt;/span&gt;&lt;span style="color: #5f9ea0"&gt;Test-Path&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$File&lt;/span&gt;&lt;span style="color: #000000"&gt;)
    {
        &lt;/span&gt;&lt;span style="color: #800080"&gt;$item&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; (&lt;/span&gt;&lt;span style="color: #5f9ea0"&gt;Resolve-Path&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$File&lt;/span&gt;&lt;span style="color: #000000"&gt;) &lt;/span&gt;&lt;span style="color: #ff0000"&gt;-replace&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;C:&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;$&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;
        &lt;/span&gt;&lt;span style="color: #800080"&gt;$item&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$item&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;-replace&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;\\&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;
        &lt;/span&gt;&lt;span style="color: #800080"&gt;$user&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;userInfo&lt;/span&gt;&lt;span style="color: #000000"&gt;
        &lt;/span&gt;&lt;span style="color: #800080"&gt;$Comment&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$Comment&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;-replace&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot; &amp;quot;&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;_&amp;quot;&lt;/span&gt;&lt;span style="color: #000000"&gt; 
        &lt;/span&gt;&lt;span style="color: #800080"&gt;$command&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;cmd.exe /C `&amp;quot;C:\Program Files\SourceGear\Vault Client\vault.exe`&amp;quot; CHECKIN -host $($user.Host) -user $($user.name) -password $($user.pass) -ssl -repository $($user.Repository) -comment $Comment $item&amp;quot;&lt;/span&gt;&lt;span style="color: #000000"&gt;
        
        [&lt;/span&gt;&lt;span style="color: #0000ff"&gt;xml&lt;/span&gt;&lt;span style="color: #000000"&gt;]&lt;/span&gt;&lt;span style="color: #800080"&gt;$result&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #5f9ea0"&gt;Invoke-Expression&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$command&lt;/span&gt;&lt;span style="color: #000000"&gt;
        
        &lt;/span&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt; (&lt;/span&gt;&lt;span style="color: #800080"&gt;$result&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;vault&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;result&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;success&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;-eq&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;yes&amp;quot;&lt;/span&gt;&lt;span style="color: #000000"&gt;)
        {
            &lt;/span&gt;&lt;span style="color: #5f9ea0"&gt;Write-Host&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;SUCCESS: &amp;quot;&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #5f9ea0"&gt;-ForegroundColor&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;Green&lt;/span&gt;&lt;span style="color: #000000"&gt;
            &lt;/span&gt;&lt;span style="color: #800080"&gt;$result&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;vault&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;#comment&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;
        }
        &lt;/span&gt;&lt;span style="color: #0000ff"&gt;else&lt;/span&gt;&lt;span style="color: #000000"&gt;
        {
            &lt;/span&gt;&lt;span style="color: #5f9ea0"&gt;Write-Host&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;FAIL: &amp;quot;&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #5f9ea0"&gt;-ForegroundColor&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;Red&lt;/span&gt;&lt;span style="color: #000000"&gt; 
            &lt;/span&gt;&lt;span style="color: #800080"&gt;$result&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;vault&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;#comment&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;
        }
    }
    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;else&lt;/span&gt;&lt;span style="color: #000000"&gt;
    {
        &lt;/span&gt;&lt;span style="color: #5f9ea0"&gt;Write-Host&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;No such file: &amp;quot;&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #5f9ea0"&gt;-ForegroundColor&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;Red&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #5f9ea0"&gt;-NoNewline&lt;/span&gt;&lt;span style="color: #000000"&gt;
        &lt;/span&gt;&lt;span style="color: #800080"&gt;$File&lt;/span&gt;&lt;span style="color: #000000"&gt;
    }
}

&lt;/span&gt;&lt;span style="color: #008000"&gt;#################################################################
# FUNCTION: Out-VaultFile
#
# WRITTEN BY: Derek Mangrum
#
# 2009-01-08 : Initial Version
#################################################################
&lt;/span&gt;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000cd"&gt;Out-VaultFile
&lt;/span&gt;&lt;span style="color: #000000"&gt;{
&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #008000"&gt;#
&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;SYNOPSIS&lt;/span&gt;&lt;span style="color: #000000"&gt; 
    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;Checks&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;a&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;file&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;out&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;from&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;SourceGear&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;Vault&lt;/span&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;DESCRIPTION&lt;/span&gt;&lt;span style="color: #000000"&gt; 
    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;Checks&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;a&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;file&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;out&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;from&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;SourceGear&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;Vault&lt;/span&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;NOTES&lt;/span&gt;&lt;span style="color: #000000"&gt; 
    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;Author&lt;/span&gt;&lt;span style="color: #000000"&gt;     &lt;/span&gt;&lt;span style="color: #000000"&gt;:&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;Derek&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;Mangrum&lt;/span&gt;&lt;span style="color: #000000"&gt;  &lt;/span&gt;&lt;span style="color: #8b4513"&gt;derek.mangrum&lt;/span&gt;&lt;span style="color: #000000"&gt;@&lt;/span&gt;&lt;span style="color: #8b4513"&gt;gmail.com&lt;/span&gt;&lt;span style="color: #000000"&gt; 
    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;Requires&lt;/span&gt;&lt;span style="color: #000000"&gt;   &lt;/span&gt;&lt;span style="color: #000000"&gt;:&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;PowerShell&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;V2&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;CTP3&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;or&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;later&lt;/span&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;LINK&lt;/span&gt;&lt;span style="color: #000000"&gt; 
    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;http&lt;/span&gt;&lt;span style="color: #000000"&gt;:&lt;/span&gt;&lt;span style="color: #ff0000"&gt;//&lt;/span&gt;&lt;span style="color: #0000ff"&gt;grinding&lt;/span&gt;&lt;span style="color: #ff0000"&gt;-&lt;/span&gt;&lt;span style="color: #0000ff"&gt;it&lt;/span&gt;&lt;span style="color: #ff0000"&gt;-&lt;/span&gt;&lt;span style="color: #8b4513"&gt;out.blogspot.com&lt;/span&gt;&lt;span style="color: #ff0000"&gt;/&lt;/span&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;EXAMPLE&lt;/span&gt;&lt;span style="color: #000000"&gt; 
    &lt;/span&gt;&lt;span style="color: #5f9ea0"&gt;Out-VaultFile&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #008000; text-decoration: underline"&gt;c:\scripts\file01.ps1&lt;/span&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;EXAMPLE&lt;/span&gt;&lt;span style="color: #000000"&gt;
    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;dir&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #008000; text-decoration: underline"&gt;c:\scripts\Modules -Recurse -Filter&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;*&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;psm1&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;|&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #5f9ea0"&gt;Out-VaultFile&lt;/span&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;PARAMETER&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;File&lt;/span&gt;&lt;span style="color: #000000"&gt;
    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;The&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;file&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;that&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;you&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;want&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;to&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;check&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;in&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;span style="color: #008000"&gt;#&amp;gt;
&lt;/span&gt;&lt;span style="color: #000000"&gt;    
    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;param&lt;/span&gt;&lt;span style="color: #000000"&gt; 
    ( 
        [&lt;/span&gt;&lt;span style="color: #0000ff"&gt;Parameter&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;Position&lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;0&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;Mandatory&lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #0000ff"&gt;$true&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;ValueFromPipeLine&lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #0000ff"&gt;$true&lt;/span&gt;&lt;span style="color: #000000"&gt;)]
            [&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;]&lt;/span&gt;&lt;span style="color: #800080"&gt;$File&lt;/span&gt;&lt;span style="color: #000000"&gt;
    )

    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;BEGIN&lt;/span&gt;&lt;span style="color: #000000"&gt;
    {
    } &lt;/span&gt;&lt;span style="color: #008000"&gt;#END BEGIN
&lt;/span&gt;&lt;span style="color: #000000"&gt;    
    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;PROCESS&lt;/span&gt;&lt;span style="color: #000000"&gt;
    {
        &lt;/span&gt;&lt;span style="color: #5f9ea0"&gt;checkOut-File&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$File&lt;/span&gt;&lt;span style="color: #000000"&gt;
    } &lt;/span&gt;&lt;span style="color: #008000"&gt;#END PROCESS
&lt;/span&gt;&lt;span style="color: #000000"&gt;    
    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;END&lt;/span&gt;&lt;span style="color: #000000"&gt; 
    {    
    } &lt;/span&gt;&lt;span style="color: #008000"&gt;#END END
&lt;/span&gt;&lt;span style="color: #000000"&gt;}

&lt;/span&gt;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000cd"&gt;checkOut-File
&lt;/span&gt;&lt;span style="color: #000000"&gt;{
    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;param&lt;/span&gt;&lt;span style="color: #000000"&gt;
    (
        [&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;]&lt;/span&gt;&lt;span style="color: #800080"&gt;$File&lt;/span&gt;&lt;span style="color: #000000"&gt;
    )
    
    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt; (&lt;/span&gt;&lt;span style="color: #5f9ea0"&gt;Test-Path&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$File&lt;/span&gt;&lt;span style="color: #000000"&gt;)
    {
        &lt;/span&gt;&lt;span style="color: #800080"&gt;$item&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; (&lt;/span&gt;&lt;span style="color: #5f9ea0"&gt;Resolve-Path&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$File&lt;/span&gt;&lt;span style="color: #000000"&gt;) &lt;/span&gt;&lt;span style="color: #ff0000"&gt;-replace&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;C:&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;$&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;
        &lt;/span&gt;&lt;span style="color: #800080"&gt;$item&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$item&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;-replace&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;\\&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;
        &lt;/span&gt;&lt;span style="color: #800080"&gt;$user&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;userInfo&lt;/span&gt;&lt;span style="color: #000000"&gt;
        &lt;/span&gt;&lt;span style="color: #800080"&gt;$command&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;cmd.exe /C `&amp;quot;C:\Program Files\SourceGear\Vault Client\vault.exe`&amp;quot; CHECKOUT -host $($user.Host) -user $($user.name) -password $($user.pass) -ssl -repository $($user.Repository) $item&amp;quot;&lt;/span&gt;&lt;span style="color: #000000"&gt;

        [&lt;/span&gt;&lt;span style="color: #0000ff"&gt;xml&lt;/span&gt;&lt;span style="color: #000000"&gt;]&lt;/span&gt;&lt;span style="color: #800080"&gt;$result&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #5f9ea0"&gt;Invoke-Expression&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$command&lt;/span&gt;&lt;span style="color: #000000"&gt;
        
        &lt;/span&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt; (&lt;/span&gt;&lt;span style="color: #800080"&gt;$result&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;vault&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;result&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;success&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;-eq&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;yes&amp;quot;&lt;/span&gt;&lt;span style="color: #000000"&gt;)
        {
            &lt;/span&gt;&lt;span style="color: #5f9ea0"&gt;Write-Host&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;SUCCESS: &amp;quot;&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #5f9ea0"&gt;-ForegroundColor&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;Green&lt;/span&gt;&lt;span style="color: #000000"&gt;
            &lt;/span&gt;&lt;span style="color: #800080"&gt;$result&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;vault&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;#comment&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;
        }
        &lt;/span&gt;&lt;span style="color: #0000ff"&gt;else&lt;/span&gt;&lt;span style="color: #000000"&gt;
        {
            &lt;/span&gt;&lt;span style="color: #5f9ea0"&gt;Write-Host&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;FAIL: &amp;quot;&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #5f9ea0"&gt;-ForegroundColor&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;Red&lt;/span&gt;&lt;span style="color: #000000"&gt;
            &lt;/span&gt;&lt;span style="color: #800080"&gt;$result&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;vault&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;#comment&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;
        }
    }
    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;else&lt;/span&gt;&lt;span style="color: #000000"&gt;
    {
        &lt;/span&gt;&lt;span style="color: #5f9ea0"&gt;Write-Host&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;No such file: &amp;quot;&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #5f9ea0"&gt;-ForegroundColor&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;Red&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #5f9ea0"&gt;-NoNewline&lt;/span&gt;&lt;span style="color: #000000"&gt;
        &lt;/span&gt;&lt;span style="color: #800080"&gt;$File&lt;/span&gt;&lt;span style="color: #000000"&gt;
    }
}

&lt;/span&gt;&lt;span style="color: #008000"&gt;#################################################################
# FUNCTION: Get-VaultCheckoutList
#
# WRITTEN BY: Derek Mangrum
#
# 2009-01-08 : Initial Version
#################################################################
&lt;/span&gt;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000cd"&gt;Get-VaultCheckoutList
&lt;/span&gt;&lt;span style="color: #000000"&gt;{
&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #008000"&gt;#
&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;SYNOPSIS&lt;/span&gt;&lt;span style="color: #000000"&gt; 
    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;Lists&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;all&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;items&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;currently&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;checked&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;out&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;DESCRIPTION&lt;/span&gt;&lt;span style="color: #000000"&gt; 
    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;Lists&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;all&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;items&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;currently&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;checked&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;out&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;NOTES&lt;/span&gt;&lt;span style="color: #000000"&gt; 
    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;Author&lt;/span&gt;&lt;span style="color: #000000"&gt;     &lt;/span&gt;&lt;span style="color: #000000"&gt;:&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;Derek&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;Mangrum&lt;/span&gt;&lt;span style="color: #000000"&gt;  &lt;/span&gt;&lt;span style="color: #8b4513"&gt;derek.mangrum&lt;/span&gt;&lt;span style="color: #000000"&gt;@&lt;/span&gt;&lt;span style="color: #8b4513"&gt;gmail.com&lt;/span&gt;&lt;span style="color: #000000"&gt; 
    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;Requires&lt;/span&gt;&lt;span style="color: #000000"&gt;   &lt;/span&gt;&lt;span style="color: #000000"&gt;:&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;PowerShell&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;V2&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;CTP3&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;or&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;later&lt;/span&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;LINK&lt;/span&gt;&lt;span style="color: #000000"&gt; 
    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;http&lt;/span&gt;&lt;span style="color: #000000"&gt;:&lt;/span&gt;&lt;span style="color: #ff0000"&gt;//&lt;/span&gt;&lt;span style="color: #0000ff"&gt;grinding&lt;/span&gt;&lt;span style="color: #ff0000"&gt;-&lt;/span&gt;&lt;span style="color: #0000ff"&gt;it&lt;/span&gt;&lt;span style="color: #ff0000"&gt;-&lt;/span&gt;&lt;span style="color: #8b4513"&gt;out.blogspot.com&lt;/span&gt;&lt;span style="color: #ff0000"&gt;/&lt;/span&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;EXAMPLE&lt;/span&gt;&lt;span style="color: #000000"&gt; 
    &lt;/span&gt;&lt;span style="color: #5f9ea0"&gt;Get-VaultCheckoutList&lt;/span&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;span style="color: #008000"&gt;#&amp;gt;
&lt;/span&gt;&lt;span style="color: #000000"&gt;    
    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;BEGIN&lt;/span&gt;&lt;span style="color: #000000"&gt;
    {
    } &lt;/span&gt;&lt;span style="color: #008000"&gt;#END BEGIN
&lt;/span&gt;&lt;span style="color: #000000"&gt;    
    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;PROCESS&lt;/span&gt;&lt;span style="color: #000000"&gt;
    {
        &lt;/span&gt;&lt;span style="color: #0000ff"&gt;getList&lt;/span&gt;&lt;span style="color: #000000"&gt;
    } &lt;/span&gt;&lt;span style="color: #008000"&gt;#END PROCESS
&lt;/span&gt;&lt;span style="color: #000000"&gt;    
    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;END&lt;/span&gt;&lt;span style="color: #000000"&gt; 
    {    
    } &lt;/span&gt;&lt;span style="color: #008000"&gt;#END END
&lt;/span&gt;&lt;span style="color: #000000"&gt;}

&lt;/span&gt;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000cd"&gt;getList
&lt;/span&gt;&lt;span style="color: #000000"&gt;{
    
    &lt;/span&gt;&lt;span style="color: #800080"&gt;$user&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;userInfo&lt;/span&gt;&lt;span style="color: #000000"&gt;
    &lt;/span&gt;&lt;span style="color: #800080"&gt;$command&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;cmd.exe /C `&amp;quot;C:\Program Files\SourceGear\Vault Client\vault.exe`&amp;quot; LISTCHECKOUTS -host $($user.Host) -user $($user.Name) -password $($user.pass) -ssl -repository $($user.Repository)&amp;quot;&lt;/span&gt;&lt;span style="color: #000000"&gt;

    [&lt;/span&gt;&lt;span style="color: #0000ff"&gt;xml&lt;/span&gt;&lt;span style="color: #000000"&gt;]&lt;/span&gt;&lt;span style="color: #800080"&gt;$result&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #5f9ea0"&gt;Invoke-Expression&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$command&lt;/span&gt;&lt;span style="color: #000000"&gt;
    
    &lt;/span&gt;&lt;span style="color: #5f9ea0"&gt;Write-Host&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;The following items are currently checked out&amp;quot;&lt;/span&gt;&lt;span style="color: #000000"&gt;
    &lt;/span&gt;&lt;span style="color: #5f9ea0"&gt;Write-Host&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;---------------------------------------------&amp;quot;&lt;/span&gt;&lt;span style="color: #000000"&gt;
    
    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt; (&lt;/span&gt;&lt;span style="color: #800080"&gt;$result&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;vault&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;result&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;success&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;-eq&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;yes&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;)
    {
        &lt;/span&gt;&lt;span style="color: #0000ff"&gt;foreach&lt;/span&gt;&lt;span style="color: #000000"&gt; (&lt;/span&gt;&lt;span style="color: #800080"&gt;$item&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;in&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$result&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;vault&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;checkoutlist&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;checkoutitem&lt;/span&gt;&lt;span style="color: #000000"&gt;) 
        {
            &lt;/span&gt;&lt;span style="color: #800080"&gt;$item&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;checkoutuser&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;localpath&lt;/span&gt;&lt;span style="color: #000000"&gt;
        }
    }
    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;else&lt;/span&gt;&lt;span style="color: #000000"&gt;
    {
        &lt;/span&gt;&lt;span style="color: #5f9ea0"&gt;Write-Host&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;ERROR&amp;quot;&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #5f9ea0"&gt;-ForegroundColor&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;Red&lt;/span&gt;&lt;span style="color: #000000"&gt;
    }
}

&lt;/span&gt;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000cd"&gt;userInfo
&lt;/span&gt;&lt;span style="color: #000000"&gt;{
    &lt;/span&gt;&lt;span style="color: #800080"&gt;$user&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;@&lt;/span&gt;&lt;span style="color: #000000"&gt;{}
    &lt;/span&gt;&lt;span style="color: #800080"&gt;$user&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;Name&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;MyName&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;
    &lt;/span&gt;&lt;span style="color: #800080"&gt;$user&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;Pass&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;MyPassword&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;
    &lt;/span&gt;&lt;span style="color: #800080"&gt;$user&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;Host&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;MyHost&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;
    &lt;/span&gt;&lt;span style="color: #800080"&gt;$user&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;Repository&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;MyRepository&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;
    
    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;return&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$user&lt;/span&gt;&lt;span style="color: #000000"&gt;
}

&lt;/span&gt;&lt;span style="color: #5f9ea0"&gt;Export-ModuleMember&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #5f9ea0"&gt;In-VaultFile&lt;/span&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;span style="color: #5f9ea0"&gt;Export-ModuleMember&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #5f9ea0"&gt;Out-VaultFile&lt;/span&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;span style="color: #5f9ea0"&gt;Export-ModuleMember&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #5f9ea0"&gt;Get-VaultCheckoutList&lt;/span&gt;&lt;/pre&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4442861564658029135-8935759523993822347?l=grinding-it-out.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Grinding-IT-Out?a=UjyUmspNNxY:9KbJQIpZ8l4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Grinding-IT-Out?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Grinding-IT-Out/~4/UjyUmspNNxY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://grinding-it-out.blogspot.com/feeds/8935759523993822347/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=4442861564658029135&amp;postID=8935759523993822347" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4442861564658029135/posts/default/8935759523993822347?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4442861564658029135/posts/default/8935759523993822347?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Grinding-IT-Out/~3/UjyUmspNNxY/first-powershell-wrapper-functions-for.html" title="First Powershell Wrapper Functions for SourceGear Vault Client" /><author><name>Derek Mangrum</name><uri>http://www.blogger.com/profile/05932163848657045446</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="06106917718758965303" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://grinding-it-out.blogspot.com/2009/01/first-powershell-wrapper-functions-for.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0YGQn8zeCp7ImA9WxVSEk0.&quot;"><id>tag:blogger.com,1999:blog-4442861564658029135.post-3720341754509444605</id><published>2009-01-05T17:18:00.001-07:00</published><updated>2009-01-05T17:18:43.180-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-01-05T17:18:43.180-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Scripting" /><category scheme="http://www.blogger.com/atom/ns#" term="Virtualization" /><category scheme="http://www.blogger.com/atom/ns#" term="PowerShell" /><title>First work with Virtual Machine Manager and PowerShell</title><content type="html">&lt;p&gt;To date, I have done ALL of my VMM management in the GUI. I have not used PowerShell at all (please don’t yell at me). Well, that changed today. &lt;/p&gt;  &lt;p&gt;I got asked by my boss if two VMs were on the same host or not. I didn’t remember off the top of my head, so I opened the VMM Admin Console to check. So much clicking… and waiting…&lt;/p&gt;  &lt;p&gt;I decided to see if I could get at this information via PowerShell. I mean, I figured I could, as I knew that VMM was PoSH-friendly. I also decided that I would use this opportunity to explore V2 CTP3 a bit and write one of those fancy, advanced functions. And, rather than dot-sourcing a .ps1 file (from within my profile) to get the function into my environment, I made it a module.&lt;/p&gt;  &lt;p&gt;I just installed V2 CTP3, so I am brand new to these cool new features. But, it doesn’t seem too complicated.&lt;/p&gt;  &lt;p&gt;Anyway, here is the function that checks a VMM servers for managed VMHost boxes and lists the VMs on each host. First, though, this information can easily be had with the following command:&lt;/p&gt;  &lt;pre&gt;&lt;/span&gt;&lt;span style="color: #5f9ea0"&gt;Get-VM&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;–&lt;/span&gt;&lt;span style="color: #0000ff"&gt;VMMServer&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;COMP01&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;|&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;select&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;VMHost&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;Name&lt;/span&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;But, I wanted to play, so I wrote:&lt;/p&gt;

&lt;pre&gt;&lt;span style="color: #008000"&gt;####################################
# FUNCTION: Get-VMEnvironment
#
# WRITTEN BY: Derek Mangrum
#
# 2009-01-05 : Initial Version
####################################
&lt;/span&gt;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000cd"&gt;Get-VMEnvironment
&lt;/span&gt;&lt;span style="color: #000000"&gt;{
&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #008000"&gt;#
&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;SYNOPSIS&lt;/span&gt;&lt;span style="color: #000000"&gt; 
    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;Reports&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;on&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #5f9ea0"&gt;VMM-managed&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;environment&lt;/span&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;DESCRIPTION&lt;/span&gt;&lt;span style="color: #000000"&gt; 
    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;Lists&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;VMs&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;by&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;VMHost&lt;/span&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;NOTES&lt;/span&gt;&lt;span style="color: #000000"&gt; 
    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;Author&lt;/span&gt;&lt;span style="color: #000000"&gt;     &lt;/span&gt;&lt;span style="color: #000000"&gt;:&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;Derek&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;Mangrum&lt;/span&gt;&lt;span style="color: #000000"&gt;
    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;Requires&lt;/span&gt;&lt;span style="color: #000000"&gt;   &lt;/span&gt;&lt;span style="color: #000000"&gt;:&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;PowerShell&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;V2&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;CTP3&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;or&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;later&lt;/span&gt;&lt;span style="color: #000000"&gt;
    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;Requires&lt;/span&gt;&lt;span style="color: #000000"&gt;   &lt;/span&gt;&lt;span style="color: #000000"&gt;:&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;Ping-Computer function&lt;/span&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;LINK&lt;/span&gt;&lt;span style="color: #000000"&gt; 
    &lt;/span&gt;&lt;a href="http://http://grinding-it-out.blogspot.com/.EXAMPLE"&gt;&lt;span style="color: #0000ff"&gt;http://grinding-&lt;/span&gt;&lt;span style="color: #0000ff"&gt;it-out.blogspot.com&lt;/span&gt;&lt;span style="color: #ff0000"&gt;/&lt;/span&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;EXAMPLE&lt;/a&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt; 
    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;PS&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #5f9ea0"&gt;Get-VMEnvironment&lt;/span&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;EXAMPLE&lt;/span&gt;&lt;span style="color: #000000"&gt;
    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;PS&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;server1&amp;quot;&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;server2&amp;quot;&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;|&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #5f9ea0"&gt;Get-VMEnvironment&lt;/span&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;PARAMETER&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;VMMServer&lt;/span&gt;&lt;span style="color: #000000"&gt;
    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;Name&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;of&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;VMM&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;Server&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #5f9ea0"&gt;-&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;DEFAULT&lt;/span&gt;&lt;span style="color: #000000"&gt;:&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;COMP01&lt;/span&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;span style="color: #008000"&gt;#&amp;gt;
&lt;/span&gt;&lt;span style="color: #000000"&gt;    
    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;param&lt;/span&gt;&lt;span style="color: #000000"&gt; 
    ( 
        [&lt;/span&gt;&lt;span style="color: #0000ff"&gt;Parameter&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;Position&lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;0&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;Mandatory&lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #0000ff"&gt;$false&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;ValueFromPipeLine&lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #0000ff"&gt;$true&lt;/span&gt;&lt;span style="color: #000000"&gt;)]
            [&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;]&lt;/span&gt;&lt;span style="color: #800080"&gt;$VMMServer&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;COMP01&amp;quot;&lt;/span&gt;&lt;span style="color: #000000"&gt;
    )
    
    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;BEGIN&lt;/span&gt;&lt;span style="color: #000000"&gt;
    {
        &lt;/span&gt;&lt;span style="color: #5f9ea0"&gt;Write-Host&lt;/span&gt;&lt;span style="color: #000000"&gt;
    }
    
    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;PROCESS&lt;/span&gt;&lt;span style="color: #000000"&gt;
    {
        &lt;/span&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt; (&lt;/span&gt;&lt;span style="color: #5f9ea0"&gt;Ping-Computer&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$VMMServer&lt;/span&gt;&lt;span style="color: #000000"&gt;) 
        {
            &lt;/span&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt; (&lt;/span&gt;&lt;span style="color: #5f9ea0"&gt;Get-WmiObject&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;win32_service&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #5f9ea0"&gt;-computerName&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$VMMServer&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;|&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #5f9ea0"&gt;Where-Object&lt;/span&gt;&lt;span style="color: #000000"&gt; {&lt;/span&gt;&lt;span style="color: #000080"&gt;$_&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;name&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;-match&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;VMMService&amp;quot;&lt;/span&gt;&lt;span style="color: #000000"&gt;}) 
            {
                &lt;/span&gt;&lt;span style="color: #5f9ea0"&gt;Get-VMMServer&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$VMMServer&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;|&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #5f9ea0"&gt;Out-Null&lt;/span&gt;&lt;span style="color: #000000"&gt;
            
                &lt;/span&gt;&lt;span style="color: #5f9ea0"&gt;Get-VMHost&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;|&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #5f9ea0"&gt;ForEach-Object&lt;/span&gt;&lt;span style="color: #000000"&gt; {
                    &lt;/span&gt;&lt;span style="color: #5f9ea0"&gt;Write-Host&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;Report for VM Host: $($_.Name.Split(&amp;quot;&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;)[0].ToUpper())&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;;&lt;/span&gt;&lt;span style="color: #000000"&gt;
                    &lt;/span&gt;&lt;span style="color: #5f9ea0"&gt;Get-VM&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #5f9ea0"&gt;-VMHost&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000080"&gt;$_&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;|&lt;/span&gt;&lt;span style="color: #000000"&gt; 
                    &lt;/span&gt;&lt;span style="color: #5f9ea0"&gt;Select-Object&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;Name&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;StatusString&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;|&lt;/span&gt;&lt;span style="color: #000000"&gt; 
                    &lt;/span&gt;&lt;span style="color: #5f9ea0"&gt;Format-Table&lt;/span&gt;&lt;span style="color: #000000"&gt;
                } &lt;/span&gt;&lt;span style="color: #008000"&gt;#END Get-VMHost...
&lt;/span&gt;&lt;span style="color: #000000"&gt;            } &lt;/span&gt;&lt;span style="color: #008000"&gt;#END if (gwmi...)
&lt;/span&gt;&lt;span style="color: #000000"&gt;            &lt;/span&gt;&lt;span style="color: #0000ff"&gt;else&lt;/span&gt;&lt;span style="color: #000000"&gt;
            {
                &lt;/span&gt;&lt;span style="color: #5f9ea0"&gt;Write-Host&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;$VMMServer is not a VMM Server.`n&amp;quot;&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #5f9ea0"&gt;-foregroundcolor&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;Red&lt;/span&gt;&lt;span style="color: #000000"&gt;
            } &lt;/span&gt;&lt;span style="color: #008000"&gt;#END else
&lt;/span&gt;&lt;span style="color: #000000"&gt;        } &lt;/span&gt;&lt;span style="color: #008000"&gt;#END if (Ping-Computer $VMMServer)
&lt;/span&gt;&lt;span style="color: #000000"&gt;        &lt;/span&gt;&lt;span style="color: #0000ff"&gt;else&lt;/span&gt;&lt;span style="color: #000000"&gt;
        {
            &lt;/span&gt;&lt;span style="color: #5f9ea0"&gt;Write-Host&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;$VMMServer is not available.`n&amp;quot;&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #5f9ea0"&gt;-foregroundcolor&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;Red&lt;/span&gt;&lt;span style="color: #000000"&gt;
        } &lt;/span&gt;&lt;span style="color: #008000"&gt;#END else
&lt;/span&gt;&lt;span style="color: #000000"&gt;    }
}

&lt;/span&gt;&lt;span style="color: #5f9ea0"&gt;Export-ModuleMember&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #5f9ea0"&gt;Get-VMEnvironment&lt;/span&gt;&lt;span style="color: #000000"&gt;

&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;Overkill? Probably… But fun!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4442861564658029135-3720341754509444605?l=grinding-it-out.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Grinding-IT-Out?a=IiSmopEL2xk:rRNLjdq91RU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Grinding-IT-Out?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Grinding-IT-Out/~4/IiSmopEL2xk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://grinding-it-out.blogspot.com/feeds/3720341754509444605/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=4442861564658029135&amp;postID=3720341754509444605" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4442861564658029135/posts/default/3720341754509444605?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4442861564658029135/posts/default/3720341754509444605?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Grinding-IT-Out/~3/IiSmopEL2xk/first-work-with-virtual-machine-manager.html" title="First work with Virtual Machine Manager and PowerShell" /><author><name>Derek Mangrum</name><uri>http://www.blogger.com/profile/05932163848657045446</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="06106917718758965303" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://grinding-it-out.blogspot.com/2009/01/first-work-with-virtual-machine-manager.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkUBQ308fCp7ImA9WxVSEkg.&quot;"><id>tag:blogger.com,1999:blog-4442861564658029135.post-7371707838891966338</id><published>2008-12-29T20:58:00.001-07:00</published><updated>2009-01-06T09:10:52.374-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-01-06T09:10:52.374-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Virtualization" /><title>Re-Installing WS08 and Hyper-V</title><content type="html">&lt;p&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;UPDATE&lt;/font&gt;&lt;/strong&gt;: &lt;a href="http://blogs.msdn.com/robertvi/archive/2008/12/19/howto-manually-add-a-vm-configuration-to-hyper-v.aspx"&gt;This blog post&lt;/a&gt; would have been really helpful.&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;hr /&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;A while back I &lt;a href="http://grinding-it-out.blogspot.com/2008/04/big-week-here-at-cccev.html"&gt;blogged about our first 64bit server, Windows Server 2008, and Hyper-V&lt;/a&gt;. Well, it turns out I didn’t really know what I was doing. But, I had been using this box just to learn on, so it wasn’t a big deal. But, we are now looking at putting this server into production. Soooo… It was time to re-do the server. Turns out… I still don’t know what I’m doing…&lt;/p&gt;  &lt;p&gt;We only had one VM on this server, and this VM has a limited user-base. So, I was free to do this work in the middle of the day, which was nice. In the end, I wish I had researched this process more before starting. I made too many assumptions and they cost me.&lt;/p&gt;  &lt;p&gt;This server connects to our iSCSI SAN and uses a virtual disk for VM file storage. My original thought was; disconnect the virtual disk, re-install Hyper-V, reconnect the virtual disk, VIOLA! But, it didn’t go quite that smoothly.&lt;/p&gt;  &lt;p&gt;The re-install was the easy part. I love how simple it is to install Server 2008, and the way they implement Roles and Features is great. I installed the Hyper-V Role and the Windows Powershell Feature. I was then ready to reconnect my virtual disk and get my VM back up and running.&lt;/p&gt;  &lt;p&gt;Except that I could not find a way to get Hyper-V to recognize my VM. Now, truth be told, I didn’t look very hard (big mistake!). But all I saw was an Import feature that required a previous Export (which I didn’t do). My goal was to be able to save the snapshots I had. I was not able to figure out a way to do that. So, I ended up just creating a new VM and using the VHD file I had. As I type this, however, I am realizing a significant problem…&lt;/p&gt;  &lt;p&gt;I didn’t commit the snapshots to the base VHD file before I did this. Again, my assumption was that I was going to be able to re-discover my VM and everything would show up intact. Now, I realize, while my VM is back, it is in its pre-snapshot state. All of my post-snapshot changes have been lost. I just confirmed this… Looked at the Event Viewer logs in the VM, prior to today, the most recent log entry is on 9/16/08.&lt;/p&gt;  &lt;p&gt;That stinks.&lt;/p&gt;  &lt;p&gt;Bad!&lt;/p&gt;  &lt;p&gt;Moral of the story: THINK through your process… I totally missed the boat on this one. I didn’t spend enough time thinking through this, following the various options, caveats, and hiccups that could have come up. And, when one did come up, I should have stopped and THOUGHT.&lt;/p&gt;  &lt;p&gt;Think think think!&lt;/p&gt;  &lt;p&gt;Oh, and, commit any snapshots to the base VHD file. This is done by deleting the snapshot within Hyper-V. Then, when you turn the VM off, any differencing disks are merged in tot he base VHD.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Sorry &lt;a href="http://codersforchrist.com/cs/blogs/nick/default.aspx"&gt;Nick&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;I am sick to my stomach…&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4442861564658029135-7371707838891966338?l=grinding-it-out.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Grinding-IT-Out?a=cpsvKX9OZPw:RWGhq7bHl0I:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Grinding-IT-Out?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Grinding-IT-Out/~4/cpsvKX9OZPw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://grinding-it-out.blogspot.com/feeds/7371707838891966338/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=4442861564658029135&amp;postID=7371707838891966338" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4442861564658029135/posts/default/7371707838891966338?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4442861564658029135/posts/default/7371707838891966338?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Grinding-IT-Out/~3/cpsvKX9OZPw/re-installing-ws08-and-hyper-v.html" title="Re-Installing WS08 and Hyper-V" /><author><name>Derek Mangrum</name><uri>http://www.blogger.com/profile/05932163848657045446</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="06106917718758965303" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://grinding-it-out.blogspot.com/2008/12/re-installing-ws08-and-hyper-v.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkIFQHw4fCp7ImA9WxRaEEg.&quot;"><id>tag:blogger.com,1999:blog-4442861564658029135.post-7270039158986520168</id><published>2008-12-11T21:01:00.001-07:00</published><updated>2008-12-11T21:01:51.234-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-12-11T21:01:51.234-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Windows" /><title>FolderShare No More</title><content type="html">&lt;p&gt;&lt;/p&gt;  &lt;p&gt;Microsoft warned us FolderShare users that it was going away. Well, tonight it happened. I started getting connection errors on my computers, telling me that I had to upgrade to &lt;a href="http://sync.live.com/"&gt;Windows Live Sync&lt;/a&gt;. I have been using FolderShare for quite a while, keeping files in sync between multiple computers and among multiple different people. It is a great tool.&lt;/p&gt;  &lt;p&gt;Windows Live Sync looks almost identical and seems to function in much the same way. I haven't peeked into every corner yet, however. It does have a 'remote access' feature, but I currently use &lt;a href="http://www.teamviewer.com/index.aspx"&gt;TeamViewer&lt;/a&gt; (along with &lt;a href="http://keepass.info/"&gt;KeePass&lt;/a&gt; for password management and auto-form-fill) and LOVE IT! I will not be bothering with the remote access features of Windows Live.&lt;/p&gt;  &lt;p&gt;In fact, I am not sure I buy into the whole Windows Live thing quite yet. Yes, I use &lt;a href="http://windowslivewriter.spaces.live.com/default.aspx?sa=15184434"&gt;Windows Live Writer&lt;/a&gt; for blogging, Messenger for IM (in addition to Google Chat),&amp;#160; and Sync. But, I think of them as individual applications, not as part of a coherent, integrated service. I don't know if that's because I'm 'old school' or because Microsoft hasn't done a good enough job of selling Windows Live.&lt;/p&gt;  &lt;p&gt;I just hope that Sync works as well as FolderShare did.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4442861564658029135-7270039158986520168?l=grinding-it-out.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Grinding-IT-Out?a=_n7dtYLZtB4:Es5EZKwhG8c:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Grinding-IT-Out?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Grinding-IT-Out/~4/_n7dtYLZtB4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://grinding-it-out.blogspot.com/feeds/7270039158986520168/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=4442861564658029135&amp;postID=7270039158986520168" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4442861564658029135/posts/default/7270039158986520168?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4442861564658029135/posts/default/7270039158986520168?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Grinding-IT-Out/~3/_n7dtYLZtB4/foldershare-no-more.html" title="FolderShare No More" /><author><name>Derek Mangrum</name><uri>http://www.blogger.com/profile/05932163848657045446</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="06106917718758965303" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://grinding-it-out.blogspot.com/2008/12/foldershare-no-more.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEQCSXc9fSp7ImA9WxRaEEw.&quot;"><id>tag:blogger.com,1999:blog-4442861564658029135.post-493388685737779699</id><published>2008-12-11T10:25:00.001-07:00</published><updated>2008-12-11T10:26:08.965-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-12-11T10:26:08.965-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Network" /><title>File Transfer Technology</title><content type="html">&lt;p&gt;As &lt;a href="http://grinding-it-out.blogspot.com/2008/10/quick-quiz.html"&gt;I've blogged about earlier&lt;/a&gt;, we now have a 200Mb QMOE link between our campuses, courtesy of Qwest.&lt;/p&gt;  &lt;p&gt;Now, we (and by 'we', I primarily mean &lt;a href="http://pjamesaz.blogspot.com/"&gt;my boss&lt;/a&gt;) are looking into some file transfer technology to improve the data transfer of 80+GB of data between the campuses at regular intervals. We would like to be able file-transfer our recorded services between campuses for playback.&lt;/p&gt;  &lt;p&gt;While we know we can just drag-and-drop while crossing our fingers, we are hoping to find a solution that does a bit more:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Improve speed of transfer&lt;/li&gt;    &lt;li&gt;Easily facilitate transfer between nodes with different OSs (Mac--&amp;gt;Win, for example)&lt;/li&gt;    &lt;li&gt;Failure recovery/auto-restart/interruption handling&lt;/li&gt;    &lt;li&gt;Automated? Scriptable? Scheduling?&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;My boss is currently evaluating technology from &lt;a href="http://www.asperasoft.com/index.html"&gt;Aspera&lt;/a&gt;. Apparently, their solution uses UDP rather than TCP. But, while testing, we have seen a pretty high percentage of packet loss on UDP traffic. The issue &lt;em&gt;may&lt;/em&gt; be with our Dell PowerConnect 6024, our core switch/router on our Mesa campus. We are looking at testing a replacement for this (a Cisco box) to see if traffic throughout/integrity improves.&lt;/p&gt;  &lt;p&gt;If anyone has to transfer large over WAN links, I would love to hear about the technology you use for that!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4442861564658029135-493388685737779699?l=grinding-it-out.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Grinding-IT-Out?a=cAE6YfDRRMo:3iOSQZoMZyc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Grinding-IT-Out?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Grinding-IT-Out/~4/cAE6YfDRRMo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://grinding-it-out.blogspot.com/feeds/493388685737779699/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=4442861564658029135&amp;postID=493388685737779699" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4442861564658029135/posts/default/493388685737779699?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4442861564658029135/posts/default/493388685737779699?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Grinding-IT-Out/~3/cAE6YfDRRMo/file-transfer-technology.html" title="File Transfer Technology" /><author><name>Derek Mangrum</name><uri>http://www.blogger.com/profile/05932163848657045446</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="06106917718758965303" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://grinding-it-out.blogspot.com/2008/12/file-transfer-technology.html</feedburner:origLink></entry></feed>
