Archive for the 'SharePoint' Category

The “No Code” SharePoint Strategy

For an initial deployment of SharePoint 2010 how about saying:

“We will not do anything that involves custom code. We will restrict ourselves to what we can do with out-of-the-box SharePoint and associated tools”

This is somewhat controversial. I can already hear rumblings of discontent from distant IT strategists. IT strategy should be derived from business strategy, right? An IT strategy should put in place systems and practices that support the business in achieving its objectives. If we say “we won’t do any custom code” this is surely a classic case of tail (technology) wagging dog (business). Why should the constraints of a technology be used to tell the business what they can and can’t have?

That is perfectly true. But, and it’s a big but, SharePoint also gives us the following to consider:

  • The number of things that SharePoint can potentially do for a mid-size to large organisation is pretty large. It encompasses collaboration, intranet, document and content management, social features, search, business intelligence, and business application delivery. Deciding where to start can be a challenge.
  • As soon as you start custom coding within SharePoint (or anything else), the cost and risk both go up considerably.
  • For almost all organisations there are some real “quick wins” that can be delivered without custom code. For example, we often build one or two form and workflow driven business applications. These can be delivered in a matter of days and provide tangible value. The appropriate use of third party products such as Nintex and K2 can also facilitate the delivery of more complex workflows without custom code.
  • Users and stakeholders want to see something. Custom coding projects can take months. A no code approach gives them rapid visibility of where all that money they spent on licencing has gone.

I should make it clear that I am not advocating that custom code should never be used. If for example you have a requirement with a compelling business case that can only be delivered with custom code, then make the case and go for it! However if you are looking at SharePoint, and have numerous possible projects under consideration, then an initial no code approach will allow you to derive some quick benefits at low cost and low risk. You can then revisit your strategy later once users have got used to the system. At this point you’ll probably find that business requirements have changed anyway, as once people have started using and benefitting from SharePoint, their thoughts about where they need additional functionality almost inevitably change. So when you decide it is time to crack open Visual Studio and start custom coding, the chances are you’ll end up with a better custom coded solution than you would have had if you’d done the custom work up front.

Comments welcome as always!

Ian

Free Strategy Paper Download  – Delivering Maximum Business Value With A SharePoint Based Application Strategy

SharePoint 2010 Standard or SharePoint 2010 Enterprise?

I’ve been speaking with IT directors/CTOs at two different large organisations in the past week. Both are in similar positions in that they are considering moving to SharePoint 2010, and need to decide whether or not to go for Standard or Enterprise edition.

One of the big challenges that they both faced was knowing the capabilities of each product. One of them was seriously considering purchasing an expensive BI solution even though they have quite modest BI needs. They and their teams were simply unaware that there is BI capability within SharePoint 2010.

The second challenge was around the departmental versus organisational view of the world. What do I mean by that? In both organisations, departments were commissioning their own business applications. Most of the time these applications were custom coded, and although they sometimes integrated with SharePoint, the integration only meant display of the custom application within a SharePoint site. There are several problems with this approach:

  • Independently implemented applications leads to siloes of information, inconsistencies in functionality/look and feel, and a larger training requirement
  • Areas of common functionality were being “reinvented from scratch” each time
  • There is always risk involved in any custom development project
  • Perhaps most critically of all: In most cases the applications in question could be quickly delivered using the composites capability of SharePoint 2010 Enterprise. The cost of a single departmental level application was typically less than the cost of implementing SharePoint 2010 Enterprise. However, taken together the cost of implementing all of the applications together was significantly more than the cost of the Enterprise licences.

In this situation a decision to move to SharePoint 2010 standard would have been a bad strategic decision. It would have resulted in business applications being delivered more slowly, at higher risk and cost, and with less consistency and integration with each other.

So when making the decision between Standard and Enterprise it is essential to have all the facts to hand. In particular:

  • What are our business requirements and priorities?
  • What are the capabilities of the different editions, and which of these capabilities aligns with our requirements?
  • What is going on within business units, departments, or teams? In particular would putting in a platform to facilitate quick delivery of applications with little or no custom coding be cheaper in the medium to long term than custom code or purchase of individual solutions? With the people I was speaking to, a back of the envelope calculation indicated a payback time of 6 to 12 months.

