Lync/Skype for Business Message Limit

Maximum frustration alert!

Lync (Skype for Business) has a maximum message size limit for instant messages:

This message is too long.

The limit cannot be configured and has a bizarre maximum of 800 characters for the first message and 8000 characters for subsequent messages to the same recipient. What? Why? How? Confusion and frustration ensues.

I actually enjoy using Lync but this one unresolvable minor irritation is spoiling the entire experience every time I want to share text with my colleagues.

World’s Worst POODLE Scanner for HTTPS

Behold, the world’s worst POODLE scanner for HTTPS services:

#!/bin/bash
 
subnets="192.168.0.0/16 10.0.0.0/8"
 
for subnet in $subnets; do
echo -e "########## SCANNING $subnet ##########\n"
https_servers=`nmap -sS -P0 -n -p 443 -oG - $subnet | grep open | awk '{print $2}'`
echo "TCP/443 found open on:"
echo -e "$https_servers\n"
echo "Scanning for SSLv3..."
for https_srv in $https_servers; do
echo -n | openssl s_client -connect $https_srv:443 -ssl3 &> /dev/null
if [ $? -eq 0 ]; then
echo "SSLv3 ENABLED on $https_srv:443"
fi
done
echo -e "\nCOMPLETED SCAN FOR $subnet\n"
done

All it really does is tell you if SSL 3.0 is enabled on port TCP/443 when given a list of IP addresses and/or subnets to scan.

The above code depends on several things:

  1. bash or bash-like shell
  2. nmap, running with root privileges
  3. openssl command line utility
  4. awk and grep

Define the variable $subnet with a space-delimited nmap-compatible list of IP and/or subnet addresses.

The code can be easily modified to check for SSLv3 presence on other services/ports but I didn’t build that into the functionality because this is, after all, the world’s worst POODLE scanner.

Quick? Check. Dirty? Check. Yep, it’s a hack.

PowerShell 10961B Training – Top 5 Take Aways

I recently attended the Microsoft 10961B PowerShell training course. In the spirit of sharing, here are my top five take aways for those new to PowerShell:

Take Away 1: Learning and using PowerShell is all about command and knowledge discovery.

Three cmdlets that help us learn about PowerShell concepts, lookup commands and inspect objects:

  1. Get-Help – Read help information for topics and commands
  2. Get-Command – Find commands based on partial names / concepts
  3. Get-Member – Discover object properties and methods

There are approximately 24 “core” cmdlets that a seasoned PowerShell user will want to memorize. The rest can be discovered on-demand. No need for memorizing thousands of commands.

Take Away 2: Most day-to-day tasks are generally performed on the command line, not by running complex scripts.

Scripting is powerful and useful but it probably makes sense to focus on using PowerShell as a shell first and transitioning to scripting once we want to do more advanced things.

The Microsoft terminal for hosting cmd.exe and powershell.exe is… not so great. Alternative terminal programs to host the PowerShell engine are available. I prefer ConEmu. Install it locally or on a terminal server “jumpbox” and use PS Remoting!

Take Away 3: Everything is an object.

Output of cmdlets are objects that can be fed into other cmdlets to form powerful pipelines of processing. Unlike traditional UNIX/Linux shells, PowerShell commands return objects, not text. While text parsing can be used in PowerShell, most use cases do not require it as there is often a simpler, more direct way of accomplishing the same thing using object properties or methods.

Take Away 4: Remoting is powerful!

Enabled by default on Server 2012 and newer. Uses a single port. Secure. Allows for one-to-one or one-to-many management of remote systems. PS Remoting is a great alternative to logging into remote servers with RDP to perform manual GUI tasks.

It’s almost like SSH in UNIX/Linux, but flavoured for Microsoft Windows.

Take Away 5: PowerShell is the current and future best practice for managing Microsoft Windows.

With the release of Windows 8 / Server 2012 (PS 3.0 and newer), Microsoft has provided over 1500 cmdlets to manage their flagship operating systems. It is clear that PowerShell is how Microsoft intends to move management of Windows forward from here on out.

Summary

Start learning PowerShell today to stay current with modern practices for management and administration of Microsoft products!