which country user step here?

Tag Cloud

MOSS (47) SharePoint 2007 (37) SharePoint 2013 (31) SharePoint 2010 (23) MOSS admin (17) PowerShell (17) admin (17) developer (16) List (15) WSS (14) sql query (14) MOSS SP2 (13) end user (11) scripting (11) wss V3 (11) permission (10) sql (9) Moss issue (8) search (8) database (7) RBS (6) Service Pack (6) reportadmin (6) workflow (6) CU (5) Excel (5) Patch (5) client object model (5) Client Code (4) Command (4) Cumulative Updates (4) IIS (4) SharePoint 2019 (4) SharePoint designer (4) office 365 (4) stsadm (4) user porfile (4) ASP.NET (3) Content Database (3) Groove (3) Host Named Site Collections (HNSC) (3) SharePoint 2016 (3) Tutorial (3) alert (3) authentication (3) batch file (3) codeplex (3) domain (3) error (3) incomming email (3) issue (3) restore (3) upload (3) Caching (2) DocAve 6 (2) Folder (2) Index (2) Internet (2) My Site Cleanup Job (2) My Sites (2) News (2) People Picker (2) Share Document (2) SharePoint admin (2) View (2) Web Development with ASP.NET (2) add user (2) audit (2) coding (2) column (2) deploy solution (2) download (2) enumsites (2) exam (2) export (2) june CU (2) load balance (2) mySites (2) network (2) orphan site (2) performance (2) profile (2) project server (2) query (2) security (2) server admin (2) theme (2) timer job (2) training (2) web master (2) web.config (2) wsp (2) 70-346 (1) 70-630 (1) AAM (1) Anonymous (1) Approval (1) AvePoint (1) Cerificate (1) Consultants (1) Content Deployment (1) Content Type (1) DOS (1) Document Library (1) Drive Sapce (1) Excel Services (1) Export to Excel (1) Feature (1) GAC (1) Get-SPContentDatabase (1) Get-WmiObject (1) HTML calculated column (1) ISA2006 (1) IT Knowledge (1) ITIL (1) Install (1) Link (1) MCTS (1) Macro (1) Masking (1) Migration (1) NLBS (1) Nintex (1) Office (1) Open with Explorer (1) ROIScan.vbs (1) Reporting Services (1) SPDisposeCheck.exe (1) SQL Instance name (1) SSRS (1) Sandbox (1) SharePoint Online (1) SharePoint farm (1) Shared Services Administration (1) Site Collection Owner (1) Site template (1) Skype for business (1) Steelhead (1) Teams (1) URLSCAN (1) VLOOKUP (1) WSS SP2 (1) XCOPY (1) abnormal incident (1) admi (1) app (1) application pool (1) aspx (1) availabilty (1) backup (1) binding (1) blob (1) branding sharepoint (1) cache (1) calendar (1) change password (1) connection (1) copy file (1) counter (1) crawl (1) custom list (1) domain security group (1) event (1) excel 2013 (1) facebook (1) filter (1) fun (1) group (1) iis log (1) import (1) import list (1) improment (1) interview (1) keberos (1) licensing (1) log in (1) metada (1) migrate (1) mossrap (1) notepad++ (1) onedrive for business (1) operation (1) owa (1) process (1) publishing feature (1) resource (1) send email (1) size (1) sps2003 (1) sql201 (1) sql2012 (1) sub sites (1) system (1) table (1) task list (1) today date (1) trial (1) vbs (1) video (1) web part (1) web server (1) widget (1) windows 2008 (1) windows 2012 R2 (1) windows Azura (1) windows account (1) windows2012 (1) wmi (1)

Monday, December 21, 2015

SharePoint Incoming email basic checking

Issues : user unable to send mail to the SharePoint document library  ( setup is done, is suddenly out of service )


