Out-Fileで出力すれば良い話ではあるが、ダブルコーテーションを付ける場合はExport-CSVの方が楽かも
$ハードウエア一覧ヘッダー + "`r`n" + $ハードウエア一覧明細 | ConvertFrom-Csv | Export-Csv -Path .\ハードウェア一覧.csv -NoTypeInformation -Encoding Default
I Love PowerShell
Out-Fileで出力すれば良い話ではあるが、ダブルコーテーションを付ける場合はExport-CSVの方が楽かも
$ハードウエア一覧ヘッダー + "`r`n" + $ハードウエア一覧明細 | ConvertFrom-Csv | Export-Csv -Path .\ハードウェア一覧.csv -NoTypeInformation -Encoding Default
変数で受け取った値を引数に使ってコマンドを呼び出す場合などに、省略された場合を考慮しないといけない。
Send-MailMessage -To $to ` -Cc $cc ` -From $from ` -Subject $subject ` -SmtpServer $mailServer ` -Body $body ` -Attachments $attachment ` -Encoding ([System.Text.Encoding]::Default) |
こんなケースで$attachmentに値が入ってこないとエラーになる。
だからと言って引数の組み合わせの分だけコマンドを用意するのも・・・。
なんか簡単に解決できる方法がありそうにも思うが、見つからなかったのでとりあえず以下の様にしてみた。
$param = @{ "To" = $to "Cc" = $cc "From" = $from "Subject" = $subject "SmtpServer" = $mailServer "Body" = $body "Attachments" = $attachment "Encoding" = [System.Text.Encoding]::Default } if($attachment -eq ""){$param.Remove("Attachments")} Send-MailMessage @param |
アクセス権が無くて管理者でも消せなくなるフォルダー(ファイル)がある場合。
(移動プロファイルのフォルダーとか普通になっても管理者がアクセスできなくなる)
所有権を取れれば問題ないのだがGUIからは所有権も取れない場合もある。
そんな時は以下のコマンドで、
takeown /f c:\users\username /r /d y
$dn = (Get-ADUser -Identity "testUser").DistinguishedName
Rename-ADObject $dn -NewName "新氏名"
ADのサブネットをコマンド設定するときに「New-ADObject」を使うようなのだが、その中で以下の様なプロパティがある
-OtherAttributes @{location="Building A";siteObject="CN=HQ,CN=Sites,CN=Configuration,DC=FABRIKAM,DC=COM"}
サブネットがたくさんあるとループしながらフォーマット演算子で可変部分を入れ替えてとなるのだが、フォーマット演算子と連想配列を一緒に使うとエラーとなる。
{}の扱いがよろしくない。
連想配列側の括弧を2重にすると良いようだ。{{hoge}}のように。
Out-GridViewにデータをパイプしている最中(時間が掛かっている時)にGridの画面を閉じてしまうと(時間が掛かるからやーめたってパターン)Powershellが落ちてしまうようです。
以下と見るとBUGのようなので余り対策は無さげですが、
パイプするデータを予め変数に入れてから繋ぐか、メッセージを出してパイプが終わるまで待ってもらう感じですかね。
PowerGUIを使うとスクリプトを簡単にExeへと変換できるようだ。
(いつのバージョンから出来るようになったのか定かではないが、比較的最近だと思われる)
必ずしもPowerGUIの専売特許という訳では無さそうですが・・・。
Make-PS1ExeWrapper | Keith Hill's Blog
「ツール」メニューから「Compile Script...」を選んで
同じ場所にConfigファイルも作られるようだが、とりあえず無くても動作はするみたい。
何かしら制限があるのか無いのか、使いこんだわけではないので判らないが、さしあたって実行ポリシーは回避できるようだ。
ちょっと便利かも。
Compileの下にServiceを作るメニューもある・・・。
----
最近ではPS2EXE-GUIあたりが良さそう(2021/08/25)