[THIN] Re: OT: Vbscript, 2008 R2 and auditing printers

  • From: Steve Snyder <kwajalein@xxxxxxxxx>
  • To: thin@xxxxxxxxxxxxx
  • Date: Thu, 13 Jun 2013 09:06:28 +0200

ah, found this example which gets me there

#
$data = @();

$z="frik"
$y="frak"

$b = @{"a" = 99; "b" = 88; "c" = $y};
$c = @{"a" = 34; "b" = $z; "c" = 90};
$d = @{"a" = 11; "b" = 12; "c" = 13};

$data += $b
$data += $c
$data += $d
$stuff = hash2obj($data)
$stuff | export-csv c:\temp\sample.csv -notypeinformation


function hash2obj($data) {
    $stuff = @();

    foreach($row in $data) {
        $obj = new-object PSObject
        foreach($key in $row.keys) {$obj | add-member -membertype
NoteProperty -name $key -value $row[$key]}
        $stuff += $obj
    }

    return $stuff;
}


On Thu, Jun 13, 2013 at 8:23 AM, Steve Snyder <kwajalein@xxxxxxxxx> wrote:

> unfortunately that gives me info about the object, not the data itself
>
>     Count Length LongLength Rank SyncRoot IsReadOnly IsFixedSize
> IsSynchronized  7 7 7 1 System.Object[] FALSE TRUE FALSE  7 7 7 1
> System.Object[] FALSE TRUE FALSE
>
>
> On Wed, Jun 12, 2013 at 7:57 PM, Pat Coughlin <strangedog@xxxxxxxxx>wrote:
>
>> Your array is an object.
>>
>> $Array|export-csv C:\output.csv
>>
>> Patrick Coughlin
>>
>>
>> On Wed, Jun 12, 2013 at 10:23 AM, Steve Snyder <kwajalein@xxxxxxxxx>wrote:
>>
>>> okay, pretty much got a PS script doing what I want except for - how the
>>> &%#* do I convert an array into an object so I can export it to a CSV?
>>>
>>> I'm building my array with this command
>>>
>>> $array += ,@($i_counter, $UserName, $HostName, $Document, $Pages,
>>> $Printer, $Log.TimeCreated)
>>>
>>> be really nice if I can create an object and expand it similarly.
>>>
>>>
>>> On Wed, Jun 12, 2013 at 8:35 AM, Steve Snyder <kwajalein@xxxxxxxxx>wrote:
>>>
>>>> yep, found that as well as another PS script and have semi- got it to
>>>> do what I want; been trying to avoid learning powershell up til now.
>>>>
>>>> also found a technet blurb that stated that vbscript cannot and will
>>>> not access the enhanced logs (or whatever they're called), guess I will be
>>>> assimilated after all
>>>>
>>>> thanks!
>>>>
>>>>
>>>> On Tue, Jun 11, 2013 at 8:47 PM, Dan Dill <DanD@xxxxxxxxxx> wrote:
>>>>
>>>>>  This looks promising:
>>>>> http://mywinsysadm.wordpress.com/2012/07/16/powershell-audit-printer-event-logs/
>>>>> ****
>>>>>
>>>>> ** **
>>>>>
>>>>> ** **
>>>>>
>>>>> *Dan Dill** *|*Systems Engineer*  ****
>>>>>
>>>>> ** **
>>>>>
>>>>> *From:* thin-bounce@xxxxxxxxxxxxx [mailto:thin-bounce@xxxxxxxxxxxxx] *On
>>>>> Behalf Of *Steve Snyder
>>>>> *Sent:* Tuesday, June 11, 2013 5:10 AM
>>>>> *To:* thin@xxxxxxxxxxxxx
>>>>> *Subject:* [THIN] OT: Vbscript, 2008 R2 and auditing printers****
>>>>>
>>>>> ** **
>>>>>
>>>>> So, I have my little crude script that reads event logs and gives me
>>>>> the print details, for 2003 & 2008. Enter 2008 R2 and its expanded log
>>>>> files - I'm having difficulty getting its event logs (auditing is 
>>>>> enabled).
>>>>> ****
>>>>>
>>>>> I've tried adding
>>>>> Logfile='Microsoft-Windows-PrintService/Operational'****
>>>>>
>>>>> to the Select statement - didn't help.
>>>>>
>>>>> Any thoughts?
>>>>>
>>>>> excerpt:
>>>>>
>>>>> Set objWMIService = GetObject("winmgmts:" _
>>>>>  & "{impersonationLevel=impersonate,(Security)}!\\" & strComputer &
>>>>> "\root\cimv2")
>>>>>
>>>>> Set colOperatingSystems = objWMIService.ExecQuery _
>>>>>  ("Select * from Win32_OperatingSystem")
>>>>>
>>>>> For Each objOperatingSystem in colOperatingSystems
>>>>>  OS = objOperatingSystem.Caption & " " & objOperatingSystem.Version
>>>>> Next
>>>>>
>>>>> If InStr(1,OS,"2003") > 0 Then 'this works
>>>>>  Set colEvents=objWMIService.ExecQuery("Select * from
>>>>> Win32_NTLogEvent WHERE EventCode=10 And SourceName='Print'")
>>>>>  OSver = "2003"
>>>>> ElseIf InStr(1,OS,"2008 R2") > 0 Then 'this no workie
>>>>>  Set colEvents=objWMIService.ExecQuery("Select * from
>>>>> Win32_NTLogEvent WHERE EventCode=307 And SourceName='PrintService'")
>>>>>  OSver = "2008"
>>>>> ElseIf InStr(1,OS,"2008") > 0 Then 'this works
>>>>>  Set colEvents=objWMIService.ExecQuery("Select * from
>>>>> Win32_NTLogEvent WHERE EventCode=10 And
>>>>> SourceName='Microsoft-Windows-PrintSpooler'")
>>>>>  OSver = "2008"
>>>>> Else
>>>>>  WScript.Echo "Could not identify Operating system for " & strcomputer
>>>>>  WScript.Quit
>>>>> End If****
>>>>>
>>>>
>>>>
>>>
>>
>

Other related posts: