2021年8月25日水曜日

◆PowerShellスクリプトをExeに変換する

PowerGUIを使うとスクリプトを簡単にExeへと変換できるようだ。
(いつのバージョンから出来るようになったのか定かではないが、比較的最近だと思われる)

必ずしもPowerGUIの専売特許という訳では無さそうですが・・・。
Make-PS1ExeWrapper | Keith Hill's Blog

 

「ツール」メニューから「Compile Script...」を選んで
image

表示されたダイアログで保存先とオプションを指定するだけ。
image

同じ場所にConfigファイルも作られるようだが、とりあえず無くても動作はするみたい。

何かしら制限があるのか無いのか、使いこんだわけではないので判らないが、さしあたって実行ポリシーは回避できるようだ。

ちょっと便利かも。

Compileの下にServiceを作るメニューもある・・・。

----
最近ではPS2EXE-GUIあたりが良さそう(2021/08/25)

2021年8月20日金曜日

◆Set-ADUser

https://atmarkit.itmedia.co.jp/ait/articles/2108/19/news004.html#_ga=2.20275579.276634599.1629436537-971364125.1629436537


この人、ReplaceパラメータとReplace演算子の区別がついてないかも。

2021年7月12日月曜日

◆Powershellを別の資格情報で起動withParam

Start-Process powershell -cred $cred -ArgumentList "$startPath '$更新IFファイルFullpath' '$func'"

2021年6月29日火曜日

ActiveDirectory 未入力を判定するFilter

-filter 'comment -notlike "*"'

2021年6月7日月曜日

◆Export-Excel

# インターネットに繋がっていないと使えない(最初の1回のみ必要) Install-Module -Name ImportExcel -Force Get-ADUser -filter {Enabled -eq $True -and PasswordNeverExpires -eq $False} -Properties "SamAccountName","msDS-UserPasswordExpiryTimeComputed" | Select-Object -Property "name", @{Name="Password Expiry Date"; Expression={[datetime]::FromFileTime($_."msDS-UserPasswordExpiryTimeComputed")}} | Foreach {[Array]$Users += $_} $Users | Export-Excel .\test.xlsx

2021年4月22日木曜日

◆ユーザーが所属するADグループを表示する

Get-ADPrincipalGroupMembership -Identity testuser1

2021年3月19日金曜日

◆EPPlusで日付を設定しても書式設定が反映されない件

EPPlusがやっと動くようになって元々の目的だった完了日欄に日付を入れてみた。

$sheet.Cells["N4"].Value = “2021/03/19”

フォーマット的には「2021年 03月 19日(金)」と表示されるはずなのだが、そのまま「2021/03/19」と表示されてしまう。

一旦セルにフォーカスを当ててEnterを押すとちゃんとフォーマットされるので値自体は問題なさそうなのだが。

EPPlus側でフォーマットを再設定などしても変わらず。
他の数値書式なども試してみたのだがそちらは問題ないので強制的にフォーマットを適用させる必要があるとかでは無さそう。

半日ほど彷徨った結果やっと判った。

要は、Excel君は賢いので“2021/03/19”という文字列を日付の事だろうと忖度してくれて日付型にパースする。

ただ、このタイミングがセルの編集終わりなので手入力の時は良いがEPPlusが設定した値までは面倒見てくれない。

EPPlusは“2021/03/19”が文字列なのでそのままセルに突っ込んで終わり。

これを「EPPlus様」に書式設定してもらうには、
$sheet.Cells["N4"].Value = Get-Date

の様に日付型を突っ込めば良いだけだった。

ふぅ~。


Excelが無い環境(サーバー)でExcelにたった1項目(完了日付)を入れたいだけだったのに、EPPlusのインストールに始まり、上手くいかずClosedXMLへ移り、やっと環境ができて動いたかと思えばオブジェクトが扱えずにEPPlusへ戻り、依存関係に悩みながらやっと動いて値が設定できたかと思えば書式が反映されず。

っと都合3日ほど掛ったのではなかろうか・・・・。

動いてしまえば、Excelの様な巨漢を必要とせず一瞬で終わる処理は気持ちが良いものだ。