Microsoft cloud engineer - SharePoint, Office 365, Azure, DotNet, Angular, JavaScript.
Microsoft cloud engineer - SharePoint, Office 365, Azure, DotNet, Angular, JavaScript.


DevAdmin = Best job title!

Admins and Devs seem different.  They often argue, yet can learn from each other.  I’ve done both and neither is the complete picture.   Below is an idea for scripting, scaling, and growing by learning both.  “DevAdmin” is a role with incredible potential.   Please leave a comment, email me, or send a tweet.   I’d really like to hear your feedback.

Dev Admin
  • Says “yes”
  • Goal = More features
  • Liberal approach
  • Says “no”
  • Goal = More stability
  • Conservative approach

Above is my stereotype of both groups.  While not perfect it’s a useful frame of reference.  When speaking to one group (or the other) keep their unique perspective in mind to communicate more clearly.  Below is an outline for mixing both to create a more balanced IT worker:

  • Says “maybe” and listens
  • Goal = Stable features
  • Liberal on features, Conservative on process
  • Knows both sides, actively works on both

RDP sucks at scaling.  But it’s great for small tasks.  How do you admin 300 servers?  Hmm … that’s a bunch of windows to juggle! 


   I developed a working concept called the “grid” script that would place real-time configuration on a single page.  Each machine/server is a vertical column.   Each configuration point is a row.   On a single page I can tell exactly what settings are missing, where changes are needed, and ensure high quality with lower costs.   I must be a DEV to code this tool.   I must be an ADMIN to read and use it.

I’ve reserved the URL above to place my code and EXE once complete for all to enjoy.   More to come soon …




The technology environment will only grow more complex.   ADMINs must learn some DEV (script, powershell, dot net, etc.) to remain marketable.   DEVs must learn some ADMIN (performance, capacity, uptime) to know how to scale up their application and ensure stable delivery to end users.

Related Posts

[Me] = Easy Item Level Security

Ever wanted item level security in SharePoint without the headaches?   It’s easier than you might think. 

Business Goal:   Provide a personalized dashboard where application owners can confirm they still need the system access they have.   This access review should be quick and easy, so limiting the display to only records they need would be great.

Technical Design:   SharePoint custom list with a multi-person column (“team”) and view filter [Me] to display only your records.   The multi-person column can hold any user in the User Information List of your site collection.    If you don’t see someone’s name here you will need to first grant them permissions (i.e. Contributor) and then come back to edit.    The permission grant will register their name into the site collection so you will see it in the drop down menu.   Despite having multiple values the =[Me] filter works perfectly to match only records where the visitor’s name is listed.   You can also use DataSheet edit mode here to fill down (or copy/paste) and update many records quickly.   Generally on a project like this many records will have a common “team” of people to review.

a3-3-2010 10-20-12 PM


Action Steps

  • Create custom list with your columns plus a multi-person column “team”
  • Grant site permissions
  • Populate the list.   For “team” select people who will see/edit their own records.
  • Modify the default view, add filter “team=[Me]’”
  • Test with a few pilot users
  • Send one email with the link and everyone will see a personalized list when they visit.


NOTE:  “security through obscurity” is not a best practice for highly sensitive or confidential data.    If the data has a firm require to not be viewed by a third party you’ll want to implement SharePoint’s true item level security feature.  has a great action step for granting security that can help automate to create a sustainable and reliable security enforcement.  (thanks to @unclepaul84)

Video Walkthrough (03:39)

How to build the sample list in full step-by-step video with a demo of the final working product.

[Me] = Easy Item Level Security from Jeff Jones on Vimeo.

Finding SPS 2003 sites in MOSS 2007 for reghost with TSQL

In a large environment admins often see mess leftover from previous upgrades.   Recently I looked at a system that had many sites upgraded from SharePoint Portal Server 2003.   They still had the old top menu, any had were using broken CSS themes that made for ugly looking homepages.



USE [SITE_sharepoint]
SELECT 'http://sharepoint/' + Webs.FullUrl
FROM NavNodes
INNER JOIN Webs ON NavNodes.WebId = Webs.Id
WHERE (NavNodes.Name = 'Create')

The above TSQL query can be run directly from SQL Management Studio against your content databases to locate any sites that have the “Create” navigation node.   The Microsoft.SharePoint.Navigation.SPNavigationNode  class provides our hook to go find SPS 2003 sites across the environment.

From there you can reset the navigation and remove these nodes to give a cleaner for streamlined appearance.




The “Site Settings Reset to site definition” feature can then be used to reset ASPX pages to out-of-the-box look and feel.   Lastly, I think it’s a good idea to apply a new theme.   Often unghosted (customized) ASPX pages also have a FrontPage 2003 theme applied.   Choosing a new theme overwrites those references with new clean CSS that looks much better.


Happy SharePoint-ing!


InfoPath Current User (AND Manager) Profile. Lumbergh Remix!

Recently I needed to get the current user and their manager’s Active Directory profile to auto-populate a form.   Itay Shakury wrote a great blog post titled Get the current user without writing code that covers the first need (current user) by reading UserProfileService.asmx. But I needed more.


Download sample form – ADManagerDetails.xsn

The strategy was to use 2 data connections and query the 2nd with the manager user ID from the first.   At that point you can map any document text field to be ready only and get the default value from one of these data connections.


Action Steps

  1. New InfoPath form in design mode
  2. Add 2 receive data connections to http://sharepoint2007/_vti_bin/UserProfileService.asmx
  3. Name them “UserProfile” and “ManagerProfile
  4. Leave the input parameters empty.  It will default to the current user.
  5. Open form Rules and add steps to “re-query” the ManagerProfile:
    1. Set field’s value:  query subtree of ManagerProfile to “Manager” value from UserProfile data tree
    2. Query data connection ManagerProfile.  With the filter set, it will now return different data.
  6. Enjoy and tell your friends.

Video Walkthrough (05:57)

How to build the sample form (above download) in full step-by-step video.  Only 6 minutes!  Well worth the time. 


InfoPath Current User (AND Manager) Profile. Lumbergh Remix! from Jeff Jones on Vimeo.

© Copyright 2016
@ SPJeff

Return to Top ▲Return to Top ▲