因为经常需要使用ad的activedirectory模块中的get-adsuer命令,但感觉该命令的功能比较弱,因此想自己创建一个新的module实现自己的需求,同时也希望该module能够被其他机器远程所调用。
现在的问题是
在本机环境下新建的module 加载后,运行函数会自动调用本机环境下的activedirectory模块,执行get-aduser查询都是正常的
但如果从其他机器上 远程隐性调用这个新建module 的时候 ,调用module成功,但函数无法执行get-aduser 的查询命令
我也试图通过New-ModuleManifest 的参数reuiremodule 添加对activedirectory模块的引用,但不知是否格式不对,一旦增加此参数后,模块就无法正常加载。
希望有好的建议 或其他的实现方式,谢谢
1 Answers
Best Answer
这个应当是权限代理的问题:
- 在机器A上访问AD,用的是A的权限,没有问题。
- 在机器B上远程A来访问AD,用的是连接到A的权限,但是默认这个权限是不能被委托去访问AD。
我举个例子:比如我在自己机器上可以访问公司的共享文件夹,但是当我远程到自己(包括自己远程自己)时,却访问不到了。
PS> dir \\cn1\pstips.net
Directory: \\cn1\pstips.net
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----l 2014/2/13 18:53 Citrix
d----l 2014/2/13 18:53 Home
d----l 2014/2/13 18:53 工具区
d----l 2014/2/13 18:53 pstips.net共享文件
PS> Enter-PSSession .
[localhost]: PS D:\Users\bzli\Documents> dir \\cn1\pstips.net
dir : 拒绝访问。
+ CategoryInfo : PermissionDenied: (\\cn1\pstips.net:String) [Get-ChildItem], UnauthorizedAccessException
+ FullyQualifiedErrorId : ItemExistsUnauthorizedAccessError,Microsoft.PowerShell.Commands.GetChildItemCommand
dir : Cannot find path '\\cn1\pstips.net' because it does not exist.
+ CategoryInfo : ObjectNotFound: (\\cn1\pstips.net:String) [Get-ChildItem], ItemNotFoundException
+ FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand
如何破解呢?
可以参考:使用Credssp认证处理多跳授权