我从https://support.microsoft.com/en-us/kb/2904712 查看相关描述并下载补丁进行安装。

Issues

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.

VMM server和控制台安装都正常。但是在执行文章中提供的SQL脚本:

/* script starts here */ALTER Procedure [dbo].[prc_RBS_UserRoleSharedObjectRelation_Insert]( @ID uniqueidentifier, @ObjectID uniqueidentifier, @ObjectType int, @RoleID uniqueidentifier, @UserOrGroup varbinary (85), @ForeignAccount nvarchar (256), @IsADGroup bit, @ExistingID uniqueidentifier = NULL OUTPUT)ASSET NOCOUNT ON SELECT @ExistingID = [ID] FROM [dbo].[tbl_RBS_UserRoleSharedObjectRelation] WHERE [ObjectID] = @ObjectID AND [RoleID] = @RoleID AND -- Select owner OR Select all which matches ForeignAccount or UserOrGroup OR -- both ForeignAccount and UserOrGroup is NULL (([UserOrGroup] = @UserOrGroup OR [ForeignAccount] = @ForeignAccount) OR ([UserOrGroup] IS NULL AND @UserOrGroup IS NULL AND [ForeignAccount] IS NULL AND @ForeignAccount IS NULL)) /* Ignore duplicate entries */ IF (@ExistingID IS NULL) BEGIN INSERT [dbo].[tbl_RBS_UserRoleSharedObjectRelation] ([ID] ,[ObjectID] ,[ObjectType] ,[RoleID] ,[UserOrGroup] ,[ForeignAccount] ,[IsADGroup] ,[IsOwner] ) VALUES ( @ID, @ObjectID, @ObjectType, @RoleID, @UserOrGroup, @ForeignAccount, @IsADGroup, 0 ) ENDSET NOCOUNT OFFRETURN @@ERROR/* script ends here */

时遇到如下错误

image

经检查发现是SQL语句有误,该空格没空格,该换行没换行。

我修改成下面这样后就可以正常执行了

/* script starts here */
ALTER Procedure [dbo].[prc_RBS_UserRoleSharedObjectRelation_Insert]
(
        @ID uniqueidentifier,
        @ObjectID uniqueidentifier,
        @ObjectType int,
        @RoleID uniqueidentifier,
        @UserOrGroup varbinary (85),
        @ForeignAccount nvarchar (256),
        @IsADGroup bit,
        @ExistingID uniqueidentifier = NULL OUTPUT
    )
AS
SET NOCOUNT ON
       SELECT  @ExistingID = [ID]
     FROM [dbo].[tbl_RBS_UserRoleSharedObjectRelation]
     WHERE [ObjectID] = @ObjectID AND [RoleID] = @RoleID   AND
  -- Select owner OR Select all which matches ForeignAccount or UserOrGroup OR
  -- both ForeignAccount and UserOrGroup is NULL
      (([UserOrGroup] = @UserOrGroup OR [ForeignAccount] = @ForeignAccount) OR 
      ([UserOrGroup] IS NULL AND @UserOrGroup IS NULL AND [ForeignAccount] IS NULL AND @ForeignAccount IS NULL))     
/* Ignore duplicate entries */
      IF (@ExistingID IS NULL)
      BEGIN
     INSERT [dbo].[tbl_RBS_UserRoleSharedObjectRelation]
               ([ID]
               ,[ObjectID]
               ,[ObjectType]
               ,[RoleID]
               ,[UserOrGroup]
               ,[ForeignAccount]
               ,[IsADGroup]
               ,[IsOwner]
               )
    VALUES  
     (
            @ID,
            @ObjectID,
            @ObjectType,
            @RoleID,
            @UserOrGroup,
            @ForeignAccount,
            @IsADGroup,
            0   
        )
      END
SET NOCOUNT OFF
RETURN @@ERROR
/* script ends here */