If more investigation is needed, it is worth knowing that a 180 day evaluation copy of SharePoint 2010 Enterprise can be downloaded from the Microsoft web site. This can be used for a pilot before committing to licence purchase. We have helped several organisations with this low risk approach.

Back to the PointBeyond web site.

SharePoint and Project Server for New Product Development

Companies are increasingly looking for efficiency gains with New Product Development and yet struggle to find a tool that can accommodate their supporting business processes. This is because each company’s culture is different and only a set of tools that can quickly adapt to support their unique Business Processes and ways of working can add benefit.

New Product Development  is the art and science of bringing products to market, from idea generation through to prototyping and the first production run, and can be considered from two viewpoints – Strategic and Tactical. Project Server which is built on the SharePoint Enterprise platform is an ideal choice for meeting both the Strategic and Tactical requirements of a New Product Development system

Strategic:  
The strategic viewpoint looks at the selection and approval process to ensure that products with the best potential are brought to market as efficiently as possible.

Project Server is ideally suited for the development of a Strategic New Product Development Framework offering the following features out of the box:

  • A  Stage gate approval model – used to ensure that the right products are passed through for development. An example five phase workflow is provided or workflows can be configured using Visual Studio or third party products such as Nintex Project Server Workflows.
  • Portfolio Analysis – Set strategic drivers and objective criteria, which assist in scoring each product proposal, and help determine a mix of new products that is most aligned with company strategy
  • Create product focussed projects – assign resources (people and materials) to these projects and view resource commitments across a portfolio of projects / new products. Avoid resource bottlenecks
  • Use Project Plan schedule templates to set up predefined high level plans for new products. Develop your own best practice templates through your company’s experience and create effective development pipelines
  • Manage Assumptions, Risks and Issues across all product developments
  • Reporting – Harness the capabilities of Project Server and SharePoint Business Intelligence with powerful tools such as
    • Reporting Services for database reports,
    • Excel Services for dynamic charts and data grids or OLAP reporting
    • Visio Services for colourful dynamic data driven diagrams
    • Performance Point Services for the creation of Scorecards and Dashboards with multi-dimensional “slice and dice” data analytics

Tactical
The Tactical viewpoint concerns the day to day practicalities of  introducing a new product to market, and includes activities such as packaging /design workflows and the set up of design workshops.

For the tactical activities, SharePoint (which is part of a Project Server installation) has many features which enable the rapid creation of a New Product Management System including:

  • Create collaborative workspaces for product based teams to share and develop ideas
  • Utilise the integration between SharePoint and Project Server to raise issues and risks at a local level for visibility and review by senior portfolio managers
  • Create document approval workflows for key documents such as specifications
  • Create record centres for key documents with features such as version and archive control
  • Create wikis to capture and develop team generated ideas or use team blogs to update others on progress
  • Create custom list templates and custom electronic forms either Out of the box or through enhanced toolsets such as SharePoint Designer or InfoPath and set validation rules or attach the forms data to a workflow

Back to PointBeyond website

Multimedia Learning Centre Gets The Point Across

Every organisation knows the benefits of providing high quality, easily accessible information to employees. However the reality is that training materials often sit on corporate intranets or in email inboxes without ever being looked at by staff.

A partnership between SharePoint application specialist PointBeyond, and multimedia experts Just90.tv seeks to change that. They have created a package to change training material, organisational policies, and procedures into engaging, easily digestible 90 second video bursts. The videos are then kept in a specially designed SharePoint multimedia learning centre, which can be either on premise, or in the cloud.

Why 90 second video bursts? Richard Adams of Just90.tv explains: Click here to watch video

Just90.tv was created to reflect a world where people are busier, seem to have less time and yet have more to do and must perform at a higher level. The growth and increased use of video streaming means that there are ways to learn that respect the way we live now. Personal development and gaining new knowledge does not have to be squeezed out of the diary.

The multimedia site is easy to use and manage, especially if users are already used to SharePoint. Documents and online questionnaires can be associated with videos, so for example a new starter may watch a video on a procedure, download a checklist to follow, and take a short test to confirm that they understand the procedure. Reporting allows management to see what is popular and who is viewing what.

Multimedia Learning Centre

Cascading Dropdowns in InfoPath 2010

This is a robust way to implement cascading (sometimes called nested) dropdowns in InfoPath 2010, that also works with InfoPath Forms Services in SharePoint 2010. The approach in this article expands upon the demo that I gave at SharePoint Saturday UK on 12 November 2011.

