PowerShell ile CSV, HTML veya XML foramtında bulunan dosylarınızı okuyabilirsiniz. CSV, HTML yada XML formatında bulunan dosylarınızı içeriğini bulunduğu formata göre okuyup PowerShell ortamında nesnelere nasıl dönüştürebileceğinizi anlatacağım.
Geçtiğimiz günlerde yazdığım bir makalede PowerShell ile CSV, HTML yada XML formatında nasıl çıktı alınır göstermiştim. Şimdi aslında bir nevi ters işlem uygulayarak aldığımız çıktıları PowerShell üzerinde objelere nesnelere dönüştürme işlemini yapacağız.
Get-Content ve Convert-From komutlarını kullanarak piplinelar ile birlikte mevcut bir CSV formatındaki dosyayı PowerShell ile görüntüleyeceğiz. Bir başka komutumuz Import ile de CSV ve XML formatındaki dosylarımızı PowerShell ile nasıl görüntüleyeceğimizi inceleyeceğiz.
İlk olarak Sistemimde kayıtlı olan services.csv  dosyamızı get-content ve convert-from komutları yardımı ile PowerShell üzerinde görüntüleyeceğim.
Get-Content -path C:\Users\Administrator\services.csv | ConvertFrom-Csv | Sort-Object -Property status -Descending
Uygulama çıktısı çok uzun olduğu için sadece bir bölümünü sizler ile paylaşıyorum.
.
.
.
.
Name                : DiagTrack
RequiredServices    : System.ServiceProcess.ServiceController[]
CanPauseAndContinue : False
CanShutdown         : True
CanStop             : True
DisplayName         : Connected User Experiences and Telemetry
DependentServices   : System.ServiceProcess.ServiceController[]
MachineName         : .
ServiceName         : DiagTrack
ServicesDependedOn  : System.ServiceProcess.ServiceController[]
ServiceHandle       : SafeServiceHandle
Status              : Running
ServiceType         : Win32OwnProcess
StartType           : Automatic
Site                :
Container           :
 
Name                : TermService
RequiredServices    : System.ServiceProcess.ServiceController[]
CanPauseAndContinue : False
CanShutdown         : True
CanStop             : True
DisplayName         : Remote Desktop Services
DependentServices   : System.ServiceProcess.ServiceController[]
MachineName         : .
ServiceName         : TermService
ServicesDependedOn  : System.ServiceProcess.ServiceController[]
ServiceHandle       : SafeServiceHandle
Status              : Running
ServiceType         : Win32OwnProcess, Win32ShareProcess
StartType           : Manual
Site                :
Container           :
 
Name                : Themes
RequiredServices    : System.ServiceProcess.ServiceController[]
CanPauseAndContinue : False
CanShutdown         : False
CanStop             : True
DisplayName         : Themes
DependentServices   : System.ServiceProcess.ServiceController[]
MachineName         : .
ServiceName         : Themes
ServicesDependedOn  : System.ServiceProcess.ServiceController[]
ServiceHandle       : SafeServiceHandle
Status              : Running
ServiceType         : Win32OwnProcess, Win32ShareProcess
StartType           : Automatic
Site                :
Container           :
 
 
 
PS C:\Users\Administrator>

 

Az önecki komutumuzun çıktısı çok uzun olduğu için incelemenizi kolaylaştırmak için örneğin son bölümüne “Select -first 5” yazarsanız ilk 5 bölümü getirecektir.
Get-Content -path C:\Users\Administrator\services.csv | ConvertFrom-Csv | Sort-Object -Property status -Descending | select -first 5
Uygulama çıktısı:
PS C:\Users\Administrator> Get-Content -path C:\Users\Administrator\services.csv | ConvertFrom-Csv | Sort-Object -Proper
ty status -Descending | select -first 5
 
 
Name                : Sense
RequiredServices    : System.ServiceProcess.ServiceController[]
CanPauseAndContinue : False
CanShutdown         : False
CanStop             : False
DisplayName         : Windows Defender Advanced Threat Protection Service
DependentServices   : System.ServiceProcess.ServiceController[]
MachineName         : .
ServiceName         : Sense
ServicesDependedOn  : System.ServiceProcess.ServiceController[]
ServiceHandle       :
Status              : Stopped
ServiceType         : Win32OwnProcess
StartType           : Manual
Site                :
Container           :
 
