PowerShell - Enviar y recibir comandos PowerShell

 
Vista:
sin imagen de perfil
Val: 8
Ha mantenido su posición en PowerShell (en relación al último mes)
Gráfica de PowerShell

Enviar y recibir comandos PowerShell

Publicado por Meta (9 intervenciones) el 26/12/2021 05:42:21
Hola:

Teniendo dos PC o ordenadores con Windows 10, quiero hacer un programa que sea capaz de enviar letras de un PC a otro PC, como si fuera un mini chat pero entre dos personas.

Por ejemplo, los datos son enviados por el puerto serie RS232.

El ejemplo que he hecho hasta ahora no es del todo eficiente, faltan detalles que quiero resolver.

Por ejemplo, que te pida de entrada un número.

Puerto COM:

Pongo el 1 y ya se queda configurado como COM1.

Si el puerto COM1 sea físico o virtual está en uso, que muestre un mensaje que lo indique y vuelva a pedir la misma pregunta sobre que puerto usar e introducirlo el usuario.

Cuando todo esté correcto, que muestre un mensaje desde el principio.

Enviar mensaje:

Una vez enviado, como hola mundo.

Desde el otro lado que se pueda recibir mensaje, por ejemplo, en el otro PC puede enviarme.

He recibido su mensaje y en el programa ponga cada vez que reciba un texto.

PC2: He recibido su mensaje

Cada vez que reciba un mensaje por parte del otro P, siempre debe aparecer PC2 para saber que es él. Si envío algo, que pongo PC1. Así se sabe quien envía y quién recibe.

Solo he hecho algunos ejemplos pero es ineficiente o no es como quiero realmente.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# Para comprobar los puertos series disponibles en el sistema:
[System.IO.Ports.SerialPort]::getportnames()
 
# O bien de una manera más exhaustiva:
Get-WMIObject Win32_SerialPort
 
# Establecer los parámetros básicos de conexión. Una tipica conexión 9600 bps, 8N1 sin control de flujo sería la siguiente:
$puertoCOM="COM1"  	# El puerto serie que se quiere emplear
$bps=9600			# La tasa de baudios por segundo del puerto. Típicos valores entre 1200 (o incluso menos) y 115200 (o incluso más)
$paridad=[System.IO.Ports.Parity]::None # Paridad de datos. Puede ser Even (par), Odd (impar) o None (sin paridad)
$dataBits=8			# Bits de datos. Puede ser 7 u 8
$stopBits=[System.IO.Ports.StopBits]::one	# Bits de parada. Puede ser one (1), onepointfive (1.5) o two (dos)
$puerto=New-Object System.IO.Ports.SerialPort $puertoCOM,$bps,$paridad,$dataBits,$stopBits   # Crea la nueva instancia
 
# Se pueden establecer otros parámetros, como la activación del control del flujo por RTS/CTS , DTR/DSR, Handshake, fijar el tamaño de los buffers de lectura y escritura o establecer los timeouts de lectura. Todos estos parámetros, así como el estado general del resto, se pueden consultar llamando al objeto:
$puerto
$puerto.ReadTimeout=500		# Establece un timeout de lectura de 500 mseg
$puerto.WriteTimeout=250	# Establece un timeout de escritura de 250 mseg
 
# Abre el puerto
$puerto.Open()
 
# Lectura del puerto
$mensaje=$puerto.ReadLine()
 
# Escritura del puerto
$mensaje="Esto es un mensaje"
$puerto.WriteLine($mensaje)
 
# Cierra el puerto
$puerto.Close()

¿Alguna idea?

Felices fiestas 2021.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder