Powershell自定义模块CommandNotFoundException

时间:2018-05-29 13:58:36

标签: powershell powershell-module

当我导入我的模块时,我无法访问公开的成员。

将我的模块放在C:\Program Files\WindowsPowerShell\Modules

当我在powershell中导入我的模块时: Import-Module StuiterModule -Verbose

然后输入Invoke-Reboot,它会出现以下错误:

Invoke-Reboot : The term 'Invoke-Reboot' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or operable program. CHeck the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:1
+ Invoke-Reboot
+ ~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (Invoke-Reboot:String [], CommandNotFoundExeption
    + FullyQualifiedErrorId : CommandNotFoundException

有没有人知道我做错了什么?

更新

当我将-Force置于导入模块后面时,一切正常。为什么这样,我该如何解决这个问题?

代码:

StuiterModule.psm1

$Public = @( Get-ChildItem -Path "$PSScriptRoot\Public\*.ps1" )
$Private = @( Get-ChildItem -Path "$PSScriptRoot\Private\*.ps1" )

@($Public + $Private) | ForEach-Object {
    Try {
        . $_.FullName
    } Catch {
        Write-Error -Message "Failed to import function $($_.FullName): $_"
    }
}

Export-ModuleMember -Function $Public.BaseName

StuiterModule.psd1

#
# Module manifest for module 'StuiterModule'
#
# Generated by: StuiterSlurf
#
# Generated on: 29-5-2018
#

@{
# Script module or binary module file associated with this manifest.
RootModule = 'StuiterModule.psm1'

# Version number of this module.
ModuleVersion = '1.0.0'

# ID used to uniquely identify this module
GUID = '0254592e-b712-4d70-844c-6e38cec20ee5'

# Author of this module
Author = 'StuiterSlurf'

# Copyright statement for this module
Copyright = '(c) 2018 StuiterSlurf. All rights reserved.'

# Minimum version of the Windows PowerShell engine required by this module
PowerShellVersion = '5.0'

# Functions to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no functions to export.
FunctionsToExport = 'Invoke-Reboot', 'Start-Program', 'Update-Program'

# Cmdlets to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no cmdlets to export.
CmdletsToExport = @()

# Aliases to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no aliases to export.
AliasesToExport = @()

# Private data to pass to the module specified in RootModule/ModuleToProcess. This may also contain a PSData hashtable with additional module metadata used by PowerShell.
PrivateData = @{
    PSData = @{}
}
}

公共/调用-Reboot.ps1

# Reboot system

Function Invoke-Reboot {
[cmdletbinding()]
Param()

Write-Verbose "Starting reboot"
Restart-Computer
} 

0 个答案:

没有答案