- Disable usage of 'cache' capability in SharePoint Designer 2013: it will then no longer try to load + reuse the cached files that were initially created on your workstation by opening the workflow via SharePoint Designer 2010
- Cleanup the local cache to remove the SharePoint 2010 versions of the cached workflow files: delete all cached files from these local locations (Resource: SharePoint Designer cannot display the item (SharePoint 2013))
- C:\Users\<UserName>\AppData\Roaming\Microsoft\SharePoint Designer\ProxyAssembleCache
- C:\Users\<UserName>\AppData\Roaming\Microsoft\Web Server Extensions\Cache
- C:\Users\<UserName>\AppData\Local\Microsoft\WebsiteCache
- (Get yourself a new / other laptop:) Open the workflow in SharePoint Designer on another workstation, on which the workflow was not managed previously via SharePoint Designer 2010 when still on SharePoint 2010
Wednesday, February 21, 2018
Migrated SharePoint 2010 workflow cannot be opened Online in SharePoint Designer 2013
Monday, February 12, 2018
PowerShell to assess the external access authorization per site
<# .SYNOPSIS Access Review of guest users into the SharePoint tenant #> #Connection to SharePoint Online $SPOAdminSiteUrl="https://<tenant>-admin.sharepoint.com/" try { Connect-SPOService -Url $SPOAdminSiteUrl -ErrorAction Stop } catch { exit } $externalUsersInfoDictionary= @{} $externalSharedSites = Get-SPOSite | Where-Object {$_.SharingCapability -eq "ExistingExternalUserSharingOnly"} foreach ($site in $externalSharedSites) { $externalUsersInfoCollection= @() $position = 0 $page = 0 $pageSize = 50 while ($position -eq $page * $pageSize) { foreach ($externalUser in Get-SPOExternalUser -Position ($page * $pageSize) -PageSize $pageSize -SiteUrl $site.Url | Select DisplayName,Email,WhenCreated) { if (!$externalUsersInfoDictionary.ContainsKey($externalUser.Email)) { $externalUsersInfoDictionary[$externalUser.Email] = @() } $externalUsersInfoDictionary[$externalUser.Email]+=$site.Url $externalUsersInfo = new-object psobject $externalUsersInfo | add-member noteproperty -name "Site Url" -value $site.Url $externalUsersInfo | add-member noteproperty -name "Email" -value $externalUser.Email $externalUsersInfo | add-member noteproperty -name "DisplayName" -value $externalUser.DisplayName $externalUsersInfo | add-member noteproperty -name "WhenCreated" -value $externalUser.WhenCreated $externalUsersInfo | add-member noteproperty -name "Preserve Access?" -value "Yes" $externalUsersInfoCollection+=$externalUsersInfo $position++ } $page++ } if ($externalUsersInfoCollection.Count -ne 0) { $exportFile = "External Access Review (" + $site.Url.SubString($site.Url.LastIndexOf("/")+ 1) + ")- " + $(get-date -f yyyy-MM-dd) + ".csv" $externalUsersInfoCollection | Export-Csv $exportFile -NoTypeInformation } } # Export matrix overview: per user, in which of the external sites granted access $externalUsersInfoCollection= @() $externalUsersInfoDictionary.Keys | ForEach-Object { $externalUsersInfo = new-object psobject $externalUsersInfo | add-member noteproperty -name "User Email" -value $_ foreach ($site in $externalSharedSites) { if ($externalUsersInfoDictionary[$_].Contains($site.Url)) { $externalUsersInfo | add-member noteproperty -name $site.Url -value "X" } else { $externalUsersInfo | add-member noteproperty -name $site.Url -value "" } } $externalUsersInfoCollection+=$externalUsersInfo } $exportFile = "External Access Review user X site - " + $(get-date -f yyyy-MM-dd) + ".csv" $externalUsersInfoCollection | Export-Csv $exportFile -NoTypeInformation Disconnect-SPOService
Friday, February 9, 2018
Azure AD Access Review yet useless for SharePoint External Sharing
- Assess on Azure AD Group Membership
- Assess on access to an Office 365 application
- In the review mode on 'O365 SharePoint Online as application'; I get no results at all.
- In the review mode on 'Group Membership' I selected the dynamic group that includes all guest accounts. With this review mode I do get results to review their access. But the value is limited to gain insight on last logon per guest account. You can then as reviewer make a decision to Approve or Deny the continued group membership. But in reality this review decision cannot be effectuated: the group membership is dynamic, based on condition; not on concrete addition to the group.
I reported my 'negative' evaluation as feedback to a contact in the Azure AD productgroup: "I question how it would be applied: removing the 'refused' accounts from the Dynamic Group does not make sense; they should be blocked or removed from Azure AD to block access. Also, as a site owner only wants to take responsibility for access to his/her site, the access decision application should be applied there. Not on tenant level."
His response: "I think you have some interesting use cases. As the product is still in preview, documentation is limited. I will discuss your use cases with my colleagues in Redmond responsible for Access Reviews."
In addition, I also submitted a SharePoint uservoice idea: Azure AD access review on level of single (shared) site collection