タグ付けされた質問 「powershell」

Microsoftの対話型シェル、スクリプトおよびプログラミング言語、および周辺環境。Microsoftソフトウェア(Windows、Exchange、SharePoint、クラウドサービスのAzureやOffice 365を含む)を管理するシステム管理者が一般的に使用するPowerShellは、Windowsにデフォルトで含まれており、VBスクリプトなどの以前の言語から引き継がれます。


3
Nano ServerにPowerShellでファイルをダウンロードしますか?
Nano ServerでPowerShellを使用してファイルを正確にダウンロードする方法を理解するのに、いくつかの大きな困難がありました。 課題は次のとおりです。 Invoke-WebRequestはありません System.Net.WebClientはありません Start-BitsTransferはありません bitsadminはありません 誰もがこの(一見単純な)タスクを行う方法を知っていますか?

1
SCCMにPowershellスクリプトの完了からの戻りコードを認識させる方法は?
SCCM 2012アプリケーション展開を使用してソフトウェアをインストールしています。SCCMがexe検証エラーで失敗し続けるため、特定のインストールタイプはスクリプトインストーラーです。スクリプトはpowershellであり、SCCMによって実行された場合でもソフトウェアを正常にインストールします。 問題は、SCCMがスクリプトからの完了から0の戻りしか認識しないことです。私が試したwrite-host、return、write-outputソフトリブートのためのコードと、ちょうどラインアイテム。アプリの実行ログが0の戻りをキャプチャするため、SCCMによって読み取られるようには見えません。 SCCMがそれらを解釈できるように、Powershellから戻りコードをどのように出力しますか?

3
PowerShellを使用して証明書登録ポリシーを有効にし、証明書を要求する
現在、CEPサーバーに証明書を要求するために次のことを行っています。 gpedit.mscを開きます [コンピューターの構成]> [Windowsの設定]> [セキュリティの設定]> [公開キーのポリシー]で、[証明書サービスクライアント-証明書の登録ポリシー]をダブルクリックします。 有効にする CEP URIを入力してください ユーザー名/パスワード認証に切り替え 検証(信用の提供) MMCを開き、証明書スナップインをインポートします [証明書]> [個人]に移動します 右クリック>新しい証明書のリクエスト 「詳細情報」(CN、DNS名など)を入力します 信用を提供する この後、CEPから証明書を取得しました。ただし、これは手動で行うには面倒なプロセスです。Server 2008(および2012)でこれを自動化する方法はありますか?これについて私が見つけることができるすべての情報は、サーバーを登録ポリシーサーバーにするためにCEPサービスをインストールする方法を示しています(実際に新しい証明書を要求したり、クライアント側で有効にすることについては何もありません)。これを自動化することは可能ですか? このプロセスにより、HKEY_LOCAL_MACHINE \ SOFTWARE \ Policies \ Microsoft \ Cryptographyの下に多くのデータが追加されるようです。これを手動で追加できますか(GUID / ServiceIDを偽装できますか)?

3
Powershellでの名前空間の使用
この質問に答えながらそれについて考えました。 名前空間内のすべての型を完全に修飾する必要をどのように回避できますか? のSystem.Security.Cryptography.X509Certificates.X509Store代わりにX509Store、またはの[System.Security.Cryptography.X509Certificates.StoreName]::My代わりに書くのは本当に、本当に退屈です[StoreName]::My。 C#にはusingディレクティブがあります... Powershellはどうですか? 編集1-これはタイプに対して機能します: $ns = "System.Security.Cryptography.X509Certificates" $store = New-Object "$ns.X509Store"(StoreName,StoreLocation) New-Objectは、型定義として文字列リテラルを使用するため、プログラムで構築できます。 編集2-これは、パラメーターとして使用される列挙型メンバーに対して機能します。 $store = New-Object "$ns.X509Store"("My","LocalMachine") 「My」[System.Security.Cryptography.X509Certificates.StoreName]::Myと「LocalMachine」は[System.Security.Cryptography.X509Certificates.StoreLocation]::LocalMachineです。 リテラル名は、列挙型メンバーが必要な場所に配置されている場合、自動的に列挙型メンバーに変換されます。

4
Windows PowerShellを使用してアクセス許可を持つ共有を作成する
Powershellを使用して、共有を作成し、アクセス許可を設定する方法を教えてください。 たとえば次のように 「パスc:\ shares \ foo」にマップする「public」という共有を作成します DOMAIN1 \ Usersに共有への読み取り専用アクセスを許可します(これは、共有ではなく、ファイルにACLを設定することを意味しません)

