Скрипт PowerShell не будет работать по порядку - PullRequest
0 голосов
/ 26 апреля 2018

Скрипт PowerShell работает нормально, если я запускаю его построчно, но при попытке запустить скрипт как один, поиск пользователей не приходит вовремя для следующего вопроса. Пожалуйста, дайте мне знать, как я могу заставить третью строку сценария появиться в соответствии с запросом вместо этого.

$name = Read-Host "What is the user's first name or letter?"

$list = Get-ADUser -Filter * | ? {$_.SamAccountName -match $name} | select SamAccountName | sort SamAccountName
$list


$DisableUser = Read-Host "Copy and paste the user here"
$t = $DisableUser
$year = Read-Host "Please input the year the user should be disabled, in this format (YYYY)"
$month = Read-Host "Please input the month the user should be disabled, in this format (MM)"
$day = Read-Host "Please input the day the user should be disabled, in this format (DD)"
$date = "$month/$day/$year"


$hour = Read-Host "Please input the hour of the day the user should be disabled, in this format (HH)"
$minute = Read-Host "Please input the minute the user should be disabled, in this format (MM)"
$seconds = Read-Host "Please input the second the user should be disabled, in this format (SS)"
$ampm = Read-Host "AM or PM?"
$Time = "${hour}:${minute}:${seconds} ${ampm}"


$dandt = "$date $Time"
$dandt

Write-host "$t will be disabled on this date, $dandt"

$answer = Read-Host "Is this correct? Please type Yes or No"
$l = $answer
    If ($l -like "y*")
    {Set-ADAccountExpiration $t -DateTime $dandt}
    ELSE { "Exiting"; Return}

1 Ответ

0 голосов
/ 26 апреля 2018

Вы объединяете выходные потоки. Read-Host и Write-Host записывают напрямую в консоль, тогда как $list и $dandt сами по себе выводят на стандартный вывод. Они десинхронизированы, потому что это разные выходные потоки. Решение в основном состоит в том, чтобы заставить все через один поток Поскольку вы используете Read-Host, это означает консольный поток.

Изменить это:

$list

К одному из них:

$list | Format-Table -AutoSize | Out-String | Write-Host
$list | Format-List | Out-String | Write-Host

А это:

$dandt

К этому:

Write-Host $dandt

Тем не менее, это совсем не то, как я бы написал что-то подобное. Я бы лучше использовал ADUC / ADAC, чем этот.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...