SharePoint – Enable Special Characters for OneDrive4Business Sync

November 14, 2017

When you have users that have Errors syncing file using the latest OD4B client.

It might be that there are some special characters like # and %.

That are in the file name, and are not supported by default.

image

SOLUTION :

Connect to the SharePoint Online Management Shell Using PowerShell.

These commands require version 16.0.6323.1200 of the SharePoint Online Management Shell or greater.

Run this command to see the current status

Get-SPOTenant

image

When you see NoPreference, you need to run this command.

Set-SPOTenant -SpecialCharactersStateInFileFolderNames Allowed

image

Keep in mind that it will about 2 hours or more before it gets active ….

If it still does not work you can run this procedure to force it :

If OneDrive sync seems to be stuck for a long time and nothing else is working, try a reset.

Be aware that resetting OneDrive re-syncs all your OneDrive files, which could take some time depending on how many files you’re syncing.
Press  WinKey + R

In the Run window, enter: %localappdata%\Microsoft\OneDrive\onedrive.exe /reset

After reset the OneDrive, files with special characters (# %) were synced properly.

  image

PS : See here for more info

https://techcommunity.microsoft.com/t5/SharePoint-Blog/New-support-for-and-in-SharePoint-Online-and-OneDrive-for/ba-p/60357

Enjoy !

Advertisements

SharePoint – How to see the Storage Size for All Site Collections

August 23, 2017

This can be done in various ways …

In Site Settings you can go to Storage Metrics

image

Example :

image

But this is a labor intensive way to do for all site collections … Sad smile

SOLUTION :

1. Using PowerShell

This is a script I modified from the original to loop through all site collections to fit my needs …

CLS
# http://www.c-sharpcorner.com/UploadFile/40e97e/calculating-size-of-site-collection-sub-sites-in-multiple-w/

if((Get-PSSnapin | Where {$_.Name -eq "Microsoft.SharePoint.PowerShell"}) -eq $null)
{
    Add-PSSnapin Microsoft.SharePoint.PowerShell;
}


$URL = "http://wss.plastiflexgroup.com/"

$Site = New-Object Microsoft.SharePoint.SPSite($URL)


$spWebApp = $site.WebApplication

# Start Looping throurgh all site Collections and Sub Sites
    foreach ( $spWeb in $spWebApp.Sites )
    {
      write-host "Site Collection: " $spWeb.URL
      write-host "-------------------------------------------------------------------"

$rootUrl = $spWeb.URL # "http://YourSharePointSite.com/"; 

$rootSite = new-object Microsoft.SharePoint.SPSite($rootUrl); 

$array = @()

$siteCollectionSize = 0;

foreach($web in $rootSite.AllWebs) 
{

    if ($web.Url.StartsWith($rootUrl))
    {

        $websize = GetFolderSize $web.RootFolder;

        foreach($recycleBinItem in $web.RecycleBin)
        {
           $websize += $recycleBinItem.Size;
        }

        $formatSize = FormatBytes $websize;

        $url = $web.Url;

         # Create object and store in array
        $obj = New-Object System.Object
        $obj | Add-Member -type NoteProperty -name "Description" -value "$url"
        $obj | Add-Member -type NoteProperty -name "Size" -value "$formatSize"

        $array += $obj

        [system.double]$siteCollectionSize += $websize
    }
}

$formatSize = FormatBytes $siteCollectionSize;

# Create object and store in array
$obj = New-Object System.Object
$obj | Add-Member -type NoteProperty -name "Description" -value "[Total Size]"
$obj | Add-Member -type NoteProperty -name "Size" -value "[$formatSize]"

$array += $obj

# Display
foreach($item in $array)
{
    write-output $item
}


# Write to HTML
# $array | Select-Object | ConvertTo-Html -title "Site Size" | Set-Content .\SiteSize.html
 

# Function calculating folder size
Function GetFolderSize($folder)
{
    [system.double]$filesize = 0;

    foreach ($file in $folder.Files)
    {
        $filesize += $file.TotalLength;

        foreach ($fileVersion in $file.Versions)
        {
            $filesize += $fileVersion.Size;
        }
    }

    foreach ($subfolder in $folder.SubFolders)
    {
        $filesize += GetFolderSize $subfolder
    }

    return $filesize;
}
 

# Function to format in MB
function FormatBytes ($bytes)
{
    switch ($bytes)
    {
        {$bytes -ge 1TB} {"{0:n$sigDigits}" -f ($bytes/1TB) + " TB" ; break}
        {$bytes -ge 1GB} {"{0:n$sigDigits}" -f ($bytes/1GB) + " GB" ; break}
        {$bytes -ge 1MB} {"{0:n$sigDigits}" -f ($bytes/1MB) + " MB" ; break}
        {$bytes -ge 1KB} {"{0:n$sigDigits}" -f ($bytes/1KB) + " KB" ; break}
        Default { "{0:n$sigDigits}" -f $bytes + " Bytes" }
    }
 }
    Write-host ""
}

2. Using Free Tools

You get a nice Output to console or to HTML

clip_image002

But there is a much easier way to get thing going using standard (Free) tools. 🙂

1. Open the Site of Site Collections Library in Explorer

image

2. Once opened map it to a Drive letter.

clip_image006

3. Open de folder with your favorite Space Analysis Tool.

1. Space Monger

In my case nothing beats the very old “Space Monger” App. Because you have a graphical view of which folders and files consume the most storage …

And it give your drill through up and down to zoom in to the file level…

clip_image008

clip_image010

Not sure if this is still around on the net … ?

2. Folder Size

Another simple tool to use is Folder Size : http://foldersize.sourceforge.net/

After installation you can define which type of drives to monitor. See Control Panel Settings

clip_image012

clip_image014

Enjoy !


PowerBI – Access SharePoint list data

February 5, 2017

As I showed in a previous post SharePoint is different Interfaces you can use to access as a data source.

https://audministrator.wordpress.com/2015/01/26/sharepoint-interfaces/

So I we know it can expose it’s List data using the  REST or oData protocol.

Open PowerBI and go to GET DATA menu.

Choose OData Feed to connect to your SharePoint data source

 

image

Once logged you can choose from your lists

 

image

And play around to make your data visible using all the features from PowerBI Smile

image

Once Finished you can publish your result

 

image

Once published you can reach out on the mobile apps.

 

image


Windows – MS Network & MS Monitor Visual Round Trip Analyzer (VRTA)

February 3, 2015

At some point in time we had performance issues with our SharePoint Farm. Where users experienced at some site collection very slow response times.

Especially when this users connected from all over the world and from different continents.

We all know that internet traffic suffers a lot from latency.

How do you start analyzing the problem, whether this is a Server of client side performance issue. Or if this has to do with connectivity and speed from certain locations.

Well the VRTA will help a lot pinpointing the where the bottleneck is.

In order to get going you need to download :

MS NetMon and MS Visual Round Trip Analyzer (VRTA). Install both on your client machine.

Before starting to measure and gathering data, first some connectivity statistics from your remote location internet line speed using speedtest.net.

IMPORTANT : You need to measure between the location of your client AND the location of the SharePoint Farm.

This you can do for example by opening a Remote Desktop to the remote client or server. Open the Speedtest.net page, and before starting drag the green rectangle to the location of where the SP farm is located (or most nearby).

image

Once you have done this and started measuring, you know approximately the up and download speed of your connection.

If this is weak in upload speed, of course users start complaining when uploading large documents to you SharePoint farm.

If the latency is too high also download speed will suffer as well.

Now let’s get started using the tools.

image

Open VRTA and a Browser.

Start VRTA (see picture) then open SharePoint homepage.

image

And immediately after that open you SharePoint page that you want to measure.

When the page finished loading, stop the recording.

image

The main chart will give you an interactive chart display of the loading time of each of the components of the page. And any other communication on that network connection !

So make sure to have all other internet services and connections inactive while capturing the traffic. Otherwise the results are polluted.

image

The statistics give you already a good idea of the reaction time of your site or site collection, and which items on the page are slowing it down.

image

Next go to the All Files tab select all and copy it to an excel sheet.

image

Save the test.

Repeat it for document uploads and downloads.

Download Test file of 1Mb

So upload a 1 Mb Test file from the client to the SharePoint site, start capturing the traffic.

And reverse the exercise by downloading the same file to the client, and capture the traffic while downloading.

Gather all statistics in an Excel file from different locations, and from different sections of your SP Site.

image

You easily see if for example picture how long they take to download on the client. Which can slow down the performance to your pages loading.

Combine these test results with the Line Speed statistics and Ping / Latency results.

image

And you are ready to go to make a global overview of how good or bad your SharePoint is doing, or where the connectivity needs improvements.

PS : Our outcome was that the SharePoint Farm was doing OK, but we needed to increase bandwidth at certain remote locations.

These kind of tests take away all kinds of speculations of end users trying to shoot at your infrastructure guys. Blaming the SharePoint server is no good Winking smile

It is also good to show the management who will have to approve the extra CAPEX Smile


MS Exchange – Grant permission to Distribution Groups in the GAL

February 3, 2015

Certain users in the organization where not able to edit (add / remove ) users from a Distribution group in the GAL.

This was the error they say in the Outlook.

“Changes to the public group membership cannot be saved …”

image

Nevertheless the user itself had Ownership ?

image

After Googling a bit, it seems that this is a dafault behavior of Exchange 2010 and higher.

So you need to change the Roles & Policies that are connected to the users, using the web ECP.

In order to allow the editing of the a Distribution Group from within Outlook.

image

Also the Membership Approval settings must be correct.

image

Next check the security settings via the ADUC on this Distribution Group Object. Make sure that this user has sufficient control.

image

Some more interesting readings are over here :

http://support.microsoft.com/kb/2586832/en-us#R1

http://blogs.technet.com/b/exchange/archive/2009/11/18/how-to-manage-groups-that-i-already-own-in-exchange-2010.aspx

You can of course use PowerShell to manage the Distribution Groups

Using : Get-ManagementRole cmdlet

“get-managementrole MyDistributionGroupMembership | get-member”

image


SharePoint – SSRS Web Part Parameter Issue

January 31, 2015

We had an annoying problem with a published SSRS report in SharePoint that uses a Parameter.

Most likely this appears only in combination with a external data source like an ODBC connection that retrieves data from a data source not within the current domain ?

This strange ‘bug’ I would call it so far is not showing when your run the report from within the Report Designer, but only from within SharePoint.

So I suspect that this is a malfunction in the SSRS front end Web Part.

Problem :

When selecting the first time a parameter in the report, it returns all the filtered data. But when selecting a new parameter value, for the second time, it returns a blank page ? And the parameter box jumps down.

image

Solution :

After debugging with trial and errors, we found out that if you add a Default Value, in the parameter field, the problem is solved.

image

If you get the parameter values from a different Dataset, you can also specify the Default Value using the Get Values from a Query option. But this is not needed to make it work.

Just give any valid default value in the Specify Values field will do the job as well.

image

Again, this problem is not occurring in the Report Designer itself?

So the SharePoint users are happy to see that this annoyance is gone Smile


SharePoint – Interfaces

January 26, 2015

SharePoint has many interfaces, and you tend to get lost in them over time Winking smile

So here is a summary of the most frequently used ones on the output side of SharePoint.

Web Service Interface :

When you want to get the XML response of the list definitions, use this syntax :

http://YourSite/SiteCollection/_vti_bin/Lists.asmx?wsdl

This will give you a the SOAP response

image

Or you can use this syntax :

http://YourSite/_vti_bin/owssvr.dll?Cmd=Display&List={GUID}&XMLDATA=TRUE

To get the GUID of a list, just go to the Settings Page of the list, and look at the URL. (Not the VIEW)

image

To use the GUID you need to do a URL decoding. There are multiple online decoders on the net.

Once you have put it all together the result will look like this.

image

Here you can find the z:row Nodes and Attributes, you need for JQuery SPServices functions.

REST or oDATA interface

http://YourSite/_vti_bin/listdata.svc/

image

You can add the List Name, after here _vti_bin/listdata.svc/ListName to get the REST interface of that list.

You get an RSS Feed Like this :

image

Where you have a Search and a few sort options.

URL filter and Sort Options

You can also add filter and sort parameters in the URL, like this :

?FilterName=Title&FilterMultiValue=Task&SortField=Title&SortDir=Desc

URL Query interface

Of course you can use the usual Query string interface to pass on variables.

SSRS Interface

When you have the SSRS running in integrated mode you can access the reports using the SSRS URL Parameter Interface.

On the input side you can have as well a database, SOAP and REST connector Interface

Using SP Designer

image

Example of a SOAP interface

There is of course much more to tell about SharePoint Interfaces and Technologies.

See here on How To : How to Access Data on SharePoint

And as a scripter you have access to most of the interfaces, see here for some examples

Example of accessing the REST interface

More options, see here URL Protocol