Monday, September 26, 2011

Detach Database

Get-SPContentDatabase -Webapplication http://intranet

***************************************************
....ERGEBNIS:
Id               : c994b208-3617-4423-9c77-ff562ad4
Name             : WSS_Content_Intranet
WebApplication   : SPWebApplication Name=intranet
Server           : DATABASESERVER
CurrentSiteCount : 1
***************************************************


$ID= c994b208-3617-4423-9c77-ff562ad4
Dismount-SPContentDatabase $ID


oder wenn nur eine ContentDB in der Webapp enthalten ist oder alle DBs entfernt werden sollen:

Get-SPContentDatabase -WebApplication http://sitename | Dismount-SPContentDatabase -WhatIf

Thursday, September 22, 2011

Create HostA Record Using PowerShell

$domain = "contoso.com"
$dns_server = "servername"
$HostA = "testentry"
$ipAddress = "10.10.10.10"

$dnsZone = $domain
$fqdn_dnsServer=$dns_Server+"."+$domain
$fqdn_HostA = $HostA+"."+$domain
$class = 1
$ttl = 3600
$dnsAType = [wmiclass]"\\$fqdn_dnsServer\root\MicrosoftDNS:MicrosoftDNS_AType"

$dnsAType.CreateInstanceFromPropertyData($fqdn_dnsServer
, $dnsZone, $fqdn_HostA, $class, $ttl, $IPAddress)

Health Analyzer: Missing server side dependencies.

[MissingWebPart] WebPart class [baf5274e-a800-8dc3-96d0-0003d9405663] is referenced [25] times in the database [SharePoint_AdminContent_bab358d6-0248-4b19-a354-c040dd311d81], but is not installed on the current farm. Please install any feature/solution which contains this web part. One or more web parts are referenced in the database [SharePoint_AdminContent_bab358d6-0248-4b19-a354-c040dd311d81], but are not installed on the current farm. Please install any feature or solution which contains these web parts.


Solution:
http://blogs.msdn.com/b/sharepointalps/archive/2012/03/16/sharepoint-health-analyzer-missing-server-side-dependencies.aspx
or:

Wednesday, September 21, 2011

Health Analyzer: InfoPath Forms Service Cannot be filled out....

$application_name = “Shared State Service Application”
$application_db = “Shared_StateService_DB”


New-SPStateServiceApplication -Name $application_name

New-SPStateServiceDatabase -Name $application_db -ServiceApplication $application_name

New-SPStateServiceApplicationProxy -Name $application_name -ServiceApplication $application_name –DefaultProxyGroup

WarmUp Script

Add-PsSnapin Microsoft.SharePoint.PowerShell -erroraction silentlycontinue 
   foreach ($webApp in get-SPWebApplication) 
    {     
        foreach ($site in $webApp.Sites) 
        { 
            foreach ($web in get-SPWeb -site $site) 
            { 
                $request = [System.Net.WebRequest]::Create($web.URL) 
                $request.Credentials = [System.Net.CredentialCache]::DefaultNetworkCredentials 
                $request.proxy = [System.Net.WebRequest]::DefaultWebProxy 
                $request.ContentType = "application/x-www-form-urlencoded" 
                $request.Method = "GET" 
        try{ 
                    $request.GetResponse().StatusCode 
            WRITE-HOST $request.GetResponse().StatusCode 
                } 
                catch [Net.WebException]{ 
                    $WebExceptionMessage = $_.Exception.Message 
                    WRITE-HOST "Folgender Fehler ist aufgetreten: " + $WebExceptionMessage 
                } 
            } 
        } 
    }

Backup Content DB

$backup_name= "Backup_Name"
$backup_dir = "\\fileserver\dir"
$url = "http://intranet"


backup-spsite $url -path $backup_dir\+$backup_name -force -UseSqlSnapsho -Verbose
oder
backup-spsite $url -path $backup_dir\+$backup_name -force


Backup-SPSite -Identity <Site collection name> -Path <backup file> [-Force] [-NoSiteLock] [-UseSqlSnapshot] [-Verbose]

Backup Config DB

$dbname= "SharePoint_Config"
$dbserver = "DBServer\Instance"
$backup_dir = "\\fileserver\dir"

Add-PsSnapin Microsoft.SharePoint.PowerShell -erroraction silentlycontinue 
Backup-SPConfigurationDatabase -Directory $backup_dir -DatabaseServer $dbserver -DatabaseName $dbname -Verbose

Install Solution

$solution_path="x:\path\file.wsp"
$solution_name= "SolutionName"
$url = "http://hostheader"
Add-PsSnapin Microsoft.SharePoint.PowerShell -erroraction silentlycontinue 

Add-SPSolution -LiteralPath $solution_path
Install-SPSolution -Identity $solution_name -WebApplication $url
Install-SPSolution -Identity $solution_name -AllWebApplications -GACDeployment -CASPolicies

Update 2007 to 2010 (Database Attach Method)

Copy DBs to new SQL Server
Check Security

