我有一個腳本,用於將用戶的Exchange郵箱遷移到.pst文件中。這個想法是,我會有一個CSV文件,我可以將用戶的姓名放在上面,然後當腳本每晚啓動時,它會打開CSV文件並查找已添加的用戶,對這些用戶帳戶執行請求的操作(導出,移動設置權限等),然後回寫到CSV文件標記這些用戶已完成,並寫入完成日期。這是我到目前爲止。在Powershell中修改現有的CSV文件
$InPstPath = '\\server1\PST_Store\'
$OutPstPath = '\\server2\PST_Store\'
$User = Get-Content $OutPstPath'login.txt'
$PWord = cat $OutPstPath'pass.txt' | convertto-securestring
$Credentials = New-Object –TypeName System.Management.Automation.PSCredential –ArgumentList $User, $PWord
$PSSession = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://Server1/powershell -Credential $Credentials
Import-PSSession $PSSession
$In_List = Invoke-Command {Import-Csv "\\Server1\PST_Store\Admin\To_Be_Exported.csv"} -computername Server1 -Credential $Credentials
foreach ($objUser in $In_List) {
if ($objUser.Completed -ne "Yes") {
$TargetUser = $objUser.name
$ShortDate = (Get-Date).toshortdatestring()
New-MailboxExportRequest -Mailbox $TargetUser -Filepath "$InPstPath$TargetUser.pst"
$objUser.Completed = "Yes"
$objUser.Date = $ShortDate
}
}
Remove-PSSession -Session (Get-PSSession)
我想不出寫回$ objUser.Completed一個體面的方式和$ objUser.Date值到CSV。
是否有一個Export-Csv函數鏡像您使用的Import-Csv?有 – Edward
有。我不確定我將如何使用它來僅針對需要改變的值。我發現這個命令的大部分內容似乎都像'Out-File C:\ filename.csv | ConvertTo-Csv' –
我猜你需要用新內容覆蓋整個文件。您需要測試並確保您只獲得您所做的更改,但對我來說這似乎是一個合理的方法。 – Edward