Showing posts with label sharepoint. Show all posts
Showing posts with label sharepoint. Show all posts

Tuesday, June 21, 2011

The Low-Hanging Fruit: 5 Quick Projects for Your Windows Network

So you have a small business environment with a handful of employees and computers. Maybe you have a few dozen computers. Maybe you’re so busy running around tending to user needs and putting out fires that you haven’t stopped to take a breath and prioritize where to dig your trenches yet.

Fear not. I’ve put together a short list of easy projects you can knock out in a few hours that will help shift the burden of your work either into the computers themselves or bestow your users with powers to solve their own problems ( or at least some of them ). Every minute you save each day adds up. The more time you free up, the more time you have to automate other tasks, thereby freeing up even more time. It’s a win-win-win and can easily turn into an exponential curve of goodness for you.


(1) Implement WSUS


Why? It will do a much better job of keeping your computers updated with current patches and service packs than Automatic Updates can ever do. It’s easy to setup. Easy to administer. It gives you a clear view of your environment.

Whether you have one server or two, you can drop WSUS on one of them and setup your own internal software updates management system. Automatic Updates are nice (aka Windows Update, aka Microsoft Update), but there are many update types that you cannot configure to automatically install (root certificates, optional updates, etc.). Plus, when you get WSUS up and running, you will quickly have a simple, easy, clear and concise view of your environment, including a direct view of which computers are getting updates and which are not.

Steps:
  1. Download and Install the WSUS 3.0 pre-requisites
    1. Microsoft Report Viewer Redistributable 2008
    2. Microsoft .NET Framework 2.0 (or later)
  2. Download and Install WSUS 3.0 Service Pack 2 (x86 or x64)
    1. Do not install on C: (or wherever Windows is installed). Choose a different local drive on the server to install and for storing updates locally.
  3. Configure your WSUS options and run an initial Synchronization
    1. Synchronize against Microsoft Update servers
    2. Set the schedule for off-hours (i.e. 2:00 AM)
    3. Select all the update categories except “Drivers” (my opinion only)
    4. Select only the products and platforms you have in your environment
  4. Configure a GPO to point your computers to the WSUS server for updates
  5. Come back in 24 hours to review the results
  6. Revisit the WSUS console every month to review and approve updates
Or use the TechNet guidance if you don’t trust me: click here

(2) Microsoft Security Essentials


Why? It’s a FREE and easy to deploy anti-virus/anti-virus product from Microsoft which also just happens to be pretty darn good. It’s also low-overhead compared with other vendor products in the same category (doesn’t tend to bog machines down nearly as much).
  1. Download and Install it on each computer
  2. Tip: Configure automatic “definitions” updates via WSUS
(3) VSS and Previous Versions


Why? Instead of users coming to you (email, phone, walk-up) to get deleted or corrupted files restored from backups, you can let them sort through the backups online and get their own restores without bothering you.
How: http://windows.microsoft.com/en-US/windows7/Previous-versions-of-files-frequently-asked-questions


(4) Group Policy Preferences


Why? You can easily configure a huge number of settings for your users with little effort.
(5) SharePoint Foundation Server 2010


Why? SPF 2010 has to be one of the easiest to implement intranet portal products ever. And it also happens to be FREE. Totally FREE.
Maybe you’ve tried previous versions of the free SharePoint product line like Team Services or WSS, but SPF 2010 is completely different. You can quickly take advantage of document libraries, discussion groups, forms libraries, custom lists, calendars and scheduling, and e-mail notifications.
  1. Download and Install SharePoint Foundation Server 2010 (read min. requirements)
  2. Get Started building your home page and add new pages/sites to start your journey
Additional Projects to Consider:
  • MDT 2010 (Microsoft Deployment Toolkit 2010) and WAIK
  • Saved Queries in Active Directory Users and Computers
  • More to come… 

Sunday, October 17, 2010

Buy vs Build: The Devils You Know

Author’s note: I’m not sure if this should be a longer or shorter “post” (“article”?) because the core intent could either be stated as briefly as a tweet or as long as a book.  I’m sure there could be a full semester college course on this subject, but I’m not that good.  I’m throwing a dart at the best guess board to see how it works in the end. This article emphasizes intranet portal projects, but it applies to anything that incurs a choice between buying versus building your own.  I hope it helps (or at least entertains) – Enjoy!

