Get-CsTopologyFixed Loves Your Simple URLs!

Yes, I know there is no such thing as a tbxml tag. That doesn't mean that there shouldn't be.Remember how I was complaining last week about how Get-CsTopology -AsXml drops the whole SimpleUrlConfiguration node, which makes Topology Builder sad?

Fixed it!

You, too, can enjoy what I do in the evenings on my ridiculous lab machine and get your own readable (though read-only) .tbxml files right from PowerShell:

Get-CsTopologyFixed (hosted on TechNet Gallery)

It works for View-Only Administrators (CsViewOnlyAdministrator), as well as full CsAdministrator (or equivalent), so your telephone gal or Exchange guy can grab a copy whenever they need to check something or a consultant wants a copy so that they understand what’s going on with Lync in your environment. I have not tested it with an account that only has, for example, CsUserAdministrator or CsServerAdministrator.

For people who are not (yet) hard-core PowerShellers: this script is a function, not a standalone script. Running it “dot-sourced” will add the Get-CsTopologyFixed cmdlet to your current PowerShell session, or you can add the function to your Lync Server connection script. You need to either be on a computer with Lync Management Shell (part of the Lync management tools on the Lync Server installer image) or implicitly remoted to one that has it in order to access the native Lync Server cmdlets.

I have no idea if it works (or is even necessary) on Lync Server 2010. If Microsoft will let me have a preview copy, I’d be willing to find out if it works (or is even necessary) on Skype for Business ;)

If you find something wrong with my script, or come up with an improvement, let me know!

PowerShell Heart Logo

PowerShell logo in a heart

I love PowerShell, and so should you!

The #PowerShellChicks group was initiated by the foremost lady of PowerShell, June Blender:

I think we need a logo! A PowerShell symbol hatching from an egg would have been awesome, but my graphic design skills are pretty much limited to PowerPoint. To celebrate having my session on Lync admin basics selected for the 2015 PowerShell Summit Europe, here’s a little something I knocked together. If someone wants to do the curved gradient and motion lines that are on the real logo (and perhaps improve the overall proportions), knock yourself out and let me know about it!

 

 

Get-CsTopology Hates Your Simple URL Configuration

Yes, I know there is no such thing as a tbxml tag. That doesn't mean that there shouldn't be.

Yes, I know there is no such thing as a tbxml tag. That doesn’t mean that there shouldn’t be.

Several of my Unified Communications team colleagues need to be able to get current copies of the topology on demand to hand to consultants or to just have some idea of what’s going on in our Lync world, but don’t have any business editing it and would rather not install the Lync Management Tools on their PCs. My team lead and I both thought that having a little script keep an up to date copy on our team’s SharePoint site was just the thing, and I pointed out that Get-CsTopology -AsXml should work quite nicely. *Should* being the important word in that sentence.

Get-CsTopology, like many things, is about 95% awesome. The 5% of not awesome is that it does not pull the Simple URLs. It fills in its best (and wrong) guess for the Phone access URLs, but shows that the Meeting URLs and the Administrative Access URL are missing, the first of which is a fatal flaw in a Lync topology.

Continue reading

mandie.net – New Domain Name, Same Geeky Posts

Slug Bug GREEN!

Sometimes, a move can be difficult. This one wasn’t.

Since I’ve changed over to my company’s Communication Systems team, and am now focusing on Lync instead of ActiveRoles Server, this blog was due for a new identity – “Ars de ARS” at “insideactiveroles.com” is a strange place to go when you’re looking for Lync information. Regular readers may have noticed the change from “Ars de ARS” to “Mandie’s Memos”; now I’ve gone in for a new domain name. I got “mandie.net” back when I was in college and hadn’t been using it for much other than a vanity email address, so now it points to my blog, where it is being used for vanity publishing.

ActiveRoles Server is still an important part of my company’s user and groups management, and our Lync automation ties into to, so I will continue to write about it occasionally. If you want to read something that still is mostly about ActiveRoles Server, check out a fellow Dell/Quest ARS forum regular’s blog: http://clan8blog.wordpress.com. An “Active Directory engineer at a large hedge fund in the city (London)”, he mostly writes about automating AD administration with PowerShell and ActiveRoles Server. Lately, his posts have been getting deeper into PowerShell.

As for Mandie’s Memos, Lync is the current focus, with a heaping side of PowerShell. I will keep all the old stuff about Exchange, Active Directory and ActiveRoles Server around, because people hit those pages via Google all the time – it must be helping someone, and that’s what this is all about (that and me writing things down for when I’ll later forget them). I’ll also keep the old domain name for awhile, at least until it looks like Google and Bing have figured out that I’ve moved.