There are numerous other blog articles out there explaining how to achieve cascading dropdowns in InfoPath, and I have had varying degrees of success with them. Some work okay but are complex, others seem to be a bit buggy. So the approach I take here will (hopefully!) provide a good solution – but comments welcome as always!

Objective: On an InfoPath form I wish to have an arbitrary number of dropdowns. Selecting an item in the first dropdown determines the items available in the second, selecting an item in the second dropdown determines the items in the third, and so on. A user should be able to go back to a previous dropdown and make a change. Users should be forced to select in order, so that until an item in the first dropdown is chosen, the second dropdown is disabled, and so forth.

Preparing the Data Source

For the example below our data source for the dropdown items is SharePoint lists. However the method could be modified to use other data sources such as a database or a web service. In the dropdowns users will select a region, then an office, then a team.

I have created three lists for the example and will create three dropdowns.

The “Regions” list is a custom list with no extra columns added. It is populated as follows:

The “Offices” list is a custom list with one extra column added, which is a lookup to “Regions”. It is populated as follows:

The “Teams” list is a custom list with one extra column added, which is a lookup to “Offices”. It is populated as follows:

Designing the InfoPath 2010 Form

Launch InfoPath 2010 and create a new blank form (or open the form to which you wish to add your dropdowns).

Add three text fields as follows:

Repeat for “Office” and “Team”.

Now drag-and-drop each field onto the form.

Without any formatting your form will look like this:

Right-click each textbox and choose “Change Control > Drop-Down List Box”.

The form will now look like this:

Now we need to create three data sources, one for each dropdown.

Click on the “Data” menu at the top of the window, and then “From SharePoint List”.

We’ll do “Region” first.

Enter the location of the SharePoint site. Note that the lists can be on a different site to the site that our form is going to end up in.

Click “Next”. Select the “Regions” list.

Click “Next”. Select “Title” and change the sort order to “Title”.

Click “Next”. Click “Next” again on the offline option page.

Accept the options on the final page.

Click “Finish”.

Now repeat this process for Offices and Teams, but with the following two changes:

First, include the related column in the fields to select from. So for Offices the wizard will look as follows:

Teams will look similar, but with the “Office” column selected.

Second, uncheck the “Automatically retrieve data when the form is opened” option. For all but the first dropdown, we won’t be getting the data until the previous dropdown is changed.

Ok now we need to hook up our dropdowns to our data sources. Right click the “Region” dropdown and choose “Drop-Down List Box Properties”. In the “List box choices” section choose “Get choices from an external data source”. Make sure the data source is “Regions” and amend the “Display name” field to Title (using the button on to its right) so that the form looks as follows:

Click “OK” and repeat for the “Office” and “Team” dropdowns, choosing the appropriate data source in each case. Make sure the “Value” and “Display name” fields are always correct. So for “Office” the form looks as follows:

If you preview your form at this point then the “Region” dropdown should be populated but the other two should not.

Finally we need some rules to make it all work.

Select the “Region” dropdown, then on the “Home” tab at the top, choose “Manage Rules”.

On the “Region” dropdown we will add a single rule. Choose “New, Action”.

Change the “Details for” to read “Populate Offices”.

Now choose “Add, Set a field’s value”.

The field we will set is the “Region” field on the “Offices” data connection. This will act as a filter on the list of offices, only displaying those that have the correct region.

Click the button to the right of “Field”. Change the dropdown at the top to “Offices (Secondary)” and expand “queryFields” to select “Region”.

Click “OK”. Now click the “fx” button to the right of the “Value” field. Click “Insert Field or Group…”

Choose “Region”.

Click “OK”. The formula shows as follows:

Click “OK”.

Now add another action to the rule, again to “Set a field’s value”. This rule will simply set the “Office” field to blank, to clear out any old values.

Now add an action to “Query for data”.

Set the data connection to “Offices”. Click “OK”.

If you preview your form now you should be able to select a region and see the correct list of offices populated.

Now we set up the rules on the Offices dropdown. Select the dropdown and click on “Manage Rules”.

Add a new formatting rule:

Change the details to “Disable if Region Blank”. Click on “None” under “Condition. Set the condition as follows:

Select “Disable this control”.

Next add a new action rule.

Call this rule “Populate Teams”.

Add an action to set a field’s value.

Pick the Teams/Office query field.

