2011年6月26日日曜日

PowerShellでSASからユーザ登録

仕事のメモです。とある仕事で、リモートコンソールが使えなくなるということで、SASのリモート実行でユーザ登録、削除を行えるようにしようとしています。まずは、PS1のスクリプトが実行できるようにPowerShellから設定を変更します。
 Set-ExecutionPolicy RemoteSigned
次に、RSUBMITするSASコード
%macro adduser(name, passwd, fullname, desc);


  %let script=%bquote("C:\Documents and Settings\suzuki\desktop\foo1.ps1");
  options noxwait xsync;
  x "powershell.exe -file &script &name %quote(&passwd) %quote(&fullname) %quote(&desc)";
  %if &sysrc=0 %then %do;
  %put INFO: adduser success &name;
  %end;
  %else %do;
  %put INFO: adduser error &name;
  %end;
%mend;


options nomprint nosource;
%adduser(a, Sas4passworddayo!, %str(my name), %str(test desc));
%adduser(b, Sas4passworddayo!, %str(my name), %str(test desc));
%adduser(c, Sas4passworddayo!, %str(my name), %str(test desc));
最後に、ユーザ追加のPS1を示します。
#
# 変数宣言
#
$USER_NAME = $args[0]
$USER_PASSWORD = $args[1]
$USER_FULLNAME = $args[2]
$USER_DESCRIPTION = $args[3]


#
# ローカルユーザー作成
#
$computer = [ADSI]"WinNT://."
$user = $computer.Create("user", $USER_NAME)
$user.SetPassword($USER_PASSWORD)
$user.SetInfo()
$user.FullName = $USER_FULLNAME
$user.Description = $USER_DESCRIPTION
$user.UserFlags = 0x10000 #パスワードを無期限に設定
try {
  $user.SetInfo()
}
catch {
  exit 99
}
exit 0

2011年6月22日水曜日

SAS Option Report, 改良のアイディアメモ

標記のツールを自分の仕事で使っていますが、まずまず使えます。改良のアイディアをメモしておきます。
  • Optionsの値をファイルに保存せずに、そのまま画面に貼り付けたい
  • 2つのOptionsの値を比較して差異を特定できるようにしたい

2011年6月19日日曜日

SAS Log Utility, 1.4.1.1 リリース

Vectorへの公開をストップしていますが、私家版として更新しています。今日は、一括で分析、Excelファイルにエクスポートする機能を追加しました。ログの量が少ないときには、それほど負担に感じませんが、最近は大きなログを掛けることが多いので、一括実行のボタンを追加しました。
  • Elapsed, DataSet, CRUDなどの分析を一括実行するボタンを追加
  • 複数の分析結果を1つのExcelファイルに一括してエクスポートするボタンを追加
  • Windows版でFULLSTIMERのログをパースできるように修整
  • 圧縮のメッセージを間違ってカウントするバグを修整