2017年2月16日木曜日

テスト

 

001
002
003
004
005
006
007

$encoding = [Text.Encoding]::default 
$text = 
[System.IO.File]::ReadAllText("d:\desktop\HelpDesk.csv",$encoding)
$text = $text.Replace("`n?","") 
$text = $text.Replace("?","") 
$text.Replace('?"','"') | 
Out-File "d:\desktop\help.csv" -Encoding default

2017年2月14日火曜日

◆ActiveDirectoryユーザーグループにメンバー(グループ)を追加


アクセス権を付けるには通常ローカルグループにグローバルグループを突っ込んであげる。

追加するグループを選ぶ時にActiveDirectoryの検索画面を使うのだが、今ひとつ使い勝手が良くない。
(部分一致検索が出来ないのでグループ名の名前を正確に覚えている必要がある。)

そこでローカルグループを抽出しGridViewに表示して対象を選択。
グローバルグループをGridViewに表示して追加先を選択。
ローカルグループにグローバルグループを追加。

と言った簡単なスクリプトにしてみた。

特に難しいところは無いのだが、「Add-ADGroupMember」の「Identity」パラーメータに抽出したグループを直接指定するとエラーになってしまった。

定義は
-Identity ADGroup
       An Active Directory group object by providing one of the following values.
       (The identifier in parentheses is the LDAP display name for the attribute.)

とあるのでそのまま指定できそうだが・・・。
(select しているのが良くないのか)

時間がなかったのでとりあえずNameプロパティを指定した。
最近全くPowerShellを使っていなかったので使い方をすっかり忘れてしまった・・・。(><)

001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
$target_FileAccess_G = $null

$target_FileAccess_G
 =
    Get-ADGroup -Filter "Name -like 'Hoge*FileAccess-G'" |
 
       
select name |
        sort name |
 
       
Out-GridView -title "Select Target FileAccess Group" 
-PassThru

if
($target_FileAccess_G
){
   
$target_UserGroup =
 
   
Get-ADGroup -Filte * -SearchBase "OU=Groups,DC=city,DC=London,DC=gov,DC=uk" |
        select name |
 
       
Out-GridView -title "Select Add Group" -PassThru

    if($target_UserGroup
){
       
Add-ADGroupMember -Identity $target_FileAccess_G.Name -Member $target_UserGroup.
Name 
       
if($?){"Complete"}
    }
}