2017-11-02 27 views
0

ドメインに追加され、ドメインアカウントを使用して自動ログインしてから、いくつかのpowershellスクリプトを実行する必要があるドメインにないコンピュータがあります。ドメインを変更した後の自動ログイン

私は、ドメイン資格情報でレジストリを編集し、スクリプトのrunonceコマンドでログインするように設定するpowershellを持っています。 PowerShellを実行すると、レジストリが正しく編集され、正しいドメインに変更され、10秒待ってからコンピュータが再起動します。コンピュータがオンラインに戻ってログインしようとすると、「現在ログオン要求を処理できるログオンサーバーがありません」というメッセージが表示され、アカウントのドメインパスワードを入力するとログインしてからrunonceスクリプトが実行されます。手動でパスワードを入力する必要はありません。

私が現在使用しているパワーシェルコードです。 PowerShell v1を使用しています。なぜなら、すべてのコンピュータにはそれがあり、Windows 7のマシンだからです。

+0

PowerShell 'v1.0'? 7 SP2にはデフォルトで 'v2.0'が付いていませんか? – TheIncorrigible1

+0

v1.0が正しい。これらのマシンはすべてSP1を実行しています –

+0

セキュリティの名前でちょうど副メモ、なぜですか? – TheIncorrigible1

答えて

-1

は、ネットワークの準備ができていないようですD:

Function Set-AutoLogon{ 

    [CmdletBinding()] 
    Param(

     [Parameter(Mandatory=$True,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true)] 
     [String[]]$DefaultUsername, 

     [Parameter(Mandatory=$True,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true)] 
     [String[]]$DefaultDomainName, 

     [Parameter(Mandatory=$True,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true)] 
     [String[]]$DefaultPassword, 

     [Parameter(Mandatory=$False,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true)] 
     [AllowEmptyString()] 
     [String[]]$AutoLogonCount, 

     [Parameter(Mandatory=$False,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true)] 
     [AllowEmptyString()] 
     [String[]]$Script 

    ) 

    Begin 
    { 
     #Registry path declaration 
     $RegPath = "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" 
     $RegROPath = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce" 

    } 

    Process 
    { 

     try 
     { 
      #setting registry values 
      Set-ItemProperty $RegPath "AutoAdminLogon" -Value "1" -type String 
      Set-ItemProperty $RegPath "DefaultUsername" -Value "$DefaultUsername" -type String 
      Set-ItemProperty $RegPath "DefaultDomainName" -Value "$DefaultDomainName" -type String 
      Set-ItemProperty $RegPath "DefaultPassword" -Value "$DefaultPassword" -type String 
      if($AutoLogonCount) 
      { 

       Set-ItemProperty $RegPath "AutoLogonCount" -Value "$AutoLogonCount" -type DWord 

      } 
      else 
      { 

       Set-ItemProperty $RegPath "AutoLogonCount" -Value "1" -type DWord 

      } 
      if($Script) 
      { 

       Set-ItemProperty $RegROPath "(Default)" -Value "$Script" -type String 

      } 
      else 
      { 

       Set-ItemProperty $RegROPath "(Default)" -Value "" -type String 

      }   
     } 

     catch 
     { 

      Write-Output "An error had occured $Error" 

     } 
    } 

    End 
    { 

     #End 

    } 

} 

Set-AutoLogon -DefaultUsername "user" -DefaultDomainName "domain.com" -DefaultPassword "password" -Script "C:\script.bat" 

$domain = "domain.com" 
$PlainPassword = "password" 
$SecurePassword = $PlainPassword | ConvertTo-SecureString -AsPlainText -Force 
$user = "user" 
$username = "$domain\$user" 
$credential = New-Object System.Management.Automation.PSCredential($username,$SecurePassword) 
Add-Computer -DomainName $domain -Credential $credential | out-null 

Start-Sleep -Seconds 10 

restart-computer -force 

あなたはもう情報任意の助け 感謝を必要とするなら、私に教えてください。

"コンピュータの起動時とログオン時にネットワークを常に待ちます"というグループポリシーを使用できます。

関連する問題