한국어

tc_backup

Windows 2008의 WMI에 문제가 생겼다.

참고적으로 2008에서 WMI나 ADSI할때 GetObject가 작동하기 위해서는 관리자 권한으로 실행 상태여야 한다.

기존 Windows 2003에서 작성한 코드가 2008에서는 오류 발생.

아래는 IIS FTP에서 홈디렉터리 쓰기 권한 여부를 체크하는 스크립트이다.

Windows 2003용 코드(WMI)

strComputer = “.”
Dim obj
Dim Result
Dim IISObj
Dim IISFTPobj
Dim objWMIService

Set objWMIService = GetObject _
(“winmgmts:{authenticationLevel=pktPrivacy}\\” _
& strComputer & “\root\microsoftiisv2″)
Set colItems = objWMIService.ExecQuery _
(“Select * from IIsFtpVirtualDirSetting”)
For Each objItem in colItems
Wscript.Echo “Name: ” & objItem.Name & “, AccessWrite: ” & objItem.AccessWrite
Next

Windows 2008용 코드(ADSI)

Dim Result
Dim IISObj
Set IIS
Obj = GetObject(“IIS://localhost/MSFTPSVC”)

for each IISSite in IISObj
if (IISSite.Class = “IIsFtpServer”) Then
IIsObjectPath = “IIS://localhost/MSFTPSVC/” & IISSite.Name & “/ROOT”
Set IIsObject = GetObject(IIsObjectPath)
IIsSchemaPath = IIsObject.Schema
Set IIsSchemaObject = GetObject(IIsSchemaPath)
ReDim PropertyListSet(1)
PropertyListSet(0) = IIsSchemaObject.MandatoryProperties
PropertyListSet(1) = IIsSchemaObject.OptionalProperties

If (Not EnumPathsOnly) Then
For Each PropertyList In PropertyListSet
For Each PropertyName In PropertyList
If Err <> 0 Then
Exit For
End If

‘목록 첫 항목이 “”인데 이때 Get ValuseList하면 오류 발생이라 예외 처리함.
If PropertyName <> “” Then
ValueList = “”
If PropertyName = “AccessWrite” Then
ValueList = IIsObject.Get(PropertyName)
WScript.Echo “Name: ” & IISSite.ServerComment & “, ” & PropertyName & “: ” & ValueList
End If
End If
Next
Next
End If
‘ End if (Not EnumPathsOnly)
End If
Next

문제는 GetObject할 때 WMI 방식을 2008에서 지원하지 않는건지 null이 리턴되어 버렸다.

그래서 ADSI를 이용해서 처리하였는데, 이게 참 웃기다.

ADSI는 Windows 2000에서 사용되던 것이고, 2003에서는 WMI를 이용하도록 만들어 놓구선, 오히려 2008에서는 WMI가 안되고 ADSI를 이용해야 하는 아이러니.

OS 호환성을 고려하기 위해서는 ADSI를 이용해 작성하는 수 밖에 없음.

조회 수 :
18609
등록일 :
2012.06.11
22:49:45 (*.234.246.12)
엮인글 :
https://www.rain9.com/xe/tc_backup/3999/f0b/trackback
게시글 주소 :
https://www.rain9.com/xe/tc_backup/3999
List of Articles
번호 제목 글쓴이 날짜 조회 수
220 [iphone] decrypt 도구 file 엔신 2012-06-11 16581
219 udp tunnel 엔신 2012-06-11 11344
218 ubuntu APM(apache2 php mysql) 설치 방법 엔신 2012-06-11 17255
217 [perl] AES 암호화/복호화 엔신 2012-06-11 20059
216 iPhone code sign 엔신 2012-06-11 9873
215 [excel] 최대 행과 열 엔신 2012-06-11 21596
214 [WMI,VBS] IIS FTP 서버 IPSecurity 설정 확인 엔신 2012-06-11 21356
» [WMI,VBS] WMI를 이용한 vbs 작성시 Windows 2008에서 오류 해결 엔신 2012-06-11 18609
212 Windows [VBS] xml parsing file 엔신 2011-01-11 19727
211 Windows WMI 엔신 2011-01-07 14108
210 이란과 아랍간의 사이가 나쁜 이유가 뭘까요? [2] 엔신 2010-11-28 12879
209 ETC 메모 엔신 2010-10-30 9847
208 Linux 패키지 파일 만들기 엔신 2010-10-30 11693
207 Programming [JSP] getParameter() 사용시 파라미터가 있고 없고 엔신 2010-07-08 13621
206 DBMS Oracle 요약 엔신 2010-07-08 20501
205 DBMS PL-SQL 엔신 2010-07-08 7379
204 Programming [JSP] JSP 요약 엔신 2010-07-07 32387
203 Programming [JSP] JDBC를 이용한 데이터베이스 활용법 엔신 2010-07-07 10629
202 Programming perl http post 엔신 2010-06-07 10734
201 Ambiguous 인터넷 엔지니어링 태스크 포스 file 엔신 2010-04-27 11483