Tag: SharePoint 2010

  • SharePoint Road Trips!

    With the devastating storm that has hit New Hampshire over the weekend, there is no better time for a SharePoint Road Trip to start than today!  It was so bad up here that our city postponed Halloween Trick-or-treating until next Sunday.  Here are a couple of pictures of the devastation, just from our driveway:

    1 2 3

    Here is a quick list of where you can find me over the next 2 months.

    banner

    I fly out to Las Vegas this evening to present 5 sessions at the SharePoint Connections Conference this week (October 31st – November 4th), 3 of which are with my good friend and collaborator Cornelius J. van Dyk.  I am presenting:

    HAD13: SharePoint Logging & Debugging: The Troubleshooter’s Best Friend (Tuesday)

    HAD14: SharePoint Performance: Best Practices from the Field (Tuesday)

    HAD15: Battle Scarred But Still Standing: A SharePoint Admin’s Tell-All (Wednesday)

    HAD12: Heavy Metal PowerPivot (Thursday)

    HNC04: Human Workflow with Visio 2010 and SharePoint Designer 2010 (Thursday)

    denver

    After Las Vegas I head to Colorado to take part in SharePoint Saturday Denver (November 11-13), an amazing 2 day event (registration is open and there are still some seats available), where I will be presenting:

    SharePoint Logging & Debugging: The Troubleshooter’s Best Friend (Friday)

    SharePoint Performance: Best Practices from the Field (Saturday)

    I am also planning on taking part in my first ShareSki as a part of SharePoint Saturday Denver!  I haven’t skied in Colorado in almost 10 years (East Coast skiing is nothing like Colorado sadly), but if you can’t find me on the slopes after my sessions, look for the guy in the full body cast by the fire drinking scotch  

     nhspug

    Corne & I will be presenting at the December installment of the Granite State SharePoint Users Group located at Daniel Webster College on 12/8 @ 6pm, which I happen to co-organize, followed by a SharePint.

    We will be doing our SharePoint Logging & Debugging: The Troubleshooter’s Best Friend session.  If you are in the area New Hampshire / Northern Massachusetts area please check us out.  We have had 7 sessions and we are continuing to grow.  We have great list of speakers already lined up for 2012!

    sasug

    I am heading back to the Lone Star State to round out the calendar year of SharePoint where I will be speaking at the SASPUG meeting on December 15th and presenting Heavy Metal PowerPivot Redux, a session featuring the goodness of PowerPivot v1 and a preview of PowerPivot v2 and Power View.  Join us at Rackspace – Castle I-35 and Walzem starting at 530p. 

    fireworks Happy New Years!

    That will wrap my SharePoint Road Trip to a close.  I hope to see you at one of more of these great events.  The 2012 calendar of SharePoint events is already starting to fill up with amazing events so keep an eye out for an announcement later in the year about those dates.

  • How to: Run PowerShell ISE as Administrator under alternate credentials

    Coming from a security focused AD background I prefer to have the Managed Service Accounts OU locked down with a GPO restricting interactive logon to a server. This helps avoid service accounts becoming compromised and being taken advantage of in attacks.

    Having an ISE is especially helpful when you are doing SharePoint work on the farm and while I am a big fan of PowerShell, running straight at the command line is often a pain. Rather than installing one of the terrific third party solutions out there for an Integrated Shell Environment I try to only install the PowerShell ISE.

    As we know, there are something that you cannot do unless you are running in the context of the Farm Administrator account. There is code out there that will let you elevate your PowerShell script and run in the context of a different user, but I really wanted to be able to open PowerShell ISE as the farm account so that I can run parts of a script at a time, or rerun specific lines.

    Here is the code that I compiled that allows me to launch PowerShell ISE as the Farm Admin account:

    Add-PSSnapin Microsoft.SharePoint.PowerShell -EA 0

    # Farm account name
    $farmAccountname =
    “domainservice_account”

    # Load the Farm Account Creds
    $cred = Get-Credential
    $farmAccountname

    # Create a new process with UAC elevation S
    tart-Process
    $PsHomepowershell.exe -Credential $cred -ArgumentList “-Command Start-Process $PSHOMEpowershell_ise.exe -Verb Runas“ -Wait

    Once your PowerShell ISE window is launched you can run the following code to validate that you are running as the user that you are expecting:

    [Security.Principal.WindowsIdentity]::GetCurrent().Name

    Great you learned some more neato PowerShell, but why do I need to use a PowerShell command for this?

    You may be asking why wouldn’t I just do a simple “SHIFT+Right Click” and “Run as different user” rather than resorting to a PowerShell solution. The answer is that doing that does not give you the runAs Administrator privileges that we need to do so many of SharePoint’s PowerShell Functions.

    Smarty Pants.

    powershell PowerShell launch code on GitHub

    notepad Text launch code

    powershell User Context validation code on GitHub

  • PowerShell Account Creation Script

    When building repeatable SharePoint farms I need to quickly create new service accounts. Since there is no need for a SharePoint Farm to be built using a Domain Admin account, there is really no need for a SharePoint Consultant to ask for or be granted Domain Admin rights.

    I spent a good portion of my career prior to SharePoint as a Domain Admin/AD Architect, and a good portion of that role is knowing that most people who ask for Domain Admin rights don’t actually need them.

    If you want to start off on the right foot with the AD team in any company, tell them you do not want or need Domain Admin rights. Immediately you have more credibility with them than most other people.

    As a result of this, I have put together an account creation script that I use and turn that over to the Domain Admins so that they can handle the creation for me. I simply list out the accounts that I want and then populate them into the following PowerShell:

    $domainName = $env:USERDOMAIN
    $LDAP
    = “LDAP://CN=Managed Service Accounts,DC=$domainName, DC=%local%“
    $objCN = [ADSI]$LDAP
    $objUser
    = $objCN.Create(“user”,“CN=%Friendly Name%“)
    $objUser.Put(“sAMAccountName”,“%SAMAccountName%“)
    $objUser.Setinfo()
    $objUser.psbase.invokeset(“AccountDisabled”, “False”)
    $objUser.SetPassword(“pass@word1”)
    $objUser.setinfo()

    Using the $env:USERDOMAIN I am able to grab the current logged in domain context rather than having to specify it. Make sure that you change the last DC to the correct domain suffix (.com, .net, .org, etc). You will need to specify the %Friendly Name% & %SAMAccountName% that you are trying to create.

    The code above will allow you to create accounts that are active immediately without additional intervention.

    There are additional steps that need to be taken to grant rights for the User Profile Sync account and local Administrator rights that need to be granted to the Farm Admin account, but those will get covered in later posts.

    Sample scripts: powershell notepad

  • Heavy Metal PowerPivot Redux Deck from BASPUG meeting is now online!

    My friend and co-mischief maker, Cornelius J. van Dyk, & I were honored to be able to present last night at the Boston Area SharePoint User Group, and as promised below you will find a link to our deck.  Thanks to everyone who came out to hear us speak!

    Heavy Metal PowerPivot Redux

    BASPUG

  • Presenting “Heavy Metal PowerPivot Redux” tonight at BASPUG

    My good friend, Cornelius J. van Dyk, & I are presenting one of our favorite topics at the Boston Area SharePoint User Group this evening, Heavy Metal PowerPivot!

    For those of you who have seen us present this topic in the past, you might be asking “ok, I’ve seen it before, why should I attend?”.  The answer is simple: SQL Server 2012 CTP3.  We will be demoing the new installation experience as well as a few of the new features that are coming in the update to this amazing product.

    We hope you will come out and join us for this deep dive into the existing version and a glimpse into Denali.

    Our friends at BASPUG would like me to mention that you can/should register for the event at http://baspug18.eventbrite.com/

    BASPUG

  • How SharePoint Governance is like a moose in a swimming pool

    I was watching the news last night and a story came on about a man in Manchester, NH (about 30 minutes from my house) who heard a noise that was coming from his backyard, and when he turned on this lights he found a Moose in his backyard.  The moose was spooked by the sudden flood of light and charged through his fence and directly into the man’s swimming pool.

    moose

    The man from didn’t have many options going in to the situation, it just descended upon him from nature and he was forced to simply deal with the situation.  He went from having a nice quiet evening at home to needing help from 12 people to get a moose out of his pool, having a shredded pool cover, and ending up with his saga documented on the evening news.

    How this relates to SharePoint

    Lying in bed after fasting all day for Yom Kippur, the Jewish day of Atonement, all I could think was how similar this man’s scenario was to all too many deployments of SharePoint: Someone hears something, starts to investigate, the next thing they know they have a 2000 pound angry animal on their hands.

    In our many cases we have the ability to hold off the animal and redirect its efforts into something more productive and healthy with governance and proper planning, however many times the beast barrels through our defenses and we are dealing with a world of trouble that we didn’t intend on.

    The man in the story had many options:

    1. ignore the situation and hope it clears itself up
    2. grab a gun and shoot it himself
    3. call a local hunter to deal with it for him
    4. calmly call the police and figure out how best to deal with the situation with expert assistance

    I sincerely hope that when faced with situations like this we deal with things as well as the man from the news story did because in the end, all that was really lost was part of a fence, a $200 pool cover, and some time.

    Here are a couple of things to keep in mind, whether you are dealing with an angry moose, or an impending SharePoint deployment:

    1. Find out what you don’t know
    2. Stop and determine the correct plan of action before proceeding
    3. Understand what the drivers of your situation are
    4. Get control over an out of control situation

    When it comes to SharePoint deployments, whether properly conceived or not, it is always best to stop and examine your options.  It is always going to be best to take a bit of time up front to save a complete rebuild later.

    The moral of the story

    When cooler heads prevail, everyone comes out alive, and with a reasonably interesting story to share.  Think before you act, and in our world, before you implement.

  • SharePoint Network Topology Diagram Add-In

    This was referred to this morning in the keynote at SharePoint Conference 2011 and appears to be a really cool solution.

    Source: Visio.Microsoft.com

    “SharePoint Network Topology Diagram Add-in leverages Visio Services to deliver a near real time intuitive rendering of the status of SharePoint farm’s infrastructure and associated services. Visio Graphics services – A key part of SharePoint 2010, enables customers to share their dynamic data driven Visio diagrams and dashboards within SharePoint. This helps extend the reach of valuable information and insights across relevant teams within the enterprise for capacity planning and general IT maintenance.

    The timer job fetches all the key technical metrics about the SharePoint farm infrastructure using SharePoint object model and WMI (Windows Management Instrumentation). It’s frequency can be adjusted based on specific administrative needs. The timer job creates a SharePoint list that is linked to a Visio diagram. A client add-in helps you generate, customize and link the output of the timer job to a Visio diagram by using a wizard driven interface.

    Upon publishing the Visio diagram within SharePoint, Visio Services enable users to refresh their diagram from within SharePoint.”

  • When was the last time I deployed that SharePoint solution?

    Ever have trouble remembering when you last deployed a specific solution?  Now, none of us would ever allow an environment to be uncontrolled and let people willy-nilly install solutions, but in the real world sometimes things slip through our well controlled documentation and we need a hand.

    For those of us with more than 5 farm solutions hunting and pecking for the last installed date can be problematic.  One of my colleagues (at this point I am forgetting who, so if it was you take a bow) helped me write a script to grab the information from SharePoint.

    Here is the script:

    a

    This will output the information to a text file on your C: called solutionlog.txt.  Remove the “ >> c:solutionlog.txt “ and it will display onscreen like this:

    b

    If you are in an environment that has continuous integration coming out of TFS or another like service, you can schedule this and have it email you the output on a regular basis. 

     

    spflogging

  • Breaking the silence–a personal note

    Some people have noticed the unusual lull in my posting.  Others are probably wondering why in the world they are still reading after the title doesn’t have anything to do with SharePoint.

    The out of the norm silence is due to several things happening in my personal world, which I normally try to keep out of my blogging, but since this has a direct correlation to my SharePoint community involvement I have decided to share it here.

    Since my vacation at the beginning of July I started to recognize that my involvement in the community and my desire to be more involved in SharePoint not just inside of my employer were not well aligned with my current career path.  My employer, while supportive, was not overly interested in my SharePoint community involvement and combined with other internal factors I realized that it was time for me to consider my career options.

    Like anyone who is considering a major life change I turned to my friends and family for advice, but I also reached out to my friends and trusted advisors in the SharePoint community and the response was overwhelming.  The support and advice that I received from colleagues around the community was amazing.  I am hard pressed to think of another group of professionals that are as impressively supportive and helpful of people (that they may have never actually met in person) as the SharePoint community.

    With the decision made that it was time for a change, I returned home to find a new SharePoint Users Group was starting in my area and I immediately dove in.  Now one of the organizers for the group we have made strategic moves to improve the community interaction here in New Hampshire, such as moving the meeting date and time out of conflict with our sister User Group down in Boston and getting some top quality talent to come and speak to our members.  We have also gotten sponsors for raffles, giveaways, and a new SharePoint Foundation 2010 site hosted by FPWeb.net that will come online later this month.  For more information about NHSPUG visit our site at http://www.granitestatesharepoint.org/

    I also got involved with SharePoint Saturday New Hampshire, which is this coming Saturday, September 24th in Manchester, NH at the Southern New Hampshire University Campus. You can still register for SharePoint Saturday New Hampshire by visiting our site at http://www.sharepointsaturday.org/nh/default.aspx

    All of that made me feel great and really reconnected me with the community, but I still had to figure out what I really wanted to do from a career perspective.  That’s where LinkedIn came in.  I have always seemed to get between 5-12 linked in requests per week from recruiters and always ignored them.  I decided that it was time to hear what some of them had to say.  So I responded to 5 of them.  Almost instantly I got a call from a woman named Debbie Strevens from Workbridge Associates who claimed to have connections to every person in a power position in the Greater New England area and would find me the exact right for for me.  I chuckled a little bit internally after the call thinking, “Wow, she has some pitch but there is no way she can be for real.”  Turns out, she was. 

    A few months prior I had gotten some great advice from Christian Buckley of Axceler, whom I have come to respect and value as a friend and community contributor (and hopefully soon to be SharePoint MVP), which was “Sit down and write my own job description.  Before you look for a new career opportunity, know what you want.”

    I gave my job description to Debbie and in just under two weeks I had numerous competitive offers.  After much soul searching and long discussions with my wife I accepted an offer from Sentri, Inc. to be their new SharePoint Practice Director.

    While it was hard leaving what I had put my blood, sweat and tears into at my previous employer, I have been warmly embraced by Sentri and am truly excited to be working with a dynamic organization that is whole heartedly committed to Microsoft technology.  Sentri’s president, Philip Green, is famous for saying “At Sentri we put all our eggs in one basket, Microsoft Software.  Fortunately, this is one very, very safe basket.  We are Microsoft Technology Experts.”  It’s a pretty compelling statement to someone who has dedicated their career to Microsoft Technologies.

    Sentri has embraced and is fostering my commitment to the SharePoint community, encouraging my blogging (which will be cross posted on the Sentri site soon), speaking, and activities with the User Groups and SharePoint Saturdays.

    I am excited to be on a new career path that will allow and encourage me to follow my passion.  Expect more regular & diverse content in the weeks and months to come.

  • What is MaximumFileSize limit set to on all of my Web Apps? Now that I know, how do I change it?

    I ran into an issue today where I needed to quickly pull the MaximumFileSize setting for every web application across my farms.  I found lots of blogs that told me how to change the setting, but none that told me how to pull the information from the farm before I change it.

    The UI method for this is simple, but cumbersome if you have multiple web apps and multiple farms.  Simply go to Central Administration|Application Management|Manage Web Application and select the Web Application you want to look at.  In the ribbon the General Settings button will light up and when you click on it you will get the menu that includes:

    a

    That great for single scenarios.  I wanted a PowerShell option that would loop through every one of my web applications and give me a list that I can store, and also will give me a quick way to audit if someone has made an unauthorized change.  Here is what I came up with:

    b

    The output looks like:

    c

    In a DevQA want all of my sites to have the same file upload size limit, so I can use the following script to set them all the same:

    d

    In a Production environment I want to have different upload size limits based upon what the function of the Web App is, so I will use a script that allows me to change the limit on each specific web app:

    e

    Why all the “add-pssnapin microsoft.sharepoint.powershell –ea 0”?

    Easy answer to this is that I am generally the numbskull who forgets to pop open the correct PowerShell console (SharePoint 2010 Management Shell) on a server that I don’t usually log into, or I am using PowerShell ISE and haven’t configured a profile.  The –EA 0 flag allows me to throw the command to load the snap-ins without errors showing up if they are already loaded.  Makes for a cleaner overall experience.