Мне не ясно, являются ли файлы локальными (вы запускаете скрипт на сервере) или удаленными (на другой машине).Если локально, попробуйте выполнить команду, используя фоновое задание, и передайте учетные данные в Start-Job:
$job = Start-Job { Remove-Item -LiteralPath $path -force } -cred $cred
Wait-Job $job
Receive-Job $job
Если они удаленные, попробуйте использовать удаленное взаимодействие:
Invoke-Command -computername servername `
-scriptblock { Remove-Item -LiteralPath $path -force } `
-Cred $cred
ПримечаниеДля этого необходимо выполнить Enable-PSRemoting на удаленном компьютере.
В общем, вставлять необработанные пароли в ваш скрипт не очень хорошая идея.Вы можете хранить пароль в зашифрованном виде, используя DPAPI и более поздние версии, только эта учетная запись пользователя может расшифровать пароль, например:
# Stick password into DPAPI storage once - accessible only by current user
Add-Type -assembly System.Security
$passwordBytes = [System.Text.Encoding]::Unicode.GetBytes("Open Sesame")
$entropy = [byte[]](1,2,3,4,5)
$encrytpedData = [System.Security.Cryptography.ProtectedData]::Protect( `
$passwordBytes, $entropy, 'CurrentUser')
$encrytpedData | Set-Content -enc byte .\password.bin
# Retrieve and decrypted password
$encrytpedData = Get-Content -enc byte .\password.bin
$unencrytpedData = [System.Security.Cryptography.ProtectedData]::Unprotect( `
$encrytpedData, $entropy, 'CurrentUser')
$password = [System.Text.Encoding]::Unicode.GetString($unencrytpedData)
$password