Private/New-TCPClient.ps1
function New-TCPClient { [CmdletBinding()] Param( [Parameter()] [Int]$port=1655, [Parameter(Mandatory)] [string]$server, [Parameter(Mandatory)] [PSCredential]$Credential ) $client = (New-Object System.Net.Sockets.TcpClient $server, $port) $stream = $client.GetStream() $Session = New-Object Net.Security.NegotiateStream -ArgumentList $stream Try { $Session.AuthenticateAsClient( $Credential.GetNetworkCredential(), "MYSERVICE\$Server", [System.Net.Security.ProtectionLevel]::EncryptAndSign, [System.Security.Principal.TokenImpersonationLevel]::Impersonation ) $Session } Catch { Write-Warning $_.Exception.Message } } |