2016-04-09 9 views
1

次のpowershellスクリプトを実行して、リモートサービスのログオンユーザーアカウントを変更してから起動します。パスワードに特殊記号があるときにpowershellを使用してサービスのログオンアカウントを変更する

$result = $remoteService.Change($null,$null,$null,$null,$null,$null,$logonAccount, $logonPassword,$null,$null,$null) 

    if ($result.ReturnValue -eq '0') 
    { 
     write-host "logon account changed" 
     $remoteService.StartService(); 
    } 
    else 
    { 
     write-host "Error: $result.ReturnValue" 
    }; 

私のパスワードは英数字のみ文字が含まれている場合、私は

logon account changed 
ReturnValue  : 0 

下回る結果に示すように、そのサービスが開始見ることができますが、別のアカウントは、@、#などの特殊文字を含むパスワード含まれています - をI場合は、私はscコマンド(例)を使用してのエラーコードで私のサービスの開始が失敗し、このアカウントを使用して15

logon account changed 
ReturnValue  : 15 

同じ結果です

sc \\servername config servicename obj= domain\accountname password= [email protected]#dF-sxs32 
sc \\servername start servicename 

[SC] StartService FAILED 1069: 
The service did not start due to a logon failure. 

サービスのログオンユーザーを手動で変更し、前述のアカウントと同じアカウントを使用してWindows services.msc UIから正常に起動できます。パスワードに問題があると思った。

私はこれで多くの苦労をしました。誰でも助けてくれますか? ありがとう

+0

をログの追加を参照してください: 'パスワードを=' –

答えて

0

あなたのscコマンドはうまくいきます。

sc \\mycomp config myservice obj= mycomp\User1 password= [email protected]#dF-sxs32 

ので、問題は、@#とパスワードではありません-_

は、あなたのドメイン\アカウント名のユーザーがサーバー名、サーバー上の任意のサービスを実行する権利や特権を持っていないようです。

MSDN約二重引用符でパスワードを囲み右アカウントにサービスとして https://technet.microsoft.com/en-us/library/cc794944(v=ws.10).aspx

+0

こんにちはセルゲイ「のE#DF-sxs32 @ W」、私は手動ですることができます上記の同じアカウントを使用して、Windowsサービス.mscのUIからサービスのログオンユーザーを変更します。だから問題はパスワードであると思った。 –

+0

services.msc UIは、サービスとしてログオンをアカウントに追加します。今UIの2番目のユーザーのためにそれをしてください 'sc \\サーバ名設定サービス名obj =ドメイン\アカウント名パスワード= w @ e#dF-sxs32' user1のためにそれをしてください。 –

関連する問題