2016-06-22 8 views
2

私はWin10とPowershell 5.0を新しくインストールしました。私はupdate-helpを実行しています。ただし、Get-Commandは、通常モードでも昇格モードでも、null参照例外を返します。私はまた、-noprofileでRunからPowershellを実行しようとしましたが、ユーザーと昇格モードの両方で同じエラーが表示されます。ここではいくつかの追加情報がある:Powershell 5.0/Windows 10 Get-Command Nullリファレンス例外

PS Z:\> Get-WmiObject Win32_OperatingSystem | Select-Object -Property Version, ServicePackMajorVersion, ServicePackMinorVersion 

Version ServicePackMajorVersion ServicePackMinorVersion 
------- ----------------------- ----------------------- 
10.0.10586      0      0 

PS Z:\> $PSVersionTable 

Name       Value 
----       ----- 
PSVersion      5.0.10586.122 
PSCompatibleVersions   {1.0, 2.0, 3.0, 4.0...} 
BuildVersion     10.0.10586.122 
CLRVersion      4.0.30319.42000 
WSManStackVersion    3.0 
PSRemotingProtocolVersion  2.3 
SerializationVersion   1.1.0.1 

PS Z:\> get-command 
>> TerminatingError(Get-Command): "Object reference not set to an instance of an object." 
get-command : Object reference not set to an instance of an object. 
At line:1 char:1 
+ get-command 
+ ~~~~~~~~~~~ 
    + CategoryInfo   : NotSpecified: (:) [Get-Command], NullReferenceException 
    + FullyQualifiedErrorId : System.NullReferenceException,Microsoft.PowerShell.Commands.GetCommandCommand 
get-command : Object reference not set to an instance of an object. 
At line:1 char:1 
+ get-command 
+ ~~~~~~~~~~~ 
    + CategoryInfo   : NotSpecified: (:) [Get-Command], NullReferenceException 
    + FullyQualifiedErrorId : System.NullReferenceException,Microsoft.PowerShell.Commands.GetCommandCommand 

PS Z:\> $error[0] | format-list * -force 


PSMessageDetails  : 
Exception    : System.NullReferenceException: Object reference not set to an instance of an object. 
          at Microsoft.PowerShell.Commands.GetCommandCommand.IsCommandMatch(CommandInfo& current, Boolean& isDuplicate) 
          at Microsoft.PowerShell.Commands.GetCommandCommand.AccumulateMatchingCommands(IEnumerable`1 commandNames) 
          at System.Management.Automation.CommandProcessor.ProcessRecord() 
TargetObject   : 
CategoryInfo   : NotSpecified: (:) [Get-Command], NullReferenceException 
FullyQualifiedErrorId : System.NullReferenceException,Microsoft.PowerShell.Commands.GetCommandCommand 
ErrorDetails   : 
InvocationInfo  : System.Management.Automation.InvocationInfo 
ScriptStackTrace  : at <ScriptBlock>, <No file>: line 1 
PipelineIterationInfo : {} 



PS Z:\> $error[0].line 
PS Z:\> $error[0].exception | format-list * -force 


Message  : Object reference not set to an instance of an object. 
Data   : {} 
InnerException : 
TargetSite  : Boolean IsCommandMatch(System.Management.Automation.CommandInfo ByRef, Boolean ByRef) 
StackTrace  : at Microsoft.PowerShell.Commands.GetCommandCommand.IsCommandMatch(CommandInfo& current, Boolean& isDuplicate) 
        at Microsoft.PowerShell.Commands.GetCommandCommand.AccumulateMatchingCommands(IEnumerable`1 commandNames) 
        at System.Management.Automation.CommandProcessor.ProcessRecord() 
HelpLink  : 
Source   : System.Management.Automation 
HResult  : -2147467261 

ユーザーと上昇モードの両方で更新ヘルプを実行した後、私はPowerShellでやった次のことは、「私はドンので、私はそれが問題を引き起こしたのかはわからないSQL Power Docをインストールしましたインストールの前にGet-Commandを使用して呼び出します。インストール中に

は、私はこれらのコマンドを発行:

Set-ExecutionPolicy RemoteSigned -Force 

New-Item -type directory -path "$([Environment]::GetFolderPath([Environment+SpecialFolder]::MyDocuments))\WindowsPowerShell\Modules" 

Set-Location "$([Environment]::GetFolderPath([Environment+SpecialFolder]::MyDocuments))\WindowsPowerShell" 

私はGet-Commandコマンドのヘルプを実行すると - それはエラーなしで動作します:

PS Z:\> help get-command 

