使用 PowerShell 格式化磁盘而不提示确认
Formatting a disk using PowerShell without prompting for confirmation
我已将数据磁盘添加到 Azure 虚拟机,我需要为它们创建一个卷。
我使用以下代码创建了卷:
$disk = Get-Disk | where-object PartitionStyle -eq "RAW"
$disk | Initialize-Disk -PartitionStyle GPT
$partition = $disk | New-Partition -UseMaximumSize -DriveLetter F
$partition | Format-Volume -Confirm:$false -Force
创建卷时,在格式化磁盘之前要求确认。
我想避开这个确认框。我试过了 -Confirm:$false -Force
但它仍然提示确认。
看来这可能是 Format-Volume
如何处理 -Confirm 的错误,如此处讨论:https://windowsserver.uservoice.com/forums/301869-powershell/suggestions/11088429-format-volume-force-parameter-does-not-work
建议的解决方法是在开始之前设置 $confirmpreference = 'none'
。
您可能还想先将当前的 $confirmpreference 获取到一个变量中,然后再将其恢复到原来的状态。例如:
$disk = Get-Disk | where-object PartitionStyle -eq "RAW"
$disk | Initialize-Disk -PartitionStyle GPT
$partition = $disk | New-Partition -UseMaximumSize -DriveLetter F
$currentconfirm = $confirmpreference
$confirmpreference = 'none'
$partition | Format-Volume -Force
$confirmpreference = $currentconfirm
这解决了我的问题。使用以下代码时不会出现确认弹出窗口。
$disk = Get-Disk | where-object PartitionStyle -eq "RAW"
Initialize-Disk -Number $disk.Number -PartitionStyle MBR -confirm:$false
New-Partition -DiskNumber $disk.Number -UseMaximumSize -IsActive | Format-Volume -FileSystem NTFS -NewFileSystemLabel "Local Disk" -confirm:$False
Set-Partition -DiskNumber $disk.Number -PartitionNumber 1 -NewDriveLetter F
Stop-Service -Name ShellHWDetection
$Disk = Get-Disk 2
# $Disk | Clear-Disk -RemoveData -Confirm:$false
$Disk | Initialize-Disk -PartitionStyle MBR
$Disk | New-Partition -UseMaximumSize -DriveLetter T | Format-Volume -FileSystem NTFS -NewFileSystemLabel "DiskLevel" -Confirm:$false -Force
Start-Service -Name ShellHWDetection
Above code worked for me Stop and Start of ShellHWDetection is the key here
Clear-Disk $DiskNum -RemoveData -Confirm:$false
$path="d:\vhd\newvhd.vhdx"
$newVHD=New-VHD -Path $path -Dynamic -SizeBytes 2TB | Mount-VHD -NoDriveLetter -Passthru |Initialize-Disk -Passthru |New-Partition -UseMaximumSize |Format-Volume -FileSystem NTFS -Confirm:$false -Force
$driverletter = ls function:[d-z]: -n | ?{ !(test-path $_) } | select -First 1
$newVHD|Get-Partition | Set-Partition -NewDriveLetter ($driverletter.replace(':',''))
我已将数据磁盘添加到 Azure 虚拟机,我需要为它们创建一个卷。
我使用以下代码创建了卷:
$disk = Get-Disk | where-object PartitionStyle -eq "RAW"
$disk | Initialize-Disk -PartitionStyle GPT
$partition = $disk | New-Partition -UseMaximumSize -DriveLetter F
$partition | Format-Volume -Confirm:$false -Force
创建卷时,在格式化磁盘之前要求确认。
我想避开这个确认框。我试过了 -Confirm:$false -Force
但它仍然提示确认。
看来这可能是 Format-Volume
如何处理 -Confirm 的错误,如此处讨论:https://windowsserver.uservoice.com/forums/301869-powershell/suggestions/11088429-format-volume-force-parameter-does-not-work
建议的解决方法是在开始之前设置 $confirmpreference = 'none'
。
您可能还想先将当前的 $confirmpreference 获取到一个变量中,然后再将其恢复到原来的状态。例如:
$disk = Get-Disk | where-object PartitionStyle -eq "RAW"
$disk | Initialize-Disk -PartitionStyle GPT
$partition = $disk | New-Partition -UseMaximumSize -DriveLetter F
$currentconfirm = $confirmpreference
$confirmpreference = 'none'
$partition | Format-Volume -Force
$confirmpreference = $currentconfirm
这解决了我的问题。使用以下代码时不会出现确认弹出窗口。
$disk = Get-Disk | where-object PartitionStyle -eq "RAW"
Initialize-Disk -Number $disk.Number -PartitionStyle MBR -confirm:$false
New-Partition -DiskNumber $disk.Number -UseMaximumSize -IsActive | Format-Volume -FileSystem NTFS -NewFileSystemLabel "Local Disk" -confirm:$False
Set-Partition -DiskNumber $disk.Number -PartitionNumber 1 -NewDriveLetter F
Stop-Service -Name ShellHWDetection
$Disk = Get-Disk 2
# $Disk | Clear-Disk -RemoveData -Confirm:$false
$Disk | Initialize-Disk -PartitionStyle MBR
$Disk | New-Partition -UseMaximumSize -DriveLetter T | Format-Volume -FileSystem NTFS -NewFileSystemLabel "DiskLevel" -Confirm:$false -Force
Start-Service -Name ShellHWDetection
Above code worked for me Stop and Start of ShellHWDetection is the key here
Clear-Disk $DiskNum -RemoveData -Confirm:$false
$path="d:\vhd\newvhd.vhdx"
$newVHD=New-VHD -Path $path -Dynamic -SizeBytes 2TB | Mount-VHD -NoDriveLetter -Passthru |Initialize-Disk -Passthru |New-Partition -UseMaximumSize |Format-Volume -FileSystem NTFS -Confirm:$false -Force
$driverletter = ls function:[d-z]: -n | ?{ !(test-path $_) } | select -First 1
$newVHD|Get-Partition | Set-Partition -NewDriveLetter ($driverletter.replace(':',''))