www.portableapps.com is awesome. I found most of my apps on their site. Here is a list of apps that work in WinPE:
Dropboxahk
Irfanview
Firefox
Chrome (version 24.0.1312.57)
EvincePDF
DiffPDF
SumatraPDF
Recuva
7Zip
XeonFileMgr
WiseDataRecovery
TreeSize
Clam Antivirus
Putty
FileZilla FTP
GIMP Image Editor
SoftPerfect File Recovery
I also copied timeout.exe from Windows to WinPE since I don't like PowerShell's start-sleep command -- it has no visual countdown.
Here's the PowerShell script I used for my Utility Menu:
Note: The menu spacing is funky as it's made to be presented inside the WinPE boot shell.
Function Utility
{
cls
write-Host "`n UTILITY MENU`n" -fore White
Write-Host "`n 1"-f cyan -nonewline;write-host ":7Zip "-f gray -nonewline;write-host "2" -f cyan -nonewline;write-host ":Chrome "-f gray -nonewline;write-host "3"-f cyan -nonewline;write-host ":Firefox "-f gray -nonewline;write-host "4"-f cyan -nonewline;write-host ":ClamWin Antivirus" -f gray
Write-Host "`n 5"-f cyan -nonewline;write-host ":Photo Viewer "-f gray -nonewline;write-host "6"-f cyan -nonewline;write-host ":Wise File Recovery "-f gray -nonewline;write-host "7" -f cyan -nonewline;write-host ":Recuva File Recovery" -f gray
Write-Host "`n 8"-f cyan -nonewline;write-host ":FileZilla FTP "-f gray -nonewline;write-host "13" -f cyan -nonewline;write-host ":PuTTY Telnet "-f gray -nonewline;write-host "9"-f cyan -nonewline;write-host ":GIMP Photo Viewer" -f gray
Write-Host "`n 10"-f cyan -nonewline;write-host ":PDF Viewer " -f gray -nonewline;write-host "11" -f cyan -nonewline;write-host ":2nd PDF Viewer "-f gray -nonewline;write-host "12" -f cyan -nonewline;write-host ":PDF Comparer" -f gray
Write-Host "`n 14"-f cyan -nonewline;write-host ":Folder Sizes "-f gray -nonewline;write-host "15"-f cyan -nonewline;write-host ":File Manager " -f gray -nonewline;write-host "16" -f cyan -nonewline;write-host ":SoftPerfect File Recovery" -f gray
Write-Host "`n C"-f cyan -nonewline;write-host ":Open Command Window "-nonewline;write-host "P" -f cyan -nonewline;write-host ":Open PowerShell Window " -nonewline;write-host "N"-f cyan -nonewline;write-host ":Notepad"
Write-Host "`n U"-f cyan -nonewline;write-host ":Update this UFD's scripts "-nonewline;write-host "B"-f cyan -nonewline;write-host ":Reload HD Boot Sector"
Write-Host "`n NEW"-f cyan -nonewline;write-host ":Create Image from SysPrepped HDD"
write-host "`n A"-f cyan -nonewline;write-host ":Apply custom role to existing image`n"
#Write-Host "`n Enter"-f cyan -nonewline;write-host ": Return to Main Menu`n" -fore darkcyan
$util = read-host 'Select utility or press ENTER for Main Menu'
if ($util -eq "1"){d:\apps\7Zip\7-ZipPortable.exe;Utility}
if ($util -eq "2"){d:\apps\Chrome\GoogleChromePortable.exe;Utility}
if ($util -eq "3"){d:\apps\firefox\firefoxportable.exe;Utility}
if ($util -eq "4"){d:\apps\ClamAV\ClamWinPortable.exe;Utility}
if ($util -eq "5"){d:\apps\Irfanview\IrfanViewPortable.exe;Utility}
if ($util -eq "6"){d:\apps\DataRecovery\WiseDataRecoveryPortable.exe;Utility}
if ($util -eq "7"){d:\apps\Recuva\Recuva.exe;Utility}
if ($util -eq "8"){d:\apps\FileZilla\FileZillaPortable.exe;Utility}
if ($util -eq "9"){d:\apps\GIMP\GIMPPortable.exe;Utility}
if ($util -eq "10"){d:\apps\evincepdf\evinceportable.exe;Utility}
if ($util -eq "11"){d:\apps\sumatrapdf\sumatraPDFportable.exe;Utility}
if ($util -eq "12"){d:\apps\diffpdf\diffpdfportable.exe;Utility}
if ($util -eq "13"){d:\apps\Putty\PuttyPortable.exe;Utility}
if ($util -eq "14"){d:\apps\TreeSize\TreeSizeFreePortable.exe;Utility}
if ($util -eq "15"){d:\apps\XenonFileMgr\XenonPortable.exe;Utility}
if ($util -eq "16"){d:\apps\file_recovery.exe;Utility}
if ($util -eq "C"){cmd /c start;Utility}
if ($util -eq "P"){cmd /c start PowerShell;Utility}
if ($util -eq "N"){Notepad.exe;Utility}
if ($util -eq "NEW"){Imaging;pause;utility}
if ($util -eq "A"){Scripts;copy d:\role.txt ($hdwin + ":\software\role.txt")}
if ($util -eq "U"){UpdateUFD;Utility}
if ($util -eq "B"){if (test-path e:\windows\system32\bcdboot.exe){e:\windows\system32\bcdboot.exe e:\windows;d:\apps\timeout 15;Utility}else{write-warning "Windows Boot Files Not Found";pause;Utility}}
}
Sunday, January 26, 2014
UFD Imaging and Dell Driver Cabs
One trick I found while creating Windows sysprep images is to make the core image as neutral as possible so there's no conflicts when installing on various vendor hardware. As such, after applying an image to a new computer, I copy over the appropriate hardware drivers to the new C:\Drivers folder. Since I use PowerShell to install the images, the command I use to detect the hardware is:
if (gwmi win32_computersystem|?{$_.model -like '*Latitude E6430*'}){robocopy d:\drivers\E6430 n:\drivers /e}
This is after I've already performed the registry update so the new image can detect drivers at the c:\drivers location:
if (gwmi win32_computersystem|?{$_.model -like '*Latitude E6430*'}){robocopy d:\drivers\E6430 n:\drivers /e}
This is after I've already performed the registry update so the new image can detect drivers at the c:\drivers location:
1. Open Regedit
2. Browse to HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion
3. Locate DevicePath and edit it to be: c:\drivers;%SystemRoot%\inf
4. Continue with sysprep and create the image
I use Dell computers most of the time and found this location to be wonderful:
It has all the driver cabs. Simply extract the cab into a folder and use the contents for the new computer.
HP has a similar site:
PowerShell and Dropbox to provide updated URL to ROSS and I-Suite Downloads
I've created a UFD-based fire computer image and will be sharing with other CTSP's in our upcoming meeting. My goal was to create a UFD that can be updated with the most current script fixes and URL updates. As such, I decided to use Dropbox for hosting the scripts and links. I used PowerShell to pull the information from Dropbox and update the scripts.
Here's an example:
When WinPE boots, the UFD is the D: drive. I also create a ROSS and I-Suite root subfolder on the clients. The problem I've found is when getting dispatched to a fire, there isn't much time to get I-Suite and ROSS before heading out. I wrote two simple scripts that rely on my Dropbox URL's to get the most current version of ROSS and I-Suite then save them to either the c:\ross/c:\isuite or d:\ross/d:\isuite folders.
Double click on ROSSUpdater.bat:
powershell -executionpolicy unrestricted .\rossdownloader.ps1
It starts ROSSDownloader.ps1:
#This first command looks for c:\ross and d:\ross then assigns $filename appropriately
if (test-path c:\ross){
$filename = ("c:\ross\" + (get-date -format "yy.MM.dd") + ".ROSS.EXE")}else{
if (test-path d:\ross){$filename = ("d:\ross\" + (get-date -format "yy.MM.dd") + ".ROSS.EXE")}}
#if neither folder exist then sends a message and exits
if ((!(test-path c:\ross)) -and (!(test-path d:\ross))){write-warning "There is no ROSS subfolder off the root of your UFD or C: drive";pause;exit}
#Sends warning message about the download
write-warning "Closing this window will cancel the ROSS download"
write-warning "The new ROSS executable is located in the UFD's ROSS folder"
write-host ("The new ROSS file is: " + $filename)-f green
#grab the Dropbox file URL to ROSS, assign it to a variable then #download the file to the $filename folder
$ross = (new-object system.net.webclient).downloadstring("https://dl.dropboxusercontent.com/s/pz22mvi15sjp2y8/ross.txt")
(new-object system.net.webclient).downloadfile($ross,$filename)
#Check to ensure the file downloaded then send a message
if (test-path $filename){write-host "Download Complete"-f blue;timeout 30}else{write-warning "Something went wrong, download was not successful.";pause}
This technique is dependent on keeping up with the ROSS/ISuite URL's in Dropbox but changing it in one place will help all those who use this script.
Here's an example:
When WinPE boots, the UFD is the D: drive. I also create a ROSS and I-Suite root subfolder on the clients. The problem I've found is when getting dispatched to a fire, there isn't much time to get I-Suite and ROSS before heading out. I wrote two simple scripts that rely on my Dropbox URL's to get the most current version of ROSS and I-Suite then save them to either the c:\ross/c:\isuite or d:\ross/d:\isuite folders.
Double click on ROSSUpdater.bat:
powershell -executionpolicy unrestricted .\rossdownloader.ps1
It starts ROSSDownloader.ps1:
#This first command looks for c:\ross and d:\ross then assigns $filename appropriately
if (test-path c:\ross){
$filename = ("c:\ross\" + (get-date -format "yy.MM.dd") + ".ROSS.EXE")}else{
if (test-path d:\ross){$filename = ("d:\ross\" + (get-date -format "yy.MM.dd") + ".ROSS.EXE")}}
#if neither folder exist then sends a message and exits
if ((!(test-path c:\ross)) -and (!(test-path d:\ross))){write-warning "There is no ROSS subfolder off the root of your UFD or C: drive";pause;exit}
#Sends warning message about the download
write-warning "Closing this window will cancel the ROSS download"
write-warning "The new ROSS executable is located in the UFD's ROSS folder"
write-host ("The new ROSS file is: " + $filename)-f green
#grab the Dropbox file URL to ROSS, assign it to a variable then #download the file to the $filename folder
$ross = (new-object system.net.webclient).downloadstring("https://dl.dropboxusercontent.com/s/pz22mvi15sjp2y8/ross.txt")
(new-object system.net.webclient).downloadfile($ross,$filename)
#Check to ensure the file downloaded then send a message
if (test-path $filename){write-host "Download Complete"-f blue;timeout 30}else{write-warning "Something went wrong, download was not successful.";pause}
This technique is dependent on keeping up with the ROSS/ISuite URL's in Dropbox but changing it in one place will help all those who use this script.
Idea: Create an SMS Text Messaging webpage for team website
www.textsendr.com offers free SMS texting from their site. They also have an option to create a widget. You fill out the form with the recipients phone number and service provider and it generates a code snippet. I've modified a code snippet it generated for me. My idea is to create a contact page on our local intranet server (Windows 7 Enterprise hosted-IIS) which is on the I-Suite server. Those who want to share their phone information will get their own snippet and others in camp will be able to text them from any network computer or smart phone that can access the Internet team site.
<center>
<form action="http://www.textsendr.com/send.php" method="POST" target="_blank">
<input type=hidden name=refer value=widget>
<input type=hidden name=to value=xxxxxxxxxxxxxxxx>
<input type=hidden name=provider value=sprint>
<textarea name=message rows=3 cols=20></textarea><br>
Provide your name, role, contact information, and message.<br>
Recipient can't reply directly to your message.<br>
<input type=submit value="Send to George">
</form>
</center>
Update: After revisiting textsendr.com, I noticed all they do is wrap your text message into an email and send it via the companies text-to-email account. Knowing this now, I'm going to create a different type of webpage that bypasses having to visit their site after every message. I'll update this blog after creating the alternative code snippet.
<center>
<form action="http://www.textsendr.com/send.php" method="POST" target="_blank">
<input type=hidden name=refer value=widget>
<input type=hidden name=to value=xxxxxxxxxxxxxxxx>
<input type=hidden name=provider value=sprint>
<textarea name=message rows=3 cols=20></textarea><br>
Provide your name, role, contact information, and message.<br>
Recipient can't reply directly to your message.<br>
<input type=submit value="Send to George">
</form>
</center>
Update: After revisiting textsendr.com, I noticed all they do is wrap your text message into an email and send it via the companies text-to-email account. Knowing this now, I'm going to create a different type of webpage that bypasses having to visit their site after every message. I'll update this blog after creating the alternative code snippet.
| ACS Alaska | [phone number]@msg.acsalaska.com |
| Alltel | [phone number]@message.alltel.com |
| Ameritech | [phone number]@paging.acswireless.com |
| Arch | [phone number]@archwireless.net |
| AT&T | [phone number]@txt.att.net |
| Bell Canada | [phone number]@txt.bellmobility.ca |
| Blue Sky Frog | [phone number]@blueskyfrog.com |
| Boost | [phone number]@myboostmobile.com |
| Carolina West | [phone number]@cwwsms.com |
| Cellular One | [phone number]@mobile.celloneusa.com |
| Cellular South | [phone number]@csouth1.com |
| Cincinnati Bell | [phone number]@gocbw.com |
| Cingular | [phone number]@mobile.mycingular.com |
| Cingular Blue | [phone number]@mmode.com |
| Claro | [phone number]@clarotorpedo.com.br |
| Comviq | [phone number]@sms.comviq.se |
| Cricket | [phone number]@mms.mycricket.com |
| Edge | [phone number]@sms.edgewireless.com |
| Einstein PCS | [phone number]@einsteinsms.com |
| Fido | [phone number]@fido.ca |
| Immix | [phone number]@immixmail.com |
| Metro PCS | [phone number]@mymetropcs.com |
| Mobile One | [phone number]@m1.com.sg |
| MTN Africa | [phone number]@sms.co.za |
| Nextel | [phone number]@messaging.nextel.com |
| Ntelos | [phone number]@pcs.ntelos.com |
| Optus | [phone number]@optusmobile.com.au |
| Orange | [phone number]@orange.net |
| Orange Poland | [phone number]@orange.pl |
| Plus Poland | [phone number]@text.plusgsm.pl |
| Qwest | [phone number]@qwestmp.com |
| Rogers | [phone number]@pcs.rogers.com |
| Sasktel | [phone number]@pcs.sasktelmobility.com |
| Smart | [phone number]@mysmart.mymobile.ph |
| Smart Telecom | [phone number]@mysmart.mymobile.ph |
| Southern Linc | [phone number]@page.southernlinc.com |
| Sprint | [phone number]@messaging.sprintpcs.com |
| SunCom | [phone number]@tms.suncom.com |
| Sure West | [phone number]@mobile.surewest.com |
| SwissCom | [phone number]@bluewin.ch |
| T Mobile | [phone number]@tmomail.net |
| T Mobile (Ger) | [phone number]@T-D1-SMS.de |
| T Mobile UK | [phone number]@t-mobile.uk.net |
| TBayTel | [phone number]@tbayteltxt.net |
| Telenor | [phone number]@mobilpost.no |
| Telus | [phone number]@msg.telus.com |
| Tim | [phone number]@timnet.com |
| Unicel | [phone number]@utext.com |
| V Mobile CA | [phone number]@vmobile.ca |
| Verizon | [phone number]@vtext.com |
| Virgin Mobile | [phone number]@vmobl.com |
| Vodacom Africa | [phone number]@voda.co.za |
| Vodafone | [phone number]@vodafone.net |
| Vodafone Italy | [phone number]@sms.vodafone.it |
| WellCom | [phone number]@sms.welcome2well.com |
Subscribe to:
Posts (Atom)