ヘルプPowerShellのリモートサポート。 リモートPowershellセッションを操作します。 PowerShellでのセッションの作成

ゴロフナ / 主な機能

概要:知人iz 遠くにkeruvannyam WindowsPowerShellから。

週末のスクリプター:Windowsリモートカーニングを有効にします。

Microsoft Scripting Guy、EdWilsonが電話に出ました。 今日は、MicrosoftPressのような新しいWindowsPowerShell3.0のステップバイステップの本からの抜粋を公開します。 同時に、本は事前予約が可能です。

WinRM-Windowsカーネルを削除します

Windows Server 2012では、リモートWindows PowerShellコマンドの削除をサポートするために、WinRMが舞台裏で実行されています。 WinRMは、MicrosoftによるWS-ManagementProtocol業界標準の実装です。 そのため、WinRMは 手動による方法一目でリモートシステムにアクセスしても、ファイアウォールを閉じることができませんでした。 新しいCIMコマンドを獲得するのと同じメカニズム。 このようにして、実行中のWindows Server 2012マシンに接続してコマンドを実行したり、対話型のWindowsPowerShellコンソールを開いたりすることができます。 一方、Windows 8では、WinRMはロックアウトされています。 次のこと、何をする必要があるかを意味するのではなく、コマンドレットを実行します 有効化-PSRemoting。 このコマンドレットを実行すると、次の行が表示されます。

1.WinRMサービスを開始または再起動します。

2.サービスの起動の種類WinRMは自動的にインストールされます。

3.すべてのIPアドレスの接続を受信するリスナーが作成されます。

4.WS-Manトラフィックのファイアウォールをオフにします。

5.アップロードされたMicrosoft.powershell構成

6.アップロードされたMicrosoft.powershell.workflow構成

7.アップロードされたMicrosoft.powershell32構成

このプロセスを伸ばすことにより、肌の状態の改善にエネルギーを与える機能。 関数が何であるかを知っていて、その前に変更を加えたくない場合は、キーを使用してこのコマンドを実行できます -力このように、確認は表示されません。 このコマンドの構文を以下に示します。

有効化-PSRemoting–Force

次に、表示されるすべての情報を含めて、Enable-PSRemoting機能をインタラクティブモードにします。

PS C:\>有効-PSRemoting

WinRMクイック構成

[Set-WSManQuickConfig]ボタンを押して、Windowsリモート管理(WinRM)サービスを利用してこのプログラムを効率的に管理できるようにします。 これも:

1. WinRMサービスの開始または再起動(すでに開始されている場合)

2.WinRMサービスの起動タイプを自動に設定する

3.任意のIPアドレスでリクエストを受け入れるリスナーを作成する

4. WS-ManagementトラフィックのWindowsファイアウォールソート例外ルールを有効にします(httpのみ)。

続けたいですか?

WinRMは、要求を受信するように更新できます。

WinRMサービスの種類が正常に変更されました。

WinRMサービスが開始されました。

WinRMは、リモート管理用に更新できます。

このマシン上の任意のIPへのWS-Man要求に対して、HTTP://*上にWinRMリスナーを作成しました。

WinRMファイアウォールの例外が有効になっています。

microsoft.powershell SDDL:

[Y]はい[A]すべてはい[N]いいえ[L]すべていいえ[S]一時停止[?]ヘルプ(デフォルトは「Y」):y

このアクションを実行してもよろしいですか?

ターゲット「名前:」に対して操作「Set-PSSessionConfiguration」を実行します。

microsoft.powershell.workflow SDDL:

O:NSG:BAD:P(A ;; GA ;;; BA)(A ;; GA ;;; RM)S:P(AU; FA; GA ;;; WD)(AU; SA; GXGW ;;; ; W.D。)。 この意志

選択したユーザーがこのコンピューターでWindowsPowerShellコマンドをリモートで実行できるようにします。」

[Y]はい[A]すべてはい[N]いいえ[L]すべていいえ[S]一時停止[?]ヘルプ(デフォルトは「Y」):y

このアクションを実行してもよろしいですか?

ターゲット「名前:」に対して操作「Set-PSSessionConfiguration」を実行します。

microsoft.powershell32 SDDL:

O:NSG:BAD:P(A ;; GA ;;; BA)(A ;; GA ;;; RM)S:P(AU; FA; GA ;;; WD)(AU; SA; GXGW ;;; ; W.D。)。 この意志

選択したユーザーがこのコンピューターでWindowsPowerShellコマンドをリモートで実行できるようにします。」

[Y]はい[A]すべてはい[N]いいえ[L]すべていいえ[S]一時停止[?]ヘルプ(デフォルトは「Y」):y

その後、構成が見つかったら、追加のコマンドレットのWinRMの優先順位を逆にすることができます テスト-WSMan。 システムが正しく設定されている場合は、現在の情報と同様の情報が表示されます。

PS C:\> Test-WSMan -ComputerName w8c504

ProductVersion:OS:0.0.0 SP:0.0スタック:3.0

このコマンドレットは、WindowsPowerShell2.0コンピューターでも機能します。 以下のヒントは、Windows Server2008zのドメインコントローラーまでの説明です。 Windowsをインストールする WinRMが釘付けにされたPowerShell2.0。

PS C:\> Test-WSMan -ComputerName dc1

wsmid:http://schemas.dmtf.org/wbem/wsman/identity/1/wsmanidentity.xsd

ProtocolVersion:http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd

製品ベンダー:Microsoft Corporation

ProductVersion:OS:0.0.0 SP:0.0スタック:2.0

WinRMが設定されていない場合、恩赦に関する通知が有効になります。 間に合って オペレーティング·システム Windows 8、まもなく登場します。

PS C:\> Test-WSMan -ComputerName w8c10

テスト-WSMan:

xmlns:f = "http://schemas.microsoft.com/wbem/wsman/1/wsmanfault" Code = "2150859046"

