据我所知,它们也是如此,那么为什么要在另一个上使用一个呢?
(抱歉,问题规则引擎-不知道还有什么要说的)
答案 0 :(得分:1)
Get-InstalledModule将使用Install-Module列出已安装的模块,而这些模块尚未天真的安装。但是,Get-Module -ListAvailable会显示$ env:PsModulePath位置中提到的所有位置的模块。
请参见下面的摘录以供参考:
*PS C:\Users\xyz> Get-InstalledModule
`PS C:\Users\xyz> Get-Module -ListAvailable
Directory: C:\Program Files\WindowsPowerShell\Modules
ModuleType版本名称ExportedCommands
---------- ------- ---- ----------------
脚本1.0.1 Microsoft.PowerShell.Operation.V ... {Get-OperationValidation,Invoke-OperationValidation}
二进制1.0.0.1 PackageManagement {查找包,获取包,获取包提供者,获取包...
脚本3.4.0 Pester {描述,上下文,它,应该...}
脚本1.0.0.1 PowerShellGet {安装模块,查找模块,保存模块,更新模块...
脚本2.0.0 PSReadline {Get-PSReadLineKeyHandler,Set-PSReadLineKeyHandler,Rem ...
目录:C:\ Windows \ system32 \ WindowsPowerShell \ v1.0 \ Modules
ModuleType版本名称ExportedCommands
---------- ------- ---- ----------------
清单1.0.0.0 AppBackgroundTask {Disable-AppBackgroundTaskDiagnosticLog,Enable-AppBackg ... *`
但是,如果未安装模块,则两者都将引发相同的异常。
PS C:\Users\Asim> $Error.Exception.Message[-1]
Unable to find type [Microsoft.PowerShell.Commands.PowerShellGet.Telemetry]
答案 1 :(得分:1)
请注意:
C:\> (Get-InstalledModule xyz.ps.core).RepositorySourceLocation
http://devstatic.xyz.com/prdnuget/nuget
C:\> (Get-Module xyz.ps.core -ListAvailable).RepositorySourceLocation.AbsoluteUri
http://devstatic.xyz.com/prdnuget/nuget
file:///C:/Users/mkharitonov/LocalTestPSRepository
两次使用xyz.ps.core
安装了模块Install-Module
。仅从本地存储库安装一次,而其他时间-从远程NuGet存储库安装。
在两种情况下,模块均安装在系统位置,即它位于PSModulePath
中。显然,重要的是它是否是从远程位置下载的。
我希望Microsoft文档对此进行解释,并提供使用此方法的理由。
答案 2 :(得分:0)
df = pd.DataFrame([x.split(',') for x in large_string.split('\n')])
是Get-InstalledModule
的一部分,将使用PowerShellGet
cmdlet列出已安装的模块,但是Install-Module
显示来自Get-Module -ListAvailable
位置中提到的所有位置的模块。