我正在尝试创建一个由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?
答案 0 :(得分:0)
感谢@ TheIncorrigible1的答案。将-Force添加到New-Item可以解决问题。谢谢!