Machine ="w8c504.iammred.net">WinRMを忘れないでください。 確認

指定されたコンピューター名が有効であること、コンピューターにアクセスできること

ネットワーク、およびWinRMサービスのファイアウォール例外が有効になっていて許可されていること

このコンピューターからのアクセス。 既定では、パブリックのWinRMファイアウォールの例外

プロファイルは、同じローカルサブネット内のリモートコンピューターへのアクセスを制限します。

行:1文字:1

テスト-WSMan-ComputerNamew8c10

+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

CategoryInfo:InvalidOperation:(w8c10:String)、InvalidOperationException

FullyQualifiedErrorId:WsManError、Microsoft.WSMan.Management.TestWSManCommand

Enable-PSRemotingコマンドレットを使用してリモート管理を有効にしても、リモート管理ファイアウォールは無効にならないため、Windows8マシンを伝達しようとしても成功しないことに注意してください。

PS C:\> ping w8c504

32バイトのデータでw8c504.iammred.netにpingを実行します。

リクエストはタイムアウトしました。

リクエストはタイムアウトしました。

リクエストはタイムアウトしました。

リクエストはタイムアウトしました。

192.168.0.56のping統計:

パケット:送信= 4、受信= 0、損失= 4(100%の損失)。

すべてがWindowsServer2012で機能します。

PS C:\> ping w8s504

32バイトのデータでw8s504.iammred.netにpingを実行します。

<1ms TTL=128

192.168.0.57からの返信:bytes = 32 time<1ms TTL=128

192.168.0.57からの返信:bytes = 32 time<1ms TTL=128

192.168.0.57からの返信:bytes = 32 time<1ms TTL=128

192.168.0.57のping統計:

パケット:送信= 4、受信= 4、損失= 0(0%の損失)、

夏時間のおおよその往復時間:

最小=0ms、最大= 0ms、平均= 0ms

WinRMを改善するために必要なのはこれだけです。

エドウィルソン、Microsoft Scripting Guy

オリジナル:

最近、Powershell経由でリモートアクセスを取得するために3時間を無駄にする機会がありました。 このようなガイドは、多くの場合、リモートデスクトップサービスの強力な代替手段として提供されています(リモートVDSホスティングでサービスを再起動し、バックアップコピーを作成し、システムシステムをもう一度確認します)。

リモートPowershellセッションを作成する機能は、バージョン2で導入されました。この機能にはEnter-PSSession/Invoke-Commandコマンドレットが使用されます。 勝利した学生の前に、プロテは真ん中を準備します。

ロビモとは サーバー上:

クロク1: Powershellコンソールを開き、Forceキーを指定してEnable-PSRemotingコマンドレットを使用してリモートセッションを許可します。

有効化-PSRemoting-Force

クロク2: WinRMサービスが実行されていることを再検討してください。

開始サービスWinRM

クロク3:入力接続が可能になるように、ブランドマウアーのルールを変更しました。

コンピューターで クライアント tezhvikonatikіlkadiyする必要があります:

クロク1:リモートノードへの接続を許可します。 任意のノードにアクセスするために、攻撃的な構造をスピードアップできます。

Set-Item wsman:\ localhost \ client \ trustedhosts * -Force

クロク2:ブランドマウアーが一日の外をブロックしていないことを確認してください。

これで、Powershellを介してリモートノードに接続するには、次のように実行できます。

入力-PSSession192.168.1.160-クレデンシャルVMNAME\User

値192.168.1.160とVMNAME\Userは、リモートホストのアドレスとサーバー上のWindowsホストの名前に置き換える必要があります。

現在、Powershellを介したリモートアクセスが実用的です。 もう1つのニュアンスを保護します。 たぶん、あなたの何人かはPowershellでプロファイルされています。 プロファイルは、コンソール自体の起動時に起動される特別なスクリプトです。 ここでは、たとえば、目の前にある必要なすべてのエイリアスとバイコンを指定できます。

問題は、セッションの終了後1時間はプロファイルが開始されないことのようです。 さまざまな接続構成に関するヘルプを確認できます。 どちらの場合も、リモートサーバーに設定を登録する必要があります。 これを行うには、Register-PSSessionConfigurationコマンドをだまします。 どんな肌の構成でも、あなたはそれを期待することができます。 スキン構成の場合、スクリプトへのパスを挿入できます。これは、セッションの開始時にチェックされます。

Register-PSSessionConfiguration -name Config1 -startupScript c:\ scripts \ Startup.ps1

その後、リモートノードに接続しているときにEnter-PSSessionコマンドが異なる場合は、構成の名前を指定します。

入力-PSSession192.168.1.160-ConfigurationNameConfig1-資格情報VMNAME\User

これで、サーバーリソースを使用せずに、リモートデスクトップサービスを介して接続セッションを作成し、Powershellを使用してサーバーから離れることができます。

PowerShellリモートスタートプログラム

インタラクティブセッションの開始

1台のリモートコンピューターから対話型セッションを開始するには、Enter-PSSessionコマンドレットを入力します。 たとえば、リモートコンピュータServer01からインタラクティブセッションを開始するには、次のように入力します。
enter-pssession Server01
コマンドラインには、接続するまでコンピュータの名前が表示されます。 コマンドラインに入力されたすべてのコマンドはリモートコンピューターで実行され、結果はローカルコンピューターに表示されます。
インタラクティブセッションを終了するには、次のように入力します。
exit-psession

チームの距離にあるVikonannya

Invoke-Commandコマンドレットを使用して、1台以上のリモートコンピューターでコマンドを無効にします。 たとえば、リモートコンピューターServer01およびServer02でGet-UICultureコマンドを実行するには、次のように入力します。

