Monday, November 02, 2015

Google Drive iOS App Not Working

I ran into an issue this week where iOS devices weren't able to open the Google Drive application. The users were getting the error "Device Policy Alert: Looks like your device isn't updated with the latest security policy. Please try again later.", despite the "Google Apps Device Policy Payload" being installed.

Long story short, the resolution was that the Apple Push certificate for the Google Apps domain had expired. Updating that fixed the access issues. Instructions for doing that are available on Google's support site:

Thursday, September 03, 2015

Group Policy WMI Filter for Server Core vs GUI on Windows Server 2012 R2

Windows Server 2012 R2 makes it "easy" to transition between a core server and one with varying states of GUI. Unfortunately this makes it harder to apply GPOs to machines since the old SKU filters will no longer work (for example setting PowerShell as the default shell on core servers). Luckily you can query the installed features on the machine directly to check what type of server it currently is: 

Server Core

Select * from Win32_OptionalFeature WHERE Name = "Server-Gui-Shell" AND InstallState = 2

Some to full GUI

Select * from Win32_OptionalFeature WHERE Name = "Server-Gui-Shell" AND InstallState = 1

Thursday, July 23, 2015

HP USB Key Utility for Windows 2.0.0.0 Download Link

Searching forever on HP's site, I couldn't find a link to the latest 2.0.0.0 version of their HP USB Key Utility for Windows. The updated utility is 64 bit and is needed for the latest HP Service Pack for ProLiant as the size has creeped up larger than a single layer DVD. The product page exists but doesn't have a download button:
https://h20566.www2.hp.com/hpsc/swd/public/detail?swItemId=MTX_745bddb33d674536b0ec23d829#tab-history

Going through their FTP site I was able to find a download link:
ftp://ftp.hp.com/pub/softlib2/software1/sc-windows/p1576607567/v102163/cp024879.exe


Friday, October 17, 2014

Fixing Blank Calendar with Chrome 38 and Outlook Web App (OWA) on Exchange 2013

So there's an issue with Chrome 38 and higher and Exchange 2013 Outlook Web App (OWA): the calendar will fail to load any data effectively showing up blank for users. You'll also see the error in the client headers as "ClientError;exMsg=Uncaught SyntaxError: Unexpected token );file=https://mail.corp.com/owa/15.0.995.29/owa2/scripts/boot.0.mouse.js:11". This is not the  modalDialog issue that's causing issues with OWA 2010, it's an issue with Chrome's V8 javascript engine their array object definition.

The fix is pretty simple to implement. On one of your mailbox servers copy the contents of: C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\Owa\prem\15.0.995.29\scripts\ to a directory on your workstation (may want to make a backup copy on the server just in case). There's no need to copy any subdirectories, only the root js files. Also note that you may have a different version number in there: 15.0.995.29 is Update 6.

