
Powershell을 통해 파일 시스템 NTFS로 디스크를 포맷할 수 없습니까?
다음 코드는 형식을 시도할 때까지 작동합니다. 스크립트는 관리자 권한으로 실행됩니다. 파일 시스템이 NTFS가 아닙니다. 블록 크기는 디스크 및 NTFS의 기본값입니다. 포맷 시도 시 지속적으로 액세스가 거부되었습니다. 이 게시물의 날짜를 기준으로 환경은 완전히 패치/업데이트된 Windows 11입니다.
Clear-Disk -Number 6 -RemoveData -Confirm:$false
Initialize-Disk -Number 6 -PartitionStyle GPT -Confirm:$false
New-Partition -DiskNumber 6 -UseMaximumSize -DriveLetter 'T'
Format-Volume -DriveLetter 'T' -FileSystem NTFS -NewFileSystemLabel 'Test' -AllocationUnitSize 4096
예...
PS C:\WINDOWS\system32> Clear-Disk -Number 6 -RemoveData -Confirm:$false
PS C:\WINDOWS\system32> Initialize-Disk -Number 6 -PartitionStyle GPT -Confirm:$false
PS C:\WINDOWS\system32> New-Partition -DiskNumber 6 -UseMaximumSize -DriveLetter 'T'
DiskPath: \\?\usbstor#disk&ven_hitachi_&prod_dk23aa-60&rev_0000#000000000000&0#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}
PartitionNumber DriveLetter Offset Size Type
--------------- ----------- ------ ---- ----
2 T 16777216 5.58 GB Basic
PS C:\WINDOWS\system32> Format-Volume -DriveLetter 'T' -FileSystem NTFS -NewFileSystemLabel 'Test' -AllocationUnitSize 4096
Format-Volume : Access Denied
Activity ID: {adc29ae6-3193-0002-4318-dbb09331d901}
At line:1 char:1
+ Format-Volume -DriveLetter 'T' -FileSystem NTFS -NewFileSystemLabel ' ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : PermissionDenied: (StorageWMI:ROOT/Microsoft/...age/MSFT_Volume) [Format-Volume], CimException
+ FullyQualifiedErrorId : StorageWMI 40001,Format-Volume
파일 시스템을 FAT32로 변경하면 format 명령이 작동합니다. 이것은 나에게 이해가 되지 않습니다. 스크립트가 관리자 권한으로 실행되는 경우.
다른 파일 시스템을 사용한 예...
PS C:\WINDOWS\system32> Format-Volume -DriveLetter 'T' -FileSystem FAT32 -NewFileSystemLabel 'Test' -AllocationUnitSize 4096
DriveLetter FriendlyName FileSystemType DriveType HealthStatus OperationalStatus SizeRemaining Size
----------- ------------ -------------- --------- ------------ ----------------- ------------- ----
T TEST FAT32 Fixed Healthy OK 5.57 GB 5.57 GB
UI 또는 명령 프롬프트를 통해 정확히 동일한 단계를 통해 라고 말하면 diskpart
오류가 없습니다. 어떤 제안이라도 환영합니다.
답변1
실제로 이것은 꽤 뒤틀린 시나리오로 밝혀졌습니다. 광범위한 테스트를 거친 후. 거부된 액세스 오류를 복제하기 위해 실제로 UI(디스크 관리자)를 탐색기(파일 관리자)로 가져왔습니다. PowerShell을 사용하면 문제를 더 빠르고 쉽게 실행할 수 있는 것 같습니다. 일부 프로세스가 백그라운드에서 문제의 디스크를 독점적으로 제어하려고 했습니다. 그래서 Defender, MalwareBytes, 모든 백업 응용 프로그램을 비활성화하고 복원 지점 캡처 프로세스가 실행되고 있지 않은지 확인했으며 어느 시점에서 액세스 거부 문제가 사라졌습니다. 내가 시도하지 않은 유일한 것은 전체 재부팅이었습니다.
이전에는 문제의 디스크를 완전히 제어했거나 테스트에서 모든 보안 권한을 완전히 교체하고 전체 소유권을 갖는 등의 작업을 수행했지만 여전히 액세스 거부 문제가 있다고 생각했습니다. 디스크를 독점적으로 제어하는 특정 프로세스를 추적해야 합니다. 그러나 적어도 Powershell이나 스토리지 모듈의 코드 문제가 아닌 환경 문제인 것 같습니다.
또 다른 이상한 문제인 일부 USB 기반 저장소를 발견했습니다. '...이미 초기화되었습니다...' 오류와 함께 초기화 디스크가 실패합니다. 이는 다양한 위치에 문서화되어 있습니다. 그러나 Reset-PhysicalDisk를 통해 재설정을 사용하는 일반적인 권장 수정 사항은 일부 USB 저장 장치의 경우 Windows 11에서 일관되게 작동하지 않는 것 같습니다. 일부 USB 저장 장치는 동일하게 작동하지 않는 것 같습니다. 놀랄 일도 아닙니다.
적어도 내가 가지고 있는 15개의 이상한 USB 저장 장치와 eSATA, SATA 등을 통해 연결된 다양한 제조업체 및 모델의 SSD 및 HDD 장치에서 작동하는 것으로 보이는 것은 다음과 같습니다.
#
Clear-Disk -Number $theNumber -RemoveData -Confirm:$false
# Documentation Suggests Reset, However Seems To Do Nothing On Some USB Storage Types...
Reset-PhysicalDisk -FriendlyName (Get-PhysicalDisk -DeviceNumber $theNumber).FriendlyName
# Initalize-Disk Fails On Some USB Storage Types, Returns Initialization Is Already Complete...
Initialize-Disk -Number $theNumber -PartitionStyle GPT -Confirm:$false -ErrorAction SilentlyContinue
#
New-Partition -DiskNumber $theNumber -UseMaximumSize -DriveLetter $theDrive | Out-Null
#
Format-Volume -DriveLetter $theDrive -FileSystem $theFileSystem -NewFileSystemLabel $theVolume -AllocationUnitSize $theSize -Force | Out-Null
자동으로 계속 옵션을 사용하는 것은 약간의 해킹이지만, 주어진 디스크가 초기화되었지만 아직 포맷되지 않았는지 테스트하는 방법을 아직 찾지 못했습니다. 'RAW'에 대한 테스트가 충분하지 않습니다. 올바른 상황(온라인이지만 초기화되지 않은 상태, 즉 RAW가 아닌 경우)에서 디스크를 가질 수 있습니다.
준초기화되었지만 RAW 상태가 아닌 디스크를 명시적으로 테스트하기 위한 PowerShell 코드 조각이 있는 경우 여기에서 공유할 가치가 있습니다.