One of my main interests, and sources of work, is herding cats.  Actually it’s information aggregation, or process automation. Most often this boils down to using the “web” as the hub or focal point for tying it all together.  Intranets are my biggest customer.  The discussion usually circles around concerns over costs and time when choosing between a retail or “COTS” solution versus a “custom” developed solution. It usually starts with a short discussion that goes like this:

Customer: “We really need to pull our information together and link things up.  We have separate databases for HR, work scheduling, customer lists, project status, Active Directory and security roles, financial projections, contract bid data mining, compensation modeling, and so on.  We’d like to connect all those things as well as add some sort of employee “self-service” features.  Should we buy something like SharePoint or have you build it for us from scratch?”

Me: “It depends” (don’t you LOVE that classic consultant responses!)

Seriously though, it really does depend.  I have a matrix of criteria to help evaluate which is the “way to go” towards arriving at the desired result.  But first, the cheesy diagram below illustrates that no matter which “way you go” you’re likely going to incur time and cost with making it “fit” into your environment, and “fit” in between what you currently have and you wish to have.  The question is then which direction incurs the least burden.

cots_vs_custom

So, just what exactly is this “matrix of criteria”?

Criteria

COTS

Custom

Budget “hard limit”

?

?

In-House Talent (developers, admins)

?

?

Features Gap

?

?

Interfaces

?

?

Pretty simple, right?  Well, not really.  Each of these criteria potentially involves a ton of digression and drilling down.  How much so depends upon the scale of the business, the scope and scale of the “things” being integrated, and tangible and intangible constraints.

Whoa!  (record scratch sound here…) - Did you just say “tangible and INtangible constraints”?!  WTF?

Tangible constraints are pretty familiar to us all: budgets, time, staffing, physical and logical space, and so on.  Intangible constraints are usually human-based: emotional aspects, protectiveness, skill levels and expertise, and secondary distractions like, oh, for example: Joe is on the team to discuss this whole project.  But Joe manages the HR database systems.  He was forced to sit on this team by his boss, whom he doesn’t like, but who insists that it might be time to consider moving the HR system into something more accessible and flexible for interfacing with other systems.  Joe sees this as a threat to his control, and thereby a threat to his existence and job security.

Yeah.  Something like that.

If you’ve ever sat in a planning meeting that involved discussion about changing something major, or something that’s been relied upon for years and years, you absolutely KNOW what I’m talking about.  It’s more prevalent in larger corporate environments than within small businesses, but it can show its ugly head anywhere really. I will go ahead and say this, even if it causes some of you to shake your head in disagreement:

The single biggest obstacle, and cost inflation factor, in any technology-oriented project is human emotion.

Yep.  If we just acted like logical robots and implemented technology without pausing to argue over rationale and subjective value, we could get those tasks done in less than half the time it typically requires.

But let’s get back to the focus of this post, which is how to rationalize a “buy versus build” decision, primarily with respect to intranet portal projects…

You’re probably thinking that I usually knee-jerk to making a “build it” recommendation.  You would be correct.  But if you assume that my decision scoring is something like 10:1, you’d be very wrong.  My average is roughly 60:40.  That’s not because I’m trying to capture new work and income, no.  It’s because it just happens to be a function of the nature of the evaluation of criteria within the clients environments I deal with most often.

Some of the typical factors that lead me to recommend a COTS solution however are (or should be) pretty obvious:

  • Do they already have complimentary systems in place that would make it easier to add the propose intranet solution?  For example, all data is currently in a single (or clustered) database, or other information management systems by the same vendor have been in place for a long time.  It’s usually best to add a matching brick to an existing wall, than to tear down the wall to change the brick color.
  • Do they have existing development and admin talent to match the proposed solution?  Do they have .NET and SQL developers, or do they have Oracle and PHP developers?  Will they be available for this project full-time or part-time?
  • Is the customer list of desired features an exact match with out-of-box features of the product?  Is it “close”?  How close?  How many of the desired features are typically the most difficult to develop from scratch, but which are already provided by the proposed COTS product?
  • Are there existing instances of the proposed product in use elsewhere in the company?

When these factors evaluate in one direction, I usually recommend going with the COTS solution and then work to help them plan for, and implement it in the test and production environments.  SharePoint, Drupal, Joomla, etc. are all good products and very much tested and proven in their own rite.