checking step  :
  • To confirm is the SharePoint timer service problem or  other issues, i have tested to send the email to other document library with email incoming enable. Is working , so we narrow down is not the SharePoint timer service issues.
  • secondly need to check and see the email have send out from email server to our server or not , this can go to each web front end sever drive D:\inetpub\mailroot\Drop , you will see some item there. You can use notepad to open the xxx.eml item then you will see the sender from and to also other email detail . then this is confirm not email server issues.
resolution step :
  • disable the incoming email and the document library then wait for few minute and enable it back.

Wednesday, December 16, 2015

Host Named Site Collections (HNSC)

刚刚学到新的SharePoint 2010 / 2013 的新知识,就是 Host Named Site Collections (HNSC) . 很少公司会用这种方法,普通用法都是 path-based site collections 然后和 host headers 而已。



Example path-based site collections :
 Team A has a site collection http://contoso.com/sites/teamA
 Team B has a site collection  http://contoso.com/sites/teamB

Host named site collections :
http://TeamA.contoso.com
http://TeamB.contoso.com


Use host headers and host-named site collections

Host headers allows the web server to host multiple web sites on the same IP Address and Port combination. If the incoming HTTP request includes a host header name, and a matching host header is configured in IIS, IIS will respond with the content from the appropriate web site.
Host headers are configured at the Web Application (IIS website) level, they are one of the website bindings properties.
It is important to understand the distinction between Host headers in IIS and Host Named Site Collections. Host headers at the IIS website level are only intended for path-based site collections.
When using Host named site collections, SharePoint is responsible for resolving the correct site for the address based upon the incoming request passed through IIS. In most cases, applying a host header binding at the IIS website level makes it impossible to access host-named site collections through the IIS website. This is because IIS will not respond to requests for host names that differ from the host header binding.
ImportantImportant:
If an existing web application has a host header binding set, IIS will not return pages from the host-named site collection until you remove the binding from IIS. For more information, see Update a Web application URL and IIS bindings (Office SharePoint Server 2007).





Mix host-named site collections and path-based site collections in the same web application

You can use host-named and path based site collections in the same web application. To ensure that both types of site collections are accessible to users, do not put host header bindings on the IIS website of your web application, including IIS websites for zones that are extended from the web application. If an existing web application has a host header binding set, IIS will not return pages from the host-named site collection until you remove the binding from IIS.

https://technet.microsoft.com/en-us/library/cc424952.aspx 



Sunday, December 6, 2015

Excel 2013 - Getting challenged for username and password

Error message : "A connection to the SharePoint site cannot be established.  To synchronize or refresh your table, you must be able to connect to the SharePoint site"


Background story :

We are using SharePoint 2010 and have several Excel spreadsheets that have data connections in them that use a SharePoint list to refresh data (not using excel services).  The Excel spreadsheets are stored in a SharePoint document library and the site is a trusted location.  All of our users have at least read access to the library as well as the SharePoint lists where the data is stored.  Some of the lists are coming from a site that is in a different site collection than where the Excel spreadsheet is stored.
Our problem is this:  Our users that are running Excel 2010 can open and refresh the data just fine.  Our users running Excel 2013 are constantly challenged for user name and password (it does not accept it when it is entered) and the data does not refresh.  The error message is "A connection to the SharePoint site cannot be established.  To synchronize or refresh your table, you must be able to connect to the SharePoint site".    Then it tells you which data range failed to refresh.  When you click OK, it goes on to the next connection that it cannot connect to and repeats the process until you have gone through all of the connections.
No permissions have been changed and these users could access the spreadsheet before being upgraded to Office 2013.  They are using Windows 7, Service Pack 1.  I am the farm administrator and am able to open the spreadsheet in Excel 2013.  I've tried increasing the user's permissions but it still won't open for them.

Solution :

Grant the permission to user/group to the SitePages Document Library

URL Discussion :
https://social.technet.microsoft.com/Forums/en-US/23c7f5ed-0041-451e-834f-0652c87af67d/sharepoint-2010-and-excel-2013-getting-challenged-for-username-and-password?forum=sharepointgeneralprevious&prof=required


