Batch file 批处理文件:AD组中的FindStr

Batch file 批处理文件:AD组中的FindStr,batch-file,Batch File,我试图通过使用批处理脚本来确定用户是否属于某个Active Directory广告组 我使用FINDSTR函数来搜索特定的字符串,但它似乎没有找到精确的字符串匹配 e、 g 当前脚本验证用户是否在AERO\Domain Admins组中。但是,如果我删除s并改为搜索AERO\Domain管理员,它仍然显示该用户存在于列表中。这是因为FINDSTR默认情况下执行子字符串搜索 这并不能保证得到正确的结果,但可以让您更接近: FINDSTR /rc:"\<AERO\\Domain Admins

我试图通过使用批处理脚本来确定用户是否属于某个Active Directory广告组

我使用FINDSTR函数来搜索特定的字符串,但它似乎没有找到精确的字符串匹配

e、 g


当前脚本验证用户是否在AERO\Domain Admins组中。但是,如果我删除s并改为搜索AERO\Domain管理员,它仍然显示该用户存在于列表中。

这是因为FINDSTR默认情况下执行子字符串搜索

这并不能保证得到正确的结果,但可以让您更接近:

FINDSTR  /rc:"\<AERO\\Domain Admins\>" C:\APPS\UserGroups.txt
它是一个正则表达式,保证搜索字符串匹配起始和结束单词边界

编辑以回应评论

如果您的搜索有n个单词,并且存在以相同n个单词开头的组,并且附加了一个或多个单词,则我的建议将失败


例如\将匹配word1 word2

真正的目标是什么?有更简单的方法输出域管理员组的成员;e、 g.PowerShell:获取ADGroupMember域管理员。该脚本由用户运行,以检查他们所在的组以及基于这些组的组,它会将安装文件复制到他们的计算机上,以便他们可以运行某些程序。因此,在阅读FINDSTR命令的帮助文件后,您无法想出一个选项来纠正这一点?检查文件是否存在,然后创建文件的代码有何意义。它没有目的。运行whoami命令后,它将创建文件并覆盖已存在的任何现有文件。我建议使用组策略首选项而不是脚本。这非常有效-但您能否分享一个示例,说明什么时候这可能不起作用,因此我知道我不太喜欢正则表达式。@Justin-FINDSTR正则表达式表达式语法非常不标准,所以不要认为这适用于其他正则表达式引擎。但我已经解释了我的编辑可能会失败。
FINDSTR  /rc:"\<AERO\\Domain Admins\>" C:\APPS\UserGroups.txt