该术语不是 cmdlet、函数、可运行程序或脚本文件

问题描述

我正在尝试使用以下代码在远程机器上执行 powershell 命令:

        string shellUri = "http://schemas.microsoft.com/powershell/Microsoft.PowerShell";
        PSCredential remoteCredential = new PSCredential("User",StringTosecurestring("password"));

        WSManConnectionInfo connectionInfo = new WSManConnectionInfo(
            false,"ipaddress",5985,"/wsman",shellUri,remoteCredential,1 * 60 * 1000);

        Runspace runspace = RunspaceFactory.CreateRunspace(connectionInfo);
        runspace.open();

        using (PowerShell ps = PowerShell.Create())
        {
            ps.Runspace = runspace;
            ps.AddCommand("get-process");

            Collection<PSObject> res = ps.Invoke();
        }

StringTosecurestring 方法列表:

    private securestring StringTosecurestring(string str)
    {
        securestring secureStr = new securestring();

        foreach(char c in str)
        {
            secureStr.AppendChar(c);
        }

        return secureStr;
    }

我可以成功执行一些命令,例如“get-process”或“get-service”。

但是有一些命令(例如“$env:username”)会引发下一个错误

该术语未被识别为 cmdlet、函数、可运行程序或脚本文件

但是如果我直接使用 powershell 连接,"$env:username" 命令将成功执行:

Enter-PSSession -ComputerName ipaddress -Credential username

还有一些未连接到环境变量的其他命令我也无法执行(CLI 应用命令无法使用代码或 powershell 工作)。

我是 powershell 和 WinRM 的新手,不知道出了什么问题。有人知道原因吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...