RSS

Category Archives: Automation

SCOM2012 – Determine OpsMgr Components File Versions Using PowerShell in SCOM2012 Agent Task

In a previous blog post I explained how to use PowerShell remoting to determine OpsMgr Components File Versions.

As an alternative you can also use a local PowerShell script. And what is even easier in my opinion, is creating an agent task. This means you can run the the script against multiple targets and show its result all from within the SCOM 2012 console.

The local PowerShell script can be found here. A management pack containing the agent task and the PowerShell script can be found here.

Based on internet info,these are the version numbers:
SCOM 2012 Cumulative Update 1 / Update Rollup 1 version = 7.0.8560.1021
SCOM 2012 Cumulative Update 2 / Update Rollup 2 version = 7.0.8560.1027
SCOM 2012 Cumulative Update 3 / Update Rollup 3 version = 7.0.8560.1036
SCOM 2012 SP1 beta = 7.0.8925.0

Thanks go out to Derek Har for his blog post that helped me to embed the PowerShell script in the SCOM 2012 management pack.

To give you an idea what the output looks like in SCOM 2012, here are some screenshots:

Bjorn_Tasks_Powershell-Get-SCOMfileversions_01

Bjorn_Tasks_Powershell-Get-SCOMfileversions_01

Bjorn_Tasks_Powershell-Get-SCOMfileversions_02

Bjorn_Tasks_Powershell-Get-SCOMfileversions_02

 

Tags: , , , , , , , , , , , , , , , , , , , , , , , ,

SCOM2012 – Determine OpsMgr Components File Versions Using PowerShell Remoting

We’re currently working hard on our SCOM 2012 environment. One of the things that need to be done, is upgrading the environment to the latest version, which is currently Update Rollup 3.

Two great blog posts are available to assist you in the upgrade process:

Unfortunately SCOM 2012 at this moment only shows the major version 7.0.8560.0 when using get-scommanagementserver or get-scomagent. For agents you can use this PowerShell command:
get-scomagent | ft computername, version, patchlist -auto
The patchlist is however not available for managementservers, which means another approach is necessary to get an overview of the upgrade status of your SCOM environment.

Since OpsMgr 2012 Update Rollup 3 is available through WSUS now for the first time, you could leverage existing WSUS reports. Depending on your environment, not all systems might be in WSUS or the systems might be using different WSUS servers.

The script I made, is based on Stefan Stranger’s blog post. The script basically works like this:

  1. It queries the SCOM 2012 environment for management servers and agents.
  2. It connects to each management server and agent using PowerShell remoting, locally checks file versions against the desired versions and returns the results.

The script can be found here:
http://bjornhouben-web.sharepoint.com/Lists/Scripts

Since I’m still pretty new to PowerShell scripting, any feedback is welcome so I can improve

[EDIT 22-04-2016]

Added the script as HTML in the blog itself

[EDIT 22-04-2016]

 

<########################################################################################

Name : Determine SCOM Components File Versions Using PowerShell Remoting.ps1

Date : December 10th 2012

Author : Bjorn Houben

Blog        :   http://blog.bjornhouben.com

Website : http://www.bjornhouben.com

Linkedin : http://nl.linkedin.com/in/bjornhouben

Purpose :   Unfortunately SCOM 2012 now only shows the major version 7.0.8560.0 when using get-scommanagementserver or get-scomagent.

                This script will show the file versions of the SCOM 2012 components: Management Server, Gateway Server, Console, Web Console, Agent and reporting tools.

                Using PowerShell remoting, this script will query your SCOM environment for management servers and agents and will then check their local file versions.

                

Assumptions : To query SCOM, you are running the script from a system that meets all of these requirements:

                 1. The “Operations Manager Shell” is installed.

                 2. You can connect to the management server for queries.

                 3. Your account has sufficient permissions to query the management server.

                To query the file versions on remote systems:

                 1. PowerShell remoting must be enabled and configured correctly.

                 2. Connectivity to the remote systems must be available.

                 3. The account used for PowerShell remoting must have sufficient permissions.

Known issues:

Limitations :

