SCCM 2012 SSRS Error – DataSource Reverts

I was mucking around in my test lab tonight and managed to break SSRS (again) on my SCCM 2012 installation again. I was getting the following error.

  • “An error occurred during client rendering.
    • An error has occurred during report processing. (rsProcessingAborted)
      • Cannot impersonate user for data source ‘AutoGen__5C6358F2_4BB6_4a1b_A16E_8D96795D8602_’. (rsErrorImpersonatingUser)
        • Log on failed. (rsLogonFailed)
          • For more information about this error navigate to the report server on the local server machine, or enable remote errors ”

 

I worked out that I could go into the Report via the Reporting Website, create a new Datasource, and then it would work fine again….until, SCCM reverts the permissions back every 10 minutes to what is stored and encrypted in the SSRS Database. I then thought uninstalling the Reporting Services point and re-installing SSRS would do the trick. But it didn’t change anything. As soon as the Reporting Services point was back up, I started getting the same issues.

To get it to work, here are the steps I used…

  • I recreated the account that the Reporting Services Point was using to connect to the Reporting Server. (Not sure if this needs to be done, or whether the next step fixed it completely….)
  • I then changed the following registry key HKLM\SOFTWARE\Microsoft\SMS\SRSRP\SRSInitializeState key
    on the Site Server to a value of 0. This re-imports the all of the Reports again.

Check the SRSRP.log file to see what is happening under the hood.

Looks like something is going to happen?

Sure enough, all the reports start to rebuild. This also seems to recrate the DataSet / DataSource for the connection which seems to get rid of that error!

Native-Boot a Windows 8.1 Preview VHD

The Windows 8.1 Preview has been released. Wouldn’t it be great to take it for a test run without having to dual-boot, run it in a Virtual Machine or fire it up on a spare workstation? Why not Native-Boot a Windows 8.1 Preview VHD file? It gives you all the benefits of a Virtual Machine but all the performance of a bare-metal dual boot installation. Win-Win!

 

Create a VHD File

Open up Computer Mangement, and navigate to Disk Management. Right click and Create VHD.

Specify the location of the VHD file, the size and whether you would like it to be a VHD or a VHDX. It’s recommended also that if you’re using this for anything but testing then you should use a Fixed Size disk as you will get a performance boost.

**NOTE**- The VHD file needs to be on a Basic disk. This won’t work with Dynamic Disks.

Once that has been created, go back into Computer Management. Right click Disk Management and select Attach VHD

It may already be attached. If so skip this step.

Intialize the disk and create a New Simple Volume. Take note of the Drive Letter.

Mount the Windows 8.1 ISO.

 

Install the OS on the VHD file

Open an elevated Command Prompt and navigate to the location of ImageX. At the command prompt, type the following

imagex /apply M:\sources\install.wim 1 K:

Where M: is the drive letter where you have mounted your Windows 8 ISO and K: is the drive letter of the VHD file.

 

Modify the BCD Store

First, backup your BCD Store.

  • Bcdedit /export C:\Bcdbackup.

Now, take a copy of an already existing boot entry, to generate a new GUID.

  • bcdedit /copy {default} /d “Windows 8.1 VHD”

Copy the GUID and enter that in the next commands.

  • Bcdedit /set {4176393d-e226-11e2-bee4-88532e7a2b77} device vhd=[D:]\vhds\windows8.1.vhdx
  • Bcdedit /set {4176393d-e226-11e2-bee4-88532e7a2b77} osdevice vhd=[D:]\vhds\windows8.1.vhdx

If you would like to make the Windows 8.1 VHD installation the default. Type the following.

  • Bcdedit /default {4176393d-e226-11e2-bee4-88532e7a2b77}

To check everything is as it should be, run a msconfig at the command prompt.

Now reboot!

Go you colourful, little fish! Enjoy your Start Button!

For more information on the BCDEdit command line options see the link below.

http://technet.microsoft.com/en-us/library/dd799299(v=ws.10).aspx

Install Windows To Go in a VHD on a USB Hard Drive

Ever wanted to boot Windows 8 from a VHD file on a USB Hard drive? Ever wanted to take Windows To Go for a test drive? Probably not, I’ll admit, it’s kinda obscure. However, with USB 3.0 becoming more prevalent in our new Laptops and Workstations, it makes this kind of thing a lot more viable in today’s environment. What can you do with such an installation? Well, for me, it means not lumping around my laptop everywhere. It also means, I can have a whole environment, ready to go, copied on to a USB hard drive. I can then copy that VHD file and have a backup sitting on a computer somewhere if I ever need it. Plus, it’s just fun to do.

WARNING: - This will break things if not done correctly. Don’t do this on your production machine. I’d highly recommend using a spare workstation or laptop to get this running. I’ve found you can actually just do this on a Hyper-V VM. Just offline the USB DRIVE and mount as an IDE drive in the Hyper-V VM.

Prerequisites

Software

  • Windows 7 USB DVD Tool
  • Image X – You can also get this from the Windows Automated Installation Kit.
  • Windows 8 Enterprise ISO

Hardware

  • USB stick 4GB to boot from.
  • USB Stick or USB Hard drive (probably 20 gb at least).

 

Build a bootable USB stick

Install the Windows 7 USB DVD tool and open it. Then choose the Windows 8 Enterprise ISO for the source.

Select USB Device.

Select Begin Copying.

