northben's blog

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!

Site transfer and running Drupal on NearlyFreeSpeech.NET

I just transferred this site ( to www.nearlyfreespeech.NET webhosting!

I ran into a lot of trouble with PHP Safe_mode restrictions. I tried everything I could find on the web to no avail. So I caved in and set the site mode to PHP Flex, which does away with Safe_mode, and everything is fine now. It sounds like the site is less secure, but I don't know what else to do. And I found in the official PHP docs, Safe_mode has been depreciated and should not be relied on anymore. So maybe it doesn't really matter.

PowerShell script to find status of service on a remote computer


Here's a quick one-liner to retreive the status of a Windows service on a remote computer using Powershell. You don't need PowerShell remoting for this to work because it uses WMI.

This example uses the SNMP service, so just replace that text with the particular service you're looking for. Also replace remotecomputer with the name of the computer you are querying. If you remove '-computername remotecomputer' you will query your local computer.

How to Exclude Yourself from Emails you send to a Distribution List in Outlook

If you send a lot of emails to distribution lists that you also belong to, it can be annoying and unproductive to move those same emails from your inbox. However, with the Rules feature in Outlook, it is easy to have your computer do this for you.

Here's how:


Subscribe to RSS - northben's blog