Notes   : This script was inspired by Stefan Stranger’s blog post about installing update rollup 3:

                http://blogs.technet.com/b/stefan_stranger/archive/2012/10/22/opsmgr-2012-update-rollup-3-ships-and-my-experience-installing-it.aspx

                To determine the changed files, I used the commands provided in this blog post:

                Get-ItemProperty -Path “$env:ProgramFiles\System Center 2012\Operations Manager\Server\*.dll” | select -ExpandProperty VersionInfo | where {$_.FileVersion -eq “7.0.8560.1036”} | Format-List FileName, FileVersion

                Get-ItemProperty -Path “c:\\Program Files\System Center 2012\Operations Manager\Reporting\Tools\*.*” | select -ExpandProperty VersionInfo | where {$_.FileVersion -eq $SCOM2012_Update_version} | Format-List FileName, FileVersion

                Get-ItemProperty -Path “$env:ProgramFiles\System Center 2012\Operations Manager\Console\*.dll” | select -ExpandProperty VersionInfo | where {$_.FileVersion -eq $SCOM2012_Update_version} | Format-List FileName, FileVersion

                Get-ItemProperty -Path “$env:ProgramFiles\System Center 2012\Operations Manager\WebConsole\WebHost\bin\*.dll” | select -ExpandProperty VersionInfo | where {$_.FileVersion -eq $SCOM2012_Update_version} | Format-List FileName, FileVersion

                Get-ItemProperty -Path “$env:ProgramFiles\System Center Operations Manager\Gateway\*.dll” | select -ExpandProperty VersionInfo | where {$_.FileVersion -eq $SCOM2012_Update_version} | Format-List FileName, FileVersion

                Get-ItemProperty -Path “$env:ProgramFiles\System Center Operations Manager\Agent\*.dll” | select -ExpandProperty VersionInfo | where {$_.FileVersion -eq $SCOM2012_Update_version} | Format-List FileName, FileVersion

Disclaimer : This script is provided AS IS without warranty of any kind. I disclaim all implied warranties including, without limitation,

    any implied warranties of merchantability or of fitness for a particular purpose. The entire risk arising out of the use or

    performance of the sample scripts and documentation remains with you. In no event shall I be liable for any damages whatsoever

    (including, without limitation, damages for loss of business profits, business interruption, loss of business information,

    or other pecuniary loss) arising out of the use of or inability to use the script or documentation.

To improve  :

Copyright   :   I believe in sharing knowledge, so this script and its use is subject to : http://creativecommons.org/licenses/by-sa/3.0/

History     : December 10 2012 : Created script

########################################################################################>

#Load the OperationsManager PowerShell module

Import-Module OperationsManager

#Get managementservers and agents

$ManagementServers = Get-SCOMManagementServer

$Agents = Get-SCOMagent

#Declare function for PowerShell remoting

Function get-remotefileversions($computername)

