기 타 심심풀이로 만들고 있는데 질문있어요 vb.net
2022.05.15 20:29
심심해서 프로그램 짜기 해 보는 중이에요
초보입니다. vb.net 입니다.
그냥 두뇌 회전용으로 하는것인데 만들다 보니 점점 깊이 들어가는것 같네요.
문제는
디스크 정보에서 diskid 와 volumeid 를 매치 시키는 것 자료를 못구했어요
결국은 powershell로 받아서 처리했는데
어떻게 하면 두 개를 매치 시킬수 있는지요.
win32_volume wim32_disk 등등 아무리 뒤져봐도 두개를 매치 못시키겟어요.
결국은 우연히 파워셀용이 잇어서
Get-Partition | Select-Object DiskNumber, type, @{n='VolumeID';e={$_.AccessPaths | Where-Object { $_ -like '\\?\volume*' }}}, DriveLetter
이것은 diskid volumeid 가 쉽게 매치되는데
vb용은 자료가 어디 없을까요
몬가 되었다 싶으면 하나가 안되고 괜히 더 호기심이 유발되서
파티션을 각 버튼에 위치를 정하고 버튼을 누르면 파티션 활성화/비활성화 <<-- 이것때문에 힘듬
wim 파일은 버튼위에 끌어넣기 하면 해당 드라이브에 풀리고
링크/wim 만들기 되고
vhdx 열면 자동으로 인식되고 (usb 인식)
이런 기능을 만들고 있거든요 현재 흉내수준은 이에요
기본적인 것들은 vb랑 vbs 활용해서 되는데
그림처럼 파티션을 나열하려면 diskid 랑 volumeid 같은 매치되는게 없어요
현재 파워셀용은 콘솔 모드로 vb.net에서 받아서 활용해요
근데 간혹 파워셀용이 실패하거나 느려요.. 그래서 문제임
질문 :
win32_volume volumeid 구할수 있고
win32_disk 등 물리, 논리 정보 확인가능
문제는 두개를 연결시킬 무언가를 모르겟네요.
질문이 좀 횡설수설은 그 무언가를 모르니 말을 어찌 할지 몰라서...
부탁드립니다.
그림상태는 빨간색 : 부팅 파티션, 노란색은 usb 그리고 eft 파티션 구분한거입니다.
빈버튼은 비활성화 상태의 파티션 또는 vhdx
댓글 [4]
-
내꼬 2022.05.15 20:38 -
코코당 2022.05.16 00:12
감사합니다. await 명령어로 파워셀 데이타는 무난하게 오류없이 받고 잇어요
자료를 비동기적으로 가져오라는데 스레드 사용하면 되는 줄 알았더니
await 라는게 있네요 딱 한줄 ㅠㅠ 우선은 내 맘에 들어요 감사합니다.
-
지후빠 2022.05.16 00:03
참고가 되실 것 같아서...
https://social.msdn.microsoft.com/Forums/vstudio/en-US/23d97079-4c51-4538-ab6e-013b1a562370/using-diskpart-from-vb-any-api-or-alternative-and-how-to-get-the-disk-id?forum=vbgeneral
https://devblogs.microsoft.com/scripting/how-can-i-correlate-logical-drives-and-physical-disks/
-
코코당 2022.05.16 00:16
네 감사합니다. 근데 저 거는 감추어진 파티션을 검색하지 못하는거 같아요. 저는 파티션을 평상시는 감추고 사용시만 활성화시켜서
바탕화면도 아이콘 3개, 그런 성격이라 이걸 생각한건데 휴 어렵네요
모 대충 흉내는 다 냈으니 관리자모드로 프로그램을 실행하면 drag 정책에 걸려서 안되요 비관리자도 하면 dism이 안되고
결국 지금 수준에서는 그 부분을 해결해야 되는데 힌트는 있던데 접근이 어려워 ㅋㅋ 오늘 담배 만 피웟어요
와 심심풀이가 아니라 머리 쥐나요.. 감사합니다.
시스템 제어가 간단한 한줄로 해결되면 좋으련만 실상은 많은부분을 습득해야 가능합니다.
최소한 txt파일 입출력 가능해야하고
시스템 권한관련부분 이해가 되어야 하고
cmd 처리 방법을 알아야 하고
배열도 알아야 하고
지금은 wmic가 작동하지만 추후 윈도우에서는 삭제될 예정이며
고급기술에 속합니다.
천천히 접근해 보세요
//응원합니다.