1
PowerShellを使用してPuTTY経由でRHELルートパスワードを変更しましたが、パスワードを何に変更したのかわかりません
基本的にタイトル。私の友人は、PowershellとPuTTYを介してRHELパスワードを一括変更するスクリプトを提供してくれましたが、ログインしようとしたときに、入力した新しいパスワードが機能しません。問題は、新しいパスワードを入力しましたが、新しいパスワードがどうなるかわかりません。 私が使用した「新しいパスワード」はこれに似ていました:a1b2c3d "4e5f6g7 セキュアな文字列を通常の文字列に置き換えるか、SSHではなくtelnetを使用してパケットキャプチャを送信し、正確に何が送信されているかを確認しようとしましたが、これまでのところ機能していません。 System.Management.Automation.PSCredential -argumentlist "root",$newrootPassword $newrootPassword2 = Read-Host "Retype new root password" -AsSecureString $newrootCredential2 = new-object -typename System.Management.Automation.PSCredential -argumentlist "root",$newrootPassword2 putty.exe -ssh -pw $oldrootCredential.GetNetworkCredential().Password root@$_ echo y | plink.exe -ssh -v -pw $oldrootCredential.GetNetworkCredential().Password root@$_ "echo root:'$newrootPassword' | chpasswd" 2>&1 新しいパスワードはa1b2c3d "4e5f6g7であると思っていましたが、これはログイン時に機能しません。

2
DSCと「通常の」スクリプトの違いは何ですか。
PowerShellの望ましい状態の構成DSCに関するITPro.tvのビデオを見ました。彼らはそれを紹介し、効果的にスクリプトを実行します。ただし、これもスクリプトの最初の(実際の)導入でした。そのため、DSCと通常のスクリプトの違いを理解しませんでした。以前に定期的にスクリプトを作成したことがあるのですが、彼らにはそれほど優れた例がなかったのかもしれません。通常のスクリプトが役割/機能をインストールし、いくつかのファイルを問題なくコピーできるように見えました。単なるスクリプトと比較して、DSCの利点はわかりませんでした。マシンは、理論的には実際にはカバーしなかった、ある種の変更をポーリングできることは別として。 従来のスクリプトに対するDSCの利点は何ですか。たとえば、「ロールのインストール、ファイルのコピー」ですか? PowerShellを使用すると、リモートマシンに接続して、何かを実行するように指示できるため、DSC専用ではありません。 DSCでは、mofファイルを作成するためになんらかのコンパイルを行っているように見え、スクリプトの後にシェルからそれを実行しているように見えますが、これは不要な手順のようです。 MSDNの概要は、 PowerShellの概要のように読み、私は差別の特性が表示されません。

1
find.exeコマンドへのPowerShellパイプ
好奇心旺盛ですが、なぜこれが起こるのですか?実行した場合: netstat -an | find "443" コマンドプロンプトに「443」接続が表示されます。PowerShellコンソールまたはISEで同じコマンドを実行すると、「FIND:Parameter format not correct」というエラーが表示されます。PSで見つけるためにnetstat出力が適切にパイプ処理されていませんか? 注:PSで実行したnetstat -an | findstr "443"場合netstat -an | select-string "443"、これらは期待どおりに動作します。

4
Windows Server 2016 NanoのPowerShellコマンドからWindowsバージョンを取得することはできますか?
Windows Server 2016 nanoの最新プレビューを使用しています。 Enter-PSSession完全な.Netフレームワークが利用できないため、リモートPowerShellセッションを使用して、を介してリモートシステムに接続し、最も一般的な手法を使用してWindowsバージョンを確認しようとしました。また、Get-WmiObjectコマンドレットは使用できません。 私がいくつかの情報を見ることができる唯一の方法は、この非PowerShellコマンドのDISMを使うことです: Dism /Online /Get-Feature これにより、この出力に加えて、インストールされている機能のリストが表示されます。 Deployment Image Servicing and Management tool Version: 10.0.10514.0 Image Version: 10.0.10514.0 Features listing for package : Microsoft-Windows-Foundation-Package~31bf3856ad364e35~amd64~~10.0.10514.0 私のWindows 10デスクトップよりも高い10514の値から、カーネルビルドのアイデアを得ることができます。また、Windows 10デスクトップの「Microsoft-Windows-Foundation-Package」は同じですが、カーネルビルドが低いのは興味深いことです。数。 誰かがコマンドレットまたは書き込み可能なPowerShellコマンドまたはエイリアスを見つけましたか?それは、私のPowershellスクリプトがナノサーバーで実行されているという事実を、何らかの方法で壊れそうにないことを検出するか、または「Windows Server 2016 Nano Server」を実際に印刷しますか? 更新:これは私が望むものに近いですが、少しハックです: Get-Item -Path 'Registry::HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion' 更新2:Get-WmiObjectは存在せず、次のように機能しますが、カーネルバージョンのみを報告します。 [System.Environment]::OSVersion.Version 上記はビルド10514を報告しますが、現時点ではWindows 10クライアントオペレーティングシステムRTMは10240を報告しますが、上記は実際には「カーネルビルド」であり、オペレーティングシステムの製品/エディション/サービスパックレベルではありません。

