2014-01-21 98 views
13

状況。 Windows 7 SP1マシンでは、Windows6.1-KB2819745-x64-MultiPkg.msuでアップデートしました。さらに、PowerShellでは$ PSVersionTableが 'PSVersion 4.0'を報告するようになりました。Windows 7でTest-NetConnectionなどのPowerShell 4コマンドレットを取得するにはどうすればよいですか?

現在、私の結論として、Test-NetConnectionなどの多くのPowerShell 4コマンドレットはWindows 8.1でのみ動作します。しかし、PowerShell 4モジュールをWindows 7マシンにインポートできる回避策があるかどうかは疑問でした。

+0

あなたの受け入れられる回答はfalseです。あなたは絶対にWindows 7でpowershell 4コマンドを持つことができます。 – Keltari

答えて

13

あなたは新しいOS(8.0または8.1)の基礎となる機能に依存していて、W7に戻すことはできません。代わりに、独自の関数/モジュールを作成して、.NET Frameworkメソッドを使用して新しいコマンドレットをレプリケートする方法もあります。

たとえば、Get-FileHashコマンドレットはPowershell 4.0では1つのライナーですが、2.0でレプリケートするには.NETを使用する必要があります。

PowerShellのv4の

Get-FileHash -Algorithm SHA1 "C:\Windows\explorer.exe" 

PowerShellのv2の

$SHA1 = new-object -TypeName System.Security.Cryptography.SHA1CryptoServiceProvider 
$file = [System.IO.File]::Open("C:\Windows\explorer.exe",[System.IO.Filemode]::Open, [System.IO.FileAccess]::Read) 
[System.BitConverter]::ToString($SHA1.ComputeHash($file)) -replace "-","" 
$file.Close() 
+0

ありがとう。私はPowerShell 4の機能の例がWindows 8.1とServer 2013でのみ増えています。 –

+2

**この回答は誤りです。 ** – Keltari

+3

PowerShell 4をWindows 7で使用できますか?Windows 7でTest-NetConnectionを使用することはできますか?キーワードは 'Net' Test- NetConnection、プレーンテスト接続ではありません。 –

-9

私はあなたが間違ったパッケージをインストールして想定することができます。 hereから適切なパッケージをダウンロードしてください。

あなたはテスト・コネクションを使用してPowerShellは4でのWindows 7 Service Pack 1を実行して見ては、Get-ファイルハッシュを下記

enter image description here

+5

このスクリーンショットは単純なテスト接続を示しています。 Test NetConnectionという別のコマンドレットについて尋ねました。 –

+0

hm ...よくget-filehashがあります – Keltari

+0

スクリーンショットの問題はさておき、この答えはまだ間違っています。これは、OPで要求された 'Test-NetConnection'がWin7にまったく利用できないためです。 – Iszi

-1

PowerShellの4.0はナックル・ドラッガーの状態など、Windows 7上で利用可能であるが特定の機能は、新しいオペレーティングシステムの機能に依存しています。残念ながら、Windows 7ではdocumentationに記載されているようにTest-NetConnectionは利用できません。

Test-Connectionは、基本的にpingです。 Test-NetConnectionは、TCPポート、プロトコル、ルートトレース、情報レベルなどの選択肢を提供する、より多くの機能を提供します。

TechnetギャラリーのScriptCenterからSend-Pingスクリプトを入手できますが、これは何らかの理由でPowershell 3.0を使用している場合にのみ便利です。

+0

Test-NetConnection [Windows 7を移植することができます](http://srv-spb.ru/microsoft/windows/kak-proverit-port-cherez-powershell-na-windows-7.html) –

3

少なくともTest-NetConnectionをWindows 7に戻すことができます。NetTCPIP、DnsClient、NetSecurityのフォルダを、サポートされているWindowsマシンから同じPSバージョン(win8.1、Win10など)でコピーしてください。フォルダ - C:\ Windows \ System32 \ WindowsPowerShell \ v1.0 \ Modules。その後Import-Module -Name C:\Windows\System32\WindowsPowerShell\v1.0\Modules\NetTCPIP -Verbose

またはリモートマシン(win2012言う)からモジュールをインポートすることができます。私は私のWindows 7のx64上で同じ問題があったとの両方のソリューションは、PowerShellの5.1のように私のために働い

$rsession = New-PSSession -ComputerName win2012 
Import-Module NetTCPIP -PSSession $rsession 

+0

x86およびx64バージョン。私はServer 2012 R2 x64からx86ラップトップにTCPIPモジュールをインポートできます。 – Adarsha

+0

インポートが成功したようですが、 'Test-NetConnection'内に存在しない' Resolve-DnsName'関数を参照する関数があります。少なくとも私のシステムでは、とにかく。 – YetAnotherRandomUser

+0

マニフェストの問題のため、これらをインポートできません "マニフェストに無効なメンバーが1人以上含まれているため、モジュールをインポートできません..." – fix

4

@Anton Krouglovの回答に追加します。 PowerShellモジュールは、クロスプラットフォームに対応しています。だから、Windows Server 2012 R2 x64からコピーされたモジュールがWindows 7 x86にインポートすることができ、あなたがC:\Windows\System32\WindowsPowerShell\v1.0\Modulesにコピーする権利なしで標準ユーザーとして実行している場合でも、あなたが任意のローカルフォルダにコピーし、あなたがNetTCPIPDnsClientをコピーしたと仮定すると、

実行することができ、 NetSecurityモジュールをサーバー2012以降のマシンから取り出し、インポートすることができるフォルダに保存します。

+0

PowerShell 5.0でWindows 7(バージョン6.1.7601)で確認済み.10586.117。 Resolve-DnsNameエラーを取り除くには、NetTCPIPとDnsClientの両方をインポートするだけです。 –

関連する問題