{

    #Invoke-command is used to perform commands on remote machines using PowerShell remoting. The ScriptBlock defines what will be executed on each local machine.

    invoke-command -computername $computername -ScriptBlock{

        

        #Get the local hostname

        $hostname = $env:COMPUTERNAME

        #Declare the function to get fileversions

        Function get-fileversion($description,$file)

        {

            #Declare the desiredversion.            

            #SCOM 2012 Update Rollup 3 version = “7.0.8560.1036”

            #SCOM 2012 SP1 beta version = “7.0.8925.0”            

            $desiredversion = “7.0.8560.1036”

    

            IF((test-path $file) -ne $true) #If file is not present, no file version check will be performed

            {

                #write-host “Not present;$file”

            }

            ELSE #If file is present, file version check will be performend

            {

                #write-host “Present;$file”

                #Get the fileversion

                $fileversion = (Get-ItemProperty -Path $file | select -ExpandProperty VersionInfo).FileVersion

                

                #Define the outputformat

                $output = $hostname;$fileversion;$description;$file

                IF($fileversion -eq $desiredversion) #If fileversion matches desired version, do not show in output

                {

                    #write-host $output

                }

                ELSE #If fileversion does not match desired version, show in output

                {

                    #Show only non compliant versions

                    $output | write-host

                }

            }

        }

        #Define the files to check

        

        #Files for SCOM 2012 Management Server

        get-fileversion “Management Server” $env:ProgramFiles\System Center 2012\Operations Manager\Server\Microsoft.EnterpriseManagement.DataAccessService.OperationsManager.dll”

        get-fileversion “Management Server” $env:ProgramFiles\System Center 2012\Operations Manager\Server\Microsoft.EnterpriseManagement.Modules.PowerShell.dll”

        get-fileversion “Management Server” $env:ProgramFiles\System Center 2012\Operations Manager\Server\Microsoft.EnterpriseManagement.RuntimeService.dll”

        get-fileversion “Management Server” $env:ProgramFiles\System Center 2012\Operations Manager\Server\MomIISModules.dll”

        #Files for SCOM 2012 Console

        get-fileversion “Console” $env:ProgramFiles\System Center 2012\Operations Manager\Console\Microsoft.EnterpriseManagement.Presentation.Controls.dll”

        get-fileversion “Console” $env:ProgramFiles\System Center 2012\Operations Manager\Console\Microsoft.EnterpriseManagement.Presentation.Core.dll”

        get-fileversion “Console” $env:ProgramFiles\System Center 2012\Operations Manager\Console\Microsoft.EnterpriseManagement.Presentation.DataProviders.Library.dll”

        get-fileversion “Console” $env:ProgramFiles\System Center 2012\Operations Manager\Microsoft.EnterpriseManagement.UI.ConsoleFramework.dll”

        get-fileversion “Console” $env:ProgramFiles\System Center 2012\Operations Manager\Microsoft.Mom.UI.Components.dll”

        #Files for SCOM 2012 Web Console

        get-fileversion “Web Console” $env:ProgramFiles\System Center 2012\Operations Manager\WebConsole\WebHost\bin\Microsoft.EnterpriseManagement.Presentation.Core.DLL”

        get-fileversion “Web Console” $env:ProgramFiles\System Center 2012\Operations Manager\WebConsole\WebHost\Microsoft.EnterpriseManagement.Presentation.DataProviders.Library.dll”

        get-fileversion “Web Console” $env:ProgramFiles\System Center 2012\Operations Manager\WebConsole\WebHost\Microsoft.EnterpriseManagement.Presentation.Security.Cryptography.dll”

        #Files for SCOM 2012 Gateway

        get-fileversion “Gateway” $env:ProgramFiles\System Center Operations Manager\Gateway\Microsoft.EnterpriseManagement.Modules.PowerShell.dll”

        get-fileversion “Gateway” $env:ProgramFiles\System Center Operations Manager\Gateway\MomIISModules.dll”

        get-fileversion “Gateway” $env:ProgramFiles\System Center Operations Manager\Gateway\MOMScriptAPI.dll”

        #Files for SCOM 2012 Reporting

        get-fileversion “Reporting” $env:ProgramFiles\System Center 2012\Operations Manager\Reporting\Tools\OpsMgrTraceTMFVer.Dll”

        get-fileversion “Reporting” $env:ProgramFiles\System Center 2012\Operations Manager\Reporting\Tools\TraceFmtSM.exe”

        get-fileversion “Reporting” $env:ProgramFiles\System Center 2012\Operations Manager\Reporting\Tools\TraceLogSM.exe”

        #Files for SCOM 2012 Agent

        get-fileversion “Agent” $env:ProgramFiles\System Center Operations Manager\Agent\Microsoft.EnterpriseManagement.Modules.PowerShell.dll”

        get-fileversion “Agent” $env:ProgramFiles\System Center Operations Manager\Agent\MomIISModules.dll”

        get-fileversion “Agent” $env:ProgramFiles\System Center Operations Manager\Agent\MOMScriptAPI.dll”

        get-fileversion “Agent” ${env:ProgramFiles(x86)}\System Center Operations Manager\Agent\Microsoft.EnterpriseManagement.Modules.PowerShell.dll”

        get-fileversion “Agent” ${env:ProgramFiles(x86)}\System Center Operations Manager\Agent\MomIISModules.dll”

        get-fileversion “Agent” ${env:ProgramFiles(x86)}System Center Operations Manager\Agent\MOMScriptAPI.dll”

        }

}

#Run the get-remotefileversions function for all Management Servers

Foreach($ManagementServer in $ManagementServers)

{

    get-remotefileversions $managementserver.NetworkName

}

#Run the get-remotefileversions function for all agents

Foreach($Agent in $Agents)

{

    get-remotefileversions $agent.NetworkName

}

 

Tags: , , , , , , , , , , , , , , , , , , , ,

SCOM2012 – Quick test lab setup OpsMgr 2012 SP1 Beta using prepared VHD

Since I’m currently working with System Center Operations Manager 2012 (also often referred to as SCOM 2012 or OpsMgr 2012), I needed a testing environment.

