Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Название темы: Не пишется лог в PowerShell
Показать сообщение отдельно

Новый участник


Сообщения: 33
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата 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
}

Последний раз редактировалось lcnet, 07-02-2022 в 13:34.


Отправлено: 13:23, 07-02-2022 | #4

Название темы: Не пишется лог в PowerShell