Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 377
  • Last Modified:

Help with scripting problem

Can some please help me out with this problem?

error:
Missing ')' in method call.
At H:\scripting\powershell\fqdmtestscom.ps1:75 char:13
+ Write-Host " <<<< LDAP Elapsed milliseconds $($ts.Milliseconds)" -ForegroundColor Red
    + CategoryInfo          : ParserError: (CloseParenToken:TokenId) [], ParseException
    + FullyQualifiedErrorId : MissingEndParenthesisInMethodCall

Script:



$domain = ‘LDAP://my.domain.com’

$agent = ‘scom.domain.com’

 

$start = [DateTime]::Now

 

$objSearcher = New-Object System.DirectoryServices.DirectorySearcher

$objSearcher.SearchRoot = $domain

$objSearcher.PageSize = 1000

$objSearcher.Filter = “(&(dNSHostName=$agent)(objectClass=computer))

$objSearcher.SearchScope = “SubTree”

 

$colProplist = “name”,“objectSID”

foreach ($i in $colPropList)

{

    $objSearcher.PropertiesToLoad.Add($i) | Out-Null

}

 

$objSearcher.CacheResults=$false

 

$colResults = $objSearcher.FindAll()

 

$ts = New-TimeSpan -Start $start -End ([DateTime]::Now)

$prop = $colResults.Properties

Write-Host “First LDAP Elapsed milliseconds $($ts.Milliseconds)“ -ForegroundColor Yellow

 

$sid = $prop.Item(‘objectSID’)

$txtSid = ([System.BitConverter]::ToString($sid[0])).Replace(‘-’, ”)

 

 

$agentLookup = $domain + ‘/<SID=’ + $txtSid + ‘>’

$start = [DateTime]::Now

$res = [ADSI] $agentLookup

$res | gm | Out-Null

Write-Host ‘Got: ‘ $res.dNSHostName

$ts = New-TimeSpan -Start $start -End ([DateTime]::Now)

 

Write-Host “LDAP Elapsed milliseconds $($ts.Milliseconds)“ -ForegroundColor Red
0
hlaten
Asked:
hlaten
  • 4
  • 3
  • 3
  • +1
1 Solution
 
Raheman M. AbdulSenior Infrastructure Support Analyst & Systems DeveloperCommented:
Check this line:

