سلام
ببخشید دسپاشکسته پریدم وسط بحث!! ولی جالب بود.
میشه در مورد اینکه چطور میشه یه برنامرو تو لسیت برنامه های امنیتی ویندوز قرار بدی یه توضیحی(لطفا کاملتر) بدین.
ممنون Lord_viper عزیز.
با استفاده از توابع کار با WMI
لطف کنین از این اطلاعات برای مصارف بد استفاده نکنید
نقل قول: با استفاده از توابع کار با WMI
لطف کنین از این اطلاعات برای مصارف بد استفاده نکنید
بی زحمت میشه یک مثال بزنید!
یعنی اینجوری windows security center متوجه میشه که مثلا فلان آنتی ویروس روی کامپیوتر نصب هست یا نه؟
اینجوری متوجه میشه
کد:
strComputer = "."
Set objWMI = GetObject( _
"winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\SecurityCenter")
Set colItems = objWMI.ExecQuery("Select * from AntiVirusProduct")
Set objFS = CreateObject("Scripting.FileSystemObject")
Set objNewFile = objFS.CreateTextFile("c:\av.txt")
For Each objItem in colItems
objNewFile.WriteLine objitem.displayName &": Enabled=" &objitem.onAccessScanningEnabled &" UpToDate=" &objitem.productUptoDate &" Version " &objitem.versionNumber
objNewFile.WriteLine vbCrLf
Next
objNewFile.Close
ببخشید ، با این کد چه اتفاقی میفته؟من که چیزی نفهمیدم.
مهندس wmi بخشی از ویندوز هست که اطلاعات خاصی مثل نوع پروسسور- اطلاعات بایوس - و .. که اکثرا سخت افزاری هستن + بخش anti virus product توش هست
شما به خودت یه زحمت سرچ ندادی ببینی تو msdn در موردش چی میگن
نقل قول: شما به خودت یه زحمت سرچ ندادی ببینی تو msdn در موردش چی میگن
ببخشید!بنده منظورم این بود که این کدهایی که شما نوشتید چکار می کنند و کاری به کلیات نداشتم.حالا اگه میشه این رو بگید.یعنی وقتی برنامه اجرا میشه دقیقا چه اتفاقی می افته؟
اینم یک مثال دیگه که یکسری مشخصات مثل شماره سریال مادربورد و... رو بر می گردونه:
Private Sub Form_Load()
' a = MBSerialNumber
' MsgBox a
Dim List
Dim Msg
Dim Object
On Local Error Resume Next
Set List = GetObject("winmgmts:{impersonationLevel=impersonate}").InstancesOf("Win32_BaseBoard")
For Each Object In List
Msg = Msg & "Motherboard Serial Number: " & Object.SerialNumber & vbCrLf
Next
Set List = GetObject("winmgmts:{impersonationLevel=impersonate}").InstancesOf("Win32_Processor")
For Each Object In List
Msg = Msg & "Processor Unique ID: " & Object.UniqueID & vbCrLf
Next
Set List = GetObject("winmgmts:{impersonationLevel=impersonate}").InstancesOf("Win32_BIOS")
For Each Object In List
Msg = Msg & "BIOS Serial Number: " & Object.SerialNumber & vbCrLf
Next
Set List = GetObject("winmgmts:{impersonationLevel=impersonate}").InstancesOf("Win32_LogicalDisk")
For Each Object In List
Msg = Msg & "Disk Serial Number: " & Object.VolumeSerialNumber & vbCrLf
Next
MsgBox Msg
Unload Me
End Sub
Public Function MBSerialNumber() As String
'RETRIEVES SERIAL NUMBER OF MOTHERBOARD
'IF THERE IS MORE THAN ONE MOTHERBOARD, THE SERIAL
'NUMBERS WILL BE DELIMITED BY COMMAS
'YOU MUST HAVE WMI INSTALLED AND A REFERENCE TO
'Microsoft WMI Scripting Library IS REQUIRED
Dim objs As Object
Dim obj As Object
Dim WMI As Object
Dim sAns As String
Set WMI = GetObject("WinMgmts:")
Set objs = WMI.InstancesOf("Win32_BaseBoard")
For Each obj In objs
sAns = sAns & obj.SerialNumber
If sAns < objs.Count Then sAns = sAns & ","
Next
MBSerialNumber = sAns
End Function
Windows Management Instrumentation كه به اختصار بنام WMI ناميده ميشه، پياده سازي ماكروسافت از Web Based Enterprise Management است كه استاندارد صنعتي براي مديريت سيستمهاي كامپيوتري توزيع شده هست. استاندارد WBEM شامل يك مدل اطلاعاتي مشترك (Common Information Model) براي توصيف اطلاعات مديريتي مربوط به سيستمها ، برنامه ها ، شبكه ها ، ابزارها و سرويسها ميباشد و همچنين سازوكارهايي را براي خودكار كردن كارهاي اجرايي ، تعريف ميكند.
WMI ميتواند از طريق هر زبان برنامه نويسي و اسكپريپتي تحت ويندوز كه توانايي كار كردن با اكتيو ايكس ها را داشته باشد ، قابل دسترسي باشد. و بطور پيش فرض بر روي ويندوز هاي ملنيوم به بالا |( 2000 ، اكس پي ، سرور 2003 ) نصب شده است .
هدف WMI اين است كه براي هر برنامه يا اسكريپتي كه ميخواهد به بصورت لوكال يا ريموت به اطلاعات مديريتي يك سيستم ، شبكه يا برنامه دسترسي داشته باشد ، رابط يكسان و واحدي را فراهم كند.
ديگه نيازي نيست كه برنامه ها براي ارتباط با همديگر ، با ليست وسيعي از APIهاي سيستم عاملي كه بعضا" ميمكن است با همديگر ناسازگار هم باشند ، سر و كله بزنند .
همه رابطهاي WMI بر پايه COM بنا شده اند و البته در دات نت هم توسط COM Inter-Op قابل دسترسي هستند.
بخشيهاي اصلي WMI عبارتند از :
- آبجكت هاي مديريت شده و پروايدرها : Managed Objects and Providers
- زيربناي WMI : WMI Infrastructure
- اپليكيشنهاي مديريت و اسكريپتها : Management Applications and scripts
اون دستور GetObject برای کار کردن با رابط های com-activex هست (یک نمونه refrence به اون رابط ایجاد میکنه)
[undefined=undefined]http://msdn.microsoft.com/en-us/library/e9waz863%28v=vs.80%29.aspx[/undefined]