Get-ComputerManagement.psm1
function Get-ComputerManagement { <# .SYNOPSIS Open Computer Management Console on local or remote computer. .DESCRIPTION Open Computer Management Console on local or remote computer. .PARAMETER ComputerName Name of server to open Computer Management Console on remote computer. .PARAMETER ADSearchBase Active Directory SearchBase of server to open Computer Management Console on remote computer. .EXAMPLE Get-ComputerManagement Open Computer Management Console on local computer. .EXAMPLE Get-ComputerManagement -ComputerName pc1 Open Computer Management Console on remote computer. .EXAMPLE Get-ComputerManagement -ComputerName pc1,pc2 Open Computer Management Console on multiple remote computer. .EXAMPLE Get-ComputerManagement -ADSearchBase "OU=Computers,DC=comodo,DC=com" Open Computer Management Console on Active Directory SearchBase computer. #> [CmdletBinding(DefaultParameterSetName = "ParS1")] param ( [parameter(Position = 0, ParameterSetName = "ParS1", Mandatory = $false, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true)] [string[]] $ComputerName = "localhost", [parameter(ParameterSetName = "ParS2", Mandatory = $false, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true)] [string] $ADSearchBase ) # PsVersion if ((($PsVersionTable.PSEdition) -match "desktop") -or (($PsVersionTable.OS) -match "windows")) { # ADSearchBase if ($ADSearchBase) { try { $ADSearch = New-Object System.DirectoryServices.DirectorySearcher $ADSearch.SearchRoot = New-Object System.DirectoryServices.DirectoryEntry("LDAP://$ADSearchBase") $ADSearch.Filter = ("(objectCategory=computer)") $ADSearchFind = $ADSearch.FindAll() } catch { Write-Warning "ADSearchBase not found" } $ComputerName = foreach ($ADComputer in $ADSearchFind) { $ADComputer.Properties.name } } # Loop ComputerName $ComputerName = $ComputerName.ToUpper() foreach ($Computer in $ComputerName) { if ($ComputerName -like "localhost") { $TestLocal = $true } else { $TestWinRM = Test-NetConnection -CommonTCPPort WINRM -ComputerName $Computer -ErrorAction SilentlyContinue -ErrorVariable EV01 } if ($TestWinRM.TcpTestSucceeded -or $TestLocal) { Start-Process "compmgmt.msc" -ArgumentList "/Computer=$Computer" } } } else { Write-Warning "PSVersion OS not Windows" } } |