Thursday, September 24, 2015

Better explanation than Technet about Export-SPWeb

technet site for Export-SPWeb :  https://technet.microsoft.com/en-us/library/ee428301.aspx

this site look like not so helpful for me to export the list ...

i prefer this more detail site explanation :

http://blog.blksthl.com/2013/09/05/export-a-document-library-using-export-spweb-and-itemurl/

===========================================================================================

Export-SPWeb
(This is my better version of the TechNet articles on the same CMDlet that does a poor job with the details, I hope that it will help some of you)
SharePoint 2010 | SharePoint 2013
Applies to:  SharePoint Foundation 2010 | SharePoint Server 2010 | SharePoint Foundation 2013 | SharePoint Server 2013 
Exports a site, list, or library.

Export-SPWeb [-Identity]  -Path  [-AssignmentCollection ] [-CompressionSize ] [-Confirm []] [-Force ] [-HaltOnError ] [-HaltOnWarning ] [-IncludeUserSecurity ] [-IncludeVersions [-ItemUrl ] [-NoFileCompression ] [-NoLogFile ] [-UseSqlSnapshot ] [-WhatIf []]
——————–EXAMPLE———————–
Export-SPWeb http://site –Path "c:\temp\site export.cmp" -ItemURL "/subsite/documents"
This example exports the document library at http://site/subsite/documents to a new file called ‘site export.cmp' in the ‘C:\temp’ directory.

Wednesday, September 2, 2015

powershell copy folder to remote computer

$ServerName = Get-Content "C:\Users\nspuum\Desktop\Computers.txt"


foreach ($Server in $ServerName) {

$server

New-Item -ItemType directory -Path "\\$server\d$\software\SP2010 SP2\SP2 LP"

Copy-Item  "D:\software\SP2010 SP2\SP2 LP\*"  "\\$Server\d$\software\SP2010 SP2\SP2 LP" -Recurse -force



}

Sunday, August 16, 2015

Get Site Collections per Content Database one-liner

Copy from Here


Get-SPContentDatabase | %{Write-Output "- $($_.Name)”; foreach($site in $_.sites){write-Output $site.url}}

Now let’s say you want to save this output to a .txt file, you can add “> C:\sitecollections.txt”.
The full command would be:
Get-SPContentDatabase | %{Write-Output "- $($_.Name)”; foreach($site in $_.sites){write-Output $site.url}} > C:\sitecollections.txt

Friday, August 14, 2015

PowerShell script to list down all the site collection owner at web app level

copy from : http://geekswithblogs.net/bjackett/archive/2011/03/25/powershell-script-to-display-all-sharepoint-site-collection-administrators-in.aspx

=======================================================================

$siteUrl = Read-Host "Enter Site URL"

$rootSite = New-Object Microsoft.SharePoint.SPSite($siteUrl)
$spWebApp = $rootSite.WebApplication

foreach($site in $spWebApp.Sites)
{
    foreach($siteAdmin in $site.RootWeb.SiteAdministrators)
    {
        Write-Host "$($siteAdmin.ParentWeb.Url) - $($siteAdmin.DisplayName)"
    }
    $site.Dispose()
}

========================================================================

Wednesday, August 12, 2015

The script appears to run outside administrator context

Scenario :

  • Running ROIScan.vbs and show the error message below 
  • Running PowerShell script check the serrver hard disk space unable to remote in

Error message  :


  • ROIScan.vbs : The script appears to run outside administrator context
  • PowerShelll : Get-WmiObject : Not found

Solution : copy from here

1. winmgmt /verifyrepository
 - Got error Repository inconsistent
2. winmgmt /salvagerepository
 - Once successful everything started working fine
/verifyrepository []
        Performs a consistency check on the WMI repository. When you add the
        /verifyrepository switch without the argument, then the live
        repository currently used by WMI is verified. When you specify the path
        argument, you can verify any saved copy of the repository. In this
        case, the path argument should contain the full path to the saved
        repository copy. The saved repository should be a copy of the entire
        repository folder.
/salvagerepository
        Performs a consistency check on the WMI repository, and if an
        inconsistency is detected, rebuilds the repository.  The content of the
        inconsistent repository is merged into the rebuilt repository, if it
        can be read. The salvage operation always works with the repository
        that the WMI service is currently using. MOF files that contain the
        #pragma autorecover preprocessor statement are restored to the
        repository.

Tuesday, August 11, 2015

PowerShell Script : copy file to multiple target Computer/Server

Scenario to be done :  Copy 4 file (ROIScan.vbs ,MspFixUp.vbs , wiCollectFiles.vbs, run fixup.txt) to target server.

target server list keep at "C:\Users\Desktop\Computers.txt"

Save below file as powershell file format .ps1 . run it . done.
========================================================================

$ServerName = Get-Content "C:\Users\Desktop\Computers.txt"


foreach ($Server in $ServerName) {

Copy-Item -Path D:\software\ROIScan.vbs         -Destination \\$Server\d$\software\
Copy-Item -Path D:\software\MspFixUp.vbs         -Destination \\$Server\d$\software\
Copy-Item -Path D:\software\wiCollectFiles.vbs    -Destination \\$Server\d$\software\


}
========================================================================


Monday, August 10, 2015

Script Creating SharePoint User MySites using PowerShell

While working on a large migration project (SharePoint 2010 to SharePoint 2013), I had a requirement to script the creation of user MySites for hundreds of users. I knocked this little PowerShell function together to do just that!

Function Create-MySite            
{            
 [CmdletBinding()]            
 Param            
 (            
  [Parameter(Mandatory = $True,Position=2,valueFromPipeline=$true)][String]$Username,            
     [Parameter(Mandatory = $True,Position=1)][String]$MySiteRootURL              
 )            
 [void][reflection.assembly]::Loadwithpartialname("Microsoft.Office.Server");               
 $site=new-object Microsoft.SharePoint.SPSite($MySiteRootURL);            
 try            
 {            
  $serviceContext = Get-SPServiceContext $site;            
  $upm = new-object Microsoft.Office.Server.UserProfiles.UserProfileManager($serviceContext);             
  if($upm.UserExists($Username) -eq $false)            
  {            
   Write-Host "User $Username was not found in the profile store." -f yellow;            
   return;            
  }            
  $userProfile = $upm.GetUserProfile($Username);            
  if($userProfile.PersonalSite -eq $Null)            
  {            
   Write-Host "Creating MySite for user $Username" -f darkyellow;            
   $userProfile.CreatePersonalSite();                  
   Write-host "Successfully created MySite for user $Username" -f green;            
  }            
  else            
  {            
   Write-Host "User $Username already has a MySite." -f darkgreen;            
  }            
 }            
 catch            
 {            
  Write-Host "Encountered an error creating a MySite for user $Username. Error:"$_.Exception -f Red;            
 }            
 finally            
 {            
  $site.Dispose();            
 }            
}

You can call the function like this (for a single user):

#Example - Create a MySite for user  "tonyj"            
Create-MySite -MySiteRootURL "http://mysite.bigintranet.com.au" -Username "tonyj"

Or call it like this, for a batch of users:

#To Create for an array of users            
$users = @('tonyj','bobh','markf','billd')            
$users | Foreach {Create-MySite -MySiteRootURL "http://mysite.bigintranet.com.au" -username $_}


this article copy from : Matthew Yarlett

Wednesday, August 5, 2015

Disable incoming email settings pages for SharePoint server 2007

TO restrict user to change incoming email settings, we must customize some of aspx files.

Implementation Instructions

1.         Logon to the servers, and open “C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\template\LAYOUTS”.

2.         Take back up following 2 aspx files, and place them on same directory.
*
new.aspx
* EmailSettings.aspx


3.         Change file name that you back up now as below
*
new.aspx                                                          new_xxx.aspx
* EmailSettings.aspx                                        EmailSettings_xxx.aspx

4.         Open new.aspx(Original). And add “disabled="disabled"” in the following code.

Around line 412…

disabled="disabled"
>
disabled="disabled">


Around line 504….

disabled="disabled">
disabled="disabled">


5.         Save and close.

6.         Open EmailSettings.aspx(Original). And change code as following.

Around line 97…
Original

function _spBodyOnLoad()
{
SetControlsDisabled(document.getElementById("<%= EnabledFalse.ClientID %>").checked);
}

New
function _spBodyOnLoad()
{
//SetControlsDisabled(document.getElementById("<%= EnabledFalse.ClientID %>").checked);
SetControlsDisabled(document.getElementById("<%= EnabledFalse.ClientID %>").disabled = true);
SetControlsDisabled(document.getElementById("<%= EnabledTrue.ClientID %>").disabled = true);
}

7.         Save and close.

8.         Repeat above step for all WFEs.


how to open the setting page 

1.       Open the document library you just created.
2.       Click Settingsdocument library settings.
3.       Under Communication Settings click E-Mail Settings.

4.       Change URL as below.
http:/xxx/sites/xxx/_layouts/EmailSettings.aspx?List=xxx
      ↓
http:/xxx/sites/xxx/_layouts/EmailSettings_xxx.aspx?List=xxx

Power Shell Script to get all the Drive space from remote server

copy the script from internet and edit accordingly to my own use , so like to share with other Server Admin for this .


  • List down all your target server name at the text file at Computers.txt 
  • Save below script as checkDisk.ps1 format.

========================================================================

$ServerName = Get-Content "C:\Users\Desktop\Computers.txt"


foreach ($Server in $ServerName) {

Copy-Item -Path D:\software\ROIScan.vbs         -Destination \\$Server\d$\software\
Copy-Item -Path D:\software\MspFixUp.vbs         -Destination \\$Server\d$\software\
Copy-Item -Path D:\software\wiCollectFiles.vbs    -Destination \\$Server\d$\software\
Copy-Item -Path "D:\software\run fixup.txt"    -Destination \\$Server\d$\software\


}
========================================================================


This version is customize by my own use with header:
========================================================================
$ServerName = Get-Content "C:\Users\admSin_Peow_Ng\Desktop\Computers.txt"
$ConvertToGB = (1024 * 1024 * 1024)

"Server Name "+ " C drive Space" + " C drive Free Space"+ " D drive Space" + " D drive Free Space"
"===============" + " ==============" + " ==================" + " =============" + " =================="


$report = foreach ($Server in $ServerName) {

    $diskC = Get-WmiObject Win32_LogicalDisk -ComputerName $Server -Filter "DeviceID='C:'" | Select-Object Size,FreeSpace
    $diskD = Get-WmiObject Win32_LogicalDisk -ComputerName $Server -Filter "DeviceID='D:'" | Select-Object Size,FreeSpace



    $Server +" " + (($diskC.Size/ $ConvertToGB)).tostring("###.###") + " GB " + (($diskC.FreeSpace / $ConvertToGB)).tostring("###.###")+ " GB         " + (($diskD.Size / $ConvertToGB)).tostring("###.###") + " GB " + (($diskD.FreeSpace / $ConvertToGB)).tostring("###.###")+ " GB "

}

$report
========================================================================


Lastly open you Windows PowerShell and run the checkDisk.ps1 .
*if have server connection problem ,you will see the error message

if you want write the output to text file , just run the below command:
*if you write to text file then will skip the error but the output will remain no data for the server have connection problem

PS : checkDisk.ps1 > report.txt

you can just copy and paste to excel to manipulate the data.




Monday, August 3, 2015

Can't activate feature because of an existing column in a child site

Problem :


  • Manage Content and Structure shortcut not show at Site Actions
    • Need activate feature 
      • SharePoint Server Publishing Infrastructure
      • SharePoint Server Publishing
  • Activate publishing feature but fail

Error message :

When activating the publishing feature :


Enable-SPFeature : The field with Id {51d39414-03dc-4bd0-b777-d3e20cb350f7} defined in feature {aebc918d-b20f-4a11-a1db-9ed84d79c87e} was found in the current site collection or in a subsite.


Resolution : From different source 

http://sharepoint.stackexchange.com/questions/31597/cant-activate-feature-because-of-an-existing-column-in-a-child-site
http://sharepoint.stackexchange.com/questions/27196/activating-ootb-features-fails

Summary of resolution :
Run the script to found out which sub site to delete :

It seems like your problem is that a site column with ID is already exist at root or sub sites. This site is created typically by SharePoint publishing infrastructure and it corresponds to PublishingStartDate site column. This is (typically) installed by a hidden FEATURE when publishing feature is activated.


Use following script to find the webs in which it exists:

 $url = Read-Host -Prompt "Provide Url for the web";
$fieldID = "51d39414-03dc-4bd0-b777-d3e20cb350f7"
$site = Get-SPSite $url
foreach ($web in $site.AllWebs)
{   
    foreach ($field in $web.Fields)
    {
        if ($field.Id -eq $fieldID)
        {
            $msg = [String]::Format("{0} contains the field.", $web.Url);
            Write-Host $msg
        }
    }
}
 2. Run the Poweshell script :


 $urlSite = "http://server/sitecollection"

$urlSubWeb = "http://server/sitecollection/subweb" #sub web identify by above step
$tempPath = "d:\temp"
$featId = "f6924d36-2fa8-4f0b-b16d-06b7250180fa" # Publishing feature
# Backup the site collection in case something goes wrong


Backup-SPSite -Identity $urlSite -Path "$tempPath\sitecoll.bak"


Export-SPWeb -Identity $urlSubWeb -Path "$tempPath\subweb.cmp" -IncludeUserSecurity -IncludeVersions All


Remove-SPWeb  -
$url SubWeb


Enable-SPFeature -Identity $featId -Url $urlSite 

after enable the Feature still unable to resolve the issues: Run below command

Manually deactivate the both feature 


Run Below command :


stsadm -o activatefeature -name PublishingSite -url 
$url -force 

stsadm -o activatefeature -name PublishingWeb -url 
$url -force 

stsadm -o activatefeature -name PublishingResources -url 
$url -force

Lastly manually activate the feature  and test on it.


#final step restore the sub site

New-SPWeb -Url $urlSubWeb -Language 1033

Import-SPWeb -Identity $urlSubWeb -Path "$tempPath\subweb.cmp"  -IncludeUserSecurity

Tuesday, July 28, 2015

Migration non standard workflow at SharePoint2010

Recently involved in Migration project between SharePoint 2010 farm, let me understand more about the backup Restore command VS Export Import command.

Backup Restore : For Site Collection
Export Import : For Site collection or sub site or list or document library

Backup Restore : Workflow is migrated , in progress workflow is continue working :D
Export Import : Workflow not migrated


here you go for more detail:

https://naimmurati.wordpress.com/2013/04/13/site-collection-backuprestore-vs-site-exportimport-with-focus-on-running-workflows-version-history-and-auditing/



Monday, March 23, 2015

Install SharePoint 2013 on Windows Server 2012 R2

using few hour to trouble why SharePoint 2013 unable to run the prerequisites tools !!

with error message : 

Error: The tool was unable to install Application Server Role, Web Server (IIS) Role.


 Error: Startup task doesn't exist. This is not a continuation after a restart.
after try out all the solution at internet but at last found out the root cause is :

Windows Server 2012 R2 need to use sharepoint 2013 with SP1 only can run the prerequisites tools.


https://support.microsoft.com/en-us/kb/2891274?wa=wsignin1.0


*ha ha..first time deployment at windows 2012 R2 , learnt the lesson here