PowerShell Snapin Cmdlet CommandNotFoundException



目前我正在尝试创建我的第一个PowerShell Snapin。我遵循了本教程:如何创建 PowerShell 管理单元,在我尝试调用我的自定义 cmdlet 之前,一切正常。此外,我还添加了一个"后期构建事件"来注册程序集。

"C:WindowsMicrosoft.NETFrameworkv2.0.50727InstallUtil.exe" $(TargetPath)

之后我添加了 Snapin,它就像一个魅力:

Add-PSSnapin CustomSrv.Commands

系统.自动化参考的程序集的路径:

C:Program FilesReference AssembliesMicrosoftWindowsPowerShellv1.0System.Management.Automation.dll

作为我的目标平台,我选择了x86,我也在x86 PowerShell中执行所有内容。平台设置为"活动(任何 CPU)"

这是我的 cmdlet 代码:

namespace CustomSrv.Commands
{
    [Cmdlet(VerbsCommunications.Connect, "CustomSrv")]
    public class TestCmdlet1 : Cmdlet
    {
        protected override void BeginProcessing()
        {
            WriteObject("BeginProcessing() method - Execution has begun");
        }
        protected override void ProcessRecord()
        {
            WriteObject("ProcessRecord() method - Executing the main code");
        }
        protected override void EndProcessing()
        {
            WriteObject("EndProcessing() method - Finalizing the execution");
        }
    }
}

这是我尝试调用 Cmdlet 时遇到的错误:

PS C:WINDOWSsystem32> Connect-CustomSrv
Connect-CustomSrv: The term 'Connect-CustomSrv' is not recognized as the name of a cmdlet, function, script file, 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
+ Connect-CustomSrv
+ ~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (Connect-CustomSrv:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

我做错了什么,定位平台(x86)的设置有问题吗?

如果选择x86作为平台,则还需要确保使用的是x86版本的PowerShell。请参阅此处了解如何执行此操作。您可能使用的是 x64 版本的 powershell,这是默认设置。请参阅此处以获取更多信息。

或者将目标更改为 AnyCPU,并使用 installutil 注册管理单元两次。一次是32位版本,一次是64位版本(C:\Windows\Microsoft.NET\Framework64\v2.0.50727\installutil.exe)。


如果您正在制作一些像atom
这样的IDE。你应该从PowerShell打开atom,比如

只需在那里
输入atom


应该工作

如果您正在制作一些 IDE,例如atom
你应该从PowerShell打开atom,比如

只需在那里
输入atom


应该工作

这为我修复了它:https://www.opentechguides.com/how-to/article/powershell/105/powershel-security-error.html

以管理员身份运行 PowerShell 并编写:

 PS C:> Get-ExecutionPolicy -list  
 Scope     ExecutionPolicy
            -----     ---------------
    MachinePolicy     Undefined
       UserPolicy     Undefined
          Process     Undefined
      CurrentUser     Undefined
     LocalMachine     RemoteSigned

然后:

PS C:> Set-ExecutionPolicy unrestricted 

希望它有效!

相关内容

  • 没有找到相关文章

最新更新