VMware Cloud Community
paintcheck200
Enthusiast
Enthusiast

Slow Tab Completion with PowerCLI 6.5 R1

So I've been just kind of putting up with this for a while , but I've noticed really slow tab completion.  When looking into what modules were causing it by process of elimination, it appears to be caused by the PowerCLI 6.5.0-4624819.  If I remove the following modules simply by moving them out of the path "C:\Program Files (x86)\VMware\Infrastructure\PowerCLI\Modules", I no longer have tab completion delays (2-3 seconds).  Was just curious if anyone else is seeing this.  I haven't tried to nail it down to specifics within these.

The modules:

VMware.DeployAutomation          6.0.0.0   

VMware.ImageBuilder              6.0.0.0   

VMware.VimAutomation.Cis.Core    6.5.0.4624453

VMware.VimAutomation.Common      6.5.0.4624451

VMware.VimAutomation.Core        6.5.0.2604913

VMware.VimAutomation.HA          6.0.0.0   

VMware.VimAutomation.License     6.5.0.4624822

VMware.VimAutomation.Sdk         6.5.0.4624452

VMware.VimAutomation.Storage     6.5.0.4624820

VMware.VimAutomation.Vds         6.5.0.4624695

VMware.VumAutomation             6.0.0.0

   

0 Kudos
6 Replies
LucD
Leadership
Leadership

No, can't say I experience the same.
On initial startup of the ISE or VSC, it takes a while for intellisense to become active.

But from there on, it works fast.

Which editor do you use?
Do you have a lot of folders in your $env:PSModulePath?


Blog: lucd.info  Twitter: @LucD22  Co-author PowerCLI Reference

0 Kudos
paintcheck200
Enthusiast
Enthusiast

Typically, I use/edit in ISE.  However, this behavior happens no matter what editor or console I open.   Even using ConEmu Smiley Happy .   Anyhow, here is a list of my $env paths - doesn't seem like very many to me.

C:\Users\allyourbase\Documents\WindowsPowerShell\Modules;C:\Program Files\WindowsPowerShell\Modules;C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules;C:\Program Files\Microsoft\AGPM\Client\;C:\Program Files (x86)\VMware\Infrastructure\PowerCLI\Modules

I haven't been on the community forums  in a while, but its good to see a RockStar name like LucD around!


All my dirt

get-module -listavailable

    Directory: C:\Program Files\WindowsPowerShell\Modules

ModuleType Version    Name                                ExportedCommands

---------- -------    ----                                ----------------

