Jump to content

WMI script question


 Share

Recommended Posts

I have a piece of code that works OK in VB but is not working in AutoIT and I was wondering if you could give me a hand. Below is a functional code snippet from the larger script that includes the problem code. Perhaps someone that is better at WMI than me can see where the issue is.

$report = "c:\test.txt"
$strComputer = "."
$objFile = FileOpen ($report, 2)

$objWMIService2 = ObjGet("winmgmts:{impersonationLevel=impersonate}!\\"&$strComputer&"\root\CIMV2\Applications\MicrosoftIE")
    $colIESettings2 = $objWMIService2.ExecQuery ("Select * from MicrosoftIE_ConnectionSettings")
    
        For $strIESetting in $colIESettings2
            FileWrite ( $objFile, "<tr>"&@CRLF&"<td>Autoconfiguration URL:</td>"&@CRLF )
            FileWrite ( $objFile, "<td>"&$strIESetting.AutoConfigURL&"</td>"&@CRLF )
            FileWrite ( $objFile, "<td> &nbsp </td></tr>"&@CRLF )
            
            FileWrite ( $objFile, "<tr>"&@CRLF&"<td>Proxy Server:</td>"&@CRLF )
            FileWrite ( $objFile, "<td>" )
                $PS = StringSplit($strIESetting.ProxyServer, ";")
                For $settinG in $PS
                    FileWrite ( $objFile, $settinG&"<br>"&@CRLF )
                Next
            FileWrite ( $objFile, "<\td>" )
            FileWrite ( $objFile, "<td> &nbsp </td></tr>"&@CRLF )
        Next
        
        FileClose ( $objFile )

The output of the code is in html, so if you get it working the output will be the middle of a table that is defined earlier in my script.

Thanks - Tom

Anyone have a TRS 80 Model III for sale?
Link to comment
Share on other sites

I have auto setup here at work... maybe that is why I get no data...

Lar.

edit: yes even the vbs returns no data...

Lar.

We have an auto script here as well, but the script should still do something - if you put a msgbox inside the for - in loop it never trips. I am working on trimming the VB script into a similar code that does work.

Tom

Anyone have a TRS 80 Model III for sale?
Link to comment
Share on other sites

this code is certainly wrong

$PS = StringSplit($strIESetting.ProxyServer, ";")
                For $settinG in $PS
                    FileWrite ( $objFile, $settinG&"<br>"&@CRLF )
                Next

$PS is an array the first element being the number of substring.

So the $settinG will generate a filewrite for this first element which is obviously what you don't intend to do.

Change to

For $settinG = 1 to $PS[0]
Filewrite($objFile, $PS[$settinG] & "<br>"& @CRLF)
next

I am not familiar with VB but the StringSplit must be different B)

Link to comment
Share on other sites

this code is certainly wrong

$PS = StringSplit($strIESetting.ProxyServer, ";")
                For $settinG in $PS
                    FileWrite ( $objFile, $settinG&"<br>"&@CRLF )
                Next

$PS is an array the first element being the number of substring.

So the $settinG will generate a filewrite for this first element which is obviously what you don't intend to do.

Change to

For $settinG = 1 to $PS[0]
Filewrite($objFile, $PS[$settinG] & "<br>"& @CRLF)
next

I am not familiar with VB but the StringSplit must be different B)

I almost pulled that bit out since I haddn't massaged it much from the VB to AU3 conversion tool that I ran on the original script - at leat this indicates that if I can ever get the For - IN loop to do anything that I will at least have an error to let me know its working
Anyone have a TRS 80 Model III for sale?
Link to comment
Share on other sites

I almost pulled that bit out since I haddn't massaged it much from the VB to AU3 conversion tool that I ran on the original script - at leat this indicates that if I can ever get the For - IN loop to do anything that I will at least have an error to let me know its working

OK - I see what the VB script is doing, and this looks like a piece of junk code that was never removed, I'll post the working code as soon as I get it flushed out. Thank you all.

