У меня есть сценарий, который перечисляет локальных администраторов всех хостов в Active Directory ниже:
$Searcher = New-Object DirectoryServices.DirectorySearcher([ADSI]"")
$Searcher.Filter = "(objectClass=computer)"
$Computers = ($Searcher.Findall())
md C:\All_Local_Admins
Foreach ($Computer in $Computers)
{
$Path=$Computer.Path
$Name=([ADSI]"$Path").Name
write-host $Name
$members =[ADSI]"WinNT://$Name/Administrators"
$members = @($members.psbase.Invoke("Members"))
$members | foreach {$_.GetType().InvokeMember("Name", 'GetProperty',
$null, $_, $null) | out-file -append C:\All_Local_Admins\$name.txt
}
}
Эта выходная Хост-машина сценария называет как txt файлы (HOST1.txt, HOST2.txt и т.д.)
То, что я хочу, должно получить единственный текстовый файл, имя которого получает дату дня (например: 05082014.txt-> Этот файл будет включать локальных администраторов всех хостов),
Как я могу управлять этим?
Большое спасибо.
Ты можешь это сделать:
$fileName = (Get-Date -Format ddMMyyyy) + ".txt"
$location = "C:\All_Local_Admins\"
New-Item -ItemType file -Name $fileName -Path $location
И заменить ваш out-file
следующим:
out-file -append -FilePath (Join-Path $location $fileName)