#powershell #activedirectory *-AD* Cmdlets

Besides the common -Identity parameter, most cmdlets from the Active Directory Module for PowerShell support the -Filter parameter.

If you encounter the following error even though the syntax is correct,

PS C:\> Get-ADGroup -Identity *
Get-ADGroup : Cannot find an object with identity: * under: ‘DC=swissitpro,DC=com’
At line;1 char:1
+ Get-ADGroup -Identity *
+ CategoryInfo : ObjectNotFound: (*:ADGroup) [Get-ADGroup], ADIdentityNotFoundException

simply replace -Identity with -Filter and try again. Obviously this makes sense (and is the only way) to get a list of all defined active directory security and distribution groups in the organisation.

 

 

#powershell TIP: Local vs Remote Background Jobs

It is common to use Start-Job to run a  background job against a remote machine via the -ScriptBlock parameter:

Start-Job -ScriptBlock { param($computer) Get-EventLog -LogName system -ComputerName $computer } -ArgumentList $computer

However, this always runs as a local BackgroundJob, consumes local resources and can be very slow.

Instead, consider using the -AsJob parameter of Invoke-Command to run the task as a RemoteJob on a remote host via -ComputerName i.e.

Invoke-Command -AsJob -ComputerName $computer -ScriptBlock { Get-EventLog -LogName system }

#powershell #skype4b Trunk Configuration

With New-CsTrunkConfiguration, a trunk can be created at the Global (default), site or pool (service) scope for a PSTN service from a PSTN gateway, IP-Public Branch Exchange (PBX) to a Session Border Controller (SBC) at the service provider.

Correspondingly, it is a simpe matter to run Get-CsTrunkConfiguration to get back a list of available trunk configuration information. However, executing this cmdlet with just the name of the trunk will fail:

PS > Get-CsTrunkConfiguration -Identity trunkName
Get-CsTrunkConfiguration: Cannot get item at this location. Get item at scopes: “Global, Site, Service”
Parameter name: Identity
At line:1 char:1
+ Get-CsTrunkConfiguration -Identity trunkName
+ ~~~
+ CategoryInfo : InvalidArgument: (Tag: trunkName:XdsIdentity)
[Get-CsTrunkConfiguration, ArgumentException
+ FullyQualifiedErrorId :BadLocation, Microsoft. Rtc.Management.Internal.GetCsTrunkConfigurationCmdlet

The solution is to always prefix the name with the trunk’s scope i. e.

Get-CsTrunkConfiguration site:trunkName

#powershell #skype4b PSTN Usage, Voice Policy & Route

Think of PSTN usage records as something which specify a class of call permitted in an organisation such as internal, local or international. Such records are used to associate with voice policies* and routes** to dictate usage of specific (gateway) routes by authorised users. A call can only be successful when a dialed number matches a route in a PSTN Usage.

A list of Public Switched Telephone Network, PSTN Usage records is accessible using the appropriately named Get-CsPstnUsage cmdlet. Because Global is the only identity applicable (to PSTN usages), you can basically retrieve available records via (Get-CsPstnUsage).Usage.

It is not possible to inspect the relationship between PSTN Usage, voice policy or route with a statement like Get-CsPstnUsage CH_Zurich. To resolve this, use Get-CsVoiceRoute or Get-CsVoicePolicy.

* assigned at the site or user scope where each voice policy must be linked to at least one PSTN usage record
** routes are assigned to telephone numbers

REFERENCE
Configure voice policies, PSTN usage records, and voice routes in Skype for Business
PSTN usage records in Lync Server 2013

#powershell #skype4b #msexchange List Mismatched Mail(box) Enabled User Email and SIP Addresses

#requires -version 3.0
###############################################################################
# Copyright (c) 201x-2018 leedesmond.com
# All Rights Reserved. Use at your own risk and responsibility.
# Version 1.00
#
# Get a list of mismatched mail(box) enabled user email and SIP addresses
# without SkypeforBusiness or Exchange Server PowerShell modules
#
###############################################################################
# Continue reading

#powershell SNMP Services Administration (Part 6)

How to configure SNMP settings on Windows machines through PowerShell is the topic we have been looking at in this blog series so far. Obviously in the real world, it is important to be able to read SNMP settings either before or after changes were made. To that end, take a look at …
Continue reading

#powershell SNMP Services Administration (Part 5)

Putting into practice what we have discussed so far, this script illustrates how an administrator can use PowerShell remoting to configure/set SNMP settings on a bunch of Windows machines from a distance.

#requires -version 3.0
###############################################################################
# Copyright (c) 201x-2018 leedesmond.com
# All Rights Reserved. Use at your own risk and responsibility.
# Version 1.00
#
# Configure SNMP settings on multiple Windows machines remotely.
#
# REQUIREMENTS: PowerShell Remoting enabled on target hosts
#
###############################################################################
# Continue reading

#powershell SNMP Services Administration (Part 4)

This script gathers the pieces discussed previously into a reusable PowerShell function Set-SNMP for the purpose of configuring SNMP settings on Windows machines.

#requires -version 3.0
###############################################################################
# Copyright (c) 201x-2018 leedesmond.com
# All Rights Reserved. Use at your own risk and responsibility.
# Version 1.00
#
# Function with self explanatory parameters to configure SNMP settings on
# Windows machines.
#
###############################################################################
# Continue reading

Article: Working Faster & Smarter with PowerShell

Windows PowerShellIt took a while but now a concise black-and-white version of my break-out session “Working Faster & Smarter with PowerShell” at last year’s PowerShell Conference 2017 in Singapore is online live exclusively for your reading pleasure!

Thanks to my good colleague Mitch Tulloch, a widely recognized expert on Windows Server and cloud technologies, for putting this together.

#powershell

#powershell SNMP Services Administration (Part 3)

Working with the “Security” tab in the SNMP service is similar to that for the “Traps” tab discussed before. Let us start off with the simple task to toggle the “Send authentication trap” option. This matches the registry item property EnableAuthenticationTraps located in:
Continue reading