Set the value equal to “Office”.

Add another action to set “Team” to blank.

Add a final action to query the teams data connection.

Finally add a formatting rule to the “Teams” dropdown. This rule will disable the control if “Office” is blank.

Now preview your form and check everything works!

Provided all is okay you can publish your form. If you want to use InfoPath Forms Services within SharePoint 2010, it should work fine.

Back to PointBeyond web site.

When Collaboration Becomes a Commodity, How Do You Choose a Platform that Adds Value?

When SharePoint was first released, the idea of a web site where users could upload documents, and manage their own lists, calendars, etc was quite novel to many people. It was, as we all know, a runaway success and SharePoint has been widely adopted across many organisations. Many other software vendors, as well as Microsoft, also provide collaboration platforms.

Now more and more collaboration platforms are becoming available, with cloud offerings such as Box.net, Huddle, Google Docs and many others being added to the mix.

One of the differentiators of SharePoint 2010 is that you can use it as a platform for the delivery of business applications, as well as for straightforward collaboration. Even the entry level SharePoint 2010 Foundation gives you:

  • Out of the box and custom lists and views. These lists can be linked to deliver simple data driven applications
  • Built in security model. You can set permissions to control who can see and do what
  • Ability to build workflows using SharePoint Designer
  • Forms that use the InfoPath client (part of some editions of Microsoft Office)
  • Core Business Connectivity Services functionality, for interacting with data in other systems
  • An open platform for enhancement through custom development and integration with other systems
  • Possibility to use SQL Server Reporting Services in SharePoint integrated mode to build reports and dashboards

Once you move up the licencing scale to SharePoint Server 2010 Enterprise, you get the “Composites” functionality that adds significantly to the toolset available for building applications. This includes

  • Excel Services, for interacting with and publishing parts of Excel spreadsheets through the browser
  • InfoPath Forms Services, that takes InfoPath forms and renders them in the browser
  • Visio Services, for publishing data driven diagrams
  • Access Services, for converting Access Databases to SharePoint lists and forms, and allowing browser based interaction
  • Enhanced Business Connectivity Services
  • Various web parts and out-of-the-box workflows

This rich toolset for quickly delivering business applications sets SharePoint apart from many collaboration platforms, and it should be a major consideration for many organisations when choosing a collaboration platform.

Our technology neutral white paper, “The Business Applications Deficit” looks at the drivers behind the need for business applications, and the challenges faced by organisations in implementing applications. To receive your complimentary copy please click here.

Delivering Business Applications with SharePoint Composites: Don’t get Stuck!

Suppose that you are in New York and you want to come to my house. You could look at a map of the world that has New York and my house marked on it. Looking at the map you can see that London Heathrow airport is pretty close to my house. So you think, hey that’s cool I’ll fly over. You pay for your flight, tell me what time you are arriving, and tell your wife/husband/partner how much it costs. Sorted. Easy.

So you jump on the plane and all goes well for a few hours. You arrive at Heathrow and walk out of the airport. Now, Ian’s house is somewhere nearby isn’t it? Actually you’ve got still got 94 miles to go and although you have completed 97% of your journey you aren’t at my house. You’ve no UK currency and your mobile phone is flat (and you can’t plug your charger in because of our rather cool power socket design J). So you are stuck.

Let’s compare this to the case of building a SharePoint business application using tools such as InfoPath, SharePoint Designer, Excel Services and Access Services. It’s all too easy to get started with these tools without an absolutely clear idea of how your end solution will work. The tools allow you to do a lot very quickly. So you pull your application together and it almost meets your requirements. But then you hit a problem: the last little bit requires something that the tools don’t let you do. You are faced with having to resort to another tool, possibly some custom code, or even having to rework what you have already done. Also chances are you need to go back to the business and tell them that you need more time and/or money.

The conclusions to this are really as follows:

  • Before you embark on delivering a business application using SharePoint composites, be absolutely clear about what the end solution will be (where are you going)
  • Be clear about how the tools available will deliver all of the required functionality (what is the means of transport for each stage of the journey). If you do a proof of concept then make sure you tackle the difficult bits of functionality up front. Don’t just do the easy bits so that you can show the business users something nice! It may make them happy in the short term but they won’t like it when you have to go back telling them you need more time and money.

Enjoy your journey!

Back to the PointBeyond web site

Easy Tips to Improve Document Search Results in SharePoint

