Blog
This quick video demonstrates a custom user interface for editing user directly from FIM 2010 R2. It's leveraging 99% from the FIM Portal except that little 1% that I believe it needs a face lift. The Resource Control Display Configuration (RCDC) object in FIM for editing users can now be replaced with a cool user interface. In addition, the user is not being redirected to another page.

This approach can be applied to other FIM objects.

 

This guide will illustrate a step-by-step instructions on how to install Microsoft Windows Server 2012, the latest version of Microsoft Windows Server series.

 1) First, you need to boot your machine with a Microsoft Windows Server 2012 DVD, or a Microsoft Windows Server 2012 ISO file which could be loaded on a Flash Drive or mounted on your virtual machine using any visualization technology (i.e. Microsoft Hyper-V). [see figure 1]

2) The first screen that will show up after loading the Installation media will be as the following. It is very similar to installing Microsoft Windows 7 or Microsoft Windows Server 2008. Just select the default language and the default time and currency format for brand new operating system. [see figure 2]

3) Just click on Install now. Alternatively, if you want to go further with the other features that can be done at this stage you can click at Repair your computer. [see figure 3]

4) Enter the product key. [see figure 4]

HyperV2012-01 WinSrvr2012-01 WinSrvr2012-02 WinSrvr2012-03
Figure 1 Figure 2 Figure 3 Figure 4

 

5) Now, you can choose between Server Core Installation and Server with a GUI:
The “Server with a GUI” option is the Windows Server 2012 equivalent of the Full installation option available in Windows Server 2008 R2. The “Server Core Installation” option reduces the space required on disk, the potential attack surface, and especially the servicing requirements, so we recommend that you choose the Server Core installation unless you have a particular need for the additional user interface elements and graphical management tools that are included in the “Server with a GUI” option. [see figure 5]

6) Nothing much to do here! Just accept the license terms to continue. [see figure 6]

7) To go with a fresh installation of Microsoft Windows Server 2012 you need to choose the second option Custom: Install Windows only. If you want to upgrade from Microsoft Windows Server 2008 R2 you may select the first option Upgrade: Install Windows and keep files, settings, and applications. [see figure 7]

8) I think you are used to this screen, the same as what you see when you install Windows 7 or Windows Server 2008. You can simply click on Next. [see figure 8]

WinSrvr2012-04 WinSrvr2012-05 WinSrvr2012-06 WinSrvr2012-07
Figure 5
Figure 6
Figure 7
Figure 8

 

9) This is what appears if you clicked at Driver options (advanced) at step #8. [see figure 9]

10) After clicking on next at the previous step, the installer will immediately start installing the Windows files freshly. All what you need at this step is to relax and wait until it is done. [see figure 10]

11) Now it is the time to set your Administrator's account password. After you type the password two times in the Password and Reenter password fields, click on Finish. [see figure 11]

12) When you see the following screen, press Ctrl+Alt+Delete to see the login screen. [see figure 12]

WinSrvr2012-08 WinSrvr2012-09 WinSrvr2012-10 WinSrvr2012-11
Figure 9
Figure 10
Figure 11
Figure 12

 

13) Here you type in the password that you have just assigned to your Administrator account. [see figure 13]

14) After you successfully login for the first time. The Server Manager will load automatically. [see figure 14]

15) This is how the Server Manager looks in Windows Server 2012, where you can setup roles, features and setting for your server machine. [see figure 15]

16) The easiest way to shut down your machine is to open Windows PowerShell and type the command: shutdows -s to shutdown the machine, or shutdown -r to restart. [see figure 16]

WinSrvr2012-12 WinSrvr2012-13 WinSrvr2012-14 WinSrvr2012-16
Figure 13
Figure 14
Figure 15
Figure 16

 

Bonus: Keyboard shortcuts using Windows Key

logo The following table summarizes the most helpful keyboard shortcuts that are based on Windows Key button on your keyboard. They can be used on Windows Server 2012 as well as Windows 8!

 

