.NET Framework 4.6.2 is supported with the February 2017 Cumulative Update for Skype for Business Server 2015

Both Lync Server 2013 and Skype for Business Server 2015 are supported with the .Net Framework 4.6.2.

Skype for Business Server must have the February 2017 update for Skype for Business Server or later installed.

This update can be found at https://support.microsoft.com/en-us/help/3061064/updates-for-skype-for-business-server-2015

Lync Server 2013 must have the November 2016 update, or later installed. This update can be found at https://www.microsoft.com/en-us/download/details.aspx?id=36820.

Execution of Scripts is Disabled on this System

When you try to run a powershell script on Windows, you may receive the following error stating that the execution policy on your computer does not allow you to run the script.

To fix this error, you must change the PowerShell execution policy for this computer.  These instructions will explain how to allow “Unrestricted” access to running scripts on your computer.

  1. To set the execution policy to unrestricted, enter the following command (PowerShell must be run as an Administrator):
    1. Set-ExecutionPolicy Unrestricted
  2. You will receive a warning indicating that you are trying to change the execution policy and the risk that is associated with the change.  Enter ‘Y’ and press enter.
  3. Your execution policy is now changed.  You can verify this by executing the command “Get-ExecutionPolicy”.  You can now try to run your script again and you should not receive any errors.

Powershell Backup Script

Needed a backup script which i can run from the powershell or with use of the Windows schedular.

I’ve created some checks on folders and succesrate. The scripts also can email you when backup is succesful/failed.

If you have any suggestions please let me know!

##################################### Backup Script ###############################################
## Name: Backup_Script.ps1                               
## Creator: Erwin Bierens                     
## CreationDate: 10-02-2017                               
## LastModified: 10-02-2017                                
## Version: 1.0
## Website: https://erwinbierens.com/powershell-backup-script
## 
## Description: Copies the Backupdir to the Destination folder
## Deviations will be written to logfile
## Only Change Variables in Variables Section  
##
## Thx to the followingg scripts i created this one, source information
## http://www.krist-online.nl/index.php/scripts/14-robocopy-powershell-wekelijks-backup-schema
## https://blog.sat.iit.edu/2011/11/backup-script-using-robocopy-and-powershell/
## 
##
## Example: powershell -command "& 'c:\temp\Backup_Script.ps1' "
## 
####################################################################################################

####################
##Variables Section
####################

## Source directory
$source="C:\Temp\Backup\A"
 
## Destination Directory
## you can also use the network path "\\server\share"
$destination="C:\Temp\Backup\B\"
 
## Destination Log File
$logfile="c:\temp\backup\logbestand.txt"
 
## BackupRapport is being used to check if backup is succesfull
$backupReport="c:\temp\logfile_backup.txt"
 
## Make changes for email reports
$EmailFrom="backupscript@bierens.it"
$EmailTo="erwin@bierens.it"
$SMTPServer="192.168.178.32"

## Email Subjects and Body info
$successEmailSubject="Backup Succesfull"
$successEmailBody="The Backup is succesfull"
$failEmailSubject="Backup Failed"
$failEmailBody="The backup is failed, please check the attached log file"

## =========================================================
## =========== DONT CHANGE PARAMETERS BELOW ================
## =========================================================

## Check if destination exists, if no create folder
if (!(Test-Path -path $destination))
{
New-Item $destination -type directory
}
 
## robocopy command
## /XO Excludes older files.
## /COPY:DATSO Specifies the file properties to be copied. D Data, A Attributes, T Time stamps, S NTFS access control list (ACL), O Owner information
## /E /Purge Mirrors a directory tree
## /R:10 Specifies the number of retries on failed copies. The default value of N is 1,000,000 (one million retries)
## /log: Writes the status output to the log file (overwrites the existing log file). use /log+: for appending 
## /NP Specifies that the progress of the copying operation (the number of files or directories copied so far) will not be displayed.
robocopy $source $destination *.* /XO /COPY:DATSO /E /purge /R:10 /log:$logfile /NP
 
## Check variables to compare source and destination
$check_source = Dir $source
$check_destination = Dir $destination
 
## Compare source and destination, write deviations to backup report 
Compare-Object $check_source $check_destination -PassThru > $backupReport
 
## Create and send email after succesfull backup
function sendSuccessEmail{
send-mailmessage -from $EmailFrom -to $EmailTo -subject $successEmailSubject -body $successEmailBody -Attachments "$logfile" -priority High -dno onSuccess, onFailure -smtpServer $SMTPServer
}
 
## Create and send email after unsuccesfull backup
function sendFailEmail{
send-mailmessage -from $EmailFrom -to $EmailTo -subject $failEmailSubject -body $failEmailBody -Attachments "$logfile" -priority High -dno onSuccess, onFailure -smtpServer $SMTPServer
}
 
## If backupreport is empty, backup is succesfull send email
$File = Get-ChildItem $backupReport
if ($File.Length -eq 0) {sendSuccessEmail}
 
## If backup report is not empty, something is going wrong. Email will be send
$File = Get-ChildItem $backupReport
if ($File.Length -gt 0) {sendFailEmail}
#EOF

How to configure IIS ARR for Skype for Business

IIS ARR

Open your IIS Manager, right click “Server Farms” and “Create Server Farm”.

ISS ARR 1

Specify a Server Farm name, i used Skypeweb

ISS ARR 2

Click “Next”.

ISS ARR 3
Server address must be your Front-end pool, click show advanced setting and set the following ports
httpPort 8080
httpsPort 4443
And click “Add” and “Finish”
These ports are configured on your Front-end server for external traffic.
Click Yes at the next screen. (this will save you some time later..)

ISS ARR4

Now select your Skypeweb from the server farms.

We need to configure this farm with some specific settings.
Double click “Caching”

Turn off Disk cache, and click “Apply” on the right side of the screen.

Go back to your server farm and select “Proxy”

Set “Time-out(seconds)” to 600 and click “Apply”
This will prevent mobile users from disconnecting.

Now go back to your server farm and select Routing Rules

Disable SSL offloading by unchecking the Enable SSL offloading box and click Apply.
Now click on the right side “URL Rewrite”

You will see 2 rules.

Delete the NON SSL one.

Double click the SSL one

Now change “Using” to “Regular Expressions”
And change the “Pattern” to “(.*)

Under conditions make sure HTTPS is “On”

Now Click “Add”

Create the condition Inport {HTTP_HOST}
Select matches the Pattern
Pattern: skypeweb.skypedev.nl|meet.skypedev.nl|dialin.skypedev.nl

This are all the subdomain you will need for Skype Web Services.
Make sure below action is everything configured right (should be done automatically)

Don’t forget to “Apply”