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 -DescendingUygulama çıktısı çok uzun olduğu için sadece bir bölümünü sizler ile paylaşıyorum.
....Name : DiagTrackRequiredServices : System.ServiceProcess.ServiceController[]CanPauseAndContinue : FalseCanShutdown : TrueCanStop : TrueDisplayName : Connected User Experiences and TelemetryDependentServices : System.ServiceProcess.ServiceController[]MachineName : .ServiceName : DiagTrackServicesDependedOn : System.ServiceProcess.ServiceController[]ServiceHandle : SafeServiceHandleStatus : RunningServiceType : Win32OwnProcessStartType : AutomaticSite :Container :Name : TermServiceRequiredServices : System.ServiceProcess.ServiceController[]CanPauseAndContinue : FalseCanShutdown : TrueCanStop : TrueDisplayName : Remote Desktop ServicesDependentServices : System.ServiceProcess.ServiceController[]MachineName : .ServiceName : TermServiceServicesDependedOn : System.ServiceProcess.ServiceController[]ServiceHandle : SafeServiceHandleStatus : RunningServiceType : Win32OwnProcess, Win32ShareProcessStartType : ManualSite :Container :Name : ThemesRequiredServices : System.ServiceProcess.ServiceController[]CanPauseAndContinue : FalseCanShutdown : FalseCanStop : TrueDisplayName : ThemesDependentServices : System.ServiceProcess.ServiceController[]MachineName : .ServiceName : ThemesServicesDependedOn : System.ServiceProcess.ServiceController[]ServiceHandle : SafeServiceHandleStatus : RunningServiceType : Win32OwnProcess, Win32ShareProcessStartType : AutomaticSite :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 5Uygulama çıktısı:
PS C:\Users\Administrator> Get-Content -path C:\Users\Administrator\services.csv | ConvertFrom-Csv | Sort-Object -Property status -Descending | select -first 5Name : SenseRequiredServices : System.ServiceProcess.ServiceController[]CanPauseAndContinue : FalseCanShutdown : FalseCanStop : FalseDisplayName : Windows Defender Advanced Threat Protection ServiceDependentServices : System.ServiceProcess.ServiceController[]MachineName : .ServiceName : SenseServicesDependedOn : System.ServiceProcess.ServiceController[]ServiceHandle :Status : StoppedServiceType : Win32OwnProcessStartType : ManualSite :Container :Name : SEMgrSvcRequiredServices : System.ServiceProcess.ServiceController[]CanPauseAndContinue : FalseCanShutdown : FalseCanStop : FalseDisplayName : Payments and NFC/SE ManagerDependentServices : System.ServiceProcess.ServiceController[]MachineName : .ServiceName : SEMgrSvcServicesDependedOn : System.ServiceProcess.ServiceController[]ServiceHandle : SafeServiceHandleStatus : StoppedServiceType : Win32OwnProcessStartType : DisabledSite :Container :Name : SensorDataServiceRequiredServices : System.ServiceProcess.ServiceController[]CanPauseAndContinue : FalseCanShutdown : FalseCanStop : FalseDisplayName : Sensor Data ServiceDependentServices : System.ServiceProcess.ServiceController[]MachineName : .ServiceName : SensorDataServiceServicesDependedOn : System.ServiceProcess.ServiceController[]ServiceHandle : SafeServiceHandleStatus : StoppedServiceType : Win32OwnProcessStartType : DisabledSite :Container :Name : SensrSvcRequiredServices : System.ServiceProcess.ServiceController[]CanPauseAndContinue : FalseCanShutdown : FalseCanStop : FalseDisplayName : Sensor Monitoring ServiceDependentServices : System.ServiceProcess.ServiceController[]MachineName : .ServiceName : SensrSvcServicesDependedOn : System.ServiceProcess.ServiceController[]ServiceHandle : SafeServiceHandleStatus : StoppedServiceType : Win32ShareProcessStartType : ManualSite :Container :Name : SensorServiceRequiredServices : System.ServiceProcess.ServiceController[]CanPauseAndContinue : FalseCanShutdown : FalseCanStop : FalseDisplayName : Sensor ServiceDependentServices : System.ServiceProcess.ServiceController[]MachineName : .ServiceName : SensorServiceServicesDependedOn : System.ServiceProcess.ServiceController[]ServiceHandle : SafeServiceHandleStatus : StoppedServiceType : Win32ShareProcessStartType : ManualSite :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 -Descending | select -first 5Uygulama çı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 -Descending | select -first 5Name : SenseRequiredServices : System.ServiceProcess.ServiceController[]CanPauseAndContinue : FalseCanShutdown : FalseCanStop : FalseDisplayName : Windows Defender Advanced Threat Protection ServiceDependentServices : System.ServiceProcess.ServiceController[]MachineName : .ServiceName : SenseServicesDependedOn : System.ServiceProcess.ServiceController[]ServiceHandle :Status : StoppedServiceType : Win32OwnProcessStartType : ManualSite :Container :Name : SEMgrSvcRequiredServices : System.ServiceProcess.ServiceController[]CanPauseAndContinue : FalseCanShutdown : FalseCanStop : FalseDisplayName : Payments and NFC/SE ManagerDependentServices : System.ServiceProcess.ServiceController[]MachineName : .ServiceName : SEMgrSvcServicesDependedOn : System.ServiceProcess.ServiceController[]ServiceHandle : SafeServiceHandleStatus : StoppedServiceType : Win32OwnProcessStartType : DisabledSite :Container :Name : SensorDataServiceRequiredServices : System.ServiceProcess.ServiceController[]CanPauseAndContinue : FalseCanShutdown : FalseCanStop : FalseDisplayName : Sensor Data ServiceDependentServices : System.ServiceProcess.ServiceController[]MachineName : .ServiceName : SensorDataServiceServicesDependedOn : System.ServiceProcess.ServiceController[]ServiceHandle : SafeServiceHandleStatus : StoppedServiceType : Win32OwnProcessStartType : DisabledSite :Container :Name : SensrSvcRequiredServices : System.ServiceProcess.ServiceController[]CanPauseAndContinue : FalseCanShutdown : FalseCanStop : FalseDisplayName : Sensor Monitoring ServiceDependentServices : System.ServiceProcess.ServiceController[]MachineName : .ServiceName : SensrSvcServicesDependedOn : System.ServiceProcess.ServiceController[]ServiceHandle : SafeServiceHandleStatus : StoppedServiceType : Win32ShareProcessStartType : ManualSite :Container :Name : SensorServiceRequiredServices : System.ServiceProcess.ServiceController[]CanPauseAndContinue : FalseCanShutdown : FalseCanStop : FalseDisplayName : Sensor ServiceDependentServices : System.ServiceProcess.ServiceController[]MachineName : .ServiceName : SensorServiceServicesDependedOn : System.ServiceProcess.ServiceController[]ServiceHandle : SafeServiceHandleStatus : StoppedServiceType : Win32ShareProcessStartType : ManualSite :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 : DiagTrackRequiredServices : System.ServiceProcess.ServiceController[]CanPauseAndContinue : FalseCanShutdown : TrueCanStop : TrueDisplayName : Connected User Experiences and TelemetryDependentServices : System.ServiceProcess.ServiceController[]MachineName : .ServiceName : DiagTrackServicesDependedOn : System.ServiceProcess.ServiceController[]ServiceHandle : SafeServiceHandleStatus : RunningServiceType : Win32OwnProcessStartType : AutomaticSite :Container : Name : TermServiceRequiredServices : System.ServiceProcess.ServiceController[]CanPauseAndContinue : FalseCanShutdown : TrueCanStop : TrueDisplayName : Remote Desktop ServicesDependentServices : System.ServiceProcess.ServiceController[]MachineName : .ServiceName : TermServiceServicesDependedOn : System.ServiceProcess.ServiceController[]ServiceHandle : SafeServiceHandleStatus : RunningServiceType : Win32OwnProcess, Win32ShareProcessStartType : ManualSite :Container : Name : ThemesRequiredServices : System.ServiceProcess.ServiceController[]CanPauseAndContinue : FalseCanShutdown : FalseCanStop : TrueDisplayName : ThemesDependentServices : System.ServiceProcess.ServiceController[]MachineName : .ServiceName : ThemesServicesDependedOn : System.ServiceProcess.ServiceController[]ServiceHandle : SafeServiceHandleStatus : RunningServiceType : Win32OwnProcess, Win32ShareProcessStartType : AutomaticSite :Container : PS C:\Users\Administrator>