gpt4 book ai didi

powershell - 在 'user' 上找不到对象 'Domain Controller'

转载 作者:行者123 更新时间:2023-12-01 13:10:15 25 4
gpt4 key购买 nike

我创建了 PowerShell 脚本来收集 Exchange On-Premises 上的所有用户邮箱详细信息,例如“PrimarySmtpAddress、Identity、displayname”。我正在尝试从 powershell 运行此命令:

$UserNameInSmtpFormat = Get-Mailbox -Identity $User -ErrorAction Stop | Select PrimarySmtpAddress, Identity, displayname

此命令运行良好(powershell.exe "c:\pstest\readUsers.ps1"'Administrator@domain.com' 'Password' 'users.txt' 'http://Exchange/PowerShell/' ) 保存为'testok.cmd'

在这个命令中我收到错误:- (powershell.exe "c:\pstest\readUsers.ps1"'User@domain.com' 'Password' 'users.txt' 'http://Exchange/PowerShell/') 这被保存为'testproblem.cmd'

我收到以下错误

错误:-当我给管理员帐户凭据时,它工作正常但是当我试图通过使用普通“用户”凭据来收集相同的信息,然后出现以下错误;

The operation couldn't be performed because object 'user@domain.com' couldn't be found on 'dc.Domain.com'..Exception.Message

下面是脚本

( #Constant Variables 
$Office365AdminUsername = $args[0]
$Office365AdminPassword = $args[1]
$UserNamesFile = $args[2]
$connectionUri = $args[3]
#Main
Function Main {
#Remove all existing Powershell sessions
Get-PSSession | Remove-PSSession
#Encrypt password for transmission to Office365
$SecureOffice365Password = ConvertTo-SecureString -AsPlainText $Office365AdminPassword -Force
#Build credentials object
$Office365Credentials = New-Object System.Management.Automation.PSCredential $Office365AdminUsername, $SecureOffice365Password
Write-Host "Credentials object created"
#Create remote Powershell session
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri $connectionUri -Credential $Office365credentials -Authentication Kerberos –AllowRedirection
Write-Host "Remote session established"
#Check for errors
if ($Session -eq $null){
Write-Host "Invalid creditials"
}else{
Write-Host "Login success"
#Import the session
Import-PSSession $Session
}
try {
Write-Host "SMTPADDRESS"

Foreach($User in (get-content $UserNamesFile))
{
Write-Host "mailboxIdentity : $User"
$UserNameInSmtpFormat =Get-Mailbox -Identity $User -ErrorAction Stop | Select PrimarySmtpAddress, Identity, displayname

$UserNameInSmtpFormat
}
Write-Host "ENDSMTPADDRESS"
}
catch {
write-host "EXCEPTION"
write-host "`r`n $_.Exception.Message"
}
finally {
Exit-PSSession
Remove-PSSession $Session
}
}
# Start script
. Main
)

最佳答案

解决方案是“角色权限”,它是通过向我试图从中获取邮箱详细信息的用户提供相同权限来解决的。我已从 ECP 中的“权限”选项卡为用户分配“邮件收件人”角色。

谢谢。

关于powershell - 在 'user' 上找不到对象 'Domain Controller',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60566761/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com