我有一个PowerShell脚本,可以对许多域中的所有域管理员进行一些检查.对于每个用户帐户,执行了许多检查.当其中一个失败时,脚本应该转到列表中的下一个管理员.
我目前有类似的东西(简化):
Get-QADGroupMember "Domain Admins" | Select-Object SamAccountName | ForEach-Object {
#Do something
if(!ThisCheckIsOK)
{
break;
}
#Do something else
if(ThisCheckIsNotOK)
{
break;
}
...
}
Run Code Online (Sandbox Code Playgroud)
这会停止整个脚本.有没有办法去下一个元素?
$foreach.movenext()因为不工作$foreach的null.
这与另一篇文章有关.我写了以下脚本:
Get-ADUser -Filter * -SearchBase 'DC=aaaa,DC=com' | Export-CSV "ADUsers.csv"
Run Code Online (Sandbox Code Playgroud)
这会输出一个CSV文件,但在文件的第一行显示:
#TYPE Selected.Microsoft.ActiveDirectory.Management.ADUser"
Run Code Online (Sandbox Code Playgroud)
当它试图读取它时,这会弄乱SSIS.有没有办法不添加第一行?
我正在尝试从 AD 获取 OU/DC 中所有用户的列表。
这就是我想出的:
$erroractionpreference = "SilentlyContinue"
function Get-GroupMembers {
$filter = "(&(objectCategory=person)(objectClass=user))"
$objSearcher = New-Object System.DirectoryServices.DirectorySearcher
$objSearcher.Filter = $filter
$colResults = $objSearcher.FindAll()
foreach ($member in $colResults) {
$member
}
}
get-GroupMembers
Run Code Online (Sandbox Code Playgroud)
如果我将过滤器更改为
$filter = "(&(objectCategory=person)(objectClass=user)("OU=Admin Accounts,DC=admin"))
Run Code Online (Sandbox Code Playgroud)
什么都没有返回。为什么是这样?
我还想显示某些值(如果帐户处于活动状态或禁用状态等),但如果我通过管道连接$member到gm,我什么也得不到。
任何帮助将不胜感激。