| Sean's profileEnergized About Technolo...PhotosBlogLists | Help |
|
October 23 Windows 7 - Seventh One is a Seventh WONThis is dedicated to the entire Team at Microsoft behind the Development, Marketing, Production of Windows 7 including the Eight Million People worldwide across various countries who downloaded, used the Betas and RC’s providing Feedback to make the product what it came to be on Launch day yesterday. You the Community made this product what it is You can Sing this (Believe it or Not) to “Iron Maiden” and “Seventh Son of a Seventh Son” But even without words, I think it’s fun to read. "Seventh One is a Seventh Won" Hear the tale from Binary minds See them all, the many download [Chorus:]
[Chorus:] Seventh One is a Seventh WON Seventh One is a Seventh WON Seventh One is a Seventh WON
October 22 Ode to Windows 7O Windows 7, how do I love thee? Let me count the ways I love thee for thy cleaner core; lending speed to my flight, I love thee for thy WinRE I love thee for the for thy Windows Shake, I love thee for thy compatability, extending to the past I love thee for thy security, protecting all that is mine I love thee for thy Gui, an interface to behold But mostly I love thee Windows 7, as the day it carries on October 19 Using Powershell to gather MAC Addresses of Network cards EASILY – Part 2
So last time we left you with a partially useful Powershell line. The ability to type in a computer name into a variable and have it list all the Physical network cards attached to the System via WMI (Windows Management Instrumentation). The end result of this desired operation would be to have a list of all the MAC addresses on your PC’s. For what purpose? Possibly setting up SCCM 2007 or maybe even to aid in securing DHCP by having a list of MAC addresses in use and only only handing out IP’s to registered network cards. Or maybe you just like collecting MAC Addresses :) But to make this truly useful, we need a list of computers. Now if I (or you) have to go to each computer to GET it’s name, that completely defeats the purpose. But if you have Active Directory on your site this really gets easy. Any version will do for Powershell.
So our first piece involves having the FREE Quest Active Roles Management Shell for Active Directory for Powershell. We’re going to use the “GET-QADCOMPUTER” to get a list of systems in Active Directory, because well, that’s GET-QADCOMPUTER DOES and does very well and simply.
GET-QADCOMPUTER
That of course will dump a list from 3 to 300 lines of computer names depending on the size of your network. But we don’t want to see the pretty list. We need that list to work for us. So we’re going to store that information away in a Powershell variable.
$COMPUTERLIST=GET-QADCOMPUTER
Once we have this list we can select and pipe each item from this list into the Powershell commandlet from before ------ PRINTMACLIST.PS1 ------ $COMPUTERLIST=GET-QADCOMPUTER FOREACH ($PC IN $COMPUTERLIST) Get-WmiObject WIN32_NETWORKADAPTER -computer $PC.NAME | where { $_.PhysicalAdapter.CompareTo($FALSE) } | Format-table @{Label="ComputerName"; Expression={$PC.NAME}}, NAME, MACADDRESS, } -------- END OF SCRIPT -----------
Now this is all fine and dandy. A printed report on the screen. But the whole point of Powershell and Computers and Life in general is try and SAVE work, like avoiding typing in that silly list. So instead of using “FORMAT-TABLE” we’re going to “SELECT” from the OBJECT the PROPERTIES we want so we can EXPORT it to a CSV (Anybody see where I’m going with this? Yeah I’m that obvious eh?)
So the same script but swap out “FORMAT-TABLE” with “SELECT-OBJECT” which allows out to pick out what we want. Then we’ll use EXPORT-CSV to pipe all that output into a nice file which should at LEAST save on typing
------ EXPORTMACLIST.PS1 ------ $COMPUTERLIST=GET-QADCOMPUTER FOREACH ($PC IN $COMPUTERLIST) Get-WmiObject WIN32_NETWORKADAPTER -computer $PC.NAME | where { $_.PhysicalAdapter.CompareTo($FALSE) } | select-object NAME, MACADDRESS, @{Label="ComputerName"; Expression={$PC.NAME}} | Export-csv C:\MACADDRS.CSV } -------- END OF SCRIPT -----------
And now what you’ll have is an easy way to pull out the MacAddresses, list of Physical network cards INCLUDING the Computer name on each line. The interesting part is because this is mostly based on WMI you could easily add on Filters to only show computers which are Workstations. And With GET-QADCOMPUTER you can even filter specific OU’s containing computers.
Enjoy the Power
Sean October 18 Singing NerdsIf you’re a geek that writes tunes for fun, even dares to sing them or Good Grief, PLAY an INSTRUMENT! You’re not alone. Here’s a fellow who did a Video called Qbasic Nerd and as well Wrote an original song called “Farewell to Dos” . You can download it HERE.
Are you a guy like him or me? Do you do this for fun? Professionally? Just cuz you had a beer? Or three?
Email me ye110wbeard@hotmail.com if you have links. I wouldn’t mind putting together a list we can all share and help get rid of those stress filled days once and for all Cheers Sean Using Powershell to gather MAC Addresses of Network cards EASILY – Part 1
I was thinking, If you wanted to REALLY do a good deployment of Windows 7 (or Vista for that Matter) you’d want to have a full Zero Touch installation scenario. A Zero Touch Installation (to put it in a a VERY general description) allows you to “Flip the Switch and just install handsfree”. This is where if you spent the time with Microsoft Deployment Toolkit 2010, Systems Center Configuration Manager 2007 and tie in a Windows Deployment Server you can deploy 10’s 100’s or 10’s of 1000’s of workstations effortlessly. And with Windows 7 and Windows Vista tied into this scenario, you don’t need to maintain and keep re-updating the images. Just add or change the needed pieces! But to get something like this started (at least from what I understand) you’ll need a list of MAC addresses and machine names. There’s a lot more than that, and if you had a small network of 10 computers, it’s not so difficult. Or is it? Do you want to climb under every desk and dig for numbers? or Sit there logging it, typing in IPConfig, writing down the info, hoping you have it right… Yes if you’re a large corporation, you probably have inventory software, but unfortunately that’s not always correct. Network cards get changed. But in Powershell, well this is very easy to do You’ll find I have a huge theme in Powershell, using it to get the information I need. Because it just does it so beautifully and so simply
And so INEXPENSIVELY! :)
So one of the things you will hear over and over and over is how Powershell and WMI are best friends. And they are. WMI – the “Windows Management Instrumentation”, contains a LOT of information on your PC, your operating system, right down to the CMOS and how Many sticks of Ram you have. In our case we’re going to ask Windows what network cards we have using Get-Wmiobject WIN32_NETWORKADAPTER
Really all I want is a list of the PHYSICAL adapters. And this is done very easily too. If you run a GET-MEMBER against this output you’ll find a pretty obvious Property called “PhysicalAdapter” with a Boolean True/False. Want to guess what it does? If you run tack on that property to our last command
So this is great but Ideally I’d like to take this into a useful form. So with a little help of the Format-List command and specifying properties.
$COMPUTERNAME=’localhost’
That’s for Next time I’ll show you how to tie THAT into Active Directory to get a list of your computers and have Powershell do all the work for you.
Sean October 17 Microsoft Deployment Toolkit 2010I am still amazed that this is free from Microsoft. I’ve just spent a few hours messing about with it. And whether you’re Small Business, General Field Technician or in the Enterprise. You can USE this without headaches. You can USE this for FREE. You don’t even need high end hardware to play with it! The Microsoft Deployment Toolkit 2010 is a free download from Microsoft that allows you to pull off a NUMBER of things easily.
You can use it to Customize your operating System more readily for your Environment You can create a standard image to install on Client sites You can use it to capture User configuration information before deployment You can have all the drivers ready in one environment Why you can even tie it directly into a Windows Deployment Server on Server 2008 with EASE
And it has POWERSHELL scripts so that you can Automate more easily!
Yes it does a pile of things What you’re seeing right now is the very screen from “Getting Started” in the MDT 2010. It gives you a quick breakdown of the step by step process used in deployment. What is nice is as you click on each step in the presented photo it IMMEDIATELY Brings you to detailed instructions relevant to that step And yes it can get REALLY complex. But it doesn’t have to be really. It’s meant to be the most powerful tool in your deployment arsenal and yet the simplest if need be.
And do you know how hard it isn’t? (Yes strike me down, a double negative hath been uttered!)
Create a new Deployment Share from “Actions / New Deployment Share” or Right Click on “Deployment Shares” and choose the same option. Follow the Step by Step wizard. You have various options you can select or de-select for your Deployment Share including the option of asking Users for the Product key or Admin password (depending on your environment it might make sense with OEM Stickered software?
You then import whatever Applications, Operating System Media, Drivers, Service Packs You’ll need…
Create a “Task Sequence” which when you link up with a Windows Deployment Server allows you to “Boot and Choose” from PXE. These Sequences STOCK are “Standard Client Task” and “Standard Server Task” which are good for instaling a clean O/S with Applications, “Sysprep and Capture” which is needed if you’re going to capture a running “Gold O/S" including customizations and store it as a Master on a server. BTW, this is FAR better than standard Imaging since it gives you a proper, hardware independent clean install everytime. “Lighttouch OEM” would be a typical deployment OEM’s would use and is preconfigured for those scenarios. “Standard Client Replace Task” allows you to boot off PXE and Capture the profiles of the user or Users on a workstation, and blank it out afterwards. Also, note none of these are “HARDCODED”, they are Predefined templates you can take and customize to meet YOUR needs, fully documented within the Application MDT 2010
And then you can work with various “Selection Profiles” and “Media” to create the Standard install environment to work from
And of course after running each task, it automatically creates a Powershell script so that you just edit and run that for the next time to standardize how you do it. Why a Powershell Script? Let’s just say you are a field tech, and you’re running MDT 2010 and WDS on various client sites with unique applications and Operating system needs. The nice thing, is because ALL of this is Powershell based, you can carry a USB key with you with the standard tasks you normally use to make MDT 2010 customized the way you want, have the MDT 2010 and Windows AIK software ready, and in minutes create a NEW deployment Environment referencing the client’s OWN operating System and Applications. The names of the MSI files will be different as will the source for the Deployment, but the process is the same and therefore just a few edits away.
And I can tell from experience, having the ability to create a standard hardware independent deployment makes *YOU* smarter, faster and more cost effective to your customers! Or better yet, you can bill your standard rates but have the client up and running completely with a new Deployment in a FAR shorter time, which makes THEM more productive and HAPPIER! With something like this in your bag of tools? You can deploy 50 copies of Windows 7 as easily as you can Deploy Five!
So what do you need to get started? MDT 2010 (Free download from Microsoft) Windows AIK for Windows 7 (Free download from Microsoft)
And maybe a Saturday afternoon with a glass of Iced Tea to play :)
We’ll deep dive into this a bit more, but download it, try it, EMPOWER YOURSELF!
Sean October 12 Powershell Resources OnlineSo each Month at ITPro Toronto we have the Powershell “Script Club” session. I thought what I’d do for you the membership is list those resources here in the Blogs. You can save the Hyperlink and I’ll try to keep it updated as time permits. The List may appear short since I’ll try to get you what I personally consider the Master links to Powershell online. HTTP://BLOGS.MSDN.COM/POWERSHELL Blog Postings made DIRECTLY by the very team at Microsoft involved in Developing and Producing Powershell. Think Microsoft doesn’t listen? Think again. You’ll find Jeffrey Snover, the key Architect behind Powershell is behind a lot of these postings as are many of his team. They actively go out and listen to the Powershell Community and users and search the internet for comments, critique and ideas for how Powershell should be and IS used. They look for NEGATIVE comments too. Some day I’ll tell you a story of how “Somebody” at Microsoft Searched for Powershell and “HELL” and got the pleasant surprise of his life.
HTTP://WWW.POWERSHELLCOMMUNITY.ORG Here is your one stop repository to Powershell. You’ll find the bulk of the best of the best and their blogs centralize here. More Powershell information than you can shake a stick at!
The PowerScripting Podcast done by Jon Walz and Microsoft MVP Hal Rottenberg. Two guys absolutely passionate about Powershell that interview the who’s who of the Powershell community (including the guys straight from Microsoft). The podcasts are sponsored and free to download. Download the earliest podcasts and listen in on the way to work and soon you too will be a Powershell Guru. They also Broadcast once a week LIVE on uStream so YOU TOO can ask whatever questions strike your mind.
Ok I do not consider myself an ultimate Powershell resource, but if you dig through my postings you’ll find I try to get the basics of Powershell out there so you too can get a feel for the Syntax of Powershell, maybe ideas and launch yourself forward from that point. You can always reach me at sean@energizedtech.com and I’ll try to help out in whatever way I can. Yes. I love Powershell.
Yes folks, just “BING” IT. Do a search online for Powershell and even a few key words, and you’ll probably get the answer in minutes. Or maybe get yourself pointed in the right direction. You’ll find searching for #powershell in Twitter as well yields more results than you can imagine. And most of the people in the Powershell Community will happily answer whatever your Powershell questions are.
HTTP://SOCIAL.TECHNET.MICROSOFT.COM/Forums/en-US/winserverpowershell/threads And most importantly! Forums within Microsoft! Yes directly on Microsoft are support forums full of people with Powershell questions, answered by people in the Community and various Powershell MVP’s. You’ll probably see Marco Shaw in here a lot! One of the very people that pointed me down the Powershell path two years ago. What a beautiful road it is too. No matter the question, ask it! It’s free and often responded in Rapid pace!
If you’re looking for more information here at ITPro Toronto for Powershell just email sean@energizedtech.com and I’ll see to it! Cheers Sean October 09 Microsoft Techdays Toronto 2009 WRAPS UP!And so it came to happen. An event that was born from brilliance came to life. Techdays. A conference for Canadians, By Canadians, done ACROSS Canada to bring technology and training to those who needed it most. It was only last year I remember waking up a 4:00am for the First Techdays held in Toronto. Excited! Ready to launch into the great pools of knowledge. I and so MANY others. And this year it continued. And after an amazing 48 hours, concluded.
“1200 minds walked in that day and after 48 HOURS engorged themselves in various aspects of technology… “
It can be said, without question, that Techdays Toronto was an absolute raging success. Microsoft brought together this in particular Techdays in Toronto some of the most passionate and creative people to make it such a huge smash event. Techdays was a success note because it showed exactly what happens when Microsoft brings the Community in to help. The passion of the presenters showed, the Experts were ready to dive out and engage the crowd, never was such an intermixing of minds seen.
Not only did it cover deep dive information for Development and Infrastructure, but it was a chance to get hands on with some of the newest types of technology and those involved in it's creation.
It helped each and every one of us, who've been there in the field, especially those lone warriors fighting the good fight, sometimes un-thanked. It brought a sense of "Hey I'm not alone in this!" At least that's how I felt. And so I ask that all of you raise a glass of your beverage of choice, and tip a toast to each and every one out there who was involved in Techdays in Toronto (and other Techdays going on RIGHT now!)
*YOU* made Techdays happen, *YOU* helped shape it, and *YOU* are why Techdays will be a success. Cheers to all of you, and see *YOU* next year, at Techdays! And a SPECIAL Cheers to The Absolutely Amazing Photographer Kris Krüg without whom NONE of these photos would have existed. He brought the Life of Techdays, full of Digital Wonder into permanent Digital and Photographic history. You can more of his work on Flickr. Double Cheers! W00t! Powershell – Restricting output with Select-StringThere are probably many ways to do this but I spotted this question in the Powershell forums and thought I’d share. “Is there a way to restrict the output from “SELECT-STRING” to not show the Filename or the line number? For those of you like me, still learning; SELECT-STRING allows you to scan a FILE or a SERIES of files for matching Content. In it’s most basic form it works like this SELECT-STRING –path FILEPATH\FILENAME –pattern ‘STUFFIAMLOOKINGFOR’ In the UNIX world I believe it was “GREPPING” :) Anyhow normally if you do a SELECT-STRING on a file called say “DOG.TXT” for any reference to “CAT” you would get output like this SELECT-STRING –path DOG.TXT –pattern ‘CAT’ dog.txt:1:This is a mean ugly cat Yes a silly example but if you just wanted the lines (Say this was a security log? Say you just wanted parse out and build a new file with only specific content from the original? Those line numbers can be irritating! and USELESS. So to clean it up, just use a FOREACH and pull out only what we need. A GET-MEMBER against the SELECT-STRING does as so SELECT-STRING –path DOG.TXT –pattern ‘CAT’ | GET-MEMBER Shows us the following results The actual Property we’re looking for is just called “LINE”, it has the content without the Numbers. It you run the SELECT-STRING like THIS SELECT-STRING –path DOG.TXT –pattern ‘CAT’ | GET-MEMBER | FOREACH { $_.Line } You get just the lines Output. Also in Powershell, if you’re curious about output, just use a FOREACH { $_.Property } on the end of a line to read the actual content of Properties to see if it’s what you need. Keep on Scripting! Sean October 07 Listing Installed Applications RevistedI noticed in the Powershell forums somebody looking for a Script to show what date some Sql updates went in.
I don't think this new one met the need but I started wondering If I could dump a little more than the installed programs.
Turns out the Registry keeps a lot of information on installed programs and updates, including the date and time it was installed.
So I expanded my original "LISTAPPS.PS1" script for dumping installed applications. It wasn't hard to add in additional lines to push out the "Version" and "Date"
But I stumbled across a few problems in those registry keys.
Some entries are created with NO useful information and thus no Date. So when I started trying some Cool methods, they, errrr.... well... They freaked at NULL information.
So I had to get a LITTLE fancy into three spots, well fancy for a basic Scripter like myself.
I had to slip in an "IF ELSE" on the name, if it was a Null, well I didn't really care about it.
But I also stumbled that some installed apps don't stamp the DATE/TIME like they should. So yet another "IF ELSE" to catch bad date info and output "UNKNOWN". The nice thing in Powershell is I can switch a variable from any type on the fly.
Second little problem (well not a problem, but something *I* wanted done, was I needed the DATE to show up as well, a DATE, readable instead of a cryptic "20090925". We can all figure what that means but that defeats the purpose of making something like the registry readable to a user.
So I learned how to work the [DATETIME]::Parse method thanks to an excellent article on Powershell.com and played about for the first time since my days in "Waterloo Structured Basic" with Substrings.
Now I'm certain there's a really COOL and fancy way to do this, but the point of anything I do in Powershell is a) Be useful and b) Let a new person look at it and UNDERSTAND simply enough that THEY could take it over and get into it.
So the new script will do the same as the original but pump out "Install Dates" (if they're available) as well as the applications and updates.
--------------------- LISTAPPS.PS1 -------------- Just because we can do it ------------------------
#$list=get-childitem HKLM:Software\Microsoft\Windows\CurrentVersion\Uninstall\
$list=get-childitem REGISTRY::HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\ Foreach ($App in $list)
{ $Displayname=(get-itemproperty registry::$App).DisplayName;
$DisplayVersion=(get-itemproperty registry::$App).DisplayVersion; $InstallDate=(get-itemproperty registry::$App).InstallDate; If ($Displayname -ne $NULL) {
If ($InstallDate -ne $NULL)
{
$year=$InstallDate.substring(0,4) $month=$InstallDate.substring(4,2) $day=$InstallDate.substring(6,2) $DATEINSTALLED=[DateTime]::Parse($month+'.'+$day+'.'+$year)
} Else { $DATEINSTALLED='Unknown' } Write-Host "Application", $Displayname, "Version", $DisplayVersion, "Date Installed", $DATEINSTALLED
}
} ------------------------------- LISTAPPS.PS1 ------ Game over man --------------------------
Enjoy and modify it as you need, or use it just to learn how you can work and manipulate information in Powershell.
No script has to be amazing, it just has to be useful to you :)
Cheers
Sean
The Energized Tech
October 04 Windows 7 – “Are YOU Ready?"Are you ready for Windows 7? It is a common question now that Windows 7 is released to manufacturing. This 2 hour 4 part session will cover all the key aspects, guidance, tools and resources to help prepare you and company for Windows 7. For anyone looking how to Discover, Explore, Pilot, Deploy or Manage Windows 7, this is the seminar for you. This session will answer questions like "Why and how to move to Windows 7 from Windows XP?", "What are the differences between the versions of Windows 7?" and focus on the three key pillars of Windows 7 - deployment, security, and networking. From new deployment techniques, application compatibility, to improved security and remote access options this session will get you ready to answer questions about Windows 7. If YOU’RE wondering about Windows 7, what it offers for you, or just have questions in general, check out this FREE in Microsoft Canada’s head office after work hours! Click here for more details or if you’re looking for an alternate location.
If you’d like to register for this event, click here and bring nothing but your curiosity, this event costs nothing but your time, and we thank for you that. Cheers. Sean Microsoft Techdays Canada 2009 – Day 2 – Community Wow!A rather simple title but, well that sums it up! It was strange for me. I came here for the technology and it was the Community within Technology I found. Of course I learned some more on Med-V thanks to an excellent presentation by our resident MVP in Virtualization, Cameron. But for some reason I found myself in the Expert booths, and ended up meeting others like myself, helping out in whatever way I could. Touching base with new friends and old at the same time And for some inexplicable reason, something I’m still having a hard time grasping, perhaps the entertainer in me? Perhaps something new that grew yesterday? I found a new passion. Presenting. Yes to present more. Not necessarily for just the sheer showmanship of it (yes there is that aspect) but AGAIN thanks to Microsoft, I see a new focus. I have grown yet a further level in ways I never foresaw two years and four months ago when I wrote that fateful article “Confessions of a Computer Geek” and sent it to my heroes. And when Rick Claus came up behind me asking “So did you imagine this would ever happen man?” I was speechless. Because I didn’t. None of us can foresee the future. We can all work to shape and change our future and hopefully improve it, and perhaps others around us. But never did I imagine that a) I would be involved in an event as large and as successful as Microsoft Canada Techdays 2009 or b) that I would actually WANT to stand up in a room of 200 people a speak! *GASP!* I’m a reformed introvert and Funny Guy! Who would have thought that! And the results? Yes Mr. Claus, Yes Microsoft Canada, Yes World. I embrace and look forward to the future for whatever it holds. Thanks to Energize IT, Influencers, Techdays, the MVPS and the encouragement of the community, I am no longer the same person. And in two years, 4 months from now, ask me the same question again. :) Sean WinRE – Windows Recovery Environment – Your Life Preserver and Safety Net – Part 6So last time we looked into making a Bootable Recovery environment from within Windows 7. This time we’re going to see how to make one from our customized environment we created in Part 5. So if you remember last time, with the Windows AIK installed we had created a folder structure using COPYPE X86 C:\WINRE In this structure there is a folder called “ISO”, this is the base structure for your ISO file. You’ll see a SOURCES, EFI and BOOT folder. This is just like your standard Windows 7 install media but stripped right down. And yes, if you just copy a program or a folder to the root of this structure, it will be there when we create the ISO file To make this a useful bootable structure with Window Recovery Environment we just have to throw the image into the SOURCES folder in the ISO structure and call it BOOT.WIM instead of WINRE.WIM So from Part 4, we had extracted WINRE.WIM and placed it under C:\WINRE; That file is what we copy to our C:\WINRE\ISO\SOURCES folder COPY C:\WINRE\WINRE.WIM C:\WINRE\ISO\SOURCES\BOOT.WIM Now if you’re wondering? If you just wanted to make a strictly Windows PE bootable disc? Same procedure but copy the WINPE.WIM file from the same folder (COPYPE places it there by default) and put it into the ISO\SOURCES folder as BOOT.WIM. Once you have this structure under the ISO folder, with Windows AIK you can build a bootable ISO file for 32bit Windows 7 using OSCDIMG –n –bC:\WINRE\ETFSBOOT.COM C:\WINRE\ISO C:\WINRE\WINRE.ISO This will take that structure, inject the boot code from ETFSBOOT.COM and create an ISO file you can burn to disc with any of your preferred burning software. Personally I’ve been using IMGBURN which is free to download and contains no “catch-22” in it’s operations (but you can make donations to the author via PayPal, and I encourage you to do so) and works well in just about every burning of Windows I’ve used it in (including Windows 7 *AND* Server 2008R2). It can burn ISO files for both CD and DVD as well as file structures. Next time we’ll take a few minutes and show you how to make THAT into a Bootable USB Flash Drive Sean WinRE – Windows Recovery Environment – Your Life Preserver and Safety Net – Part 5So last time we found out how to at least pull out and make the Winre.WIM file which is your recovery environment. It can be customized with drivers and additional applications but we’ll get into that later. Right now, how do you USE that customized environment? Well you have a few options to work with It can burn turned into an ISO image on CD rom You can make a UFD (USB Flash Drive) that is bootable and drop it on there If you have Windows Deployment Services running in your environment you can drop that into the repository Or you can drop it into a new partition (or shrunken, spare partition) to have it on a spot SEPARATE completely from the operating system (This could even lend to building a full image recovery partition, without the need for expensive 3rd party vendor solutions) So just where do we start? Well let’s start with a bootable CDROM. You have two ways of doing that. Once prepares a CDROM from the presently active and running WinRE environment and the other builds an ISO file you can burn to CD from your freshly customized environment. To make a Bootable CD from within Windows 7 just go to the BACKUP AND RESTORE, Which is under Control Panel / System Security / Backup and Restore. Or you just type “BACKUP” in the Search bar off your Start Menu to have it automatically populate it for you :)
So Select Backup and Restore and you’ll see the following screen. In particular we’re interested in THIS option in the upper left hand side “Create a system repair disc”. Now of course this does require you have a CD burner and a blank CD, and Administrative credentials (Note the little shield at the left)
But nothing could be simpler to do, just click “Create a system repair disc” and you’ll see this
Choose “Create Disc”, soon it will be preparing files and burning your Windows Recovery Environment onto CD.
And that’s it! You’re done! You now have an Extra copy of the Windows Recovery Environment handy to store in your drawer. this is Especially handy if the seller of your computer did NOT provide you with restore media (Yes some of them are Still shaving a nickel doing that deplorable practice!)
Next time we’ll show you how to make that newly customized environment into an ISO file you can burn to CD
Sean October 02 WinRE – Windows Recovery Environment – Your Life Preserver and Safety Net – Part 4So this is wonderful. We have this cool “end all fix all” environment. So how do we GET it? My first instructions download the Windows AIK for Windows 7 (if you’re Working with Server 2008R2 and Windows 7) or the Windows AIK for Vista (If dealing with Vista or Server 2008) Now the newer one still works for making and editing the Vista AIK but it does not have SETFAILOVER.CMD (which is needed in Vista but not in Windows 7) to allow the Recovery Environment to “kick over”. You’ll find the WinRE is sitting inside the BOOT.WIM file on your install Media. And yes, they are different. They FUNCTION the same but the Vista one is for Vista, Server is for Server, 7 is for 7, 64bit for 64bit O/S. And that’s not to say you can’t play with it, and try using one for some work on another, they’re all based on Windows PE. The difference will be in the Automatic repairs or System restore features. So for best results, DON’T mix and match. So Start up the Windows AIK by going to “Deployment Tools Command Prompt” and make sure you “Run as Administrator” and the build the folder structure for Windows PE. Run the COPYPE command COPYPE X86 C:\WINRE So look in your install media, find a file called BOOT.WIM under the SOURCES folder on the root of the DVD. Copy the Boot.WIM file locally to C:\WINRE COPY D:\SOURCES\BOOT.WIM C:\WINRE\ Then extract the Windows Recovery Environment from Index 2 from BOOT.WIM using the IMAGEX command from Windows AIK IMAGEX /EXPORT C:\WINRE\BOOT.WIM 2 C:\WINRE\WINRE.WIM “Windows Recovery Environment” Now we have the Windows Recovery Environment, but we need to reprogram the extracted version to trip over into the Recovery Environment on startup. This requires Two steps ONE Mount the Windows Recovery Environment If you’re using The Windows 7 AIK the Command is DISM /MOUNT-WIM /WIMFILE:C:\WINRE\WINRE.WIM /INDEX:2 /MOUNTDIR:C:\WINRE\MOUNT If you’re using the Windows Vista AIK the Command is IMAGEX /MOUNTRW C:\WINRE\WINRE.WIM 1 C:\WINRE\MOUNT In both cases it will EXTRACT and bring the drive structure of the WINRE.WIM file into the C:\WINRE\MOUNT folder TWO Once it is within that folder you need to copy a file called WINPESHL.INI into the SYSTEM32 of the WINRE environment The contents of WINPESHL.INI are [LaunchApp] It is a very simple text file that when the WINPE environment boots up, it launches that as it’s Operating Shell. So copy it into SYSTEM32 of the WINRE Environment by running COPY WINPESHL.INI C:\WINRE\MOUNT\WINDOWS\SYSTEM32 Then once that is done, close up the Environment. Different if you are using again the Windows AIK for 7 or Vista. Windows AIK for 7 run a DISM /UNMOUNT-WIM /MOUNTDIR:C:\WINRE\MOUNT /COMMIT Windows AIK for Vista run a IMAGEX /UNMOUNT /COMMIT C:\WINRE\MOUNT And that’s the basics. Next time we’ll go into how to actually make this USEFUL and Bootable in Both Vista AND Windows 7 Sean "Scripters - Creatures of the Dark"A problem is roaming the offices and nations. Worse than any addiction you've ever heard of. It Professionals, Infrastructure Architects, heck even field technicians crossing that dark line. Crossing the oh so finely drawn line between ITPro and Developer. A line that should never be crossed. Some things were never meant to be. We see them, sometimes alone, sometimes in pairs. Huddled together tapping away. "Scripters" And it always starts out simply. The most distasteful of all tastes for every ITPro. A "Logon Script". YUCK! That's why it happens at Logon. Because we don't even want to SEE it more than once! But for some people, well that's once too often. They start out with some mapped drives, a time sync here and there, perhaps dropping a standard Home drive into the list. Then they get into other commands, deploying software from that login script. And then the claws of the beast sink into your flesh. You're hooked. But you don't realize it. "It's only Cmd.exe ! It's just a batch file!" You say to yourself. That horrid lie you make up. That foul web you weave. That's all fine until one day somebody comes up to you and asks if you could start emailing those Logs from NTBACKUP.EXE. Then a little vbscript get's in the mix. Just a little. Just enough to work it's way into your system, dragging you further down into the darkness. It still FEELS like you're not scripting because there are still popup Windows. But no, you're only kidding yourself. You're "scripting". You sicko. Soon, before you know it you'll have a whole library of scripts, running about like little trolls doing your work for you. You'll actually stop for a bit. And you might end up ok. Unless you're one of "THEM". Those that start into the "Blue Daemon", "The Box of Entrapment", "Snover's Snare" some call it. And there is no way to stop once they start into....*eek*... Powershell. Creatures wrapped so deeply in the darkness it's too late for their souls! Working DIRECTLY with ...*ack*... DOT NET and learning and speaking METHODS and PROPERTIES! ITPROS AREN'T MEANT TO USE METHODS! They're the worst of the lot. "Shelling" they call it. Their eyes glazed over with a deep BLUE haze, muttering incantations. "Get-Item | export-csv chants.csv" What a horrid lot! "Shelling" is about as dark as they get. No longer ITPros, but not Devs either, just some horrid mix in between. As the script twists and misshapes them. No longer able to speak clear English. Their sentence structure broken into simple Verb-Noun structure when communicating. You can always spot a person who has been "Shelling" "Hey Bob? You want a coffee?" "GET-DOUBLEDOUBLE" --- Shelling, definitely shelling "Hey Susie, we're going to the movies. Want to come along?" "GET-MOVIE | WHERE { $_.Review -like "*excellent*" } | write-console 'Yes.' " --- That's a sign of a person who has been hard core shelling. Can they be stopped? Is there any hope for them? Unfortunately, no. Once you "Shell", that's all you ever do, that's all you ever want to do. So stay safe. Hold onto that crimping tool and Fluke meter for dear life. Clutch them like a Teddy Bear. And when YOU'RE asked to compose a Logon Script, JUST USE GPO! ...My name is Sean, and I'm Shelling October 01 WinRE – Windows Recovery Environment – Your Life Preserver and Safety Net – Part 3So back to Windows Recovery Environment. Where is it mysteriously hiding? Nothing mysterious about it. On the root of your hard drive in Windows 7 and Server 2008R2 is a folder called “Recovery”. If you’re curious you’ll have to Run with Administrative credentials to get in there. I don’t recommend playing with the NTFS permissions. But if you look inside (and view HIDDEN FILES and HIDDEN FOLDERS) you’ll see two little innocent files. Boot.SDI and Winre.WIM That it’s it. Again it doesn’t sit on that 100 meg partition, that’s where the operating system boots from (which follow proper best practices in separating the Boot from the Operating system) Accessing it is incredibly EASY! You can manually run it by hitting “F8” on startup and hopefully not being beaten by your super fast computer. Or you can boot from the Windows 7 DVD and go to “Repair My Computer”. Or in Windows 7 you can execute a “REAGENTC.EXE /BOOTTORE” in a Command prompt with Administrative Credentials. That will force WinRE to start up on next boot. Or you can do something foolish, like BREAK something! That trip off WinRE and have it try to fix things. Usually quite effectively! But next time we’ll take a quick look at how you can have your own personal Windows Recovery Environment on CDrom or USB key Sean |
|
|