BlackBerry just let it die!

It appears that BlackBerry is putting the bilge pumps into overdrive, trying to keep the ship from going to the bottom.

Going to tech conferences and looking around you will see different breeds of iOS and Android devices going around, you might even see a Windows phone. But one thing you never really see is a BlackBerry. It’s the phone that everyone is ashamed to still have. So the person that is still has one will not bring it out of their pocket. And whenever you see one everyone is taking pictures of them and posting them on twitter. Each phone has their Pro’s and Con’s, and each have their die hard advocates. I for one are not stuck on any

BlackBerry-Priv-1device. I go with what fits my needs the best, I can say that a BlackBerry has not fit my needs since I had a 7100i on Nextel back in 2006. That phone predictive typing was horrible, but it was the first time I had email, and web browsing at the palm of my hand. I think I purchased one more BlackBerry after that, do to lack of option in the market and moved off to Android shortly after that. One qoute from BlackBerry.com that I love is “BlackBerry means serous buisness” no it means hide it in your pocket and dont tell anyone your employer makes you carry it.

Why do employers want to stay with the old Blackberry phones. I mean the BES server was horrendous to deploy, and keep running. (In their defence I have not touched one in many years) and the stupid scroll balls kept popping out and you had to hope and pray you could find it rolling down the sidewalk. It now appears they are taking a hint and giving up on their software and going to an Android OS. Really I know they are struggling to stay alive but why not give up and call it quits while you are ahead. They are offering up a nice looking new phone but who wants a slide screen and a physical keyboard anymore? The Priv has some pretty good specs, But the life of mobility should not be forcing your users to go with one phone. As all of us learned in the late 2000’s the users will all rebel. So what is the solution? Move away from device based security and move to solutions that add mobility, security, and individualism. Things like AirWatch that let you secure your data and let the user choose their device.

Posted in Reviews | Tagged , , ,

Horizon View Printer Assignment Issues

As most of you know there are some issues with printer management with Horizon View. There are many different ways to solve this problem, you can go out and get third party software, use some GPO scripting, or even just manually add the printers from there IP address and bypass the print server. I have had many issues deploying printers with GPO, like the GPO deployment not finishing in time and stopping, or just not running because of the huge amount of printers everyone wants, or default printers not changing. Why any one person needs 15 printers is beyond me but we have some users that want them.

I took the approach of cutting GPO out as much as possible. I decided to go with a LogOn and a Logoff Script.

The logoff script was designed to save your default printer to a txt file in the user’s Documents folder. As you see below.

'Save Default Printer to text file
'Chris Hildebrandt @childebrandt42
'Version 1.1 Oct 20th 2015 
'--------------------------------------------------------------------'

On Error Resume Next

Const ForWriting = 2
 
Set objNetwork = CreateObject("Wscript.Network")
 
strName = objNetwork.UserName
strDomain = objNetwork.UserDomain
strUser = strDomain & "\" & strName
 
'strText = strUser & vbCrLf
 
strComputer = "."
 
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")

'Save Default Printer to text file

Set colPrinters = objWMIService.ExecQuery _
 ("Select * From Win32_Printer Where Default = TRUE")
 
For Each objPrinter in colPrinters
 strText = objPrinter.Name
Next
 
Set objFSO = CreateObject("Scripting.FileSystemObject")

