我有一个以:
开头的脚本#Requires -Modules ActiveDirectory, Microsoft.Online.SharePoint.PowerShell
除了Sharepoint PS模块抛出动词警告外,这一切都很好,花花公子:
警告:模块“Microsoft.Online.SharePoint.PowerShell”中某些导入命令的名称包括 未经批准的动词,可能会使它们不易被发现。要查找具有未批准动词的命令,请运行 使用Verbose参数再次使用Import-Module命令。有关已批准动词的列表,请键入Get-Verb。
我想在脚本中使用#Requires -Modules标头但是禁止警告。
我知道在运行脚本之前有一些方法可以抑制shell中的所有警告,但是想知道是否有更好的方法在脚本中执行它。
答案 0 :(得分:1)
我不确定这样的事情是否可行:
$OriginalWarningPreference = $WarningPreference
$WarningPreference = 'SilentlyContinue'
#Requires -Modules ActiveDirectory, Microsoft.Online.SharePoint.PowerShell
$WarningPreference = $OriginalWarningPreference
或者,您可以牺牲#Requires
的一些功能并执行此操作:
#Requires -Modules ActiveDirectory
Import-Module -Module Microsoft.Online.SharePoint.PowerShell -DisableNameChecking -ErrorAction Stop
答案 1 :(得分:0)
一个相当偷偷摸摸的解决方法是仅对模块使用#requires,不产生警告并使用
if (-not (get-module Microsoft.Online.SharePoint.PowerShell)) {
Import-Module Microsoft.Online.SharePoint.PowerShell -warningaction silentlycontinue
}
对于那些不严格遵循命名约定的人