Búsqueda de sitios web

Do-Speak: comience a hablar con computadoras remotas (System.Speech)


En este artículo, le mostraré cómo usar un comando muy simple que funciona para la computadora local y remota y permite que sus computadoras hablen.

A veces tengo ideas extrañas. Encontré la clase System.Speech y la usé para dejar hablar a mi computadora. Es posible que algunos de ustedes hayan leído mi otro artículo sobre cómo informar a los usuarios con mensajes de texto que describí aquí: Active Directory: envíe mensajes a todos los usuarios actualmente conectados (msg.exe). Ahora hacemos algo diferente, informamos a nuestros usuarios con “Conversación Remota”.

Función Hablar

Do-Speak le permite dejar que su computadora hable algo. Do-Speak también admite el habla remota. Dicho esto, puede enviar un mensaje de texto a una computadora remota que luego emitirá su mensaje a través de audio. Asegúrese de que la administración remota de Windows (WinRm) esté habilitada en sus computadoras cliente. En Windows Server 2012 y versiones posteriores, está habilitado de forma predeterminada. Más información sobre cómo habilitar WinRm con GPO consulte: Políticas de grupo: Habilitación de WinRM para sistemas operativos de cliente Windows (Windows 10, Windows 8, Windows 7)

Ejemplos

Computadora Local


Do-Speak

Computadora remota

Cuando envía su mensaje de texto de audio a una computadora remota, generalmente debe autenticarse con una cuenta de administrador. Por lo tanto, implementé un comando para solicitarle sus credenciales antes de que pueda enviar el mensaje.

Y aquí en acción:


Do-Speak -Computer client01

La función Do-Speak

Copie este código en PowerShell ISE y presione el botón verde. Diviértete con eso.


Function Do-Speak {

[CmdletBinding()]

param
(

[Parameter(Position=0)]

$Computer

)

If (!$computer)

{

$Text=Read-Host 'Enter Text'

[Reflection.Assembly]::LoadWithPartialName('System.Speech') | Out-Null
$object = New-Object System.Speech.Synthesis.SpeechSynthesizer
$object.Speak($Text)

}

else {

$cred=Get-Credential

$PS=New-PSSession -ComputerName $Computer -Credential $cred

Invoke-Command -Session $PS {
$Text=Read-Host 'Enter Text'

[Reflection.Assembly]::LoadWithPartialName('System.Speech') | Out-Null
$object = New-Object System.Speech.Synthesis.SpeechSynthesizer
$object.Speak($Text)
}

}

}

Hazlo permanente

Si le gusta mi enfoque, abra PowerShell ISE. Copie la función en su sesión ISE. Cree una carpeta en C:\Program Files\Windows PowerShell\Modules y guarde el código como archivo psm1. Asegúrese de que el nombre de su archivo y el nombre de la carpeta coincidan.

De ahora en adelante, PowerShell cargará el módulo personalizado al inicio.

Artículos relacionados