Using Notepad++, find and replace in all files in the directory on your local machine: replace '"values"in n' with 'n.hasOwnProperty("values")' (without the surounding 's). On 15.0.995.29 this was 42 replacements:


Copy the updated files back to all of your Exchange Mailbox servers (if you segregate your CAS and MB hosts, you only need to update on the MB hosts as they do the actual site rendering). Also after you update the files there's no need to cycle the AppPool, clients just need to logout and log back into OWA (if you have a NetScaler or similar load balancer in between doing any form of caching you may need to refresh that).

You can actually see Microsoft's implemented the same fix for this in the Office 365 release chain; they added the fix between 16.0.411.0 and 16.0.411.1:
https://r1.res.office365.com/owa/prem/16.0.411.0/scripts/boot.0.mouse.js
https://r1.res.office365.com/owa/prem/16.0.411.1/scripts/boot.0.mouse.js


Credit to finding the root issue goes to adamk@chromium.org, the Chrome issue is here:
https://code.google.com/p/chromium/issues/detail?id=409858

Update for Chrome looks like it's coming down the pipeline soon, should also be in the Exchange 2013 Update 7 in late November.

Wednesday, February 22, 2012

"The file name you specified is not valid or too long" with SharePoint 2010 Mapped Drives

Ran into an issue today with using mapped drives in Windows 7 and a SharePoint 2010 Document Library. Making new files worked just fine, but when trying to move files between folders I was getting the error: "The file name you specified is not valid or too long".

Long story short, it turns out the WebDAV support in Windows 7 doesn't seem to like certain characters in paths, specifically space in this case (although I assume there are others). In this case it didn't like that the Document Library was at:
http://sharepoint/docs/Documents%20And%20Things

This is with WebClnt.dll 6.1.7601.21728, which is the most recent I could track down.

The work around is to rename the document library. Since you can't do this directly from the SharePoint web interface, I had to do it using SharePoint Workspaces. Once the library was renamed, it's working properly now.

Wednesday, August 10, 2011

Eject for Mac OSX (or OS X)

Tired of getting the "Device Removal" dialog box in OSX every time you pull out your USB flash drive or iPod?
I present "Eject" a two tap utility for OS X that will display a dialog of all of your mounted disks. Select one, click "Choose", and Finder will eject it.



And the Automater Workflow if you want to tweak it:
http://dl.dropbox.com/u/5396315/Eject/Eject_Workflow.zip

Monday, June 28, 2010

Note on Deploying Adobe CS5

Found this tidbit in the Adobe Enterprise Deployment guide. At least they're upfront about not being user or administrator friendly:
The CS5 applications do not implement application preferences in a consistent manner across applications, nor do the implementations conform to existing platform standards.

Thursday, June 10, 2010

Set Printer Share Comment to the Port Name With IP Address

So as an update to an earlier post on adding the port name to the comments of a print queue on a Server 2003/2008/2008 R2 box, below is an update script that will add both the port name and the IP address or DNS host name associated with a given port.


$printersWMI = Get-WMIObject -Class "Win32_Printer" -NameSpace "root\cimv2" -computername "."
$portsWMI = Get-WMIObject -Class "Win32_TCPIPPrinterPort" -NameSpace "root\cimv2" -computername "."
$ports = @{}
ForEach($port in $portsWMI){
$ports[$port.name] = $port.HostAddress
}

ForEach($printer in $printersWMI){
$printer.Comment = $printer.PortName + "`r`n" + $ports[$printer.PortName]
$printer.Put()
}



Tuesday, November 03, 2009

Excluding My Music from Roaming Profile

By popular demand, we recently rolled out iTunes to our users. An unexpected consequence of this was that our windows roaming user profile demands skyrocketed. We're talking over doubling basically over night. Our solution to it was to exclude the My Music folder from the roaming user profile. In general its probably best we don't have user's music collections sitting on expensive enterprise storage. To do this, create a new Group Policy. Drill down to Administrative Templates\System\User Profiles. Enable "Exclude directories in roaming profiles" and set the value to "My Documents\My Music". If there are other folders you'd like to exclude you can add them with a semicolon, eg "My Documents\My Music;Temp".

The good news is that once this policy is enabled, the next time that the user logs off, the user profile will sync without any of the Excluded directories. Even better is that it will remove existing "My Music" folder on the server copy of the roaming profile. Turn on Performance Monitor, setup some counters, and watch the drive space roll in.

Friday, April 10, 2009

Exchange Cluster Continuous Replication Failed

We had an Exchange 2007 Mailbox server's storage drive fill up due to log files not being cleaned out due to the backup job failing (don't ask). After we deleted the unnecessary log files and got the store back online, we weren't able to get its CCR passive node to bring 3 of the 5 stores online. We ran "Update-StorageGroupCopy -DeleteExistingFiles", and the process would complete. I would then show up as "healthy" with a "Get-StorageGroupCopyStatus" for a minute or so, and then fail. Checking the event log we got:
Event ID: 2059
Source: MSExchangeRepl
The log file 404149 for is missing on the production copy. Continuous replication for this storage group is blocked. If you removed the log file, please replace it. If the log is lost, the passive copy will need to be reseeded using the Update-StorageGroupCopy cmdlet in the Exchange Management Shell.
It wouldn't make sense straight away, as the database on the active node was "up to date" and shouldn't need those log files. After some research, I found that this was a result of the failed backup process. When we deleted the log files on the active node, we'd broken the replay log process (as we'd deleted log files that were created after the last time the database was backed up).

Given that we're using a backup solution that backs up the databases from the passive node, I had to use NTBackup Utility to do a normal backup on the database. Once this completed I was able to use the Update-StorageGroupCopy command to get the database replication back to a healthy state. In theory this process should work on a Standby Continuous Replication
SCR cluster as well.