This will then go through and copy the files over.

 

Create a Windows 8 VHD File

Open up Computer Mangement, and navigate to Disk Management. Right click and Create VHD.

Specify the location of the VHD file, the size and whether you would like it to be a VHD or a VHDX. It’s recommended also that if you’re using this for anything but testing then you should use a Fixed Size disk as you will get a performance boost.

**NOTE**- The VHD file needs to be on a Basic disk. This won’t work with Dynamic Disks.

Once that has been created, go back into Computer Management. Right click Disk Management and select Attach VHD

It may already be attached. If so skip this step.

Intialize the disk and create a New Simple Volume. Take note of the Drive Letter.

Mount the Windows 8 ISO.

 

Install the OS on the VHD file

Open an elevated Command Prompt and navigate to the location of ImageX. At the command prompt, type the following

imagex /apply M:\sources\install.wim 1 K:

Where M: is the drive letter where you have mounted your Windows 8 ISO and K: is the drive letter of the VHD file.

 

Boot from the bootable USB Stick

When the OS boots up, hit SHIFT + F10 at the following screen.

 

Run Diskpart at the command prompt. Type the following italicized text at the command prompt.

X:\Sources>diskpart

Type the following commands

DISKPART> Lis vol

In my case E:\ is my USB Hard Drive.

DISKPART> Select vdisk file=E:\windows.vhdx (E: is the USB DRIVE)

DISKPART> Attach Vdisk

DISKPART> Lis vol

In my case F:\ is the mounted VHD file.

DISKPART> Exit

X:\Sources> Bcdboot F:\Windows /s E: /f ALL /v (E: is the USB DRIVE, F: is the mounted VHD file)

To find out what all those switches mean, have a look at this web page. http://technet.microsoft.com/en-us/library/dd744347(v=ws.10).aspx

X:\Sources> Bootsect /nt60 E: /force (E: is the USB Drive).

To find out what all the switches fot the Bootsect command are have a look at this web page. http://technet.microsoft.com/en-us/library/cc749177(v=ws.10).aspx

X:\Sources> Wpeutil reboot

Now reboot, take out the bootable usb stick that we used to boot up.

You can also use this to install other Operating Systems. 😀

 

I used the following links to make up this guide. Hope this helps and enjoy!

http://technet.microsoft.com/en-us/library/hh825709.aspx

http://www.rmprepusb.com/tutorials/win8vhdonusb

http://www.rmprepusb.com/tutorials/win8togo

http://blogs.technet.com/b/haroldwong/archive/2012/08/18/how-to-create-windows-8-vhd-for-boot-to-vhd-using-simple-easy-to-follow-steps.aspx

http://scn.sap.com/community/events/innojam/blog/2013/05/07/how-to-install-windows-8-into-a-virtual-harddrive

http://www.hanselman.com/blog/GuideToInstallingAndBootingWindows8DeveloperPreviewOffAVHDVirtualHardDisk.aspx

 

 

Assigning Users to ConfigMgr ReportUsers group in SCCM 2012

I have found that delegating permissions so that specific users are only allowed to view reports in SCCM 2012 can be a little tricky. I wanted to be able to add an Active Directory group to the ConfigMgr ReportUsers group in SCCM 2012. Then these users could simply view certain reports but not be able to build, create, edit or manage those reports and also not have access to the ConfigMgr Console. I think that’s a reasonable request. After all, one of the benefits of combining the reporting services point with SSRS in 2012 is being able to view the reports through the web console. Here is a little rundown of the pain that I’ve been through troubleshooting this issue.

I tried setting the permissions via the Web Console. I thought I could set the permissions and then those permissions would propagate down to the lower folders. This is the default behaviour after all.

Unfortunately, the permissions didn’t propagate. Not only did they not propagate, but I found that if I manually went through and set the permissions on the sub folders, within 10 minutes or so, those permissions would revert back to default. This mad me sad, and angry. But mostly sad.

So I thought I better do a little fishing, I decided to check the SRSRP.log file on the ConfigMgr server to see if could find out what was going on. I found this.

It turns out that SCCM is checking every 10 minutes or so, to see if the permissions are the same with what is in SCCM. If the permissions have changed in the Web Console, SCCM promptly changes them back.

So then, how do we assign user to the ConfigMgr Report user group?

In order to get it working here are the steps that I needed to follow. First, create the group that you would like to delegate the privileges to in Active Directory Users and Groups. Fill that group with the users you would like to delegate access to.

In the SCCM console, navigate to Administration > Security > Security Roles and COPY the Read-Only Analyst role.

You will now need to go through each individual permission and make sure run report is the only permission assigned. This will take a long time. The other option is to just associate the Read-Only Analyst role. This might give more permissions than you would like to give however. That’s up to you.

Now in the SCCM console, navigate to Administration > Security > Administrative Users. Right click Administrative Users and click Add User or Group.

 

Fill out the wizard. Leave the Collections and Security Scope as default.

Now go back to your web browser to check that the permissions have applied. It might take up to 10 minutes to resync. You can check the log file if you like. CMtrace.exe is a tail log viewer so it will update in real time.

You should see your group listed with the rights ConfigMgr Report Users. Now your users can view reports without breaking anything! Woohoo!

You can find more information on Reporting Services in SCCM 2012, here > http://technet.microsoft.com/en-us/library/gg682105.aspx