
Ich habe mit Chocolately ein Paket auf meinem Win7 x64-Computer installiert. Im Rahmen der Installation wollte es PowerShell auf 5.0 aktualisieren. Seitdem funktionieren grundlegende PowerShell-Befehle nicht mehr. Ich habe im Internet gesucht und nichts wirklich Nützliches gefunden. Ich weiß wirklich nicht, was ich tun soll.
Hier ist ein Beispiel:
PS>Get-Location
Get-Location : The term 'Get-Location' 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
+ Get-Location
+ ~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (Get-Location:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
PS>
Ich sehe, dass es Aliase für meine Befehle auflöst, zum Beispiel:
PS>dir
dir : The term 'Get-ChildItem' 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
+ dir
+ ~~~
+ CategoryInfo : ObjectNotFound: (Get-ChildItem:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
PS>
Ich habe einen anderen Alias in meinem $profile festgelegt und sehe, dass er erkannt wird. Wenn ich xx eingebe, wird meine PowerShell-Instanz geschlossen:
function global:xx
{
exit
}
Der $env:psmodulepath scheint korrekt zu sein:
PS>$env:psmodulepath
C:\Users\myuserid\Documents\WindowsPowerShell\Modules;C:\Program Files (x86)\PowerShell Community Extensions\Pscx3\;C:\w
indows\system32\WindowsPowerShell\v1.0\Modules";C:\Program Files\WindowsPowerShell\Modules
PS>cmd
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
C:\windows\system32>dir c:\windows\system32\WindowsPowerShell\v1.0\Modules
Volume in drive C is OS
Volume Serial Number is 605E-A0FF
Directory of c:\windows\system32\WindowsPowerShell\v1.0\Modules
06/22/2016 11:41 PM <DIR> .
06/22/2016 11:41 PM <DIR> ..
05/20/2016 02:24 PM <DIR> ApplicationServer
06/22/2016 11:41 PM <DIR> CimCmdlets
06/22/2016 11:41 PM <DIR> ISE
06/22/2016 11:41 PM <DIR> Microsoft.PowerShell.Archive
06/22/2016 11:41 PM <DIR> Microsoft.PowerShell.Diagnostics
06/22/2016 11:41 PM <DIR> Microsoft.PowerShell.Host
06/22/2016 11:41 PM <DIR> Microsoft.PowerShell.Management
06/22/2016 11:41 PM <DIR> Microsoft.PowerShell.ODataUtils
06/22/2016 11:41 PM <DIR> Microsoft.PowerShell.Security
06/22/2016 11:41 PM <DIR> Microsoft.PowerShell.Utility
06/22/2016 11:41 PM <DIR> Microsoft.WSMan.Management
06/22/2016 11:41 PM <DIR> NetworkSwitchManager
06/22/2016 11:41 PM <DIR> PSDesiredStateConfiguration
06/22/2016 11:41 PM <DIR> PSDiagnostics
06/22/2016 11:41 PM <DIR> PSScheduledJob
06/22/2016 11:41 PM <DIR> PSWorkflow
06/22/2016 11:41 PM <DIR> PSWorkflowUtility
11/21/2010 02:24 AM <DIR> TroubleshootingPack
10/31/2014 04:26 PM <DIR> WebAdministration
0 File(s) 0 bytes
21 Dir(s) 2,301,882,368 bytes free
C:\windows\system32>
Antwort1
PowerShell-Befehle funktionieren nicht mehr
Der $env:psmodulepath scheint korrekt zu sein:
$env:psmodulepath
C:\Users\myuserid\Documents\WindowsPowerShell\Modules;C:\Program Files (x86)\PowerShell Community Extensions\Pscx3\;C:\windows\system32\WindowsPowerShell\v1.0\Modules";C:\Program Files\WindowsPowerShell\Modules
Sie haben ein "
(doppeltes Anführungszeichen) in der Mitte, $env:psmodulepath
das bei meiner Installation nicht vorhanden ist:
PS F:\test> $env:psmodulepath
C:\Users\DavidPostill\Documents\WindowsPowerShell\Modules;C:\Program Files\WindowsPowerShell\Modules;C:\Windows\system32\WindowsPowerShell\v1.0\Modules
Sie können die doppelten Anführungszeichen entfernen, indem Sie $env:psmodulepath
sie selbst explizit festlegen.