Invoke-command -computername Server01、Server02(get-UICulture)
出力データはコンピュータに返されます。
1台以上のコンピューターでスクリプトを実行するには、Invoke-CommandコマンドレットのFilePathパラメーターを含めます。 スクリプトは、ローカルコンピュータに注意するか、ローカルコンピュータで利用できるという罪を犯しています。 結果はローカルコンピューターにローテーションされます。
たとえば、このコマンドは、リモートコンピューターServer01およびServer02でスクリプトDiskCollect.ps1を実行します。
invoke-command -computername Server01、Server02 -filepath c:\ Scripts \ DiskCollect.ps1

恒久的な接続のインストール
高データから多数のコマンドを記録するには、リモートコンピューターでセッションを作成してから、Invoke-Commandコマンドレットを引用して、作成されたセッションからのコマンドを記録します。 削除されたセッションを作成するには、New-PSSessionコマンドレットにタグを付けます。
たとえば、次のコマンドは、Server01コンピューターにリモートセッションを作成し、Server02コンピューターに別のリモートセッションを作成することです。 Vaughnは、オブジェクトを変更$sのセッションに移動します。
$ s = new-pssession -computername Server01、Server02
セッションが確立された後、コマンドをvisconateできます。 セッションのスコアは一定であり、1つのチームでデータを収集し、攻撃でそれらを勝ち取ることができます。
たとえば、次のコマンドは、セッションでGet-Hotfixコマンドをオーバーライドして、$ sを変更し、変更$hの結果を取得することです。 変更$hはスキンセッション$sで作成されますが、ローカルセッションでは機能しません。
invoke-command -session $ s($ h = get-hotfix)
これで、攻撃などの攻撃チームで勝利を収めることができます。 結果はローカルコンピューターに表示されます。

