AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1160853
Accepted
Samuel
Samuel
Asked: 2024-06-12 20:08:53 +0800 CST2024-06-12 20:08:53 +0800 CST 2024-06-12 20:08:53 +0800 CST

在 Intune 客户端上读取完整的用户电子邮件地址

  • 772

我正在配置 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 注册客户端上运行它时,我收到以下错误:

Powershell 错误

其含义为:“无法请求 FQDN,因为当前用户不是域用户。

但是,当我运行 whoami 命令时,我得到了域/用户名,但没有得到完整的电子邮件。

我在这里是否混淆了某些事情,或者是否有更好的方法从客户端获取完整的用户电子邮件?

提前感谢您提供的任何帮助/建议。

powershell
  • 1 1 个回答
  • 34 Views

1 个回答

  • Voted
  1. Best Answer
    Nicolo Lüscher
    2024-06-12T21:10:25+08:002024-06-12T21:10:25+08:00

    欢迎来到 Stack overflow 社区👋

    您遇到此问题很可能是因为 LDAP 无法找到您的 FQDN 并且无法将其与现有用户匹配。这可能是由于几个问题造成的。

    您可以使用内置 adsisearcher 在 AD 中搜索您的用户名来解决此问题。您可以使用环境变量访问您的用户名。请记住,这将指向运行脚本的用户的用户名,而该用户名可能不是当前登录的用户。

    此外,我建议您使用 REGEX 进行模式匹配,这样您的脚本就可以更轻松地修改,以应对更复杂的模式匹配要求。

    # Define the path to the executable
    $currentUser = [adsisearcher]"(samaccountname=$env:USERNAME)"
    $mail = $currentUser.findOne().Properties.mail
    
    # Check if the file exists and wether user is a teacher
    if ($true) {
        # Run the executable
        if($mail -match ".*@stu\myDomain\.ch") {
            Write-Host "matched"
        } else {
            Write-Host "not matched"
        }  
    } else {
        Write-Host "file does not exist"
    }
    

    请参阅我们的“如何提出好问题”指南,获取有关如何改进未来问题的建议。您的 ServerFault 之旅才刚刚开始 🙌

    • 0

相关问题

  • 资源锁和电源外壳

  • 脚本 - 如何断开远程桌面会话?

  • 如何限制向通讯组发送到外部地址?

  • Powershell对值与数组的作用不同?

  • Windows Powershell Vim 键绑定

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve