Quantcast
Channel: Windows PowerShell forum
Viewing all articles
Browse latest Browse all 21975

Function wont accept parameter in script

$
0
0

I am having an issue with a function of mine acception a parameter. If I copy/paste the function into the shell and run it then set the variable and call the function it works! But if I run the script the function doesnt accept the parameter. Below is the primary snippets, if you want the whole script let me know.

$user = 'someusername'
#$computer = 'somecomputer'

function PrinterData {
    param(
        [string]$computer,
        [string]$user
    )

    $sqlserver = "CONFIGMGRSERVER"
    $sqldb = "CM_CAS"
    $sqlquery = "
    SELECT  dbo.v_R_System.Name0, dbo.v_R_System.User_Name0, dbo.v_GS_PRINTER_DEVICE.Name0, dbo.v_GS_PRINTER_DEVICE.DeviceID0, 
            dbo.v_GS_PRINTER_DEVICE.DriverName0, dbo.v_GS_PRINTER_DEVICE.PortName0
    FROM    dbo.v_R_System INNER JOIN
            dbo.v_GS_PRINTER_DEVICE ON dbo.v_R_System.ResourceID = dbo.v_GS_PRINTER_DEVICE.ResourceID
    where (PortName0 not like 'LPT%' 
			and PortName0 not like '%HPFAX' 
			and PortName0 not like '%rightfax\spooljob%' 
			and PortName0 not like '%TechSmith%' 
			and PortName0 not like '%pdf%' 
			and PortName0 not like 'Microsoft%:' 
			and PortName0 != 'nul:' 
			and PortName0 != 'SHRFAX:' 
			and PortName0 != 'XPSPort:' 
			and PortName0 != 'CCMS_FAX' 
			and PortName0 not like '%APDCPort%:%' 
			and PortName0 not like '%COM%:%' 
			and PortName0 not like 'c:\%' 
			and PortName0 != 'FAX:' 
			and PortName0 != 'File:' 
			and PortName0 != 'CPW2:' 
			and PortName0 != 'FXC:' 
			and PortName0 not like 'iceport%' 
			and PortName0 != 'NVK6:' 
			and dbo.v_GS_PRINTER_DEVICE.Name0 not like '%pdf%') 
            and (dbo.v_R_System.Name0 = '$computer' or dbo.v_R_System.User_Name0 = '$user')"

    $connection_string = "server=$sqlserver;database=$sqldb;Integrated Security=sspi"

    $sqlConnection = new-object System.Data.SqlClient.SqlConnection $connection_string
    $sqlConnection.Open()

    $adapter = new-object data.sqlclient.sqldataadapter($sqlquery, $sqlConnection)

    $set = new-object data.dataset
    $adapter.fill($set) | out-null
    $global:table = new-object data.datatable
    $global:table = $set.tables[0] 
    write-host "--- Found the following printers to migrate ---" -ForegroundColor cyan
    $global:table
}
function PrinterList {
    Param(
        $printerip
    )
    write-host "Printerip: $printerip"

    $mysqlserver = "SERVER"
    $mysqldb = "printer_list"
    $mysqluser = "USER"
    $mysqlpassword = 'PASS'
    $mysqlconnectionstring = "Server=$mysqlserver; Database=$mysqldb; User=$mysqluser; Password=$mysqlpassword"

    $mysqlquery = "
    SELECT       *
    FROM         printers
    WHERE ip = '$printerip'"

    [void][System.Reflection.Assembly]::LoadFrom("D:\scripts\printerinstall\MySql.Data.dll")

    $connection = New-Object MySql.Data.MySqlClient.MySqlConnection
    $connection.ConnectionString = $mysqlconnectionString
    $connection.Open()
    $command = New-Object MySql.Data.MySqlClient.MySqlCommand($mysqlquery, $connection)
    $dataAdapter = New-Object MySql.Data.MySqlClient.MySqlDataAdapter($command)
    $mysqltable = New-Object System.Data.DataTable
    $recordCount = $dataAdapter.Fill($mysqltable)
    $global:mysqltable | select Model,IP,Building,Floor,Printer_ID
}
$dataip = $table.PortName0
write-host "DataIP: $dataip"
$driver = $table.DriverName0
write-host "Driver: $driver"   
$printer = printerlist -printerip $dataip
$printer

I am not sure if its because of the type of data the first function returns or if there is something wrong with my printerlist function.

Any ideas?



Viewing all articles
Browse latest Browse all 21975

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>