我想为SharePoint中的app dev配置高可信应用,为此,我首先需要在powershell编辑器中插入一些命令,如:
$publicCertPath = "C:\Certs\HighTrustSampleCert.cer"
$certificate = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2($publicCertPath)
我在Windows Server 2012 R2上使用Windows PowerShell,其中包括Windows PowerShell 4,默认情况下包含新对象cmd-let ...但我不明白,为什么不操作我的操作系统认识到这个命令......我没有停止出现以下错误:New-Object:术语' New-Object'不被识别为cmdlet的名称。
当我打开powerShell时,我得到了这个:
*选择:
术语'选择对象'不被识别为cmdlet的名称, 功能,脚本文件或可操作程序。检查拼写 名称,或者如果包含路径,请验证路径是否正确 再试一次。在C:\ Program Files \ Common Files \ Microsoft Shared \ Web Server Extensions \ 15 \ CONFIG \ POWERSHELL \ Registration \ SharePoint.ps1:1 焦炭:16 + $ ver = $ host |选择版本 + ~~~~~~ + CategoryInfo:ObjectNotFound:(Select-Object:String)[],逗号ndNotFoundException + FullyQualifiedErrorId:CommandNotFoundException Set-location:术语' Set-location'不被识别为cmdlet的名称, 功能,脚本文件或可操作程序。检查拼写 名称,或者如果包含路径,请验证路径是否正确 再次尝试在C:\ Program Files \ Common Files \ Microsoft Shared \ Web Server 扩展\ 15 \ CONFIG \ POWERSHELL \ Registration \ SharePoint.ps1:4 char:1 +设置位置$ home + ~~~~~~~~~~~~ + CategoryInfo:ObjectNotFound:(Set-location:String)[],Comman dNotFoundException + FullyQualifiedErrorId:CommandNotFoundException *
我认为这是正常的,直到今天......它与错误有任何关系吗?这是洞(新对象)异常堆栈:
新对象:术语'新对象'不被识别为cmdlet,函数,脚本文件或可操作程序的名称。检查拼写 如果包含名称,或者包含路径,请验证路径是否正确 正确,然后再试一次。在行:1字符:16 + $ certificate = New-Object System.Security.Cryptography.X509Certificates.X509Cert ... + ~~~~~~~~~~ + CategoryInfo:ObjectNotFound:(New-Object:String)[],CommandN otFoundException + FullyQualifiedErrorId:CommandNotFoundException
ps:我想提一下,当我使用enter-psSession并远程工作时,命令new-object被识别,但sharepoint命令(如Get-SPAuthenticationRealm)不再被识别......
答案 0 :(得分:3)
您的PowerShell安装似乎已损坏且需要修复。 New-Object
cmdlet由Microsoft.PowerShell.Utility
模块导出,该模块是Core PowerShell模块之一,默认情况下应在所有PowerShell安装中导入。
答案 1 :(得分:0)
这可能是因为PSModulesPath的注册表项条目未预先填充默认的PowerShell模块路径。
$PSModulePath = Get-ItemProperty -Path "HKLM:SYSTEM\CurrentControlSet\Control\Session Manager\Environment" -Name "PSModulePath"
$newPSModulePath = $PSModulePath.PSModulePath + ";C:\Windows\System32\WindowsPowerShell\v1.0\Modules"
Set-ItemProperty -Path "HKLM:SYSTEM\CurrentControlSet\Control\Session Manager\Environment" -Name "PSModulePath" -value $newPSModulePath
答案 2 :(得分:-1)
这里没有验证,但我推进了Powershell遇到运行时错误导致它破坏其进程的假设。