$txtSid = ([System.BitConverter]::ToString($sid[0])).Replace(‘-’," ”)

Are you missing " in your code?
0
 
becraigCommented:
$domain = ‘LDAP://my.domain.com’

$agent = ‘scom.domain.com’

 

$start = [DateTime]::Now

 

$objSearcher = New-Object System.DirectoryServices.DirectorySearcher

$objSearcher.SearchRoot = $domain

$objSearcher.PageSize = 1000

$objSearcher.Filter = “(&(dNSHostName=$agent)(objectClass=computer))”

$objSearcher.SearchScope = “SubTree”

 

$colProplist = “name”,“objectSID”

foreach ($i in $colPropList)

{

    $objSearcher.PropertiesToLoad.Add($i) | Out-Null

}

 

$objSearcher.CacheResults=$false

 

$colResults = $objSearcher.FindAll()

 

$ts = New-TimeSpan -Start $start -End ([DateTime]::Now)

$prop = $colResults.Properties

Write-Host “First LDAP Elapsed milliseconds $($ts.Milliseconds)“ -ForegroundColor Yellow

 

$sid = $prop.Item(‘objectSID’)

$txtSid = ([System.BitConverter]::ToString($sid[0])).Replace(‘-’,"")

 

 

$agentLookup = $domain + ‘/<SID=’ + $txtSid + ‘>’

$start = [DateTime]::Now

$res = [ADSI] $agentLookup

$res | gm | Out-Null

Write-Host "Got: " $res.dNSHostName

$ts = New-TimeSpan -Start $start -End ([DateTime]::Now)

 
 
Write-Host “LDAP Elapsed milliseconds $($ts.Milliseconds)“ -ForegroundColor Red 

Open in new window

0
 
becraigCommented:
What are you hoping to accomplish with this script ?

It seems to me there might be much easier ways to get what you need.
0
Who's Defending Your Organization from Threats?

Protecting against advanced threats requires an IT dream team – a well-oiled machine of people and solutions working together to defend your organization. Download our resource kit today to learn more about the tools you need to build you IT Dream Team!

 
Dan CraciunIT ConsultantCommented:
I think the property is $ts.Millisecond, not $ts.Milliseconds
0
 
hlatenAuthor Commented:
I am trying to find the ldap lookup time across trusting domains for SCOM 2012 server and agents assigned to domain controllers. If there is an easier way fine, please help. If you stick with the scripts is there also away to have the server defined in "$domain = ‘LDAP://" and the response time defined in a spreadsheet, (csv) or html report, showing server and response time? These domains are international domains aspread across the world.
0
 
Raheman M. AbdulSenior Infrastructure Support Analyst & Systems DeveloperCommented:
@Dan. $ts.Milliseconds  is right. please check the property again
@hlaten:   Is your script worked when you follow my comment . ie you missed " in one of the line i shown in my first comment.
0
 
Dan CraciunIT ConsultantCommented:
Yup.
It's date.Millisecond, timespan.Milliseconds.
Confusing, isn't it ? :)
0
 
hlatenAuthor Commented:
This is what I get when I run the script:

PS H:\scripting\powershell> ./fqdmtestscom.ps1
Exception calling "FindAll" with "0" argument(s): "There is no such object on the server.
"
At H:\scripting\powershell\fqdmtestscom.ps1:41 char:35
+ $colResults = $objSearcher.FindAll <<<< ()
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : DotNetMethodException

First LDAP Elapsed milliseconds 359
You cannot call a method on a null-valued expression.
At H:\scripting\powershell\fqdmtestscom.ps1:53 char:18
+ $sid = $prop.Item <<<< (`objectSID')
    + CategoryInfo          : InvalidOperation: (Item:String) [], RuntimeException
    + FullyQualifiedErrorId : InvokeMethodOnNull

Cannot index into a null array.
At H:\scripting\powershell\fqdmtestscom.ps1:55 char:49
+ $txtSid = ([System.BitConverter]::ToString($sid[ <<<< 0])).Replace(`-',"")
    + CategoryInfo          : InvalidOperation: (0:Int32) [], RuntimeException
    + FullyQualifiedErrorId : NullArray

Got:
LDAP Elapsed milliseconds 6
PS H:\scripting\powershell>
0
 
becraigCommented:
Can you say what you're trying to do we can maybe find an easier way.
0
 
Raheman M. AbdulSenior Infrastructure Support Analyst & Systems DeveloperCommented:
update:

$objSearcher.SearchRoot="LDAP://dc=MyDomain, dc=com"
0
 
hlatenAuthor Commented:
Still get this:

PS H:\scripting\powershell> ./fqdmtestscom.ps1
First LDAP Elapsed milliseconds 429
You cannot call a method on a null-valued expression.
At H:\scripting\powershell\fqdmtestscom.ps1:54 char:18
+ $sid = $prop.Item <<<< (`objectSID')
    + CategoryInfo          : InvalidOperation: (Item:String) [], RuntimeException
    + FullyQualifiedErrorId : InvokeMethodOnNull

Cannot index into a null array.
At H:\scripting\powershell\fqdmtestscom.ps1:56 char:49
+ $txtSid = ([System.BitConverter]::ToString($sid[ <<<< 0])).Replace(`-',"")
    + CategoryInfo          : InvalidOperation: (0:Int32) [], RuntimeException
    + FullyQualifiedErrorId : NullArray

Got:
LDAP Elapsed milliseconds 430
PS H:\scripting\powershell>
0
 
hlatenAuthor Commented:
The task was succesful.
0

Featured Post

Who's Defending Your Organization from Threats?

Protecting against advanced threats requires an IT dream team – a well-oiled machine of people and solutions working together to defend your organization. Download our resource kit today to learn more about the tools you need to build you IT Dream Team!

  • 4
  • 3
  • 3
  • +1
Tackle projects and never again get stuck behind a technical roadblock.
Join Now