我正在配置 Windows 11 客户端,作为将我们的基础设施迁移到 Intune 项目的一部分。作为此项目的一部分,我在使用适用于非 Intune 域客户端的 powershell 脚本时遇到了麻烦。我需要检查电子邮件地址是否包含字符串“@stu.domain”或是否仅包含“@domain”。我的脚本如下:
# Define the path to the executable
$exePath = "C:\Program Files\uniFLOW SmartClient\momsmartclnt.exe"
$currentUser = ([adsi]"LDAP://$(whoami /fqdn)").mail
# Check if the file exists and wether user is a teacher
if (Test-Path $exePath) {
# Run the executable
if($currentUser -notLike "*stu.myDomain*") {
Start-Process -FilePath $exePath
}
} else {
Write-Host "File not found: $exePath"
}
现在,当我在我的 uniflow 注册客户端上运行它时,我收到以下错误:
其含义为:“无法请求 FQDN,因为当前用户不是域用户。
但是,当我运行 whoami 命令时,我得到了域/用户名,但没有得到完整的电子邮件。
我在这里是否混淆了某些事情,或者是否有更好的方法从客户端获取完整的用户电子邮件?
提前感谢您提供的任何帮助/建议。
欢迎来到 Stack overflow 社区👋
您遇到此问题很可能是因为 LDAP 无法找到您的 FQDN 并且无法将其与现有用户匹配。这可能是由于几个问题造成的。
您可以使用内置 adsisearcher 在 AD 中搜索您的用户名来解决此问题。您可以使用环境变量访问您的用户名。请记住,这将指向运行脚本的用户的用户名,而该用户名可能不是当前登录的用户。
此外,我建议您使用 REGEX 进行模式匹配,这样您的脚本就可以更轻松地修改,以应对更复杂的模式匹配要求。
请参阅我们的“如何提出好问题”指南,获取有关如何改进未来问题的建议。您的 ServerFault 之旅才刚刚开始 🙌