Questions in category: PowerShell (PowerShell)
软件 >> Windows >> PowerShell

1. [PowerShell] 使用 get-command 查询某个命令所在路径

Posted by haifeng on 2024-10-10 08:49:39 last update 2024-10-10 08:57:34 | Answers (0) | 收藏


 

where 命令在 PowerShell 中并不是不起作用, 而是必须要加后缀 .exe. 
 
PS C:\Users\haife> where mysql
PS C:\Users\haife> where.exe mysql
C:\Program Files\MySQL\MySQL Server 8.4\bin\mysql.exe
也可以使用 get-command 
 
PS C:\Users\haife> (get-command mysql.exe).Path
C:\Program Files\MySQL\MySQL Server 8.4\bin\mysql.exe

这里 Path 也可以改为 source

PS C:\Users\haife> (get-command mysql).source
C:\Program Files\MySQL\MySQL Server 8.4\bin\mysql.exe 

 

get-command 可以缩写为 gcm

 

PS C:\Users\haife> (gcm mysql).Path
C:\Program Files\MySQL\MySQL Server 8.4\bin\mysql.exe
 
 

参考

windows - Equivalent of cmd's "where" in powershell - Super User

 

 

 

2. [PowerShell] 重启电脑

Posted by haifeng on 2024-10-09 11:34:29 last update 2024-10-09 11:34:29 | Answers (0) | 收藏


重启电脑使用 Restart-Computer

 

参见 Restart-Computer (Microsoft.PowerShell.Management) - PowerShell | Microsoft Learn

 

3. 检查 PowerShell 的版本

Posted by haifeng on 2023-09-30 23:10:49 last update 2023-09-30 23:10:49 | Answers (0) | 收藏


打开 PowerShell, 键入 $PSVersionTable,  显示如下:

--------------------------------------------

Name                           Value                                                                                                
----                           -----                                                                                                
PSVersion                      5.1.19041.3031                                                                                       
PSEdition                      Desktop                                                                                              
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}                                                                              
BuildVersion                   10.0.19041.3031                                                                                      
CLRVersion                     4.0.30319.42000                                                                                      
WSManStackVersion              3.0                                                                                                  
PSRemotingProtocolVersion      2.3                                                                                                  
SerializationVersion           1.1.0.1 

4. Windows 安装 WSL 及 WSL2

Posted by haifeng on 2021-03-10 16:36:43 last update 2024-10-09 14:52:27 | Answers (0) | 收藏


使用管理员打开 PowerShell

输入下面的命令 

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart


Windows PowerShell
版权所有 (C) Microsoft Corporation。保留所有权利。
尝试新的跨平台 PowerShell https://aka.ms/pscore6
PS C:\Windows\system32> dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
部署映像服务和管理工具
版本: 10.0.18362.1379
映像版本: 10.0.18363.1379
启用一个或多个功能
[==========================100.0%==========================]
操作成功完成。
PS C:\Windows\system32>

Remark:  /norestart  表示不重启 (no restart)

在安装 WSL 2 之前, 必须启用“虚拟机平台”可选功能

PS C:\Windows\system32> dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
部署映像服务和管理工具
版本: 10.0.18362.1379
映像版本: 10.0.18363.1379
启用一个或多个功能
[==========================100.0%==========================]
操作成功完成。

 

执行完上面的命令, 重新启动电脑.

 


或者执行下面的命令

 

PS C:\WINDOWS\system32> Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
是否立即重启计算机以完成此操作?
[Y] Yes  [N] No  [?] 帮助 (默认值为“Y”): n
 
 
Path          :
Online        : True
RestartNeeded : True                                                                                                                                                                                                                                                                                                                                                                      
 
PS C:\WINDOWS\system32> Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform
是否立即重启计算机以完成此操作?
[Y] Yes  [N] No  [?] 帮助 (默认值为“Y”):

更新WSL

PS C:\WINDOWS\system32> wsl --update
正在安装: 适用于 Linux 的 Windows 子系统
已安装 适用于 Linux 的 Windows 子系统。
 
PS C:\WINDOWS\system32> wsl --set-default-version 2
有关与 WSL 2 关键区别的信息,请访问 https://aka.ms/wsl2
 
操作成功完成。
 

PS C:\WINDOWS\system32> wsl --list --online
以下是可安装的有效分发的列表。
使用 'wsl.exe --install ' 安装。
 
NAME                            FRIENDLY NAME
Ubuntu                          Ubuntu
Debian                          Debian GNU/Linux
kali-linux                      Kali Linux Rolling
Ubuntu-18.04                    Ubuntu 18.04 LTS
Ubuntu-20.04                    Ubuntu 20.04 LTS
Ubuntu-22.04                    Ubuntu 22.04 LTS
Ubuntu-24.04                    Ubuntu 24.04 LTS
OracleLinux_7_9                 Oracle Linux 7.9
OracleLinux_8_7                 Oracle Linux 8.7
OracleLinux_9_1                 Oracle Linux 9.1
openSUSE-Leap-15.6              openSUSE Leap 15.6
SUSE-Linux-Enterprise-15-SP5    SUSE Linux Enterprise 15 SP5
SUSE-Linux-Enterprise-15-SP6    SUSE Linux Enterprise 15 SP6
openSUSE-Tumbleweed             openSUSE Tumbleweed
 

 

 

State of openSUSE_Tumbleweed_images for Virtualization:WSL / kiwi-images-wsl - openSUSE Build Service

/tumbleweed/appliances - openSUSE Download

 

 

 

haifeng@HP-ENVY-LAPTOP:~> zypper in -t pattern wsl_systemd
Root privileges are required to run this command.
 
 

 


References:

https://zhuanlan.zhihu.com/p/224753478

openSUSE:WSL - openSUSE Wiki

 

5. 在PowerShell中提取一个类的定义

Posted by haifeng on 2020-09-26 11:18:04 last update 2020-09-26 11:26:47 | Answers (0) | 收藏


PS C:\Users\haife> Get-WmiObject -query "SELECT * FROM meta_class WHERE __class = 'Win32_LogicalDisk'"


   NameSpace:ROOT\cimv2

Name                                Methods              Properties
----                                -------              ----------
Win32_LogicalDisk                   {SetPowerState, R... {Access, Availability, BlockSize, Caption...}

 


如果执行  Get-WmiObject -query "SELECT * FROM meta_class"  ,则返回当前命名空间中所有的类定义。

 

Reference:

https://docs.microsoft.com/zh-cn/windows/win32/wmisdk/retrieving-a-class