You have done all you can from a SharePoint perspective – Search is set up and it is crawling the documents, but the results returned are not what you’d expect. This is frequently the result of documents created without optimising them for SharePoint Search indexing.

The Search service in SharePoint crawls documents to index them for search.  This entails quickly scanning each document for words and phrases and ranking the document’s relevance accordingly. The Search crawl looks at filenames and titles first, then headers and finally the content itself.  Therefore, a keyword included in the title of a document helps it to rank higher than a keyword found in the content alone.

It is a common perception that Search will simply just work.  However, the reality is that it will only be as good as the content it is searching. The following tips are things users can do to help their documents appear correctly in search:

Check your Document Properties – I recently witnessed a search for the word ‘Policy’ that returned multiple documents displayed as ‘New Template’ , although when we opened them they were indeed policy documents.  On closer inspection we found they had all been created from one original document, overtyped and resaved multiple times, without anyone changing the document properties in Microsoft Word.  This led to the document having  a misleading appearance in SharePoint:

 SharePoint Document Title Properties

Search was in fact working correctly, but to the users it appeared that the results were meaningless.

This highlighted the difference between simply renaming a file when you save it and amending the document properties in Microsoft Word.

Micrsosft Word Document properties

 To read more about document properties see Microsoft Office help.

You can change the Title properties in SharePoint, but you must remember to do so after uploading the document, especially if using the multiple upload tool.

SharePoint Edit Properties

Check your Title – Make sure your Title and File Name is meaningful. I have seen many documents in organisations titled ‘General Admin’, ‘Update’ or ‘Checklist’. Initially, these may seem like sensible titles.  However, these titles don’t help Search identify the real subject of their content and they really don’t help your users identify whether they have found the correct document.

By contrast, a good title is a clear, precise and short description of the document’s contents. ‘Stationery Ordering Procedure’, ‘Update to Appraisal System 2011’ or ‘Setting up a New Customer Checklist’ are good examples of meaningful document titles.

Check your Headers – Microsoft Word has some handy styles to help you format and structure your documents. By using heading styles correctly, you are also helping SharePoint Search to crawl your document as efficiently as possible. It is therefore important to make sure that you have meaningful headings and preferably ones that include the key phrases people may search for if they wanted to find your document.

Microsoft Office Styles

Using header styles will also help your readers and can help you to auto generate Table of Contents for your document, something especially useful if your document is a long one.

To find out more about using styles visit Microsoft Office help

Check your Content – if the content of your document doesn’t contain keywords relating to the subject it covers, then this too may lead to it not appearing in the correct search results. To avoid this happening, you should always consider including an overview or summary that clearly outlines the topics covered in the document. This will help SharePoint Search index the document correctly and hopefully enable your users to identify the document they are looking for!

Back to the PointBeyond Website

Sites and lists not updating from the Content Type Hub

The Content Type Hub (CTH) brings fantastic new functionality to SharePoint 2010, functionality that anyone who has delivered or administered SharePoint 2007 will have been crying out for and no doubt welcomed with open arms.

The CTH can be a complex beast with settings located in lots of different places; Central Administration, Site Collections, sub-sites and the CTH itself.

Chances are, by the time you get to using content types from the CTH in document libraries way down in the basement of your SharePoint site structures it’s been a long time since you set up the Managed Metadata Service and the Hub – or perhaps you are an Information Manager and didn’t set it up in the first place.

So my question is: Where would you start to look if your content types in sub-sites and lists refuse to update properly?

Now I’m presuming here that you have correctly published the offending content type in the Hub, have run the 2 timer jobs in Central Administration and that the Site Collection you are trying to push the content type to is consuming the CTH.

In fact, I’m assuming you have one or more content type from the hub on your consuming Site Collection and have added them to document libraries – but now you’ve decided you need a new column on one of the content types.

You go through the same process described above (publishing the content type in the Hub, running the CA timer jobs etc.) but when you come to check the document library there is no new column.

To reassure yourself that you’ve done everything correctly, you look at the content type gallery in the consuming Site Collection and can see the new column. Very strange!

You’d be forgiven for thinking “this must be a setting in the document library”, or perhaps you forgot to tick the ‘Update all content types inheriting from this type?’ check box in the ‘Update Sites and Lists’ section of the content type in the Hub.

So you check and you check to no avail. You may even have tried running some PowerShell scripts to force the update. Nothing!

