如何解决该术语不是 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 举报,一经查实,本站将立刻删除。