But when evaluation of the criteria leans the other way, it then opens up another discussion and round of evaluation to vett (God, I hate the word “vett”! But I have to use it here because I have a gun to my head) the issues related to custom development:

  • Time and Budget constraints
  • Degree of Access to interface resources (cooperation)
  • Variety of interface technologies (spread)
  • Hand-off Issues

Most of these should be easy to understand, but I’m going to dig a little deeper into them anyway (why not?).

Cooperation is huge.  If the team, or the delegated staff you’re going to be working with, are going to open up and provide access and information to help you interface with their systems and data stores, great.  That makes life so much better.  But when they circle the wagons to protect their turf, or simply don’t put forth any real effort to keep the ball moving, then it becomes a huge detriment.  This falls into a semi-intangible aspect of the project scoping and assessment.  Ultimately this boils down to TRUST.  You have to trust them and they have to trust you.  You can’t scope or predict anything that’s human-oriented without familiarity and that is based on trust.

Variety of technologies, or “spread”, represents more of a metric nature.  If all of the data stores share a common technology, like Windows or Linux servers, MS SQL Server, Oracle, or XML structure, or whatever, then it helps you narrow your ingredients for baking the solution.  If there are a dozen systems you need to tie into which each does their own platform, vendor and technology dance, you’re going to have a tougher time herding the cats.  Even if all of those systems support an XML-based interface, there’s going to be additional work with planning, testing, and validating each custom interface, separate from building the actual end state.

Hand-off issues involve how the solution will be managed and maintained going forward.  You know: after you complete the delivery.  Make sure this is spelled out!  So many times I’ve walked into a project proposal meeting and this is never mentioned.  Who is going to keep this machine running after you deliver it?  You?  Them?  A mix of both you and them?  If it’s a mix, that’s the most important to spell out in terms of what, when and why.  If they expect YOU to keep it running, what is your backup plan?  Are you the only person?  That’s great if you only care about a paycheck. It’s extremely bad for the customer if you drop dead or have surgery, as well as bad for you for instilling TRUST in the eyes of your clients.  I always try to shift the role to them and offer as much knowledge transfer as possible.  This is the only possible and practical “win-win” situation.

Conclusion

If you were expecting me to stand up and shout “always do this!” or “always do that!”, I’m sorry to let you down.  But this falls into my firm belief that most knee-jerk recommendations are bullshit.  There is no “one size fits all” in the business world.  Because (and this repeats another mantra of mine): a business is a name for a group of people.  People are not stamped from a machine.  People vary.  Business varies.  Problems vary.  Solutions vary.  Be adaptable and listen.  Take notes and analyze them before proposing a solution or recommendation.  Don’t be in a rush to give an answer in the same meeting where the questions were asked.  No worthy business will hate you for saying you’ll get back to them after reviewing the facts and factors.

Friday, September 3, 2010

Building Your Own Group Policy Virtual Lab

It's a been a long time since I wrote anything about Group Policy.  I'm sure some of you are happy about that, and maybe wish I'd take even longer, but oh well.  You must endure the torture that my second-rate writing brings to unsuspecting eyeballs and those with challenged mouse clicking fingers.

Lot's of folks are skiddish (not Yiddish, an entirely different thing) about practicing and learning about Group Policy in a "safe" and protected environment.  Some will simply create a few "test" OU's and test user and group accounts in their production Active Directory environment.  That's risky.  It can actually be downright "stupid-dangerous".  Two words that go together like bacon and eggs, Tom and Jerry, politics and lying, and a few others.  The key word is "tatooing", which can render your environment, in technical terms: fucked up beyond all repair (that's FUBAR).

