northben's blog

How to snap windows horizontally in Windows 7


You may know the convenient feature in Windows 7 to snap windows to the right and left: drag a window all the way to one side of your screen and it will snap to the side of your screen, taking up exactly one half of it. The keyboard shortcut Win+Left (right) arrow does this as well. But how do you snap windows to the top and bottom of your screen? It's easy!

Enable Drupal's Clean URLs feature on Network Solutions hosting


If you are running a Drupal site with Network Solutions hosting, please accept my condolences. And the lack of shell access? The pain of your loss is almost unbearable.

However, thanks to jomariworks on the Network Solutions forums, at least you can enable Clean URLs!

Converting FLAC files on Windows, or, "How I use ffmpeg to rule the world"


I had some FLAC audio files on my computer that I wanted to convert to a lossy format (AAC, in my case). iTunes won't play FLAC, and VLC wasn't helping me. I ended up calling FFmpeg in a PowerShell script to quickly convert all of the files.

$target = 'J:\FLAC'
$target = $target + "\*.flac"
$files = Get-ChildItem $target

foreach ($file in $files) {
    .\ffmpeg.exe -i $file -acodec libvo_aacenc -b:a 256k -ar 44100 -threads 4 -n $($file.BaseName + ".m4a")

How to retrieve file modification time through WMI and PowerShell


I needed to get a file modification timestamp through WMI (for an irrelevant reason, I couldn't use the UNC path and PowerShell's get-childitem cmdlet). So, WMI it had to be...

$file = gwmi -computername remoteComputer -query "select * from cim_datafile where name = 'C:\\file.txt' "
$age = (get-date) - $file.convertToDateTime($file.LastModified)
return $age.seconds

Pretty quick and painless!

Note: you could get (m)any other file attributes by slightly altering these lines. Remember: the get-member cmdlet is your friend!

PowerShell Parameters


If you're writing a script that takes parameters with the "param" statement/feature, don't declare any variables before param. It will throw some weird errors! You can put variables in the Begin scriptblock instead.

How to copy group membership between Active Directory users


Let's say you need to add a new user to all the Active Directory groups of an existing user. It would be painstaking and error-prone to compare group memberships in the AD Users & Computers snap-in. But don't despair: There is an easier way!

First, install the free ActiveRoles Management Shell module for PowerShell from Quest if you don't already have it. Trust me, you'll wonder how you managed Active Directory without it!

Second, run a command like this in PowerShell:

Remove empty lines from a file with PowerShell


Here's a quick way to remove blank lines from a file using PowerShell. This will also remove lines that only have spaces.

(gc file.txt) | ? {$_.trim() -ne "" } | set-content file.txt

Error when running gpupdate "Windows could not evaluate the Windows Management Instrumentation for the Group Policy object"

When working with group policies, if you get this error, make sure that you are not setting up Security Filtering for let's say, "Authenticated Users" (which is the default for a new GPO) when you're trying to set computer-level group policy settings.

C:\Users\administrator>gpupdate /force
Updating Policy...

User Policy update has completed successfully.
Computer policy could not be updated successfully. The following errors were encountered:

PowerShell Get-WmiObject with a variable in filter


Let's say you want to use PowerShell's Get-WmiObject commandlet to retrieve a list of files older than a certain amount of time. Here's one way to do it.

How to disable the Windows Firewall on Server 2008


If you're wondering "Should I turn off the Windows Firewall service to disable the Windows Firewall?" The answer is NO!


Subscribe to RSS - northben's blog