none
dsacls実行時にアカウント名とセキュリティ id の間のマッピングは実行されませんでした。と表示される RRS feed

  • 質問

  • お世話になっております。

    ActiveDirectoryに新規でコンピュータアカウントを作成する際に、セキュリティ権限を付与するスクリプトを使用しております

    WindowsServer2008R2では問題なく実行できるのですが、WindowsServer2016では

    アカウント名とセキュリティ id の間のマッピングは実行されませんでした。
    と表示され動作しない状態となっております。

    原因がわかる方がいらっしゃいましたら、お知恵を貸していただけないでしょうか。

    ***
    [Script]

    Import-Module ActiveDirectory
    $Computers=Get-Content C:\Computer.txt
    $ACLs='"Domain\Username":SDRCLCRPDTLOCA;; "Domain\Username":WP;"Logon Information"; "Domain\Username":WP;"description"; "Domain\Username":WP;"displayname"; "Domain\Username":WP;"sAMAccountName"; "Domain\Username":WP;"Account Restrictions"; "Domain\Username":WS;"Validated write to DNS host name"; "Domain\Username":WS;"Validated write to service principal name";'
    $objComputers=@()
    New-PSDrive Test -PSProvider ActiveDirectory -Root "CN=Computers,DC=test,DC=local"
    Set-Location Test:
    $Computers|Foreach {New-ADComputer $_;$objComputers+=Get-ADComputer $_}
    $objComputers|Foreach {cmd /c dsacls $_ /G $ACLs}
    Remove-PSDrive Test

    2020年3月25日 2:06

回答

  • $ACLsに代入されて$objComputers|Foreach{cmd /c dsacls $_/G $ACLs}で使われるときにおかしくなっているようです。

    以下を参考に$ACLsという変数を使わない形で実行するとマッピングの問題は解消されました。

    https://social.technet.microsoft.com/Forums/office/ja-JP/d00e3f34-20cc-46f2-9bac-e886d316268b/12489125131245212531214422115212434124561253112489125181254012?forum=activedirectoryja

    Import-Module ActiveDirectory
    $Computers=Get-Content C:\Computer.txt
    $objComputers=@()
    New-PSDrive Test -PSProvider ActiveDirectory -Root "CN=Computers,DC=test,DC=local"
    Set-Location Test:
    $Computers|Foreach {New-ADComputer $_;$objComputers+=Get-ADComputer $_}
    $objComputers|Foreach {dsacls $_ /G "Domain\Username:SDRCLCRPDTLOCA;;";dsacls $_ /G "Domain\Username:WP;Logon Information;";dsacls $_ /G "Domain\Username:WP;description;";dsacls $_ /G "Domain\Username:WP;displayname;";dsacls $_ /G "Domain\Username:WP;sAMAccountName;";dsacls $_ /G "Domain\Username:WP;Account Restrictions;";dsacls $_ /G "Domain\Username:WS;Validated write to DNS host name;";dsacls $_ /G "Domain\Username:WS;Validated write to service principal name;"}
    Remove-PSDrive Test
    


    • 編集済み kaz8629 2020年3月25日 12:27
    • 回答としてマーク Gam.Lawrence 2020年3月27日 4:39
    2020年3月25日 12:26

すべての返信

  • $ACLsに代入されて$objComputers|Foreach{cmd /c dsacls $_/G $ACLs}で使われるときにおかしくなっているようです。

    以下を参考に$ACLsという変数を使わない形で実行するとマッピングの問題は解消されました。

    https://social.technet.microsoft.com/Forums/office/ja-JP/d00e3f34-20cc-46f2-9bac-e886d316268b/12489125131245212531214422115212434124561253112489125181254012?forum=activedirectoryja

    Import-Module ActiveDirectory
    $Computers=Get-Content C:\Computer.txt
    $objComputers=@()
    New-PSDrive Test -PSProvider ActiveDirectory -Root "CN=Computers,DC=test,DC=local"
    Set-Location Test:
    $Computers|Foreach {New-ADComputer $_;$objComputers+=Get-ADComputer $_}
    $objComputers|Foreach {dsacls $_ /G "Domain\Username:SDRCLCRPDTLOCA;;";dsacls $_ /G "Domain\Username:WP;Logon Information;";dsacls $_ /G "Domain\Username:WP;description;";dsacls $_ /G "Domain\Username:WP;displayname;";dsacls $_ /G "Domain\Username:WP;sAMAccountName;";dsacls $_ /G "Domain\Username:WP;Account Restrictions;";dsacls $_ /G "Domain\Username:WS;Validated write to DNS host name;";dsacls $_ /G "Domain\Username:WS;Validated write to service principal name;"}
    Remove-PSDrive Test
    


    • 編集済み kaz8629 2020年3月25日 12:27
    • 回答としてマーク Gam.Lawrence 2020年3月27日 4:39
    2020年3月25日 12:26
  • kaz8269様

    ご回答いただき誠にありがとうございます。

    ご指摘いただきました内容にて問題は解消されました

    ご協力いただき誠にありがとうございました。

    2020年3月27日 4:39