我正在编写一个脚本,该脚本将从公司的某些Dls和可能附加到用户帐户的许可证中删除所有禁用的用户。
到目前为止,当我运行它时,它给我一个错误,指出脚本中的参数为空,但在导出的CSV文件中有明确的标头。脚本是:
Get-MsolUser -EnabledFilter DisabledOnly| select UserPrincipalName, isLicensed |Export-Csv -path "file\path\test"
$Remove = Import-Csv "file\path\test"| Out-String
Foreach($users in $Remove) {
Remove-DistributionGroupMember -Identity CC@company.com -Member $users.UserPrincipalName -Confirm:$false
Remove-MailboxPermission -Identity Sales -User $users.UserPrincipalName -AccessRights FullAcces -InheritanceType All -Confirm:$false
Remove-DistributionGroupMember -Identity Everyone -Member $users.UserPrincipalName -Confirm:$false
if($user.isLicensed -eq "true") {
Set-MsolUserLicense -UserPrincipalName $users.UserPrincipalName -RemoveLicenses "reseller-account:DESKLESSPACK"
Set-MsolUserLicense -UserPrincipalName $users.UserPrincipalName -RemoveLicenses "reseller-account:O365_BUSINESS_PREMIUM"
Set-MsolUserLicense -UserPrincipalName $users.UserPrincipalName -RemoveLicenses "reseller-account:EXCHANGEDESKLESS"
Set-MsolUserLicense -UserPrincipalName $users.UserPrincipalName -RemoveLicenses "reseller-account:O365_BUSINESS_ESSENTIALS"
}
}
Remove-Item –path "file\path\test" –recurse
它们有两个头文件UserPrincipalName
和isLicensed
,但我得到的错误是member
和user
都是空的。
请让我知道你的想法
发布于 2018-06-06 05:03:47
当您使用Import-Csv
时,它会将该信息转换为pscustomobject
,并将标头作为访问您的信息的键。当您使用| Out-String
时,它会将该对象转换为string
,其格式基于ps1xml
文件中有关pscustomobject
类型的说明。
CSV:
"a","b","c"
"1","2","3"
代码:
(Import-Csv -Path .\example.csv).GetType().FullName
# => System.Management.Automation.PSCustomObject
(Import-Csv -Path .\example.csv | Out-String).GetType().FullName
# => System.String
您遇到的错误是string
类型没有您试图访问的成员。
https://stackoverflow.com/questions/50708606
复制相似问题