私は PowerShell の初心者であり、さまざまなサイトの助けを借りてこれを回避するのに苦労しています。私の要件とシナリオは
PowerShellがインストールされたWindowsサーバー2008(rktdepy)があり、アプリケーションを.cmd
ファイルにパッケージ化しました。この.cmd
ファイルをクリックすると、アプリケーションがデプロイされます。
サーバー名はrktdepy
、ネットワーク内の他のサーバーに接続する PowerShell スクリプトを作成し (サーバー名は txt ファイルから取得する必要があります)、 rktdepy
サーバーからリモートでファイルにアクセスするアプリケーションをインストールしたいと考えています。ファイルはどのサーバーにもコピーされることは想定されておらず、セキュリティ上の理由から psxec を使用しないでください。
これまでのところ、ネットワークドライブの呼び出しとマッピングを使用しましたが、まだ問題があります
$Comsession = Get-content c:\adminfiles\scripts\deploy.txt | new-pssession -throttlelimit 50
Invoke-command -computername RKTDEPLY54 -scriptblock { (new-object -comobject wscript.network).mapnetworkdrive("R:", "\\rktdepy\deploy", $true) }
Invoke-command -session $comsession -scriptblock {"CMD /C r:\QR_DEPLOY.CMD"}
上記のスクリプトはエラーをスローします。
スクリプトでパスワードを使用したくないので、現在ログインしているユーザーのパスワードをrktdepy
サーバーから取得する必要があります。スクリプトが、すべてのサーバーへの管理者アクセス権を持つユーザー名とパスワードを求めるプロンプトを出しても問題ありません。