반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- Bootstrap
- vue
- Python
- 코로나19
- javascript
- 체당금
- Tutorial
- Sentinel
- 개인사업자
- 홈택스
- Laravel
- blockchain
- 이더리움
- Java
- auth
- 코로나
- win32
- 사업자계좌
- 소액임금체불
- 전자소송
- 인민공원
- elasticSearch
- Blade
- as후기
- php
- 당사자표시정정신청서
- reactnative
- Eclipse
- 보정명령
- cartalyst
Archives
- Today
- Total
그냥 사는 이야기
WMI의 Win32_Volume::Dismount 실행 해보기 본문
반응형
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery _
("Select * From Win32_Volume Where Name = 's:\\'")
For Each objInstance in colItems
p_Force = true
p_Permanent = true
intResult = objInstance.Dismount(p_Force, p_Permanent)
WScript.Echo "Result: " & intResult
Win32_Volume::Dismount
uint32 Dismount(
[in] boolean Force = FALSE,
[in] boolean Permanent = FALSE
);
저기서 Permanent 변수 하나 달랑 보고 참으로 먼 길을 달려갔건만 제대로 실행이 안되네. 자세한건 MSDN의 설명에서 볼 수 있다. WMI의 라이브러리를 실행하는데는 몇 가지 방법이 있겠지만 기본적인 것은 wmic 상에서 실행해보면 된다.
wmic 이 녀석 참 맘에 드는 녀석이다.
이미지에서 보듯이 command창에서 wmic를 입력하면 wmi 명령을 입력받을 수 있는 대화식 모드로 들어간다.
여기서 거의 왠만한 Windows를 다룰 수 있는 명령어를 /? 으로 살펴 본후 각각의 명령을 입력해보고 /? 으로 그 각각의 명령어들 중에서도 필요한 help가 나오고. 꽤 괜찮다. 가끔 어떻게 사용하는지 애매할 때가 있긴 하지만.
script는 잘 모르지만 자꾸 보다 보니 조금 뭔가가 보인다. 간단하고 파워풀하게 활용할 여지가 보인다.
그러나~ Dismount 쪽 코드는 잘 안되는것 같아서 google로 좀 찾아봤더니
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery _
("Select * From Win32_Volume Where Name = 's:\\'")
For Each objInstance in colItems
p_Force = true
p_Permanent = true
intResult = objInstance.Dismount(p_Force, p_Permanent)
WScript.Echo "Result: " & intResult
NextDismount(True, True)는 안되는데 위의 방법은 된다. Dismount의 실행 return 값을 볼 수 있도록 되어 있다. 그리고 실제 실행하면 ok. (0번이 return MSDN의 Dismount 부분 참조)
그러나 실제 dismount는 안된다!!! 대체 왜 안될까???
참고
- 저 텍스트를 .vbs 파일로 저장해서 그냥 더블클릭으로 실행했다. vbs의 다른 실행 방법이 있나 모르겠지만 그것도 겨우 알게 된거다.
- 대부분의 함수들이 Win2003에서 된다. XP, 2000에서는 안되고. 비스타도 안되는걸로 안다. 2008은? 모름. 아마 되겠지?
그래서 난 2003에서 저 스크립트를 실행해봤지만 안된다. return 값도 0으로 잘 나오는데. 대체 왜~~~~~
'Development > System' 카테고리의 다른 글
x86 or AMD64 architecture 구하면서 (0) | 2008.12.09 |
---|---|
RunDll32를 사용한 install driver (0) | 2008.11.10 |
Driver Service StartType (0) | 2008.10.21 |
WinDbg target 머신 설정 (for vmware) (0) | 2008.10.13 |
diskpart로 volume을 read only로 만들기 (1) | 2008.10.06 |
Comments