在Powershell中修改现有CSV文件

特里·纳克尔斯

我有一个正在设置的脚本,用于将用户的Exchange邮箱迁移到.pst文件。我的想法是,我将拥有一个CSV文件,可以放置用户名,然后在每晚启动脚本时,它将打开CSV文件并查找已添加的用户,对这些用户帐户执行请求的操作(导出,移动设置的权限等),然后写回到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。

印度博览会

首先,这很明显,但无论如何我还是要说一下。首次运行此脚本时,$ objUser.name,$ objUser.Completed和$ objUser.Date将不存在;所以,线

$TargetUser=$objUser.name

除非您实际上在该csv中具有适当的结构(即,具有标题名称,completed,date),否则它将无法工作。

现在,假设您已经完成了该部分,那么您所要做的就是创建一个对象,该对象捕获对象中的状态,然后将其写回。

$Processed = 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"

        [PSCustomObject]@{Name=$objUser.name;Completed="Yes";Date=$ShortDate}
        }
    } else {
        [PSCustomObject]@{Name=$objUser.name;Completed="No";Date=$null}
    }
## export to a temp file
$Processed | export-csv -Path $env:TEMP\processed.csv
## You should probably check to see if original file was modified since you started working on it
# and copy over if not
Copy-Item $env:TEMP\processed.csv $OutPstPath'login.txt' -force

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

修改多个csv文件中的现有列

来自分类Dev

修改Groovy中的现有xml文件

来自分类Dev

如何在ruby中修改现有的csv列?

来自分类Dev

将数据从csv文件传递到Powershell中的现有foreach循环

来自分类Dev

将列添加到csv文件中,并基于现有列powershell填充新列

来自分类Dev

使用powershell在现有CSV中添加列CSV

来自分类Dev

修改c中文件的现有内容

来自分类Dev

修改Interop Excel以打开现有文件

来自分类Dev

如何修改现有的python文件

来自分类Dev

如何在符号链接中创建新文件或修改现有文件?

来自分类Dev

有没有一种方法可以将数据添加到PowerShell中的现有csv文件中?

来自分类Dev

在Powershell中修改文件的内容

来自分类Dev

如何以编程方式修改现有apk中Assets文件夹中的数据?

来自分类Dev

修改SQLAlchemy对象中的现有值

来自分类Dev

更改/修改现有keyValuePair中的数据

来自分类Dev

在Itext中修改现有PDF的字体

来自分类Dev

修改 csv 文件中的值

来自分类Dev

如何在python中修改现有文件的压缩itxt记录?

来自分类Dev

如何在MATLAB中修改xlswritefig以使用现有文件?

来自分类Dev

修改现有的Word文件并保存在C#中

来自分类Dev

如何在python中修改现有文件的压缩itxt记录?

来自分类Dev

Python通过过滤现有csv文件中的选定行来编写新的csv文件

来自分类Dev

在.csv中更新数据而不会覆盖现有数据/在Powershell中添加新数据

来自分类Dev

更新/修改服务器上的现有文件

来自分类Dev

使用PowerShell查询Active Directory并将数据添加到现有csv的新列中

来自分类Dev

使用Java代码中的csv文件运行具有参数化功能的现有JMeter测试

来自分类Dev

将现有csv文件中的每一列复制并粘贴到新的csv文件中

来自分类Dev

是否可以将csv文件中的数据附加到现有的mysql表中

来自分类Dev

针对python中的csv文件中的现有字符串创建值的新列

Related 相关文章

  1. 1

    修改多个csv文件中的现有列

  2. 2

    修改Groovy中的现有xml文件

  3. 3

    如何在ruby中修改现有的csv列?

  4. 4

    将数据从csv文件传递到Powershell中的现有foreach循环

  5. 5

    将列添加到csv文件中,并基于现有列powershell填充新列

  6. 6

    使用powershell在现有CSV中添加列CSV

  7. 7

    修改c中文件的现有内容

  8. 8

    修改Interop Excel以打开现有文件

  9. 9

    如何修改现有的python文件

  10. 10

    如何在符号链接中创建新文件或修改现有文件?

  11. 11

    有没有一种方法可以将数据添加到PowerShell中的现有csv文件中?

  12. 12

    在Powershell中修改文件的内容

  13. 13

    如何以编程方式修改现有apk中Assets文件夹中的数据?

  14. 14

    修改SQLAlchemy对象中的现有值

  15. 15

    更改/修改现有keyValuePair中的数据

  16. 16

    在Itext中修改现有PDF的字体

  17. 17

    修改 csv 文件中的值

  18. 18

    如何在python中修改现有文件的压缩itxt记录?

  19. 19

    如何在MATLAB中修改xlswritefig以使用现有文件?

  20. 20

    修改现有的Word文件并保存在C#中

  21. 21

    如何在python中修改现有文件的压缩itxt记录?

  22. 22

    Python通过过滤现有csv文件中的选定行来编写新的csv文件

  23. 23

    在.csv中更新数据而不会覆盖现有数据/在Powershell中添加新数据

  24. 24

    更新/修改服务器上的现有文件

  25. 25

    使用PowerShell查询Active Directory并将数据添加到现有csv的新列中

  26. 26

    使用Java代码中的csv文件运行具有参数化功能的现有JMeter测试

  27. 27

    将现有csv文件中的每一列复制并粘贴到新的csv文件中

  28. 28

    是否可以将csv文件中的数据附加到现有的mysql表中

  29. 29

    针对python中的csv文件中的现有字符串创建值的新列

热门标签

归档