Windows Fabric Gone Wild!

Amanda Debler:

Does anyone know WHY Windows Fabric would generate logs like mad? Our Lync Front End servers have about 10 of these per DAY right now. I’ve not turned off the logging or changed it to circular as I want to have the logs on hand to send Microsoft if needed – instead, I’m moving them over to an empty volume with this script running as a scheduled task each night.

if (-not (Test-Path "E:\Windows Fabric Traces")) {
	New-Item -ItemType Directory -Name "E:\Windows Fabric Traces"
}
$fabrictraces = Get-ChildItem "c:\ProgramData\Windows Fabric\Fabric\log\Traces" | where { $_.name -like "fabric_traces_*"} | sort -Descending LastWriteTime
#skip the first two - one of them is the trace file in use, the other is the most recently full one
for ($i=2; $i -lt $($fabrictraces.count); $i++) { $fabrictraces[$i] | Move-Item -Destination "E:\Windows Fabric Traces\" }

$leasetraces = Get-ChildItem "c:\ProgramData\Windows Fabric\Fabric\log\Traces" | where { $_.name -like "lease_traces_*"} | sort -Descending LastWriteTime
for ($i=2; $i -lt $($leasetraces.count); $i++) { $leasetraces[$i] | Move-Item -Destination "E:\Windows Fabric Traces\" }

However, this is only treating the symptoms, not the cause, so the search continues…

Originally posted on Thoughts From a Bot Named Flinch:

CrashHow’s that for the title of a blog article! Apparently I’ve been reading too much Huffington Post or something. For the record, I never read that website. I have standards, as low as they may be.

So back to the title and the point of this post. Are there actually hidden log files that could cause some unintended problems with your Lync 2013 environment? Absolutely. I am assuming you are already aware that IIS logs could fill up your local hard drive. It is also a good idea to keep an eye on the trace files created by OCS Logger and Snooper.

However, there are some hidden logfiles that are created by Windows Fabric that could very much fill up your hard drive and it would be a decent challenge to find them. If you are unaware, Lync 2013 sits on top of a technology called Windows Fabric. For a…

View original 381 more words

Lync Phone Edition PIN Authentication and Cisco ACE Load Balancer – It’s About the Certificate Chain Group

This is truly the article I would have LOVED to have found when we first got the DHCP settings in for our Lync Phone Edition devices and other Lync phones, and were going crazy trying to figure out why the LPE devices were fine right after being tethered to a PC, but were not if someone logged in and out of them while disconnected and after rebooting. And that I sort of promised to write when I was raving about a certain switch.

The symptoms: Test-CsPhoneBootstrap works flawlessly. Other Lync phones can log on with extension and PIN. Your Lync Phone Edition device (in our case, the Polycom CX3000) will cheerfully log on with the extension and PIN if you’ve logged it in tethered to a PC via the PC’s Lync client first, but gives you “An account matching this phone number cannot be found. Please contact your support team” after a very quick flash of another error, “Account used is not authorized, please contact your support team” for the very same extension and PIN if you’ve logged out of the device and powered it down. I did what another admin did, taking a video on my phone, then replaying it really slowly – the time from entering the PIN to getting the final failure message was less than 4 seconds, and that was necessary to see the first failure message that briefly flashed on the screen.

Continue reading

Comparing Lync Policies – or How to Flip Just About Any Array of Hashtables in PowerShell

If you are reading this blog and can read German, I don’t need to tell you about msxfaq.de, former Exchange and now Lync MVP Frank Carius’ online (but not very alphabetical) encyclopedia of Exchange and Lync – it probably gets more page views in a day than this blog ever has. Even if you cannot read German, you have still probably run into it when searching for Exchange or Lync topics and then seriously wished you could read German – machine translation only goes so far.

Anyhow, one of the most helpful things he’s put out there and that I use all the time is a Swap-Table script. I wasn’t able to turn it up with “flip table in PowerShell” or “pivot PowerShell table” or any of several variations, so this is a little attempt to make that wonderful file findable for the English-speaking world. Scroll to the bottom and look for the “Code” section. You can make it a function in your PowerShell profile by putting the contents of that text file inside the curly braces {} of the following (code not posted here because plagiarism is evil):

function Swap-Table {
# contents of swap-table.1.0.ps1 go here

}

It has been particularly useful for comparing ClientPolicies and ConferencingPolicies in Lync, as ClientPolicy has over 70 attributes! Once you have the function in your session and you’re connected to Lync Management Shell, it works like this:

Get-CsClientPolicy | Swap-Table | Out-GridView