Binary     2.0.0.30   AzureAD                             {Add-AzureADApplicationOwner, Get-AzureADApplication, Get-Azure... Script     0.8.2.1    ConnectO365                         {Get-O365ModuleFile, Import-DataFile, RetrieveCredentials}

Binary     2.0        CredentialManager                   {Get-StoredCredential, New-StoredCredential, Remove-StoredCrede... Manifest   1.0        MSOnline                            {Get-MsolDevice, Remove-MsolDevice, Enable-MsolDevice, Disable-... Script     1.0.0.1    PowerShellGet                       {Install-Module, Find-Module, Save-Module, Update-Module...}

Script     1.1        PSReadline                          {Get-PSReadlineKeyHandler, Set-PSReadlineKeyHandler, Remove-PSR...

    Directory: C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules

ModuleType Version    Name                                ExportedCommands

---------- -------    ----                                ----------------

Manifest   1.0.0.0    ActiveDirectory                     {Add-ADCentralAccessPolicyMember, Add-ADComputerServiceAccount,... Binary     5.0.0.0    AdmPwd.PS                           {Update-AdmPwdADSchema, Get-AdmPwdPassword, Reset-AdmPwdPasswor... Manifest   1.0.0.0    AppBackgroundTask                   {Disable-AppBackgroundTaskDiagnosticLog, Enable-AppBackgroundTa... Manifest   2.0.0.0    AppLocker                           {Get-AppLockerFileInformation, Get-AppLockerPolicy, New-AppLock... Manifest   2.0.0.0    Appx                                {Add-AppxPackage, Get-AppxPackage, Get-AppxPackageManifest, Rem... Script     1.0.0.0    AssignedAccess                      {Clear-AssignedAccess, Get-AssignedAccess, Set-AssignedAccess}

Manifest   1.0        BestPractices                       {Get-BpaModel, Get-BpaResult, Invoke-BpaModel, Set-BpaResult}

Manifest   1.0.0.0    BitLocker                           {Unlock-BitLocker, Suspend-BitLocker, Resume-BitLocker, Remove-... Manifest   2.0.0.0    BitsTransfer                        {Add-BitsFile, Complete-BitsTransfer, Get-BitsTransfer, Remove-... Manifest   1.0.0.0    BranchCache                         {Add-BCDataCacheExtension, Clear-BCCache, Disable-BC, Disable-B... Manifest   1.0.0.0    CimCmdlets                          {Get-CimAssociatedInstance, Get-CimClass, Get-CimInstance, Get-... Manifest   1.0.0.0    CIPolicy                            ConvertFrom-CIPolicy

Binary     2.0.0.0    ClusterAwareUpdating                {Get-CauPlugin, Register-CauPlugin, Unregister-CauPlugin, Invok... Manifest   1.0        ConfigCI                            {Get-SystemDriver, New-CIPolicyRule, New-CIPolicy, Get-CIPolicy... Manifest   1.0        Defender                            {Get-MpPreference, Set-MpPreference, Add-MpPreference, Remove-M... Manifest   1.0        DFSN                                {Get-DfsnRoot, Remove-DfsnRoot, Set-DfsnRoot, New-DfsnRoot...}

Binary     2.0.0.0    DFSR                                {New-DfsReplicationGroup, Get-DfsReplicationGroup, Set-DfsRepli... Manifest   2.0.0.0    DhcpServer                          {Add-DhcpServerInDC, Add-DhcpServerv4Class, Add-DhcpServerv4Exc... Manifest   1.0.0.0    DirectAccessClientComponents        {Disable-DAManualEntryPointSelection, Enable-DAManualEntryPoint... Script     3.0        Dism                                {Add-AppxProvisionedPackage, Add-WindowsDriver, Add-WindowsCapa... Manifest   1.0.0.0    DnsClient                           {Resolve-DnsName, Clear-DnsClientCache, Get-DnsClient, Get-DnsC... Manifest   2.0.0.0    DnsServer                           {Add-DnsServerConditionalForwarderZone, Add-DnsServerDirectoryP... Manifest   1.0.0.0    EventTracingManagement              {New-EtwTraceSession, Get-EtwTraceSession, Set-EtwTraceSession,... Manifest   2.0.0.0    FailoverClusters                    {Add-ClusterCheckpoint, Add-ClusterDisk, Add-ClusterFileServerR... Manifest   1.0.0.0    GroupPolicy                         {Backup-GPO, Block-GPInheritance, Copy-GPO, Get-GPInheritance...}

Manifest   1.0.0.0    HgsClient                           {Get-HgsAttestationBaselinePolicy, Get-HgsClientConfiguration, ... Binary     2.0.0.0    Hyper-V                             {Add-VMAssignableDevice, Add-VMDvdDrive, Add-VMFibreChannelHba,... Binary     1.1        Hyper-V                             {Add-VMDvdDrive, Add-VMFibreChannelHba, Add-VMHardDiskDrive, Ad... Manifest   2.0.0.0    International                       {Get-WinDefaultInputMethodOverride, Set-WinDefaultInputMethodOv... Manifest   2.0.0.0    IpamServer                          {Get-IpamDhcpConfigurationEvent, Remove-IpamDhcpConfigurationEv... Manifest   1.0.0.0    iSCSI                               {Get-IscsiTargetPortal, New-IscsiTargetPortal, Remove-IscsiTarg... Manifest   2.0.0.0    IscsiTarget                         {Add-ClusteriSCSITargetServerRole, Add-IscsiVirtualDiskTargetMa... Script     1.0.0.0    ISE                                 {New-IseSnippet, Import-IseSnippet, Get-IseSnippet}

Manifest   1.0.0.0    Kds                                 {Add-KdsRootKey, Get-KdsRootKey, Test-KdsRootKey, Set-KdsConfig... Manifest   1.0.0.0    Microsoft.PowerShell.Archive        {Compress-Archive, Expand-Archive}

Manifest   3.0.0.0    Microsoft.PowerShell.Diagnostics    {Get-WinEvent, Get-Counter, Import-Counter, Export-Counter...}

Manifest   3.0.0.0    Microsoft.PowerShell.Host           {Start-Transcript, Stop-Transcript}

Manifest   3.1.0.0    Microsoft.PowerShell.Management     {Add-Content, Clear-Content, Clear-ItemProperty, Join-Path...}

Script     1.0        Microsoft.PowerShell.ODataUtils     Export-ODataEndpointProxy

Manifest   3.0.0.0    Microsoft.PowerShell.Security       {Get-Acl, Set-Acl, Get-PfxCertificate, Get-Credential...}

Manifest   3.1.0.0    Microsoft.PowerShell.Utility        {Format-List, Format-Custom, Format-Table, Format-Wide...}

Manifest   3.0.0.0    Microsoft.WSMan.Management          {Disable-WSManCredSSP, Enable-WSManCredSSP, Get-WSManCredSSP, S... Manifest   1.0        MMAgent                             {Disable-MMAgent, Enable-MMAgent, Set-MMAgent, Get-MMAgent...}

Manifest   1.0.0.0    MsDtc                               {New-DtcDiagnosticTransaction, Complete-DtcDiagnosticTransactio... Binary     1.0.0.0    MSMQ                                {Clear-MsmqOutgoingQueue, Clear-MsmqQueue, Enable-MsmqCertifica... Manifest   2.0.0.0    NetAdapter                          {Disable-NetAdapter, Disable-NetAdapterBinding, Disable-NetAdap... Manifest   1.0.0.0    NetConnection                       {Get-NetConnectionProfile, Set-NetConnectionProfile}

Manifest   1.0.0.0    NetEventPacketCapture               {New-NetEventSession, Remove-NetEventSession, Get-NetEventSessi... Manifest   2.0.0.0    NetLbfo                             {Add-NetLbfoTeamMember, Add-NetLbfoTeamNic, Get-NetLbfoTeam, Ge... Manifest   1.0.0.0    NetNat                              {Get-NetNat, Get-NetNatExternalAddress, Get-NetNatStaticMapping... Manifest   2.0.0.0    NetQos                              {Get-NetQosPolicy, Set-NetQosPolicy, Remove-NetQosPolicy, New-N... Manifest   2.0.0.0    NetSecurity                         {Get-DAPolicyChange, New-NetIPsecAuthProposal, New-NetIPsecMain... Manifest   1.0.0.0    NetSwitchTeam                       {New-NetSwitchTeam, Remove-NetSwitchTeam, Get-NetSwitchTeam, Re... Manifest   1.0.0.0    NetTCPIP                            {Get-NetIPAddress, Get-NetIPInterface, Get-NetIPv4Protocol, Get... Manifest   1.0.0.0    NetWNV                              {Get-NetVirtualizationProviderAddress, Get-NetVirtualizationGlo... Manifest   1.0.0.0    NetworkConnectivityStatus           {Get-DAConnectionStatus, Get-NCSIPolicyConfiguration, Reset-NCS... Manifest   1.0.0.0    NetworkController                   {Add-NetworkControllerNode, Disable-NetworkControllerNode, Enab... Manifest   1.0.0.0    NetworkControllerDiagnostics        {Debug-NetworkController, Debug-NetworkControllerConfigurationS... Manifest   2.0.0.0    NetworkLoadBalancingClusters        {Add-NlbClusterNode, Add-NlbClusterNodeDip, Add-NlbClusterPortR... Manifest   1.0.0.0    NetworkSwitchManager                {Disable-NetworkSwitchEthernetPort, Enable-NetworkSwitchEtherne... Manifest   1.0.0.0    NetworkTransition                   {Add-NetIPHttpsCertBinding, Disable-NetDnsTransitionConfigurati... Manifest   1.0        NFS                                 {Get-NfsMappedIdentity, Get-NfsNetgroup, Install-NfsMappingStor... Manifest   1.0.0.0    PcsvDevice                          {Get-PcsvDevice, Start-PcsvDevice, Stop-PcsvDevice, Restart-Pcs... Manifest   1.0.0.0    PKI                                 {Add-CertificateEnrollmentPolicyServer, Export-Certificate, Exp... Manifest   1.0.0.0    PnpDevice                           {Get-PnpDevice, Get-PnpDeviceProperty, Enable-PnpDevice, Disabl... Manifest   1.1        PrintManagement                     {Add-Printer, Add-PrinterDriver, Add-PrinterPort, Get-PrintConf... Manifest   1.1        PSDesiredStateConfiguration         {Set-DscLocalConfigurationManager, Start-DscConfiguration, Test... Script     1.0.0.0    PSDiagnostics                       {Disable-PSTrace, Disable-PSWSManCombinedTrace, Disable-WSManTr... Binary     1.1.0.0    PSScheduledJob                      {New-JobTrigger, Add-JobTrigger, Remove-JobTrigger, Get-JobTrig... Manifest   2.0.0.0    PSWorkflow                          {New-PSWorkflowExecutionOption, New-PSWorkflowSession, nwsn}

Manifest   1.0.0.0    PSWorkflowUtility                   Invoke-AsWorkflow

Manifest   3.0.0.0    RemoteAccess                        {Add-DAAppServer, Add-DAClient, Add-DAClientDnsConfiguration, A... Manifest   2.0.0.0    RemoteDesktop                       {Get-RDCertificate, Set-RDCertificate, New-RDCertificate, New-R... Manifest   1.0.0.0    ScheduledTasks                      {Get-ScheduledTask, Set-ScheduledTask, Register-ScheduledTask, ... Manifest   2.0.0.0    SecureBoot                          {Confirm-SecureBootUEFI, Set-SecureBootUEFI, Get-SecureBootUEFI... Script     2.0.0.0    ServerManager                       {Get-WindowsFeature, Install-WindowsFeature, Uninstall-WindowsF... Cim        1.0.0.0    ServerManagerTasks                  {Get-SMCounterSample, Get-SMPerformanceCollector, Start-SMPerfo... Manifest   1.0.0.0    ShieldedVMDataFile                  {Import-ShieldingDataFile, Protect-ShieldingDataFile, New-Volum... Manifest   1.0.0.0    ShieldedVMTemplate                  {Protect-ServerVHDX, Initialize-VMShieldingHelperVHD}

Manifest   2.0.0.0    SmbShare                            {Get-SmbShare, Remove-SmbShare, Set-SmbShare, Block-SmbShareAcc... Manifest   2.0.0.0    SmbWitness                          {Get-SmbWitnessClient, Move-SmbWitnessClient, gsmbw, msmbw...}

Manifest   1.0.0.0    StartLayout                         {Export-StartLayout, Import-StartLayout, Get-StartApps}

Manifest   2.0.0.0    Storage                             {Add-InitiatorIdToMaskingSet, Add-PartitionAccessPath, Add-Phys... Manifest   1.0.0.0    StorageQoS                          {Get-StorageQoSPolicy, Get-StorageQoSPolicyStore, Set-StorageQo... Manifest   1.0        StorageReplica                      {Test-SRTopology, New-SRGroup, Remove-SRGroup, Set-SRGroup...}

Manifest   2.0.0.0    TLS                                 {New-TlsSessionTicketKey, Enable-TlsSessionTicketKey, Disable-T... Manifest   1.0.0.0    TroubleshootingPack                 {Get-TroubleshootingPack, Invoke-TroubleshootingPack}

Manifest   2.0.0.0    TrustedPlatformModule               {Get-Tpm, Initialize-Tpm, Clear-Tpm, Unblock-Tpm...}

Manifest   2.0.0.0    UpdateServices                      {Add-WsusComputer, Approve-WsusUpdate, Deny-WsusUpdate, Get-Wsu... Manifest   2.0.0.0    VpnClient                           {Add-VpnConnection, Set-VpnConnection, Remove-VpnConnection, Ge... Manifest   1.0.0.0    Wdac                                {Get-OdbcDriver, Set-OdbcDriver, Get-OdbcDsn, Add-OdbcDsn...}

Manifest   1.0.0.0    WindowsDeveloperLicense             {Get-WindowsDeveloperLicense, Show-WindowsDeveloperLicenseRegis... Script     1.0        WindowsErrorReporting               {Enable-WindowsErrorReporting, Disable-WindowsErrorReporting, G... Manifest   1.0.0.0    WindowsSearch                       {Get-WindowsSearchSetting, Set-WindowsSearchSetting}

Manifest   1.0.0.0    WindowsUpdate                       Get-WindowsUpdateLog

    Directory: C:\Program Files\Microsoft\AGPM\Client

ModuleType Version    Name                                ExportedCommands

---------- -------    ----                                ----------------

Binary     1.0.0.0    Microsoft.Agpm                      {Get-ControlledGpo, Lock-ControlledGpo, Unlock-ControlledGpo, P...

    Directory: C:\Program Files (x86)\VMware\Infrastructure\PowerCLI\Modules

ModuleType Version    Name                                ExportedCommands

---------- -------    ----                                ----------------

Binary     6.0.0.0    VMware.DeployAutomation

Binary     6.0.0.0    VMware.ImageBuilder

Binary     6.5.0.4... VMware.VimAutomation.Cis.Core

Manifest   6.5.0.4... VMware.VimAutomation.Common

Binary     6.5.0.2... VMware.VimAutomation.Core           HookGetViewAutoCompleter

Binary     6.0.0.0    VMware.VimAutomation.HA

Binary     6.5.0.4... VMware.VimAutomation.License

Manifest   6.5.0.4... VMware.VimAutomation.Sdk            Get-PSVersion

Binary     6.5.0.4... VMware.VimAutomation.Storage

Binary    6.5.0.4... VMware.VimAutomation.Vds

Binary     6.0.0.0    VMware.VumAutomation


0 Kudos
LucD
Leadership
Leadership

No, that looks like a "normal" amount of modules.

You could try to clean up the cache PowerShell is using for this.

Note that after this action it might take some time before the cache is rebuild!

Get-ChildItem -Path "$($env:LocalAppData)\Microsoft\Windows\PowerShell\CommandAnalysis" |

Remove-Item -Confirm:$false


Blog: lucd.info  Twitter: @LucD22  Co-author PowerCLI Reference

0 Kudos
paintcheck200
Enthusiast
Enthusiast

So I played quite a bit with the caching folder.  Used your commend, also moved everything out of it and let it recreate.  No luck.   I've decided to down rev to 6.3 R1.  It is not having/causing the issue anymore with the older version. 

Directory: C:\Program Files (x86)\VMware\Infrastructure\vSphere PowerCLI\Modules

ModuleType Version    Name                                ExportedCommands

---------- -------    ----                                ----------------

Binary     6.0.0.0    VMware.VimAutomation.Cis.Core

Manifest   6.3.0.0    VMware.VimAutomation.Common

Manifest   6.3.0.0    VMware.VimAutomation.Core           HookGetViewAutoCompleter

Binary     6.0.0.0    VMware.VimAutomation.HA

Binary     1.0.0.0    VMware.VimAutomation.License

Manifest   6.3.0.0    VMware.VimAutomation.SDK

Binary     6.0.0.0    VMware.VimAutomation.Storage

Binary     6.3.0.0    VMware.VimAutomation.Vds

Binary     6.3.0.0    VMware.VimAutomation.vROps

Binary     6.0.0.0    VMware.VumAutomation

0 Kudos
LucD
Leadership
Leadership

Out of curiosity, do you see the same slow intellisense with PowerCLI 6.5R1 on another station?


Blog: lucd.info  Twitter: @LucD22  Co-author PowerCLI Reference

0 Kudos
paintcheck200
Enthusiast
Enthusiast

I finally got around to installing this on a clean VM image and I'm not noticing the issue.  Not sure if its not there, or I'm just no observing it (noticeable).  Would need to install quite a few other power shell modules.  I'll keep digging into it as I have time. 

0 Kudos