Цитата Elven:
Ну и насчет же использования двух catch »
|
После публикации поста я удалил тот код, но все равно не пишется лог.
Код:
[array]$var = Get-ADUser -SearchBase "OU=Accounts,DC=TEST,DC=LOC" -Properties * -Filter *
$comps = ''
$date = (Get-Date).ToString('ddMMyyyy_HH')
$file = 'C:\_BAT\PS1\New_projects\Address_book\phrase' # пароль
$logfile = 'C:\_BAT\PS1\New_projects\Address_book\log\log_' + $date + '.txt' # файл логов
$User = 'ldap_user'
$password = ConvertTo-SecureString (Get-Content $file) -AsPlainText -Force
$logfile2 = 'C:\_BAT\PS1\New_projects\Address_book\log\unavaliable_' + $date + '.txt'
$subnets = @{
3='Ф.Екатеринбург';
32='Ф.Калининград';
25='Ф.Уфа';
26='Ф.Самара';
}
function data_request($val1, $val2, $val3){ # $val1 - адрес сервера; $val2 - OU-контейнера; $val3 - домен пользователя
$userName = $user + '@' + $val3
$domain = $val3.Split('.')
$cred = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $UserName, $Password
$usr = Get-ADUser -Server $val1 -Credential $cred -Properties * -Filter *
foreach ($u in $usr){
try{
if ($u.EmailAddress -eq $null -or $u.OfficePhone -eq $null -or $u.enabled -eq $false){
continue
}
else
{
Write-Host $val1, $val3
$data = ($u.SamAccountName,
$u.DisplayName,
$u.Surname,
$u.GivenName,
$u.Office,
$u.OfficePhone,
$u.EmailAddress,
"__________")
Add-Content $("C:\_BAT\PS1\New_projects\Address_book\SM\" + $domain[0] + '.txt') $data
}
}
catch {
Add-Content $logfile $dom
Add-Content $logfile $u.Name
Add-Content $logfile $u.SamAccountName
Add-Content $logfile '+++'
Add-Content $logfile $("ERROR: " + $error[0])
Add-Content $logfile "__________"
}
}
}
$comps = @{
0=@('192.168.32.1','CN=Users,DC=klg,DC=local');
1=@('192.168.25.1','CN=Users,DC=ufa,DC=local');
2=@('192.168.26.1','CN=Users,DC=samara,DC=local');
3=@('192.168.3.1','CN=Users,DC=ekb,DC=local');
}
for ($i=0; $i -lt $comps.Count; $i++){
$pc = $comps[$i][0] # IP-address
$OU = $comps[$i][1] # OU
$dm = $OU -Split',' | ConvertFrom-StringData
$dom = $dm.DC -join '.' #domain
Write-Host $pc
Write-Host $OU
data_request -val1 $pc -val2 $OU -val3 $dom
}