Name                : SEMgrSvc
RequiredServices    : System.ServiceProcess.ServiceController[]
CanPauseAndContinue : False
CanShutdown         : False
CanStop             : False
DisplayName         : Payments and NFC/SE Manager
DependentServices   : System.ServiceProcess.ServiceController[]
MachineName         : .
ServiceName         : SEMgrSvc
ServicesDependedOn  : System.ServiceProcess.ServiceController[]
ServiceHandle       : SafeServiceHandle
Status              : Stopped
ServiceType         : Win32OwnProcess
StartType           : Disabled
Site                :
Container           :
 
Name                : SensorDataService
RequiredServices    : System.ServiceProcess.ServiceController[]
CanPauseAndContinue : False
CanShutdown         : False
CanStop             : False
DisplayName         : Sensor Data Service
DependentServices   : System.ServiceProcess.ServiceController[]
MachineName         : .
ServiceName         : SensorDataService
ServicesDependedOn  : System.ServiceProcess.ServiceController[]
ServiceHandle       : SafeServiceHandle
Status              : Stopped
ServiceType         : Win32OwnProcess
StartType           : Disabled
Site                :
Container           :
 
Name                : SensrSvc
RequiredServices    : System.ServiceProcess.ServiceController[]
CanPauseAndContinue : False
CanShutdown         : False
CanStop             : False
DisplayName         : Sensor Monitoring Service
DependentServices   : System.ServiceProcess.ServiceController[]
MachineName         : .
ServiceName         : SensrSvc
ServicesDependedOn  : System.ServiceProcess.ServiceController[]
ServiceHandle       : SafeServiceHandle
Status              : Stopped
ServiceType         : Win32ShareProcess
StartType           : Manual
Site                :
Container           :
 
Name                : SensorService
RequiredServices    : System.ServiceProcess.ServiceController[]
CanPauseAndContinue : False
CanShutdown         : False
CanStop             : False
DisplayName         : Sensor Service
DependentServices   : System.ServiceProcess.ServiceController[]
MachineName         : .
ServiceName         : SensorService
ServicesDependedOn  : System.ServiceProcess.ServiceController[]
ServiceHandle       : SafeServiceHandle
Status              : Stopped
ServiceType         : Win32ShareProcess
StartType           : Manual
Site                :
Container           :
 
 
 
PS C:\Users\Administrator>

 

Aynı işlemi Import komutu için deneyelim. Yine ilk 5 bölümü seçiyorum.
Import-CSV -path C:\Users\Administrator\services.csv | Sort-Object -Property status -Descendi
ng | select -first 5
Uygulama çıktısında gördüğünüz üzere aynı sonuca Import-CSV komutu ile hatta convertfrom-csv komutuna ihtiyaç duymadan ulaşabiliyorum.
PS C:\Users\Administrator> Import-CSV -path C:\Users\Administrator\services.csv | Sort-Object -Property status -Descendi
ng | select -first 5
 
 
Name                : Sense
RequiredServices    : System.ServiceProcess.ServiceController[]
CanPauseAndContinue : False
CanShutdown         : False
CanStop             : False
DisplayName         : Windows Defender Advanced Threat Protection Service
DependentServices   : System.ServiceProcess.ServiceController[]
MachineName         : .
ServiceName         : Sense
ServicesDependedOn  : System.ServiceProcess.ServiceController[]
ServiceHandle       :
Status              : Stopped
ServiceType         : Win32OwnProcess
StartType           : Manual
Site                :
Container           :
 
Name                : SEMgrSvc
RequiredServices    : System.ServiceProcess.ServiceController[]
CanPauseAndContinue : False
CanShutdown         : False
CanStop             : False
DisplayName         : Payments and NFC/SE Manager
DependentServices   : System.ServiceProcess.ServiceController[]
MachineName         : .
ServiceName         : SEMgrSvc
ServicesDependedOn  : System.ServiceProcess.ServiceController[]
ServiceHandle       : SafeServiceHandle
Status              : Stopped
ServiceType         : Win32OwnProcess
StartType           : Disabled
Site                :
Container           :
 
