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\
}
========================================================================
keep track and sharing on my sharepoint knowledge :) nice to meet you all
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)
Tuesday, August 11, 2015
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!
You can call the function like this (for a single user):
Or call it like this, for a batch of users:
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 $_}
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
* 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
* 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"
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);
}
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
how to open the setting page
1.
Open the document library you just
created.
2.
Click Settings – document 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
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 .
========================================================================
$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.
- 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 :
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
- 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
Subscribe to:
Posts (Atom)