For some reason outlook got rid of the line breaks right before the pipe. When 
you paste this in to the ISE just add in the line breaks between the ` and |


-----Original Message-----
From: listsad...@lists.myitforum.com [mailto:listsad...@lists.myitforum.com] On 
Behalf Of Kelley, Matthew
Sent: Friday, March 20, 2015 3:52 PM
To: 'powershell@lists.myitforum.com'
Subject: RE: [powershell] Scripting registry queries

This works too:



$Computers = get-adcomputer -filter { name -like "us-it*" } | select Name

#put column names on csv file
Out-File c:\windows\temp\RegValues.csv -InputObject 
"ComputerName,RegistryKey,Name,Value" -Append

foreach($computer in $Computers.Name)
{

 $wmi=[wmiclass]"\\$($computer)\root\default:stdRegProv"
 foreach($name in ($wmi.EnumValues(2147483650, `
 "Software\Microsoft\Windows\CurrentVersion\Run")).sNames)
 {"$($computer),Run,$($name)," + `
 $(($wmi.GetExpandedStringValue(2147483650, `
 "Software\Microsoft\Windows\CurrentVersion\Run",$name)).sValue) `  | Out-File 
c:\temp\RegValues.csv -Append}  foreach($name in ($wmi.EnumValues(2147483650, `
 "Software\Wow6432node\Microsoft\Windows\CurrentVersion\Run")).sNames)
 {"$($computer),x64Run,$($name)," + `
 $(($wmi.GetExpandedStringValue(2147483650, `
 "Software\Wow6432node\Microsoft\Windows\CurrentVersion\Run",$name)).sValue) `  
| Out-File c:\temp\RegValues.csv -Append}  foreach($name in 
($wmi.EnumValues(2147483650, `
 "Software\Microsoft\Windows\CurrentVersion\RunOnce")).sNames)
 {"$($computer),RunOnce,$($name)," + `
 $(($wmi.GetExpandedStringValue(2147483650, `
 "Software\Microsoft\Windows\CurrentVersion\RunOnce",$name)).sValue) `  | 
Out-File c:\temp\RegValues.csv -Append}  foreach($name in 
($wmi.EnumValues(2147483650, `
 "Software\Wow6432node\Microsoft\Windows\CurrentVersion\RunOnce")).sNames)
 {"$($computer),x64RunOnce,$($name)," + `  
$(($wmi.GetExpandedStringValue(2147483650,`
 
"Software\Wow6432node\Microsoft\Windows\CurrentVersion\RunOnce",$name)).sValue) 
`  | Out-File c:\temp\RegValues.csv -Append}

}


-----Original Message-----
From: listsad...@lists.myitforum.com [mailto:listsad...@lists.myitforum.com] On 
Behalf Of Kelley, Matthew
Sent: Friday, March 20, 2015 3:48 PM
To: 'powershell@lists.myitforum.com'
Subject: RE: [powershell] Scripting registry queries

No, that didn't work. Here, I put in some line breaks and this works. Hopefully 
this is chopped up enough for you:

$Computers = get-adcomputer -filter { name -like "us-it*" } | select Name

#put column names on csv file
Out-File c:\windows\temp\RegValues.csv -InputObject 
"ComputerName,RegistryKey,Name,Value" -Append

foreach($computer in $Computers.Name)
{

 $wmi=[wmiclass]"\\$($computer)\root\default:stdRegProv"
 foreach($name in 
($wmi.EnumValues(2147483650,"Software\Microsoft\Windows\CurrentVersion\Run")).sNames)
 {"$($computer),Run,$($name)," + `
 
$(($wmi.GetExpandedStringValue(2147483650,"Software\Microsoft\Windows\CurrentVersion\Run",$name)).sValue)
 `  | Out-File c:\temp\RegValues.csv -Append}  foreach($name in 
($wmi.EnumValues(2147483650,"Software\Wow6432node\Microsoft\Windows\CurrentVersion\Run")).sNames)
 {"$($computer),x64Run,$($name)," + `
 
