调用InvokeSet异常,缓存中找不到目录属性
Exception calling InvokeSet, The directory property cannot be found in the cache
当运行下面的代码我收到错误
Exception calling "InvokeSet" with "2" argument(s): "The directory property cannot be found in the cache."
在线存在此错误是因为变量为 null 的问题。使用 Write-Host 后,我得出的结论是 $User = [ADSI]$LdapUser
行是导致问题的原因。
#Set Remote Control Settings Permissions
$LdapUser = "LDAP://" + (Get-ADUser $username).distinguishedName
Write-Host $LdapUser
$User = [ADSI]$LdapUser
Write-Host $User
$User.InvokeSet("EnableRemoteControl",5)
$User.InvokeSet("TerminalServicesHomeDrive","U:\")
$User.setinfo()
$LdapUser
的 Write-Host 命令显示 "LDAP://CN=Test Taco,CN=Users,DC=blah,DC=org"
这是正确的,但是 $User
的 Write-Host 命令显示 System.DirectoryServices.DirectoryEntry
为什么 $User
变量显示错误信息,我该如何解决?
write-host
只能接受一串文本
$User
不是字符串,它更像是一个数组,因为它包含两行信息。它包含“distinguishedName”和“路径”。
您可以输入:
Write-Host $User.path
Write-Host $User.distinguishedName
问题是这个命令:
$User.InvokeSet("EnableRemoteControl",5)
你为什么用 5?用 2 测试,似乎有效
$User.InvokeSet("EnableRemoteControl",2)
我的代码的问题是我使用数字 5 来启用远程控制以及使用 U:\ 正确的代码使用 2 并且没有反斜杠所以 U:
#Set Remote Control Settings Permissions
$LdapUser = "LDAP://" + (Get-ADUser $username).distinguishedName
$User = [ADSI]$LdapUser
Write-Host $User
$User.InvokeSet("EnableRemoteControl",2)
$User.InvokeSet("TerminalServicesHomeDrive","U:")
$User.setinfo()
pause
感谢@Judd Davey 帮助我完成他的回答,让我意识到我的回答可能哪里出错了。我不太确定为什么它会给我这样一个奇怪的错误。
当运行下面的代码我收到错误
Exception calling "InvokeSet" with "2" argument(s): "The directory property cannot be found in the cache."
在线存在此错误是因为变量为 null 的问题。使用 Write-Host 后,我得出的结论是 $User = [ADSI]$LdapUser
行是导致问题的原因。
#Set Remote Control Settings Permissions
$LdapUser = "LDAP://" + (Get-ADUser $username).distinguishedName
Write-Host $LdapUser
$User = [ADSI]$LdapUser
Write-Host $User
$User.InvokeSet("EnableRemoteControl",5)
$User.InvokeSet("TerminalServicesHomeDrive","U:\")
$User.setinfo()
$LdapUser
的 Write-Host 命令显示 "LDAP://CN=Test Taco,CN=Users,DC=blah,DC=org"
这是正确的,但是 $User
的 Write-Host 命令显示 System.DirectoryServices.DirectoryEntry
为什么 $User
变量显示错误信息,我该如何解决?
write-host
只能接受一串文本
$User
不是字符串,它更像是一个数组,因为它包含两行信息。它包含“distinguishedName”和“路径”。
您可以输入:
Write-Host $User.path
Write-Host $User.distinguishedName
问题是这个命令:
$User.InvokeSet("EnableRemoteControl",5)
你为什么用 5?用 2 测试,似乎有效
$User.InvokeSet("EnableRemoteControl",2)
我的代码的问题是我使用数字 5 来启用远程控制以及使用 U:\ 正确的代码使用 2 并且没有反斜杠所以 U:
#Set Remote Control Settings Permissions
$LdapUser = "LDAP://" + (Get-ADUser $username).distinguishedName
$User = [ADSI]$LdapUser
Write-Host $User
$User.InvokeSet("EnableRemoteControl",2)
$User.InvokeSet("TerminalServicesHomeDrive","U:")
$User.setinfo()
pause
感谢@Judd Davey 帮助我完成他的回答,让我意识到我的回答可能哪里出错了。我不太确定为什么它会给我这样一个奇怪的错误。