我已将所有已停用的用户属性撤消到名为" Disable.txt
"的文本文件中。现在,我想要将用户排除在名为Collaboration accounts
,Security Principles
&的特定OU之外。 Service Accounts
。我能够做到以下几种方式。
Select-String 'OU=Collaboration accounts', 'OU=Security Principles', 'OU=Service Accounts' $env:USERPROFILE\Desktop\DisabledUsers.txt -NotMatch | % {$_.Line} | Set-Content $env:USERPROFILE\Desktop\DisableList.txt
但我被要求排除OU应该从输入文件中挑选。
所以我尝试创建一个内容为'OU=Collaboration accounts', 'OU=Security Principles', 'OU=Service Accounts'
的文本文件,并将其分配给变量,然后进行调用。
但这不起作用。有人可以建议替代方式吗?
答案 0 :(得分:0)
您需要将这些过滤字符串作为数组提供。如果你放一个文字行
'OU=Collaboration accounts', 'OU=Security Principles', 'OU=Service Accounts'
进入输入文件并读取它,它将作为单个字符串传递给Select-String
,如下所示:
Select-String "'OU=Collaboration accounts', 'OU=Security Principles', 'OU=Service Accounts'" ...
相反,将每个过滤字符串放在一个单独的行上(不带逗号或引号)。
OU=Collaboration accounts OU=Security Principles OU=Service Accounts
Get-Content
将读取文件作为字符串数组,每行作为单独的数组元素:
$filters = Get-Content 'C:\path\to\input.txt'
Select-String $filters ...