2014-01-29 22 views
0

我在企業環境中以管理員身份工作,絕大多數系統都運行Windows 7,我的懊惱... Powershell V2。如何將這些數據存儲爲將來使用而不是JSON? (Powershell V2)

我一直在運行Powershell V3的工作站上開發了一個相當長的腳本,但一直在驗證與V2環境的兼容性,但是我遇到了一個我似乎無法解決的問題。

腳本本身運行了一些函數,它們都可以正常工作,並將它們的輸出存儲在一系列變量中,我需要將它們存儲在數據文件中供以後使用。在一個完美的世界裏,我會把所有的東西升級到Powershell v3並使用JSON,因爲它完全符合我想要的東西。

$table = [ordered]@{ 
Workstation = $global:MachineName 
Date = $date = get-date -format MM-dd-yyyy 
OSArchitecture = $global:OSArchitecture.OSArchitecture 
HBSSAccess = $global:HBSS_Access 
SCCMAccess = $global:SCCM_Access 
WMIHealth = $global:WMI_Health 
SCCMHealth = $global:SCCM_Health 
WMIRepairAttempt = $global:WMI_Repair_Attempt 
SCCMRepairAttempt = $global:SCCM_Repair_Attempt 
WMIRepairResult = $global:WMI_Repair_Result 
SCCMRepairResult = $global:SCCM_Repair_Result 
} 

[PSCustomObject]$table | ConvertTo-json | out-file -FilePath "C:\users\public\scriptdata\storage.json" 

現在,這就是如何在PowerShell中V3運行,它究竟想什麼,我爲它,稍後由服務器檢查每一臺PC的數據文件編目,並重新轉換成可用對象使用以下內容:

$Data = Get-Content -Path "C:\users\public\scriptdata\storage.json" | out-string | ConvertFrom-Json 

而且,在Powershell V3中,這種方法也很棒。我的理解是Powershell V2中既沒有[Ordered]也沒有ConvertTo-JSON/ConvertFrom-JSON。

如何在我的環境中使用此功能?替代數據存儲的想法也是可以接受的。我感謝你們可以提供的任何幫助。

感謝, 泰勒

回答

0

哈希表是在PS2支持,所以你可以在你的數據轉換成CSV和排序的飛行。從您的表定義

$table = @{ 
Workstation = $global:MachineName 
Date = $date = get-date -format MM-dd-yyyy 
OSArchitecture = $global:OSArchitecture.OSArchitecture 
HBSSAccess = $global:HBSS_Access 
SCCMAccess = $global:SCCM_Access 
WMIHealth = $global:WMI_Health 
SCCMHealth = $global:SCCM_Health 
WMIRepairAttempt = $global:WMI_Repair_Attempt 
SCCMRepairAttempt = $global:SCCM_Repair_Attempt 
WMIRepairResult = $global:WMI_Repair_Result 
SCCMRepairResult = $global:SCCM_Repair_Result 
} 

然後[訂購]您可以導出數據

$table.getEnumerator() | sort key | select key,value| Export-Csv "C:\users\public\scriptdata\storage.csv" -NoTypeInformation 

,太導入和運行,你會在一個CSV

PS U:\Scripts> $Data = Import-Csv "C:\users\public\scriptdata\storage.csv" 

PS U:\Scripts> $Data 

Key               Value 
---               ----- 
Date              01-29-2014 
HBSSAccess 
OSArchitecture 
SCCMAccess 
SCCMHealth 
SCCMRepairAttempt 
SCCMRepairResult 
WMIHealth 
WMIRepairAttempt 
WMIRepairResult 
Workstation 
相關問題