Before Attach Content DB
Test-spcontentdatabase -name $contentdbname -webapplication $webappname

Mount-spcontentdatabase -name  $contentdbname -webapplication $webappname
Upgrade-spcontentdatabase  -name $contentdbname -webapplication $webappname

Create SiteCollection

$Title = "My Site Title"

$webappurl = "http://hostheader"
$pri_owner = "domain\user1"
$sec_owner = "domain\user2"



New-SPSite $webappurl -OwnerAlias $pri_owner -SecondaryOwnerAlias $sec_owner -Name $title -Template "STS#0"

Create WebApplication

$webappname = "myAutomatedWebApp"
$username = "domain\user"
$password = "Pa$$word"
$hostheader = "hostheader"
$port = 80


$content_db_name = "WSS_Content_"+$hostheader
$AppPool = "AppPool" + $webappname
$url="http://"+$hostheader
co
$secpass = convertto-securestring $password -asplaintext -force
$cred = new-object -typeName System.Management.Automation.PsCredential -argumentlist $username,$secpass

new-spmanagedaccount -Credential $cred

new-spwebapplication -name $webappname -port $port -hostheader $hostheader -URL $url -ApplicationPool $AppPool -ApplicationPoolAccount (Get-SPManagedAccount $username) -DatabaseName $content_db_name

Configure RBS (with Microsoft RBS Provider)

Add-SPShellAdmin -UserName CONTOSO\SP_Admin -Database ( Get-SPContentDatabase "WSS_Content_Intranet_IT" )
$site = Get-SPSite http://intranet/it
$web = $site.rootweb
$list = $web.Lists["Computer Inventory"]
$i = 1
do {
#add item
$newitem = $list.items.Add()
$newitem["Title"] = "Client-" + $i.ToString().PadLeft(4, "0");
$newitem["Computer Name"] = "Client-" + $i.ToString().PadLeft(4, "0");
$newitem["Serial Number"] = $i.ToString().PadLeft(8,"0");
$newitem.Update()
$i++
}
while ($i -le 4000)
$web.dispose()
$site.dispose()

$site = Get-SPSite "http://intranet/IT"
$web = $site.rootweb
$list = $web.Lists["Computer Inventory"]
$i = 4001
do {
#add item
$newitem = $list.items.Add()
$newitem["Title"] = "Client-" + $i.ToString().PadLeft(4, "0");
$newitem["Computer Name"] = "Client-" + $i.ToString().PadLeft(4, "0");
$newitem["Serial Number"] = $i.ToString().PadLeft(8,"0");
$newitem.Update()
$i++
}
while ($i -le 9000)
$web.dispose()
$site.dispose()

use [WSS_Content_Intranet_IT]
if not exists (select * from sys.symmetric_keys where name = N'##MS_DatabaseMasterKey##')create master key encryption by password = N'Master Key Pa$$w0rd'
if not exists (select groupname from sysfilegroups where groupname=N'RBSFilestreamProvider')alter database [WSS_Content_Intranet_IT]
add filegroup RBSFilestreamProvider contains filestream
alter database [WSS_Content_Intranet_IT] add file (name = RBSFilestreamFile, filename = 'c:\Blobstore') to filegroup RBSFilestreamProvider
cd d:\labfiles\lab04
d:
msiexec /qn /lvx* rbs_install_log1.txt /i RBS_x64.msi TRUSTSERVERCERTIFICATE=true FILEGROUP=PRIMARY DBNAME="WSS_Content_Intranet_IT" DBINSTANCE="SP2010-WFE1" FILESTREAMFILEGROUP=RBSFilestreamProvider FILESTREAMSTORENAME=FilestreamProvider_1

$cdb = Get-SPContentDatabase "WSS_Content_Intranet_IT"
$rbss = $cdb.RemoteBlobStorageSettings
$rbss.Installed()
$rbss.Enable()
$rbss.SetActiveProviderName($rbss.GetProviderNames()[0])
$rbss

$cdb = Get-SPContentDatabase "WSS_Content_Intranet_IT"
$rbss = $cdb.RemoteBlobStorageSettings
$rbss.MinimumBlobStorageSize = 1048576
$cdb.update()

Visual Upgrade

$webappurl = "http://portal"
$webapp = get-spwebappllication $webappurl


Foreach ($s in $webapp.sites)
{$s.visualUpgradewebs() }

Change Site Collection Administrator

$webappurl = "http://portal"
$account1= "domainname\username"
$account2= "domainname\username"


$webapp = Get-SPWebApplication $webappurl
$allsites = $webapp | get-spsite -limit all


$allsites | foreach-object { Set-SPSite -owneralias $account1 -identity $_.url}
$allsites | foreach-object { Set-SPSite -secondaryowneralias $account2 -identity $_.url}

Start Healh Analyzer Manually

Get-SPTimerJob | Where {$_.Name -like "*Health*" -and $_.Name -like "*-all-*"} | Start-SPTimerJob