スクリプトを使用して PPT から アニメーションを一括削除

全然話が変わるのですが、slideshare(スライドシェア)ってご存知ですか? Junichi Anno Presentations PPT や PDF なんかをインターネット上で共有するのに、とても便利なサイトです。私も、セミナー資料で外部に公開できるものは、このサイトで公開しています。 ただ、ちょっと困ったことがあります。 それは、PowerPoint 2010 で作成したプレゼンテーションがうまくアップロードできないことがあります。 私の経験上、うまくいかない条件は以下の通りです。 アニメーションがついている フォントが埋め込んである じゃぁ…ということでアニメーションを片っ端から削除すればよいのですが、例えば300ページもある資料のアニメーションをちまちま削除するのは超面倒くさい! ということで、スクリプトで一気に処理することにします。 今回は、ものぐさして VBScript を使いました。拡張子、.vbs で保存してください。 On Error Resume Next ‘ファイル名をフルパスで指定 PPTFileName = "c:\tmp\ADFS2_ACSV2_Azure_StepByStep_v2.2_Update1_NoAnime.pptx" ppSaveAsPresentation     = 1 ppSaveAsPowerPoint7      = 2 ppSaveAsPowerPoint4    = 3 ppSaveAsPowerPoint3    = 4 ppSaveAsTemplate    = 5 ppSaveAsRTF        = 6 ppSaveAsShow        = 7 ppSaveAsAddIn        = 8 ppSaveAsPowerPoint4FarEast    =…

0

【Script】Win32_ServerFeature と Win32_OptionalFeature でWinodwsの機能をリストする

Windowsコンポーネントのインストール状況をスクリプトから知りたい!という要望は、結構多いと思います。 Windows Server 2003およびWindows XP以前は、レジストリから収集する必要があったため、いま一感が強かったのですが、Windows Server 2008、Windows Server 2008 R2, Windows 7 では WMIの機能がアップデートされ、スクリプトから簡単に情報を収集することができるようになりました。 ※Windows Server 2003、XP以前のOSでもエレガントにできるよ!という方がいらしたら ※ぜひともお知らせください! インストールされているWindowsコンポーネントの一覧を取得するために、新たに2つのクラスが用意されました。 Win32_ServerFeature ※Windows Server 2008でも使えます Win32_OptionalFeature ※Windows Server 2008 R2/Windows 7 でサポートされています 前者はWindows Server にインストールされている役割と機能の一覧を表示することができます。ただし、どんな役割/機能が用意されているのかを知ることができません。 後者を使用すると、Windows Server 2008 R2/Windows 7 のすべての役割と機能の一覧を表示し、かつそれぞれがインストールされているか否かを知ることができます。 Win32_ServerFature を使用したサンプルを TechNet のスクリプトギャラリーに投稿しましたので、ご覧ください。 http://gallery.technet.microsoft.com/ScriptCenter/ja-jp/56ac6367-bbcb-4c8c-8c4d-caa92c6d070e 実行すると、以下のように出力されます。ツリー構造にして表示する部分で苦労しました…。 Win32_OptionaFeatureについては、また後日ということで…。

0

【Script】Windows Server 2008/R2 にインストールされている役割と機能の一覧表示

以下をメモ帳にコピペして、拡張子vbsで保存してください。 スクリプトギャラリーには、その他のサンプルがたくさん!! —ここから  strComputer = “.” Set objDic_Name = CreateObject(“Scripting.Dictionary”)Set objDic_Parent = CreateObject(“Scripting.Dictionary”)Set objDic_Tree = CreateObject(“Scripting.Dictionary”) Set objWMIService = GetObject(“winmgmts:\\” & strComputer & “\root\cimv2”)Set colFeatureList = objWMIService.ExecQuery(“SELECT * FROM Win32_ServerFeature”) For Each n in colFeatureList objDic_Name.Add n.ID, n.Name objDic_Parent.Add n.ID, n.ParentID ‘Wscript.Echo n.ID & “:” & n.Name & “:” & n.ParentIDNext strFunctions = “” For Each ID in…

0

RODC環境でドメインに参加させるスクリプト

