Добавьте этот параметр в вашу функцию Test-FileLock
.
param (
[ValidateNotNull()]
[System.Management.Automation.PSCredential]
[System.Management.Automation.Credential()]
$Credential = [System.Management.Automation.PSCredential]::Empty
)
Это создаст безопасный объект учетных данных, в котором вы можете хранить свои учетные данные без жесткого кодирования их в своем скрипте. См. Также эту ссылку Как добавить учетные данные в PowerShell .
Затем следует попробовать использовать
Copy-Item -Path $path -Destination $destfolder -Credentials $Credential -Force -Verbose -PassThru
Если это не работает, добавьте полное сообщение об ошибке. и сообщите нам, какая команда нарушает ваш код.
Редактировать
Вы также можете сохранить учетные данные на своем компьютере и затем получить их из диспетчера учетных данных.
- Установите и импортируйте Диспетчер учетных данных из PSGallery
Install-Module CredentialManager
Import-Module CredentialManager
Создать новую учетную запись с
New-StoredCredential
$cred = New-StoredCredential -UserName TestAccount -Password P@ssw0rd
Вы можете получить учетные данные с помощью
Get-StoredCredentials | where { $_.UserName -eq TestAccount }
Этот объект теперь является типом защищенной строки. Эта и следующая команда (шаг 4) должны быть в вашем сценарии для получения учетных данных и преобразования их в объект PSCredential.
Чтобы создать объект PSCredential, введите:
$credentials = New-Object -TypeName System.Management.Automation.PSCredential($cred.UserName, $cred.Password)
Теперь у вас есть объект PSCredential, который вы сможете использовать для Copy-Item также в качестве сценария.