You are here:   Blogs
  
máj. 26

Written by: SUF
2005.05.26. 22:32 

Jó néhány hónappal ezelőtt volt egy elég kemény problémám egy WMI script-el

var objWMIServices; 
var Sink; 
var EventArr; 
var i = 0; 

EventArr = new Array(); 
objWMIServices = 
    GetObject("WinMgmts:{impersonationLevel=impersonate, (security)}"); 
Sink = WScript.CreateObject("WbemScripting.SWbemSink","SINK_"); 
objWMIServices.ExecNotificationQueryAsync(Sink,
    "SELECT * FROM __InstanceCreationEvent " + 
    "WHERE TargetInstance ISA 'Win32_NTLogEvent' " + 
    "AND TargetInstance.LogFile = 'Application'"); 

WScript.Sleep(5000); 

for (i = 0; i < EventArr.length; i++) 
{ 
    WScript.Echo(EventArr[i].TimeGenerated); 
    WScript.Echo(FromWMIDateTime(EventArr[i].TimeGenerated).toLocaleString()); 
    WScript.Echo(FromWMIDateTime(EventArr[i].TimeGenerated).toUTCString()); 
    WScript.Echo(((EventArr[i].User == null)? "N/A" : EventArr[i].User)); 
} 
Sink.Cancel(); 
delete Sink; 

function SINK_OnObjectReady(objEvent, objAsyncContext) 
{ 
    EventArr[i] = objEvent.TargetInstance; 
    i++; 
} 

function FromWMIDateTime(WMIDT) 
{ 
    var RetVal; 
    RetVal = new Date(ToInt(WMIDT.substr(0,4)), 
        ToInt(WMIDT.substr(4,2)) - 1, 
        ToInt(WMIDT.substr(6,2)), 
        ToInt(WMIDT.substr(8,2)), 
        ToInt(WMIDT.substr(10,2)), 
        ToInt(WMIDT.substr(12,2))); 
    return RetVal; 
} 

function ToInt(Str) 
{ 
    var i = 0; 
    while((Str.charAt(i) == "0") & (i < Str.length)) 
        i++; 
    return parseInt(Str.substring(i,Str.length)); 
} 

Ha ezt a kedves darabot Adminként futtatom, működik. Ha egy más felhasználó nevében, akkor is. Ha Adminként Scheduled Taskban megy akkor is működik, viszont ha egy más felhasználó nevében megy Scheduled Taskban akkor kapok egy kedves Eventlog hibát. Ezt:

Event Type: Error
Event Source: DCOM
Event Category: None
Event ID: 10003
Date:  2005. 05. 26.
Time:  17:20:21
User:  XXXXX\backup
Computer: XXXXXX
Description:
Access denied attempting to launch a DCOM Server using DefaultLaunchPermssion. The server is:
{49BD2028-1523-11D1-AD79-00C04FD8FDFF}
The user is backup/XXXXX, SID=S-1-5-21-XXXXXXXXXX-XXXXXXXXXX-XXXXXXXXXX-XXXX.

Több helyen a neten feltettem mint kérdést, de nem jött rá válasz. Ma egy más probléma kapcsán elkezdtem vele megint játszani és ez lett a megoldás:

Az MMC Component Services Snap-in -ben a DCOM alatt a Microsoft WBEM Unsecured Apartment -re (ennek a GUID-je található az Eventlog bejegyzésben) Launch jogot kell adni annak a felhasználónak akinek a nevében a Scheduled Task fut.

Tags:

1 comment(s) so far...

Re: Régi WMI probléma megoldása

Szia !
Ó igen. Egy kicsit szűkszavú voltam ezzel kapcsolatban.
1, FSRM azért fogta meg a szerveren, mert arra a particióra be volt kapcsolva a video és zene file-k tiltása és az exchange számára készített log -os kiterjesztést nem engedte létrehozni, de innen ezt kivettem (mármint az FSRM video és zene kiterjesztési listáról az adott kiterjesztést, már nem emlékszem, hogy mi volt az) és attól meggyógyult.
2, Az Exchange nek meg a global settings / message delivery / connection filtering –be felvéve a abuse ( abuse.net) és ordb ( ordb.org). Igen jól gondoltad, hogy a belső hálózatról, saját domainből, SMTP-vel küldött levelekkel van némi baja.( Ezeknél nem tudom , hogy lehetne e kivétellistát készíteni valahogy mert azért jó lenne használni őket.)
3, Igen itt a shutdown scriptről beszéltem, de már meg is válaszoltad, hogy nem is lehet, mert egyrészt a shutdown script futása előtt már bontja a hálózati kapcsolatot(Így nem tudom feltölteni a serverre), és a futás ideje is korlátozott, tehát nem elegendő egy NT backup futásához, és macerás is futtatni a különböző jogok miatt is.
Így marad a nagy piros gomb a user asztalon, mint a script és némi további parancs és shutdown összeállítása. Csak elegánsabb lett volna a shutdown scriptről és biztosabb, mert mindig lefutott volna a nap végén.(Persze ha nem felejtik el kikapcsolni a gépet…). Bár még itt is gond lehet mert az Xp-s Gépeken nem találtam Microsoft WBEM Unsecured Apartment Dcom beállítást, és így nem tudom hogy a user profiljából lefut-e?

By catcomp on   2009.05.02. 16:40
 Megjegyzés

Ahhoz, hogy megjegyzést tégy a bejegyzésekhez, regisztrálnod szükséges. Egyszerűen válaszd ki a regisztráció linket a jobb felső sarokban és add meg a szükséges információkat. Ha bejelentkeztél, fűzhetsz megjegyzést a bejegyzésekhet. 

Már regisztráltál? Kattints ide a bejelentkezéshez. 

 

 Keresés