サーバーのリストで管理者パスワードを変更するこのテスト スクリプトがあります。サーバーにpingを実行できない場合やアカウントが見つからない場合などにエラーをログに記録するようにスクリプトを設定しました。ただし、これに加えて、発生した他のエラーをキャプチャし、それらをログファイル。エラー処理に「Try and Catch」を使用できることは知っていますが、これまでのところ運がありません。
誰かがそれを行う方法を示すのに十分親切でしょうか?
ここにスクリプトがあります
$date = Get-Date
$user = "Administrator"
$newpwd = "MyPassword"
$servers = gc C:\servers.txt
foreach ($server in $servers)
{
$ping = new-object System.Net.NetworkInformation.Ping
$Reply = $null
$Reply = $ping.send($server)
if($Reply.status -like 'Success')
{
$Admin=[adsi]("WinNT://" + $server + "/$user, user")
if($?)
{
$Admin.SetPassword($newpwd)
if($?)
{Add-Content -path C:\Audit\logs\servers-reset.csv -Value "$server, Succsess the $user password was changed. , $date"}
else
{Add-Content -path C:\Audit\logs\servers-reset.csv -Value "$server, Error: FAILED to change the password. , $date"}
}
else
{
Add-Content -path C:\Audit\logs\servers-reset.csv -Value "$server, Error: The $user user account was not found on the server. , $date"}
}
else
{
Add-Content -path C:\Audit\logs\servers-reset.csv -Value "$server, Error: Ping FAILED could not connect. , $date"
}