我有一個csv文件,該腳本可以正常工作。CSV導出缺少其中一列的數據
$CCure = Import-csv C:\Scripts\file1.csv
ForEach ($user in $CCure) {
[string]$1Name = $User.FirstName
[string]$2Name = $User.LastName
[string]$GivenName = $1Name.Split(" ")[0]
[string]$SN = $2Name.Split(",")[0]
[string]$ID = $User.ObjectID
[string]$EmpID = $User.Int5 |
Select @{Name="First Name";Expression={$GivenName}}, @{Name="Last Name";Expression={$SN}}, @{Name="CCure ObjectID";Expression={$ID}}, @{Name="CCure Int5 Row";Expression={$EmpID}} |
Export-csv C:\Scripts\CCure\CCure-Names-Test.csv -Append -notypeinformation
}
但是,當我嘗試一個類似的腳本走出去AD,並希望使用正則表達式,事情不起作用。它似乎掛起或當它運行時,SurName缺失。爲什麼第二個沒有工作?我必須錯過簡單的東西?
$Users = Get-ADUser -LDAPFilter "(&(&(objectCategory=person)(objectClass=user)(!userAccountControl:1.2.840.113556.1.4.803:=2))" -properties samaccountname,givenname,sn
ForEach ($User in $Users) {
[string]$1Name = $User.GivenName
[string]$2Name = $User.SN
[string]$GivenName = $1Name.Split(" ")[0]
[string]$SN = $2Name.Split(",")[0] |
Select @{Name="First Name";Expression={$GivenName}}, @{Name="Last Name";Expression={$SN}},@{Name="SID";Expression={$User.samaccountname}}| Export-Csv C:\scripts\ccure\AD-Active-Names3.csv -NoTypeInformation -append
}
奇怪,我得到一個錯誤你不能調用一個空值表達式的方法。 在C:\ Scripts \ CCure \ Get-AD-Names.ps1:6 char:5 + $ props = @ { + ~~~~~~~~~~~ + CategoryInfo:InvalidOperation:(:) [],RuntimeException + FullyQualifiedErrorId:InvokeMethodOnNull – MarcGel
不,他們沒有。 – MarcGel
@MarcGel請閱讀我更新的答案與調整後的代碼。對於那個很抱歉。 Ahkk ...我的廣告中有一些空字段。如果你不這樣做,你應該沒問題。也許我們應該說明這一點。 – Matt