如何在不显式传递用户名+密码的情况下将服务凭据传递给其调用的Powershell脚本?

时间:2014-11-05 08:45:34

标签: windows powershell jenkins powershell-v2.0

服务(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运行的同一个用户?最后的办法是直接将用户名+密码作为凭证传递给脚本,但如果有其他方式,我更愿意。

0 个答案:

没有答案