'Save Locatin for text file
'Edit this for the location you would like to save the file to. 
Set objFile = objFSO.CreateTextFile _
 ("C:\Users\" & strName & "\Documents\default.txt", ForWriting, False)
 
objFile.Write strText
 
objFile.Close

LogOn script was to add the printers to the user’s View Desktop and read the txt file created from the logoff script to assign the default printer.

'Assign Printers and set default printer
'Chris Hildebrandt @childebrandt42
'Version 1.1 Oct 20th 2015
'--------------------------------------------------------------------'

On Error Resume Next

Dim net
Set net = CreateObject("WScript.Network")

'Printers to be assigned
net.AddWindowsPrinterConnection "\\printserver\Printer UNC1"
net.AddWindowsPrinterConnection "\\printserver\Printer UNC2"
net.AddWindowsPrinterConnection "\\printserver\Printer UNC3"
net.AddWindowsPrinterConnection "\\printserver\Printer UNC4"

'Wait timer to set default printer
WScript.Sleep 120000

 
Dim objNetwork, strComputer, objFSO, strTextFile, strData, strLine, arrLines, strRunCmd, wshShell
CONST ForReading = 1
 
'Create a Network Object
Set objNetwork = CreateObject("Wscript.Network") 
 
'Get the local machine name from the Network Object
strComputer = objNetwork.ComputerName 
strName = objNetwork.UserName
 
'Pull in the info from text file for default printer
'Please change to the location of the text 
strTextFile = "C:\Users\" & strName & "\Documents\default.txt"
 
'Create a File System Object
Set objFSO = CreateObject("Scripting.FileSystemObject")
 
'Open the text file - strData now contains the whole file
strData = objFSO.OpenTextFile(strTextFile,ForReading).ReadAll
 
'Split the text file into lines
arrLines = Split(strData,vbCrLf)
 
'Initialize the wshShell
Set wshShell = WScript.CreateObject ("WSCript.shell")
 
'Step through the lines
For Each strLine in arrLines
 
 If Len(strLine) > 0 Then
 'Only run the process on lines that aren't blank
 
' strRunCmd = "rundll32 printui.dll,PrintUIEntry /y /c\\" & strComputer & " /n" & strLine & ""
 strRunCmd = """printui.exe"" /y /c \" & strComputer & " /n """ & strLine & """"
' wscript.echo strRunCmd
 wshShell.Run strRunCmd
 
' wscript.echo "Processed printer: " & strLine
 End If
 
Next
 
'Cleanup
Set objFSO = Nothing

The LogOff script I created a GPO for the script to run on LogOff. And the LogOn script I added to the user’s LogOn script in AD. This way I can cut down on the GPO time to load and speed up the desktop load time.

I also modified my LogOn script to skip the printer assignment and just assign the user’s default printer from the txt file.

'Set default printer from text file
'Chris Hildebrandt @childebrandt42
'Version 1.1 Oct 20th 2015
'--------------------------------------------------------------------'

On Error Resume Next

Dim net
Set net = CreateObject("WScript.Network")

Dim objNetwork, strComputer, objFSO, strTextFile, strData, strLine, arrLines, strRunCmd, wshShell
CONST ForReading = 1
 
'Create a Network Object
Set objNetwork = CreateObject("Wscript.Network") 
 
'Get the local machine name from the Network Object
strComputer = objNetwork.ComputerName 
strName = objNetwork.UserName
 
'Pull in the info from text file for default printer
'Please change to the location of the text 
strTextFile = "C:\Users\" & strName & "\Documents\default.txt"
 
'Create a File System Object
Set objFSO = CreateObject("Scripting.FileSystemObject")
 
'Open the text file - strData now contains the whole file
strData = objFSO.OpenTextFile(strTextFile,ForReading).ReadAll
 
'Split the text file into lines
arrLines = Split(strData,vbCrLf)
 
'Initialize the wshShell
Set wshShell = WScript.CreateObject ("WSCript.shell")
 
'Step through the lines
For Each strLine in arrLines
 
 If Len(strLine) > 0 Then
 'Only run the process on lines that aren't blank
 
' strRunCmd = "rundll32 printui.dll,PrintUIEntry /y /c\\" & strComputer & " /n" & strLine & ""
 strRunCmd = """printui.exe"" /y /c \" & strComputer & " /n """ & strLine & """"
' wscript.echo strRunCmd
 wshShell.Run strRunCmd
 
' wscript.echo "Processed printer: " & strLine
 End If
 
Next
 
'Cleanup
Set objFSO = Nothing
Posted in Virtulization | Tagged ,

Your Fitbit may need a flu shot!

I ran across an article on The Register this morning of someone hacking a Fitbit into malware spreading mode in less than 10 seconds. So that could be a hacker sitting at a park bench and you run past them and you are now contagious and spreading your newly contracted malware.

2000px-Biohazard_symbol.svgThis attack is done over bluetooth so you have to be in 30 feet range for them to infect your Fitbit. Once your device is infected it can infect any device that it’s connected too. It could be used to open a backdoor to your corporate network, or your own personal computer.

I wonder how long it will be before Fitbit fixed the software issue beings they have know about this since March. One thing about it is they will have plenty of time to infect mine as I walk past them, they sure don’t have to worry about how fast i am moving.

Example of the Exploit!

Posted in Random Crap, Reviews | Tagged , ,

4k Video in Horizon View 6.2

How many of you have went out and purchased new 4K monitors for your users yet? I am guessing none, beings the 4k monitors are astronomically expensive. The cheapest one I found was $350 for a bottom of the line 4k, and $750 for a nice 27in ViewSonic, and I found a high end Sharp for $6500.

vmware-view-logoFor everyday business 4k absolutely makes no sense unless you have a need to spend some budget dollars, if so shoot me an email I could use some new home lab equipment. The people that make the most sense for are the Medical field, Marketing, Photo and Video Editing, and CAD users. Don’t get me wrong 4k does offer an amazing picture, but is it worth the cost for the call center person?

What is involved from the Horizon View standpoint. Beings this is new to the Horizon View 6.2 a month or so ago, there is not a huge amount of people using it yet.

First off you need to make sure your thin or zero client or repurposed PC supports the 4k monitor. You need to make sure your GPU supports 4K video. Unless you recently purchased a GPU the odds are they are do not support 4k yet.
The next piece would be is your application ready? If you have a 1080p monitor right now and you upgrade to a 4k, your icons will be 1/4 the size of they were on the 1080p monitor. So for those that have custom software or odd 3 party software you may want to test heavily before deploying 4k. Some of the major vendors are just now getting around to creating new scaling technologies.

Another major issue is I hope you have some extra ram in those hosts. You will have to step up the VRAM a bit to support 4k and max it out depending on what configuration you use. Check the Memory Requirements Matrix to see what level of VRAM is required.

imagesIn Horizon View to use 4k you are required to use Horizon client 3.5 or newer and View Agent 6.2. Right now single monitor is if you run Windows 7 or 8 with Aero on, and running hardware version 10. Now if you switch to hardware version 11 and turn Aero off you can support 3 monitors. Windows 10 is not currently supported because you can not disable aero. Also Zero clients are not currently supported but should be soon, but they might be missing some of the DPI scaling features.
Over time the cost of 4k will go down as it becomes more mainstream. But I can see where it could become a huge benefit. Could you imagine your productivity growing when you can stream YouTube videos in 4k to your View desktop. There will be huge benefits to the people in the Engineering, Editing, or Medical field, and hopefully here soon as the rest of the world catches on. The vSphere web client should look amazing in 4k.

Posted in Virtulization | Tagged , , , , , , , ,

Hold onto your Butts Wireshark 2.0 RC is available.

Its official Wireshark has a RC version on its 2.0 software available to download. Why is this a big deal? For a long time Wireshark has really just been about network and wiresharkBluetooth captures. Now with some added features like USBPcap with support from Wireshark. USBPcap is a USB Packet capture tool designed to capture data from any USB device. What can you capture? Well you can capture full keystrokes, video, data from a USB thumb drive, fingerprints from readers, security badge scans and much more.

Why is this such a big deal. Well for me it can be a great tool, but for others it can be a great tool that is readily available to do other things. I look forward to give this tool a try just to see what you can do with it. But I think it would be a huge help for developers, and capturing keystrokes as someone is installing or going through workflows.

I look forward to seeing the full release here in the short future.

Posted in Random Crap, Reviews | Tagged ,

Horizon View Persona Management Duplicate AppData LOC folders

I don’t know if anyone out there has had issues with Horizon View 6 with Persona Management and Duplicate AppData LOC folders like DualAppDatathis one here in the picture. As you can see the one on top is a current LOC folder. But the one on the bottom has an older date. When you get duplicates of these folders (Really don’t know the appropriate name for them) some ugly issues arise. I guess I should go into detail on how these are made. When your Horizon View user logs into their desktop the user profile is copied to the desktop. When this process is started this folder like {08C31585-259A-4341-9982-78E42EAF6106} is created. This is a placeholder for when the user logs off to sync the data back to the Person Management store. And when the user logs in the next day all their previous changes are on the desktop as you would expect. When you have a old LOC folder (For lack of a better term that is what I am going to call it) and a current one, The old one is considered the active placeholder for a sync, problem is that sync failed for some reason. With the old LOC folder being there it is blocking all changes from any new sync attempts. So any changes after that old LOC folder was created nothing was ever saved. They were just flushed away and a new lock started the next day. I have found no way to fix this and with VMware it’s a known issue with no real fix yet. The only way I have found to get the users to start saving data again is to delete the old LOC folder and have the user logout and back in. And from that point on the changes will be saved.

I have not found a good way to stop this from happening, or a good way to detect them till a few days ago. I managed to create a Powershell script that creates a report of the old LOC folders in your Persona repository and emails the report to you. If you choose you can enable the Delete function so when it runs the report it will go through and find all the old LOC folders and add them to the report and then delete the folders. So when the report is emailed to you it’s a deleted folder log.

Report

This is an example of what the report would send you. Full file location, Last Write Time and Creation Time. If you remove the comment from Line 134 in the script it will enable the delete function and remove those folders as it is ran.

#remove-item $exdata[$alternateTableRowBackground].FullName -Confirm:$false -ErrorAction SilentlyContinue -Force -Recurse

<#
.SYNOPSIS
 

.DESCRIPTION
 The purpose of this script is to find old AppData LOC folders in the root user directory and optional delete the folders for you. This will create a report of all the folders matching the search 
 older than Today's date. And if you enable the delete function it will delete the folders also. And the report would be the delete log. 

 Author:Chris Hildebrandt @childebrandt42
 Last Modified: 10/19/2015

.Version
 1.2
#>

#----------------------------------------------------------------------------------------------------------------------------------------------------
#Variables to configure

$MailServer = "Email Server IP address or DNS "
$ReportSender = "Who you want the email to be sent from"
$ReportRecipient = "who you want the email to go to. Comma separated no spaces (Ex test@email.com,test2@email.com"

#Change the mail subject if you like
$MailSubject = ("VMware duplicate AppData LOC Folder Report - " + (get-date).ToString('yyyy/MM/dd'))

#Folder path is the path of your Horizon View Persona Profile Repository
$folderPath = "C:\Test\*" 
#Search info. Don't change this option. This will search for the folders names like {08C31585-259A-4341-9982-78E42EAF6106} in the User root folder.
$folderName = "{*}"

#There is one more variable to change if you like. On line 134 there is a Remove-Item command that is commented out. 
#This will remove all the Duplicate AppData LOC folders that are are not current. 
#----------------------------------------------------------------------------------------------------------------------------------------------------

#Add Exchange 2010 snapin if not already loaded
if (!(Get-PSSnapin | where {$_.Name -eq "Microsoft.Exchange.Management.PowerShell.E2010"}))
{
 Write-Verbose "Loading the Exchange 2010 snapin"
 try
 {
 Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010 -ErrorAction STOP
 }
 catch
 {
 #Snapin not loaded
 Write-Warning $_.Exception.Message
 EXIT
 }
 . $env:ExchangeInstallPath\bin\RemoteExchange.ps1
 Connect-ExchangeServer -auto -AllowClobber
}


#SendEmailFunction
Function sendEmail
{ param($smtphost,$htmlFileName)
$smtp= New-Object System.Net.Mail.SmtpClient $smtphost
$msg = New-Object System.Net.Mail.MailMessage $ReportSender, $ReportRecipient, $MailSubject, (Get-Content $htmlFileName)
$msg.isBodyhtml = $true
$smtp.send($msg)
}

$exdata = Get-ChildItem -Force $folderPath\* -ErrorAction SilentlyContinue | Where-Object { ($_.PSIsContainer -eq $true) -and ( $_.Name -like "*$folderName*") } | Select-Object FullName,lastwritetime,CreationTime 

$fileName = "ViewPersonaReport.html"
New-Item -ItemType file $fileName -Force

# HTML start
Add-Content $fileName "<html>"

# HEAD start
Add-Content $fileName "<head>"

add-content $fileName '<STYLE TYPE="text/css">'
add-content $fileName "<!--"
add-content $fileName "td {"
add-content $fileName "font-family: Tahoma;"
add-content $fileName "font-size: 11px;"
add-content $fileName "border-top: 1px solid #999999;"
add-content $fileName "border-right: 1px solid #999999;"
add-content $fileName "border-bottom: 1px solid #999999;"
add-content $fileName "border-left: 1px solid #999999;"
add-content $fileName "padding-top: 0px;"
add-content $fileName "padding-right: 0px;"
add-content $fileName "padding-bottom: 0px;"
add-content $fileName "padding-left: 0px;"
add-content $fileName "}"
add-content $fileName "body {"
add-content $fileName "margin-left: 5px;"
add-content $fileName "margin-top: 5px;"
add-content $fileName "margin-right: 0px;"
add-content $fileName "margin-bottom: 10px;"
add-content $fileName ""
add-content $fileName "table {"
add-content $fileName "border: thin solid #000000;"
add-content $fileName "}"
add-content $fileName "-->"
add-content $fileName "</style>"

# HEAD end
Add-Content $fileName "</head>"

# HEAD start
Add-Content $fileName "<body>"

# TABLE start
Add-Content $fileName "<table width='100%'>"

# TABLE Header
Add-Content $fileName "<tr bgcolor='#7C7C7C'>"
Add-Content $fileName "<td width='80%'>FullName</td>"
Add-Content $fileName "<td width='10%'>lastwritetime</td>"
Add-Content $fileName "<td width='10%'>CreationTime</td>"
Add-Content $fileName "</tr>"

$alternateTableRowBackground = 0

# TABLE Content
while($alternateTableRowBackground -le $exdata.length)
{
if(($alternateTableRowBackground % 2) -eq 0)
{
Add-Content $fileName "<tr bgcolor='#CCCCCC'>"
}
else
{
Add-Content $fileName "<tr bgcolor='#FCFCFC'>"
} 

#FullName Old Folder Red
if($exdata[$alternateTableRowBackground].CreationTime -lt (get-date).ToShortDateString())
{
Add-Content $fileName ("<td bgcolor='#FF0000' width='80%'>" + $exdata[$alternateTableRowBackground].FullName + "</td>")
#remove-item $exdata[$alternateTableRowBackground].FullName -Confirm:$false -ErrorAction SilentlyContinue -Force -Recurse
}

#LastwriteTime Old Folder Red
if($exdata[$alternateTableRowBackground].CreationTime -lt (get-date).ToShortDateString())
{
Add-Content $fileName ("<td bgcolor='#FF0000' width='10%'>" + $exdata[$alternateTableRowBackground].lastwritetime + "</td>")
}

#Creation Time Comparison Old Folder Red
if($exdata[$alternateTableRowBackground].CreationTime -lt (get-date).ToShortDateString())
{
Add-Content $fileName ("<td bgcolor='#FF0000' width='10%'>" + $exdata[$alternateTableRowBackground].CreationTime + "</td>")
}

Add-Content $fileName "</tr>"

$alternateTableRowBackground = $alternateTableRowBackground + 1
}

#TABLE end
Add-Content $fileName "</table>"

# HEAD end
Add-Content $fileName "</body>"

# HTML end
Add-Content $fileName "</html>"

sendEmail $MailServer $fileName

Thank you to Jon Hildebrand @snoopj123 and David Daniels @putinexim for pointing me in the right direction and not giving me the answers in my powershell questions.

Edited#

I decided to change the version on this a bit. I decided to add the function to only send the HTML report when there was a folder older than a day. I added a If statement with the sendemail function.

I also removed the load the exchange snapin.

I did learn something while doing this. Never underestimate the power of RoboCopy. It took me a day to test this as I created the files to test with and waited for the next day to test, and when I came in the next morning I had one of those eye opening events and remembered about RoboCopy it will copy folder creation dates. I ran RoboCopy to copy some other folders to make sure I had plenty of data to test on.

Lesson: Never Underestimate the Power of RoboCopy!

<#
.SYNOPSIS
 

.DESCRIPTION
 The purpose of this script is to find old AppData LOC folders in the root user directory and optional delete the folders for you. This will create a report of all the folders matching the search 
 older than Today's date. And if you enable the delete function it will delete the folders also. And the report would be the delete log. 

 Author:Chris Hildebrandt @childebrandt42
 Last Modified: 11/5/2015

.Version
 1.5
#>

#----------------------------------------------------------------------------------------------------------------------------------------------------
#Variables to configure

$MailServer = "Email Server IP address or DNS "
$ReportSender = "Who you want the email to be sent from"
$ReportRecipient = "who you want the email to go to. Comma separated no spaces (Ex test@email.com,test2@email.com"

#Change the mail subject if you like
$MailSubject = ("VMware duplicate AppData LOC Folder Report - " + (get-date).ToString('yyyy/MM/dd'))

#Folder path is the path of your Horizon View Persona Profile Repository
$folderPath = "C:\Test\*" 
#Search info. Don't change this option. This will search for the folders names like {08C31585-259A-4341-9982-78E42EAF6106} in the User root folder.
$folderName = "{*}"

#There is one more variable to change if you like. On line 134 there is a Remove-Item command that is commented out. 
#This will remove all the Duplicate AppData LOC folders that are are not current. 
#----------------------------------------------------------------------------------------------------------------------------------------------------

#SendEmailFunction
Function sendEmail
{ param($smtphost,$htmlFileName)
$smtp= New-Object System.Net.Mail.SmtpClient $smtphost
$msg = New-Object System.Net.Mail.MailMessage $ReportSender, $ReportRecipient, $MailSubject, (Get-Content $htmlFileName)
$msg.isBodyhtml = $true
$smtp.send($msg)
}

$exdata = Get-ChildItem -Force $folderPath\* -ErrorAction SilentlyContinue | Where-Object { ($_.PSIsContainer -eq $true) -and ( $_.Name -like "*$folderName*") } | Select-Object FullName,lastwritetime,CreationTime 

$fileName = "ViewPersonaReport.html"
New-Item -ItemType file $fileName -Force

# HTML start
Add-Content $fileName "<html>"

# HEAD start
Add-Content $fileName "<head>"

add-content $fileName '<STYLE TYPE="text/css">'
add-content $fileName "<!--"
add-content $fileName "td {"
add-content $fileName "font-family: Tahoma;"
add-content $fileName "font-size: 11px;"
add-content $fileName "border-top: 1px solid #999999;"
add-content $fileName "border-right: 1px solid #999999;"
add-content $fileName "border-bottom: 1px solid #999999;"
add-content $fileName "border-left: 1px solid #999999;"
add-content $fileName "padding-top: 0px;"
add-content $fileName "padding-right: 0px;"
add-content $fileName "padding-bottom: 0px;"
add-content $fileName "padding-left: 0px;"
add-content $fileName "}"
add-content $fileName "body {"
add-content $fileName "margin-left: 5px;"
add-content $fileName "margin-top: 5px;"
add-content $fileName "margin-right: 0px;"
add-content $fileName "margin-bottom: 10px;"
add-content $fileName ""
add-content $fileName "table {"
add-content $fileName "border: thin solid #000000;"
add-content $fileName "}"
add-content $fileName "-->"
add-content $fileName "</style>"

# HEAD end
Add-Content $fileName "</head>"

# HEAD start
Add-Content $fileName "<body>"

# TABLE start
Add-Content $fileName "<table width='100%'>"

# TABLE Header
Add-Content $fileName "<tr bgcolor='#7C7C7C'>"
Add-Content $fileName "<td width='80%'>FullName</td>"
Add-Content $fileName "<td width='10%'>lastwritetime</td>"
Add-Content $fileName "<td width='10%'>CreationTime</td>"
Add-Content $fileName "</tr>"

$alternateTableRowBackground = 0

# TABLE Content
while($alternateTableRowBackground -le $exdata.length)
{
if(($alternateTableRowBackground % 2) -eq 0)
{
Add-Content $fileName "<tr bgcolor='#CCCCCC'>"
}
else
{
Add-Content $fileName "<tr bgcolor='#FCFCFC'>"
} 

#FullName Old Folder Red
if($exdata[$alternateTableRowBackground].CreationTime -lt (get-date).ToShortDateString())
{
Add-Content $fileName ("<td bgcolor='#FF0000' width='80%'>" + $exdata[$alternateTableRowBackground].FullName + "</td>")
#remove-item $exdata[$alternateTableRowBackground].FullName -Confirm:$false -ErrorAction SilentlyContinue -Force -Recurse
}

#LastwriteTime Old Folder Red
if($exdata[$alternateTableRowBackground].CreationTime -lt (get-date).ToShortDateString())
{
Add-Content $fileName ("<td bgcolor='#FF0000' width='10%'>" + $exdata[$alternateTableRowBackground].lastwritetime + "</td>")
}

#Creation Time Comparison Old Folder Red
if($exdata[$alternateTableRowBackground].CreationTime -lt (get-date).ToShortDateString())
{
Add-Content $fileName ("<td bgcolor='#FF0000' width='10%'>" + $exdata[$alternateTableRowBackground].CreationTime + "</td>")
}

Add-Content $fileName "</tr>"

$alternateTableRowBackground = $alternateTableRowBackground + 1
}

#TABLE end
Add-Content $fileName "</table>"

# HEAD end
Add-Content $fileName "</body>"

# HTML end
Add-Content $fileName "</html>"

#Only Send email if there is a folder older than today
if($exdata[$alternateTableRowBackground].CreationTime -lt (get-date).ToShortDateString())
{
sendEmail $MailServer $fileName
}
Posted in CLI and Powershell, Virtulization | Tagged , ,

Boxer to join VMware Airwatch product line!

VMware announces its plans to acquire Boxer and bring it into the Airwatch product. Boxer is a company that delivers enterprise grade features with consumer grade design. This is a great announcement. The Airwatch product was amazing before, but this adds a secure mail, calendar, and into the suite. I have not used Boxer but anything has to be better than Good.

And for any of you that have watched the Boxer promo YouTube video. I hope the Avatar’s don’t read all of your emails at once. And for sure we dont want them reading the Viagra adds on speaker. 

I guess we will see what amazing things that are brought to the table in 2016.

Official Announcement

https://blogs.vmware.com/euc/2015/10/vmworld-europe-2015.html

Posted in Random Crap | Tagged ,