Invoke-command -session $ s($ h | where($_。installedby-ne "NTAUTHORITY \ SYSTEM")

すべてhttps://technet.microsoft.com/en-us/library/dd819505.aspxから取得

システム管理者にとって最も一般的なタスクの1つは、仕事から離れることなく、リモートコンピューターで任意のコマンドを実行することです。 プログラムやユーティリティのインストール、インストールしたかどうかの変更などが必要になる場合があります。 また、ごくまれに、複数のコンピューターがあり、コマンドを異なるワークステーションまたはサーバーで実行する必要がある場合がよくあります。

Oskіlkizavdannyastya人気、vyrіshennyaіsnuє非人称のそれらの方法。 グループポリシー(ログオンまたは自動入力のスクリプトを作成する目的で停止できます)から始まり、SystemCenterEssentialsやSystemCenterConfigurationManagerなどの難しい管理システムで終わります。 そしてこの記事では、私は目に利用できる方法を見たいと思います コマンドラインまたはスクリプト内のファイル。このようにして、エージェントの転送インストールやその他の問題に影響を与えません。 Vtіm、yakіspoperednіvimogi、zvichayno、є。 たとえば、コマンドを実行するコンピューターの管理上のオーバーライドを担当します(プロキシを使用したスクリプトのためですが、他のことについて)。

Psexec.exe

このタスクを実行するための私のお気に入りの方法の1つは、Mark Russinovichによって作成されたPsExec.exeコマンドラインユーティリティです。これは、WindowsSysInternalsWebサイトから自由にアクセスできます。 その上のPossilannyaは記事で知ることができます。 システムにインストールする必要はありません。変更した%path%に配置できるフォルダーのいずれかにコピーして、コマンドラインのシェル(CmdまたはPowerShell)をクリックするだけです。

PsExecハックは非常に簡単です。 たとえば、メインコンピュータでipconfig / flushdnsを無効にするには、次のコマンドを実行するだけです。

psexec \\ main ipconfig / flushdns

ipconfigコマンドは、スキンの下のメインコンピューターで実行されます。 ipconfigの作業が完了すると、すべてのテキストファイルがコンピューターに転送され、コマンドの終了コード(エラーコード)も返されます。 同時に、チームは成功し、勝利時間は0でした。

PsExecがどんな可能性で終わらないことに気づきました。 パラメータなしでユーティリティをクリックすると、他の利用可能なオプションを調べることができます。 私は彼らの行為をあまり尊重していません。

-d PsExecのように、コマンドをチェックする必要はないようですが、їїを実行してそれを忘れるだけで十分です。 このようにして、コンソールユーティリティからデータを取得したり、他のコマンドを実行するためのfrontコマンドの完了を確認したりすることはありません。 たとえば、デスクトップコンピュータでプログラムインストーラを実行する必要があるため、より複雑です。

PsExecをロックした後、コマンドは接続モードで無効になります。そのため、コマンドが無効になっている場合、システムは1日おきまたはダイアログに表示されません。 ただし、追加のキーに対してこの動作を変更することは可能です -私。 次に、セッション番号を指定して、どのウィンドウに表示するかを指定できます。指定できない場合は、インターフェイスがコンソールセッションに表示されます。

この順序で、メインコンピューター上のオペレーティングシステムのバージョンに関する情報を示すウィンドウを表示するには、次の順序でPsExecを実行します。

psexec -i \\ main winver.exe

数台のコンピューターでコマンドを続けて入力する場合は、テキストファイルリストからコマンドの名前を読み取れる必要があります。

psexec @c:\ comps.txt systeminfo.exe

PsExecの最も優れた機能の1つは、コンピューター間で入出力をインタラクティブにリダイレクトする機能です。これにより、リモートサーバーでcmd.exeなどを実行し、コマンドを実行してローカルコンピューターで結果を取得できます。 。

PsExecはどのように機能しますか?

すべてが独創的にシンプルです。 邪悪なPsExec.exeファイルのリソースには、別の邪悪なファイル(WindowsサービスであるPSEXESVC)があります。 コマンドを閉じる前に、PsExecは、リモートコンピューター上の接続された管理フォルダーファイル\\ Im'yaComputer \ Admin $ \ system32\psexesvc.exeにリソースを解凍します。 たとえば、-cスイッチを使用すると、このシステムにコピーされたファイルをコピーする必要があることが示されました。これらのファイルもこのフォルダーにコピーされます。

PsExecの準備が完了すると、サービスによって修復されるWindows API関数を使用して、サービスがインストールおよび開始されます。 PSEXESVCが起動された後、データ(入力コマンド、結果など)を転送するために、PSEXESVCとPsExecの間にいくつかのチャネルが作成されます。 作業が完了すると、PsExecはサービスを開始し、ターゲットコンピューターからサービスを確認します。

Windows Management Instrumentation(WMI)

私が知りたいことについて、人気のあるタスクを実装する次の方法-WindowsManagementInstrumentation。 WMIは、Windows2000およびWindows9x以降のすべてのMicrosoftオペレーティングシステムで使用でき、okパッケージからインストールできます。 WMIはロック用に予約されており、追加の調整は必要ありません。 ヨガの場合、ファイアウォールでDCOMプロトコルに許可される十分な管理者権限があります。 WMIはシステムを管理するための大きな可能性を秘めていますが、一度に必要なのは1つだけです。

プロセスを開始するには、Win32_ProcessクラスのCreateメソッドが必要です。 Vikoristovuvatiヨガは簡単にできます。 PowerShellは次のようにする必要があります。

$ Computer = "main"
$ Command = "cmd.exe / c systeminfo.exe>
("\\ $ Computer \ root \ cimv2:Win32_Process")。create($ Command)

ここでは、開始するプロセスとしてcmd.exeと入力し、引数としてコマンドを渡します。 リモートコンピューターのシャープネスを変更したり、「 > »ビューをファイルにリダイレクトします。 Createメソッドは、プロセスが完了したかどうかをチェックせず、結果もチェックしません。その後、ID-ProcessIDを通知します。

PowerShellがまだインストールされていないコンピューターがある場合は、VBScriptスクリプトからWMIメソッドを呼び出すことができます。 たとえば、軸は次のとおりです。

リスト#1-WMIプロセスの実行(VBScript)

Computer = "PC3"
コマンド="cmd.exe/ c systeminfo.exe> \\ server \ share \%computername%.txt"
Set objWMIService = GetObject( "winmgmts:\\"&Computer& "\ root \ cimv2:Win32_Process")
結果=objWMIService.Create( "calc.exe"、Null、Null、intProcessID)

また、wmic.exeコマンドラインユーティリティを使用して、WMIロボットの手動インターフェイスにアクセスし、WindowsXP以降のオペレーティングシステムウェアハウスにアクセスする方が簡単です。 たとえば、メインコンピュータで電卓を実行するには、次のコマンドを実行するのに十分です。

wmic / node:main process call create calc.exe

ご想像のとおり、WMIの機能はプロセスの実行だけに限定されません。 テクノロジーを避けたい場合は、たとえば記事を知る方法に基づいて、WMIに関連するKostyantynLeontievの記事に精通することをお勧めします。

WSHリモートスクリプティング

したがって、WindowsScriptHostが他のコンピューターでもスクリプトを実行できるのも不思議ではありません。 確かに、この機能はあまり人気がなく、準備的なアプローチがたくさんあり、解剖学には多くの機会がなかった人たちを通して、すべての人にとってより良いものでした。 しかし、この方法についても同じことをお話ししましょう。そうすれば、それだけの価値があります。

また、WSHを使用して別のコンピューターでスクリプトを実行するには、次の手順を実行する必要があります。

    リモートコンピューター上の管理者の権限。 それは理にかなっており、記事のリストを起動するには、他のすべての方法を使用する必要があります。

    レジストリキーHKEY_LOCAL_MACHINE\SOFTWARE \ Microsoft \ Windows Script Host \ Settingsでリモートレジストリエントリを「1」に設定して、WSHリモートスクリプトを有効にします。

    恩赦により、Microsoftナレッジベース番号311269の記事で説明されています。WindowsXPを搭載したシステムでは、wscript –regserverコマンドを使用する必要がある場合があります。

    コンピューターのファイアウォールが壊れている場合は、DCOMへの接続を有効にする必要があります。 さらに、セラミックコンピュータだけでなく、スクリプトを実行するコンピュータでも作業する必要があります。

    Service Pack2を搭載したWindowsXPシステムの場合、DCOMのセキュリティ設定も変更する必要がある場合があります。 Tseは助けを求めてzrobitiすることができます グループポリシー。 ノード[コンピューターの構成]\[Windowsの設定]\[セキュリティの設定]\[ローカルポリシー]\[セキュリティオプション]は、次の順序でインストールできるようにする必要があります。

    1. DCOM:セキュリティ記述子定義言語(SDDL)構文でのマシンアクセス制限
      グループを参照してください匿名ログオンと全員がローカルアクセスを許可し、リモートアクセスを許可する

      DCOM:セキュリティ記述子定義言語(SDDL)構文でのマシン起動の制限
      許可された管理者グループを参照してください。ローカル起動を許可、リモート起動を許可、ローカルアクティベーションを許可、リモートアクティベーションを許可
      全員をグループ化–ローカル起動を許可し、ローカルアクティベーションを許可します

これらすべての手順を実行した後、別のコンピューターでスクリプトを実行してみることができます。

シナリオの例、一種の勝利技術:

リスト#2-WSHリモートスクリプト(VBScript)

Set objController = CreateObject( "WshController")
Set objRemoteScript = objController.CreateScript( "C:\ test.vbs"、 "PC5")WScript.ConnectObject objRemoteScript、 "remote_"
objRemoteScript.Execute
objRemoteScript.Status中に実行する<> 1
WScript.Sleep 1000
ループ
MsgBox「スクリプトが完了しました」
サブremote_Error
Dim objError
objError=objRemoteScript.Errorを設定します
WScript.Echo "エラー-行:"&objError.Line&_
"、Char:"&objError.Character&vbCrLf&_
"説明:"&objError.Description
WScript.Quit -1
サブ終了

もう1行には、CreateScript関数のパラメーターとして、スクリプトファイルへのパスが示されています。このファイルは、リモートコンピューター上で、このコンピューターに照らして実行されます。

この技術に関するレポートは、記事で読むことができます 高度なVBScript マイクロソフトウィンドウズ管理者-第6章:リモートスクリプト(Div。Posilannya)。

タスクスケジューラ

プランナーは、at.exeとschtasks.exeの2つのユーティリティを使用してコマンドラインから制御できます。 ユーティリティからの違反により、タスクのリモートコンピュータの名前を表示したり、タスクを変更したりすることができます。 エール、私たちはschtasks.exeしか見ることができません、そこにある破片はもっと多くの機会があります。

他のコンピューターのコマンドはプランナーの主な機能ではありませんが、いくつかの異なるシナリオを実装できます。 たとえば、ヨガの場合、インストールを増やすことができます ソフトウェア毎日の中断の期間に。 そうしないと、koristuvachsが別の時間に会うため、コンピューターが非アクティブである歌唱期間の後に起動が遅れる可能性があります。

schtasks / create / s server6.td.local / tn install / tr \\ main \ data \ install.cmd / sc once / st 13:00 / ru system

任命のある種のoblіkovogo記録の名前で理解することは重要です。 このアプリケーションでは、パラメーター/ ruの値システムを指定したので、コンピューターのクラウドレコードをインストールするには、読み取りにアクセスする必要があります。 merezhuフォルダーソフトウェアディストリビューションで。

最善の決定を下すために、私はそれが1日であるか、良い時間であるかを計画することができます。タスクは、成功を確認するためにのみ表示されます。 したがって、プログラムインストーラーを起動し、その完了を確認し、プログラムが正常にインストールされたことを確認する簡単なバッチファイルを作成できます。 そのように、あなたはあなたのコンピュータのプランナーからのタスクを見ました。 そのようなファイルの例:

リスト#3-遠くのジョブからのプログラムのインストール(Windowsバッチ)

msiexec / qn /package\server\share\subinacl.msi
存在する場合"c:\ program files \ Windows Resource Kits \ Tools \ subinacl.exe"(
subinacl / tn Install_Subinacl / f

WinRM(WS管理)

WinRMは、MicrosoftのDMTF(Distributed Management Task Force)標準の実装であり、システムが他のWebサービスを使用できるようにします。 テクノロジーの愛着については掘り下げません。私の探求に必要なものについて簡単に説明します。

WindowsVistaおよびWindowsServer2008以降のオペレーティングシステムのストックに含まれるバージョンWinRM1以降。WindowsXPおよびWindowsServer2003の場合、WinRMをokremyパッケージ(div。パッケージ)としてインストールできます。

新しいvicorist標準ポートに接続し、管理クラウドレコードへの接続を許可するようにコンピューターをすばやく構成するには、次のコマンドを使用するだけで十分です。

winrm quickconfig

確認を求めずに勝つために、-quietキーを呼び出しに追加できます。 微調整の詳細については、winrmの微調整を参照してください。

winrmヘルプの構成

Webサーバーがセラミックコンピューターで実行されているかのように、標準のHTTPポートであっても、WinRMをセットアップすることはできません。 perekhoplyuvatimeより少ない接続で、新しいもののために特別に認識されました。

明らかに、コマンドを手動で、スキンコンピュータに、制御したいものに入力するのは簡単ではありません。 ヘルプグループポリシーのためにnebkhіdnіnalashtuvannyaを簡単にzrobitiします。 誰が必要:

  1. WinRMサービスをセットアップする(Windowsリモート管理) 自動スタート
  2. コンピューターの構成\管理用テンプレート\Windowsコンポーネント\Windowsリモート管理(WinRM)\WinRMサービス\リスナーグループポリシー要素の自動構成を許可します。 ここでは、接続を許可するIPアドレスの範囲を指定する必要があります。
  3. 私は推測しました、あなたはまだフリーポートへの接続を許可する必要があります(80をロックするために) Windowsファイアウォール.

HTTPポート(80)がオーバーライドされているかHTTPS(443)であるかに関係なく、WinRM送信トラフィックは暗号化されます(したがって、明らかにこのオプションを有効にしないでください)。 標準認証の場合、Kerberosプロトコルがオーバーライドされます。

ひもについて話すエール、むしろ邪悪さへの中間なしで先に進みましょう。 winrmユーティリティでWinRMサービスを構成したり、たとえばWMIを有効にしたりできる場合は、winrが必要です。 ここでのRSの文字は、リモートシェルを意味します。 WinRSは、PsExecまたはWinRMテクノロジとほぼ同じように機能します。 コンピュータの名前は-rキーで設定され、新しい次のコマンドの後で、vikonateする必要があります。 槍尻の軸:

winrs -r:Core ver.exe

勝者の断片は、リモートシェルとしてcmd.exeを勝ち取ります。コマンドでは、遠くの変更に簡単に移動できます。または、他のcmd.exeコマンドを使用できます。

winrs -r:Core "dir c:\ temp> c:\ temp \ list.txt"

PsExecと同様に、winrsユーティリティを使用すると、リモートコンピューターでインタラクティブセッションを開くことができます。

winrs -r:main cmd.exe

この機能はtelnetセッションに似ていますが、セキュリティの観点から、勝者はtelnetよりも間違いなく優れており、PsExecをナビゲートします。 HTTPポート(80)またはHTTPS(443)のどちらがオーバーライドされているかに関係なく、WinRM送信トラフィックは暗号化されます(したがって、明らかにこのオプションを有効にしないでください)。 標準認証の場合、Kerberosプロトコルがオーバーライドされます。

WindowsPowerShell2.0リモーティング

友達が欲しい Windows版記事を書いている時点でのPowerShellはまだベータテスト中であり、遠く離れたコマンドの分野での可能性については今ではまったく異なります。 自分で試してみてください。古いバージョン(div。possilannya)を入手するか、Windows7またはWindowsServer2008R2のベータバージョンのウェアハウスで入手できます。

PowerShell RemotingインフラストラクチャはWinRMバージョン2.0に基づいているため、送信されるデータの暗号化や、標準のHTTP / HTTPSポートの背後で機能する機能など、テクノロジのすべての利点が低下しています。 しかし、Windows PowerShellを移動する可能性をさらに深めて、オブジェクトをさらに操作できるようにしましょう。 現在、WinRM2.0パッケージはまだベータテスト中であり、WindowsVistaおよびWindows2008でのみダウンロードできます。 Windowsシステム 7およびWindowsServer2008R2は、PowerShell2.0がリリースされるとすぐに再開されます。

更新:サイトに記事が公開されるまで、最終 PowerShellのバージョン 2.0およびWinRM2.0は、サポートするすべてのプラットフォームで既に利用可能です。 Windows Server2008R2およびWindows7の在庫がなくなる前は、悪臭は非表示のシステムコンポーネントとして既に含まれており、Windows XP、Windows Server 2003、Windows Vista、WindowsServer2008の場合は 必要なコンポーネント WindowsManagementFrameworkと呼ばれるパッケージを見ることができます。

すべての進歩を記録する前に、PowerShellRemotingをハードコンピューターとハードコンピューターの両方でアクティブ化する必要があります。 コマンドレットを実行することでこれを行うのは簡単です( Windowsコマンド PowerShell)有効化-PSRemoting。 さらに、-Forceキーを追加すると、次の確認は要求されません。 このコマンドレットは、必要に応じてwinrs quickconfigを呼び出し、Windowsファイアウォールで非難を作成するため、追加のコマンドレットを追加する必要はありません。

または、Invoke-Commandコマンドレット(またはエイリアスicm)を使用して、他のコンピューターでコマンドを簡単に入力できます。

Invoke-Command -ComputerName Main -ScriptBlock(netshインターフェイスダンプ> c:\ ipconfig.txt)

ご覧のとおり、コマンドは後でリストに追加できます。-ComputerNameパラメーターには、1台だけでなく複数のコンピューターの名前を指定します。 次のシーケンスでは、3台のコンピューターからExplorer.exeファイルのバージョンを入力できます。

$ Command =((get-item c:\ Windows \ explorer.exe).VersionInfo.FileVersion)
Invoke-Command -ComputerName Main、Server7、Replica -ScriptBlock $ Command

ご覧のとおり、Windows PowerShellのオブジェクトを操作する機能を使用して、一連のコマンドを1つのブロックに転送し、その結果を変更時にデスクトップコンピューターに配置してから、ワークステーションで処理することができます。

Vtіm、tіlkipochinayutsyaでのPowerShellRemotingの可能性。 Enter-PSSessionコマンドレットのヘルプについては、インタラクティブに移動できます Windowsセッションリモートコンピューター上のPowerShell。 Exit-PSSessionコマンドレットを使用してこのようなセッションを終了するか、単に終了することができます。

New-PSSessionコマンドレットは、 リモートコンピューター、yakіのインジケーターを変更して、Invoke-Commandの引数として渡すと、できるだけ多くのコンピューターでコマンドを連続して変更できます。 お尻はスクリーンショットで見ることができます。ここでは、c:\computers.txtリストからデカールコンピューターのコマンドのシーケンスを連続して見ることができます。

Proksuvannya

この方法は、現在のリストに照らして再検討され、他のタスクの呼び出しとして機能しますが、それほど関連性はありません。 更新の委任が不可能な場合、それ以外の場合は絶好の機会が与えられます。管理者権限が必要であるかのように、最高のcoristuvachevがコマンドを獲得できるようにし、管理者のパスワードを付与しないようにします。

多くの場合、人々はcpau.exe(div。power)などの追加のユーティリティでこれらの問題を解決して、単一のプログラムを実行できるパスワードで暗号化された管理レコードからファイルを作成しようとします。 ただし、問題は、ユーティリティプログラムを実行する前に、パスワードと暗号化を復号化する必要がある場合です。 また、パスワード復号化アルゴリズムを繰り返すユーティリティを勝利して認識できるので、他のプログラムを起動したり、追加の特権を奪ったりするために勝利することができます。 実用的 優れたcoristuvachiv、Schoはvodіyutspetіalnymiznannannymではありませんが、timは可能な限り少なくはありません。 もう一度、これは特定のユーティリティではないことを明確にしますが、そのようなアプローチの問題はなくなりました。

もう1つのオプションは、runasユーティリティの/savecredパラメータを使用してタスクを完了することです。 しかし、ここには2つの問題があります。 そもそも、前述のように、パスワードはkoristuvachのコンピューターに保存され、後で、このルーン文字のローカル管理者の権利が必要な場合は、復号化される可能性があります。 別の方法では、runasは特定のコマンドで表示せずに外観データを保存するため、そのコマンドのような権限で実行し、与えたいものにアクセスできますが、be-yakuіnshです。

これらの問題を回避するために、特定のコマンドを入力できるようにするために、「プロキシ」と呼ばれる手法を打ち負かすことができます。

このように解決します。 コンピューターでは、スクリプトは高い特権で永続的に処理されます。 たとえば、私たちのタイプのワインには、ファイルサーバーに対する管理者権限を持つ可能性のある公共記録の立ち上げがあります。 koristuvachの合図の後、私たちはvikonuvatime 1、事前にチームを任命します。 お尻ごとに-すべてのファイルを閉じ、行を通してそれらを開きます。

システムを整理するには、サーバーのc:\scripts\コマンドファイルServer.cmdおよびAction.cmdなどに配置します。

リスト#4-Server.cmd(Windowsバッチ)

トリガー=c:\ commandShare\trigger.txtを設定します
set action = c:\ scripts \ action.cmd
log = c:\ scripts\log.txtを設定します
:始める
存在する場合%trigger%start%action%&echo%time%%date%>>%log%&del%trigger%
sleep.exe 5
goto start

リスト#5-Action.cmd(Windowsバッチ)

for / f "skip = 4 tokens = 1" %% a y('net files')do net files %% a / close
出口

Server.cmdは、歌うスペース内のファイルの符号を確認し、それを省略した後、コマンド--Action.cmdを使用してファイルを実行します。 私のパパは正しいアクセスの罪を犯していないことを理解しました。 コンピューターの起動時にServer.cmdを自動的に起動するには、スケジューラーで2番目のタスクを作成します。

schtasks / create / ru domain \ administrator / rp / sc onstart / tn ProxyScript / tr c:\ scripts \ server.cmd

/ruパラメーターが指定された後 物理的な記録、スクリプトを変更する場合(ユーザーにサーバーの管理者権限がない場合)、/ rpパラメーターの後にパスワードが指定されていません。タスクの作成時に、電源がオンになります。 / scオプションを使用すると、スクリプトをいつ起動するか(この場合はコンピューター名)を指定できます。 /tnと/trを使用すると、タスクの名前とコピーするファイルを指定できます。

ここで、スクリプトが即座にシグナルを送信できるようにするために、c:\ commandShareフォルダーを作成し、必要に応じて使用できるようにします。 このフォルダ内のレコードへのアクセスは、コマンドを実行するために、coristuvachiの母親のみの責任です。

十分になったらすぐに、coristuvachevを作業スタイルファイルRun.cmdに配置します。

リスト#6-Run.cmd(Windowsバッチ)

エコーテスト>\\server \ commandShare \ trigger.txt

これを行うと、ファイル\\ server \ commandShare\trigger.txtがcoristuvachの名前で作成されます。 マークを付けたServer.cmdスクリプトは、特権を使用してvicounnyでAction.cmdファイルを実行し、現在の時間についてc:\ scripts \ log.txtファイルにエントリを追加してから、trigger.txtを削除して次のようにします。コマンドは、coristuvachの攻撃的な信号が出るまで再びウェイクアップしません。

Server.cmdスクリプトはSleep.exeユーティリティを使用します。これにより、スクリプトはタスクを1時間一時停止できます。 オペレーティングシステムのウェアハウスに入る必要はありませんが、リソースキットツールから取得して、任意のコンピューターにコピーすることができます。

  • チュートリアル

最小限の理論があり、最も重要な部分は実用的です。 WinRMのセットアップ方法、プロファイルの変更方法を説明する ツイルアダプター、スクリプトはフィルタリングを使用してTrustedHostsに追加するために提供され、信頼できるホストのニーズを説明し、システムをリモートで確認できるように、接続を遠方から表面的に確認します。

vikonatiの管理の距離でnalashtuvatiに最も簡単な方法 有効化-PSRemoting 管理者の権利を持って生活しているobolontsiで。 このようになると:

  • WinRMサービスを開始します(再起動を開始したとき)
  • WinRMサービスはキャンプに行きます-起動時に自動的に開始します
  • WinRMを盗聴することで作成されます http港湾交通 5985 すべてのローカルIPアドレス
  • WinRMリスナー用のファイアウォールルールが作成されます。 敬意を表して、このアイテムはできるだけ早く完成します。カードをマージするだけの場合、マージのタイプは「パブリック」です。 そのようなカードでポートを開くのは良くありません。 構成時にそのような許しがある場合は、コマンドレットを使用してネットワークプロファイルを変更してください Set-NetConnectionProfile 次に、Enable-PSRemotingを再度実行します。 「パブリックトレジャリー」プロファイルのテザーカードが必要な場合は、パラメーターを指定してEnable-PSRemotingを実行します。 -SkipNetworkProfileCheckファイアウォールルールの作成が少ないのはどれですか ローカルライン.
必要に応じて、制御が必要なそのマシンから離れたマシンに接続することができます。 Zrobleno tse z metoyuセキュリティは、リモートkeruvannyaまたはDNSの悪意のあるセッションのリスクを変更して、リモートマシンとzapobigtivykonannyaskriptivをマシン上で置き換えることを実証します。

vikoristovuemoを接続できる場所を再確認するには:
get-item wsman:\ localhost \ Client \ TrustedHosts
すべてに接続できるようにします
set-item wsman:localhost \ client \ trustedhosts -value *
指定したすべてのアクセスを有効にした場合*WinRMは、再配線せずにすべてのマシンに接続します。 ローカル次元の潜在的な悪についてあなたが自分自身に言ったことを覚えておいてください。 つまり、接続する必要のあるホストアドレスを指定すると、WinRMは他のすべてのアドレスまたは名前を許可します。 マシンが管理されている場合、そのドメイン内のすべてのマシンを信頼するドメイン内にある必要があります。 ドメインまたは別のドメインにない場合は、TrustedHostsにアドレスを入力する必要があります。そうしないと、マシンがそれに接続されます。 私たちが接続されなくなるまで、車で自分自身に追加します。

ヘルプコマンドが表示されます。スクリプトからそれらのいくつかを再構築しました
################################################## ###################################フィルタリングを使用してTrustedHostリストにNewHostを追加するため、この行はすでに##。\ Add-TrustedHost.ps1 192.168.2.1 #################################### ## ############################################## #### ## param($ NewHost = "192.168.2.89")Write-Host "adding host:$ NewHost" $ prev =(get-item WSMan:\ localhost \ Client \ TrustedHosts).value if(($ prev .Contains($ NewHost))-eq $ false)(if($ prev -eq "")(set-item WSMan:\ localhost \ Client \ TrustedHosts -Value "(!LANG:(!LANG:$ NewHost" } else { set-item WSMan:\localhost\Client\TrustedHosts -Value "$ prev、$ NewHost" } } Write-Host "" Write-Host "Now TrustedHosts contains:" (get-item WSMan:\localhost\Client\TrustedHosts).value !} !}
リストに何も追加していないかのように、そのようなレコードを改訂します。 住所または名前を入力することにより、コマンドラインから呼び出すことができます。

Єryznitsyakazuvatiim'yachiアドレス。 TrustedHostsにアドレスしかない場合は、表示されていない名前でセッションを開き、navpaki-im'yaを指定した場合は、表示されていないアドレスに接続します。 tseを呼び出します。

なぜ違うのか

有効化-PSRemotingは、より多くのDIYを奪い、「winrmquickconfig」を低くします。 Set-WSManQuickConfigコマンドレットは、「winrmquickconfig」と同じように機能します。 システムを構成している場合、Enable-PSRemotingはSet-WSManQuickConfigを実行します

リモート接続
1.セッション1対1
チームが叫んだ
Enter-PSSession -ComputerName Test
リモートマシンでケーシングを取り外します。 localhostと入力すると、自分自身に接続できます。 代替ローンはパラメータで割り当てられます -クレデンシャル、コマンドレットで終了 exit-PSSession

このような交換:

  • 別のヘアカットを行うことはできません-1セッション未満、セッションの途中でそれ以上接続することはできません
  • あなたはコマンドに勝つことはできません、yakіmayut グラフィカルインターフェイス。 シェルをぶら下げたい場合は、Ctrl+Cを押してぶら下げます
  • nslookup、netshなど、独自のコマンドを実行できるコマンドを実行することはできません。
  • ポリシーでスクリプトをリモートマシンで実行できるため、スクリプトを実行できます
  • インタラクティブセッションに参加できません、 あなたは「ネットワークログオン」のようになりますマージされたディスクに接続されたnibiトムはログオンスクリプトを実行せず、リモートマシンでホームフォルダを取得することはできません(引数はホームフォルダとログオンスクリプトをマップすることではありません)
  • リモートマシンで特派員と対話して、そこで同じワインを見つけることはできません。 急いで最後に見せたり、友達になったりしないでください。
この方法は、サーバーを交換して接続した後の単純な操作zaishovに最適です。 群衆の変化を排除する必要がある場合は、トリプル操作(数年以上)が必要であり、管理の機会がより多く必要です。次に、質問してテクニックを獲得する必要があります。
コメント。
メッシュを通過したオブジェクトが形成され、生きなくなります。 悪臭は方法によって見られ、当局は放棄されています。 あなたの車のVityagtiob'єkt、pochakluvatと突き返しは行きません。 さらに書く必要がある場合は、正しく追加します。

2.セッション1対多
呼び出す-コマンド
私たちは次のように見ることができるものを意味します:
$ sb =(コマで分割されたリモートマシンのコマンド)
リモートマシンTest1およびTest2に転送
Invoke-Command -ComputerName Test1、Test2 -ScriptBlock $ sb
一度に32台の車を投げることができます。 代替クレジットとして、-Credentialパラメーターが勝利します

スクリプトを再度転送して-ScriptBlockパラメータを置き換え、-FilePathと記述します。リモートマシンでは、ファイルにアクセスする必要はありません。スペアパーツを手配し、HTTP経由で転送し、その側から閉じます。

その側に新しいオスプレイがあることに注意してください。そのため、スクリプトはコンソールからの値を上書きせず、変更されたスクリプトがその空のボートに表示される可能性があります。 そのために、パラメータ付きの既製の命令とスクリプトを送信します。

Invoke-Commandを完全に書き直すには、行をスクリプトブロックに変更する必要があります。 たとえば、そのようなリストに含めるコマンドがあり、行を生成し、それをScriptBlockに変換して、次のように編集する必要があります。 リモートコンピュータ:
$ sb = :: Create($ SomeString)
kuda78
記事にアークがありません 重要な瞬間-スクリプトからリモートマシンへのパラメータの転送。

$ deployRemote =(
param(
$ targetEnvName、
$ targetUsername)
$ Global:ErrorActionPreference = "Stop"
#…
}

Invoke-Command -Session $ session -ScriptBlock $ deployRemote -ArgumentList($ targetEnvName、$ targetUsername)


だから本当の省略。 Zrobiv svidomoは、パラメーターと説明で一目見ただけで嫌がらせをしないようにします。 ありがとうございました。 -ArgumentListパラメーターは、スクリプトブロックとスクリプトの両方で機能します

3.セッション
その側からvishikのコピーが作成されてメモリに永続的にハングし、コマンドが送信されます。 その結果、それに再接続し、vikonannyaのcenityを実行し、さまざまなスクリプトまたはさまざまなcoristuvachesで切り刻むことが可能です。 たとえば、一度に1つのタスクを実行する一連のスクリプトがあり、それらを1つのリモートセッションに接続し、転送コマンドの作業結果を実行し、モジュールの1つをマザーし、最後の変更、最後の停止を行うことができます。 、の終わりまで。

セッションはNew-PSSessionコマンドレットによって作成され、結果は変更とともに保存できます
$ DC01 = New-PSSession -ComputerName DC01 $ Controllers = New-PSSession DC01、DC02、DC03
Invoke-Commandと同じ接続パラメータを使用できます

ヤクvikoristovuvati:
Yakscho1対1
Enter-PSSession -Session $ DC01
Yakscho1対多
Invoke-Command -Sessions $ Controllers -ScriptBlock(get-eventlog -logname security -newest 50)
ヘルプのセッションが表示されるかどうかを確認できますGet-PSSession、Remove-PSSessionを閉じます
すべてのセッションを閉じる
Get-PSSession | 削除-PSSession
Connect-PSSessionを使用してセッションに接続し、Disconnect-PSSessionを介して接続できます

Invoke-Commandは、切断されたセッションをすぐに作成し、コマンドを実行してウェイクアップして接続し、後で再接続して作業の結果を取得できます。 -Disconnectedパラメーターで戦います。 Recieve-PSSessionコマンドレットを介して結果を取得します。

セッションは豊富にカスタマイズでき、コマンドやモジュールなどのセットを使用してセッションを作成できます。 カスタムエンドポイントと呼ばれる

©2022androidas.ru-Androidのすべて