$(($wmi.GetExpandedStringValue(2147483650,"Software\Wow6432node\Microsoft\Windows\CurrentVersion\Run",$name)).sValue)
 `  | Out-File c:\temp\RegValues.csv -Append}  foreach($name in 
($wmi.EnumValues(2147483650,"Software\Microsoft\Windows\CurrentVersion\RunOnce")).sNames)
 {"$($computer),RunOnce,$($name)," + `
 
$(($wmi.GetExpandedStringValue(2147483650,"Software\Microsoft\Windows\CurrentVersion\RunOnce",$name)).sValue)
 `  | Out-File c:\temp\RegValues.csv -Append}  foreach($name in 
($wmi.EnumValues(2147483650,"Software\Wow6432node\Microsoft\Windows\CurrentVersion\RunOnce")).sNames)
 {"$($computer),x64RunOnce,$($name)," + `
 
$(($wmi.GetExpandedStringValue(2147483650,"Software\Wow6432node\Microsoft\Windows\CurrentVersion\RunOnce",$name)).sValue)
 `  | Out-File c:\temp\RegValues.csv -Append}

}


-----Original Message-----
From: listsad...@lists.myitforum.com [mailto:listsad...@lists.myitforum.com] On 
Behalf Of Kelley, Matthew
Sent: Friday, March 20, 2015 3:39 PM
To: 'powershell@lists.myitforum.com'
Subject: RE: [powershell] Scripting registry queries

Try this. You need the escape character to break lines.. `

$Computers = get-adcomputer -filter { name -like "us-it*" } | select Name

#put column names on csv file
Out-File c:\temp\RegValues.csv -InputObject 
"ComputerName,RegistryKey,Name,Value" -Append