So what to do?

Turns out it’s simply the way the Managed Metadata Service Connection has been set up.

There are four useful little tick boxes, which you’re only likely to see at the point you create the service, two of which have a huge effect on how the Content Type Hub functions.

To get to them go to Central Administration > Application Management > Manage Service Applications > Highlight the ‘Metadata Service Application Proxy’ (click anywhere but the title) > Select ‘Properties’ on the ribbon (see screen shot below).

This should bring up the ‘Edit Managed Metadata Service Connection’ window.

Here you can see the four options I was talking about.

The first two are firmly aimed at the Term Store, but the last two have a huge impact on the CTH functionality as I mentioned. The last one is clearly what we’re after so let’s tick that box!

You should now see your document libraries and lists updating from the CTH without a problem.

As you can see, this can be a difficult problem to track down because the Site Collections are getting the content type updates as they should be, just not in the lists – but as ever, there’s just one more check box!

Back to PointBeyond web site

Finding Duplicate Documents in SharePoint using PowerShell

This script looks through all documents stored in a SharePoint site collection and finds duplicate files based on document contents rather than document names. This script has been written for SharePoint 2010 but should find duplicate documents in SharePoint 2007 as well with very little modification.

Over time, it is quite possible the same document will be uploaded to numerous SharePoint libraries. Keeping track of duplicate content spread across multi libraries can be practically impossible.

Building on the article here http://blog.codeassassin.com/2007/10/13/find-duplicate-files-with-powershell/ that details duplicate checking on fileshares, the following PowerShell script scans all your document libraries with a site collection for duplicate content by calculating an MD5 hash of the file contents. The script groups identical hashes and produces a list of all duplicated files, detailing the full url to item and the file name.

To run the script, copy the contents to notepad and save as a .ps1 file on one of your SharePoint servers. Then launch a PowerShell console and run the ps1 file.

Output to console showing duplicate files

PowerShell Console Output

The function returns the full path of all duplicated content.

This information could be piped back into SharePoint, or exported to Excel for analysis. You could even set this as a recurring job. In a future article, I will package this functionality into a timer job feature.

At present, the script stores all results in memory while it is running. If you are running this over a large site collection this may not scale very well. It may be worth streaming the results into a SQL table or similar. Also, at present this script will only evaluate content on a site collection basis but could be scoped to a web application or a whole farm if required.

Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue

function Get-DuplicateFiles ($RootSiteUrl)

{

$spSite = Get-SPSite -Identity $RootSiteUrl

$Items = @()

foreach ($SPweb in $spSite.allwebs)

{

Write-Host “Checking ” $spWeb.Title ” for duplicate documents”

foreach ($list in $spWeb.Lists)

{

if($list.BaseType -eq “DocumentLibrary” -and $list.RootFolder.Url -notlike “_*” -and $list.RootFolder.Url -notlike “SitePages*”)

{

foreach($item in $list.Items)

{

$record = New-Object -TypeName System.Object

if($item.File.length -gt 0)

{

$fileArray = $item.File.OpenBinary()

$hash = Get-MD5($fileArray)

$record | Add-Member NoteProperty ContentHash ($hash)

$record | Add-Member NoteProperty FileName ($file.Name)

$record | Add-Member NoteProperty FullPath ($spWeb.Url + “/” + $item.Url)

$Items += $record

}

}

}

}

$spWeb.Dispose()

$duplicateHashes = $Items | Group-Object ContentHash | Where-Object {$_.Count -gt 1}

foreach($duplicatehash in $duplicateHashes)

{

$duplicateFiles += $Items | Where-Object{$_.contentHash -eq $duplicatehash.Name}

$duplicateFiles += “————————————————————”

}

}

return $duplicateFiles |Format-Table FullPath

}

function Get-MD5($file = $(throw ‘Usage:Get-MD5[System.IO.FileInfo]‘))

{

$stream = $null;

$cryptoServiceProvider = [System.Security.Cryptography.MD5CryptoServiceProvider];

$hasAlgorithm = New-Object $cryptoServiceProvider

$stream = $file;

$hashByteArray = $hasAlgorithm.ComputeHash($stream);

return [string]$hashByteArray;

}

Get-DuplicateFiles(<your sharepoint site>)

Back to PointBeyond Website

Next Page »



Follow

Get every new post delivered to your Inbox.