Итак, у меня есть «родительский» сценарий, который вызывает команду для некоторых веб-серверов, а внутри этой команды вызова у меня есть «дочерний» сценарий, который удаляет и копирует некоторые файлы.
Вот родительский скрипт: (примечание: переменная $cred на данный момент является проверенным и действующим администратором домена через securestring)
foreach ($server in $servers) {
invoke-command -ComputerName $server -Credential $cred -ScriptBlock {
& 'D:\Web\Deploy_CopyStaging2AppPools.ps1'
}
По какой-то причине дочерний скрипт, кажется, получает ошибки разрешения (я думаю?)
Дочерний скрипт выглядит так
$AppPoolDirs = @(
"SisterSitesCategory",
"SisterSitesManufacturer",
"TestimStopTrunk",
"1ss_bot2",
"1ss_test",
"1sspro",
"Canadabot2",
"DevelopBot2",
"hcbot2",
"LDEBOT2",
"LnBOT2"
)
#timestamp filter
filter timestamp {"$(Get-Date -Format o): $_"}
Write-Output "Starting AppPool Filecopies on $env:COMPUTERNAME" | Timestamp | Out-File -FilePath "D:\Web\Deploylog.txt" -Append
Foreach ($AppPoolDir in $AppPoolDirs) {
Write-Output "The working AppPoolDirectory is $AppPoolDir"
if
(test-path D:\Web\AppPools\$AppPoolDir) {
Write-Output "######APP POOL DIRECTORY FOUND#######! Gonna do stuff to the AppPoolDir $AppPoolDir"
remove-item -path "D:\Web\AppPools\$AppPoolDir\bin\App_Web_*.dll" -WhatIf
copy-item -path "\\1sl-den-web01\d$\web\staginglive\staging\*" -Destination "D:\Web\AppPools\$AppPoolDir" -recurse -Force -WhatIf
}
else {
Write-Output "Directory $env:COMPUTERNAME D:\Web\AppPools\$AppPoolDir Doesn't exist, no removal or copying was done"
}
}
Элемент удаления работает, элемент копирования - нет. Поскольку путь к элементу-копии находится на удаленной машине, я предполагаю, что это связано с разрешениями.
Если это вопрос разрешений, я предполагаю, что «Родительский» скрипт при открытии команды вызова с правильными кредитами не вызывает дочерний скрипт с правильными кредитами?