2014-09-24 140 views
0

我正在使用AD域,我想通過PowerShell遠程更改密碼策略。powershell - 如何設置屬性

我在這裏:

$domain1 = New-Object System.DirectoryServices.DirectoryEntry("LDAP://test.com") 

$domain |get-member 
... 
masteredBy      Property System.DirectoryServices.PropertyValueCollection masteredBy {get;set;}      
maxPwdAge      Property System.DirectoryServices.PropertyValueCollection maxPwdAge {get;set;}       
minPwdAge      Property System.DirectoryServices.PropertyValueCollection minPwdAge {get;set;}       
..... 

- >在這一點上我看到有這些性能的定義{get;set;}

的問題是:這意味着你可以在喜歡的方式設置maxPwdAge

$domain |set-property -name maxPwdAge -value XX

請記住,我不能使用任何cmdlet的從Active Directory模塊,因爲遠程域沒有運行Active Directory Web Services

這個問題是理解的含義{獲得;設置;}的性質,並找到一個PS的方式來設置這些值;-)

+0

如果我錯了,但是密碼策略未在組策略中配置,我將刪除此密碼策略? – Matt 2014-09-24 13:13:05

+0

通常在PowerShell中,通過調用像這樣的屬性來使用get方法:$ object.propertyname。以同樣的方式,如果對象支持它,你應該能夠像這樣使用set:$ object.propertyname ='new value' – ojk 2014-09-24 13:23:30

回答

0

在這種情況下,這些都是隻讀屬性。您需要編輯組策略或調用傳統Net * API以編程方式更改此設置。

0

找到了!!! ...在最簡單的方法:d

定義與$域後:

$domain = New-Object System.DirectoryServices.DirectoryEntry("LDAP://test.com") 

我可以讀:

$domain.maxPwdAge 

我可以設置:

$domain.maxPwdAge = 10 
$domain.setinfo() 

我只錯過了'setinfo()'方法.....之後它終於起作用了!