Friday, February 22, 2013

Determine System Boot Time

Here is a simple command to determine the system boot time:
systeminfo | find "System Boot Time"

Credit to http://www.powercram.com/2010/01/find-last-reboot-time-in-windows-7.html

Powershell - Query AD for Servers

The following Script stub will query AD for all active Windows 2008 Servers (can be tweaked) and create a collection of those servers.

# ######################################################################
# - Section for gathering Windows Server Information ...
# -- Define Global Variables --
  $strCategory = "computer"
  $strOS = "*2008*"
 
  # -- Get AD information --
  $objDomain = New-Object System.DirectoryServices.DirectoryEntry
 
  $objSearcher = New-Object System.DirectoryServices.DirectorySearcher
  $objSearcher.SearchRoot = $objDomain
  $objSearcher.Filter = "(&(objectCategory=$strCategory)(operatingSystem=$strOS)(name=*)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))"
 
  # - define Attributes to find -
  $colProplist = "name"
  foreach ($i in $colPropList){$return=$objSearcher.PropertiesToLoad.Add($i)}
 
  # - Find all Computers that fit the Search profile
  $colResults = $objSearcher.FindAll()
 
  # -- Format the Output --
  # convert Collection into an array
  $servers = @()
  foreach ($objResult in $colResults)
  {
    $servers = $servers + $objResult.Properties.item("name") 
  }
  # Sort Server Names
  $servers = $servers | sort-object

Wednesday, February 20, 2013

Powershell - Tip of the Day

Here is a great site to browse for tips and to subscribe to their Tip-of-the-Day.

http://powershell.com/cs/blogs/tips/

Friday, May 27, 2011

Powershell Arrays

1) How do I create a dynamic array
$a = @()

2) How do I append an element to array
$a += "a"
$a += "b"

3) how do I do a UBOUND on an array
.NET array indexes are zero-based, so ubound is length-1:
$a.length - 1

Monday, May 23, 2011

Powershell - Using IE

Have successfully using Powershell to access IE. Trick to be aware of.
If you launch a web page using "New-Object -comObject InternetExplorer.Application", UAC will block you from accessing the document properties inside. Use the following technique:

  & "$env:programfiles\Internet   Explorer\iexplore.exe" 'http://powershell.com'
  $win = New-Object -comObject Shell.Application
  $try = 0
  $ie2 = $null
  do {
    Start-Sleep -milliseconds 500
    $ie2 = @($win.windows() ? { $_.locationName -like '*PowerShell*' })[0]
    $try ++
    if ($try -gt 20) {
      Throw "Web Page cannot be opened."
    }
  } while ($ie2 -eq $null)
  $ie2.document
  $ie2.Document.body.innerHTML

Monday, April 18, 2011

Dunning-Kruger effect

An interesting read. "The unskilled suffer from illusory superiority, rating their ability as above average, much higher than it actually is, while the highly skilled underrate their own abilities, suffering from illusory inferiority."

http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect

Another homorous way of saying this is that if you are an optimist, then you don't have all of the information.