Быстро и удобно это можно сделать, используя список в Excel и скрипт, который автоматически сменит пароли.
Предварительные требования
- PowerShell должен быть установлен на вашей системе.
- Модуль ImportExcel должен быть установлен для работы с Excel-файлами. Команда для установки: Install-Module -Name ImportExcel.
- Excel-файл должен содержать два столбца: “Пользователи” и “Новый пароль”.
Пример структуры файла Excel
| Пользователи | Новый пароль |
|---|---|
| user1 | password123 |
| user2 | newpass456 |
Шаги выполнения
- Укажите путь к Excel-файлу: $excelFilePath = “0-users.xlsx”.
- Загрузите данные из Excel с помощью команды Import-Excel, которая импортирует содержимое файла в переменную $usersData..
- Обработка данных: Скрипт проходит по каждому пользователю в таблице, проверяет наличие имени пользователя и нового пароля. Если данные корректные, выполняется команда для смены пароля: Set-LocalUser -Name $username -Password $securePassword В случае ошибки или пустых данных, скрипт записывает соответствующее сообщение в результат.
- После обработки всех записей, скрипт сохраняет результаты выполнения (успех или ошибка) обратно в Excel в новый лист под названием UpdatedUsers:. $results | Export-Excel -Path $excelFilePath -WorksheetName “UpdatedUsers”
Аренда распределенной 1С с Disaster Recovery. SLA 99.9% и мгновенное восстановление
Авария ЦОД — не проблема. 1С автоматически переключается на резервный кластер. RPO 5 мин, SLA 99.99%.
Пример работы скрипта
- Скрипт изменяет пароль для пользователя user1 на password123. Если операция прошла успешно, статус будет «Success». Если произошла ошибка, например, если пользователь не найден, статус будет «Failed», с подробным описанием ошибки.
- Если имя пользователя или пароль пустые, скрипт пропустит эту запись и запишет статус как «Failed: Username or password is empty or null».
Запуск скрипта
- Скопируйте скрипт в файл PowerShell, например ChangePassword.ps1.
- Откройте PowerShell с правами администратора и запустите скрипт: .\ChangePassword.ps1.
- Результат: После завершения работы скрипта, обновленные данные будут записаны в тот же файл Excel на новый лист под названием UpdatedUsers с указанием статусов для каждой записи.
Пример скрипта
# Путь к файлу Excel
$excelFilePath = "0-users.xlsx"
# Загрузка данных из Excel
$usersData = Import-Excel -Path $excelFilePath
# Создаем список для результатов
$results = @()
# Проход по всем пользователям
foreach ($row in $usersData) {
$username = $row.Пользователи # Имя пользователя в колонке "Пользователи"
$newPassword = $row.'Новый пароль' # Новый пароль во второй колонке
if (-not [string]::IsNullOrWhiteSpace($username) -and -not [string]::IsNullOrWhiteSpace($newPassword)) {
$status = "Success"
try {
# Смена пароля для локального пользователя
$securePassword = ConvertTo-SecureString $newPassword -AsPlainText -Force
Set-LocalUser -Name $username -Password $securePassword
} catch {
# Обработка ошибки, если пароль не удалось сменить
$status = "Failed: $_"
}
# Добавление результатов в новый массив данных
$results += [PSCustomObject]@{
UserName = $username
NewPassword = $newPassword
Status = $status
}
} else {
# Если имя пользователя или пароль пустые, пропускаем и записываем статус
$results += [PSCustomObject]@{
UserName = "N/A"
NewPassword = "N/A"
Status = "Failed: Username or password is empty or null"
}
}
}
# Запись обновленных данных обратно в Excel
$results | Export-Excel -Path $excelFilePath -WorksheetName "UpdatedUsers"