Monday, April 06, 2009

Set Printer Share Comment to the Port Name

We use an asset tag naming system to target all of our printer ports to the physical printers. The queue names are abstracted from the actual printer it's self. All of the printers have a DNS name that is their asset tag plus the SCCM site code of the location that they're currently located in. The only problem with this is that it creates a bunch of extra clicking to determine what printer a queue is actually pointed to (okay, so its like 4 extra clicks to get the port name, but its still tedious). The work around we came up with is to set the comment tag on the printer to the port name of the printer. To do that we use the following bit of PowerShell code that runs on an hourly basis on the server. It was tested on Windows Server 2008, but should work just fine on Server 2003:

$printers = Get-WMIObject -Class "Win32_Printer" -NameSpace "root\cimv2" -computername "."
ForEach($printer in $printers){
$printer.Comment = $printer.PortName
$printer.Put()
}

Wednesday, March 25, 2009

Mounting CD and DVD in SuSE in Hyper-V with the Linux Integration Components Installed

SuSE Enterprise 10 SP2 works great on Hyper V, the performance (especially once you get the VMBus drivers installed) is near-iron, and the integration between SuSE and AD is great. It's the perfect setup for running a few Linux servers in a mostly Windows shop.

The only problem that I had getting the CD/DVD drive to mount. Once you get the VMBus drivers working properly, when you boot with the XEN kernal the CD Rom drive will show up as a Hard Disk to Linux. This will prevent SUSE from automatically mounting the CD/DVD drive when you swap out the discs (or upon boot). The solution is to mount the CD/DVD rom manually; to do that, do the following:
  1. Open up Terminal
  2. Make a directory as a mount point for the drive ( "mkdir /media/cdrom0" )
  3. Mount the drive by typing in: "mount -t iso9660 /dev/hdc /media/cdrom0"
This is assuming that the DVD drive for the Virtual Host is on IDE Controller 1 location 0. If it is on another channel, you'll have to change the /dev/hdc line of the mount command to the correct value:
  • IDE Controller 0, Location 0: /dev/hda
  • IDE Controller 0, Location 1: /dev/hdb
  • IDE Controller 1, Location 0: /dev/hdc
  • IDE Controller 1, Location 1: /dev/hdc

Update: Found one more issue. When using YaST2 to configure the network interface, make sure that you use the "Traditional Method with ifup" and not "User Controlled with Network Manager". Otherwise it will continually fail to setup the network adapter without providing any relevant error messages.

Monday, March 09, 2009

HP Proliant Support Pack on Server 2008: Server Core

We had some problems early on with the initial version of HP's PSP on our HP DL380 G5s and Server Core. The problems seem to have been resolved in the latest (8.15) version of the PSP. To install it, simply extract the PSP to a directory and run the setup.exe from the command line in Server Core. You'll get the standard HP GUI to guide you through the installation (or you can use setupc.exe for the commandline driven installation). The only "note" is that you'll have to install the SNMP service before hand by using the command "start /w ocsetup SNMP-SC".

Monday, July 28, 2008

HyperV and Failover Clustering Qwerk

Setting up a HyperV failover cluster on Server 2008 Datacenter edition, we kept having an issue with VM's configuration object getting stuck in "Offline Pending" when moving the virtual machine between servers. Additionally, we were getting an error when trying to add additional Virtual Machines to the cluster:
"An error was encountered while loading the list of available virtual machines. The value cannot be null Parameter name ManagementObject" . With an EventID # 1183 error as well.
After banging my head over this issue, it turns out its rather simple. The Failover Cluster Management MMC doesn't automatically add the drive that the Virtual Machine Configuration is stored on as a dependency to the Virtual Machine Configuration object. It's strange because it does add it to the Virtual Machine object its self. The result is that the cluster service can offline the disk that the configuration is stored on before it's done writing to the configuration file, causing the problems.

The solution, of course, is to add the virtual disk as a dependency of the Virtual Machine Configuration:
Update:
If you've already deleted the VM Configuration, you can add it back by right clicking on the Virtual Machine Group in the Failover Cluster Management MMC, choosing Add Resource -> More Resources -> Add Virtual Machine Configuration. Alternatively you could reload VM on one of the cluster nodes and then go through the process to make it highly available again.

