在 Windows PowerShell 中:
>ssh -i \Path\To\key.pem user@server.com像冠军一样工作。
>Set-alias sshalias "ssh -i \Path\To\key.pem user@server.com"保存别名时没有错误。
>sshalias 返回以下错误:
sshalias : The module 'ssh -i ' could not be loaded. For more information, run 'Import-Module ssh -i '.
At line:1 char:1
+ sshalias
+ CategoryInfo : ObjectNotFound: (ssh -i \Path\To\Key.pem user@server.com:String) [], CommandNotFoundException
`+ FullyQualifiedErrorId : CouldNotAutoLoadModule`
Run Code Online (Sandbox Code Playgroud)
我缺少什么?
当我尝试删除它时,系统会报错。我当然知道该命令Stop-Process可以帮助我终止该进程。但我不知道哪些进程正在使用它。谁能告诉我如何找到正在使用指定文件的进程?
PS:这是我的powershell版本:

这种情况经常发生,涉及尝试运行“rm -r”等命令或类似的命令,并且您意识到您没有在该 PowerShell 窗口上提升到管理员权限。
通常,您必须打开开始菜单,选择 PowerShell 图标,然后右键单击它以选择“以管理员身份运行”。
我如何避免所有这些步骤?
我正在尝试使用 powershell ps 查找进程执行信息。有一个属性“SI”,其值通常类似于 0、2、10 等。具体来说,我在 powershell 中输入以下内容:
PS C:\Users\> ps -pid 10860
Handles NPM(K) PM(K) WS(K) CPU(s) Id SI ProcessName
------- ------ ----- ----- ------ -- -- -----------
175 12 23068 12276 0.20 10860 2 geckodriver
Run Code Online (Sandbox Code Playgroud)
谢谢!没有代码。
我找不到此 SI 属性的文档。有人可以帮忙吗?谢谢
我想将包含许多子文件夹和文件 xe2\x80\x94 的文件夹 \xe2\x80\x94 从一个 NTFS 驱动器移动到另一个 NTFS 驱动器,但我需要从新目标驱动器上的原始源保留元数据日期和时间戳属性值。
\n\n问题:我注意到,当我完成任务的各种复制操作时,“创建日期”、“上次修改日期”等的时间戳值不会保留在至少包含一个文件夹/文件的文件夹中。我还注意到,移动的空文件夹最终会自动更改其创建日期,以与其余文件夹以及在新驱动器上的空文件夹中放置某些内容时保持一致。
\n\n\n\n我的努力:我已经尝试了几乎所有可以通过 Google 找到的关于此主题的内容(Robocopy、Richcopy、Microsoft SyncToy、Total Commander、Free Commander...以及很多很多...)\xe2\x80\x94all产生相对相同的结果。没有任何东西能够对被移动的源进行全面、100% 的保存。Robocopy 和 Richcopy(以及“Commanders”)很接近,但我仍然遇到问题(在所有情况下),即创建日期被错误地“保留”,最后修改的日期根本无法保留,等等。唯一真正的承诺我还看到了除此之外的……Powershell。
\n\n我偶然发现了这个链接:
\n\n\n\n...使用这个脚本:
\n\nfunction Move-FileWithTimestamp {\n[cmdletbinding()]\nparam(\n[Parameter(Mandatory=$true,Position=0)][string]$Path,\n[Parameter(Mandatory=$true,Position=1)][string]$Destination\n)\n\n$origLastAccessTime = ( Get-Item $Path ).LastAccessTime\n$fileName = ( Get-Item $Path ).Name\nMove-Item -Path $Path -Destination $Destination\n$(Get-Item ($Destination+\'\\\'+$fileName)).LastAccessTime = \n$origLastAccessTime\n}\nRun Code Online (Sandbox Code Playgroud)\n\n上面线程中的脚本仍然没有与我列出的程序执行任何不同,但至少在这里,我有一个平台,我可以在其中更改/自定义/调整一些东西以满足我的确切需求。因此,我用我在这个领域有限的知识做了我能做的(即用“.CreationTime”更改“.LastAccessTime”,用“LastWriteTime”交换“.LastAccessTime”等),并最终相对接近保留所有时间戳(我相信在某一时刻,我已将上次修改、上次访问和上次保存保存在我的测试文件夹中)。但是,我似乎仍然无法正确保留创建日期,并且我能够用其他所有内容完成的工作显然仅适用于单独的测试文件夹(没有其他内容,例如其中的子文件夹......但这就是只是因为我不知道如何在主目录之外编写这些内容的脚本)。
\n\n当谈到这个问题时,我感到很困惑,所以我想知道是否有人想解决这个问题。
\n\n更新:这就是我现在所在的位置:
\n\nfunction Move-FileWithTimestamp {\n[cmdletbinding()]\nparam(\n[Parameter(Mandatory=$true,Position=0)][string]$Path,\n[Parameter(Mandatory=$true,Position=1)][string]$Destination\n)\n$origCreationTime = ( Get-Item $Path ).CreationTime\n$origLastWriteTime = ( Get-Item $Path ).LastWriteTime\n$origLastAccessTime = ( Get-Item $Path …Run Code Online (Sandbox Code Playgroud) 我是 Powershell 新手,所以了解不多。
我有一个菜单,有 2 个选项(“添加 IP”和“列出 IP”)
“添加IP”代码是:
$UIP = Read-Host "Enter IP to whitelist"
$whitelist += $UIP
Run Code Online (Sandbox Code Playgroud)
“列表IP”代码是:
Write-Host "==== $Title Whitelist IPs ===="
Write-Host
Write-Host $whitelist
Run Code Online (Sandbox Code Playgroud)
唯一的问题是,当我列出数组时,它会在同一行上列出所有内容,如下所示:
192.168.0.1192.168.0.2
Run Code Online (Sandbox Code Playgroud)
当我想像这样显示时:
192.168.0.1
192.168.0.2
Run Code Online (Sandbox Code Playgroud) 我需要| findstr SomePATH搜索程序是否访问并立即关闭特定路径。在 Linux 上,我会使用myprogram | strace 2>&1 | grep SomPATH.
但是 Windows\xe2\x80\xaf 上的\xe2\x80\x99 相当于什么?
\n每当我尝试打开 Powershell 时,它就是打不开。当我尝试从 cmd 打开它时,出现以下错误:
外壳无法启动。初始化期间发生故障:“System.Net.ServicePointManager”的类型初始值设定项引发异常。
我尝试过的事情:
如果有任何帮助的话,32 位版本的 powershell 出于某种原因仍然可以工作。
这是错误:Get-AppxPackage -AllUsers
Get-AppxPackage : The service cannot be started, either because it is disabled or because it has no enabled devices
associated with it.
The service cannot be started, either because it is disabled or because it has no enabled devices associated with it.
At line:1 char:1
+ Get-AppxPackage
+ ~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Get-AppxPackage], Exception
+ FullyQualifiedErrorId : System.Exception,Microsoft.Windows.Appx.PackageManager.Commands.GetAppxPackageCommand
Run Code Online (Sandbox Code Playgroud)
通过 services.msc 禁用的服务是什么?它是哪一项?
这是我的test.ps1:
Start-Process -FilePath 'CMD.EXE' -NoNewWindow -ArgumentList '/C START /B PING.EXE google.com -t > logfile.txt 2>&1'
echo "Finished."
Run Code Online (Sandbox Code Playgroud)
该测试是对 google 的无限 ping,这对于我需要检查的条件来说是一个很好的测试:
logfile.txt [FAILS] <=此解决方案似乎不适用于我的测试,logfile.txt保持在 0 字节尽管我的最终目标相对简单,但这是一个复杂的解决方案。我最终想要的是在 powershell 中重现这个 linux cmd:
ASPNETCORE_ENVIRONMENT=Production ASPNETCORE_URLS=http://*:5000 dotnet run > ${LOGFILE_PATH}.txt 2>&1 &
Run Code Online (Sandbox Code Playgroud)
Windows 中的困难部分似乎是“真正分离进程”。START /B这是我发现的唯一真正能做到这一点的 Windows 功能。但后来我遇到了“输出重定向”问题。由于我需要将其放在 .ps1 文件中,因此我需要将其包装在 .ps1 文件中Start-Process。
powershell ×10
command-line ×3
windows ×3
windows-10 ×3
64-bit ×1
alias ×1
cmd.exe ×1
ps ×1
redirection ×1
services ×1
ssh ×1
strace ×1
uac ×1