RSS

Category Archives: Powershell

Home LAB Setup guide – 04 Configuring Server 2012 VM as DC with DNS and DHCP using PowerShell

In the first part of this LAB setup guide, I described the hardware selection process.
In the second part, I described the hypervisor selection and installation.
In the third part, I described VM guest considerations and preparations.

In this post I cover quickly configuring a Server 2012 VM as DC with DNS and DHCP by using PowerShell.

The steps I do take less than 10 minutes in my test lab now. Here’s a short description:

  1. Create a VM that uses your previously made parent disk.
  2. Configure the server name and IP addressing and reboot the computer.
  3. Install AD DS (domain controller) including DNS forward lookup zone and reboot the computer.
  4. Configure AD and DNS : Enable AD Recycle Bin, Add DNS forwarder, add DNS reverse lookup zone, create DNS PTR record for DC.
  5. Install + configure DHCP : Install DHCP, Add scope, configure scope, authorize DHCP server in AD.

The scripts I’ve created for steps 2 to 5 can be found here and are based on the great work Stefan Stranger already did in his blog post Installing a new OpsMgr 2012 (SP1) environment the fast way. I added some stuff of my own so it would meet my needs and I tried to keep it as generic as possible so other people can re-use my code as well.

PS: In step 2, IP addressing is not in place yet. To get scripts tot the system, consider:

  • Putting the scripts in an ISO file that you can mount.
  • Opening Hyper-V Virtual Machine Connection to VM and using “Clipboard”, “Type Clipboard Text”.
 

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

SCOM2012 – Extract English Only MSP Update Rollup 3 files from CAB using PowerShell (and my vision on updating using WSUS/Microsoft Update)

I created this script to automate extracting English only MSP files from CAB files in the SCOM 2012 Update Rollup 3 (UR3) files. By default it will delete extracted non-English versions. With some minor modifications it can be used for any CAB file though, not just SCOM 2012 Update Rollup 3. It includes a lot of comments, so it is manageable and can be used for getting to know PowerShell better.

SCOM 2012 Update Rollup 3 can be downloaded here : http://catalog.update.microsoft.com/v7/site/search.aspx?q=2750631

The issue with SCOM 2012 Update Rollup 3 is that after downloading you’ll end up with a total of 41 CAB files. The large number of files is because they are for different components and in multiple languages. And what is even worse, is that the file names do not show which file is for which language.This script will extract all cab files to a subfolder and will then removes the non English ones. Below are some of the example files in Update Rollup 3 to give you an idea about the nondescriptive file names:

  • all-kb2750631-amd64-console_1af57997fba722cdd3dfe4b2ddb4b8d8d829dd6f.cab
  • all-kb2750631-amd64-console_3d61c9e090622b2b59ee8bf7b13b922e815bdf15.cab
  • all-kb2750631-amd64-console_494a77ddaa09206f8f61ecdfb2edfcd1e82a497c.cab
  • all-kb2750631-amd64-console_69bb307dbd450cfd8b732c2ac3845c9870bdc6d0.cab
  • all-kb2750631-amd64-console_71c65fc2ded6769edbf610958780b5a8ac374f8c.cab

Deploying SCOM 2012 components and updates to them can be done in multiple ways:                 http://technet.microsoft.com/en-us/library/hh551142.aspx

Most of the work while updating will probably be updating the agents. Basically for SCOM 2012 there are 2 major ways to install agents:

  1. Push installation (initiated from SCOM 2012). Updates can then also be deployed from within SCOM (Remotely Manageable = Yes). Push installation is often preferred, because it is easy and also allows you to push updates to clients from within SCOM 2012. The downside however is that it also requires a lot of open ports (including RPC) which might not always be acceptable:                    http://support.microsoft.com/kb/2566152. Push install and update install can also consume a lot of bandwidth and depending on your architecture (b.e. WAN links), the push install might not be the best way.
  2. A manual installation (anything that is not a push installation). Updates cannot be deployed from within SCOM (Remotely Manageable = No). Manual installation includes running setup manually, using a GPO software install or using deployment tools like System Center Configuration Manager). Using the GUI, you cannot simply set an agent back to remotely manageable = Yes. You can change this in SQL though, but keep in mind that connectivity  requirements still need to be met.

With Update Rollup 3, it is now possible to leverage WSUS / Microsoft Update to deploy updates (not the inital agent) to all SCOM 2012 components. I predict this will probably become the preferred way of updating SCOM 2012 for most companies:
+ It does not require many ports on your firewall to be opened.
+ Better bandwidth management (local WSUS, BranchCache, BITS).
+ Auto detects components on systems (component updates are not forgotten).
+ Still in control of when which updates are deployed/approved.
+ Leverage existing patch/update management procedures and systems WSUS/SCCM (standardization).
– Initial agent installation cannot be performed using WSUS.

PS: Also check these great blog posts when deploying Update Rollup 3:

 

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

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: , , , , , , , , , , , , , , , , , , , ,

Summary of 1st Dutch PowerShell User Group (DuPSUG) meeting

General

Last Friday I attended the first Dutch Powershell User Group meeting in Eindhoven at Master IT Training and it was great. There were a lot of knowledgeable and passionate people and the interactive sessions were great as well. Thanks go out to all attendees, but especially to the ones presenting and organizing the event.

The fact that we were asked to leave the building (because it was getting pretty late and they wanted to lock up), also stresses the passion of all attendees because. If this wasn’t the case we probably would’ve stayed a lot longer.

Be sure to check out the Dutch PowerShell User Group (DuPSUG) website and Twitter on a regular basis for articles and future events. Ed Wilson also wrote a post of the meeting on the “Hey, Scripting Guy! Blog”.

Photos

Ed Wilson "The Scripting Guy" At Dutch PowerShell User Group DuPSUG
Original photo on flickr

Sessions

Below are the sessions with some info about the speakers and their sessions. I also added notes I took and other information I looked up afterwards. If you come across any errors or have comments, please leave a reply so I can fix it.

Read the rest of this entry »

 

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

Great overview of Microsoft certification paths

There are many Microsoft certification paths and in my opinion a good overview was missing to determine what exams you need to pass. That is until now, because the overview shown below is great:

For more information, read the original blog post at borntolearn : http://borntolearn.mslearn.net/microsoft_it_academy/b/weblog/archive/2012/11/20/infographic-microsoft-it-academy-certification-roadmap.aspx

Also if you’re planning to pursue a certification, please leave a comment what your plans are and why.

 

Tags: , , , , , , , , ,

Windows 8 – Windows store app installation fails on Windows 8 with error code 0x80070057

Last week I encountered error code 0x80070057 while trying to install an update to the “Fruit Ninja” windows store app.

The steps below were used to fix this error:

  1. Run powershell as administrator
  2. get-appxpackage -name *fruitninja* | remove-appxpackage
  3. Run “wsreset”
  4. Go to store page and click install

Thanks to this post that helped me resolve the issue:
http://www.pocketables.com/2012/10/how-to-fix-fruit-ninja-or-any-other-broken-app-on-windows-8.html

PS: I had already tried syncing the app licenses, but this didn’t resolve the issue.

 

Tags: , , , , , , , ,