#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
#
###############################################################################
#
#powershell #skype4b Get List of Not Enabled Skype for Business Users (Without #skype4b Cmdlets)
#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 not enabled Skype for Business Users (without SkypeForBusiness
# Module Cmdlets)
#
###############################################################################
#