RODC環境でドメインに参加するためのスクリプト 実行書式は以下の通り。/readonly を忘れずに。 c:\> joindomain.vbs /domain <domainname> /mchinepassword <事前に設定したコンピューターのパスワード> /readonly —————————————————————————————–  ‘ JoinScript.vbs’ ‘     Script to join a computer to a domain.’     ” sub Usage   wscript.echo ” |————————————————|”   wscript.echo ” |   Joins a computer to a domain or workgroup    |”   wscript.echo ” |————————————————|”   wscript.echo “”   wscript.echo “Usage: ”   wscript.echo ” cscript JoinScript.vbs [/domain <domainname> |…

0

【Hyper-V】統合サービスの「データ交換」ってなに?

Hyper-VのゲストOSに「統合サービス」をインストールすると、ゲストOSで以下の機能が使用できるようになります。 オペレーティングシステムのシャットダウン 時刻の同期 データ交換 ハードビート バックアップ(ボリュームスナップショット) これらの機能は、以下の画面から一部を無効にすることも可能です。 この中で、「データ交換」とはどんな機能なのか?というご質問をいただきました。実は、恥ずかしながら私もきちんと把握していなかったので調べてみました。 当初、ホストとゲストの間でファイルを交換できるのかな?と思いこんでおりましたが、どうやら違うようですね…。 要は、 ホストとゲストの間で情報を交換(実際にはレジストリの値)するしくみ です…といっても、なんだかよくわからないですよね。すみません。 ここで、以下の図をご覧ください。 ※上のPPTのクリップアートが気になる方は、ここをクリック! 管理者が操作するPCと、ゲストOSがネットワーク的に通信が可能であれば、WMIのWin32_OperatingSystem等を通じてゲストOSの情報を収集することが可能です。 しかし、ゲストOSが使用しているネットワークが「プライベート」であったり、IPアドレスの体系が全く異なる場合には、いくら管理者といえどもゲストOSに接続することができません。セキュアな環境を構築したいと考える場合には、ゲストOSが使用するネットワークカードは、物理ネットワークカードから切り離すことになるでしょう。それでも、ゲストOSが大量に存在する場合には、スクリプト等でちょちょいと「ゲストOSリスト」なんてものを作成したいはずです。 そんなときは、ホストOSを介してゲストOSの情報を収集することが可能です。これを実現してくれるのが、ゲストOSにインストールされた「データ交換」機能なのです。 ちなみに、「データ交換」機能は、直訳すれば「Data Exchange」ですが、WEB等で記事を探そうとすると、これではヒットしずらいようです。多くの記事では 「KVP Exchange」という言葉が使われています。KVPとは Key Value Pair のことで、ご想像とおりXML形式のデータを指しています。つまり、ゲストOSの情報を KVPで交換できるということを意味しています。 実際にデータ交換を行うには、おなじみ WMI(Windows Management Instrumentation)に用意された仮想マシン用のクラス(msvm_*)を使用します。つまり、スクリプトの出番であると..。   具体的な使い方は次の投稿で..。 つづき http://blogs.technet.com/b/junichia/archive/2009/06/13/3253986.aspx

1

【Management】FSRM 記憶域レポートの上限値を変更するには

FSRMはご存知でしょうか? ファイル サーバー リソース マネージャ です。Windows Server 2003 R2 から実装された機能で、ディレクトリレベルのクオーター管理機能やファイルスクリーン機能などが実装されています。無償で使えるすごく便利な機能なのですが、案外知られていないんですねぇ。 よろしければ、以前ThinkITで書いた記事もご覧ください。 参考までに、Windows Server 2008 R2 では「分類管理(File Classification Infrastructure)」という機能が実装されます。これは、ファイルが持つ各種属性(サイズ、作成日時、所有者など)によってファイルを分類するという機能です。ファイルごとにフォルダを分けるのは当然ながら、独自のスクリプトを走らせることでドキュメントのプロビジョニングを柔軟に行うことができます。たとえば、最終アクセスが1年前のファイルをバックアップ用フォルダに移動するとか、サイズの大きなファイルの所有者にメールを出すとか。 残念ながら日本語RC版では実装されていないようなのですが、特定の文字列を含んだOfficeファイルやTIFFファイルに対してアクションを起こすなんてことも可能になるようです。たとえば、xxx-xxxx-xxxx というパターンに合致する文字列が含まれている場合には、個人情報(この場合は電話番号を想定)が含まれているとして自動的に暗号化するとか…いやぁ、夢が膨らみますね。 さて、本題です。 FSRM の「記憶域レポート」という機能を使用すると、ハードディスク内のファイルを調査して、さまざまなレポートを出力することができます。 100MB以上のファイル一覧 所有者が junichia のファイル一覧 などなど。 これまでスクリプト等で対応してきた方には非常に有用な機能でして、是非ともお使いいただきたいのですが、ちょっとだけハマりがちな点があります。それは、レポートに表示されるファイルの数です。 Windows Server 2008/2008R2(RC)共に、規定では 1000 が設定されており、たとえ100MB以上のファイルが10000個あっても、レポートには1000個しか表示されません。これはちょっと困りますよね。 この上限値はスクリプトで変更することが可能です。スクリプトのサンプルが MS の Storage Team の BLOG に掲載されています。 A script to increase FSRM report limit http://blogs.technet.com/filecab/pages/a-script-to-increase-fsrm-report-limit.aspx が、ちょっと使い勝手が悪いところと、2008 R2 の 分類管理機能に関する上限値が実装されていなかったので、修正したものをこちらに 掲載しました。拡張子を…

2

Script to change FSRM Strage Report Limit

拡張子VBSで保存してください。 ———————–  const scriptName = “fsrmReportLimit” DIM limitNameslimitNames = Array(“MaxFiles”, “MaxFileGroups”, “MaxFileOwners”, “MaxFilesPerFileGroup”, “MaxFilesPerFileOwner”, “MaxFilesPerDuplGroup”, “MaxDuplicateGroups”, “MaxQuotas”, “MaxFileScreenEvents”, “MaxPropertyValues”, “MaxFilesPerPropertyValue”) const optLimit = “/limit”const optValue = “/value” DIM objArgs, fsrm, strLimitName, strLimitValue set objArgs = wscript.Arguments if objArgs.count = 0 then    PrintUsage()    wscript.quitend if if objArgs.count = 1 then    if objArgs(0) = “/?” then        PrintUsage()       …

1

[まとめ]OpenLDAP+AD

【IDM】パスワード同期機能の有効活用 その1 ~ パスワード同期機能とは 【IDM】パスワード同期機能の有効活用 その2 ~ Windows Server 2008 でのパスワード同期機能のセットアップ 【IDM】パスワード同期機能の有効活用 その3 ~ unixUserPassword 属性から暗号化されたパスワードを取得する 【IDM】Active Directory から OpenLDAP への パスワードの同期 その1 ~ パスワードを SHA1 で暗号化 【IDM】Active Directory から OpenLDAP への パスワードの同期 その2 ~ ADSI でパスワードを同期する 【IDM】Active Directory から OpenLDAP への パスワードの同期 その3 ~(余談)Fedora 8 を Hyper-V上で動作させる   【IDM】Active Directory から OpenLDAP への パスワードの同期 その…

0

[まとめ]VBScript サンプル

2009/09/16 【Script】Windows Server 2008/R2 にインストールされている役割と機能の一覧表示   2009/08/24 RODC環境でドメインに参加させるスクリプト 2009/08/14 【Script】サンプルスクリプトはここにある! 【Management】FSRM 記憶域レポートの上限値を変更するには (FSRMサンプルスクリプト) 4/2 Windows Server 管理の自動化セミナー 基本編+応用編1 で使用したスクリプト 【IDM】MSMQ を使って確実なユーザー登録を行う その1 ~ MSMQ って何してくれるの? 【IDM】MSMQ を使って確実なユーザー登録を行う その2 ~ MSMQ のインストール(Windows Server 2008) 【IDM】MSMQ を使って確実なユーザー登録を行う その3 ~ MSMQ の環境設定 【IDM】MSMQ を使って確実なユーザー登録を行う その4 ~ メッセージの送信 【Script】英単語のボキャブラリーを増やすために考えてみました → 失敗 【Scripting】VBScript から PowerShell を使用する - ActiveXPoSh (ActiveX PowerShell) 【IDM】監査イベントを監視してユーザー管理を自動化するためのスクリプト(汎用版)…

0

【TFセミナー】5月30日(土)スクリプトセミナー参加者募集開始です

こんにちは。ここのところ技術的な投稿が無くてすみません。ひとまず告知させてください。 以前、5月30日のセミナーを以下の投稿で予告しておりました。 【勉強会】スクリプトの「超基本」を勉強したい方、アフター5に初台に来ませんか? http://blogs.technet.com/junichia/archive/2009/04/16/3227141.aspx ※もうしわけありません。今回の勉強会メンバー募集は終了しました。 ようやく募集が開始されましたのでご案内します。 5月30日 TFセミナー 「スクリプトを使用した Windows Server 管理の自動化」 4月2日に開催したセミナーとほぼ同様の内容ですが、アンケート結果を受けて内容と構成をリフレッシュする予定です。ただ、リフレッシュといっても、内容が大きく変わるわけではありません。 こんなことを申し上げるのもアレなのですが、ガッカリしていただくのも申し訳ありませんので書いておきますと、前回のセミナーに参加された方は、おそらくあまり新しい発見はありませんのでご注意ください。 前回、満席でお申し込みになれなかった皆さま、お早めにお申し込みください!

0