Name                : SensorDataService
RequiredServices    : System.ServiceProcess.ServiceController[]
CanPauseAndContinue : False
CanShutdown         : False
CanStop             : False
DisplayName         : Sensor Data Service
DependentServices   : System.ServiceProcess.ServiceController[]
MachineName         : .
ServiceName         : SensorDataService
ServicesDependedOn  : System.ServiceProcess.ServiceController[]
ServiceHandle       : SafeServiceHandle
Status              : Stopped
ServiceType         : Win32OwnProcess
StartType           : Disabled
Site                :
Container           :
 
Name                : SensrSvc
RequiredServices    : System.ServiceProcess.ServiceController[]
CanPauseAndContinue : False
CanShutdown         : False
CanStop             : False
DisplayName         : Sensor Monitoring Service
DependentServices   : System.ServiceProcess.ServiceController[]
MachineName         : .
ServiceName         : SensrSvc
ServicesDependedOn  : System.ServiceProcess.ServiceController[]
ServiceHandle       : SafeServiceHandle
Status              : Stopped
ServiceType         : Win32ShareProcess
StartType           : Manual
Site                :
Container           :
 
Name                : SensorService
RequiredServices    : System.ServiceProcess.ServiceController[]
CanPauseAndContinue : False
CanShutdown         : False
CanStop             : False
DisplayName         : Sensor Service
DependentServices   : System.ServiceProcess.ServiceController[]
MachineName         : .
ServiceName         : SensorService
ServicesDependedOn  : System.ServiceProcess.ServiceController[]
ServiceHandle       : SafeServiceHandle
Status              : Stopped
ServiceType         : Win32ShareProcess
StartType           : Manual
Site                :
Container           :
 
 
 
PS C:\Users\Administrator>

 

Son olarak XML formatında bulunan bir dosyayı import etmek için bir deneme yapacağım fakat bu sefer “Import-CliXML” komutunu kullanmam gerekiyor XML formatında bulunan dosyları import işlemi için Import-CliXML kullanmamız gerekiyor.
Import-Clixml -path C:\Users\Administrator\services.xml | sort status -Descending
.
.
.
.
Name                : DiagTrack
RequiredServices    : System.ServiceProcess.ServiceController[]
CanPauseAndContinue : False
CanShutdown         : True
CanStop             : True
DisplayName         : Connected User Experiences and Telemetry
DependentServices   : System.ServiceProcess.ServiceController[]
MachineName         : .
ServiceName         : DiagTrack
ServicesDependedOn  : System.ServiceProcess.ServiceController[]
ServiceHandle       : SafeServiceHandle
Status              : Running
ServiceType         : Win32OwnProcess
StartType           : Automatic
Site                :
Container           :
  
Name                : TermService
RequiredServices    : System.ServiceProcess.ServiceController[]
CanPauseAndContinue : False
CanShutdown         : True
CanStop             : True
DisplayName         : Remote Desktop Services
DependentServices   : System.ServiceProcess.ServiceController[]
MachineName         : .
ServiceName         : TermService
ServicesDependedOn  : System.ServiceProcess.ServiceController[]
ServiceHandle       : SafeServiceHandle
Status              : Running
ServiceType         : Win32OwnProcess, Win32ShareProcess
StartType           : Manual
Site                :
Container           :
  
Name                : Themes
RequiredServices    : System.ServiceProcess.ServiceController[]
CanPauseAndContinue : False
CanShutdown         : False
CanStop             : True
DisplayName         : Themes
DependentServices   : System.ServiceProcess.ServiceController[]
MachineName         : .
ServiceName         : Themes
ServicesDependedOn  : System.ServiceProcess.ServiceController[]
ServiceHandle       : SafeServiceHandle
Status              : Running
ServiceType         : Win32OwnProcess, Win32ShareProcess
StartType           : Automatic
Site                :
Container           :
  
  
  
PS C:\Users\Administrator>