2017-07-13 13 views
-1

私は過去数ヶ月にわたってPSスクリプトを掘り下げてきました。私はADグループの作成をスクリプト化しようとしていました。その後New-ADGroup - PSコマンドレットで-joinとVariableを使用しますか?

$GroupNameRO = Read-Host -Prompt 'What Read Only AD group name do you want to use' 
$GroupNameRW = Read-Host -Prompt 'What Read Write AD group name do you want to use' 
$RequestNum = Read-Host -Prompt 'Input the request number for this share' 

一緒にここにそれをすべて置く:今、私は次のことを聞いてるのよ

New-ADGroup -name $GRPnameRW -path 'OU=Security,OU=Groups,DC=test,DC=local' -groupscope 'global' -Description -join('Request #',$RequestNum) 

をし、最終的にこのエラーを受け取っ:

New-ADGroup : A positional parameter cannot be found that accepts argument 'System.Object[]'. 
At line:1 char:1 
+ New-ADGroup -name $GRPnameRW -path 'OU=Security,OU=Groups,DC=test,DC=local' -g ... 
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    + CategoryInfo   : InvalidArgument: (:) [New-ADGroup], ParameterBindingException 
    + FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.ActiveDirectory.Management.Commands.NewADGroup 

は、誰もが-joinを使用していました/私はすべてを正しくフォーマットしていますか?

答えて

0

-Descriptionパラメータの値が正しくありません。これにより、探している結果が得られます。

New-ADGroup -name $GRPnameRW -path 'OU=Security,OU=Groups,DC=test,DC=local' -groupscope 'global' -Description "Request #$RequestNum" 
2
... -Description (('Request #',$RequestNum) -join 'something') 

このようにする必要があります。それをこのように考える:式の結果である必要があり

-Description (expression) 

Descriptionので、我々は()で式を囲む必要があり、()内のすべてのものは、最初に実行されます。

、仕事に-joinのために私たちが、それに値を供給する必要があります。

(values) -join 'what_are_we_joining_with' 

PS。場合によっては合流する値の周りに()が実際に必要ではありません。'a','b' -join ""が機能します。しかし、私はこの方法がより良く、()とより直感的だと思っています。

関連する問題