- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试从库更新 PSFTP 模块。我用过 Remove-Module
,但这三 (3) 个别名仍然存在。如何在安装当前 PSFTP 模块之前删除它们?
PS C:\src\t\ftp> Get-Command *ftp*
CommandType Name Version Source
----------- ---- ------- ------
Alias Move-FTPItem 1.6.1.2 PSFTP
Alias Receive-FTPItem 1.6.1.2 PSFTP
Alias Send-FTPItem 1.6.1.2 PSFTP
Function Get-SFTPChildItem 2.0.2 Posh-SSH
Function Get-SFTPContent 2.0.2 Posh-SSH
...
PS C:\src\t\ftp> Remove-Item -Path Alias:Move-FTPItem
Remove-Item : Cannot find path 'Alias:\Move-FTPItem' because it does not exist.
At line:1 char:1
+ Remove-Item -Path Alias:Move-FTPItem
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (Alias:\Move-FTPItem:String) [Remove-Item], ItemNotFoundException
+ FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.RemoveItemCommand
PSFTP
上了这台机器。使用
Uninstall-Module
,即使在以管理员身份运行下,也不起作用。如何正确卸载此模块?
PS C:\Windows\system32> Uninstall-Module -Name PSFTP
PackageManagement\Uninstall-Package : No match was found for the specified search criteria and module names 'PSFTP'.
At C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\1.0.0.1\PSModule.psm1:2157 char:21
+ ... $null = PackageManagement\Uninstall-Package @PSBoundParameters
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (Microsoft.Power...ninstallPackage:UninstallPackage) [Uninstall-Package], Exception
+ FullyQualifiedErrorId : NoMatchFound,Microsoft.PowerShell.PackageManagement.Cmdlets.UninstallPackage
C:\Windows\System32\WindowsPowerShell\v1.0\Modules\PSFTP
最佳答案
Remove-Module
卸载模块,但不会将其从文件系统中删除。
与 $PSModuleAutoLoadingPreference
默认情况下( All
),这意味着 该模块及其命令仍可被发现 ,即使模块当前未加载(导入)。
碰巧的是,这个特定的模块只导出别名,这就是为什么只有它们出现在 Get-Command *ftp*
的输出中的原因。 .
虽然 Get-Command
能够从当前未加载(导入)的模块中找到别名,此类别名在 Alias:
中不存在驱动器并尝试使用 Remove-Item Alias:<name>
删除它们或者,更直接地,Remove-Alias <name>
失败。
如果你想要 卸载模块 在安装新版本之前 - 假设你已经从 PowerShell Gallery 安装它,正如你所说(见下面的更新) - 使用 Uninstall-Module
.
也就是说,为了更新已安装的模块 , 只是 使用 Update-Module
.
注意这个执行并排安装 ,但是:虽然最新版本确实生效,但之前的版本会保留,如果需要,需要手动删除。
如果未从 PowerShell 库安装模块 , 需要手动删除其文件夹 :
PackageManagement
为例,它有模块 PowerShellGet
作为依赖):Get-Module -ListAvailable |
Where-Object { $_.RequiredModules.Name -contains 'PackageManagement' }
#requires -Module
指令、 using -module statements
、 Import-Module
调用,或简单地调用依赖于自动加载模块的模块命令)。 (Get-Module -ListAvailable PowerShellGet).RequiredModules
(如果没有依赖就没有输出),Find-Module -IncludeDependencies PowerShellGet
(这将首先列出模块本身,然后是其依赖项)。 C:\Windows\System32\WindowsPowerShell\v1.0\Modules\PSFTP
绝对是这种情况.PSFTP
不应该安装在那里,因为 C:\Windows\System32\WindowsPowerShell\v1.0\Modules
( $PSHOME\Modules
) 是为系统模块(PowerShell 附带的模块)保留的。 -WhatIf
以执行实际删除):Remove-Item -Recurse -Force -WhatIf C:\Windows\System32\WindowsPowerShell\v1.0\Modules\PSFTP
PSFTP
):Split-Path (Get-Module -ListAvailable PSFTP).Path
-ListAvailable
确保即使当前未导入该模块,也能找到该模块,但前提是它位于 $env:PSModulePath
中列出的目录之一中。 . -ListAvailable
为了找到它。 Send-FTPItem
):Split-Path (Get-Command Send-FTPItem).Module.Path
Get-Command
查找包含模块当前是否已导入的命令。 关于powershell - 如何删除这些别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50752029/
上下文:我已经在域根上设置了一个用于 GIS 测试和 dokuwiki 的虚拟机服务器。我想在子域上提供 gis Web 应用程序,这样 dokuwiki url 重命名就不会发生冲突(而且感觉更干净
这个问题在这里已经有了答案: If two variables point to the same object, why doesn't reassigning one variable affe
代码如下: Select Branch.BranchName, Sum(Inventory.OnHand) From Inventory, Branch Inventory.BranchNum = B
我的目标是创建一种“Javascript 库”,如果您可以这样调用它的话。我打算在浏览网页时使用它来操作页面,将其作为 greasemonkey 脚本动态加载。这个想法是将“win”映射到window
是否可以在 javascript 中以某种方式为本地变量分配别名/引用? 我的意思是类似 C 的东西: function foo() { var x = 1; var y = &x; y+
SQLite 别名 您可以暂时把表或列重命名为另一个名字,这被称为别名。使用表别名是指在一个特定的 SQLite 语句中重命名表。重命名是临时的改变,在数据库中实际的表的名称不会改变。 列别名用来
我有以下导入(在同一个 TS 源文件中): import {Vector as sourceVector} from "ol/source"; import {Vector} from "ol/lay
我想弄清楚 this 到底是什么行是在这个 github json 项目的 cmake 文件中, add_library(${NLOHMANN_JSON_TARGET_NAME} INTERFACE)
使用集合时如何创建别名 (AS)。 $collection->addAttributeToSelect('total_qty') 可以这样做: $collection->getSelect()->co
这个问题在这里已经有了答案: Pass an argument to a Git alias command (4 个回答) 去年关闭。 我的团队在不同的分支上工作,通常,我需要快速从分支切换来帮助他
我正在寻找一种向我的 vimrc 添加自定义命令或别名的方法,以便快速切换到 Vim 中的不同目录。我曾经设置过一些东西,但丢失了那个配置。这是用于 Linux 设置。 基本上,我想设置一个别名(如果
我使用 Delphi 和 Firebird 1.5 开发了一个应用程序,其中服务器与应用程序位于同一台计算机上。我现在正在将应用程序部署到另一个站点,其中 Firebird 服务器( super 服务
我创建了一个全新的 React 应用 create-react-app demo 我需要为某些目录/组件创建别名,例如: import { Header } from '@uicomponents'
我正在尝试打印有向图,并且不断更改各种节点属性,例如颜色和形状。有什么方法可以使用一次定义并用于多个节点的变量?理想情况下,我想要这样的东西: digraph g { building_color =
server { listen 80; server_name pwta; root html; location /test/{ alia
我想匹配多个数组,并在匹配时构建另一个数组。该键可以在任意数量的数组中匹配,也可以根本不匹配。 [ [{ 'a': 13 }, { 'b': 62 }, { 'c': 93 }, { 'd': 52
经过审查后,我需要更改一些代码并将所有更改代码重新推送到远程分支上。 所以我想使用别名(例如:git repushall)在 git 上自动化这些不同的命令: git add . git commit
我有一个这样的查询: select a1.name, b1.info from (select name, id, status from table1 a) as a1 righ
我想给一些 racket 2htdp 函数/宏起别名,这样我就可以为我的 child 将它们翻译成另一种语言。 我可以简单地用define给函数起别名。我在使用 big-bang 结构时遇到了麻烦;例
经过审查后,我需要更改一些代码并将所有更改代码重新推送到远程分支上。 所以我想使用别名(例如:git repushall)在 git 上自动化这些不同的命令: git add . git commit
我是一名优秀的程序员,十分优秀!