Tom

Anyone have a TRS 80 Model III for sale?
Link to comment
Share on other sites

OK, here is the correct WMI call for the IE proxy settings

Tom

#include <Array.au3>
$report = "c:\test.txt"
$strComputer = "."
$objFile = FileOpen ($report, 2)

$objWMIService2 = ObjGet("winmgmts:{impersonationLevel=impersonate}!\\"&$strComputer&"\root\CIMV2\Applications\MicrosoftIE")
$colIESettings3 = $objWMIService2.ExecQuery ("Select * from MicrosoftIE_LANSettings")

For $strIESetting2 in $colIESettings3
    FileWrite ( $objFile, "<tr>"&@CRLF&"<td>Auto-Proxy URL:</td>"&@CRLF )
    FileWrite ( $objFile, "<td>"&$strIESetting2.AutoConfigURL&"</td>"&@CRLF )
    FileWrite ( $objFile, "<td> &nbsp </td></tr>"&@CRLF )
    
    FileWrite ( $objFile, "<tr>"&@CRLF&"<td>Auto-Proxy detection mode:</td>"&@CRLF )
    FileWrite ( $objFile, "<td>"&$strIESetting2.AutoProxyDetectMode&"</td>"&@CRLF )
    FileWrite ( $objFile, "<td> &nbsp </td></tr>"&@CRLF )
    
    FileWrite ( $objFile, "<tr>"&@CRLF&"<td>Proxy override excludes:</td>"&@CRLF )
    FileWrite ( $objFile, "<td>"&$strIESetting2.ProxyOverride&"</td>"&@CRLF )
    FileWrite ( $objFile, "<td> &nbsp </td></tr>"&@CRLF )
    
    FileWrite ( $objFile, "<tr>"&@CRLF&"<td>Proxy override settings:</td>"&@CRLF&"<td>" )
    $PS2 = StringSplit( $strIESetting2.ProxyServer, ";")
    _ArrayDelete ( $PS2, 0 )
    For $settinG1 in $PS2
        FileWrite ( $objFile, $settinG1&"<BR>"&@CRLF)
    Next
    FileWrite ( $objFile, "</td></tr>" )
Next

FileClose ( $objFile )

I have a piece of code that works OK in VB but is not working in AutoIT and I was wondering if you could give me a hand. Below is a functional code snippet from the larger script that includes the problem code. Perhaps someone that is better at WMI than me can see where the issue is.

$report = "c:\test.txt"
$strComputer = "."
$objFile = FileOpen ($report, 2)

$objWMIService2 = ObjGet("winmgmts:{impersonationLevel=impersonate}!\\"&$strComputer&"\root\CIMV2\Applications\MicrosoftIE")
    $colIESettings2 = $objWMIService2.ExecQuery ("Select * from MicrosoftIE_ConnectionSettings")
    
        For $strIESetting in $colIESettings2
            FileWrite ( $objFile, "<tr>"&@CRLF&"<td>Autoconfiguration URL:</td>"&@CRLF )
            FileWrite ( $objFile, "<td>"&$strIESetting.AutoConfigURL&"</td>"&@CRLF )
            FileWrite ( $objFile, "<td> &nbsp </td></tr>"&@CRLF )
            
            FileWrite ( $objFile, "<tr>"&@CRLF&"<td>Proxy Server:</td>"&@CRLF )
            FileWrite ( $objFile, "<td>" )
                $PS = StringSplit($strIESetting.ProxyServer, ";")
                For $settinG in $PS
                    FileWrite ( $objFile, $settinG&"<br>"&@CRLF )
                Next
            FileWrite ( $objFile, "<\td>" )
            FileWrite ( $objFile, "<td> &nbsp </td></tr>"&@CRLF )
        Next
        
        FileClose ( $objFile )

The output of the code is in html, so if you get it working the output will be the middle of a table that is defined earlier in my script.

Thanks - Tom

Anyone have a TRS 80 Model III for sale?
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...