Update x2:
Microsoft has fixed the root problem in the Hyper-V Failover Cluster Management Hotfix; more info here:
http://hypervoria.com/hyper-v/hyper-v-failover-cluster-hotfix-now-public.aspx

Thursday, July 24, 2008

SCCM 2007 & KB948109

We've got a single System Center Configuration Manager 2007 server running all of our SCCM roles, as well as running MS SQL 2005 Express Edition SP2. When we installed the latest MSSQL update, KB948109 , we found that it completely hosed the security on the SQL instance. It appears that this is a rather widespread problem, in generally it looks like this update is wroght with issues. Luckily, running SCCM's Repair Site wizard on the server followed by a reboot cleaned up the mess. The more you know.

Thursday, April 17, 2008

Excel 2007, Vista, and Synergy

I've found a problem with the awesome, cross platform, multi-monitor program Synergy. When using it with Windows Vista (which, technically isn't supported but seems to work reasonably well), you can't disable the Scroll Lock key in Excel. If you pull up the Virtual Keyboard from the Ease of Access tools, you can see scroll lock turning on and off, but Excel 2007 doesn't seem to care. The solution is to: turn off Synergy, hit Scroll Lock, turn Synergy back on. The developer has expressed that he is working on the project again, so hopefully we'll see the filter driver fixed in Synergy 2.0.

Tuesday, March 04, 2008

Active@Boot Disk and Active@Undelete

So it turns out, the instructions I posted last year for getting Active@Undelete on a Windows Deployment Services system work just as well for getting the Active@Boot Disk on there as well. The only difference is that you have to use the Active@Boot Disk Creator first to generate the ISO image so that it will include your serial number and registration info.

Sunday, November 25, 2007

Exchange Backups

Awesome. We're about half way through moving from our janky Exchange 2003 servers to our Exchange 2007 Ultra Clusters... and the Exchange 2003 server decides to take a digger last night. Not just a digger (lost three! less then a year old SCSI3 disks in a 0+1 array in a matter of 2 days), but we don't have current backups... Using Active@Undelete to try and recover some data. It's a blast and a half. At least we've got affect people backup with a dial-tone mailbox on our hot spare 2003 box.

Moral of the story: nightly incremental backups are your friend.

Wednesday, April 11, 2007

Active@Boot Disk on Windows Deployment Services

We use a toolset from Active@ called UNDELETE. It's a nifty little program for recovering files off of hard disks that have been wiped, have a broken partition, etc.

One of the nicest features is the ability to use the program from a Windows PE 2.0 ISO to boot a machine and recover files. While this is nice, network booting it is a a much nicer solution that doesn't require you to have a CD on you at all times. After some tinkering, I've gotten it to sucessfully PXE.

What you need: Windows Server 2003 SP2 Windows Deployment Services server and the BootDiskEnt.ISO from the Active@ Boot Disk.

Process:
  1. Mount the BootDiskEnt.ISO using your favorite ISO mounting utility.
  2. Navigate to "X:\Sources\" (where X is the drive letter where you mounted the ISO
  3. Copy the Boot.WIM file over the the deployment server.
  4. On the deployment server, open up Windows Deployment Services MMC
  5. Expand the tree to : Windows Deployment Services -> Servers -> Server Name -> Boot Images.
  6. Right click and select "Add Boot Image".
  7. In the wizard, click Browse and select the Boot.WIM file. Click Next until you complete the wizard.
  8. It will take a few minutes to load, once it does you should see "Active@Boot Disk" listed as a boot image.
  9. To use it, simply boot the system from the WDS server over PXE and select "Active@ Boot Disk" from the list of available boot images. It will boot just as if you had loaded it off of CD.

Monday, November 27, 2006

Powershell RTM is Hot.

I'll post more PowerShell scripts in the future, but the basic idea here is that PowerShell is awsome. Makes AD and Exchange managment cake. Can't wait to see what SMS 4.0 does with it. As an added bonus, you can now lord your Object Orientated Shell over the heads of those pesy 'Linux' people and their 'Bash'.

RTM is out here:
http://www.microsoft.com/technet/scriptcenter/topics/msh/download.mspx