つぶねこ
@もじらもーど。
せっかくにゃのでbatで書いてみたデモ。
ADのユーザのプロパティで、ダイヤルインの静的IPアドレスを割り当てを設定
@echo off
rem (add) %0 "CN=user1,OU=ou1,OU=ou2,DC=dom,DC=local" 123.123.123.123
rem (mod) %0 "CN=user1,OU=ou1,OU=ou2,DC=dom,DC=local" 123.123.123.123
rem (del) %0 "CN=user1,OU=ou1,OU=ou2,DC=dom,DC=local"
set dn="%~1"
set ip=%~2
if %dn%=="" (@echo ERR1 : %0 %* & pause & exit)
call :chk_dn %dn%
@echo dn ok
if "%ip%"=="" call :mode_del
if not "%ip%"=="" call :mode_edit
goto :EOF
:mode_del
call :attr_del %dn% "msRADIUSFramedIPAddress"
call :attr_del %dn% "msRASSavedFramedIPAddress"
exit /b
:mode_edit
setlocal
call :ip2dec ip_dec %ip%
echo %ip% = %ip_dec%
call :attr_edit %dn% "msRADIUSFramedIPAddress" "%ip_dec%"
call :attr_edit %dn% "msRASSavedFramedIPAddress" "%ip_dec%"
endlocal
exit /b
:chk_dn
ldifde -u -d %1 -r "(objectClass=user)" -f out.tmp || goto :chk_err %*
ldifde -u -d %1 -r "(objectClass=user)" -f out.tmp | find "1個のエントリがエクスポートされました" >NUL || goto :chk_err %*
type out.tmp | find %dn% >NUL || goto :chk_err %*
del out.tmp
exit /b
:chk_err
echo ERR2 %0 %*
pause
exit
:attr_edit
setlocal
set dn="%~1"
set attr="%~2"
set var="%~3"
call :is_exist_attr flag %dn% %attr%
if "%flag%"=="0" call :create_import_file_add %dn% %attr% %var% > tmp.txt
if "%flag%"=="1" call :create_import_file_modify %dn% %attr% %var% > tmp.txt
type tmp.txt || pause
call conv.cmd sjis2unicode tmp.txt tmp_u.txt
del tmp.txt
ldifde -u -i -f tmp_u.txt || (@echo ERR3 %0 %* & pause)
del tmp_u.txt
endlocal
exit /b
:attr_del
setlocal
set dn="%~1"
set attr="%~2"
call :is_exist_attr flag %dn% %attr%
if "%flag%"=="0" exit /b
if "%flag%"=="1" call :create_import_file_delete %dn% %attr% > tmp.txt
type tmp.txt || pause
call conv.cmd sjis2unicode tmp.txt tmp_u.txt
del tmp.txt
ldifde -u -i -f tmp_u.txt || (@echo ERR4 %0 %* & pause)
del tmp_u.txt
endlocal
exit /b
:create_import_file_add
@echo off
if "%~3"=="" (@echo ERR5 %0 %* & pause)
echo.|set /p x=dn: %~1
echo.
echo.|set /p x=changetype: modify
echo.
echo.|set /p x=add: %~2
echo.
echo.|set /p x=%~2: %~3
echo.
echo.|set /p x=-
echo.
exit /b
:create_import_file_modify
@echo off
if "%~3"=="" (@echo ERR6 %0 %* & pause)
echo.|set /p x=dn: %~1
echo.
echo.|set /p x=changetype: modify
echo.
echo.|set /p x=replace: %~2
echo.
echo.|set /p x=%~2: %~3
echo.
echo.|set /p x=-
echo.
exit /b
:create_import_file_delete
@echo off
if "%~2"=="" (@echo ERR7 %0 %* & pause)
echo.|set /p x=dn: %~1
echo.
echo.|set /p x=changetype: modify
echo.
echo.|set /p x=delete: %~2
echo.
echo.|set /p x=-
echo.
exit /b
:is_exist_attr
setlocal
set res=0
set dn=%2
set attr=%3
ldifde -u -d %dn% -l %attr% -f out.tmp >NUL
type out.tmp | find %attr% >NUL && set res=1
del out.tmp
endlocal & set %1=%res%
exit /b
:hex2dec
rem call :hex2dec var ffffffff
echo.|set /p x=Wscript.Echo ^^^&H%~2>tmp.vbs
echo.>>tmp.vbs
for /f "usebackq delims=" %%a in (`cscript //nologo tmp.vbs`) do set %1=%%a
del tmp.vbs
exit /b
:dec2hex
rem call :dec2hex var 123456
echo.|set /p x=Wscript.Echo Hex(%~2)>tmp.vbs
echo.>>tmp.vbs
for /f "usebackq delims=" %%a in (`cscript //nologo tmp.vbs`) do set %1=%%a
del tmp.vbs
exit /b
:format_dec
rem call :%0 var 4 99 -> var=0099
setlocal
set x=00000000000000000000000000000000000000000000000000%3
rem call echo %%x:~-^%2%%
call set ans=%%x:~-^%2%%
endlocal & set %1=%ans%
exit /b
:split_ip4
rem call %0 var1 var2 var3 var4 123.123.123.123
for /f "tokens=1,2,3,4 delims=." %%a in ("%~5") do set %1=%%a & set
%2=%%b & set %3=%%c & set %4=%%d
exit /b
:ip2dec
setlocal
rem call %0 var 10.1.0.255
set ip=%~2
call :split_ip4 var1 var2 var3 var4 %ip%
rem echo %var1% %var2% %var3% %var4%
call :dec2hex hvar1 %var1%
call :dec2hex hvar2 %var2%
call :dec2hex hvar3 %var3%
call :dec2hex hvar4 %var4%
rem echo %hvar1% %hvar2% %hvar3% %hvar4%
call :format_dec hvar1 2 %hvar1%
call :format_dec hvar2 2 %hvar2%
call :format_dec hvar3 2 %hvar3%
call :format_dec hvar4 2 %hvar4%
rem echo %hvar1% %hvar2% %hvar3% %hvar4%
call :hex2dec var %hvar1%%hvar2%%hvar3%%hvar4%
rem echo %var%
endlocal & set %1=%var%
exit /b
setlocal的にゃ部分とかエラーチェックはいい加減にゃので、十分テストしておかにゃいとADのデータ全滅とかにゃり得る所が怖いね
ipを4つ区切りで指定するとdwordにゃintにして書き込みみたいにゃことをしてるけど、かにゃり反則気味。
あと今回は関係にゃいんだけど日本語関連でunicodeで出し入れしたほうがいいので、unicode変換とか呼んでます。
で、ここまでしといて何だけど、vbsでGetObject("LDAP://〜〜)したほうが楽だねこれは(笑)
もうすっかり史実がどうとかわからにゃくにゃった
Win鯖でPPTPにゃVPN鯖とか立ててると、接続してきたユーザには設定したIPプールからランダムにIPがわりあてられるので、特定のユーザを特定のIPでVPN接続させることが出来にゃい。
が、ADのユーザのプロパティで、ダイヤルインの静的IPアドレスを割り当てを設定すれば、優先的にこのIPを使って接続される。細かい挙動は設定出来にゃいが、とりあえず無いよりはかにゃり有用に使える。
で、このプロパティを一括で登録しようと思うと、安易にゃツールでは設定オプションが無かったりしてがっかりにゃことに。
VPNの接続許可のとこもだけど、どうせADに登録されてる情報でしかにゃいんだから、全部設定出来るようにしとけよにゃー。netsh ras set user〜〜とかいちいち別のツール持ってくる必要があってめんどくさい。
んで、もちろん無いことはにゃいわけで、ldifdeで全般的に設定出来る。csvでできるcsvdeってのもある。オールマイティにゃものが有るにゃら、もう最初からこれだけにしとけよって感じのいつものMSの無計画ノーデザインである。
で、大雑把には
特定ユーザのexport
ldifde -u -d "CN=user01,OU=ou1,OU=ou2,DC=neko,DC=local" -f out.txt
このままimportするとユーザの追加ににゃる
属性の変更
dn: CN=user01,OU=ou1,OU=ou2,DC=neko,DC=local
changetype: modify
replace: test
test: xxx
-
属性の追加
dn: CN=user01,OU=ou1,OU=ou2,DC=neko,DC=local
changetype: modify
add: test
test: xxx
-
属性の削除
dn: CN=user01,OU=ou1,OU=ou2,DC=neko,DC=local
changetype: modify
delete: test
-
とこんにゃ感じ
addで同じ属性を複数追加できちゃうので、無ければ追加とか有れば変更とかは事前に場合分けする必要がある。
ま、とりあえず設定がtextで出し入れ出来るようににゃれば、あとはどうとでもにゃるよね、というわけで。
巴とかオリジナル数話が良い。
▼ ストライクウィッチーズ 関連記事
▼ けいおん 関連記事
今回は比較的エロ目で。
しかしこうして見ると、和服とかスカートってものは大事だにゃ。
一部のML115鯖とかでESXを動かすと、vmkapimodがCPUをほぼ常に食ってる感じににゃる話で、
IPMI周りが変ということまでは分かってたんだが、問題のにゃかったML115で急にvmkapimodがCPUを食い始めた。
これはあれか、systemあたりのCPU割り当てが不足して処理が追いつかにゃくにゃったらどっかで刺さるとか、その系か。
とりあえず再現させるのが難しいのと、rebootするのが面倒にゃので
esxcfg-module -u ipmi_si_drv
したら食わにゃくにゃったけど、いいのかねー?
このあたりはがんばって探せば、オンラインでIPMI周りをリロードして復帰できるのかもしれにゃいけど、それをwatchしてcronとかめんどくさすぎるのでもうIPMI未ロードでいいや
▼ ESX 関連記事
はずかしいせりふ以下略
▼ けいおん 関連記事
例によって必ずと言って良いほどどろんどろんの裏設定のあるサブキャラたち
▼ あそびにいくヨ 関連記事
アニメ見てもわからんかったので原作。
ふむふむ。
にゃんか戦闘機とかが動きのある描写、が苦手やのね。本作的に全くどうでもいいけど。
Win7のオフラインファイルを使ってみようってことで、HDDとか追加してやってみた。
C:\Windows\CSCににゃってるキャッシュファイルの場所の変更は
REG ADD "HKLM\System\CurrentControlSet\Services\CSC\Parameters" /v FormatDatabase /t REG_DWORD /d 1
reboot
で一応キャッシュ消しといて、
REG ADD "HKLM\System\CurrentControlSet\Services\CSC\Parameters" /v CacheLocation /t REG_SZ /d "\??\x:\var\csc"
reboot
って感じ。実際にはオフラインファイルを有効にする/しにゃいとかを挟んで倍ほど再起動するほうが確実。
でまぁそれはともかく、オフラインファイルだが、にゃんか微妙。まず刺さった後戻ってこにゃい。よく分からにゃいファイルロックで同期できにゃい。にゃどにゃど
サービスを再起動しても反応が薄いし、同期したいフォルダを解除しようとしても反応が返ってこにゃい。にゃんかもういろいろと使えにゃさすぎる。
通常進行
ESX4.0からESXi4.1にしたら、vmのマウスカーソルが重い。まるでESX4.0でWin2008を使ったときのよう。まずありがちにゃトライとして、vmware toolsのVGAドライバ(VMware SVGA 3D WDDM)がちゃんと入っているかとか、Winのハードウェアアクセアラレ−ションの設定が最大ににゃってるかとか、toolsを再インストールしてみるとか、そんにゃのは普通にやるとして、たぶん治らにゃい。
しかもWin2003までもが遅くにゃる。これは使い物ににゃらにゃい。
vmware toolsが4.0のものにゃら正常かというと、4.0のvmをそのまま4.1で動かしてもカーソルが重くにゃるので、にゃにか仕様変更したとしかわからん。
vmが2008やwin7の場合はVGAドライバを手動で更新する必要があるが、それとは別の問題。
でも条件があって、具体的には2003にRDPで接続して、vSphere ClientでESXi4.1に接続し、winにゃvmのコンソールを操作する場合に、マウスカーソルの追従が悪くにゃる。
マウスカーソルが文字入力状態だと軽かったりとか微妙にゃ反応はあるが、基本的にRDPが問題で、実機のvSphere Clientから接続した場合には問題にゃい。
又、vSphere Clientを実行している2008R2にWin7からRDPしていると問題にゃい。但し今度は2003系でマウスカーソルが黒ににゃったり、2008系でマウスカーソルが表示されにゃくにゃったりする。・・・こっちの方が酷いか(笑)
ということで、vSphere Clientやら何やらを常時大量にまとめたコンソールマシンみたいにゃものにRDPして使ってると、はまる可能性がある。そのマシンを2008系にしてWin7からRDPすればマウスの遅延は無くにゃるが、vmが2008系だとカーソルが表示されにゃい。
にゃんぞの高速化かにゃにかをやろうとして検証が足りにゃかった系だろうか。毎度のことだが。
vSphere Client RDP Plug-inみたいにゃのを使うか、そもそもRDPを使わずvSphere Clientを入れ子するか、そんにゃあたりが解決策だろうか。もちろんVGAドライバに拘らにゃければ何とかにゃるはずだが。
▼ ESX 関連記事
にゃんだろうにゃぁこの、目が離せにゃい程度に濃厚にゃ変態っぷり
vm上の2008R2にRDPして常用しようネタ。Aero的にゃ機能が必須ではにゃいんだが、場合によってこの方が高速ににゃるアプリがあるので一応メモ。
サーバーマネージャー→機能の追加→デスクトップエクスペリエンス
サービス→Themes→auto
gpedit.msc→コンピューターの構成→管理用テンプレート→Windows コンポーネント→リモートデスクトップサービス→リモートデスクトップセッションホスト→リモートセッション環境→
色の解像度を制限する→32
リモートデスクトップセッションのデスクトップコンポジションを許可する
個人設定→Aeroテーマ
Win7からRDPで繋ぐ
とまぁ、結構手間。でやってみると結構もっさりしてていまいち。
▼ リモートデスクトップ 関連記事
閑古鳥かっこえええええええ!
あと烏もみもみしたい。
あぁうん・・・
▼ あそびにいくヨ 関連記事
あぁうん、タヌキの鈍くささというか、つまり鈍くさいのはガチ。
それはともかくよく分かってるご主人である。あぁでもしっぽつきの形態にゃらゆるしてやってほしいにゃぁ