Because time is precious, I want to minimize the time and effort needed to set it up. This is what I did:

  1. Install and configure Hyper-V on my Windows 8 laptop.
  2. Deploy a VM with Server 2012 Datacenter edition.
    Configure a static IP address.
    Configure AD DS / domain controller role.
    Configure DHCP server role.
    Configure DNS server role (if desirable, include DNS forwarder for internet DNS queries).
  3. Download and extract the pre-configured SCOM 2012 SP1 beta VHD (running Server 2012 Datacenter edition). System Center 2012 SP1 adds Windows Server 2012  SQL Server 2012 Support.
  4. Create a new VM for SCOM and configure it to use the downloaded pre-configured VHD.
    Configure it with sufficient virtual CPUs and memory  for the DB and the SCOM components.
  5. Start the SCOM VM, and follow the onscreen instructions. NOTE: First time configuration took about 1-2 hours, but this might be related to my hardware. Still it might be smart to plan the installation.
  6. Convert the Server 2012 Datacenter edition from ServerDatacenterEval to ServerDatacenter by running an elevated CMD as administrator and issuing the following command:
    DISM /online /Set-Edition:ServerDatacenter> ProductKey:<productkey> /AcceptEula
    Reboot.
  7. Replace the SCOM 2012 evaluation license with your own license using Operations Manager Shell:
    Set-SCOMLicense -ProductId “yourlicensekey“
    Reboot
    Check the license using the Operations Manager Shell:
    Get-SCOMManagementGroup | ft skuforlicense, version, timeofexpiration –a
  8. Shut down your SCOM 2012 VM.
  9. Shut down your AD DS / domain controller VM.
  10. Create a snapshot and/or export of both VM’s so you can more easily revert to a good starting point.

Also be sure to read Stefan Stranger’s blog post that goes into more detail with regards to the domain controller and automating the task for setting it up. It also includes screenshots to give you a better idea of the process.

PS: I love how Microsoft provides these pre-configured VHD’s. This has been great in the past, but now with client Hyper-V 3.0 in Windows 8 it saves me even more time because I don’t have to boot to Windows Server 2008 or Windows Server 2012 for Hyper-V.

 

Tags: , , , , , , , , , , , , , , , , , , , , , , , , , , ,

Windows 8 – 5 deployment and systems management session videos

Great videos of Windows 8 deployment and system management sessions can be found here.

Sessions:

  • Creating Custom WinPE 4.0 boot images
  • A Geeks guide to the Galaxy – Building a SC 2012 Configuration Manager OS Deployment Solution
  • Inside Windows 8 – The new Assessment and Deployment Kit, ADK
  • Inside Windows 8 – Mastering the Setup Engine
  • SC 2012 Configuration Manager OSD – Tips & Tricks from the Deployment Masters

These sessions were recorded at the NIC 2012 (Nordic Infrastructure Conference). Be sure to check the website for more videos and interesting information.

 

Tags: , , , , , , , , , , , , , , , , , ,

nzbget on Popcorn Hour A-400 not unrarring

Normally when you install nzbget on your Popcorn Hour A-400 or any other NMT (Networked Media Tank), it should download your files, but should also download additional pars, repair and unrar.

With the nzbget that came installed with the NMT apps it did not unrar for me unfortunately. So I went looking for a solution and found that many people recommended installing Oversight using NMT CSI (Community Service Installer) because it had a better postprocessing / unpacking script.

After installing Oversight (and rebooting), the nzbget web interface was not reachable on port 8066 anymore however. After deinstallation of Oversight in CSI it started working again.

To get it all working I installed Oversight again using CSI and then (again using CSI) I stopped Oversight and configured it not to start on boot. Then everything worked as desired. Note that your completed downloads will be moved from the Downloads folder to the Completed

 

Tags: , , , , , , , , , , , , , , , ,

Free knowledge session about Hyper-V 3.0 (Server 2012) on the 12th of November

For those interested in Hyper-V 3.0 (Server 2012), check out the New Horizons website:
http://www.newhorizons.nu/site/special_events/Gratis_kennissessie_Hyper-V_in_Windows_Server_2012/

They’re hosting a free knowledge session on the 12th of November starting at 17:30 CET in Eindhoven.

 

Tags: , , , , ,

1st Dutch PowerShell User Group (DuPSUG) meeting on November 23rd

At November 23rd the 1st Dutch Powershell User Group (DuPSUG) meeting will be held in November at Master IT in Eindhoven for free.

Sessions:

  • Using Windows PowerShell 3.0 to manage the remote Windows 8 workstation
    Ed Wilson (Microsoft Scripting Guy)
  • PowerShell and WMI
    Richard Siddaway (PowerShell MVP)
  • What’s new in PowerShell 3.0
    Bert Wolters (Microsoft Certified Trainer with Master it Training)
  • Protect your PowerShell scripts with version control
    Stefan Stranger (Senior Premier Field Engineer at Microsoft Netherlands)
  • From command, to script, to function, to advanced function, to tool.
    Jeff Wouters (freelance Technology Specialist at Methos IT)

Read more about the meeting, the sessions and the speakers here: http://www.dupsug.com/

Also keep in mind that the available seats are very limited, so quickly sign up if your interested.

 

Tags: , , , , , , , , , , , , , , , , , , , , , ,