PageLastUpdate:2010-10-14/total: - /today: - /yesterday: -
2009/12/01
ドメインコントローラー:Windows Server 2003 R2(32bit)
対象クライアント:
Windows 7 Professonal 64bit Japanese
使用したパッケージ:CRRedist2005_X64.msi、CRRedist2005_X64_JP.msi
Windows 7の64bit版導入に伴ってクリスタル レポートをGPOで配布しようとしたところ
追加操作でエラーが発生しました。パッケージから展開情報を抽出できませんでした。
パッケージが正しいことを確認するためにパッケージの確認を実行してください。
GPO を作成できません。
と怒られる。
KB324886が出ているけれど、これはWindows2000向けで特に64bitとか関係なさそう。Windows2003で関連する情報を見つけることはできなかった。
専用のGPOを作成したので32bitと64bitの混在とかそういう問題ではないっぽい。
もしかしてサーバーが32bitOSだと、64bit用のパッケージは展開できないのだろうか。
とりあえず1台だけだったので手動で設定したが、今後台数が増えるとめんどくさい。
未解決なのでわかる方がいましたら教えてください。
→ 2010/10/13解決
2008R2、64bitのサーバーをメンバサーバーとして追加。グループポリシー管理エディタを機能として追加。
そのサーバーからGPOを設定することで回避できました。ドメコンではなくメンバサーバーでよいので助かった。
ただ誰でも使える方法ではないので本当は解決とは言い難いですね。
2009/11/10
On Error Resume Next
strRegValue = wss.RegRead("レジストリのパス")
On Error Goto 0
If strRegValue <> "" Then
wss.RegDelete("レジストリのパス")
End If
2009/04/02
1.[コンピュータの管理]-[ローカル ユーザーとグループ]-[グループ]を開く
2.Usersから下記の3グループを削除
Domain Users
NT AUTHORITY\Authenticated Users (S-1-5-11)
NT AUTHORITY\INTERACTIVE (S-1-5-4)
3.ログインさせたいユーザー/グループを追加
いちおうこの手順でできた。[Domain Users]だけではダメ。
[NT AUTHORITY\Authenticated Users (S-1-5-11)]を抜いてもダメ。
[NT AUTHORITY\INTERACTIVE (S-1-5-4)]まで抜いたら期待通りに動作しました。
ただし、まだ様々な動作で不具合が出るかどうか未検証。
2009/04/01
基本は更新プログラムの承認時に[更新の承認]→[期日]で日時指定をしておくことですが、コマンドラインからやりたい場合は
wuauclt.exe /resetauthorization /detectnow
でできる。
2009/02/17
xxx.yyy.0.0のネットワークでデフォルトゲートウェイはxxx.yyy.0.250だとする。
xxx.zzz.0.0への接続だけxxx.yyy.0.251のゲートウェイ(ルーター)に振り分けたい。
1.まずDHCPではなくコマンドラインで設定してテストして見る
route add xxx.yyy.0.0 mask 255.255.0.0 xxx.yyy.0.251
2.設定できたか確認
3.経路情報を確認
4.テスト用の接続情報を削除
5.DHCPにてスコープオプションに「249 クラスレス静的ルート」にチェックを入れて下記の通り設定。
- 宛先:xxx.zzz.0.0
- マスク:255.255.0.0
- ルーター:xxx.yyy.0.251
6.経路情報を確認
2009/02/04
スタートアップ スクリプトとタスク スケジューラーを併用することで実現しています。
ここに辿り着くまでの経緯
- Administratorは使用不可にしてもセーフモードで起動すると使えてしまう。対策はパスワードを困難なものにするしかない。できれば定期的に変更する。
- Windowsの基本機能のみで実装する。
- 100台以上のDomain Computersすべてをループしてチェックすると、電源の入っていないPCなどの応答待ちでスクリプトの実行時間が長すぎる。
- スタートアップ スクリプトを使用して、起動したコンピュータのみチェックすることで負荷を軽減する。
- コンピューターから見えないスクリプトは実行できないが、スクリプトにパスワードを書くと閲覧される危険性がある。
- パスワードを変更するたびにexeを差し替えたりするのは望ましくない。exeから逆コンパイルされる可能性も高い。
- タスク スケジューラーであれば、コンピューターから見えないスクリプトを実行可能。
- タスク スケジューラーはウィザードでは1日単位しか設定できないが、設定した後にプロパティで「9:00から17:00まで1時間ごとに繰り返し実行」のような指定ができる(不親切。最初にタスク登録しようとしたときは「1日単位しかできないのかよ!」と思って諦めていた。)
1.Domain Computersのみ閲覧可能な共有フォルダを作成
\\MyServer\LocalAdminCheck
2.スタートップスクリプトで起動時にローカル管理者パスワードの変更チェック用ファイルを生成
Set net = CreateObject("WScript.Network")
Set fso = CreateObject("Scripting.FileSystemObject")
donePath = "\\MyServer\LocalAdminCheck\Done\" & net.ComputerName & ".txt"
undonePath = "\\MyServer\LocalAdminCheck\Undone\" & net.ComputerName & ".txt"
IF fso.FileExists(donePath) = False Then
set fp = fso.CreateTextFile(undonePath,True)
fp.Close
End If
3.タスクスケジューラーが1時間に1回LocalAdminChange.vbsを実行
このスクリプトは共有されていないフォルダに置きます。
Set fso = CreateObject("Scripting.FileSystemObject")
doneFolder = "\\MyServer\LocalAdminCheck\Done"
undoneFolder = "\\MyServer\LocalAdminCheck\Undone"
For Each file In fso.GetFolder(undoneFolder).Files
targetName = fso.GetBaseName(file.Path)
donePath = doneFolder & "\" & targetName & ".txt"
undonePath = undoneFolder & "\" & targetName & ".txt"
On Error Resume Next
Set objUser = GetObject("WinNT://" & targetName & "/Administrator, user")
Select Case Err
Case 0
objUser.SetPassword "ここにパスワードを記述"
objUser.SetInfo
set fp = fso.CreateTextFile(donePath,True)
'パスワードが設定できたら、このスクリプトの更新日をDoneフォルダのコンピュータ名.txtに出力
fp.Writeline fso.GetFile(Wscript.ScriptFullName).DateLastModified
fp.Close
'Undoneフォルダから削除
file.Delete
Case Else
'設定できなかったら、エラーコードをUndoneフォルダのコンピュータ名.txtに出力
set fp = fso.CreateTextFile(undonePath,True)
fp.writeline Err
fp.Close
End Select
Next
備考
まあここまでできれば、パスワードを定期的に変更しつつそれをログに記録していくとかどうにでも組めますね。
1台づつパスワード変えたければ日時とコンピュータ名でハッシュ化しちゃうとかいろいろ。
懸念として意図しないコンピュータ名をフォルダに送り込まれる可能性がありますが、ローカル管理者のパスワードを推測不能「こちらに既知で相手に未知」なものに変更されてもそれほどダメージはないのでよしとしておきます。
2009/01/09 検索後:アップデート
http://www.adobeforums.com/webx/.3c05d1a2
グループポリシーでAcrobat Reader 9を配布したら、なぜかこける。
ログを確認したらでAcrobat Reader 8のアンインストールでこけている。
手作業でアンインストールしてみると「内部エラー 2753。Updater.api_NON_OPT」。
エラーメッセージで検索すると、パッチが当たっているとアンインストールできないらしい。馬鹿だ。
Adobeのサイトにはめんどくさい方法が書いてあったけど、下記レジストリを削っちゃえばOK。
REG DELETE HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Features\68AB67CA7DA71401B7448A0100000030
REG DELETE HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Products\68AB67CA7DA71401B7448A0100000030
[ツール]→[オプション]→[セキュリティ] タブ→[保存時にファイルのプロパティから個人情報を削除する] チェック ボックスをオンに。
ところがこれだけだと不完全で、メモ帳で開いてみるとわかりますが、プリンタのパスが残っています。
ドメイン環境で使っていると、どこの会社から出たものかモロバレですねw
会社名が残るとまずい場合は、ローカルプリンタで印刷してから上書き保存しましょう。
2008/05/30
フリーのPDF生成プリンタドライバ。商用利用も無料。
BullzipPDFPrinter_5_0_0_609.exe /VERYSILENT /NORESTART
をクライアントに実行させます。管理者権限が必要なのでスタートアップスクリプトがよいと思いますが、実行するたびにプリンタが増えていくので注意。
関連記事
2008/12/17追記
今日気づいたけど最新版は商用利用は10ユーザーに制限されているっぽい。
過去のバージョンまで遡及適用かどうかこれから調査。
FileFormatConverters.exe /extract:c:\temp\
→[マイクロソフト ソフトウェア ライセンス条項に同意するにはここをクリックしてください]にチェックを入れて[次へ]→「ファイルが正常に解凍されました。」
/extract:で指定したパスにmsiファイルと関連ファイルが解凍されるので、配布用のフォルダにすべてコピーします。
あとは普通にグループポリシーで配布設定をすればOKです。
ちなみにサービスパックが出ているので、WSUSでサービスパックの配布をするのも忘れないようにしましょう。
2008/05/14
はてなの質問に回答。
すべての端末の電源が入っているとは限らないので、ログを取れるようにした。
失敗しているものだけ再度リストにして流す必要あり。
パスワードを直接記述している以上、このスクリプトを見られることは深刻な脆弱性に繋がるので注意。
'【書換必須】コンピュータを列挙したファイルパス。コンピュータごとに改行。
strListPath = "C:\Documents and Settings\Administrator\デスクトップ\List.txt"
'【書換必須】結果を出力するログファイルパス。
strLogPath = "C:\Documents and Settings\Administrator\デスクトップ\Log.txt"
'【書換必須】指定したい管理者パスワード
strPWD = "czBnkbe+47i"
Set fso = CreateObject( "Scripting.FileSystemObject" )
Set ts = fso.OpenTextFile( strListPath, 1 )
lines = Split( ts.ReadAll, vbCrLf )
ts.Close
set tsLog = fso.CreateTextFile(strLogPath,True)
On Error Resume Next
For i = 0 to Ubound(lines) - 1
strComputer = lines(i)
Set objUser = GetObject("WinNT://" & strComputer & "/Administrator, user")
objUser.SetPassword strPWD
objUser.SetInfo
tsLog.WriteLine(strComputer & "," & Err.Number & ":" & Err.Description)
Err.Clear
Next
tsLog.Close
Msgbox "Finish!"
strComputer = "hoge"
strUser = "moge"
Set objGroup = GetObject("WinNT://" & strComputer & "/Administrators")
Set objUser = GetObject("WinNT://example.co.jp/" & strUser)
objGroup.Add(objUser.AdsPath)
'objGroup.Remove(objUser.AdsPath)
MsgBox "終了しました"
2008/04/18
呼び出し方
strLDAP = "LDAP://DC=example,DC=co,DC=jp"
strName = "username"
Set objUser = GetUserObject(strLDAP,strName)
MsgBox objUser.Name
関数本体
Function GetUserObject (strLDAP,strName)
Const ADS_SCOPE_SUBTREE = 2
Set objConnection = CreateObject("ADODB.Connection")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set objCommand = CreateObject("ADODB.Command")
Set objCommand.ActiveConnection = objConnection
objCommand.Properties("Page Size") = 1000
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
'samAccountNameは一意のはず(たぶん。調査した範囲では間違いなく。)
objCommand.CommandText = "SELECT distinguishedName FROM '" & strLDAP _
& "' WHERE objectCategory='user' AND samAccountName='" & strName & "'"
Set objRecordSet = objCommand.Execute
IF objRecordSet.RecordCount = 1 Then
objRecordSet.MoveFirst
strDN = objRecordSet.Fields("distinguishedName").Value
Set objUser = GetObject("LDAP://" & strDN)
Set GetUserObject = objUser
Else
Set GetUserObject = Nothing
End If
End Function
1.[プログラムの追加と削除]→[Windows コンポーネントの追加と削除]→[アプリケーション サーバー]→[詳細]→[インターネット インフォメーション サービス(IIS)]→[詳細]→[SMTPService]をチェック。
結構深い。CDは要求されたけど再起動は不要(これ結構重要)。
2.IISマネージャに[既定の SMTP 仮想サーバー]が追加されるので
[既定の SMTP 仮想サーバー]を右クリック→[プロパティ]→[アクセス]タブで以下の2点を設定
- [接続]→[以下のリストに含まれるコンピュータのみ]をチェックして、127.0.0.1とサーバーのアドレスを追加
- [中継]→[以下のリストに含まれるコンピュータのみ]をチェックして、127.0.0.1とサーバーのアドレスを追加
2008/04/05 検索後:リニアサーチ、Linear Search、ハッシュテーブル
Active Directoryつか、
WSHだけど、WSHをADの管理にしか使ってないからとりあえずココで。
二つの配列の内容を比較するのに馬鹿ループ(リニアサーチ)とDictionaryでどのくらい速度が違うのかを計測。
データ数 |
1000×1000 |
65536×65536 |
Dictionaly |
0.98秒 |
1.97秒 |
リニアサーチ |
113.16秒 |
終わらないから強制終了w |
サンプルソース
Set fso = CreateObject( "Scripting.FileSystemObject" )
'lines1にテキストファイルからリスト1を読み込み
Set ts = fso.OpenTextFile( "List1.txt", 1 )
lines1 = Split( ts.ReadAll, vbCrLf )
ts.Close
'lines2にテキストファイルからリスト2を読み込み
Set ts = fso.OpenTextFile( "List2.txt", 1 )
lines2 = Split( ts.ReadAll, vbCrLf )
ts.Close
'■Dictonaryを使用した存在確認
start1 = timer
Set dic = CreateObject( "Scripting.Dictionary" )
For i = 0 to Ubound(lines) - 1
dic.Add lines(i) , 0
Next
For i = 0 to Ubound(lines2) - 1
If dic.Exists(lines2(i)) = True Then
End If
Next
elapsed 1= timer1 - start
'■リニアサーチを使用した存在確認
start2 = timer
For i = 0 to Ubound(lines) - 1
For j = 0 to Ubound(lines2) - 1
IF lines(i)=lines2(j) Then Exit For
Next
Next
elapsed2 = timer - start2
'■結果表示
MsgBox "Dictionaly:" & elapsed1 & vbcrlf & "リニアサーチ:" & elapsed2
2008/04/05 検索語:スクリプト、WSH
とりあえず組んだ。エラー処理とかしてないけど。
strPath = "C:\Documents and Settings\Administrator\デスクトップ\Users.txt"
strLDAP = "LDAP://dc=example,dc=co,dc=jp"
Const ADS_SCOPE_SUBTREE = 2
Set fso = CreateObject( "Scripting.FileSystemObject" )
Set ts = fso.OpenTextFile( strPath, 1 )
lines = Split( ts.ReadAll, vbCrLf )
ts.Close
Set dicUsers = CreateObject( "Scripting.Dictionary" )
For i = 0 to Ubound(lines) - 1
dicUsers.Add lines(i) , 0
Next
Set objConnection = CreateObject("ADODB.Connection")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set objCommand = CreateObject("ADODB.Command")
Set objCommand.ActiveConnection = objConnection
objCommand.Properties("Page Size") = 1000
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
objCommand.CommandText = "SELECT distinguishedName,CN FROM '" & strLDAP & "' WHERE objectCategory='user'"
Set objRecordSet = objCommand.Execute
objRecordSet.MoveFirst
Do Until objRecordSet.EOF
strDN = objRecordSet.Fields("distinguishedName").Value
IF dicUsers.Exists(objRecordSet.Fields("CN").Value) Then
Set objUser = GetObject("LDAP://" & strDN)
objUser.pwdLastSet = 0
objUser.SetInfo
End If
objRecordSet.MoveNext
Loop
参考アドレス
2008/04/02
グループポリシー管理コンソールのレポートで、[管理用テンプレート]-[レジストリの追加設定]という項目が表示され
いくつかの設定の表示名が見つかりません。グループ ポリシーの管理が使用している .ADM ファイルを更新すると、この問題を解決できる場合があります。
Software\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\ListBox_Support_ZoneMapKey 1
Software\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMapKey\...
と表示されている。
調べてみると
[コンピュータの構成]-[管理用テンプレート]-[Windows コンポーネント]-[Internet Explorer]-[インターネットコントロールパネル]-[セキュリティページ]
内の項目
[サイトとゾーンの割り当て一覧]
に設定した内容だった。
HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Aliases\Members\
HKEY_LOCAL_MACHINE\SECURITY\SAM\Domains\Account\Aliases\Members\
管理者アカウントでも見ることはできなくて、システムアカウントでアクセスする必要がある。
問題はこの後で、これを読み出すのはいいとして、ファイルとして保存したとすると、漏洩したときにどのぐらいセキュリティにダメージがあるのかがわからない。暗号化フォルダなどはこれで解析できそうだけど。
普通のユーザーのSIDはレジストリエディタで丸見えだけど。どうなのかな。
2008/01/30 追記:とりあえず暗号化フォルダの復号もできないし、SIDは公開されるのが前提のようなのでちょっと安心。
ドメインに所属するクライアントのローカル管理者のパスワードを一括で更新します。
ドメインの管理者権限を持つユーザーでログインして実行します。
実際にはクライアントが起動していないと変更されませんので、スタートアップスクリプトを併用することも考えたほうがよいかも。
でもパスワード文字列を読み取れるファイルに記録してしまうとまずいので悩んでいるところです。
データベースを使って変更の成否を記録しながら一定間隔で個別に流すかなぁ。
なにかいい方法を知っている人がいれば教えてください。
strLogPath="Log.txt"
strPWD="ExamplePassword"
Const ADS_SCOPE_SUBTREE = 2
'ADODBコネクションの作成
Set objConnection = CreateObject("ADODB.Connection")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
'ADODBコマンドでドメインに所属するコンピュータを問い合わせ
Set objCommand = CreateObject("ADODB.Command")
Set objCommand.ActiveConnection = objConnection
objCommand.CommandText = "SELECT Name,OperatingSystem FROM 'LDAP://DC=example,DC=co,DC=jp' WHERE objectClass='computer'"
objCommand.Properties("Page Size") = 1000
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
Set objRecordSet = objCommand.Execute
'各クライアントの成否を記録するログファイルを生成
set fso = CreateObject("Scripting.FileSystemObject")
set fp = fso.CreateTextFile(strLogPath,True)
On Error Resume Next
objRecordSet.MoveFirst
Do Until objRecordSet.EOF
strComputer = objRecordSet.Fields("Name").Value
'サーバーの管理者パスワードを変えてしまわないようにOSで限定しています。
'これはまあOU使ってもいいですし、絞り方はいろいろ。
If objRecordSet.Fields("OperatingSystem").Value="Windows XP Professional" Then
Set objUser = GetObject("WinNT://" & strComputer & "/Administrator, user")
objUser.SetPassword strPWD
objUser.SetInfo
fp.WriteLine(strComputer & "," & Err.Number & ":" & Err.Description)
End If
objRecordSet.MoveNext
Loop
fp.Close
Msgbox "Ok"
Setup.exe -a -r -f1c:\testSet.iss
で応答ファイルを作成して
Setup.exe -s -f1c:\testSet.iss
ファイル サーバー リソース マネージャを有効にします。
って・・・俺はどうやって有効にするか知りたいんだよ!
ああ、[プログラム の追加と削除] の [管理ツール]ね。
そういえばグレーになってたけど中を開けて見なかった私が悪いのです。
2007/10/22
イベントID 1030:グループ ポリシー オブジェクトの一覧を照会できません。このエラーの理由を説明するようなメッセージをポリシー エンジンが記録していないかどうか、イベント ログを確認してください。
イベントID 1058:GPO cn={XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX},cn=policies,cn=system,DC=example.co.jp,DC=example,DC=co,DC=jp 用のファイル gpt.ini にアクセスできません。ファイルは場所 <\\example01.co.jp\sysvol\example01.co.jp\Policies\[XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}\gpt.ini> に存在する必要があります (アクセスが拒否されました。 )。グループ ポリシーの処理は中止されました。
詳細な情報は、
http://go.microsoft.com/fwlink/events.asp の [ヘルプとサポート センター] を参照してください。
いつのころからかこのエラーが5分置きに記録されていてうっとおしかったんで、調べたらKBにありました。
http://support.microsoft.com/kb/842804/ja
「グループ ポリシーの処理が機能せず、ドメイン コントローラのアプリケーション ログにイベント 1030 および 1058 が記録される」
ただ、最初読んだときは「最新のService Packで解決する。」と書いてあったので、「ウチは最新だからちがうのかなぁ」とスルーしてしまった。
かなり時間を使ってしまってから舞い戻り、精読したら、「注:Service Pack のインストール後でも、「レジストリ情報」に記載されている手順を実行する必要があります。」と書かれていたorz。
2007/10/22 自分用のサンプル構文
dsadd user "CN=山田 太郎,OU=部門1,OU=Domain Users,DC=example01,DC=example,DC=or,DC=jp" -ln 山田 -fn 太郎 -display 山田 太郎 -upn
taro-yamada@example.co.jp -pwd Example01 -mustchpwd yes -memberof "CN=総務部,OU=Security Groups,DC=example01,DC=example,DC=co,DC=jp" "CN=総務部長,OU=Security Groups,DC=example01,DC=example,DC=co,DC=jp" "CN=防火責任者,OU=Security Groups,DC=example01,DC=example,DC=co,DC=jp" "CN=プロジェクトチーム1,OU=Security Groups,DC=example01,DC=example,DC=co,DC=jp" -disabled no
2007/08/28
ソフトウェアインストールのところにmsiファイルをドラッグ&ドロップできるのね。知らなかった。
2007/08/23
スクリプト中でregedit /S "filepath" の方がシンプルで見通しがよく、即効性があるが・・・
手法 |
対象 |
特徴 |
グループポリシー |
HKLM |
ローカル管理者でも変更できない。 |
グループポリシー |
HKCU |
ローカル管理者でも変更できない。 |
スタートアップスクリプト |
HKLM |
ユーザーは変更できない。 |
ログオンスクリプト |
HKCU |
ユーザーが変更できる。 |
従って、
1.ユーザーが変更してもよいがデフォルト値を配布したい場合は一回だけregedit /s filename *1
2.HKCU対象でユーザーに変更させたくない値はグループポリシー(HKCU)
3.HKLM対象はスタートアップスクリプトでもグループポリシーでもよい。
手間を考えるとスクリプト。ローカル管理者にも変更させたくなければグループポリシー。
MEMO:試してないけど疑問
1.Policyの下ってスクリプトで配布できるんだろか。
2.ローカル管理者ってほんとにPolicyを無効化することできない?
2007/08/20 グループポリシーで設定してみても下記のエラーで失敗している。
「コンピュータ ネットワークためのドメイン コントローラ名を取得できません。(指定されたドメインがないか、またはアクセスできません。 )。グループ ポリシーの処理は中止されました。」
http://support.microsoft.com/kb/840669/ja
この記述にしたがってレジストリを修正すると成功した ⇒
【regファイルダウンロード】
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]
"GpNetworkStartTimeoutPolicyValue"=dword:0000003c
CLASS USER
CATEGORY !!CustomRegistry
CATEGORY !!PathOfRun
KEYNAME "Software\Policies\Microsoft\Windows\CurrentVersion\Run"
POLICY !!OnlyDetl_Title
EXPLAIN !!OnlyDetl_Explain
PART !!OnlyDetl_Path EDITTEXT
VALUENAME OnlyDetl
MAXLEN 60
END PART
END POLICY
END CATEGORY
END CATEGORY
[strings]
CustomRegistry="配布レジストリ"
PathOfRun="ログイン時に実行するアプリケーション"
OnlyDetl_Title="OnlyDetl"
OnlyDetl_Explain="OnlyDetlの実行パスを設定します。"
OnlyDetl_Path="実行パス:"
という感じです。
注意事項として、コピペした使ったときに[strings]の後ろにスペースが入っていると、「[strings]セクションに文字列xxxが見つかりません」みたいなエラーで蹴られます。
かならず余分なスペースは除去しましょう。前後も1行空行のほうがよいかも。
2007/08/14
できるだけDefault Domain Controllers Policyをいじりたくないので、リモート専用のユーザーを別のGPOで指定してみたが有効にならなかった。
ローカルセキュリティポリシーはDefault Domain Controllers Policyでなければいけないのかもしれない。
※資料を見つけているわけではないので未確定情報です。もしご存知の方がいれば情報をいただけるとありがたいです。
2007/08/07
いまや Acrobat Reader は必須といってよいと思いますが、msiファイルとしては提供されていません。
しかし内部的にはmsiファイルで構成されており、下記の手順で抽出することができます。
AdbeRdr810_ja_JP.exe -nos_ne-nos_ne
3.[C:\Documents and Settings\[ユーザー名]\Local Settings\Temp\Adobe Reader 8]に下記ファイルが出力される。
abcpy.ini
AcroRead.msi
Data1.cab
Setup.exe
setup.ini
4.AcroRead.msiとData1.cabを同じフォルダにおいて、グループポリシーで配布する。
Flash Player をmsiファイルで配布する
2007/07/02
契約してるホスティングサービスからメールアカウントのサーバー名を変更してくれと通知。
1台1台やってられないのでスクリプト作ってみた。
Outlook Expressのアカウントって、CurrentUserが使えないのね。SIDまで取らなきゃいけなかった。
グループポリシーでログオンスクリプトに設定して解決。
'ログインアカウントのSIDをWMIを使用して取得
Set oWMI = GetObject("winmgmts:\\.\root\cimv2")
Set WshNetwork = WScript.CreateObject("WScript.Network")
Set oAccount = oWMI.Get ("Win32_UserAccount.Name='" & WshNetwork.UserName & "',Domain='" & WshNetwork.UserDomain & "'")
strKeyBase = oAccount.SID & "\Software\Microsoft\Internet Account Manager\Accounts"
'SIDに登録されたインターネットアカウントをレジストリから列挙
const HKEY_USERS = &H80000003
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")
oReg.EnumKey HKEY_USERS, strKeyBase, arrSubKeys
'各アカウントの値をチェックして更新
For Each subkey In arrSubKeys
strKeyPath = strKeyBase & "\" & subkey
strValueName = "POP3 Server"
oReg.GetStringValue HKEY_USERS, strKeyPath , strValueName, strValue
If Not IsNull(strValue) Then
If strValue="mail.example.co.jp" Then
oReg.SetStringValue HKEY_USERS, strKeyPath , strValueName , "pop.example.co.jp"
End IF
End If
strValueName = "SMTP Server"
oReg.GetStringValue HKEY_USERS, strKeyPath , strValueName, strValue
If Not IsNull(strValue) Then
If strValue="mail.example.co.jp" Then
oReg.SetStringValue HKEY_USERS, strKeyPath , strValueName , "smtp.example.co.jp"
End IF
End If
Next
2007/06/06
http://support.microsoft.com/kb/308421/ja
管理者アカウントで上位フォルダにて「サブコンテナとオブジェクトの所有者を置き換える」を行うと、アクセス権を変更できるようになる。
もともと所有者に管理者アカウントが表示されていても、これをやるのとやらないので挙動が違います。
検索語:NTFS/消せない/ファイル/継承/読み取り/変更/削除/SYSTEM/Administrators/フォーマット
2007/05/17
oがないのがレジストリ……
oがあるのがアクティブディレクトリ……
ちょっと時々ごっちゃになるねん
わかってるねん わかってるねんで? バカにしたらあかん
oがあるのがレジストリ それがごっちゃに……
わかってるねんで!?
正:Registry
誤:Registory
正:Active Directory
誤:Active Directry
やってみると下記エラーが出て復元に失敗する。
このドメインの Active Directory スキーマ バージョンと、このツールによってサポートされているバージョンが一致しません。GPO は /ignoreschema コマンド ライン パラメータを使用すると復元できます。ただし、このツールの更新バージョンを取得することをお勧めします。このツールの更新バージョンには、Active Directory スキーマの更新バージョンが含まれている可能性があります。間違ったスキーマで GPO を復元すると、予期しない動作が発生する場合があります。
R2だと出るということ。/ignoreschemaオプションで強行する。
次のドメインの既定のドメイン ポリシーを復元しようとしています。
xxx.yyy.zzz.jp
続行しますか: <Y/N>? y
警告: この操作を行うと、選択された GPO で行われた 'ユーザー権利の割り当て' がすべて置き換えられます。これにより一部のサーバー アプリケーションでエラーが発生する可能性があります。 続行しますか: <Y/N>?
で[y]を押して実行。
既定のドメイン ポリシーは正しく復元されました
注意: 既定のドメイン ポリシーの内容のみが復元されました。このグループ ポリシーオブジェクトへのグループ >ポリシー リンクは変更されませんでした。
既定では、既定のドメイン ポリシーはドメインにリンクされています。
あとはポリシーオブジェクトをドメインにバインドして終了。
変な影響が出なければいいけど。
comment
このページの記述で聞きたいこととか間違ってることとかありましたらコメントを。
- コンピュータ名の一覧を元にローカルAdministratorのパスワードを変更するスクリプトの4行目、stLogPathではなくstrLogPathではないでしょうか。 -- (shimazoe) 2010-06-08 11:18:19
- ご指摘ありがとうございます。たぶんそうだと思うので直しました。コピーミスかな? -- (memo77) 2010-06-08 11:55:04
- 「XPクライアントに特定のユーザー/グループのみログインを許可する」を私もやっていますが、プリンタなどドライバインストールで失敗します。そんときだけ戻してます。 -- (を) 2010-06-13 20:25:02
最終更新:2010年10月14日 22:11