반응형
● Powershell 자격증명
① 계정 프롬프트를 이용하여 자격 증명
1. 원격 명령을 수신할 수 있도록 다음과 같은 명령어를 실행한다.
Enable-PSRemoting -SkipNetworkProfileCheck -Force
#Parameter : SkipNetworkProfileCheck = 로컬 네트워크에서 원격 액세스 허용
# , Force = 확인 메시지 띄우지 않기
|
cs |
2. 신뢰할 수 있는 호스트 목록에 대상 서버를 추가한다.
Set-Item WSMan:\localhost\Client\TrustedHosts -Value "원격서버 IP 또는 원격서버 호스트명" -Force
|
cs |
3. 원격 접속 자격증명 설정
$MyCredential = Get-Credential "접근할 원격서버의 계정"
|
cs |
② 프롬프트 없이 입력된 계정 정보를 이용하여 자격 증명
1. 원격 대상 서버의 패스워드를 암호화한다.
$MyPassword = "$Remote_Server_Passwd" | ConvertTo-SecureString -AsPlainText -Force
|
cs |
2. 자격증명을 위한 오브젝트를 생성한다.
$ObjectTypeName = "System.Management.Automation.PSCredential"
|
cs |
3. 오브젝트에 계정값을 인자로 전달하고 자격증명을 생성한다.
$MyCredential = New-Object -TypeName $ObjectTypeName -ArgumentList "$Remote_Account",$MyPassword
|
cs |
● 원격 서버 접근
접속하기 전에 원격 대상 컴퓨터에 원격 관리 서비스(WinRM)가 실행 중인지 확인한다.
1
2
3
4
|
if ( ![bool](Test-WSMan -ComputerName "원격서버 IP 또는 원격서버 호스트명" -ErrorAction SilentlyContinue) )
{
echo "The WinRM service was not running on the remote computer."
}
|
cs |
Enable-PSRemoting -SkipNetworkProfileCheck -Force
Set-Item WSMan:\localhost\Client\TrustedHosts -Value "원격서버 IP 또는 원격서버 호스트명" -Force
$MyCredential = Get-Credential "접근할 원격서버의 계정"
Enter-PSSession -ComputerName "원격서버 IP 또는 원격서버 호스트명" -Credential $MyCredential
|
cs |
● 원격 명령 실행
Enable-PSRemoting -SkipNetworkProfileCheck -Force
Set-Item WSMan:\localhost\Client\TrustedHosts -Value "$Remote_Host1" -Force $MyPassword = "$Remote_Server_Passwd" | ConvertTo-SecureString -AsPlainText -Force
$MyCredential = New-Object -TypeName $ObjectTypeName -ArgumentList "$Remote_Account",$MyPassword...
Invoke-Command -ComputerName "$Remote_Host1","$Remote_Host2","$Remote_Host3" -Credential $MyCredential -ScriptBlock { ipconfig }
|
cs |
● 원격 서버에 파일 전송
Enable-PSRemoting -SkipNetworkProfileCheck -Force
Set-Item WSMan:\localhost\Client\TrustedHosts -Value "$Remote_Host" -Force
$MyPassword = "$Remote_Server_Passwd" | ConvertTo-SecureString -AsPlainText -Force
$ObjectTypeName = "System.Management.Automation.PSCredential"
$MyCredential = New-Object -TypeName $ObjectTypeName -ArgumentList "$Remote_Account",$MyPassword
$core = New-PSSession -ComputerName "$Remote_Host" -Credential $MyCredential
Copy-Item -ToSession $core "$C:\Users\file.txt" -Destination "C:\"
|
cs |
반응형
'OS-서버 > 윈도우' 카테고리의 다른 글
Powershell XML (0) | 2018.03.20 |
---|---|
Powershell 잡지식 (0) | 2018.03.20 |
Powershell Alias (0) | 2018.03.20 |
Powershell 기본 문법 (2) | 2018.03.20 |
system32 폴더안에 파일 변경권한 수정 (0) | 2017.10.02 |