Powershell issues with splitting or trimming data in a $string



  • I have team member who needs a powershell script to pull from a list of 3500 domains, and get the whois data for each and output to a CSV he can do filtering and pivot tables on. I am using the whois.exe tool from sysinternals to pull the data into a $string and I am trying to trim all the data out of the string after a set of characters and I can't seem to get it to work using .split or .trim. It always just outputs the entire returned results. Any ideas?

    CODE:

    $domains = Get-Content C:\temp\chip\domains.txt

    foreach($domain in $domains)
    {
    $domain | Out-File -filepath C:\temp\chip\whois_data.csv -append
    $data = .\WhoIs.exe $domain.split("DNSSEC:")[0]
    $data[0] | Out-File -filepath C:\temp\chip\whois_data.csv -append
    Write-Host "Query complete for" $domain
    }



  • What is the output of the whois.exe line?



  • @dafyre
    I just have google.com in the domains.txt now for testing purposes, this it the output on the one domain.

    google.com
    Whois v1.14 - Domain information lookup
    Copyright (C) 2005-2016 Mark Russinovich
    Sysinternals - www.sysinternals.com
    Connecting to COM.whois-servers.net...
    Domain ID: 2138514_DOMAIN_COM-VRSN
    Registrar WHOIS Server: whois.markmonitor.com
    Registrar URL: http://www.markmonitor.com
    Updated Date: 2011-07-20T16:55:31Z
    Creation Date: 1997-09-15T04:00:00Z
    Registry Expiry Date: 2020-09-14T04:00:00Z
    Registrar: MarkMonitor Inc.
    Registrar IANA ID: 292
    Registrar Abuse Contact Email: [email protected]
    Registrar Abuse Contact Phone: +1.2083895740
    Domain Status: clientDeleteProhibited https://icann.org/epp#clientDeleteProhibited
    Domain Status: clientTransferProhibited https://icann.org/epp#clientTransferProhibited
    Domain Status: clientUpdateProhibited https://icann.org/epp#clientUpdateProhibited
    Domain Status: serverDeleteProhibited https://icann.org/epp#serverDeleteProhibited
    Domain Status: serverTransferProhibited https://icann.org/epp#serverTransferProhibited
    Domain Status: serverUpdateProhibited https://icann.org/epp#serverUpdateProhibited
    Name Server: NS1.GOOGLE.COM
    Name Server: NS2.GOOGLE.COM
    Name Server: NS3.GOOGLE.COM
    Name Server: NS4.GOOGLE.COM
    DNSSEC: unsigned
    URL of the ICANN Whois Inaccuracy Complaint Form: https://www.icann.org/wicf/

    Last update of whois database: 2017-10-17T18:17:02Z <<<
    For more information on Whois status codes
    NOTICE: The expiration date displayed in this record is the date the
    registrar's sponsorship of the domain name registration in the registry is
    currently set to expire. This date does not necessarily reflect the expiration
    date of the domain name registrant's agreement with the sponsoring
    registrar. Users may consult the sponsoring registrar's Whois database to
    view the registrar's reported date of expiration for this registration.
    TERMS OF USE: You are not authorized to access or query our Whois
    database through the use of electronic processes that are high-volume and
    automated except as reasonably necessary to register domain names or
    modify existing registrations; the Data in VeriSign Global Registry
    Services' ("VeriSign") Whois database is provided by VeriSign for
    information purposes only
    about or related to a domain name registration record. VeriSign does not
    guarantee its accuracy. By submitting a Whois query
    by the following terms of use: You agree that you may use this Data only
    for lawful purposes and that under no circumstances will you use this Data
    to: (1) allow
    unsolicited
    or facsimile; or (2) enable high volume
    that apply to VeriSign (or its computer systems). The compilation
    repackaging
    prohibited without the prior written consent of VeriSign. You agree not to
    use electronic processes that are automated and high-volume to access or
    query the Whois database except as reasonably necessary to register
    domain names or modify existing registrations. VeriSign reserves the right
    to restrict your access to the Whois database in its sole discretion to ensure
    operational stability. VeriSign may restrict or terminate your access to the
    Whois database for failure to abide by these terms of use. VeriSign
    reserves the right to modify these terms at any time.
    The Registry database contains ONLY .COM
    Registrars.



  • Whois.exe outputs each line of text as an array element...

    $data[0]=""
    $data[1]="Whois v1.14 - Domain information lookup"
    .
    .
    .
    To output it to a file, you could do...

    $data -join ","|out-file -filepath "C:\temp\chip\whois_data.csv" -append



  • @dafyre
    It already outputs everything to a file, that's the issue, it outputs everything, and I don't want anything after "DNSSEC"

    🙂



  • @computerchip said in Powershell issues with splitting or trimming data in a $string:
    Change this: $data[0] | Out-File -filepath C:\temp\chip\whois_data.csv -append

    to

    $data=$data -join ","
    $intLastChar=$data.indexof("DNSSEC")+2
    $data=$data.substring(0,$intLastChar)
    

    That converts $data to a string (separated by comma), finds "DNSSEC" and adds two to it (to remove the leading comma), and then tosses out everything extra.



  • @dafyre said in Powershell issues with splitting or trimming data in a $string:

    @computerchip said in Powershell issues with splitting or trimming data in a $string:
    Change this: $data[0] | Out-File -filepath C:\temp\chip\whois_data.csv -append

    to

    $data=$data -join ","
    $intLastChar=$data.indexof("DNSSEC")+2
    $data=$data.substring(0,$intLastChar)
    

    That converts $data to a string (separated by comma), finds "DNSSEC" and adds two to it (to remove the leading comma), and then tosses out everything extra.

    I believe that's going to work, testing more now. Thanks!


Log in to reply