URAMIRAIKAN

1020のなれの果て (since 2005.6.19)

リモートのWindowsホストからARPテーブルを集めるPowerShellスクリプト

 ちょっと前にお仕事で作ったやつが発掘されたので、ネタもないし備忘的に残しておこうかと。
 トラブルシュートで急遽作ったものなので、内容はあまり考えず必要なことだけをやっている。

 そもそもやっていることは"Invoke-Command"が使える環境で"arp -a"を実行しているだけですね。
 あとは実行対象をリストしたファイルと、結果をホストごとに分けて出力しているくらい。認証に関しても対象がWindows想定なのでお好みで(デフォルトでは共通アカウントで一回限り実行の想定なので都度入力)。

# Parameters $HostFile = $PSScriptRoot + "\hosts.txt" $LogFolder = $PSScriptRoot + "\logs" # Credential $Credential = Get-Credential #$SecureString = ConvertTo-SecureString "Password" -AsPlainText -Force #$Credential = New-Object System.Management.Automation.PsCredential "DOMAIN\Administrator", $SecureString # Import hosts list $HostList = Get-Content $HostFile if (!(Test-Path $LogFolder)) { New-Item $LogFolder -ItemType Directory } # Main Routine #$ErrorActionPreference = "silentlycontinue" foreach ($TargetHost in $HostList) { $NowDateTime = (Get-Date).ToString("yyyy/MM/dd HH:mm:ss") $LogFile = $LogFolder + "\$TargetHost.txt" $Result = Invoke-Command -ScriptBlock {arp -a} -ComputerName $TargetHost -Credential $Credential Write-Output "$NowDateTime ------------------------------------------------------------" | Add-Content -Path $LogFile Write-Output $Result | Add-Content -Path $LogFile } exit

 結局、どんなトラブルだったのかはよく覚えていない😓