foreach($computer in $Computers.Name)
{
 $wmi=[wmiclass]"\\$($computer)\root\default:stdRegProv"

 foreach($name in `
($wmi.EnumValues(2147483650,"Software\Microsoft\Windows\CurrentVersion\Run")).sNames){"$($computer),Run,$($name),"
 `  + $(($wmi.GetExpandedStringValue(2147483650,"Software\Microsoft\Windows\ `
 CurrentVersion\Run",$name)).sValue) `
| Out-File c:\windows\temp\RegValues.csv -Append}

 foreach($name in `
($wmi.EnumValues(2147483650,"Software\Wow6432node\Microsoft\Windows\CurrentVersion\Run")).sNames){"$($computer),x64Run,$($name),"
 `
+ $(($wmi.GetExpandedStringValue(2147483650,"Software\Wow6432node\Micros
+ `
 oft\Windows\CurrentVersion\Run",$name)).sValue) `
| Out-File c:\windows\temp\RegValues.csv -Append}

 foreach($name in `
($wmi.EnumValues(2147483650,"Software\Microsoft\Windows\CurrentVersion\RunOnce")).sNames){"$($computer),RunOnce,$($name),"
 `
+ $(($wmi.GetExpandedStringValue(2147483650,"Software\Microsoft\Windows\
+ `
 CurrentVersion\RunOnce",$name)).sValue) `
| Out-File c:\windows\temp\RegValues.csv -Append}

 foreach($name in `
($wmi.EnumValues(2147483650,"Software\Wow6432node\Microsoft\Windows\CurrentVersion\RunOnce")).sNames){"$($computer),x64RunOnce,$($name),"
 `
+ $(($wmi.GetExpandedStringValue(2147483650,"Software\Wow6432node\Micros
+ `
 oft\Windows\CurrentVersion\RunOnce",$name)).sValue) `
| Out-File c:\windows\temp\RegValues.csv -Append}
 }

-----Original Message-----
From: listsad...@lists.myitforum.com [mailto:listsad...@lists.myitforum.com] On 
Behalf Of Kurt Buff
Sent: Friday, March 20, 2015 3:32 PM
To: powershell@lists.myitforum.com
Subject: Re: [powershell] Scripting registry queries

Matt,

The only output I get from your script is the column headers, and no errors. 
I've copied it below, reformatted slightly, for my own comprehension - so I 
might have munged it somehow in the copying to my PS ISE session. (Of course, I 
changed it to C:\temp instead of C:\Windows\Temp).

$Computers = get-adcomputer -filter { name -like "us-it*" } | select Name

#put column names on csv file
Out-File c:\temp\RegValues.csv -InputObject 
"ComputerName,RegistryKey,Name,Value" -Append

foreach($computer in $Computers.Name)
{
 $wmi=[wmiclass]"\\$($computer)\root\default:stdRegProv"

 foreach($name in
($wmi.EnumValues(2147483650,"Software\Microsoft\Windows\CurrentVersion\Run")).sNames){"$($computer),Run,$($name),"
+ $(($wmi.GetExpandedStringValue(2147483650,"Software\Microsoft\Windows\
+ CurrentVersion\Run",$name)).sValue)
| Out-File c:\windows\temp\RegValues.csv -Append}

 foreach($name in
($wmi.EnumValues(2147483650,"Software\Wow6432node\Microsoft\Windows\CurrentVersion\Run")).sNames){"$($computer),x64Run,$($name),"
+ $(($wmi.GetExpandedStringValue(2147483650,"Software\Wow6432node\Micros
+ oft\Windows\CurrentVersion\Run",$name)).sValue)
| Out-File c:\windows\temp\RegValues.csv -Append}

 foreach($name in
($wmi.EnumValues(2147483650,"Software\Microsoft\Windows\CurrentVersion\RunOnce")).sNames){"$($computer),RunOnce,$($name),"
+ $(($wmi.GetExpandedStringValue(2147483650,"Software\Microsoft\Windows\
+ CurrentVersion\RunOnce",$name)).sValue)
| Out-File c:\windows\temp\RegValues.csv -Append}

 foreach($name in
($wmi.EnumValues(2147483650,"Software\Wow6432node\Microsoft\Windows\CurrentVersion\RunOnce")).sNames){"$($computer),x64RunOnce,$($name),"
+ $(($wmi.GetExpandedStringValue(2147483650,"Software\Wow6432node\Micros
+ oft\Windows\CurrentVersion\RunOnce",$name)).sValue)
| Out-File c:\windows\temp\RegValues.csv -Append}
 }

On Fri, Mar 20, 2015 at 9:53 AM, Kelley, Matthew <kelle...@med.umich.edu> wrote:
> I understand. Give this a shot:
>
>
> $Computers = get-adcomputer -filter { name -like "us-it*" } | select 
> Name
>
> #put column names on csv file
> Out-File c:\windows\temp\RegValues.csv -InputObject 
> "ComputerName,RegistryKey,Name,Value" -Append
>
> foreach($computer in $Computers.Name)
> {
>
>  $wmi=[wmiclass]"\\$($computer)\root\default:stdRegProv"
>  foreach($name in
> ($wmi.EnumValues(2147483650,"Software\Microsoft\Windows\CurrentVersion
> \Run")).sNames){"$($computer),Run,$($name)," + 
> $(($wmi.GetExpandedStringValue(2147483650,"Software\Microsoft\Windows\
> CurrentVersion\Run",$name)).sValue) | Out-File 
> c:\windows\temp\RegValues.csv -Append}  foreach($name in 
> ($wmi.EnumValues(2147483650,"Software\Wow6432node\Microsoft\Windows\Cu
> rrentVersion\Run")).sNames){"$($computer),x64Run,$($name)," + 
> $(($wmi.GetExpandedStringValue(2147483650,"Software\Wow6432node\Micros
> oft\Windows\CurrentVersion\Run",$name)).sValue) | Out-File 
> c:\windows\temp\RegValues.csv -Append}  foreach($name in 
> ($wmi.EnumValues(2147483650,"Software\Microsoft\Windows\CurrentVersion
> \RunOnce")).sNames){"$($computer),RunOnce,$($name)," + 
> $(($wmi.GetExpandedStringValue(2147483650,"Software\Microsoft\Windows\
> CurrentVersion\RunOnce",$name)).sValue) | Out-File 
> c:\windows\temp\RegValues.csv -Append}  foreach($name in 
> ($wmi.EnumValues(2147483650,"Software\Wow6432node\Microsoft\Windows\Cu
> rrentVersion\RunOnce")).sNames){"$($computer),x64RunOnce,$($name)," + 
> $(($wmi.GetExpandedStringValue(2147483650,"Software\Wow6432node\Micros
> oft\Windows\CurrentVersion\RunOnce",$name)).sValue) | Out-File 
> c:\windows\temp\RegValues.csv -Append}  }
>
> When you open the csv with excel you will have to use the text to columns 
> tool on the ribbon...
>
> I also changed the output path to windows\temp - just for testing on my 
> machine. Works decent. Good luck!
>
> Matt
>
> -----Original Message-----
> From: listsad...@lists.myitforum.com
> [mailto:listsad...@lists.myitforum.com] On Behalf Of Kurt Buff
> Sent: Friday, March 20, 2015 12:04 PM
> To: powershell@lists.myitforum.com
> Subject: Re: [powershell] Scripting registry queries
>
> Responses in-line...
>
> On Fri, Mar 20, 2015 at 5:37 AM, Kelley, Matthew <kelle...@med.umich.edu> 
> wrote:
>> Is this a one-time data capture, or something you need to do on a 
>> recurring basis?
>
> Recurring, minimum once a week.
>
>> Do you have any systems management software, like SCCM, in your 
>> environment?
>
> We have no systems management software, though we have an EA agreement 
> (my manager doesn't like SCCM - I have no experience with it, though 
> I'd love to get my hands dirty with it, and with SCOM, but we do have 
> PRTG, which would get very expensive if we tried to monitor 
> workstations with it.)
>
>> If not, do your machines run a startup script through Group Policies?
>> The best solution would be SCCM or something similar, where you can 
>> easily inventory registry keys and wmi data. Second best would be a 
>> logon or shutdown script that mines this data and writes it to a 
>> network share that your computer accounts (domain computers in AD) 
>> have write permissions on.
>
> We have lots of people who never log off or shut down their machines, except 
> when we patch (me included!). It will be better (IMHO) to have all of this 
> gathered and processed in a more controlled fashion.
>
>> Then you would just need  a script to compile all these results into 
>> whatever format you want for viewing, like an excel spreadsheet.
>> Having one machine open connections to all other machines in your 
>> environment is cumbersome, but it will work if some of the other 
>> options are unavailable, or if this is just a one-time event.
>
> I'm intent on building a management station, as a counterpart to our 
> SecurityOnion installation. It'll be performing some other tasks as well - 
> this is just the first step.
>
> BTW - if you're interested, the SANS webcast (which requires free
> registration) is here:
> https://www.sans.org/webcasts/seamless-continuous-monitoring-defend-or
> ganization-cyber-attacks-99472
>
> Kurt
>
>
> ================================================
> Did you know you can also post and find answers on PowerShell in the forums?
> http://www.myitforum.com/forums/default.asp?catApp=1
>
> **********************************************************
> Electronic Mail is not secure, may not be read every day, and should 
> not be used for urgent or sensitive issues
>
> ================================================
> Did you know you can also post and find answers on PowerShell in the forums?
> http://www.myitforum.com/forums/default.asp?catApp=1


================================================
Did you know you can also post and find answers on PowerShell in the forums?
http://www.myitforum.com/forums/default.asp?catApp=1

**********************************************************
Electronic Mail is not secure, may not be read every day, and should not be 
used for urgent or sensitive issues 

================================================
Did you know you can also post and find answers on PowerShell in the forums?
http://www.myitforum.com/forums/default.asp?catApp=1
**********************************************************
Electronic Mail is not secure, may not be read every day, and should not be 
used for urgent or sensitive issues 

================================================
Did you know you can also post and find answers on PowerShell in the forums?
http://www.myitforum.com/forums/default.asp?catApp=1
**********************************************************
Electronic Mail is not secure, may not be read every day, and should not be 
used for urgent or sensitive issues 

================================================
Did you know you can also post and find answers on PowerShell in the forums?
http://www.myitforum.com/forums/default.asp?catApp=1
**********************************************************
Electronic Mail is not secure, may not be read every day, and should not be 
used for urgent or sensitive issues 

================================================
Did you know you can also post and find answers on PowerShell in the forums?
http://www.myitforum.com/forums/default.asp?catApp=1

Reply via email to