PowerShell과 bat를 활용한 소프트웨어의 원격 설치 방법

PowerShell과 bat를 활용한 소프트웨어의 원격 설치 방법

2022-10-04 last update

14 minutes reading PowerShell WindowsServer batch 인프라

● 전제 조건



·설치하는 소프트웨어가 자동 설치에 대응하고 있는 것
・ActiveDirectory 도메인 환경인 것
· 사용자 계정 제어 (UAC)가 유효하지 않음
· 관리 공유가 유효한 것
· 실시 사용자는 DomainAdmins 그룹에 속한 사용자임
서버간에 SMB에 의한 통신을 할 수 있는 것(NW 기기에 의한 차단이 없는 것)
Windows 방화벽이 유효하지 않음
· 각 서버에서 PowerShell을 사용할 수 있음
· 각 서버에서 PowerShell이 ​​"Get-ExecutionPolicy : RemoteSigned"인 것
· 각 서버에서 WinRM 서비스의 시작 유형이 지연 시작임
· 각 서버에서 WinRM 서비스가 시작되었습니다.

●환경



OS: WindowsServer2012R2(ActiveDirectory 도메인 환경)
원격 제어 서버 A(1대)
원격 대상 서버 B(N대)

●개요



설치 프로그램 폴더를 각 서버에 만듭니다.
작성 후 설치 프로그램을 각 서버에 복사합니다.
리모트 커맨드로부터 각 서버에 인스톨러를 두드린다.

● 흐름



·자재 폴더의 작성
・자재의 배치
・자재의 카피
· 원격 설치
· 설치 확인
・자재의 삭제

원격 제어 서버에 로그인합니다.



 DomainAdmins로 로그인하는 것.

①리모트 제어 서버에서 자재 작성, 배치



다음은 예
 ・D드라이브 바로 아래에 「remoteinstall」폴더 작성
・「remoteinstall」폴더에 인스톨러(exe)나,
exe를 실행하기 위한 bat 파일 배치

②자재의 복사 준비 원격처 서버에 폴더 작성


PS C:\WINDOWS\system32> mkdir \\リモート先サーバホスト名\D$\remoteinstall

③자재의 복사 원격처 서버에 오로지 자재를 배포한다


PS C:\WINDOWS\system32> robocopy "D:\remoteinstall" "\\リモート先サーバホスト名\D$\remoteinstall" /S /E /V /R:0 /W:0 /TEE

-------------------------------------------------------------------------------
   ROBOCOPY     ::     Windows の堅牢性の高いファイル コピー

-------------------------------------------------------------------------------

  開始: 2018221 22:12:58
   コピー元 : D:\remoteinstall
     コピー先 : \\リモート先サーバホスト名\D$\remoteinstall

    ファイル: *.*

  オプション: *.* /V /TEE /S /E /DCOPY:DA /COPY:DAT /R:0 /W:0

------------------------------------------------------------------------------

                           0    D:\remoteinstall
        新しいディレクトリ       3      \\リモート先サーバホスト名\D$\remoteinstall
100%      新しいファイル                       3        aaa.txt
100%      新しいファイル                    1599        AcroRd32.exe
100%      新しいファイル                     811        __pycache__.lnk

------------------------------------------------------------------------------

                  合計     コピー済み      スキップ       不一致        失敗
Extras
   ディレクトリ:         2         1         0         0         0         0
     ファイル:         3         3         0         0         0         0
      バイト:     2.3 k     2.3 k         0         0         0         0
       時刻:   0:00:00   0:00:00                       0:00:00   0:00:00


복사가 실패하면 프롬프트에 결과가 출력되므로 적시에 복사합니다.
명령 옵션은 아래 링크를 참조하십시오.
htps //w w. pg-fl. jp/p 여과 등 m/도 s/도 scmd/여자 py. htm

④-1 리모트 인스톨:패턴 1(bat 불필요한 경우)


PS C:\WINDOWS\system32> Invoke-Command -ComputerName "リモート先サーバホスト名" -ScriptBlock { cmd /c D:\remoteinstall\なんとか.exe exeの実行オプション(/なんとか) } 

④-2 리모트 인스톨:패턴 2(bat를 경유하는 경우 1)


PS C:\WINDOWS\system32> Invoke-Command -ComputerName "リモート先サーバホスト名" -ScriptBlock { cmd /c D:\remoteinstall\なんとか.bat } 

④-3 원격 설치 : 패턴 3(bat를 경유하는 경우 2)


PS C:\WINDOWS\system32> Invoke-Command -ComputerName "リモート先サーバホスト名" -ScriptBlock { wmic process call create "D:\remoteinstall\なんとか.bat" }


여기서 소개하는 원격 설치 방법은 위의 3가지 패턴으로 나뉩니다.
패턴 3은 Invoke 명령과 Wmic의 명령 조합.
※패턴 3이 어려운 것은 설치가 완료했는지가 보이지 않는 곳.
라는 이유로 15분 정도 기다렸다가 아래에서 확인한다.

설치 확인


PS C:\WINDOWS\system32> Invoke-Command -ComputerName "リモート先サーバホスト名" -ScriptBlock { Get-WmiObject Win32_Product | Where-Object {$_.Version,$_.Name -match "Micro*"} }

Name              : Update for Japanese Microsoft IME Standard Dictionary
Vendor            : Microsoft Corporation
Version           : 15.0.2013

커멘드 라인상의 「-match "Micro*"」라고 있는 "Micro*"의 개소는,
설치할 소프트웨어 이름과 와일드카드.
설치하는 소프트웨어 이름에 따라 적시에 바꾸기.

자재 삭제


PS C:\WINDOWS\system32> rmdir /S \\リモート先サーバホスト名\D$\remoteinstall
\\リモート先サーバホスト名\D$\remoteinstall、よろしいですか (Y/N)? y

●여담



이런 괴로움에서 벗어나려면 역시 엔터테인먼트.
제니퍼 로페즈는 언제라도 우리 언니.
이 동영상을 본 순간 커맨드만 보고 있던 내 시력이 부활할까 생각했습니다.
Jennifer Lopez - Love Don't Cost a Thing