两个VNC服务器强制关闭MS登录组时遇到麻烦。我正在对问题进行故障排除,我想做的一件事是监视config .ini文件。我是PowerShell的新手,无法完全使用它。
基本上,我希望脚本检查配置文件(ultravnc.ini)的内容,并查看该文件中的字符串是否为“ MSLogonRequired = 1”。如果没有,我想将日期附加到日志文件中。最终,我将为此做更多的工作,但这是我的基本需求。目前无法使用。
# Variables
$outputFile = "vncMSLogonErrors.txt"
$vncConfig = "C:\Program Files (x86)\uvnc bvba\UltraVNC\ultravnc.ini"
$checkString = "MSLogonRequired=1"
# Get VNC Config File, check for MS Logon setting, write date to file if missing
Get-Content $vncConfig
If (-not $checkString)
{Add-Content $outputFile -Value $(Get-Date)}
答案 0 :(得分:1)
# Variables
$outputFile = "vncMSLogonErrors.txt"
$vncConfig = "C:\Program Files (x86)\uvnc bvba\UltraVNC\ultravnc.ini"
$checkString = "MSLogonRequired=1"
if ((get-content $vncconfig) -notcontains $checkString)) { Add-Content $outputFile -Value $(Get-Date) }
答案 1 :(得分:1)
Shamus Berube's helpful answer从概念上讲很简单并且可以很好地工作,只要您可以假设:
感兴趣的行正好是MSLogonRequired=1
,空格没有变化。
如果将INI文件细分为多个部分(例如[admin]
),则键名MSLogonRequired
在各部分中是唯一的,以防止误报。
因此,通常最好使用专用的INI文件解析命令;不幸的是:
PsIni
第三方模块(有关安装方法和背景信息,请参见this answer)使用PsIni
模块的Get-IniContent
函数:
注意:基于UltraVNC INI-file documentation,代码假定MSLogonRequired
条目位于INI文件的[admin]
部分中。
# Variables
$outputFile = "vncMSLogonErrors.txt"
$vncConfig = "C:\Program Files (x86)\uvnc bvba\UltraVNC\ultravnc.ini"
# Check the VNC Config File to see if the [admin] section's 'MSLogonRequired'
# entry, if present, has value '1'.
if ((Get-IniContent $vncConfig).admin.MSLogonRequired -ne '1') {
Add-Content $outputFile -Value (Get-Date)
}