#116174 - 2004-03-16 03:19 PM
Re: Using specific account to run WMIQuery
|
1984
Starting to like KiXtart
Registered: 2003-08-14
Posts: 150
|
trust relationship works fine, but No output! What im doing worng?
$sIP = "196.168.0.20" ; (or client host name) $sUserID = "DomainB\Admin" $sUserPW = "passwd"
$users=WMIQuery('UserName','Win32_ComputerSystem',$sIP,$sUserID,$sUserPW)
? $users
Function WMIQuery($sWhat, $sFrom, Optional $sComputer, Optional $sWhere, Optional $x, Optional $root, Optional $sUserID, Optional $sUserPW) Dim $sQuery, $objEnum, $sValue, $TMP, $SystemSet, $, $objInstance, $objLocator
$sComputer = Trim(Join(Split($sComputer,'\'),'')) If NOT $sComputer OR $sComputer = @wksta $sComputer = '.' EndIf If NOT $root $root = '\root\cimv2' EndIf $sQuery = 'Select ' + $sWhat + ' From '+ $sFrom If $sWhere AND $x $sQuery = $sQuery+" Where "+$sWhere+" = '"+$x+"'" EndIf If $sUserID AND $sUserPW AND $sComputer <> '.' $objLocator = CreateObject('WbemScripting.SWbemLocator') If @ERROR OR NOT $objLocator Exit Val("&"+Right(DecToHex(@ERROR),4)) EndIf $SystemSet = $objLocator.ConnectServer($sComputer, $root, $sUserID, $sUserPW) If @ERROR OR NOT $SystemSet Exit Val("&"+Right(DecToHex(@ERROR),4)) EndIf $SystemSet.Security_.ImpersonationLevel = 3 Else $SystemSet = GetObject("winmgmts:{impersonationLevel=impersonate}!\\"+$sComputer+$root) If @ERROR OR NOT $SystemSet Exit Val("&"+Right(DecToHex(@ERROR),4)) EndIf EndIf $objEnum = $SystemSet.ExecQuery($sQuery) If @ERROR OR NOT $objEnum Exit Val("&"+Right(DecToHex(@ERROR),4)) EndIf For Each $objInstance in $objEnum $=Execute(Chr(36) + 'sValue = ' + Chr(36) + 'objInstance.' + $sWhat) If VarType($sValue) & 8192 $tmp = $tmp +'|' + Join($sValue,'|') Else $tmp = $tmp +'|' + $sValue EndIf Next $WMIQuery = Split(SubStr($tmp,2),'|') Exit Val("&"+Right(DecToHex(@ERROR),4)) EndFunction
_________________________
"... Great minds talk about idea' s, average minds talk about events and samll minds talks about people...!"
|
|
Top
|
|
|
|
#116175 - 2004-03-16 03:24 PM
Re: Using specific account to run WMIQuery
|
Radimus
Moderator
   
Registered: 2000-01-06
Posts: 5187
Loc: Tampa, FL
|
you are missing the commas for the additional optional parameters thet you aren't using.
WMIQuery($sWhat,$sFrom,$sComputer,,,,$sUserID,$sUserPW)
|
|
Top
|
|
|
|
#116178 - 2004-03-16 04:03 PM
Re: Using specific account to run WMIQuery
|
Radimus
Moderator
   
Registered: 2000-01-06
Posts: 5187
Loc: Tampa, FL
|
what erre msg is it returning
|
|
Top
|
|
|
|
#116181 - 2004-03-16 04:59 PM
Re: Using specific account to run WMIQuery
|
Radimus
Moderator
   
Registered: 2000-01-06
Posts: 5187
Loc: Tampa, FL
|
try it against the local machine without creds, then with creds, the a remote machine in your domain, and then outside the domain
it will return an error code, check that it returns values in arrays, chaek that
|
|
Top
|
|
|
|
#116189 - 2004-03-18 05:42 PM
Re: Using specific account to run WMIQuery
|
Richie19Rich77
Seasoned Scripter
   
Registered: 2002-08-16
Posts: 624
Loc: London, England
|
Works Fine
Code:
Break On
$sWhat = "UserName"
$sFrom = "Win32_ComputerSystem"
$sIP = "196.168.0.20" ; (or client host name)
$sUserID = "DomainB\Admin"
$sUserPW = "passwd"
? WMIQuery($sWhat, $sFrom,$sComputer,$sWhere,$x,$root,$sUserID,$sUserPW)[0]
Beware that if you running this remotely with admin rights you will need to look at array element [1], as [0] will be the username you are running the process with.
Another Way would be:
Code:
For $object = 0 to Ubound(WMIQuery($sWhat, $sFrom,$sComputer,$sWhere,$x,$root,$sUserID,$sUserPW))
? 'UserName: '+WMIQuery($sWhat, $sFrom,$sComputer,$sWhere,$x,$root,$sUserID,$sUserPW)[$Object]
? 'Array Element: '+$Object
Next
OR
Code:
If Ubound(WMIQuery($sWhat, $sFrom,$sComputer,$sWhere,$x,$root,$sUserID,$sUserPW)) >0
? 'UserName: '+WMIQuery($sWhat, $sFrom,$sComputer,$sWhere,$x,$root,$sUserID,$sUserPW)[1]
Else
? 'UserName: '+WMIQuery($sWhat, $sFrom,$sComputer,$sWhere,$x,$root,$sUserID,$sUserPW)[0]
EndIf
Rich
Edited by Richard Farthing (2004-03-18 06:02 PM)
|
|
Top
|
|
|
|
Moderator: Jochen, Allen, Radimus, Glenn Barnas, ShaneEP, Ruud van Velsen, Arend_, Mart
|
0 registered
and 837 anonymous users online.
|
|
|