服务(Jenkins)作为具有其他权限的其他用户帐户在服务器上运行。然后它在构建期间调用powershell脚本以使用这些权限(访问另一台服务器上的某些文件夹),但它不起作用。在脚本中,我得到了以下代码:
New-PSDrive -Name Y -PSProvider filesystem -Root '\\XXX\ctv$'
Get-Childitem -Path 'Y:\'
结果是:
Get-ChildItem : Access to the path '\\XXX\ctv$' is denied.
At D:\XXX\copy.ps1:2 char:14
+ get-childitem <<<< -Path 'Y:\'
+ CategoryInfo : PermissionDenied: (\\XXX\ctv$\:String
) [Get-ChildItem], UnauthorizedAccessException
+ FullyQualifiedErrorId : DirUnauthorizedAccessError,Microsoft.PowerShell.
Commands.GetChildItemCommand
尝试直接访问该文件夹会返回一个类似的错误,即找不到路径:
Get-ChildItem -Path '\\XXX\ctv$\X\X'
我还检查了脚本运行的用户与
一样[Security.Principal.WindowsIdentity]::GetCurrent()
它返回了这个
AuthenticationType : Negotiate
ImpersonationLevel : None
IsAuthenticated : True
IsGuest : False
IsSystem : True
IsAnonymous : False
Name : NT AUTHORITY\SYSTEM
Owner : S-1-5-32-544
User : S-1-5-18
Groups : {S-1-5-32-544, S-1-1-0, S-1-5-11}
Token : 1072
用户Jenkins没有以。
的身份运行所以我的问题是如何将我的脚本传递给Jenkins运行的同一个用户?最后的办法是直接将用户名+密码作为凭证传递给脚本,但如果有其他方式,我更愿意。