Jonathan's Manage and Automate

VMM SCO SMA WAP - Solutions and Guidance


 Manage and Automate

                                           VMM SCO SMA WAP - Solutions and Guidance

  • Update Rollups for SC 2012 SP1 and 2012 R2

    downloadAnother quarterly Update Rollup (UR) has been released for System Center 2012 SP1 and SC 2012 R2. In this post we focus on SC VMM and SC Orchestrator updates. A note about Update Rollups: do not consider these optional. Do not consider them hotfixes. Install them always when they are released. Each UR contains up to 25 fixes per product based on past releases. Here’s what is new with UR’s:



    Description of the fixes in Update Rollup 5 for System Center Orchestrator 2012 SP1

    Resolved issues
    Update Rollup 5 for System Center Orchestrator 2012 SP1 resolves the following issues. 
    Issue 1
    The Monitor Service activity does not let the configuration be saved if Monitor Service cannot resolve the hostname that is entered in the Computer Input property. If you try to save the configuration, you receive the following error message:

    Connection to the selected computer has failed

    Issue 2
    The Compress Files activity does not include files that are in subfolders that match the filter when the Include files in sub-folders option is selected.
    Issue 3
    The Send SNMP Trap activity does not send the correct results for certain combinations of values.
    Issue 4

    The SNMP Trap Variables are not retained in the correct order after the Properties dialog box is closed and then opened again.


    Description of Update Rollup 1 for System Center 2012 R2 Virtual Machine Manager

    There are special install instructions for this update. Please read the article!

    Update Rollup 1 for System Center 2012 R2 Virtual Machine Manager resolves the following issues:
    • System Center 2012 R2 Virtual Machine Manager cannot deploy a new or imported VMWare template.
    • A virtual machine with that uses VHDX cannot be refreshed correctly in System Center 2012 R2 Virtual Machine Manager, and you receive the following error message:

      Refresh job failed with error 2912: The requested operation cannot be performed on the virtual disk as it is currently used in shared mode (0xC05CFF0A)

    • Database operations sometimes fail with "FailedToAcquireLockException."
    • A new virtual machine template from a template that specifies an operating system profile doesn't use credentials from the operating system profile.
    • Virtual machines in VMWare that connect by the using Cisco N1000V dvSwitch are unavailable for management from Virtual Machine Manager.
    • System Center Virtual Machine Manager service crashes if you disable one of the teamed network adapters.
    • The Get-Scstoragearray -host command should return storage arrays that are visible to a host that is using zoning.
    • During the discovery of a network-attached storage (NAS) provider, the credentials that are used do not include a domain name.
    • Some localized strings are not displayed correctly in the UI.
    • A query to find the certificate should match both the subject name and the friendly name because FindBySubjectName is a wildcard search.
    • Template deployment fails, and you receive the following error message:

      Error (2904)
      VMM could not find the specified path on the <Server name> server.
      The system cannot find the path specified (0x80070003)

    • Virtual Hard Disk (VHD) cannot be mounted on a host because VHD conflicts with other disks because of a stale entry that was left in the dictionary of Virtual Machine Manager memory.
    • Differencing disk based deployment may fail because the parent disk is being refreshed as noncached.




  • SC VMM: Moving or Creating a VM fails with errors (2912) 0x80041001

    BITSRecently I have seen a rush of VMM cases that involve moving a VM through migration, or otherwise moving data (VHD, VHDX, ISO, etc.) around. I have found that in many of these cases there are suspended Background Intelligent Transfer Service (BITS) jobs. As long as there is a suspended job in the BITS queue on the VMM server or the Host you are moving data to, the move will fail.



    Typical VMM trace showing the issue: In this case a VMM trace shows a copy job beginning. Locate the first step of an exception at the bottom of the stack and read upwards.The first line shows that BITS is starting a copy job: 'at Microsoft.VirtualManager.Engine.Deployment.BitDeployer.Copy().'

    20:46:41.271 01-22-2014,0x09C4,0x0994,4,BitsDeployer.cs,506,0x00000000, Caught Exception,{00000000-0000-0000-0000-000000000000},1,
    20:46:41.272 01-22-2014,0x09C4,0x0994,4,BitsDeployer.cs,506,0x00000000,"Microsoft.Carmine.WSManWrappers.WSManProviderException: An internal error has occurred trying to contact an agent on the server.
    17993 Ensure the agent is installed and running. Ensure the WS-Management service is installed and running; then restart the agent.
        at Microsoft.Carmine.WSManWrappers.ErrorContextParameterHelper.ThrowTranslatedCarmineException(ErrorInfo ei; Exception ex)
        at Microsoft.Carmine.WSManWrappers.WsmanAPIWrapper.RetrieveUnderlyingWMIErrorAndThrow(SessionCacheElement sessionElement; COMException ce)
        at Microsoft.Carmine.WSManWrappers.WsmanAPIWrapper.Enumerate(String url; String filter; Type type)
        at Microsoft.Carmine.WSManWrappers.WSManRequest`1.Enumerate(String url; String wqlQuery)
        at Microsoft.VirtualManager.Engine.Deployment.NativeDeploymentUtils.IsBitsRemoteApiAvailable(WSManConnectionParameters connectionParams; BitsRemoteApi remoteApi)
        at Microsoft.VirtualManager.Engine.Deployment.LANAcceleratorFactory.GetDeploymentClientJob(WSManConnectionParameters connParams; WSManConnectionParameters remotePeerConnParams; String sourceFileName; String targetFilename; UInt16 port; Boolean privacy; UInt32 flags; String sessionID; Boolean resetJob)
        at Microsoft.VirtualManager.Engine.Deployment.BITSDeployer.CreateClientJob(DeploymentFile file; CLIENT_JOB_TYPE clientJobType; WSManConnectionParameters clientConnection; WSManConnectionParameters serverConnection; UInt16 serverTcpPort; Boolean clientPrivacy; Boolean startAfresh)
        at Microsoft.VirtualManager.Engine.Deployment.BitDeployer.Copy()
    *** Carmine error was: HostAgentFail (2912); HR: 0x80041001


    Perform these steps on the VMM server and any Hosts where data is being moved. Ignore any messages referring to the command being deprecated

    1. Open an elevated command prompt
    2. Enter 'bitsadmin /list /allusers'
    3. You will see the number of jobs suspended. Each job begins with a GUID
    4. Cancel each suspended job by entering 'bitsadmin /cancel {GUID}', where GUID represents the BITS job suspended
    5. Repeat the previous step for all BITS jobs
    6. Enter 'bitsadmin /list /allusers' when done and no jobs should show suspended

    I’ve written a KB article that details this same process. It will be available online soon.




  • Orchestrator Functions and Regular Expressions (Regex)

    imageThere are a number of ways to manipulate data using the Orchestrator built-in Activities. Text manipulation is a common need with Runbooks. An Activity pulls a string of data that you need only a part of, or need it in a different format. Fortunately, Orchestrator has many built-in Functions that can be used to further manipulate strings. Use these tools in the same places you would subscribe to data and they will be processed.

    For example, the string below will be converted to all UPPERCASE.

    [Upper('this will be inserted in upper case')]

    You must enclose the entire string to be manipulated in square brackets, with the command and the string. Some other commands

    Here’s the link to Orchestrator Functions


    Function and Definition

    Upper - converts text to uppercase.

    Lower - converts text to lowercase.

    Field - returns text in a specific position.

    Sum - returns the sum of a set of numbers.

    Diff - returns the difference of two numbers.

    Mult - returns the product of a set of numbers.

    Div - returns the quotient of two numbers.

    Instr - returns the position of first occurrence of text within another text.

    Right - returns a subset of the text from the right side of the full text.

    Left - returns a subset of the text from the left side of the full text.

    Mid - returns a subset of the text from the middle of the full text.

    LTrim - trims leading spaces from text.

    RTrim - trims the trailing spaces from text.

    Trim - trims leading and trailing spaces from text.

    Len - returns the length of text.


    Regular Expressions

    Regular expressions let you match a string to a pattern. This is a bit more complex, but allows for pulling really anything you need from a string.




    Matches any character except a newline.


    Matches the preceding item 0 or more times. For example, the "a*" pattern matches any string of a's in a row "a", "aaa", "aaaaaaaaaaaa", and an empty string "". To match any string of any character, use a dot followed by an asterisk. For example "a.*" matches any text that begins with the letter "a" and ends with any string of characters such as "abbb", "abcdef", or "automatic restart".


    Matches the preceding item 1 or more times. This is like * but you must have a least 1 of the preceding item to make a match. For example, the "ab+" pattern matches "abbbbb", "ab", but does not match "a". To contrast, the "ab*" pattern matches "a".


    Matches the preceding item 0 or 1 time. For example, the "ab?" pattern matches "a" or "ab" but does not match "abbb".


    Matches either the preceding expression or the following expression. Logical OR operator.


    Matches the expression at the end of the input or line. For example, "ab$" matches "I took a cab" or "drab" but does not match "absolutely not".


    Matches the expression at the beginning of the input or line. For example, "^ab" matches "absolutely not" or "abacuses are great!" but does not match "I took a cab" or "drab".


    For characters that are usually treated as special. This indicates that the next character is literal and is not to be treated as a special character. For example, "\." means match the "." character and not just any character.

    [ ]

    A character set. Matches any one of the enclosed characters. You can specify a range of characters by using a hyphen. For example, [a-zA-Z] matches any letter of the alphabet.

    [^ ]

    An excluded character set. This is the opposite of []. If any of the characters inside the brackets exist, the regular expression match fails. You can specify a range of characters by using a hyphen. For example, [^a-zA-Z] ensures that none of the letters in the alphabet are present.

    ( )

    A group expression. This groups an expression into an item that you can apply special characters to. For example, "a*(ba)+" matches "ba" "aba" or "ababa" but does not match "abbba" or "abaa"





January, 2014

January, 2014