Powershell 如何查找cmdlet的模块

Powershell 如何查找cmdlet的模块,powershell,exchange-server,Powershell,Exchange Server,我多次尝试找到正确的模块导入到Powershell以获得某些cmdlet,但我无法找到它。目前我正在寻找:addmailboxfolderpermission 我尝试了以下操作,但未返回任何结果: Find命令-Name Add MailboxFolderPermission 当我获得模块名时,我希望使用install module“module name”cmdlet安装它 从Exchange安装介质安装Exchange管理工具 该命令将作为Exchange模块的一部分从cmd cd提供给安装

我多次尝试找到正确的模块导入到Powershell以获得某些cmdlet,但我无法找到它。目前我正在寻找:
addmailboxfolderpermission

我尝试了以下操作,但未返回任何结果:
Find命令-Name Add MailboxFolderPermission


当我获得模块名时,我希望使用
install module“module name”
cmdlet安装它

从Exchange安装介质安装Exchange管理工具


该命令将作为Exchange模块的一部分从cmd cd提供给安装介质,然后运行:

setup.exe /mode:install /role:mt /IAcceptExchangeServerLicenseTerms.
这将安装管理工具

注意:您可能需要一些先决条件,但如果安装失败,它通常会告诉您需要什么。我想到了IIS管理工具

Exchange命令行管理程序(ESM)始终使用PowerShell隐式远程处理来构建本地代理功能。他们这样做是为了实施基于角色的访问控制,但这也意味着它不像典型的模块那样加载

除了启动快捷方式外,还有几种加载ESM的方法:

. 'C:\Program Files\Microsoft\Exchange Server\V15\bin\RemoteExchange.ps1'
. "C:\Program Files\Microsoft\Exchange Server\V15\bin\CommonConnectFunctions.ps1"
. "C:\Program Files\Microsoft\Exchange Server\V15\bin\ConnectFunctions.ps1"
Connect-ExchangeServer -auto -AllowClobber
这是针对Exchange 2013的,我认为16和19是类似的

我更喜欢这种方法,它更地道,而且根据我的经验更可靠。如果你仔细研究EMS快捷方式是如何启动的,它会做完全相同的事情

您也可以像下面那样添加管理单元,但我通常不会这样做。然而,互联网上给出的答案通常是:

add-pssnapin Microsoft.Exchange.Management.PowerShell.E2010
如果您不想或无法安装管理工具,第三种方法是直接使用隐式远程处理,如:

$Session = New-PSSession -ConnectionUri "http://<serverName>/powershell" -ConfigurationName Microsoft.Exchange -Authentication Kerberos
Import-PSSession $Session
$Session=New PSSession-ConnectionUri”http:///powershell“-ConfigurationName Microsoft.Exchange-Authentication Kerberos
导入PSSession$会话
这确实很酷,但缺点是返回的对象是基于字符串的对象。对于交互式使用,这通常是可以的,但对于脚本或任何时候依赖于特定对象结构,这可能是一个问题

最后一件事:如果用户帐户没有RBAC访问权限,则某些cmdlet可能不可用。如果你在组织管理角色组中,你通常不必担心。但是,如果某个特定cmdlet丢失,即使您已经加载了shell,RBAC也是您可以查看的地方


很抱歉,如果我过度使用了它,请告诉我它的运行情况。

Exchange是Microsoft第一款支持PowerShell的产品,因此他们在分发模块时做了一些奇怪的事情

话虽如此,他们现在有了一种现代化的测试方法:
它包含用于Exchange Online的新的、改进的命令,并且包含所有旧命令的向后兼容版本。此模块可以从标准的公共PowerShell存储库安装。

在您的fave搜索引擎中搜索cmdlet。。。它会把你带到MSDocs网站。该页面将列出包含cmdlet的模块。[grin]这在脚本中不起作用,tho。不幸的是,许多模块无法通过公共存储库获得,只能作为产品安装的一部分(如您提到的Exchange cmdlet,它需要Exchange管理工具)。如果模块已安装在计算机上,您只需开始使用该命令,PowerShell就会自动找到并加载该模块,但如果模块未安装且无法公开使用,您就太倒霉了。@Lee_Dailey谢谢。我试过了。虽然使用此命令,但在MSDocs页面的顶部有一个指向模块“exchange”的链接,这导致404找不到。。所以我想找到合适的模块很难@谢谢你。@AterCZ-啊!我完全误解了你的意图。[脸红]看来,
怀疑论者
找到了你实际问题的答案。。。[咧嘴笑]