Key Combination Functionality / Action
Windows Key + C Opens Charms bar
Windows Key + Ctrl + Tab Cycles through apps
Windows Key + Shift + Tab Cycles through apps in reverse order
Windows Key + D Switch to desktop (from start screen)
Windows Key + E Opens file explorer
Windows Key + F Search (files and folders)
Windows Key + H Share
Windows Key + I Settings
Windows Key + K Devices
Windows Key + M Minimizes current windows on desktop
Windows Key + O Sets device orientation
Windows Key + Pause System properties
Windows Key + PgDown Moves current app to right monitor
Windows Key + PgUp Moves current app to left monitor
Windows Key + PrtScr Save screenshot
Windows Key + Q Global search
Windows Key + R Run command
Windows Key + spacebar Switch keyboard/input language
Windows Key + TAB Provides list of running programs
Windows Key + U Ease of access center
Windows Key + V Cycles notifications
Windows Key + Shift + V Cycles notifications in reverse order
Windows Key + Y Shows desktop screen
Windows Key + W System settings search
Windows Key + X Quick access menu
Windows Key + Z Opens app bar

 

 - - - Thank You! - - -

Husam Hilal, Software Engineer / IT Consultant
This email address is being protected from spambots. You need JavaScript enabled to view it.


Sometimes you want to make a decision before you send an approval to someone. Maybe he's off, and you want his assistant to approve it. Or maybe you decided that the set members should get the approval request and not an individual or a group.

In this blog post, we will learn how to develop a custom workflow activity to pass approver/s to workflow data [//WorkflowData/ToApproveTheRequest]. Then, this workflow data will be used in the Out-of-the-box (OOB) approval activity. It can also be used in the email notification activity.

This approach will eliminate the effort of developing/overwriting the Approval Activity, still, it provides a nice way to develop your business rules/ logic, and it will allow you to leverage the OOB approval activity.

The example we will be discussing will pass set members to the workflow data, knowing that, you can't assign set membership OOB to the approval activity. Even if you updated the XOML directly, and added the ObjectID of the set to the approvers list, it will not send the approval request to the members; instead, the set object will be the approver and the computed actor (Which doesn't make sense).

The screenshot below shows that you can only select Users, DG, and SG to approve requests.

The custom workflow activity

I'm going to assume that you have the knowledge of developing and deploying a custom workflow activity in FIM.

To start off, we will be using two code Activities and one FIM ReadResourceActivity:

We will also use one dependency property to get the Set ObjectID from the workflow activity:

public static DependencyProperty ApproverSetProperty = DependencyProperty.Register("ApproverSet", typeof(string), typeof(ZevaWhoGetNotified));

public string ApproverSet
{
    get { return (string)this.GetValue(ZevaWhoGetNotified.ApproverSetProperty); }
    set { this.SetValue(ZevaWhoGetNotified.ApproverSetProperty, value); }
}

The first codeActivity will be as following:
private void prepareReadResource_ExecuteCode(object sender, EventArgs e)
{
    //Set the resource id of the set object to the readResourceActivity
    //We are getting the value from the dependency property
    //It's also a good idea to set the Actor ID to FIM Service Service Account
    this.readSetMembers.ResourceId = new Guid(this.ApproverSet);

    //Our attributes selection will be only ExplicitMember
    this.readSetMembers.SelectionAttributes = new string[] { "ExplicitMember" };
}

The second codeActivity will be as following:
private void setWorklfowData_ExecuteCode(object sender, EventArgs e)
{
    //Create a new list of unique identifiers and let it have all the set members
    //The attribute ExplicitMember is a multivalued attribute, that's why you need a list
    //If it's a single value attribute then construct a Unique Identifier object
    List<UniqueIdentifier> uiApprover = this.readSetMembers.Resource["ExplicitMember"] as List<UniqueIdentifier>;

    SequentialWorkflow parentWorkflow = null;
    if (!SequentialWorkflow.TryGetContainingWorkflow(this, out parentWorkflow))
    {
        throw new InvalidOperationException("Cannot find parent workflow!");
    }

    //Add the approvers to the workflow dictionary [//WorkflowData/WhoToGetNotified]
    parentWorkflow.WorkflowDictionary.Add("WhoToGetNotified", uiApprover);
}

After we deploy this activity to FIM, we will have an activity that looks like the image below, which we can populate it with the Set ObjectID

We will use the approval activity now as following:

Conclusion

We can now have our business logic in a separate workflow activity, and then pass the approver/s or users to be notified to the other activity. The idea is to pass a UniqueIdentifier or a List of them. You should not pass string values to it.


Eihab Isaac
eihab@zevainc.com

Recent Bloggers

  • Website This email address is being protected from spambots. You need JavaScript enabled to view it.
  • This email address is being protected from spambots. You need JavaScript enabled to view it.
  • This email address is being protected from spambots. You need JavaScript enabled to view it.
  • This email address is being protected from spambots. You need JavaScript enabled to view it.

User Login