PS New-Item:拒绝访问从命令行运行良好,但在从TFS构建执行期间不运行

时间:2018-03-29 18:37:40

标签: powershell tfs tfsbuild

我正在尝试创建一个由TFS构建触发的脚本,该脚本在网络共享上创建一个新目录,然后将该共享的位置保存在环境变量中。

这是(删节)脚本,原来是:

$NewPathForFiles = "\\NetworkShareName \" + "ProductName "+ $MajorBuildNumber 

New-Item -Path $NewPathForFiles -ItemType directory # Create the folder

但是当我从TFS运行脚本时,我收到了这个错误:

New-Item : Access is denied

我可以从命令提示符运行脚本,甚至以运行TFS构建的服务帐户登录,但是从构建中我得到错误。

我通过使用-Credential将驱动器映射到共享来修复此问题,但这意味着我需要在脚本中硬编码ID的密码,我不想这样做:

$pass = ConvertTo-SecureString "MyPassword" -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential("MyID",$pass)

New-PSDrive -Name P -PSProvider FileSystem -Root "\\MyNetworkShare" -Credential $cred

$NewPathForFiles = "p:\ProdctName " + $MajorBuildNumber 

New-Item -Path $NewPathForFiles -ItemType directory # Create the folder

任何人都有任何想法,我怎么能这样做而不必硬编码PW?

1 个答案:

答案 0 :(得分:0)

感谢@ TheIncorrigible1的答案。将-Force添加到New-Item可以解决问题。谢谢!