title: How to find or install missing Commands in PowerShell Core (pwsh)?
body: <p>I am using multiple versions of PowerShell, but only 2 can find all standard commands (or is it <em>commandlets</em>?). </p>
  
  <p>The original install is <em>Windows PowerShell</em> v5.1, but then I also have <a href="https://github.com/PowerShell/PowerShell" rel="nofollow noreferrer">PowerShell <em>Core</em></a> (<code>pwsh.exe</code>) v6.1.1 installed.</p>
  
  <p>The problem is that I am trying to run some firewall-related stuff in PowerShell <em>Core</em>, but the <code>Get-NetFirewallProfile</code> command cannot be found.</p>
  
  
  
  <pre><code>Get-NetFirewallProfile -Profile Domain, Public, Private | Select-Object Name, Enabled
  </code></pre>
  
  <p>However, it runs just fine in Windows PowerShell, since the required module <code>NetSecurity</code> is available there.</p>
  
  <p><strong>How can I make PowerShell Core either find the already existing modules or install them anew?</strong><br>
  (Are they even compatible? - If not, how can they be updated?)</p>
  
  <hr>
  
  <h3>additional info</h3>
  
  <p>In <strong>PowerShell <em>Core</em> v6.1</strong> I only have:</p>
  
  
  
  <pre><code>$ Get-Module -ListAvailable
  
      Directory: C:\Program Files\PowerShell\Modules
  
  ModuleType Version    Name                                PSEdition ExportedCommands
  ---------- -------    ----                                --------- ----------------
  Script     1.8.1      PSVersion                           Desk      {Get-PSVersion, Update-P
  Binary     2.1.0.1    PSWindowsUpdate                     Desk      {Add-WUServiceManager, E
  
      Directory: C:\program files\powershell\6\Modules
  
  ModuleType Version    Name                                PSEdition ExportedCommands
  ---------- -------    ----                                --------- ----------------
  Manifest   6.1.0.0    CimCmdlets                          Core      {Get-CimAssociatedInstan
  Manifest   1.2.2.0    Microsoft.PowerShell.Archive        Desk      {Compress-Archive, Expan
  Manifest   6.1.0.0    Microsoft.PowerShell.Diagnostics    Core      {Get-WinEvent, New-WinEv
  Manifest   6.1.0.0    Microsoft.PowerShell.Host           Core      {Start-Transcript, Stop-
  Manifest   6.1.0.0    Microsoft.PowerShell.Management     Core      {Add-Content, Clear-Cont
  Manifest   6.1.0.0    Microsoft.PowerShell.Security       Core      {Get-Acl, Set-Acl, Get-P
  Manifest   6.1.0.0    Microsoft.PowerShell.Utility        Core      {Format-List, Format-Cus
  Manifest   6.1.0.0    Microsoft.WSMan.Management          Core      {Disable-WSManCredSSP, E
  Script     1.1.7.2    PackageManagement                   Desk      {Find-Package, Get-Packa
  Script     1.6.7      PowerShellGet                       Desk      {Find-Command, Find-DSCR
  Script     0.0        PSDesiredStateConfiguration         Desk      {GetSyntax, Write-MetaCo
  Script     6.1.0.0    PSDiagnostics                       Core      {Disable-PSTrace, Disabl
  Script     2.0.0      PSReadLine                          Desk      {Get-PSReadLineKeyHandle
  Binary     1.1.2      ThreadJob                           Desk      Start-ThreadJob
  </code></pre>
  
  <p>whereas in <strong><em>Windows PowerShell</em> v5.1</strong>, I have: </p>
  
  <pre><code>$ Get-Module -ListAvailable *
  
      Directory: C:\Program Files\WindowsPowerShell\Modules
  
  ModuleType Version    Name                                ExportedCommands
  ---------- -------    ----                                ----------------
  Binary     1.0.0.1    PackageManagement                   {Find-Package, Get
  Script     1.0.0.1    PowerShellGet                       {Install-Module, F
  Script     1.8.1      PSVersion                           {Get-PSVersion, Up
  
      Directory: C:\Windows\system32\WindowsPowerShell\v1.0\Modules
  
  ModuleType Version    Name                                ExportedCommands
  ---------- -------    ----                                ----------------
  Manifest   1.0.0.0    AppBackgroundTask                   {Disable-AppBackgr
  Manifest   2.0.0.0    Appx                                {Add-AppxPackage,
  Manifest   1.0.0.0    BitLocker                           {Unlock-BitLocker,
  Manifest   1.0.0.0    BitsTransfer                        {Add-BitsFile, Com
  Manifest   1.0.0.0    CimCmdlets                          {Get-CimAssociated
  Manifest   1.0        Defender                            {Get-MpPreference,
  Manifest   1.0.0.0    DirectAccessClientComponents        {Disable-DAManualE
  Script     3.0        Dism                                {Add-AppxProvision
  Manifest   1.0.0.0    DnsClient                           {Resolve-DnsName,
  Manifest   2.0.0.0    International                       {Get-WinDefaultInp
  Manifest   1.0.0.0    iSCSI                               {Get-IscsiTargetPo
  Script     1.0.0.0    ISE                                 {New-IseSnippet, I
  Manifest   1.0.0.0    Kds                                 {Add-KdsRootKey, G
  Manifest   1.0.1.0    Microsoft.PowerShell.Archive        {Compress-Archive,
  Manifest   3.0.0.0    Microsoft.PowerShell.Diagnostics    {Get-WinEvent, Get
  Manifest   3.0.0.0    Microsoft.PowerShell.Host           {Start-Transcript,
  Manifest   1.0.0.0    Microsoft.PowerShell.LocalAccounts  {Add-LocalGroupMem
  Manifest   3.1.0.0    Microsoft.PowerShell.Management     {Add-Content, Clea
  Script     1.0        Microsoft.PowerShell.ODataUtils     Export-ODataEndpoi
  Manifest   3.0.0.0    Microsoft.PowerShell.Security       {Get-Acl, Set-Acl,
  Manifest   3.1.0.0    Microsoft.PowerShell.Utility        {Format-List, Form
  Manifest   3.0.0.0    Microsoft.WSMan.Management          {Disable-WSManCred
  Manifest   1.0        MMAgent                             {Disable-MMAgent,
  Manifest   1.0.0.0    MsDtc                               {New-DtcDiagnostic
  Manifest   2.0.0.0    NetAdapter                          {Disable-NetAdapte
  Manifest   1.0.0.0    NetConnection                       {Get-NetConnection
  Manifest   1.0.0.0    NetEventPacketCapture               {New-NetEventSessi
  Manifest   2.0.0.0    NetLbfo                             {Add-NetLbfoTeamMe
  Manifest   1.0.0.0    NetNat                              {Get-NetNat, Get-N
  Manifest   2.0.0.0    NetQos                              {Get-NetQosPolicy,
  Manifest   2.0.0.0    NetSecurity                         {Get-DAPolicyChang
  Manifest   1.0.0.0    NetSwitchTeam                       {New-NetSwitchTeam
  Manifest   1.0.0.0    NetTCPIP                            {Get-NetIPAddress,
  Manifest   1.0.0.0    NetworkConnectivityStatus           {Get-DAConnectionS
  Manifest   1.0.0.0    NetworkSwitchManager                {Disable-NetworkSw
  Manifest   1.0.0.0    NetworkTransition                   {Add-NetIPHttpsCer
  Manifest   1.0.0.0    PcsvDevice                          {Get-PcsvDevice, S
  Manifest   1.0.0.0    PKI                                 {Add-CertificateEn
  Manifest   1.1        PrintManagement                     {Add-Printer, Add-
  Manifest   1.1        PSDesiredStateConfiguration         {Set-DscLocalConfi
  Script     1.0.0.0    PSDiagnostics                       {Disable-PSTrace,
  Binary     1.1.0.0    PSScheduledJob                      {New-JobTrigger, A
  Manifest   1.5.2.6    PSWindowsUpdate                     {Add-WUOfflineSync
  Manifest   2.0.0.0    PSWorkflow                          {New-PSWorkflowExe
  Manifest   1.0.0.0    PSWorkflowUtility                   Invoke-AsWorkflow
  Manifest   1.0.0.0    ScheduledTasks                      {Get-ScheduledTask
  Manifest   2.0.0.0    SecureBoot                          {Confirm-SecureBoo
  Manifest   2.0.0.0    SmbShare                            {Get-SmbShare, Rem
  Manifest   2.0.0.0    SmbWitness                          {Get-SmbWitnessCli
  Manifest   1.0.0.0    StartScreen                         {Export-StartLayou
  Manifest   2.0.0.0    Storage                             {Add-InitiatorIdTo
  Manifest   2.0.0.0    TLS                                 {New-TlsSessionTic
  Manifest   1.0.0.0    TroubleshootingPack                 {Get-Troubleshooti
  Manifest   2.0.0.0    TrustedPlatformModule               {Get-Tpm, Initiali
  Manifest   2.0.0.0    VpnClient                           {Add-VpnConnection
  Manifest   1.0.0.0    Wdac                                {Get-OdbcDriver, S
  Manifest   1.0.0.0    WindowsDeveloperLicense             {Get-WindowsDevelo
  Script     1.0        WindowsErrorReporting               {Enable-WindowsErr
  Manifest   1.0.0.0    WindowsSearch                       {Get-WindowsSearch
  </code></pre>
  
  <hr>
  
  <p>And just in case someone wonders, all the available commands in a module can be listed with:<br>
  <strong><code>(Get-Module -ListAvailable NetSecurity).ExportedCommands</code></strong></p>
  
  <p><strong>UPDATE</strong>:</p>
  
  <p>I managed to find the correct modules, given a command/comdlet, using this:  </p>
  
  
  
  <pre><code>(Get-Module -ListAvailable -SkipEditionCheck *).ExportedCommands.Values |select CommandType,Source,Version,Name | sort Name
  </code></pre>
  
  <p>(Alternatively replace <code>ExportedCommands</code> with <code>ExportedCmdlets</code>.)</p>