I like the idea. Tried that, still same issue. First part of script works, 
second does not.  :/

 

From: [email protected] [mailto:[email protected]] On 
Behalf Of Todd Hemsell
Sent: Wednesday, June 8, 2016 11:44 AM
To: [email protected]
Subject: Re: [mssms] More PowerShell help, please

 

run it as a DCM rule as user with admin permissions. 

 

On Wed, Jun 8, 2016 at 1:30 PM, Murray, Mike <[email protected] 
<mailto:[email protected]> > wrote:

I’m still trying to inventory network printers on computers. The script below 
is a combination of the two scripts mentioned here: 
https://gallery.technet.microsoft.com/SCCM-2012-NETWORK-PRINTER-776b59b4

 

I deploy it as a package that runs only when a user is logged on. It runs, but 
only does the first part of the script. It creates a new registry entry under 
HKLM\SOFTWARE\Wow6432Node called SCCMINVENTORY, and another under that called 
NETWORKPRINTERS. But the printers do not enumerate. If I run the script 
locally, they do. Any ideas why?

 

#Configure Registry

if (!(Test-Path HKLM:\SOFTWARE\SCCMINVENTORY)) {new-item 
HKLM:\SOFTWARE\SCCMINVENTORY  -ErrorAction SilentlyContinue} 

$perm = get-acl HKLM:\SOFTWARE\SCCMINVENTORY  -ErrorAction SilentlyContinue 

$rule = New-Object 
System.Security.AccessControl.RegistryAccessRule("Authenticated 
Users","FullControl", "ContainerInherit, ObjectInherit", "InheritOnly", 
"Allow")  -ErrorAction SilentlyContinue 

$perm.SetAccessRule($rule) 

Set-Acl -Path HKLM:\SOFTWARE\SCCMINVENTORY $perm  -ErrorAction SilentlyContinue 

if (!(Test-Path HKLM:\SOFTWARE\SCCMINVENTORY\NETWORKPRINTERS)) {new-item 
HKLM:\SOFTWARE\SCCMINVENTORY\NETWORKPRINTERS -ErrorAction SilentlyContinue}

 

#Enumerate Printers

$printers = Get-WMIObject -class Win32_Printer -ErrorAction 
SilentlyContinue|select-Object -Property 
ServerName,ShareName,Location,DriverName,PrintProcessor,PortName,Local 
|Where-Object {$_.Local -ne $true}-ErrorAction SilentlyContinue 

ForEach($printer in $printers){ 

    $PServerName= $printer.ServerName -replace ('\\','') 

    $PShareName = $printer.ShareName 

    $PLocation = $printer.Location 

    $PDriverName = $printer.DriverName 

    $PPrintProcessor = $printer.PrintProcessor 

    $PPortName = $printer.PortName 

    if ((Test-Path HKLM:\SOFTWARE\SCCMINVENTORY\NETWORKPRINTERS)) { 

        if ((Test-Path 
"HKLM:\SOFTWARE\SCCMINVENTORY\NETWORKPRINTERS\$PShareName on $PServerName")) { 

            Remove-item 
"HKLM:\SOFTWARE\SCCMINVENTORY\NETWORKPRINTERS\$PShareName on $PServerName" 
-Force -ErrorAction SilentlyContinue 

        } 

        New-item "HKLM:\SOFTWARE\SCCMINVENTORY\NETWORKPRINTERS\$PShareName on 
$PServerName" -ErrorAction SilentlyContinue 

        New-ItemProperty 
"HKLM:\SOFTWARE\SCCMINVENTORY\NETWORKPRINTERS\$PShareName on $PServerName" 
-Name "PrintServer" -Value $PServerName -PropertyType "String" -ErrorAction 
SilentlyContinue 

        New-ItemProperty 
"HKLM:\SOFTWARE\SCCMINVENTORY\NETWORKPRINTERS\$PShareName on $PServerName" 
-Name "PrinterQueue" -Value $PShareName -PropertyType "String" -ErrorAction 
SilentlyContinue 

        New-ItemProperty 
"HKLM:\SOFTWARE\SCCMINVENTORY\NETWORKPRINTERS\$PShareName on $PServerName" 
-Name "PrinterLocation" -Value $PLocation -PropertyType "String" -ErrorAction 
SilentlyContinue 

        New-ItemProperty 
"HKLM:\SOFTWARE\SCCMINVENTORY\NETWORKPRINTERS\$PShareName on $PServerName" 
-Name "PrinterDriver" -Value $PDriverName -PropertyType "String" -ErrorAction 
SilentlyContinue 

        New-ItemProperty 
"HKLM:\SOFTWARE\SCCMINVENTORY\NETWORKPRINTERS\$PShareName on $PServerName" 
-Name "PrintProcessor" -Value $PPrintProcessor -PropertyType "String" 
-ErrorAction SilentlyContinue 

        New-ItemProperty 
"HKLM:\SOFTWARE\SCCMINVENTORY\NETWORKPRINTERS\$PShareName on $PServerName" 
-Name "PrinterPortName" -Value $PPortName -PropertyType "String" -ErrorAction 
SilentlyContinue 

        New-ItemProperty 
"HKLM:\SOFTWARE\SCCMINVENTORY\NETWORKPRINTERS\$PShareName on $PServerName" 
-Name "DateInventoried" -Value $(get-date) -PropertyType "String" -ErrorAction 
SilentlyContinue 

    } 

} 

 

 

 

Best Regards,

 

Mike Murray

Desktop Management Coordinator - IT Support Services

California State University, Chico

530.898.4357
[email protected] <mailto:[email protected]> 

 

Remember, Chico State will NEVER ask you for your password via email!  

For more information about recognizing phishing scam emails go to:  
<http://www.csuchico.edu/isec/basics/spam-and-phishing.shtml> 
http://www.csuchico.edu/isec/basics/spam-and-phishing.shtml

 

 

 

 

 




Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to