深入浅出Powershell——部署BCS

 http://autospinstaller.codeplex.com/discussions/246532

http://todd-carter.com/post/2010/04/26/The-Wizard-Likes-His-GUIDs.aspx


创建Secure Store Service

Add-PSSnapin Microsoft.SharePoint.PowerShell -EA SilentlyContinue 
$serviceApplicationPool="Secure Store Service Pool" #name of the application pool under which the application should run
$secureStoreDatabaseName="SecureStoreServiceDB" #the sharepoint database where the service app will store the data
$secureStoreApplicationName="Secure Store Service" #name of the service application
$secureStoreApplicationProxyName="Secure Store Service Proxy" #name of the service application proxy
$targetAppID="GMAx SSS" #name of the service target application
$targetAppName="GMAxSecureStoreServiceTargetApp"
$secureStoreAdministrator="ibm\10010" #the administrator of the application
$secureStoreUser="ibm\domain user" #the group or user that will have access to service application. I use the group configuration
$secureStoreAdministratorEmail="Mingle.Lui@gmail.com" #email of the administrator
$serviceContext="http://www.ibm.com/" # the url for getting the service application context
$targetApplicationUserName="ibm\10010" #user name which will be used to access the external application
$targetApplicationUserPassword="Password_213"
#password which will be used to access the external application
$passPhrase="2012-Mar" #passphrase for securing the application

#Gettheserviceinstance
$SecureStoreServiceInstances=Get-SPServiceInstance|?{$_.GetType().Equals([Microsoft.Office.SecureStoreService.Server.SecureStoreServiceInstance])}
$SecureStoreServiceInstance=$SecureStoreServiceInstances|?{$_.Server.Address -eq $env:COMPUTERNAME}
If(-not$?){Throw "-FailedtofindSecureStoreserviceinstance" }
#StartServiceinstance
If($SecureStoreServiceInstance.Status -eq "Disabled")
{
      Write-Host "-StartingSecureStoreServiceInstance..."
      $SecureStoreServiceInstance.Provision()
      If(-not$?){Throw"-FailedtostartSecureStoreserviceinstance"}
      #Wait
      Write-Host "-WaitingforSecureStoreservice..." -NoNewline
      While($SecureStoreServiceInstance.Status -ne "Online")
      {
      Write-Host "." -NoNewline
            Start-Sleep 1
            $SecureStoreServiceInstances=Get-SPServiceInstance | ?{$_.GetType().ToString() -eq "Microsoft.Office.SecureStoreService.Server.SecureStoreServiceInstance"}
            $SecureStoreServiceInstance=$SecureStoreServiceInstances | ?{$_.Server.Address -eq $env:COMPUTERNAME}
      }
      Write-Host $($SecureStoreServiceInstance.Status)
}
                  #CreateServiceApplication
                  $GetSPSecureStoreServiceApplication=Get-SPServiceApplication | ?{$_.GetType().Equals([Microsoft.Office.SecureStoreService.Server.SecureStoreServiceApplication])}
                  If($GetSPSecureStoreServiceApplication -eq $Null)
                  {
                        Write-Host "-CreatingSecureStoreServiceApplication..."
                        New-SPSecureStoreServiceApplication -Name $secureStoreApplicationName -PartitionMode:$false -Sharing:$false -DatabaseName $secureStoreDatabaseName -ApplicationPool $serviceApplicationPool -AuditingEnabled:$true -AuditLogMaxSize 30 |Out-Null
                        Write-Host "-CreatingSecureStoreServiceApplicationProxy..."
                        Get-SPServiceApplication | ?{$_.GetType().Equals([Microsoft.Office.SecureStoreService.Server.SecureStoreServiceApplication])}|New-SPSecureStoreServiceApplicationProxy -Name $secureStoreApplicationProxyName -DefaultProxyGroup|Out-Null
                        Write-Host "-DonecreatingSecureStoreServiceApplication."
                  }
                  Else{Write-Host "-SecureStoreServiceApplicationalreadyprovisioned."}

                  $secureStore=Get-SPServiceApplicationProxy|Where{$_.GetType().Equals([Microsoft.Office.SecureStoreService.Server.SecureStoreServiceApplicationProxy])}
                  Start-Sleep 5
                  Write-Host "-CreatingtheMasterKey..."
                  Update-SPSecureStoreMasterKey -ServiceApplicationProxy $secureStore.Id -Passphrase $passPhrase
                  Start-Sleep 5
                  Write-Host "-CreatingtheApplicationKey..."
                  Update-SPSecureStoreApplicationServerKey -ServiceApplicationProxy $secureStore.Id -Passphrase $passPhrase -ErrorAction SilentlyContinue

$usernameField=New-SPSecureStoreApplicationField –Name "UserName" -Type UserName –Masked:$false
$passwordField=New-SPSecureStoreApplicationField –Name "Password" –Type Password –Masked:$true
$fields=$usernameField,$passwordField

$adminClaim=New-SPClaimsPrincipal –Identity $secureStoreAdministrator –IdentityType WindowsSamAccountName
$groupid = (New-Object System.Security.Principal.NTAccount("ibm", "domain users")).Translate([System.Security.Principal.SecurityIdentifier]).Value
$userClaim=New-SPClaimsPrincipal –Identity $groupid –IdentityType WindowsSecurityGroupSid
$targetApp=new-spsecurestoretargetapplication -name $targetAppID -friendlyname $targetAppName -contactemail $secureStoreAdministratorEmail -applicationtype Group -timeoutinminutes 3
$ssApp=New-SPSecureStoreApplication –ServiceContext $serviceContext –TargetApplication $targetApp –Field $fields –Administrator $adminClaim -CredentialsOwnerGroup $userClaim
$firstCredential=ConvertTo-SecureString $targetApplicationUserName –AsPlainText –Force
$secondCredential=ConvertTo-SecureString $targetApplicationUserPassword –AsPlainText –Force
$credentialValues=$firstCredential,$secondCredential
Update-SPSecureStoreGroupCredentialMapping –Identity $ssApp –Values $credentialValues


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值