SCOM Service Level Dashboard


An article I wrote entitled “The SCOM Service Level Dashboard” was published in the June 2010 issue of Windows IT Pro. Quite exciting for little ‘ol me!

Windows IT Pro: The SCOM Service Level Dashboard

Posted in Software | Leave a comment

Interacting with the Windows Internal Database

Recently I was working on a client’s system which runs Windows Small Business Server 2008 which, as you probably know, uses the Windows Internal Database Engine for the versions of SharePoint and WSUS (among a few other things) that are bundled with it.

Because the Windows Internal Database Engine that ships with SBS doesn’t offer any management tools, I was kind of stuck when I needed to change the recovery on a runaway SharePoint Config database.

After doing a little bit of research I came across across an article over MySQLTips.com (http://www.mssqltips.com/tip.asp?tip=1577) that got me going in the right direction.

In order to interact with the Windows Internal Database Engine, you must first download and install the SQL Management Studio Express (http://www.microsoft.com/downloads/details.aspx?FamilyID=08e52ac2-1d62-45f6-9a4a-4b76a8564a2b&displaylang=en).

Once that is complete, you can access the Windows Internal Database by connecting to the following (in the “server” field at the connection screen):

\\.\pipe\MSSQL$MICROSOFT##SSEE\sql\query

Once connected however, you may find that when trying to get to the properties of a database you are greeted with an error that says that the operation failed because the database has no owner.

Instead of messing around with the security settings of the database you can simply use standard SQL Query language in order to make the modifications you need. In my situation I just used the following to change the database recovery method:

ALTER DATABASE [DB_Name] SET RECOVERY SIMPLE
GO

Hopefully Microsoft will include more robust DB management tools out of the box in future releases of SBS.

Posted in Software | Tagged , , | Leave a comment

DPM 2007 and the Windows Firewall

DPM2007_Logo

The following ports need to be opened to allow for successful installation and communication with the DPM 2007 agents.

TCP: 5718, 5719, 135, 88, 139, 389
UDP: 53, 88, 137, 138, 389

Posted in Software | Leave a comment

Protecting Local Data on a DPM 2007 Server

DPM2007_Logo

Recently I was attempting to use Data Protection Manager 2007 to create a protection group that included volumes directly attached to the DPM server. I was slightly dismayed to see that I couldn’t install the protection agent on the machine or select anything other than the DPM configuration database in the New Protection Group wizard.

The answer, in my case, was to enable local data protection on the DPM server by executing the following command in the Data Protection Manager Console:

1
Set-DPMGlobalProperty -DPMServerName ServerName.Domain.Local -AllowLocalDataProtection $true
Posted in Software | Leave a comment

Windows 7 RTM Installation Driver Issue

Windows 7 Logo

If you (or your organization) is lucky enough to get ahold of the Windows 7 RTM, you may encounter an issue that has been popping up for a small number of people.

After booting from the DVD (or USB Drive) that contains the Windows 7 installation files, and clicking Install, you will be greeted by an error message that says:

A Required CD/DVD Driver is Missing

I pounded my head against the wall for a while on this one. In my case it turned out to be a corrupt ISO file that was causing the issue, but here are some ideas for you to try before you throw your computer out a window.

(1) Download the Windows 7 ISO Verifier tool (http://www.istartedsomething.com/20090706/windows-7-iso-verifier/). It will check your ISO file, compare it to known good hashes and tell you if the image is good. Do this first!

(2) Unplug all unnecessary devices from your PC and attempt to install again.

(3) If you have a mixture of SATA and PATA devices, try to remove and / or replace the PATA devices and try to install again.

(4) Transfer the Windows 7 setup to a thumb drive (http://www.intowindows.com/how-to-install-windows-7vista-from-usb-drive-detailed-100-working-guide/), disconnect the CD / DVD-ROM and try to boot setup from that.

If that doesn’t work then post in the comments section and I will try to help you out.

Posted in Software | Tagged , , , , , | Leave a comment

Microsoft Office 2010 Technical Preview

Office_2010_About

I don’t remember where / when I applied, but last night I received an invitation to join the Microsoft Office 2010 Technical Preview!

I will post additional information about the software as I use it and learn more about its capabilities.

Posted in Software | Leave a comment

Sliders is now on Hulu!

Three seasons of Sliders is now up on Hulu. A pretty cool show if you ask me.

http://www.hulu.com/search?page=1&query=Sliders&showname=sliders&sort_by=air_date

Posted in Entertainment | Tagged , , | Leave a comment

Information Gathering via PowerShell Script Pt. 2

Here is another script that I created while trying to hone my PowerShell skills. It prompts you for the FQDN of the computer that you want to gather information on, asks you whether you want to see the output on the screen or dump it into a text file, and then runs a bunch of WMI queries to get a good general overview of the machine in question.

# Function Definition: fnCompInfoGatherExecute
Function fnCompInfoGatherExecute
{
	# Prompt for FQDN of Computer to be Queried
	"Enter the FQDN of the computer you wish to query."
	$CompName = Read-Host " "
 
    # Prompt for Output Method
	" "
	"How would you like the output to be handled?"
	$MenuTopLevel = 
'
[1] Display on Screen
[2] Output to File
[3] Exit 
 
Choice'
 
	# Define Logic for Top Level Menu
	switch (Read-Host $MenuTopLevel)
	{
		1 {
			# Define WMI Information to be Retrieved
			Get-WmiObject Win32_BIOS -ComputerName "$CompName"
			Get-WmiObject Win32_ComputerSystem -ComputerName "$CompName"
			Get-WmiObject Win32_DiskDrive -ComputerName "$CompName"
			Get-WmiObject Win32_DiskPartition -ComputerName "$CompName"
			Get-WmiObject Win32_NetworkAdapterConfiguration -ComputerName "$CompName"
			Get-WmiObject Win32_Processor -ComputerName "$CompName"
		  }
		2 {
			# Prompt for Output Path
			" "
			"Enter the path to the output file (i.e. C:\Output.txt)."
			$OutputPath = Read-Host " "
 
			# Define WMI Information to be Retrieved
			Get-WmiObject Win32_BIOS -ComputerName "$CompName" >> "$OutputPath"
			Get-WmiObject Win32_ComputerSystem -ComputerName "$CompName" >> "$OutputPath"
			Get-WmiObject Win32_DiskDrive -ComputerName "$CompName" >> "$OutputPath"
			Get-WmiObject Win32_DiskPartition -ComputerName "$CompName" >> "$OutputPath"
			Get-WmiObject Win32_NetworkAdapterConfiguration -ComputerName "$CompName" >> "$OutputPath"
			Get-WmiObject Win32_Processor -ComputerName "$CompName" >> "$OutputPath"
 
			# Open Output File
			C:\Windows\notepad.exe "$OutputPath"
		  }
		3 {Exit}
		default {"You have chosen an invalid option"; fnPause; fnADSearchMenu}
	}
}
 
# Call fnCompInfoGatherExecute Function
fnCompInfoGatherExecute
Posted in Software | Tagged | Leave a comment

Information Gathering via PowerShell Script Pt. 1

Here is a simple PowerShell script I wrote to gather either computer, group, or user information depending on your choices. This could easily be done with much simpler scripts, but I wanted to use it as more of a learning process in order to better understand AD queries, variable expansion, functions, and other PowerShell features.

# Function Definition: fnPause
Function fnPause ($message="Press any key to continue...")
	{
		Write-Host -NoNewLine $Message
		$null = $Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
		Write-Host ""
		Main_Menu
	}
 
# Function Definition: fnADSearchMenu 
Function fnADSearchMenu
{
	# Display Welcome Message
	Clear-Host
	"Active Directory Search Script v1.0"
	"Created By: Richard Raseley (Richard@Raseley.com)"
	" "
 
	# Display Top Level Menu Question
	"What type of Active Directory object would you like to search for?"
 
	# Display Top Level Menu
	$MenuTopLevel = 
	'
	[1] User(s)
	[2] Group(s)
	[3] Computer(s)
	[4] Exit 
 
	Choice'
 
	# Define Logic for Top Level Menu
	switch (Read-Host $MenuTopLevel)
	{
		1 {fnUserSearchMenu}
		2 {fnGroupSearchMenu}
		3 {fnComputerSearchMenu}
		4 {Exit}
		default {"You have chosen an invalid option"; fnPause; fnADSearchMenu}
	}
}
 
# Function Definition: fnUserSearchMenu
Function fnUserSearchMenu
{
	# Display User Search Menu Question
	" "
	"What type of user information would you like?"
 
	# Display User Search Menu
	$MenuUserSearch =
	'
	[1] Summary of all users in the current domain
	[2] Return to the main menu
 
	Choice'
 
	# Define Logic for User Search Menu
	switch (Read-Host $MenuUserSearch)
	{
		1 {
		  	#Define LDAP Filter
			$LDAPFilter = "(objectCategory=User)"
 
		  	#Call fnADSearchExecute
		  	fnADSearchExecute
		  }
		2 {
	    	fnADSearchMenu
		  }
		default {"You have chosen an invalid option"; fnPause; fnADSearchMenu}
	}
}
 
# Function Definition: fnGroupSearchMenu
Function fnGroupSearchMenu
{
	# Display Group Search Menu Question
	" "
	"What type of group information would you like?"
 
	# Display Group Search Menu
	$MenuGoupSearch =
	'
	[1] Summary of all groups in the current domain
	[2] Return to main menu
 
	Choice'
 
	# Define Logic for Group Search Menu
	switch (Read-Host $MenuGoupSearch)
	{
		1 {
			# Define LDAP Filter
			$LDAPFilter = "(objectCategory=Group)"
 
			#Call fnADSearchExecute
			fnADSearchExecute
		  }
		2 {
			fnADSearchMenu
		  }
		default {"You have chosen an invalid option"; fnPause; fnADSearchMenu}
	}
}
 
# Function Definition: fnComputerSearchMenu
Function fnComputerSearchMenu
{
	# Display Computer Search Menu Question
	" "
	"What type of computer information would you like?"
 
	# Display Group Search Menu
	$MenuComputerSearch =
	'
	[1] Summary of all computers in the current domain
	[2] Return to main menu
 
	Choice'
 
	# Define Logic for Group Search Menu
	switch (Read-Host $MenuComputerSearch)
	{
		1 {
			# Define LDAP Filter
			$LDAPFilter = "(objectCategory=Computer)"
 
			#Call fnADSearchExecute
			fnADSearchExecute
		  }
		2 {
			fnADSearchMenu
		  }
		default {"You have chosen an invalid option"; fnPause; fnADSearchMenu}
	}
}
 
# Function Definition: fnADSearchExecute
Function fnADSearchExecute
{
	# Define AD Search Filter
	$strFilter = "$LDAPFilter"
 
	# Define AD Location for Search
	$objDomain = New-Object System.DirectoryServices.DirectoryEntry
 
	# Define AD Search Parameters
	$objSearcher = New-Object System.DirectoryServices.DirectorySearcher
	$objSearcher.SearchRoot = $objDomain
	$objSearcher.PageSize = 1000
	$objSearcher.Filter = $strFilter
	$objSearcher.SearchScope = "Subtree"
 
	# Define AD Properties Returned by Search
	$colProplist = "name"
	foreach ($i in $colProplist){$objSearcher.PropertiesToLoad.Add($i)}
 
	# Execute AD Search
	$colResults = $objSearcher.FindAll()
 
	# Format AD Search Results
	foreach ($objResult in $colResults)
	{
		$objItem = $objResult.Properties
		"Name: " + $objItem.name
		" "
	}
}
 
# Call ADSearch Menu Function
fnADSearchMenu
Posted in Software | Tagged , , | 1 Comment

Left4Dead – Survival – No Mercy, Gas Station

Me playing Left 4 Dead Survival mode on the No Mercy – Gas Station level.

Posted in Gaming | Tagged , , , , , | Leave a comment