foreachループで$ serverNameの値を持つ「サーバー名」のインクルードスクリプトで作成している.csvファイルの先頭に列を追加したいとします。CSVの先頭に列を追加
このようにして、CSVは各行の先頭にサーバー名を含む「サーバー名」を含め、xmlファイルから取得する情報を表示します。
これにはどのような方法が最適ですか?ありがとう!
$localPath = "C:\Temp\MPOS"
$serverList = (Get-ADComputer -Filter "Name -like 'Q0*00*'" -SearchBase "OU=MPOS,OU=Prod,OU=POS,DC=company,DC=NET").name | Sort-Object | Out-File C:\Temp\MPOS\MPOSServers.txt
$serverNames = Get-Content $serverList
foreach ($serverName in $serverNames) {
Add-Content $logfile "Processing $serverName"
$serverCsv = $serverNames |
#Check if the server is online before doing the remote command
If (Test-Connection -ComputerName $serverName -Quiet -count 1) {
#copy config file from MPOS print to local server for processing
$configPath = "\\$($serverName)\D$\mposdevices\deviceconfig.xml"
Copy-Item $configPath $localPath
#process xml file to output data to csv file
$xml = Get-Content C:\Temp\MPOS\DeviceConfig.xml
$xmldata = [xml]$xml
$xmldata.DeviceConfig.ChildNodes | Export-Csv -Path C:\Temp\MPOS\MDATInfo.csv -NoTypeInformation -Append
} #If (Test-Connection -ComputerName $serverName -Quiet -count 1) {
} #foreach ($serverName in $serverNames) {
を理解することができ、そのオブジェクトの一種である、
PSObject
を生成します。 ServerName列はどうすればよいのですか?迅速な対応をありがとう! – LilithGoddessそれはそれを引き起こす '*'でしょう。 '$ xmldata.DeviceConfig.ChildNodes'に何が入っているのか分かりません。 '*'の代わりに、特定の列を追加してください。 – TechSpud
Nevermind - 考え出しました! :)ありがとう – LilithGoddess