Powershell 抑制证书通知
Powershell Suppress Certificate Notification
我正在编写脚本以使用 RDP 协议从 Windows 10 客户端连接到终端服务器。
背后的想法是:在这些瘦客户端上,我们有大约 20 个 RDP 文件。其中大约有 10 个,需要保护密码。
因此,如果您总是必须在每个新的 ThinClient 上保存密码,那么工作量会很大。
但我认为我可以使用 powershell 脚本解决这个问题。我只需成功打开连接 1 次并保存凭据,然后进一步保存凭据。
我会先展示我的代码:
$Server = "xx.yy.zz.xx"
$User = "DOMAIN\User"
$password = "password"
cmdkey /generic:"$Server" /user:"$User" /pass:"$password"
mstsc /v:"$Server"
到目前为止这有效。
但我总是收到这个通知:
这是来自互联网的符号图片,因为我的通知是德语的。完全一样,只是更容易理解。
即使我安装了证书,通知仍然弹出。
如何使用 Powershell 检查该字段,其中显示 不要再询问我是否连接到此计算机?
好的,我找到了解决办法!
勾选 "Dont ask me again..."
时会生成注册表项
现在我只是用我的 Powershell 脚本添加了必要的注册表项..
function Test-RegistryValue {
param (
[parameter(Mandatory=$true)]
[ValidateNotNullOrEmpty()]$Path,
[parameter(Mandatory=$true)]
[ValidateNotNullOrEmpty()]$Value
)
try{
Get-ItemProperty -Path $Path | Select-Object -ExpandProperty $Value -ErrorAction Stop | Out-Null
return $true
}
catch{
return $false
}
}
#Certificate warning turn off
$exists = Test-RegistryValue -Path 'HKCU:\Software\Microsoft\Terminal Server Client' -Value 'AuthenticationLevelOverride'
if($exists -eq $False){
reg add "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client" /v "AuthenticationLevelOverride" /t "REG_DWORD" /d 0 /f
}
像这样它可以在没有这个证书通知的情况下工作!
我正在编写脚本以使用 RDP 协议从 Windows 10 客户端连接到终端服务器。
背后的想法是:在这些瘦客户端上,我们有大约 20 个 RDP 文件。其中大约有 10 个,需要保护密码。
因此,如果您总是必须在每个新的 ThinClient 上保存密码,那么工作量会很大。
但我认为我可以使用 powershell 脚本解决这个问题。我只需成功打开连接 1 次并保存凭据,然后进一步保存凭据。
我会先展示我的代码:
$Server = "xx.yy.zz.xx"
$User = "DOMAIN\User"
$password = "password"
cmdkey /generic:"$Server" /user:"$User" /pass:"$password"
mstsc /v:"$Server"
到目前为止这有效。
但我总是收到这个通知:
这是来自互联网的符号图片,因为我的通知是德语的。完全一样,只是更容易理解。
即使我安装了证书,通知仍然弹出。
如何使用 Powershell 检查该字段,其中显示 不要再询问我是否连接到此计算机?
好的,我找到了解决办法! 勾选 "Dont ask me again..."
时会生成注册表项现在我只是用我的 Powershell 脚本添加了必要的注册表项..
function Test-RegistryValue {
param (
[parameter(Mandatory=$true)]
[ValidateNotNullOrEmpty()]$Path,
[parameter(Mandatory=$true)]
[ValidateNotNullOrEmpty()]$Value
)
try{
Get-ItemProperty -Path $Path | Select-Object -ExpandProperty $Value -ErrorAction Stop | Out-Null
return $true
}
catch{
return $false
}
}
#Certificate warning turn off
$exists = Test-RegistryValue -Path 'HKCU:\Software\Microsoft\Terminal Server Client' -Value 'AuthenticationLevelOverride'
if($exists -eq $False){
reg add "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client" /v "AuthenticationLevelOverride" /t "REG_DWORD" /d 0 /f
}
像这样它可以在没有这个证书通知的情况下工作!