3
PowerShellを使用してWindows機能をインストールするための一般化された構成ファイルを作成することは可能ですか?
現在、Windows Server 2012 R2を実行するVMのビルドを自動化しようとしています。現時点での課題は、役割と機能の追加を自動化することです。役割と機能のウィザードには、PowerShellで実行できるXML構成ファイルをエクスポートするオプションがあります。 ただし、XMLファイルを調べた後、それが実行されているサーバーに固有であることがわかります。「コンピューター名」などのフィールドが含まれています。 多くのVMに役割と機能をインストールするスクリプトを実行したい場合はどうなりますか?特定のコンピューター向けにカスタマイズされたものではなく、一般化された構成ファイルが必要です。 誰かがこの問題について意見を持っていますか?

3
PowerShell:åäöを使用したGet-ADUserプロパティ
Get-ADUserを使用して、選択したユーザーのセットを抽出しようとしています。ユーザーは、 "Gåäördet"のように、名前に非ASCII文字を含む会社に属しています。残念ながら、このタスクには会社のプロパティを使用する必要があり、スクリプトから作業するためにも必要です。 以下は、インタラクティブセッションでうまく機能しますが、スクリプト内で実行してもデータは返されません。 $Company = "Gåäördet" Get-ADUser -Filter "company -eq '$Company'" 回避策は見つかりましたが、信頼性が十分ではありません(間違ったオブジェクトを選択するリスク): # Work-around 1: $Company = "Gaaordet" # Replace åäö with aao in the variable Get-ADUser -Filter "company -eq '$Company'" # Matches the company "Gåäördet", but why? ...または... # Work-around 2: $Company = "G...rdets" # Use regex for åäö …

2
PowerShellで既にマップされているネットワークドライブにアクセスする
VMWare Workstation内でWindows Server 2012インストールを実行しています。共有フォルダを有効にしているので、ドライブZ:はにマップされてい\\vmware-hostます。エクスプローラでこのドライブに正しくアクセスでき(Z:「通常」のcmd内にアクセスできます)、ファイルを適切に開くことができます。 PowerShellを開いてみましたcd Z:が、次のエラーが発生しました: cd:パス 'Z:\'が存在しないため見つかりません。 PowerShellが既にマップされたネットワークドライブを見つけられないのはなぜですか? 私は少しグーグル検索して、New-PSDriveコマンドを見つけました。私は以下を実行しました: New-PSDrive -Name 'Z' -PSProvider FileSystem -Root 'Z:\' しかし、それでも上記と同じエラーが発生します。PowerShell内のVMWare共有フォルダーにアクセスするにはどうすればよいですか。

1
Powershellを使用して既存のスケジュールされたタスクを変更するにはどうすればよいですか?
Powershellを使用して、さまざまなアプリケーションを実行する既存のスケジュールされたタスクを更新するいくつかのリリース自動化スクリプトに取り組んでいます。スクリプトでは、アプリケーションのパスと作業ディレクトリを設定できますが、変更をタスクに保存していないようです。 function CreateOrUpdateTaskRunner { param ( [Parameter(Mandatory = $TRUE, Position = 1)][string]$PackageName, [Parameter(Mandatory = $TRUE, Position = 2)][Version]$Version, [Parameter(Mandatory = $TRUE, Position = 3)][string]$ReleaseDirectory ) $taskScheduler = New-Object -ComObject Schedule.Service $taskScheduler.Connect("localhost") $taskFolder = $taskScheduler.GetFolder('\') foreach ($task in $taskFolder.GetTasks(0)) { # Check each action to see if it references the current …


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.