2016-05-27 6 views
0

私は、単純なコマンドを自動化する小さな.ps1スクリプトを書いて、エンドユーザのマシン上のデフォルトプリンタの問題を修正しようとしました。このスクリプトで資格情報を渡して、常に昇格された権限で実行するにはどうすればよいですか?PowerShellスクリプトで管理者の資格情報の受け渡しを完全に自動化するにはどうすればよいですか?

net stop spooler 

Remove-Item C:\Windows\System32\spool\PRINTERS\* -Force 

net start spooler 

これは多くの異なるドメインで使用されますが、管理者のユーザー名とパスワードはすべてのマシンで一貫しています。私は同様の質問hereを見ましたが、パスワードを.xmlとして保存してからリコールする方法(非管理者にパスワードを表示させる方法)がありました。多分それは私の執行でしたか?通常、管理者の資格情報をプレーンテキストで記述するのは快適ではありませんが、スクリプトは実際にはエンドユーザーのマシンに保存されず、RMMを通じてバックグラウンドでのみ実行されます。どんな助けもありがとうございます。

答えて

0

私は資格情報を確保し、テキストファイルに保存された資格情報を使用する方法については、次の資料が非常に役に立った:

http://www.adminarsenal.com/admin-arsenal-blog/secure-password-with-powershell-encrypting-credentials-part-1/

基本的には、以下の操作を行います。

<password> | ConverTo-SecureString -AsPlainText -Force | ConvertFrom-SecureString | Out-File <filename>.txt 

必要になりますスクリプトで使用するためのパスワードを保存する安全な文字列ファイルを作成します。また、これまでのプレーンテキストのパスワードを使用せずに同じアクションを実行するために、次のコマンドを使用することができます。

(Get-Credentail).Password | ConvertFrom-SecureString | Out-File <filename>.txt 

あなたはその後、保存されたパスワードを使用するためにはスクリプトに次のコードを追加することができ、私は唯一の管理者がワークステーション上のアクセス権を持つ共有の場所をお勧めします、と述べたスクリプトを実行するためにそれを使用します。

$credentials = Get-Content <filename>.txt | ConvertTo-SecureString 

最後のステップはcredintialsを使用するオブジェクトを作成します

$adminCredentails = New-Object -TypeName System.Management.Automation.PSCredentail -ArgumentList <username>, (Get-Content <filename>.txt | ConvertTo-SecureString) 

私はあなたの想像力をどのようにして、あなたのスクリプト内の資格情報を使うことができるのですか?

+0

これは私がこれまでに見てきた最も有用な解決策です。特に、ドメイン名を盗む必要はありません。私が実際に見たことは、新しい資格証明オブジェクトを使用して資格証明プロンプトを自動入力する方法を実証するものではありません。私はオートメーションに慣れていないので、あなたや他の誰かが私を正しい方向に向けることができればそれは感謝します。 –

+0

記事と一緒に-Credential $ MyCredentialでコマンドを実行しようとしましたが、コマンドを実行する代わりに構文を返しますか? –

+0

実行しているコマンドの例を投稿できますか? – Aramane

関連する問題