Quantcast
Channel: PowerShell.org » All Posts
Viewing all articles
Browse latest Browse all 13067

WSMan Config issue?.

$
0
0

Hello-

I am running into a problem when I am piping computer names into a function I put together

I have a list of 88 computers names saved as in a text file. The first 31 come back with the correct data and then the script stalls. Could this WSMan Config issue?

He is the code I am working with.

Any Help would be greatly Appreciated

ipcsv .\computer.csv | get-eddyinventory | exxport.csv .\inv.csv

function Test-PsRemoting 
{ 
     [CmdletBinding()]            
 Param             
   (                       
    [Parameter(Mandatory=$true,
               Position=0,                          
               ValueFromPipeline=$true,            
               ValueFromPipelineByPropertyName=$true)]   
        $computername 
    ) 
    
    try 
    { 
        $errorActionPreference = “Stop” 
        $result = Invoke-Command -ComputerName $computername { 1 } 
    } 
    catch 
    { 
        Write-Verbose $_ 
        return $false 
    } 
    
    ## I’ve never seen this happen, but if you want to be 
    ## thorough…. 
    if($result -ne 1) 
    { 
        Write-Verbose “Remoting to $computerName returned an unexpected result.” 
        return $false 
    } 
    
    $true    
}

Function Get-EddyInventory {
# $b | select @{n=”computername”;e={$_.name}} | Get-EddyInventory 
 [CmdletBinding()]            
 Param             
   (                       
    [Parameter(Mandatory=$true,
               Position=0,                          
               ValueFromPipeline=$true,            
               ValueFromPipelineByPropertyName=$true)]            
    [Object]$Object,
    [String]$Parameter
    )#End Param  
  Begin            
{            
  $ErrorActionPreference = “SilentlyContinue”
          
}#Begin  
           
   Process            
{

       trap {
   $computer | out-file c:\errors.txt -append
   continue
  }

    $Object | ForEach-Object {
         if ($Parameter)
            {
                $Computer = $_.”$Parameter”
                $test = Test-PsRemoting -computername $Computer

            }
        elseif ($_.ComputerName)
            {
                $Computer = $_.ComputerName    
                $test = Test-PsRemoting -computername $Computer
            }
        else    
            {
                $Computer = $_
                $test = Test-PsRemoting -computername $Computer
            }
      
        
        if ($test -eq $true)
            {
            $os = Get-WMIObject -Class win32_operatingsystem  -comp $Computer  -ea stop
            $cs = Get-WmiObject -Class win32_computersystem -comp $Computer    -ea stop
            $bios =Get-WmiObject -Class Win32_BIOS -Computername $Computer     -ea Stop

            $data = new-object psobject
            $data | add-member noteproperty ‘Computer Name’ $cs.name
            $data | add-member noteproperty ‘User Name’ $cs.Username
            $data | add-member noteproperty ‘Operating System’ $os.caption
            $data | add-member noteproperty ‘Install Date’ $os.ConvertToDateTime($os.installdate)
            $data | add-member noteproperty ‘Model’ $cs.model
            $data | add-member noteproperty ‘Servie Tag’ $bios.SerialNumber
            $data | add-member noteproperty ‘RAM’ ($CS.TotalPhysicalMemory/1GB -AS [INT])

            write $data 
               
                
            }
         else
            {
   $computer | out-file c:\errors.txt -append
            }
    }#Foreach-Object (Computers)
    
} 
} 
 

Viewing all articles
Browse latest Browse all 13067

Trending Articles