NAME 
    Get-Command 

SYNOPSIS 
    Gets all commands. 


SYNTAX 
    Get-Command [[-ArgumentList] [<Object[]>]] [-All] [-FullyQualifiedModule [<ModuleSpecification[]>]] [-ListImported] [-Module [<String[]>]] [-Noun [<String[]>]] [-ParameterName [<String[]>]] [-ParameterType [<PSTypeName[]>]] [-ShowCommandInfo] [-Syntax] [-TotalCount 
    [<Int32>]] [-Verb [<String[]>]] [<CommonParameters>] 

    Get-Command [[-Name] [<String[]>]] [[-ArgumentList] [<Object[]>]] [-All] [-CommandType {Alias | Function | Filter | Cmdlet | ExternalScript | Application | Script | Workflow | Configuration | All}] [-FullyQualifiedModule [<ModuleSpecification[]>]] [-ListImported] 
    [-Module [<String[]>]] [-ParameterName [<String[]>]] [-ParameterType [<PSTypeName[]>]] [-ShowCommandInfo] [-Syntax] [-TotalCount [<Int32>]] [<CommonParameters>] 


DESCRIPTION 
    The Get-Command cmdlet gets all commands that are installed on the computer, including cmdlets, aliases, functions, workflows, filters, scripts, and applications. Get-Command gets the commands from Windows PowerShell modules and snap-ins and commands that were 
    imported from other sessions. To get only commands that have been imported into the current session, use the ListImported parameter. 

    Without parameters, a Get-Command command gets all of the cmdlets, functions, workflows and aliases installed on the computer. A Get-Command * command gets all types of commands, including all of the non-Windows-PowerShell files in the Path environment variable 
    ($env:path), which it lists in the "Application" command type. 

    A Get-Command command that uses the exact name of the command (without wildcard characters) automatically imports the module that contains the command so you can use the command immediately. To enable, disable, and configure automatic importing of modules, use the 
    $PSModuleAutoLoadingPreference preference variable. For more information, see about_Preference_Variables (http://go.microsoft.com/fwlink/?LinkID=113248). 

    Get-Command gets its data directly from the command code, unlike Get-Help, which gets its information from help topics. 

    In Windows PowerShell 2.0, Get-Command gets only commands in current session. It does not get commands from modules that are installed, but not imported. To limit Get-Command in Windows PowerShell 3.0 and later to commands in the current session, use the 
    ListImported parameter. 

    Starting in Windows PowerShell 5.0, results of the Get-Command cmdlet display a Version column by default; a new Version property has been added to the CommandInfo class. 


RELATED LINKS 
    Online Version: http://go.microsoft.com/fwlink/p/?linkid=289583 
    Export-PSSession 
    Get-Help 
    Get-Member 
    Get-PSDrive 
    Import-PSSession 
    about_Command_Precedence 

REMARKS 
    To see the examples, type: "get-help Get-Command -examples". 
    For more information, type: "get-help Get-Command -detailed". 
    For technical information, type: "get-help Get-Command -full". 
    For online help, type: "get-help Get-Command -online" 

誰もが明らかに何も見えていますか?どんな助けもありがとうございます。

+0

明確にする:Windows 10 OSを新しくインストールしましたが、手動でPowerShell 5.0をインストールしようとしませんでしたか? PS 5には10が付属しているので? – gravity

+1

それは正しいです。 – SFAgitator

+1

'Modules'ディレクトリの名前を一時的に変更し、' Get-Command'を再度実行して修正したかどうか確認することは価値があるかもしれません。あなたがモジュールを追加したのを見た後、私はそれが関連していることを賭けています。それが修復されない場合は復元し、私たちに知らせてください;;) – gravity

答えて

3

Modulesディレクトリの名前を一時的に変更してから、Get-Commandを再度実行して修正されているかどうかを確認することをお勧めします。

(これは解決したように、問題の上記のコメントにつき、それが見えます。)

0

私は同じ問題を得たので、私はちょうどこの質問に出くわし。 SQL Powerdocソリューションに同梱されているモジュールRDS-Managerに関連していると考えられます。 RDS.ManagerはTechNetギャラリーから提供されています。 http://gallery.technet.microsoft.com/ScriptCenter/e8c3af96-db10-45b0-88e3-328f087a8700/

モジュールフォルダからフォルダ全体を削除しましたが、もう一度問題はありません。 RDSモジュールが追加され、NullReference Exceptionが再び発生しました。

+0

奇妙なことに、RDSモジュールを取り外して追加した後、正常に動作します。 –