当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] Do-Speak:开始与远程计算机交谈(System.Speech)

作者:精品下载站 日期:2024-12-14 07:27:39 浏览:12 分类:玩电脑

Do-Speak:开始与远程计算机交谈(System.Speech)


在本文中,我将向您展示如何使用一个非常简单的命令,该命令适用于本地计算机和远程计算机,并让您的计算机说话。

有时我会有一些奇怪的想法。我找到了 System.Speech 类,并用它来让我的计算机说话。你们中的一些人可能已经阅读过我在此处描述的关于通过短信通知用户的另一篇文章:Active Directory:向所有当前登录的用户发送消息 (msg.exe)。现在我们做了一些不同的事情,我们通过“远程通话”通知我们的用户。

功能“说话”

Do-Speak 使您能够让计算机说出一些内容。 Do-Speak 还支持远程讲话。也就是说,您可以向远程计算机发送短信,然后远程计算机将通过音频输出您的消息。确保您的客户端计算机上启用了 Windows 远程管理 (WinRm)。在 Windows Server 2012 及更高版本中,它默认启用。有关通过 GPO 启用 WinRm 的更多信息,请参阅:组策略:为 Windows 客户端操作系统(Windows 10、Windows 8、Windows 7)启用 WinRM

例子

本地计算机


Do-Speak

[玩转系统] Do-Speak:开始与远程计算机交谈(System.Speech)

远程计算机

当您将音频文本消息发送到远程计算机时,您通常必须使用管理员帐户进行身份验证。因此,我实现了一个命令,在您发送消息之前询问您的凭据。

在这里行动:


Do-Speak -Computer client01

[玩转系统] Do-Speak:开始与远程计算机交谈(System.Speech)

[玩转系统] Do-Speak:开始与远程计算机交谈(System.Speech)

说话功能

在 PowerShell ISE 中复制此代码并按绿色按钮。玩得开心。


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)
}

}

}

使其永久化

如果您喜欢我的方法,请打开 PowerShell ISE。将该函数复制到您的 ISE 会话中。在 C:\Program Files\Windows PowerShell\Modules 中创建一个文件夹,并将代码保存为 psm1 文件。确保您的文件名和文件夹名称匹配。

[玩转系统] Do-Speak:开始与远程计算机交谈(System.Speech)

从现在开始,PowerShell 将在启动时加载自定义模块。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