5

使用 Get-Disk cmdlet 时出现错误

Windows 版本:Microsoft Windows Server 2008 R2 SP1 64b

Windows 2008 R2 powershell 术语“Get-Disk”未被识别为 cmdlet 的名称。我有第 3 版的 Powershell

PS C:\Windows\system32> 获取磁盘

Get-Disk : The term 'Get-Disk' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was 
included, verify that the path is correct and try again.
At line:1 char:1
+ Get-Disk
+ ~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (Get-Disk:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException  

PS C:\Windows\system32> $PSVersionTable`

Name                           Value
----                           -----
WSManStackVersion              3.0
PSCompatibleVersions           {1.0, 2.0, 3.0}
SerializationVersion           1.1.0.1
BuildVersion                   6.2.9200.16398
PSVersion                      3.0
CLRVersion                     4.0.30319.1
PSRemotingProtocolVersion      2.2
4

2 回答 2

7

[只是将评论合并为答案并添加了一点]

我还想Get-Disk在 Azure VM Server 2008 R2 上使用该命令,我安装了 PowerShell 3.0Get-Disk但仍然不可用,然后用谷歌搜索到这个页面。

从这个脚本专家博客链接中提到

注意 Windows 7 的 Windows PowerShell 3.0 版本目前不包含存储模块,因此需要 Windows 8 或 Windows Server 2012。

因此,如果您希望Get-Disk在 Windows Server 2008 R2 上使用,则不能。

相同的 Scripting Guy 链接还提供了可以替代使用的相关 DiskPart 命令。

From an elevated shell:

    DiskPart.exe
    List disk
    Select disk 1—disk 1 being the USB drive
    Clean
    Create partition primary
    Select partition 1—partition 1 being the new partition
    Active
    Format FS=NTFS
于 2013-02-28T03:59:11.570 回答
2

根据您的用例,请注意,您也可以在不使用 cmdlet 的情况下使用Win32_Volume 类在 powershell 中获取有关磁盘的信息。例如,您可以执行以下操作来更改驱动器号:

$drive = gwmi win32_volume -Filter "DriveLetter = 'F:'"
$drive.DriveLetter = "D:"
$drive.Put()
于 2014-02-27T15:31:56.220 回答