无忧启动论坛

标题: 从win7升级的powershell5.1缺少一些命令 [打印本页]

作者: 2013kyj    时间: 2024-9-14 22:40
标题: 从win7升级的powershell5.1缺少一些命令

我按照下面的教程成功win7自带的2.0升级到了5.1, 但是很多关于磁盘的命令不能用, 例如: Get-Partition, Get-Disk 等, 有大佬知道为什么吗? 在win10下的powershell5.1就可以使用这些命令.
http://bbs.wuyou.net/forum.php?m ... d=439540&page=1

作者: wu733    时间: 2024-9-15 00:03
你且说说你是怎么输入这些命令的?
作者: wu733    时间: 2024-9-15 00:29
需要安装模块,建议你详细学习Powershell教程
比如:
安装模块 MSOnline:Install-Module MSOnline
导入模块 MSOnline:Import-Module MSOnline
连接到 MS Online 服务:Connect-MsolService Connect-MsolService
作者: 2013kyj    时间: 2024-9-15 06:02
wu733 发表于 2024-9-15 00:29
需要安装模块,建议你详细学习Powershell教程
比如:
安装模块 MSOnline:Install-Module MSOnline

会报下面的错误
PS C:\Users\Administrator> Install-Module MSOnline
无法将“Install-Module”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后重试。
所在位置 行:1 字符: 15
+ Install-Module <<<<  MSOnline
    + CategoryInfo          : ObjectNotFound: (Install-Module:String) [], ParentContainsErrorRecordException

    + FullyQualifiedErrorId : CommandNotFoundException
作者: 2013kyj    时间: 2024-9-15 06:03
wu733 发表于 2024-9-15 00:29
需要安装模块,建议你详细学习Powershell教程
比如:
安装模块 MSOnline:Install-Module MSOnline

就是打开powershell后, 直接输入命令
作者: 2013kyj    时间: 2024-9-15 06:48
看来无解了, win7不支持这个模块, 下面是ai答的
你遇到的错误 `无效命名空间` 表示 PowerShell 无法访问 `Get-Partition` 所需的 WMI 命名空间。这通常发生在以下几种情况下:

1. **PowerShell 版本问题**
   `Get-Partition` 是在 PowerShell 4.0 及更高版本中引入的。如果你使用的是 PowerShell 2.0 或 3.0,那么这个 cmdlet 不可用。

2. **Windows 版本问题**
   `Get-Partition` 需要在 Windows 8 / Windows Server 2012 及更高版本的操作系统上运行。如果你的操作系统版本较旧,那么这个 cmdlet 可能不可用。

3. **模块问题**
   如果 PowerShell 版本和 Windows 版本都符合要求,可能是 `Storage` 模块没有正确安装或加载。

### 解决步骤

1. **检查 PowerShell 版本**
   确认你正在使用的 PowerShell 版本:

   ```powershell
   $PSVersionTable.PSVersion
   ```

   如果版本低于 4.0,请考虑升级 PowerShell。

2. **检查 Windows 版本**
   确保你运行的操作系统版本支持 `Get-Partition`。你可以检查操作系统版本:

   ```powershell
   [System.Environment]::OSVersion
   ```

   `Get-Partition` 需要 Windows 8 / Windows Server 2012 及更高版本。

3. **检查模块和命名空间**
   确保 `Storage` 模块已正确安装和导入。如果你已经确定 `Storage` 模块可用,可以尝试重新加载它:

   ```powershell
   Import-Module Storage
   ```

4. **使用 WMI 或 Disk Management 命令**
   如果你无法使用 `Get-Partition`,可以使用 WMI 查询或 `diskpart` 命令来查看分区信息:

   **使用 WMI 查询分区信息:**

   ```powershell
   Get-WmiObject -Query "SELECT * FROM Win32_DiskPartition"
   ```

   **使用 diskpart:**

   ```powershell
   diskpart
   ```

   在 `diskpart` 提示符下,运行:

   ```diskpart
   list disk
   ```

   ```diskpart
   select disk X  # 替换 X 为实际磁盘号
   ```

   ```diskpart
   list partition
   ```

5. **升级操作系统或 PowerShell**
   如果你的 PowerShell 版本或操作系统不支持 `Get-Partition`,考虑升级到最新版本以获得所需功能。

### 例子

在 PowerShell 4.0 或更高版本中,使用 `Get-Partition` 示例:

```powershell
Get-Partition
```

确保你的操作系统和 PowerShell 版本符合 `Get-Partition` 的要求。如果升级不可行,你可以使用上述的 WMI 查询或 `diskpart` 命令作为替代。
作者: wu733    时间: 2024-9-15 07:24
本帖最后由 wu733 于 2024-9-15 07:29 编辑
2013kyj 发表于 2024-9-15 06:02
会报下面的错误
PS C:%users\Administrator> Install-Module MSOnline
无法将“Install-Module”项识别 ...

命令行输入:Install-Module MSOnline
选择"Y",导入NuGet提供的程序
我的可以啊,不知道你哪里出了问题





