파일이 로컬 (서버에서 스크립트를 실행 중)인지 원격 (다른 컴퓨터에서)인지는 분명하지 않습니다. 지역은 백그라운드 작업을 사용하여 명령을 실행 시도하고 자격 증명을 전달하는 경우 시작 - 작업하기 :
Invoke-Command -computername servername `
-scriptblock { Remove-Item -LiteralPath $path -force } `
-Cred $cred
참고 : 그들이 원격 경우
$job = Start-Job { Remove-Item -LiteralPath $path -force } -cred $cred
Wait-Job $job
Receive-Job $job
는 원격를 사용하여 시도를이 당신을해야합니다 원격 컴퓨터에서 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
DPAPI가 멋지다! 공유 Thx! – stej
암호를 하드 코드하는 것은 좋지 않지만 호스트에서 테스트해야한다는 데 동의합니다. 그런 자동화에 사용되는 서버를 열어서 도메인 계정으로 로그인했습니다. 여기에서 나는 성공적으로 테스트 할 수있었습니다. Remove-Item은 내가 찾은 최고의 정보를 받아들이지 않습니다. 나는 DPAPI 물건이 의롭기 때문에 당신에게 답을 줄 것입니다. – websch01ar
감사합니다. WRT rename-item 및 -credential은 파일 시스템 제공자에게 있어서는 옳습니다. 이름 바꾸기 항목은 여러 다른 공급자 (레지스트리, 함수 등)에서 작동하기위한 것입니다. 함수를 복사하고 이름을 바꿀 수 있다는 것을 알고 계셨습니까? PowerShell은 이런 식으로 매우 멋지다. 프롬프트 기능을 다른 이름으로 복사하고 새로운 프롬프트 기능으로 실험 한 다음 완료되면 이전 기능을 복원 할 수 있습니다. –