The better, smarter, safer way to go is using a virtual environment.  If you haven't used a virtual machine setup before, maybe you've just read and heard about the concept, it's very easy.  VERY easy indeed.  And not only cheap, but FREE.  I have to assume that if you're working with Group Policy, then you have an Active Directory environment nearby.  If you have Active Directory, then chances are you have Windows Server handy.  You are ready to go.

  1. Install a Virtual Machine product.  There are several free products to choose from, including VMware Player, Sun VirtualBox, and the ubiquitously sucky-ass VirtualPC from Microsoft, among others.  I prefer VMware Player or VirtualBox.  If you can afford VMware Workstation that's a better option since it supports "snapshots", which are very VERY helpful.
  2. Create your Virtual Machines.  You will need at least one Windows Server VM and at least one or two Windows client VM's.  For our examples, and because I **LOVE** Group Policy Preferences (or GPP's), I will recommend Windows Server 2008 or 2008 R2, and Windows 7.  If you need to support XP in your environment, then by all means: add a Windows XP VM to your mix.
  3. Prepare the Virtual Machines.  Go ahead and install the operating systems and name the computers and install any/all updates.  I also recommend downloading any utilities like Admin Tools, Resource Kits, Sysinternals tools, and so on.  Be sure to consider item #4 during this step as well.
  4. Be Careful with Network Settings!  While you are building each VM, you can leave the network setting to "bridged" or "NAT", so that you can download updates and utilities, etc.  But before you make the jump to creating the AD domain environment, move all your VM's into a private virtual network.  This is VERY important!  I won't dive into the procedure for this because it's best left to the documentation for your chosen product.  It's not difficult.
  5. Promote the first AD Domain Controller.  Go ahead and add the AD Domain Services role and run DCPROMO to create the first domain controller.  Make sure you are running in a private virtual network first!!  If you use Windows for DHCP management be sure to disable the built-in DHCP service provided by the virtual machine software.  Document the settings!  The Forest/Domain names, IP addresses, server names, admin and DSRM recovery passwords, etc.  After the DC is promoted and rebooted, be sure to give it some time to settle in, then run through your diagnostics to make sure it is operating properly.
  6. Join Desktop VM's to the Virtual Domain.  Set up each desktop VM and join them to the new domain.  Make sure they join properly and everything connects together.  This will feel like putting together a playset for your kids.
  7. Snapshot or Backup.  If you have VMware Workstation make snapshots of each VM to provide a fall-back restore point so you don't lose all the work you've done to this point.  If you don't have snapshots available, you can simply power down each VM (using the internal "Shutdown" not just killing the VM) and copy the pertinent config and disk files to another location.  The intent here is to avoid losing all the work you've done.  If you screw up your lab, or the physical host crashes, you can rebuild and get your lab back to this point in time and save yourself a lot of pain.
  8. Start Playing.  Now that you've got your lab up and running, and you have the safety net of a backup or snapshot, you should be ready to start trying things out.

As a standard practice, I recommend installing RSAT on one of your Windows 7 VM's so you can manage AD and Group Policy features from a desktop, rather than relying on logging into a DC every time.  This is usually more realistic.  It's not usually recommended to constantly log into a DC to do daily check-ups and modifications unless you have to.  This is especially true if the DC has other roles on it like File/Print, Web services and so on.

Even though you are in a VM environment, it is still a good idea to create test OU's and test user accounts, test groups, test computers, shares, and so on.  This offers you additional layers of safety.  It's easier to blow off a bad GPO configuration against a test OU and test accounts, than it is to recover the entire VM environment.

The scope and scale of your virtual environment is only limited by two things: disk space and memory.  Those are both limited by budget.  If you have the budget to expand your disk storage capacity (and redundancy) and add memory, do it.  It's worth it if you intend on making this a serious project.  There is no such thing as too much memory or storage capacity.  The more you have available, the more you will consume.  That's a fact of nature.

If you have enough resources available you can expand your environment and your testing to include things like sub-domains, multiple forests, multiple sites and site link replication, DNS configurations, DHCP scopes and options, VLAN's and so on.  You can also add other products to your environment such as Sharepoint/MOSS, System Center products like Config Mgr, SCOM, DPM, as well as Exchange, WSUS, and other products (not to mention scripting and non-Microsoft products).  It's also perfect for practicing those topics for your upcoming certification exam that you may not even have in your production environment.

But I digress.

The point of this article was to help with building a virtual lab to work with Group Policy.  I got a little sidetracked, but hopefully in a good way.  I hear from people all the time that say they are hesitant to practice with Group Policy settings for fear of breaking their environment or creating a mess they might have to dig their way out of (adding yet more work to their already busy day).  Having a virtual environment allows you to try things and not impact your real environment, so you can move ahead without the worries.  Take an afternoon, stay after work, or a weekend morning, and build your virtual lab.  It'll pay off for you, I promise.

Wednesday, November 12, 2008

SharePoint (MOSS) VM Lab Setup

I ran across this really nice step-by-step SharePoint lab setup article from another blog post that linked to it, but I can't remember which one (sorry).  However, this is a fantastic resource for anyone wanting to setup a MOSS 2007 lab environment.  They use Virtual PC, but I used it on VMware Workstation 6.5 and it rocks.  Thanks to Tony Zink for taking the time to put this together and share it with all of us.