2024-09-15_072336.jpg (96.45 KB, 下载次数: 40)

2024-09-15_072336.jpg

作者: wu733    时间: 2024-9-15 07:47
2013kyj 发表于 2024-9-15 06:48
看来无解了, win7不支持这个模块, 下面是ai答的
你遇到的错误 `无效命名空间` 表示 PowerShell 无法访问 ` ...

我不知道你用的什么AI,我百度搜索都得到了答案

2024-09-15_074650.jpg (209.49 KB, 下载次数: 43)

2024-09-15_074650.jpg

作者: 2013kyj    时间: 2024-9-15 09:28
wu733 发表于 2024-9-15 07:47
我不知道你用的什么AI,我百度搜索都得到了答案

感谢回复, 我用的chatGPT,
你确认可以使用那些磁盘的命令吗?
作者: 2013kyj    时间: 2024-9-15 09:32
wu733 发表于 2024-9-15 07:47
我不知道你用的什么AI,我百度搜索都得到了答案

按百度的答案也不行

PS C:\Users\Administrator> Install-WindowsFeature RSAT-Storage-Tools

Install-WindowsFeature : The term 'Install-WindowsFeature' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of t
he name, or if a path was included, verify that the path is correct and try again.
At line:1 char:1
+ Install-WindowsFeature RSAT-Storage-Tools
+ ~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (Install-WindowsFeature:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException
作者: wu733    时间: 2024-9-15 09:43
2013kyj 发表于 2024-9-15 09:28
感谢回复, 我用的chatGPT,
你确认可以使用那些磁盘的命令吗?

7楼我都能运行正常,而你却不能,你肯定哪里出了问题
作者: wu733    时间: 2024-9-15 09:46
2013kyj 发表于 2024-9-15 09:28
感谢回复, 我用的chatGPT,
你确认可以使用那些磁盘的命令吗?

你确定导入了我那帖子开始提到的“允许PowerShell执行脚本权限”注册表了吗?
作者: 2013kyj    时间: 2024-9-15 09:53
wu733 发表于 2024-9-15 09:46
你确定导入了我那帖子开始提到的“允许PowerShell执行脚本权限”注册表了吗?

权限是开放的
作者: wu733    时间: 2024-9-15 09:53
本帖最后由 wu733 于 2024-9-15 09:56 编辑
2013kyj 发表于 2024-9-15 09:53
权限是开放的

你4楼的“无法将“Install-Module”项识别为 cmdlet、函数、脚本文件或可运行程序的名称......”
这个错误表明PowerShell无法识别Install-Module这个命令。通常,这是因为PowerShellGet模块没有安装在你的系统上。Install-Module是PowerShellGet模块中的一个cmdlet,用于安装PowerShell模块。

作者: 2013kyj    时间: 2024-9-15 09:58
wu733 发表于 2024-9-15 09:53
你4楼的“无法将“Install-Module”项识别为 cmdlet、函数、脚本文件或可运行程序的名称......”
这个错 ...

正在执行 Install-Module MSOnline  有进度, 但是太慢了, 安装了这个就可以用磁盘相关的命令了?
作者: wu733    时间: 2024-9-15 10:09
本帖最后由 wu733 于 2024-9-15 10:15 编辑
2013kyj 发表于 2024-9-15 09:58
正在执行 Install-Module MSOnline  有进度, 但是太慢了, 安装了这个就可以用磁盘相关的命令了?

Win7的powershell5.1功能不全,更新PowerShellGet模块,以及启用TLS1.2就可以了。建议你参考:https://learn.microsoft.com/zh-cn/powershell/gallery/powershellget/update-powershell-51?view=powershellget-3.x

2024-09-15_101517.jpg (78.7 KB, 下载次数: 44)

2024-09-15_101517.jpg

作者: 2013kyj    时间: 2024-9-15 10:51
wu733 发表于 2024-9-15 10:09
Win7的powershell5.1功能不全,更新PowerShellGet模块,以及启用TLS1.2就可以了。建议你参考:https://le ...

模块都更新了, 没有百度答案中提到的两个模块,
ChatGPT的答案提到的是, 磁盘相关的模块不支持Win7, 只支持Win8及以上
所以我一直问你, 你的powershell5.1能不能用Get-Partition相关的命令
作者: wondaol    时间: 2024-9-15 10:51
应该是不支持
作者: 2013kyj    时间: 2024-9-15 10:52
wu733 发表于 2024-9-15 10:09
Win7的powershell5.1功能不全,更新PowerShellGet模块,以及启用TLS1.2就可以了。建议你参考:https://le ...

我把win10下PS5.1相关的磁盘模块导出再导入到win7下都无法使用
作者: wu733    时间: 2024-9-15 11:22
本帖最后由 wu733 于 2024-9-15 11:27 编辑
2013kyj 发表于 2024-9-15 10:51
模块都更新了, 没有百度答案中提到的两个模块,
ChatGPT的答案提到的是, 磁盘相关的模块不支持Win7, 只 ...

我是看到有人在Win7上运行过Get-Disk,以为升级模块就可以了

2024-09-15_112732.jpg (251.67 KB, 下载次数: 46)

2024-09-15_112732.jpg

作者: wu733    时间: 2024-9-15 11:26
2013kyj 发表于 2024-9-15 10:52
我把win10下PS5.1相关的磁盘模块导出再导入到win7下都无法使用

PS2.0可以运行Get-Partition, Get-Disk么?
作者: wu733    时间: 2024-9-15 11:44
使用Get-command查询了下,确实没有Get-Partition, Get-Disk等命令
作者: 2013kyj    时间: 2024-9-15 12:02
wu733 发表于 2024-9-15 11:22
我是看到有人在Win7上运行过Get-Disk,以为升级模块就可以了

截图中的ps窗口一看就是Win10风格的,
作者: 2013kyj    时间: 2024-9-15 12:02
wu733 发表于 2024-9-15 11:44
使用Get-command查询了下,确实没有Get-Partition, Get-Disk等命令

现在已经确定, win7下升级的ps5.1, 不支持磁盘相关的模块,
作者: guong    时间: 2024-9-15 12:12
来学习下
作者: placeholder    时间: 2024-9-15 19:13
建议直接用powershell 7.2,支持win7的最后版本
https://github.com/PowerShell/PowerShell/releases/tag/v7.2.23
作者: wu733    时间: 2024-9-15 19:16
placeholder 发表于 2024-9-15 19:13
建议直接用powershell 7.2,支持win7的最后版本
https://github.com/PowerShell/PowerShell/releases/tag/ ...

PS7.2支持楼主所说的Get-Partition, Get-Disk等命令?
作者: placeholder    时间: 2024-9-15 19:25
wu733 发表于 2024-9-15 19:16
PS7.2支持楼主所说的Get-Partition, Get-Disk等命令?

不清楚,你自己试一下
作者: wu733    时间: 2024-9-15 19:29
placeholder 发表于 2024-9-15 19:25
不清楚,你自己试一下

我估计还是不支持,巨硬故意的
作者: S_ingularity    时间: 2024-9-15 22:58
本帖最后由 S_ingularity 于 2024-9-15 23:00 编辑

有没有可能是hyperv没安装的原因呢

作者: S_ingularity    时间: 2024-9-15 22:58
感谢分享
作者: 2013kyj    时间: 2024-9-16 11:58
wu733 发表于 2024-9-15 19:29
我估计还是不支持,巨硬故意的

绝对不支持, PS7是跨平台优化, 磁盘那些操作用的还是PS5的模块, 所以只能想办法找到磁盘模块的相关的依赖, 移植到Win7
作者: 2013kyj    时间: 2024-9-16 12:00
S_ingularity 发表于 2024-9-15 22:58
有没有可能是hyperv没安装的原因呢

估计应该没关系, 我把win10的PS5磁盘模块导出, 然后再导入到Win7PS5中, 会报错: 无效命名空间, PowerShell 无法访问 `Get-Partition` 所需的 WMI 命名空间
作者: yzqmxh    时间: 2024-9-16 13:04
学习了
作者: S_ingularity    时间: 2024-9-17 00:47
2013kyj 发表于 2024-9-16 12:00
估计应该没关系, 我把win10的PS5磁盘模块导出, 然后再导入到Win7PS5中, 会报错: 无效命名空间, PowerShel ...

好吧,我之前遇到类似的,上网搜需要hyperv
作者: 2013kyj    时间: 2024-9-18 21:46
下列模块win7拥有:
AppLocker
BitsTransfer
CimCmdlets
ISE
Microsoft.PowerShell.Archive
Microsoft.PowerShell.Diagnostics
Microsoft.PowerShell.Host
Microsoft.PowerShell.LocalAccounts
Microsoft.PowerShell.Management
Microsoft.PowerShell.ODataUtils
Microsoft.PowerShell.Security
Microsoft.PowerShell.Utility
Microsoft.WSMan.Management
NetworkSwitchManager
PackageManagement
PowerShellGet
PSDesiredStateConfiguration
PSDiagnostics
PSScheduledJob
PSWorkflow
PSWorkflowUtility
TroubleshootingPack
----------------------------------------------
下列模块win7中没有,而win8.1中有:
win10中也增加了少量模块。建议使用win10最新版。
----------------------------------------------
Appx
BranchCache
Defender
Kds
NetLbfo
NetEventPacketCapture
NetConnection
NetAdapter
MsDtc
MMAgent
StartScreen
SmbWitness
SmbShare
SecureBoot
ScheduledTasks
TrustedPlatformModule
AppBackgroundTask
AssignedAccess
BitLocker
DirectAccessClientComponents
Dism
DnsClient
International
iSCSI
NetNat
NetQos
NetSecurity
NetSwitchTeam
NetTCPIP
NetworkConnectivityStatus
NetworkTransition
PcsvDevice
PKI
PrintManagement
Storage
TLS
VpnClient
Wdac
WindowsDeveloperLicense
WindowsErrorReporting
WindowsSearch





欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) Powered by Discuz! X3.3