使用嵌套模块加载 PowerShell 模块时出错
Loading PowerShell module with nested module giving errors
我已经编写了自定义 PowerShell 模块。我的自定义模块使用 SharePoint CMD lets。所以在我的 psd1 文件中,我有一个嵌套模块 属性,例如:
NestedModules = @( 'Microsoft.SharePoint.PowerShell',
'.\Modules\MyModule.psd1')
我从:PowerShell Modules and SnapIns
当我导入这个模块时,我得到(一小部分错误):
Import-Module : The following error occurred while loading the extended type data file: Error in TypeData
"Microsoft.Office.Server.Search.Administration.SearchServiceApplication": The member ServiceName is already present.
At line:1 char:1
+ Import-Module Test
+ ~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [Import-Module], RuntimeException
+ FullyQualifiedErrorId : Module_ImportModuleError,Microsoft.PowerShell.Commands.ImportModuleCommand
Import-Module : The following error occurred while loading the extended type data file: Error in TypeData
"Microsoft.Office.Server.Search.Administration.SearchService": The member ProcessIdentity is already present.
At line:1 char:1
+ Import-Module Test
+ ~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [Import-Module], RuntimeException
+ FullyQualifiedErrorId : Module_ImportModuleError,Microsoft.PowerShell.Commands.ImportModuleCommand
Import-Module : The following error occurred while loading the extended type data file: Error in TypeData
"Microsoft.Office.Server.Search.Administration.SearchService": The member ServiceName is already present.
At line:1 char:1
+ Import-Module Test
+ ~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [Import-Module], RuntimeException
+ FullyQualifiedErrorId : Module_ImportModuleError,Microsoft.PowerShell.Commands.ImportModuleCommand
Import-Module : The following error occurred while loading the extended type data file: Error in TypeData
"Microsoft.Office.Server.Search.Administration.Keyword": The member ExpiryDate is already present.
At line:1 char:1
+ Import-Module Test
+ ~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [Import-Module], RuntimeException
+ FullyQualifiedErrorId : Module_ImportModuleError,Microsoft.PowerShell.Commands.ImportModuleCommand
Import-Module : The following error occurred while loading the extended type data file: Error in TypeData
我最终创建了 PowerShell 脚本来加载 SharePoint PSSnapin。
Begin {
$SPSnapin = "Microsoft.SharePoint.PowerShell"
Write-Verbose "The GasuniePowerShell module will try to load the $SPSnapin snappin" -Verbose
try {
if (Get-PSSnapin $SPSnapin -ErrorAction SilentlyContinue) {
Write-Verbose "Microsoft.SharePoint.PowerShell Snappin already registered and loaded" -Verbose
}
elseif (Get-PSSnapin $SPSnapin -Registered -ErrorAction SilentlyContinue) {
Add-PSSnapin $SPSnapin
Write-Verbose "$SPSnapin Snappin is registered and has been loaded for script operation" -Verbose
}
else {
Write-Warning "$SPSnapin Snappin not installed on this server. SharePoint cmdlets disabled." -Verbose
Exit
}
}
catch {
Write-Warning "There was an issue loading the $SPSnapin Snappin. Exiting function." -Verbose
Write-Warning $_
Exit
}
}
在我的 PowerShell 模块清单中,我添加了以下内容 属性:
ScriptsToProcess = '.\scripts\LoadSharePointPowerShell.ps1'
每当导入模块时,此脚本都会 运行 并加载 SnapIn。当模块被 releoded 没有给出错误
我已经编写了自定义 PowerShell 模块。我的自定义模块使用 SharePoint CMD lets。所以在我的 psd1 文件中,我有一个嵌套模块 属性,例如:
NestedModules = @( 'Microsoft.SharePoint.PowerShell',
'.\Modules\MyModule.psd1')
我从:PowerShell Modules and SnapIns
当我导入这个模块时,我得到(一小部分错误):
Import-Module : The following error occurred while loading the extended type data file: Error in TypeData
"Microsoft.Office.Server.Search.Administration.SearchServiceApplication": The member ServiceName is already present.
At line:1 char:1
+ Import-Module Test
+ ~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [Import-Module], RuntimeException
+ FullyQualifiedErrorId : Module_ImportModuleError,Microsoft.PowerShell.Commands.ImportModuleCommand
Import-Module : The following error occurred while loading the extended type data file: Error in TypeData
"Microsoft.Office.Server.Search.Administration.SearchService": The member ProcessIdentity is already present.
At line:1 char:1
+ Import-Module Test
+ ~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [Import-Module], RuntimeException
+ FullyQualifiedErrorId : Module_ImportModuleError,Microsoft.PowerShell.Commands.ImportModuleCommand
Import-Module : The following error occurred while loading the extended type data file: Error in TypeData
"Microsoft.Office.Server.Search.Administration.SearchService": The member ServiceName is already present.
At line:1 char:1
+ Import-Module Test
+ ~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [Import-Module], RuntimeException
+ FullyQualifiedErrorId : Module_ImportModuleError,Microsoft.PowerShell.Commands.ImportModuleCommand
Import-Module : The following error occurred while loading the extended type data file: Error in TypeData
"Microsoft.Office.Server.Search.Administration.Keyword": The member ExpiryDate is already present.
At line:1 char:1
+ Import-Module Test
+ ~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [Import-Module], RuntimeException
+ FullyQualifiedErrorId : Module_ImportModuleError,Microsoft.PowerShell.Commands.ImportModuleCommand
Import-Module : The following error occurred while loading the extended type data file: Error in TypeData
我最终创建了 PowerShell 脚本来加载 SharePoint PSSnapin。
Begin {
$SPSnapin = "Microsoft.SharePoint.PowerShell"
Write-Verbose "The GasuniePowerShell module will try to load the $SPSnapin snappin" -Verbose
try {
if (Get-PSSnapin $SPSnapin -ErrorAction SilentlyContinue) {
Write-Verbose "Microsoft.SharePoint.PowerShell Snappin already registered and loaded" -Verbose
}
elseif (Get-PSSnapin $SPSnapin -Registered -ErrorAction SilentlyContinue) {
Add-PSSnapin $SPSnapin
Write-Verbose "$SPSnapin Snappin is registered and has been loaded for script operation" -Verbose
}
else {
Write-Warning "$SPSnapin Snappin not installed on this server. SharePoint cmdlets disabled." -Verbose
Exit
}
}
catch {
Write-Warning "There was an issue loading the $SPSnapin Snappin. Exiting function." -Verbose
Write-Warning $_
Exit
}
}
在我的 PowerShell 模块清单中,我添加了以下内容 属性:
ScriptsToProcess = '.\scripts\LoadSharePointPowerShell.ps1'
每当导入模块时,此脚本都会 运行 并加载 SnapIn。当模块被 releoded 没有给出错误