728x90
Lync/SFB 에서 정책을 백업 및 복구 하는 방법입니다.
Export 방법
Get-CsClientPolicy | Export-Clixml -Path "c:\csclientpolcy.xml"
Import 방법
Import-Clixml "C:\csclientpolcy.xml" | Set-CsClientPolicy
끝.
참고
Lync 2013 Backup Script
http://lyncscripts.blogspot.kr/2013/09/lync-2013-backup-script.html
I have to admit the Lasse' scripting talents (and his willingness to share) has delivered some awesome scripts. Todays blog is evidence of his skills...his work is found here http://tech.rundtomrundt.com/p/lync-scripts.html Thanks buddy! <# .Synopsis This is a script to make a backup of your Lync 2013 Enterprise edition server environment. It should be run on a windows server 2012, and a 2013 Lync server. .DESCRIPTION A script to backup vital components in a Lync Enterprise Edition deployment Created by Lasse Nordvik Wedø - All rights reserved Http://tech.rundtomrundt.com - This script is for a Enterprise Edition Server. - The script has only been tested in single site topology. I suspect adjustments must be made for deployments with more than one site (If anyone would do so, or let me have access to such a deployment, please let me know) - This script has been tested with a co location of all databeses. If you require it to backup your Monitoring/archiving databases from seperate SQL servers, you must add these sources to the script. - The script should be able to run without any modification or input, unless you want to use other paths than I have entered. - The script must be run on a server where Lync PS is available. - If the script must be run in a PS3 environment, and will load all nessecary modules automatically - My script creates a directory C:\lyncbackup\, this may be edited if you like. - Certificates will only be backed up if you allowed for this when requesting and creating certificates. - Certificate backup is only done on the machine where the script is run - The creation of the zipfile can take a while. The script finishes before the zipfile is finished (If anyone know how to wait for this task before quitting the script, please let me know). - I highly recommend you test the script in your Lab, before running in your production environment V 1.0 - July 2012 - Created for Standard Edition V 1.1 - August 2012 - added a cleanup rutine, and zip rutine V 1.2 - October 2012 - Completed for Enterprise Edition V 2.0 - March 2013 - Edited for a Lync 2013 environment. .EXAMPLE Backupscript - Enterprise EDT v2 (Lync 2013).ps1 #> $date = "{0:yyyy_MM_dd-HH_mm}" -f (get-date) ################################################################# # # Getting Lync pool information # ################################################################# $sysinfo = Get-WmiObject -Class Win32_ComputerSystem $fqdnLyncReal = “{0}.{1}” -f $sysinfo.Name, $sysinfo.Domain $fqdnLyncpool = Get-CsService -CentralManagement | Select-Object PoolFqdn $fqdnLync = $fqdnLyncpool.PoolFqdn.tolower() ################################################################# # # This will store Backup in C:\lyncbackup\ # # Setting File and share paths # Defining filenames # # Edit these to for automation as you please # ################################################################# [system.Console]::ForegroundColor = [System.ConsoleColor]::Yellow $filepath = "c:\lyncbackup\" $filepathshare = "c:\lyncbackup" $fileshare = Get-CsService -FileStore | Select-Object UncPath $filesharepath = $fileshare.UncPath.tolower() $filepath1 = $filepath + $date $filepath2 = $filepath1 + "\FileshareData" $filepath3 = $filepath1 + "\SQLBU" $backupfile1 = $filepath1 + "\CsConfiguration.zip" $backupfile10 = $filepath1 + "\RGSConfiguration.zip" $backupfile11 = $filepath + "\BACKUP " + $date +".zip" $backupfile12 = $filepath1 + "\Topology " + $date +".xml" $backupfile13 = $filepath1 + "\UserData.zip" $backupfile14 = $filepath1 + "\PersistantChatData.zip" $backupfile2 = $filepath1 + "\CsLISconfiguration.bak" $backupfile3 = $filepath1 + "\dbimpexp.xml" $backupfile4 = $filepath1 + "\DialPlan.xml" $backupfile5 = $filepath1 + "\VoicePolicy.xml" $backupfile6 = $filepath1 + "\VoiceRoute.xml" $backupfile7 = $filepath1 + "\PSTNUsage.xml" $backupfile8 = $filepath1 + "\VoiceConfiguration.xml" $backupfile9 = $filepath1 + "\TrunkConfiguration.xml" $logfile = "c:\Backup_run_" + $date +".log" $fileshare = "\\" + $fqdnLyncReal + "\lyncbackup" $backuproot = $fileshare + "\" + $date + "\SQLBU" Start-Transcript -Path $logfile -Append Write-Output ("Script started at: " + $date); New-Item $filepath -type directory -force -Verbose New-Item $filepath1 -type directory -force -Verbose New-Item $filepath2 -type directory -force -Verbose New-Item $filepath3 -type directory -force -Verbose ################################################################# # # Creating a fileShare with everyone rigths # If you already have provisioned a share, where you SQL_service user have full controll over, # You may skip this. # ################################################################# NET SHARE lyncbackup=$filepathshare "/GRANT:Everyone,FULL" ################################################################# # # Delete all Files in $filepath older than 5 day(s) # ################################################################# $Days = "-5" $CurrentDate = Get-Date $DatetoDelete = $CurrentDate.AddDays($Days) Get-ChildItem $filepath -recurse | Where-Object { $_.LastWriteTime -lt $DatetoDelete } | Remove-Item -Verbose ################################################################# # # Exporting your Microsoft Lync Server 2013 topology, policies, and configuration settings to a file. # ################################################################# export-csconfiguration -filename $backupfile1 -Verbose ################################################################# # # Creating a backup of your topology as an XML file # ################################################################# (Get-CsTopology -AsXml).ToString() > $backupfile12 ################################################################# # # Exports an Enterprise Voice Enhanced 9-1-1 (E9-1-1) configuration to a file in compressed format for backup purposes. # ################################################################# export-cslisconfiguration -filename $backupfile2 -Verbose ################################################################# # # Exports RGS configuration to a file in compressed format for backup purposes. # ################################################################# Export-CsRgsConfiguration -source ApplicationServer:$fqdnLync -FileName $backupfile10 -Verbose ################################################################# # # Export User information # ################################################################# Export-CsUserData -PoolFqdn $fqdnLync -FileName $backupfile13 -Verbose ################################################################# # # Use Xcopy to create copy from fileshare # ################################################################# net use y: $filesharepath cd y: Xcopy *.* $filepath2 /E /I /Y /H /C cd $filepath net use y: /delete ################################################################# # # Backing up some of the vital policies and settings # ################################################################# Get-CsDialPlan | Export-Clixml -path $backupfile4 -Verbose Get-CsVoicePolicy | Export-Clixml -path $backupfile5 -Verbose Get-CsVoiceRoute | Export-Clixml -path $backupfile6 -Verbose Get-CsPstnUsage | Export-Clixml -path $backupfile7 -Verbose Get-CsVoiceConfiguration | Export-Clixml -path $backupfile8 -Verbose Get-CsTrunkConfiguration | Export-Clixml -path $backupfile9 -Verbose ################################################################# # # I ran into some file rights issues when backing up the SQL # Setting ACL on the target forlder of the SQL Backup # Should not impose any security threat, as the share is removed in the end # ################################################################# $Acl = Get-Acl $filepath3 $Ar = New-Object system.security.accesscontrol.filesystemaccessrule("Everyone","FullControl","ContainerInherit, ObjectInherit", "None","Allow") $Acl.SetAccessRule($Ar) Set-Acl $filepath3 $Acl ################################################################# # # Backing up SQL # ################################################################# Import-Module SQLPS -DisableNameChecking $SQLInstance = Get-CsConfigurationStoreLocation $SQLFQDN = Get-CsService -CentralManagementdatabase | Select-Object PoolFqdn $InstanceSQL = Get-CsService -CentralManagementDatabase | Select-Object SqlInstanceName $instancenamesql = $InstanceSQL.SqlInstanceName.toupper() $SQLServer = $SQLFQDN.PoolFqdn.toupper() $Server = $SQLInstance; # SQL Server Instance. $inst=$null $Dest = $backuproot; # Backup path on server (optional). $ServerName = $sysinfo.Name.tostring() [void][System.Reflection.Assembly]::LoadWithPartialName('Microsoft.SqlServer.ConnectionInfo'); [void][System.Reflection.Assembly]::LoadWithPartialName('Microsoft.SqlServer.Management.Sdk.Sfc'); [void][System.Reflection.Assembly]::LoadWithPartialName('Microsoft.SqlServer.SMO'); # Requiered for SQL Server 2008 (SMO 10.0). [void][System.Reflection.Assembly]::LoadWithPartialName('Microsoft.SqlServer.SMOExtended'); cd SQLSERVER:\SQL\$SQLServer\$instancenamesql\Databases #start full backups $cdate = Get-Date -Format MMddyy foreach($database in (Get-ChildItem -name -force)) { $dbName = $database $bakFile = $dest + "\" + $dbName + "_full_" + $cdate + ".bak" If($dbName -ne "tempdb"){ Backup-SqlDatabase -Database $dbName -BackupFile $bakFile -Initialize -verbose }} ################################################################# # # Export Persistant Chat # This part of the script will be updated once I can verify it # ################################################################# #$SQLInstance = Get-CsConfigurationStoreLocation | Select-Object BackEndServer #$PersistandBU = $SQLInstance.BackEndServer.ToLower() #Export-CsPersistentChatData -DBInstance $PersistandBU -FileName $backupfile14 ################################################################# # # Backing up CERT of local computer # ################################################################# dir cert:\localmachine\my | Where-Object { $_.HasPrivateKey -and $_.PrivateKey.CspKeyContainerInfo.Exportable } | Foreach-Object { [system.IO.file]::WriteAllBytes( $filepath1 + "\$($_.thumbprint).pfx", ($_.Export('PFX', 'secret')) ) } ################################################################# # # Create the final ZIP file # ################################################################# Set-Content $backupfile11 ("PK" + [char]5 + [char]6 + ("$([char]0)" * 18)) $File = Get-ChildItem $backupfile11 -ErrorAction SilentlyContinue $File = (New-Object -COM Shell.Application).Namespace($File.FullName) $File.CopyHere($filepath1, 4) c: cd \ NET SHARE lyncbackup /y /delete #write-host "Your backupfile is now storing as $backupfile11" Write-Output ("Finished at: " + (Get-Date -format yyyy-MM-dd-HH:mm:ss) + "A logfile has been created as " + $logfile); Stop-Transcript [system.Console]::ForegroundColor = [System.ConsoleColor]::White |
728x90
'IT이야기 > S4B&Lync' 카테고리의 다른 글
Lync Server 2013 Standard Second Server 추가와 탄력적 백업풀 활당 방법 (0) | 2016.04.06 |
---|---|
[SFB] peer to peer 기록 출력하는 파워쉘 (0) | 2016.04.01 |
Skype For Business Front-End EnterPrise 배포 (0) | 2016.03.17 |
Cumulative Update List skype for business 2015 (0) | 2016.03.16 |
Lync 암호 저장을 해제하는 방법 (0) | 2016.02.19 |