
ãã®èšäºã§ã¯ãPowershellã¹ã¯ãªããã䜿çšããŠWindowsããã¯ã¢ããã«ãã£ãŠäœæãããããã¯ã¢ãããã¡ã€ã«ã®ã¹ãã¬ãŒãžãç£èŠããããã¯ã¢ããã®é©ææ§ãšçæããŒã¿ã®ãµã€ãºãå¶åŸ¡ããå®è£ ã«ã€ããŠèª¬æããŸãã ãŸããPowershellããã°ã©ãã³ã°ã®äŸ¿å©ãªãã¯ããã¯ã®äŸã玹ä»ããããšãç®çãšããŠããŸãã
é·ã玹ä»
ã¹ã±ãžã¥ãŒã«ã«åºã¥ããŠåäœãã管çè ã«æã å°é£ãªèŸ²å Žã®ç¶æ³ãéç¥ããããã¯ã¢ãã管çã·ã¹ãã ããããšäŸ¿å©ã§ãã è¯ãããããŠäžèŠãããŸãé«äŸ¡ã§ã¯ãªãïŒè¯ãããã®çš®ã®åçšã·ã¹ãã ãšç¡æã·ã¹ãã ã®äž¡æ¹ã®éžæã¯ä»ãããªãåºãã ãã ãã皌åç¶æ ã§ã®ãã®ãããªã·ã¹ãã ã®å±éãšä¿å®ã®äž¡æ¹ã®é¢åãã®ã¬ãã«ãããã³ãã®ããŒããŠã§ã¢ã³ã¹ãã¯ãITã·ã¹ãã èªäœã®ããçšåºŠã®åççãªæå°ã®è€éããæå³ãããã®ããŒã¿ãããã¯ã¢ãããããããšã«ãªã£ãŠããŸãã ããšãã°ãå°èŠæš¡ãªãã£ã¹ã®ããŒãºã«å¯Ÿå¿ããBaculaã®å±éãçŽ12å°ã®Windowsã¯ãŒã¯ã¹ããŒã·ã§ã³ã®æ°ãããšãã°2å°ãŸãã¯3å°ã®ãµãŒããŒãããå ŽåãäŒæ¥ã®æçµè£œåã®ã³ã³ããã¹ãã§ã®éçç£çãªæéãšææãªãœãŒã¹ã®æ¯åºã§ãããããã®å¯äžã®ãã©ã¹ã®çµæã¢ã¯ã·ã§ã³ã¯ãã·ã¹ãã 管çè ãåŸãå®è·µçãªäœéšã§ãã åªããã¬ãã«ã®æ©èœãšæ¯èŒçé«ãèªåŸæ§ãæäŸããåæ£åããã¯ã¢ããã·ã¹ãã ãæ€èšãããšãVeeam Endpoint Backupã®ãããªåçšè£œåã«ã€ãªãããŸãã
æ®å¿µãªããããã®ãããªããã°ã©ã ã®ç¡æçã¯ãçµã¿èŸŒã¿ã®Windowsããã¯ã¢ããããåªããå©ç¹ãèªæ ¢ã§ããå Žåããããã®å©ç¹ã¯ãã¹ãŠã®äººã«é¢ä¿ããããã§ã¯ãªãããã¹ãŠã®å Žåã«åœãŠã¯ãŸãããã§ã¯ãªããåžžã«æããã§ã¯ãããŸããã ãããŠãççŽã«èšã£ãŠãã·ã£ããŠã³ããŒã¡ã«ããºã ã®ããã€ãã£ãããµããŒãã¯å€§ããªãã©ã¹ã§ãã äžèšã§èšãã°ããã¹ãŠã®éããã®Windowsããã¯ã¢ãããã®ãã®ã«ã€ãªãããšããæèŠãæã ãããŸãã å®éãããã¯ã¢ããã·ã¹ãã ã®éžæãšç·šæã®åé¡ã¯ãç¹å®ã®ã±ãŒã¹ããšã«çŽç²ã«åå¥ã®ãã®ã§ããã䞻芳çãªèŠå ã®èæ¯ã«å¯ŸããŠå¯ŸåŠãããŠããŸãã ãã ãããããã«ãããä¿¡é Œæ§ãé«ãå®å®ããã·ã¹ãã ãäœæããããã«ä¿å®ã容æã§ãã ããããèªåŸçãªããã¯ã¢ãããšãŒãžã§ã³ãã¯ãçµç¹ã®èŠæš¡ã®äžè¬çãªç£èŠæ©èœãèªãããšã¯ã§ããŸããã ããã§ãããã«éå±ããªãããã«ããã®çŽ¹ä»ãå®äºããæãæ¥ããšæããŸãã
ç§ãã¡ã®èå°è£ã¯æ¬¡ã®ãšããã§ããWindows7ããã³Windows 10ãå®è¡ããŠããã³ã³ãã¥ãŒã¿ãŒãå€æ°ãããWindows Server 2008ãå®è¡ããŠãããµãŒããŒããããŸããããŒã¿ããã¯ã¢ããã¹ãã¬ãŒãžãšããŠäœ¿çšããããã«è³Œå ¥ããNASããããŸãã ã¿ã¹ã¯ã¯ãè¿œå ã®äºç®ãªãã§ãè€éã§ã¯ãªããããªãä¿¡é Œã§ããçš®é¡ã®ããã¯ã¢ãããæäŸããããšã§ãã çµç¹ã«ã¯åžžå€ã®ã·ã¹ãã 管çè ãããªããããäžéšã®ãŠãŒã¶ãŒã®å©ããåããŠããŒãã¿ã€ã ã®ç®¡çè ããã¹ãŠã®ITåé¡ã解決ãããªã©ãç°¡åã§ãã Windowsããã¯ã¢ããã®ããŒã«ã䜿çšããããšã決å®ãããŸããããã®ããŒã«ã¯ãåã³ã³ãã¥ãŒã¿ãŒã®ããŒã«ã«ã¹ã±ãžã¥ãŒã«ã«åŸã£ãŠããããã¯ãŒã¯åãSA-NASãã®ãªã¢ãŒããã·ã³äžã®ãnetbackupããšããååã®å°çšãã©ã«ããŒã«ããŒã¿ãä¿åããŸãã ããã«ããã®ãœãªã¥ãŒã·ã§ã³ã¯ååã«å®å®ããŠãããåã³ã³ãã¥ãŒã¿ãŒã¯ããã¯ã¢ããã«é¢ããã¬ããŒããã·ã¹ãã 管çè ã®ã¡ãŒã«ã«å®æçã«éä¿¡ããŸãïŒã¹ã¯ãªããã«ãã£ãŠã·ã¹ãã ãã°ããèªã¿åãããŸãïŒã ãã ããWindowsããã¯ã¢ããã¯å¯Ÿè©±å以å€ã®æ¹æ³ã§ãã®æ å ±ãå ±æããå Žæããªããããäœæãããã¢ãŒã«ã€ãã®ããªã¥ãŒã ãšã鮮床ããåæããåé¡ã¯æªè§£æ±ºã®ãŸãŸã§ãã ã·ã¹ãã 管çè ã¯è¢ããŸãããå¥ã®ã¹ã¯ãªããã®äœæãéå§ããŸããããã®ã¹ã¯ãªããã§ã¯ããŸãWindowsããã¯ã¢ããã§äœæãããããã¯ã¢ããã³ããŒã®ããŒã¿æ§é ãæŽçããå¿ èŠããããŸããã ã ãã...
Windowsããã¯ã¢ãããäœæãããã®ãšãã®æ§ææ¹æ³
ãã®è³ªåã«çããã«ã¯ãå®å šã«ãªãããµã¹ã¿ã€ã«ã§ãå ·äœçã«ã©ãããæå³ã§ããïŒããšãã質åãããå¿ èŠããããŸããWindowsããã¯ã¢ããã§ã¯ããåãã®ãšãããã³ã³ãã¥ãŒã¿ãŒãã¡ã€ã«ã·ã¹ãã ã®éžæããèŠçŽ ã®ããã¯ã¢ããã³ããŒãäœæã§ããŸãã ãã¡ã€ã«ã¢ãŒã«ã€ãïŒãã¡ã€ã«ããã¯ã¢ããïŒãããã³ïŒbïŒãã£ã¹ã¯ããªã¥ãŒã ã®ã€ã¡ãŒãžïŒã€ã¡ãŒãžããã¯ã¢ããïŒã ã³ã³ãããŒã«ããã«ã®å¯Ÿå¿ããã¢ãã¬ããã䜿çšããŠæ§æãããšãã«ãç¹å®ã®ã³ã³ãã¥ãŒã¿ãŒã®ããã¯ã¢ããã®çš®é¡ãéžæããŸãããåãã®ããã«ãç¹å®ã®ãã©ã«ããŒãšãã¡ã€ã«ã®ã¿ãã¢ãŒã«ã€ãããæ¹æ³ãæå®ããéžæãããã£ã¹ã¯ããªã¥ãŒã ã®ã€ã¡ãŒãžãäœæããããã2ã€ã®æ¹æ³ãçµã¿åãããŸãã èšäºã®ãããã¯ããé¢ããŠããã®æäœã®èª¬æã«å ¥ãã®ã¯ç°¡åãªããšã§ã¯ãããŸããã詳现ã«ã€ããŠã¯ãé¢é£ããããã¥ã¡ã³ããšã€ã³ã¿ãŒãããæ€çŽ¢ãšã³ãžã³ã«èªè ãéã£ãŠãã ããã Windows Backupã®ããŒã¿æ§é ã«é¢ããç§èªèº«ã®ç 究ããã®ããŒã¿ãåŒçšããŸãããã¡ãã·ã§ããã«ãªããªãšã³ãžãã¢ãªã³ã°ããšããèšèã¯ãã¿ã¹ã¯ãæ¯èŒçåçŽã§ããããã«æ§ãããšåŒã¶ããšãã§ããŸãã ãŸãããã¡ã€ã«ã·ã¹ãã ãã£ã¬ã¯ããªã®ããã¹ãã®åŸåã§ããã©ã«ãããšããçšèªã䜿çšããããšã«ã泚æããŠãã ããããã®ãããWindowsããã¯ã¢ãããã£ã¬ã¯ããªãã¡ã€ã«ã«é¢é£ããŠã®ã¿äœ¿çšãããããã£ã¬ã¯ããªããšããçšèªãšæ··åããªãããã«ããŸãã
ã¿ãŒã²ããã¡ãã£ã¢äžã®2ã€ã®ããã¯ã¢ããã¢ãŒãã®ããããã§Windowsããã¯ã¢ããã«ãã£ãŠäœæãããããŒã¿ã»ããã¯ãæ§é ãç°ãªããŸãã

åã³ã³ãã¥ãŒã¿ãŒã®åã ã®ãã©ã«ããŒã«ã¯ãWindowsããã¯ã¢ãããæ©èœããããã2çªç®ã®éå±€ã¬ãã«ïŒã¢ãŒã«ã€ãã¬ãã«ïŒã®ãµããã©ã«ããŒãã ããã¯ã¢ããã»ãã<æ¥ä»> <æé>ãã¿ã€ãã®ååã§è¡šç€ºãããŸããåååã«ã¯1ã€ã®ã¢ãŒã«ã€ããå«ãŸããŸããããã«åºã¥ããŠãå¢åããã¯ã¢ããã ãŸããåã¢ãŒã«ã€ãã¬ãã«ãã©ã«ããŒã«ã¯ã ãCatalogsããšããååã®ãµããã©ã«ããŒãå«ãŸããŠããŸãããã®ãã©ã«ããŒã«ã¯ã ãGlobalCatalog.wbcatããšããååã®ãã¡ã€ã«ãå«ãŸããŠããŸãïŒãã®ã¢ãŒã«ã€ãã®ãã£ã¬ã¯ããªãå«ãŸããŠããŸãïŒã
ãã®ãã¡ã€ã«ã¯ãããŒã¿æ§é ãšãã®ã¹ããŒã¿ã¹ã®åæã«éåžžã«åœ¹ç«ã¡ãŸããCatalogsãã©ã«ããŒã«ååšããããšã¯ããŸãããã®ãã©ã«ããŒãšãã®è¿é£ãã¢ãŒã«ã€ãã¬ãã«ïŒããªã¥ãŒã ã¬ãã«ïŒå ã«ããã次ã«åææçµå€æŽã®æå»ã«ããããã®ã¢ãŒã«ã€ããæŽæ°ããæåŸã®ããã¯ã¢ããæäœããã€å®è¡ãããããç¥ãããšãã§ããŸãã
æåã®å®å šã³ããŒãšåŸç¶ã®å¢åã³ããŒã®äž¡æ¹ãã ãBackup Files <date> <time>ããšãã圢åŒã®ååã®ããªã¥ãŒã ã¬ãã«ã®åå¥ã®ãµããã©ã«ããŒã«ãããŸãã ã¢ãŒã«ã€ãã¬ãã«ãšåæ§ã«ãããªã¥ãŒã ã¬ãã«ã®åãã©ã«ããŒã«ã¯ãµããã©ã«ããŒãCatalogsããå«ãŸããŸãããã¢ãŒã«ã€ãã¬ãã«ã®ååãšã¯ç°ãªããç¹å®ã®ã¢ãŒã«ã€ãããªã¥ãŒã ã®ãã£ã¬ã¯ããªãæ§æããæ¡åŒµåã.wbcatãããã³ã.wbverifyãã®ãã¡ã€ã«ãããªãå«ãŸããŸãã ã ãã«ã¿ãã°ããµããã©ã«ããŒã«å ããŠããã®ã¬ãã«ã®åãã©ã«ããŒã«ã¯ãç¹å®ã®ããªã¥ãŒã ããã®ããŒã¿ããŸãšããŠå«ãä»»æã®æ°ã®ZIPã¢ãŒã«ã€ãã®ã¿ãå«ãŸããŸãã ãã¹ãŠãéåžžã«ã·ã³ãã«ã§ãçŽ æŽãããããšã§ããã極端ãªå ŽåãZIPã¢ãŒã«ã€ãã解åããã ãã§ããŒã¿ãæåã§æœåºã§ããŸãã
æ§æããå®è¡ãããŠããWindowsããã¯ã¢ããã¯ãããã³ã³ãããªãªãŒã¹ãããç³ãšåãããã«åœ±é¿ãåããå¯èœæ§ããããããå¢åããªã¥ãŒã ã§çŸåšã®ã¢ãŒã«ã€ãã®è¿œå ãåæ¢ããæ°ããããªã¥ãŒã ãåæåãã決å®ã¯ããã®ããã°ã©ã ã®ã³ãŒãã®å¥¥æ·±ãã§è¡ãããä»ã®äººã«ã¯ç¥ãããªãã¢ãŒã«ã€ãã¬ãã«ã®æ°ãããã©ã«ãã®åœ¢åŒã ãã®èšäºã®èè ã¯ãããã°ã©ã ã«ãã£ãŠãã®ãããªæ±ºå®ãäžãããã®ã¢ã«ãŽãªãºã ãèŠã€ããããšãã§ããŸããã§ããããè«ççïŒãããŠçµéšã®æèã§æ£åœåãããïŒã¯ãå¢åããªã¥ãŒã ã®ãã§ãŒã³ãç¶ç¶ã§ããå¯èœæ§ãšæåŸã®ããã¯ã¢ããæäœã®æåãšã®é¢ä¿ã§ããããã§ãã ããã«ãWindowsããã¯ã¢ããã¯æ°ããã¢ãŒã«ã€ããäœæããããããã®å身ãå®å šã«å¿ããã·ã¹ãã 管çè ã®å®å šãªè£éã«ãã®éåœãéãã«å§ããŠããŸãã ãã¡ãããããã¯ã管çè ãå€ãã¢ãŒã«ã€ãã®ãã©ã«ããŒãäœããã®æ¹æ³ã§åé€ãããŸã§ãããã«ç©ºããã£ã¹ã¯å®¹éã«åœ±é¿ããŸãã ãããããããã«ããåããã¡ã€ã«ã®è€æ°ã®ããã¯ã¢ãããä¿èšŒãããŸãïŒãšã¯ã¹ãããŒã©ãŒã®ãã¡ã€ã«ããããã£ãŠã£ã³ããŠã®[以åã®ããŒãžã§ã³]ã¿ããåç §ïŒã ãŸããããã¯äœã§ãã-Windowsããã¯ã¢ãã-ããã¯ããã§ãïŒäºå®äžç¡æã®è£œåããå¶éããªãããšãæåŸ ããã®ã¯é£ããã§ãã
ãã¡ã€ã«ã¿ã€ãã¢ãŒã«ã€ãã®ã¹ãã¬ãŒãžæ§é ã®åé¡ã«ååãªæ確æ§ãå°å ¥ãããŠãããšä»®å®ããŠããã£ã¹ã¯ããªã¥ãŒã ã®ã€ã¡ãŒãžã«ç®ãåããŸãã ãã®å Žåã®ãã£ã¬ã¯ããªæ§é ïŒäžå³ãåç §ïŒã¯ãWindowsããã¯ã¢ãããã¡ã€ã«ã¢ãŒã«ã€ãã®ãã£ã¬ã¯ããªæ§é ãšéåžžã«äŒŒãŠããŸããã倧ããªéãããããŸãã

- ãã©ã«ããŒéå±€ã®æåã®ã¬ãã«ã¯ããã£ã¹ã¯ã¢ãŒãã§ããã¯ã¢ãããããšãã«ã¿ãŒã²ãããã©ã«ããŒïŒãnetbackupãïŒã«äœæããããWindowsImageBackupããã©ã«ããŒã«ãã£ãŠåœ¢æãããŸãã åã ã®ã³ã³ãã¥ãŒã¿ãŒã®ãµããã©ã«ããŒã¯ã ãWindowsImageBackupãå ã«äœæãããã³ã³ãã¥ãŒã¿ãŒã®ã¬ãã«ã圢æããŸãã
- åã³ã³ãã¥ãŒã¿ãŒã®ãµããã©ã«ããŒå ïŒã¢ãŒã«ã€ãã¬ãã«ïŒã«ã¯ã3ã€ã®ãã©ã«ããŒã®ã¿ããããŸãã ãããã®2 ã€ã«ã¯éçãªååããããŸãïŒ ãCatalogsããšãSPPMetadataCacheã ãããã³3çªç®ã®ã¢ãŒã«ã€ããã©ã«ããŒã¯ã ãBackup <date> <time>ããšãã圢åŒã®ååãæã£ãŠããŸãã
åã³ã³ãã¥ãŒã¿ãŒã¬ãã«ã®ãã©ã«ããŒã«ã¯ãäžèšã®3ã€ã®ãµããã©ã«ããŒã«å ããŠãæ¡åŒµåã®ãªãMediaIdãµãŒãã¹ãã¡ã€ã«ãåžžã«å«ãŸããŠããŸãã äžæ¹ãCatalogãµããã©ã«ããŒã«ã¯ãåžžã«GlobalCatalogãšBackupGlobalCatalogã® 2ã€ã®ãã¡ã€ã«ãå«ãŸããŠããŸãã
ãã®ã³ã³ãã¥ãŒã¿ãŒããã£ã¹ã¯ããªã¥ãŒã ã€ã¡ãŒãžã¢ãŒãã§ããã¯ã¢ããããããã³ã«ãã¢ãŒã«ã€ããã©ã«ããŒïŒååã¯ãBackup <date> <time>ã ïŒã®ååãå€æŽãããŸãã ããªã¥ãŒã ã®å¢åã§ã¯ãªãå®å šãªã¢ãŒã«ã€ããå®è¡ããããã³ã«ãããã¯è«ççã§ãã ãããããã®ã¢ãŒãã§ã¯å€ãã¢ãŒã«ã€ããããã«èªåçã«åé€ãããã¢ãŒã«ã€ããã¡ã€ã«ã¢ãŒãã®å€ãã¢ãŒã«ã€ããåãå Žæã«ããç¶ããçç±ã¯è¬ã®ãŸãŸã§ãã ãããã«ããããã®ãã©ã«ããŒã«ã¯VHDãã¡ã€ã«ïŒä»®æ³ãã£ã¹ã¯ã€ã¡ãŒãžïŒã®ã»ãããšè£å©XMLãã¡ã€ã«ã®ã°ã«ãŒããå«ãŸããŸããããã®äžã§â BackupSpecs.xmlâã匷調衚瀺ããŸãã ã©ããããç¹å®ã®ã¢ãŒã«ã€ãã®ãã©ã¡ãŒã¿ãä¿åãã圹å²ãæããããã£ã¹ã¯ããªã¥ãŒã ã®ã€ã¡ãŒãžãã¡ã€ã«ãå®éã«äœæããåŸã«åœ¢æããããããã¢ãŒã«ã€ãæäœã®å®äºæéãå€æã§ããŸãã
å®éãWindowsããã¯ã¢ããã®ã¢ãŒã«ã€ãã¹ãã¬ãŒãžã®æ§é ã«é¢ããéèŠãªæ å ±ãšèŠãªãããšãã§ããã®ã¯ããã ãã§ãã Windowsã¯äžéšã®ãã©ã«ããŒã«åœ¢æããç¿æ £ããããšããDesktop.iniãã¡ã€ã«ãèŠãæå³ããããŸããããããã¯ç£èŠã«é¢äžããŠããªãããã§ãã
ç§ãã¡ã®ã¢ã«ãŽãªãºã
èªåçã«åä¿¡ãããæ å ±ã決å®ããŸãã 次ã®äžé£ã®å±æ§ãšããŸãã
- Windowsããã¯ã¢ããã¢ãŒã«ã€ããååšãããã·ã³ãšãã®çš®é¡ã®ãªã¹ãã
- ææ°ã®ã¢ãŒã«ã€ããæŽæ°ããæ¥ä»/æå»ã
- ææ°ã®ã¢ãŒã«ã€ãã®ãµã€ãºã
- ææ°ã®ã¢ãŒã«ã€ãã®ãã©ã«ãã®åå/ãã¹ã
ãã¡ã€ã«ã¢ãŒãã§äœæãããWindowsããã¯ã¢ããã¢ãŒã«ã€ãã®å Žåãæ å ±ãåéããããã®ã¢ã«ãŽãªãºã ã¯æ¬¡ã®ããã«ãªããŸãã
- ã¿ãŒã²ãããã©ã«ããŒã®æåã®ãã¹ãã¬ãã«ã®ãµããã©ã«ããŒãé çªã«æ€çŽ¢ããåã
ã®ãã·ã³ã®ã¢ãŒã«ã€ãã®ã«ãŒããã©ã«ããŒã®ãã©ã°ã§ãããMediaID.binããã¡ã€ã«ïŒä»¥äžãç°¡æœã«ããããã«KPAMïŒãå«ããµããã©ã«ããŒãç¹å®ããŸãã
- èå¥ãããåKPAMã§ãGlobalCatalog.wbcatãã¡ã€ã«ãå«ãCatalogsãã©ã«ããŒã®ãµããã©ã«ããŒå ã®ååšãåæããŸãã
- åã®æé ã§èŠã€ãã£ãGlobalCatalog.wbcatãã¡ã€ã«ã®äžããææ°ã®ãã®ãéžæãããã®èŠªãã©ã«ããŒãå«ããã©ã«ããŒãææ°ã®ãã¡ã€ã«ã¢ãŒãã¢ãŒã«ã€ãïŒä»¥äžãCAAãšåŒã³ãŸãïŒã®ãªããžããªãŒãšããŠåãå ¥ããŸãã ãã®ãã¡ã€ã«ã®æåŸã®å€æŽã®æéãããã®ã¢ãŒã«ã€ãã®æåŸã®ããªã¥ãŒã ã®åœ¢æãå®äºããæéãšã¿ãªããŸãã
- CAAãã©ã«ããŒã®ãµããã©ã«ããŒå ã®ZIPãã¡ã€ã«ã®ãµã€ãºãèŠçŽãããã®å€ãCAAã®ãµã€ãºãšããŠäœ¿çšããŸãã
- èç©ãããæ å ±ã®ãŠãŒã¶ãŒãã¥ãŒãäœæããŠè¿ããŸããååïŒãã¹ïŒããµã€ãºãããã³CPAMãªã¹ãããåãã·ã³ã®CAAãäœæããæéã§ãã
ãã£ã¹ã¯ããªã¥ãŒã ã¢ãŒãã®ã¢ãŒã«ã€ãã®å ŽåãããŒã¿åéã¢ã«ãŽãªãºã ã¯æ¬¡ã®ããã«ãªããŸãã
- ã¿ãŒã²ãããã©ã«ããŒã®ãã¹ãã®æåã®ã¬ãã«ã®ãµããã©ã«ããŒãé 次æ€çŽ¢ãã ãMediaIDããã¡ã€ã«ãå«ããµããã©ã«ããŒãç¹å®ããŸããããã¯å®éã«ã¯åã ã®ãã·ã³ã®ã¢ãŒã«ã€ãã®ã«ãŒããã©ã«ããŒã®ãã©ã°ã§ãïŒä»¥äžãç°¡æœã«ããããã«KPAMïŒã
- åCPAMã§ã¯ã ãBackupSpecs.xmlããšããååã®ãµããã©ã«ããŒå ã®ãã¡ã€ã«ã®ååšãåæããŸãã 念ã®ããã1ã€ã§ã¯ãªãè€æ°ã®ã¢ãŒã«ã€ããã©ã«ããŒãååšããå¯èœæ§ããé²ããŸãã
- åã®æé ã§èŠã€ãã£ãBackupSpecs.xmlãã¡ã€ã«ã®äžããææ°ã®ãã®ãéžæãããããå«ããã©ã«ããŒããã£ã¹ã¯ããªã¥ãŒã ã¢ãŒãã®ææ°ã®ã¢ãŒã«ã€ãïŒä»¥é-CAAïŒã®ãªããžããªãšããŠåãå ¥ããŸãã ãã®ãã¡ã€ã«ã®æåŸã®å€æŽã®æéãããã®ã¢ãŒã«ã€ãã®åœ¢æã®å®äºæéãšã¿ãªããŸãã
- CAAãã©ã«ããŒã®ãµããã©ã«ããŒã«ããVHDãã¡ã€ã«ã®ãµã€ãºãèŠçŽãããã®å€ãCAAã®ãµã€ãºãšããŠäœ¿çšããŸãã
- èç©ãããæ å ±ã®ãŠãŒã¶ãŒãã¥ãŒãäœæããŠè¿ããŸããååïŒãã¹ïŒããµã€ãºãããã³CPAMãªã¹ãããåãã·ã³ã®CAAãäœæããæéã§ãã
ãããŸã§ã®ãšããããã¹ãŠã¯å®è£ ãå«ããŠååã«ã·ã³ãã«ã«æããŸãã ãããŠPowershellã¹ã¯ãªããã®åœ¢åŒã§ãå§ããŸãããã
Powershellã¹ã¯ãªãã
ãã®ã»ã¯ã·ã§ã³ã§ã¯ãã¹ã¯ãªããã®éèŠãªèŠçŽ ãæ€èšããŸããå®è£ ã®è©³çŽ°ãçç¥ãããŠããããã æ·»ä»ã®ãœãŒã¹ã³ãŒããåç §ããããšãææ¡ããŸãã 次ã®ã³ãŒãäŸã®ãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ãŒã¹ã®ããã¹ãèŠçŽ ã¯ãã·ã¢èªã§ãããè±èªã§ã¹ã¯ãªããã«å®è£ ãããŠããŸã-è±èªç°å¢ã§äœ¿çšããããã«åçŽã«èšèšãããŠãããèšèªåºæºã«åŸã£ãŠã³ãŒãã®ããŒãžã§ã³ãã³ãŒãã£ã³ã°ããããããŸããããå®è£ ã¯å€èšèªå¯Ÿå¿ã§ããã®ãããªåçŽãªè£œåã®å Žåãã€ã³ã¿ãŒãã§ãŒã¹ã¯äžåçã«è€éã§ãã
ãã¡ã€ã«ã¢ãŒãã®ã¢ãŒã«ã€ãåŠç
ãŸããKPAMã®ãªã¹ããååŸããŸãã
function Get-MachineListFB ($WinBackupRoot) { $MachineRoots = @{} Get-ChildItem -Path $WinBackupRoot -Recurse -Depth 1 -File -Filter "MediaID.bin" | Where-Object {$_.Directory.FullName -ne $WinBackupRoot} | foreach { $MachineRoots[$_.Directory.Name]=$_.Directory.FullName } return $MachineRoots }
Get-MachineListFBé¢æ°ã¯1ã€ã®ãã©ã¡ãŒã¿ãŒãåããŸããWindowsããã¯ã¢ããã¢ãŒã«ã€ãã¹ãã¬ãŒãžã®ã«ãŒããã©ã«ããŒã®ãã«ããŒã ã§ããã ã芧ã®ãšãã ãã³ãŒãã«è€éãªãã®ã¯ãããŸããã Get-ChildItemã³ãã³ãã¬ããã¯ãæå®ããããã©ã«ããŒã«é¢ããŠåããã¹ãã¬ãã«å ã«ãããã¡ã€ã«èšè¿°åãªããžã§ã¯ããMediaID.binãã®ãªã¹ããçæããŸãã ãã®ãªã¹ãã¯Where-Objectã³ãã³ãã¬ããã«ãã€ãããããµããã©ã«ããŒå ã®æå®ããããã©ã«ããŒã®ã«ãŒãã®å€åŽã«ãããã¡ã€ã«ã®ã¿ã次ã®ã¹ããŒãžã«ã¹ãããããŸãïŒæãåºãããã«ãWindowsããã¯ã¢ããã¢ãŒã«ã€ãã¹ãã¬ãŒãžã®ã«ãŒããã©ã«ããŒã«ã¯ãMediaID.binããšãããã¡ã€ã«ãå«ãŸããŠããŸã" ïŒã 次ã«ãè¿ããããªããžã§ã¯ãã«ã¯ãèŠã€ãã£ããã¡ã€ã«ãå«ããã©ã«ããŒã®ååãšå®å šãã¹ãå ¥åãããŸãã
Get-ChildItemã³ãã³ãã¬ããã䜿çšããŠãæå®ãããåºæºã«åŸã£ãŠãã¡ã€ã«ãšãã©ã«ããŒãéžæããããšã«ã€ããŠãçºèšããããšæããŸãã ã芧ã®ãšãããã³ãã³ãã¬ããã®ååã®åºæºã¯ã-Filterããã©ã¡ãŒã¿ãŒã®åœ¢åŒã§è¡šãããŸãã åæã«ã Get-ChildItemã«ã¯ãåãæ©èœãå®è¡ã§ããå¥ã®ãã©ã¡ãŒã¿ãŒ"-Include"ããããŸãã éãã¯äœã§ããïŒéžæåºæºã説æããæ¹æ³ãéžæããæ¹æ³ã¯ïŒ "-Filter"ãã©ã¡ãŒã¿ãŒã䜿çšããå Žåã Powershellã¯ç¹å®ã®ããŒã¿ã»ããïŒãã®å Žåã¯ãã£ã¹ã¯ãã¡ã€ã«ã·ã¹ãã ïŒãžã®ã¢ã¯ã»ã¹ãæäŸããé©åãªãããã€ããŒã¡ã«ããºã ã䜿çšããŠéžæãå®è¡ããŸãã ãŸãã¯ãPowershellã«ã¯ç¬èªã®çµã¿èŸŒã¿éžæã¡ã«ããºã ãããã ã-Includeããã©ã¡ãŒã¿ãŒã«ãã£ãŠæå¹ã«ãªããŸãã ãŠãŒã¶ãŒã«ãšã£ãŠã®éãã¯ã次ã®ãšããã§ãã
- ããã©ãŒãã³ã¹ïŒãããã€ããŒã¡ã«ããºã ã䜿çšããéžæã¯ãPSç¬èªã®æ©èœãããéããªãå¯èœæ§ããããŸãïŒãã®å Žåã¯ç¢ºãã§ãïŒã
- æ©èœïŒ ã-Includeããã©ã¡ãŒã¿ãŒãšã-Recurseããã©ã¡ãŒã¿ãŒãäžç·ã«äœ¿çšãããšãéå±€ã®æ·±ãã®å¶éã¯ã-Depthããã©ã¡ãŒã¿ãŒãšé£åããŸããïŒå°ãªããšã-ãã£ã¹ã¯ãã¡ã€ã«ã·ã¹ãã ã«é©çšãããPowershellããŒãžã§ã³5ã§ã¯ãããã¯å®éšçã«ç¢ºç«ãããŸããïŒã
次ã«ãCAAæ€åºæ©èœãå®è£ ããŸãã
function Get-LastFileBackupSet ($MachineRoot) { $objLB = $null try { $LastWbcat = Get-ChildItem -Path $MachineRoot -Recurse -Depth 2 ` -File -Filter "GlobalCatalog.wbcat" | Where-Object {$_.Directory.Name -eq "Catalogs"} | Sort-Object LastWriteTime | Select-Object -Last 1 LastWriteTime, Directory, ` @{Name="Machine";Expression={$_.Directory.Parent.Parent.Name.ToUpper()}}, ` @{Name="Path";Expression={$_.Directory.Parent.FullName}}, ` @{Name="Name";Expression={$_.Directory.Parent.Name}} $ZIPFiles = ( Get-ChildItem $LastWbcat.Directory.Parent.FullName -Recurse -Depth 2 ` -File -Filter "*.zip" | Select-Object Length | Measure-Object -Property Length -Sum ) } finally { if (($ZIPFiles) -and ($LastWbcat)) { $objLB = @{ Machine = $LastWbcat.Machine Path = $LastWbcat.Path Name = $LastWbcat.Name Updated = $LastWbcat.LastWriteTime Size = $ZIPFiles.Sum } } } return $objLB }
Powershellã®æ°èŠãŠãŒã¶ãŒã«èª¬æããŸããããPSã¹ã¯ãªããèšèªã®æ¬¡ã®è¡ã§åŒãç¶ç¶ããããã®æšæºæåã¯ãããã€ãã®è¡ã®æ«å°Ÿã«ããåäžã®ããã¯ãã£ãã¯ã§ãã ããã§ã¯ãèšäºå ã®ã³ãŒããµã³ãã«ã®èªã¿ããããæ¹åããããã«ã®ã¿äœ¿çšãããŸãã
é¢æ°ã®ããžãã¯ãæ確ã«ããŸãããã 圌女ã®åŒã³åºããã©ã¡ãŒã¿ãŒã¯ãåã®ãã®ãšåæ§ã«ã1ã€ã ãã§ãïŒåäžã®ãã·ã³ã®ãã¡ã€ã«ã¢ãŒãã¢ãŒã«ã€ãã®ã«ãŒããã©ã«ããŒã®ãã«ããŒã ïŒ äºåã«Get-MachineListFBé¢æ°ã䜿çšããŠãã¢ãŒã«ã€ããèŠã€ãã£ããã¹ãŠã®ãã·ã³ã®ãããã®ãã¹ã決å®ããŸãïŒã Get-ChildItemåŒã³åºãã¯ãæå®ããããã©ã«ããŒã®ãµããã©ã«ããŒã«ãããGlobalCatalog.wbcatããšããååã®èŠã€ãã£ããã¡ã€ã«ã®èª¬æãå«ããªããžã§ã¯ãã®ãªã¹ããè¿ããŸãã ãã®ãªã¹ãã¯Where-Objectã³ãã³ãã¬ããã®åŠçã«æž¡ãããèŠã€ãã£ããã¡ã€ã«ã®äžããã芪ãã©ã«ããŒã®ååãæå®ããããã¡ã€ã«ïŒ "Catalogs" ïŒãšäžèŽãããã¡ã€ã«ã®ã¿ãéžæããŸãã ãã€ãã©ã€ã³ã®æ¬¡ã®ã¹ãããã¯ãæåŸã®ãã¡ã€ã«å€æŽã®ã¿ã€ã ã¹ã¿ã³ãã®æé ã§ãªã¹ãã®æ®ãã䞊ã¹æ¿ããSort-Objectã³ãã³ãã¬ããã§ããSelect-Objectã³ãã³ãã¬ããã¯ãé åºä»ãããããªã¹ãã®æåŸã®èŠçŽ ãéžæãããã·ã³ãªãœãŒã¹ãç¯çŽããããã«è¿ããããªããžã§ã¯ãã®å±æ§ã»ãããLastWriteTimeããã³Directoryã«çµã蟌ã¿ãŸãã
å¯è©ã®ãåçŽãªãçµäºã䌎ãã®ã¯ããã ãã§ãããã®åŸã Select-Objectã³ãã³ãã¬ããã¯ãè¿ãããåãªããžã§ã¯ãã«è¿œå ã®ãŠãŒã¶ãŒå±æ§ãè¿œå ããŸãïŒPSã§ã¯ãã®ãããªããšããã®å Žã§è¡ãããšãã§ããŸãïŒã ãã®çµæãæ»ãå€ã¯ããœãŒã¹èŠçŽ ã®2ã€ã®ããã«ãã€ã³ã Directory ããããã£ãšLastWriteTimeããããã£ã§æ§æãããå±æ§ãšãåçã«èšç®ããããŠãŒã¶ãŒå®çŸ©ããããã£Machine ã Path ã Nameãå®çŸ©ãããªããžã§ã¯ãïŒããã·ã¥ããŒãã«åœ¢åŒïŒã§ãã ãã®çš®é¡ã®ãŠãŒã¶ãŒå±æ§ãå®çŸ©ããããã®åœ¢åŒã¯æ¬¡ã®ãšããã§ãã
@{Name = "<_>"; Expression = {$_.<>}}
ããããã£ã®å€ãèšç®ããåŒã¯ãåŠçäžã®ããŒã¿ã«çŽæ¥é¢é£ããªãä»»æã®ãã®ïŒäŸïŒ Get-Date ïŒããŸãã¯ãã®é¢æ°ã®ã³ãŒãã§è¡ãããŠããããã«ã $ _ iteratorèŠçŽ ã®ããããã£ãšã¡ãœãããå«ããããšãã§ããŸãã é¢æ°ã³ãŒãã®äŸãããããããã«ããã®çš®ã®æ§é ã¯Select-Objectã³ãã³ãã¬ããã«ãã£ãŠè¿ããããã©ã¡ãŒã¿ãŒã®ãªã¹ãã«åçŽã«ãªã¹ããããŠããŸãã
èšç®ã®çµæãè€åãªããžã§ã¯ãã®åœ¢åŒã§è¿ãããšã¯ãåããœãŒã¹ããŒã¿ã»ããã®ããŸããŸãªãã©ã¡ãŒã¿ãŒã«å¯ŸããŠåå¥ã®èšç®ãè¡ãå¿ èŠããªããã䟿å©ã§ãã ç¹ã«ã調ã¹ãã°ããã®é¢æ°ã¯ãCAAãã©ã«ããŒã®ååã ãã§ãªãããã®ãã«ãã¹ããã®äžã®ã¢ãŒã«ã€ãã®æçµæŽæ°ã®ã¿ã€ã ã¹ã¿ã³ããããã³ãã®ãµã€ãºã瀺ããŸãã
ããã«é¢æ°ããã¹ãã«æ²¿ã£ãŠãGlobalCatalog.wbcatãã¡ã€ã«ã®èŠªãã©ã«ããŒãå«ããã©ã«ããŒã®1ã¬ãã«äžã®ãã©ã«ããŒã®ãã¹ãŠã®ãµããã©ã«ããŒã§ãZIPãæ¡åŒµåãæã€ãã¡ã€ã«ãéžæããããšã«ããããã®ã¢ãŒã«ã€ããæ§æããZIPãã¡ã€ã«ã®åèšãµã€ãºãèšç®ããŸãããã®ã¢ãŒã«ã€ãã®ãã©ã«ãå ïŒã Get-ChildItemåŒã³åºãã¯ã Select-Objectã³ãã³ãã¬ããã«æž¡ããããã¡ã€ã«ã®ãªã¹ããè¿ããŸããSelect-Objectã³ãã³ãã¬ããã¯ãããŒã¿ããLengthããããã£ã®ã¿ãæœåºãïŒãã¡ã€ã«ã·ã¹ãã ãªããžã§ã¯ãã®ãµã€ãºã·ããã ã§ãïŒãçµæã®éžæçµæãMeasure-Objectã³ãã³ãã¬ããã«æž¡ããŠããµã€ãºãéèšããŸãã
æ¡ä»¶ã®æ§ç¯
($ZIPFiles) -and ($LastWbcat)
ã¯ããšã©ãŒç¶æ ã®åºæ¬çãªæ€åºãç®çãšããŠãå€æ°$ ZIPFilesããã³$ LastWbcatã®ååšã確èªããã®ã«åœ¹ç«ã¡ãŸãã ããã¯æšæºçãªPowershellã®ããªãã¯ã§ãïŒãããã®å€æ°ãäºåã«åæåããŠããªãããããã¹ãæã«åæåãããŠããªãå€æ°ã®ããããã蚱容å€ãæããªãå Žåããã¹ãã¯è«ççãªæå³ã§è«ççãªçµæãè¿ããŸãã ã€ãŸã
If Not IsNull() âŠ
Visual Basicã®ã³ã³ã¹ãã©ã¯ãã®ãããªãã®ã
ããã«-ããããæãããªããã«-ãªããžã§ã¯ãã®ãã£ãŒã«ãïŒãããã·ã¥ããŒãã«ããªã©ïŒãžã®èšç®å€ã®å²ãåœãŠ$ objLBãå®è¡ãããé¢æ°ã«ãã£ãŠè¿ãããŸãã
ç¹å®ã®ãã·ã³ã®CAAãã©ã¡ãŒã¿ã決å®ãããšãå®éã«èšç®ã¢ã«ãŽãªãºã ãå®äºããŸããããã¯ãç®çã®CAAã«ã€ããŠãã¹ãŠãããã£ãŠããããã®ããã¹ãŠããGet-LastFileBackupSeté¢æ°ã«ãã£ãŠè¿ããããªããžã§ã¯ãã®ãã£ãŒã«ãã«æžã蟌ãŸããããã§ãïŒ
- ãã·ã³ -ã³ã³ãã¥ãŒã¿ãŒã®ãããã¯ãŒã¯åã
- ãã¹ -ãã®ã³ã³ãã¥ãŒã¿ãŒã®CAAãã©ã«ããŒã®å®å šãªãã¹ã
- åå -CAAãã©ã«ããŒã®ååïŒèå¥å¯èœãªå€ããããã¢ãŒã«ã€ããèå¥ã§ããŸãïŒã
- æŽæ° -æçµæŽæ°æ¥ã
- ãµã€ãº -ã¢ãŒã«ã€ãã®åèšãµã€ãºã
åãåã£ãæ å ±ã®è¡šç€ºãå®è£ ããããšã¯æ®ã£ãŠããŸãã ã·ã¹ãã 管çè ã¯æ¶è²»è ã§ãããããèŠèŠçã¹ã¿ã€ã«ã®æ¹è¯ã¯è¡ãããåºåããŒã¿ã®2ã€ã®è¡šçŸããã¬ãŒã³ããã¹ããšè¡šåœ¢åŒã®HTMLãäœæããŸãã å圢åŒã«ã€ããŠã2ã€ã®é¢æ°ãäœæããŸãã1ã€ç®ã¯åã ã®ã³ã³ãã¥ãŒã¿ãŒã®ããŒã¿è¡ãçæãã2ã€ç®ã¯ãã®ãããªè¡ããèŠåºããæã€ããŒãã«ãåéããŸãã å®éãã¹ã¯ãªããã³ãŒãã§ã¯éé ã§å®è¡ãããŸããPowershellãšã°ãŒã¯ãã£ããµãã·ã¹ãã ã¯ã€ã³ã¿ãŒããªã¿ãŒã§ãããããã¹ã¯ãªããã³ãŒãå ã®é¢æ°å®£èšã¯åŒã³åºãã®åã«è¡ãå¿ èŠããããPSã¯é¢æ°ãããã¿ã€ãã®äºå宣èšã®ã¡ã«ããºã ããµããŒãããŠããŸããã
function Get-LastFileBackupSetSummaryTXTRow ($MachineRoot) { $ret = "" $Now = Get-Date $LastBT = Get-LastFileBackupSet ($MachineRoot) if ($LastBT) { $ret = ": " + $LastBT.Machine + "; : " + $LastBT.Name + ` "; : " + ($Now - $LastBT.Updated).Days + " . (" + ` $LastBT.Updated + "); : " + ('{0:0} {1}' -f ($LastBT.Size/1024/1024), "") } else{ $ret = " " } return $ret } function Get-LastFileBackupDatesTXT ($WinBackupRoot) { $table=" :`r`n" $MachineRoots = Get-MachineListFB ($WinBackupRoot) foreach ($machine in $MachineRoots.Keys) { $line = Get-LastFileBackupSetSummaryTXTRow($MachineRoots[$machine]) $table+= -join($line, "`r`n") } return $table }
Get-LastFileBackupDatesTXTã³ã¬ã¯ã¿ãŒé¢æ°ã¯å®å šã«ç°¡åã§ããããããŒãæã€ããŒãã«ãå«ã段éã§ããã¹ãæååãäœæããã ãã§ãã ããŒãã«è¡ã¯Get-LastFileBackupSetSummaryTXTRowé¢æ°ã«ãã£ãŠçæããããã®ãæ¥çãã¯æååé£çµæŒç®åã-joinãã«ãã£ãŠå®è¡ãããŸãã æç®ã§ã¯ãããã¯ç°ãªã£ãŠåŒã°ããŠããŸãïŒã©ãã§-ãªãã¬ãŒã¿ã«ãã£ãŠããããŠã©ãã§-ã¡ãœããã«ãã£ãŠããããŠããã€ãã®æžãæ¹ããããŸãã ããã§ã¯ãåºåãæåãªãã§ããã©ã«ãã§é£çµãè¡ããããé¢æ°ã®ãããªãè¡šèšæ³ã䜿çšããŸãã 2çªç®ã®ãªãã©ã³ãã¯ãè¡æ«ã®Escæåãšãã£ãªããžãªã¿ãŒã³ïŒ "r"ããã³"n" ïŒã§æ§æãããæååå®æ°ã§ãã Windowsããã¹ããã¡ã€ã«ã®æšæºçãªè¡ã®æãè¿ãã
Get-LastFileBackupSetSummaryTXTRowé¢æ°ã¯ãCPAMãžã®ãã¹ãååŸãã察å¿ãããã·ã³ã®CAAã決å®ããŸãã ãã®å€ã¯è€åã§ãããããããããåã ã®ããŒã¿èŠçŽ ãæœåºãããããã«ããã¹ãã©ãã«ãä»ããŠãèªã¿åãå¯èœãªæååãåéããŸãã ããã§Powershellã¯ãæäœå¯Ÿè±¡ã®å€ã®ãªããžã§ã¯ãã®æ§è³ªã®åã³ã䜿çšããããšãã§ããŸãïŒãªããžã§ã¯ãã¿ã€ããæ¥ä»/æå»ãã®2ã€ã®å€ã®å·®ããªããžã§ã¯ãã§ãããæ¥æ°ã§ã®å€ã¯è¿œå ã®é¢æ°ã䜿çšããã«åçŽãªæžç®æŒç®åã«ãã£ãŠèšç®ãããŸã çµæãååŸãã枬å®åäœãæ確ã«ããã ãã§æžã¿ãŸããããã¯ãçµæã®ãªããžã§ã¯ãã®Daysããããã£ã瀺ãããšã§å®çŸãããŸããããã¯ãé¢å¿ã®ããæ¥ã ããã§ãã
ã¢ãŒã«ã€ããµã€ãºã®å€ãã¡ã¬ãã€ãåäœã§è¡šçŸããããã«ã次ã®æ§æã䜿çšãããŸããã
('{0:0} {1}' -f ($LastBT.Size/1024/1024), "")
ããã¯ãã©ãŒãããæŒç®åã§ãããå€ãã®ããã°ã©ãã³ã°èšèªã®ãã©ãŒãããæ©èœã«é¡äŒŒããŠããŸãã å€éšãã©ã±ããïŒèªã¿ãããããããã«ããã«æ®ãããŠããŸãïŒã®äžã«ã¯ããã©ãŒãããã®æååãæŒç®åèªäœïŒ "-f" ïŒãããã³çœ®æå€ã®ãªã¹ããé çªã«é 眮ãããŠããŸãã æžåŒã®è¡ã«ã¯ã2ã€ã®æžåŒæå®åãå«ãŸããŠããŸãïŒåæå®åã¯äžãã£ãã§å²ãŸããŠããŸãïŒã æžåŒæå®åã®éã«ã¹ããŒã¹ããããããå€éã®çµæã®è¡ã«ååšããŸãã ããããæŒç®åã®åŸã«ã2ã€ã®å€ãç¶ããŸãããµã€ãºãã¡ã¬ãã€ãåäœã§èšç®ããåŒãšã枬å®åäœã®æååã§ãã åºåã§ã¯ãã123 MBããšãã圢åŒã®æååå€ãååŸããŸãã Powershellã¯ãæå®ãããæ°å€åœ¢åŒã§ãæå®ããã圢åŒã«äžèŽããåã«æ°å€ããã£ã¹ãããŸãã
CAAå€ã空ã®å Žåã LastFileBackupSetSummaryTXTRowã¯ãšã©ãŒç¶æ³ã瀺ãæååãè¿ããŸãã
æ å ±ã®ãã€ããŒããã¹ãè¡šçŸã¯ãåçŽãªHTMLã¿ã°ãçæãããè¡ã«æ¿å ¥ããããšããç¹ã§ã®ã¿ãæ¬è³ªçã«ç°ãªããåæ§ã®æ¹æ³ã§åœ¢æãããŸãã åé¡ã®ã¢ã«ãŽãªãºã ã«é¢ããŠæ ¹æ¬çã«æ°ãããã®ã¯äœããªããããããã§ã¯ãã®ã³ãŒããæäŸããŸãããèšäºã«æ·»ä»ãããŠããã¹ã¯ãªããã®ãœãŒã¹ã³ãŒãã調ã¹ãããšã§ããã®ã³ãŒãã«æ £ããããšãã§ããŸãã HTMLã³ãŒãã®ãã©ãŒãããã«ã¯ã管çè ã®æ³šæãåŒãããã«ã1æ¥ä»¥äžåã«CAAã§è²åããããæååãå«ãŸããŠããããšã«æ³šæããŠãã ããã
ãã£ã¹ã¯ããªã¥ãŒã ã€ã¡ãŒãžã¢ãŒãã¢ãŒã«ã€ãã®åŠç
ãã®ã¢ãŒãã®ã¢ãŒã«ã€ãã®è©³çŽ°ãèæ ®ããŠãåã®ã±ãŒã¹ãšåæ§ã«CPAMã®ãªã¹ããååŸããŸãã
function Get-MachineListIB ($WinBackupRoot) { $MachineRoots = @{} $ImageBackupRoot = $WinBackupRoot+"\WindowsImageBackup" Get-ChildItem -Path $ImageBackupRoot -Recurse -Depth 1 -File -Filter "MediaID" | foreach { $MachineRoots[$_.Directory.Name]=$_.Directory.FullName } return $MachineRoots }
ã€ãŸã ãµããã©ã«ããŒãæ€çŽ¢ããŠããªããžããªã®ã«ãŒããã©ã«ããŒã«ãããWindowsImageBackupããšããååã®ãµããã©ã«ããŒãåãã¬ãã«ã®æ·±ããŸã§èª¿ã¹ãŸãã KPAMãæå³ãããMediaIDããšããååã®ä¿¡å·ãã¡ã€ã«ãæ¢ããŠããŸãã
ãã¡ã€ã«ã¢ãŒãã¢ãŒã«ã€ãã®å Žåãšåæ§ã«ã Get-LastImageBackupSeté¢æ°ãèšè¿°ããããã¹ãããã³ãã€ããŒããã¹ã圢åŒã§çµæã®ãŠãŒã¶ãŒå®çŸ©è¡šçŸãçæããããã«ã Get-LastImageBackupSetSummaryTXTRow ã Get-LastImageBackupSetSummaryHTMLRow ã Get-LastImageTackTackDateã䜿çšããŠCAAãå®çŸ©ããŸãã ãã¡ã€ã«ã¢ãŒãã¢ãŒã«ã€ãã®å Žåã®èæ ®äºé ãšåæ§ã«ããã€ããŒããã¹ãè¡šçŸãçæããé¢æ°ã®ãã¢ã¯ããã«ã¯ç€ºãããŠããŸããïŒæ·»ä»ã®ãœãŒã¹ã³ãŒããåç §ïŒã
function Get-LastImageBackupSet ($MachineRoot) { $objLB = $null try { $LastBSXML = Get-ChildItem -Path $MachineRoot -Recurse -Depth 1 ` -File -Filter "BackupSpecs.xml" | Sort-Object LastWriteTime | Select-Object -Last 1 LastWriteTime, Directory, ` @{Name="Machine";Expression={$_.Directory.Parent.Name.ToUpper()}}, ` @{Name="Path";Expression={$_.Directory.FullName}}, ` @{Name="Name";Expression={$_.Directory.Name}} $VHDFiles = ( Get-ChildItem $LastBSXML.Directory.FullName -File -Filter "*.vhd" | Select-Object Length | Measure-Object -property length -sum -ErrorAction SilentlyContinue) } finally { if (($VHDFiles) -and ($LastBSXML)) { $objLB = @{ Machine = $LastBSXML.Machine Path = $LastBSXML.Path Name = $LastBSXML.Name Updated = $LastBSXML.LastWriteTime Size = $VHDFiles.Sum } } } return $objLB } function Get-LastImageBackupSetSummaryTXTRow ($MachineRoot) { $ret = "" $Now = Get-Date $LastBT = Get-LastImageBackupSet ($MachineRoot) if ($LastBT) { $ret = ": " + $LastBT.Machine + "; : " + ` $LastBT.Name + "; : " + ($Now - $LastBT.Updated).Days + ` " . (" + $LastBT.Updated + "); : " + ` ('{0:0} {1}' -f ($LastBT.Size/1024/1024), "") } else{ $ret = " ." } return $ret } function Get-LastImageBackupDatesTXT ($WinBackupRoot) { $table=" :`r`n" $MachineRoots = Get-MachineListIB ($WinBackupRoot) foreach ($machine in $MachineRoots.Keys) { $line = Get-LastImageBackupSetSummaryTXTRow($MachineRoots[$machine]) $table+= -join($machine, " => ", $line, "`r`n") } return $table }
ããã«ãããã¹ãã¬ãŒãžåæã³ãŒãã®åæãå®äºããã¬ããŒãå šäœã®ã¢ã»ã³ããªãšåºåãæ åœããã¹ã¯ãªããã®äžè¬çãªéšåã«é²ã¿ãŸãã
ã¢ã»ã³ããªããã³ã¬ããŒãåºå
ã¹ã¯ãªããã¯ãæ¢ã«åæãããšããããã¬ãŒã³ããã¹ã圢åŒãšHTML圢åŒã®ã¬ããŒããçæã§ããå¿ èŠããããšããäºå®ããé²ããŸãã ããã«ãã¬ããŒãã次ã®2ã€ã®æ¹æ³ã§åºåã§ããããã«ããã¿ã¹ã¯ãèšå®ããŸããïŒaïŒæšæºåºåããã€ã¹ãžã®ãã¹ãã¹ããªãŒã ã®åœ¢åŒãããã³ïŒbïŒæå®ãããã¢ãã¬ã¹ãžã®é»åã¡ãŒã«éä¿¡ã åæã«ãã¹ã¯ãªããã¯æ¬¡ã®ã³ãã³ãã©ã€ã³ãã©ã¡ãŒã¿ãŒãåãå ¥ããå¿ èŠããããŸãã
- root- ïŒæååïŒWindowsããã¯ã¢ãããªããžããªã®ã«ãŒããã©ã«ããŒãžã®ãã¹ã
- txt- ïŒãã©ã°ïŒãã¬ãŒã³ããã¹ã圢åŒã䜿çšãããã®ãã©ã¡ãŒã¿ãŒããªãå Žå-HTMLã
- mail- ïŒãã©ã°ïŒã¬ããŒããé»åã¡ãŒã«ã§éä¿¡ãããã®ãã©ã¡ãŒã¿ãŒããªãå Žå-ã¬ããŒãã®å 容ãããã®ãŸãŸãæšæºåºåã«è¡šç€ºããŸãã
- smtpsrv- ïŒæååïŒã¬ããŒããé»åã¡ãŒã«ã§éä¿¡ããSMTPãµãŒããŒã®ãããã¯ãŒã¯åãŸãã¯IPã¢ãã¬ã¹ã
- port- ïŒæŽæ°ïŒã¬ããŒããé»åã¡ãŒã«ã§éä¿¡ããããã®TCPããŒãçªå·ã
- to-ïŒæååïŒã¡ãã»ãŒãžåä¿¡è ã®ã¡ãŒã«ã¢ãã¬ã¹ã
- fm- ïŒæååïŒã¡ãã»ãŒãžã®éä¿¡è ã®é»åã¡ãŒã«ã¢ãã¬ã¹ïŒSMTPãµãŒããŒãŠãŒã¶ãŒã®ãŠãŒã¶ãŒåã§ããããŸãïŒã
- pwd- ïŒæååïŒSMTPãµãŒããŒã®ãŠãŒã¶ãŒãã¹ã¯ãŒãïŒããã¯ã»ãã¥ãªãã£ã®èŠ³ç¹ããå®å šã«æ£ããããã§ã¯ãããŸãããïŒã
- sub- ïŒæååïŒéä¿¡ããã¡ãã»ãŒãžã®ä»¶åã
æåã«ãã³ãã³ãã©ã€ã³ãã©ã¡ãŒã¿ãŒã®èª¬æãå«ãã¹ã¯ãªããããããŒãäœæããŸãã CMD.EXEã¹ã¯ãªããã®åæ圢åŒã§å®è£ ãããããããæäœããã¡ã«ããºã ã¯ãWindows Script Hostã¹ã¯ãªããã§å€§å¹ ã«æ¹åãããŸããããããã§ãéåžžã«äžäŸ¿ã§ãããå ¥åããããã©ã¡ãŒã¿ãŒã®ã·ã¹ãã ãæŽçããŠåæããããã«å€ãã®è¿œå æé ãå¿ èŠã§ãã£ãããšã«èšåãã䟡å€ããããŸãã ãã ããPowershellã§ã¯ãæ ¹æ¬çãªå€æãçµãŠã宣èšã«åºã¥ããŠPSçµã¿èŸŒã¿ããŒã«ã䜿çšããŠãã©ã¡ãŒã¿ãŒåŠçãå®è£ ã§ããParamãããã¯ãšããæ¬æ ŒçãªäŸ¿å©ãªããŒã«ã«ãªããŸããã ç§ãã¡èªèº«ã®ç®çã«ãããé©çšããŸãïŒ
Param( [Parameter(Mandatory)][string] $Root, [switch] $txt=$false, [switch] $mail=$false, [string] $SmtpSrv, [int] $Port=25, [string] $To, [string] $Fm, [string] $Pwd, [string] $Sub )
äžèšã®ã¹ãããããããããããã«ãaceã³ãã³ãã©ã€ã³ãã©ã¡ãŒã¿ãŒã¯1ã€ã®Paramãããã¯ã§èšè¿°ãããŠããŸãã 圌ã®æ¬åŒ§å ã«ã圌ã®å±æ§ã®ã³ã³ãåºåããªã¹ãããªã¹ããããŠããŸã-ããŒã¿åãšå¿ é ã®ãã¹ãŠã®ãã©ã¡ãŒã¿ãŒã äžè¬ã«ãåã ã®ãã©ã¡ãŒã¿ãŒãèšè¿°ããæãåçŽãªãªãã·ã§ã³ã¯ãæåã$ãã§å§ãŸãåçŽãªèå¥åã§æ§æãããŸãã ãã©ã¡ãŒã¿ãŒã宣èšããããã®æ¬¡ã®æãé£ãããªãã·ã§ã³ã¯ãããŒã¿åãæ¹è¯ããããšã§ããããã¯ããã©ã¡ãŒã¿ãŒIDã®å·ŠåŽã«ããè§æ¬åŒ§å ã®ããŒã¿åã®ååãšããŠèšè¿°ãããŸãã ããã©ã«ãå€ãèšå®ããããšãã§ããŸããããã©ã«ãå€ã§ã¯ãå³åŽã®èå¥åã«å²ãåœãŠæŒç®åãšå€ãè¿œå ããã ãã§ååã§ãã ããã©ã«ãå€ãæ瀺çã«æå®ããªããšããã©ã¡ãŒã¿ãŒã¯æå®ãããã¿ã€ãã®ç©ºã®å€ã«åæåãããŸãã
ã¹ã€ãããã©ã¡ãŒã¿ãŒã®ã¿ã€ãïŒã€ãŸãããã¹ã€ãããïŒã¯æ¬¡ã®ããã«æ©èœããŸããã¹ã¯ãªãããã³ãã³ãã©ã€ã³ã§ç°¡åã«èšåããŠãã®ãã©ã¡ãŒã¿ãŒãåãåã£ãå Žåãçã®å€ãå²ãåœãŠãããŸãã ã³ãã³ãã©ã€ã³ã«ãªãå Žåã¯ãåœã®å€ãå²ãåœãŠãããŸãã
è¿œå ã®ãã©ã¡ãŒã¿ãŒå±æ§ïŒå¿ é ãªã©ïŒãæå®ããå¿ èŠãããå Žåã¯ãå·ŠåŽã«è§ãã£ãã§ãããã¯ããã1ã€è¿œå ããå¿ èŠããããŸãããã®ãããã¯ã¯ã ParameterããŒã¯ãŒãã§å§ãŸãããã®åŸã«å±æ§ã®ãªã¹ããšãå Žåã«ãã£ãŠã¯æ¬åŒ§ã§å²ãŸããå€ãç¶ããŸãã ç¹ã«ãåã ã®ãã©ã¡ãŒã¿ãŒã®ãã€ã³ãã£ã³ã°ã¯ã å¿ é è«çã¿ã€ãã®å±æ§ã«ãã£ãŠå®çŸ©ãããŸãã PS 3.0以éãå±æ§å€ã«æ瀺çã«Trueãæå®ããããšã¯ãªãã·ã§ã³ã§ããçç¥ããå Žåã Trueãæå³ããŸã ã
ããšãã°ããã®äŸã§ã¯ã Rootãã©ã¡ãŒã¿ãŒã¯å¿ é ã§ãããã¿ã€ãstringãæã¡ãããã©ã«ãå€ã¯ãããŸããã ãã®ãã©ã¡ãŒã¿ãŒã®æå®ãããå¿ é æ§ã¯ããããªãã§ã¹ã¯ãªãããå®è¡ãããå ŽåãPowershellã€ã³ã¿ãŒããªã¿ãŒãã³ã³ãœãŒã«ã«ãã®å€ãå ¥åããããã«ä¿ããæå®ãããå€ãªãã§ã¹ã¯ãªããã³ãŒããå®è¡ã§ããªãããã«ãããšããäºå®ã«ã€ãªãããŸãã å¿ é ãšããŠå®£èšãããŠããªãæ瀺çã«æå®ããããã©ã¡ãŒã¿ãŒããªãããšã¯ãã¹ã¯ãªããå®è¡ã®éå§ã«å¯Ÿããé害ã§ã¯ãããŸããã
Powershellã¹ã¯ãªããèšèªã§ã®Paramãããã¯ã®äœ¿çšã¯ãã³ãã³ãã©ã€ã³ãã©ã¡ãŒã¿ãŒã®ã¿ã«éå®ããããé¢æ°ãã©ã¡ãŒã¿ãŒã«é¢ããŠã䜿çšã§ããããšãèšããªããã°ãªããŸããã ãããããéã®ã¹ããŒãã¡ã³ãã§ãã£ãŠããããçå®ã«ãªãã§ããããé¢æ°ãã©ã¡ãŒã¿ãŒã ãã§ãªããã¹ã¯ãªããã³ãã³ãã©ã€ã³ãã©ã¡ãŒã¿ãŒã«ãé©çšã§ããŸããã¹ã¯ãªããã®æ¬äœã¯ãããã°ã©ã ã³ãŒãã®éå±€ã®æäžäœã¬ãã«ã®é¢æ°ã«é¡äŒŒããŠããŸãïŒããšãã°ãCã®mainïŒïŒé¢æ°ãšããŠïŒãããã«ããã次ã®ããã«Get-LastImageBackupDatesTXTé¢æ°ããªãŒããŒã©ã€ãã§ããŸãã
function Get-LastImageBackupDatesTXT { Param( [Parameter(Mandatory)][string] $WinBackupRoot ) $table=" :`r`n" $MachineRoots = Get-MachineListIB ($WinBackupRoot) foreach ($machine in $MachineRoots.Keys) { $line = Get-LastImageBackupSetSummaryTXTRow($MachineRoots[$machine]) $table+= -join($machine, " => ", $line, "`r`n") } return $table }
å¿ é ãã©ã¡ãŒã¿ãŒãªãã§é¢æ°ãåŒã³åºãå Žåãå ¥åã®ããã³ãããç»é¢ã«è¡šç€ºãããŸããããã®å Žåã®æçšæ§ã¯è°è«ã®äœå°ããããŸãããã ããããã©ã«ãå€ãèšå®ãããã©ã¡ãŒã¿ãã¿ã€ãåããæ©èœã¯ãå Žåã«ãã£ãŠã¯ééããªã䟿å©ã§ãã
ãã®äœè«ãå®äºããã«ã¯ãã¹ã¯ãªãããã©ã¡ãŒã¿ãŒãšPowershellé¢æ°ãå®çŸ©ãã圢åŒã«é¢ããŠãã¹ã¯ãªãããã©ã¡ãŒã¿ãŒã®èª¬æãèªå·±ææžåã·ã¹ãã ã®äžéšã§ããããšã«æ³šæããå¿ èŠããããŸãããããã¯ãã¹ã¯ãªããã®ã³ã¡ã³ãããŒã¹ã®ãã«ãããã¹ãã®ã.PARAMETERãã»ã¯ã·ã§ã³ã§äœæè ãæå®ããæ å ±ãšèªåçã«çµåãããã³ãã³ããGet-Help <ã¹ã¯ãªããå>ãã§çæãããã¹ã¯ãªããã®ãã«ãã®äžéšãšããŠè¡šç€ºãããŸãã
ã¬ããŒãã®å šæã®ã¢ã»ã³ããªã³ãŒãã«ç§»ããŸããããäžèšã§å®åŒåãããåé¡ã®æçµçãªå£°æã«åºã¥ããŠãã¹ã¯ãªããæ¬æããçŽæ¥åŒã³åºããã3ã€ã®é¢æ°ãããããšã¯æããã§ãïŒã¬ããŒãã®ããã¹ãããŒãžã§ã³ã®çµã¿ç«ãŠãã¬ããŒãã®ãã€ããŒããã¹ãããŒãžã§ã³ã®çµã¿ç«ãŠãããã³é»åã¡ãŒã«ã«ããã¬ããŒãããã¹ãã®éä¿¡ïŒ
function Get-LastWinBackupDatesHTML ($WinBackupRoot) { $Now = Get-Date $table='<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">'+"`n" $table+='<html xmlns="http://www.w3.org/1999/xhtml"><head><title> "'+ `$WinBackupRoot+'"</title></head><body>'+"`n" $table+='<h3> "'+$WinBackupRoot+'"'+"</h3>`n" $table+='<h3> : '+$Now+"</h3>`n" $table+= Get-LastFileBackupDatesHTML ($WinBackupRoot) $table+= Get-LastImageBackupDatesHTML ($WinBackupRoot) $table+= "</body>`n</html>" return $table } function Get-LastWinBackupDatesTXT ($WinBackupRoot) { $Now = Get-Date $table=' "'+$WinBackupRoot+'"'+"`r`n" $table+=' : '+$Now+"`r`n`r`n" $table+= Get-LastFileBackupDatesTXT ($WinBackupRoot) $table+= "`r`n" $table+= Get-LastImageBackupDatesTXT ($WinBackupRoot) return $table } function Send-Email-Report ($SendInfo, $TXTonly=$false){ $Credential = New-Object -TypeName "System.Management.Automation.PSCredential" ` -ArgumentList $SendInfo.Username, $SendInfo.SecurePassword if ($TXTonly) { Send-MailMessage -To $SendInfo.To -From $SendInfo.From ` -Subject $SendInfo.Subject -Body $SendInfo.MsgBody ` -SmtpServer $SendInfo.SmtpServer -Credential $Credential ` -Port $SendInfo.SmtpPort -Encoding UTF8 } else { Send-MailMessage -To $SendInfo.To -From $SendInfo.From ` -Subject $SendInfo.Subject -BodyAsHtml $SendInfo.MsgBody ` -SmtpServer $SendInfo.SmtpServer -Credential $Credential ` -Port $SendInfo.SmtpPort } }
å¥ã«ãPowershellã«é¢ä¿ãªãããã¬ãŒã³ããã¹ãã®è¡ãšHTMLã®LFã®ã¿ãåé¢ããããã«CR / LFã䜿çšããçç±ã説æããŸããããã¯ãMS Outlookã§HTMLã¡ãã»ãŒãžãæ£åžžã«è¡šç€ºãããããã«ããããã«è¡ãããŸããããŠãéåžžã®ãã©ãŠã¶ã§ã¬ããŒããèŠããšãéãã¯ãããŸããã
æçµã¬ã€ã¢ãŠãã®äž¡æ¹ã®æ©èœã¯éåžžã«ã·ã³ãã«ã§ãããéçã«å®çŸ©ãããããã¹ããã©ã°ã¡ã³ãã§åäœããåŒã³åºãããã«ãŒãã³ããåä¿¡ããããã¹ããããã¯ãšçµã¿åããããŠãå šäœçãªã¬ããŒãã圢æããŸãã
æ©èœéä¿¡-ã¡ãŒã«-å ±åæžã¯ããã©ãããŒãã³ãã³ãã¬ããã§éä¿¡-ã¯MailMessageã¹ã¯ãªããããã®ã³ãã³ãã¬ããã®ãã©ã¡ãŒã¿ãŒã®ã座æšç³»ãã§åäœãããã©ã¡ãŒã¿ãŒã·ã¹ãã ã衚瀺ããŸãããSystem.Management.Automation.PSCredentialããšããååã®.NETã¯ã©ã¹ã®ã€ã³ã¹ã¿ã³ã¹ã䜿çšããŠããŠãŒã¶ãŒIDãšãã¹ã¯ãŒããSend-MailMessageã³ãã³ãã¬ããã«æž¡ãå¿ èŠãããããšã«æ³šæããŠãã ãããåŸè ã¯ãããã®ãã©ã¡ãŒã¿ãŒã®éåžžã®æååå€ãåãå ¥ããªãããã§ãã䜿çšãããã¯ã©ã¹ã¯ãå®å šãªïŒã·ã¹ãã ã®èŠ³ç¹ããïŒã³ã³ãããŒïŒ$ Credentialå€æ°ïŒãããã®å€ãä¿åããŸãããããã®å€ã¯ãåŸæ¥ã®ãã°ã€ã³/ãã¹ã¯ãŒãã®ãã¢ã®ä»£ããã«ã³ãã³ãã¬ããã«æž¡ãããŸããåè¿°ã®ããã«ãå³å¯ã«èšãã°ããªãŒãã³ãã©ãŒã ã§ãã¹ã¯ãŒããã¹ã¯ãªããã«éä¿¡ããããšã¯ãç¹å¥ãªGet-Credentialã³ãã³ãã¬ããã䜿çšããŠã¹ã¯ãªããå®è¡äžã«ãã¹ã¯ãŒãã®çŽæ¥ãŠãŒã¶ãŒå ¥åã䜿çšããŠããã®ãããªããŒã¿ãå ¥åããããã®ã·ã¹ãã ã°ã©ãã£ã«ã«ãã€ã¢ãã°ã衚瀺ããããšãæäŸããããã®å®å šã§å®å šãªãªãã·ã§ã³ã§ã¯ãããŸãããããããã€ã³ã¿ã©ã¯ãã£ããªèµ·åã§ã¯ãªããããçšã®ã¹ã¯ãªãããäœæããŠããããããã°ããããã®ãããªéžè±ãè¡ãå¿ èŠããããŸã...
ã¡ãã»ãŒãžãéä¿¡ããæ©èœã§çµäºããŸããã¡ãã»ãŒãžã«çŽæ¥é¢äžãããã©ã¡ãŒã¿ãŒã¯$ SendInfoãã©ã¡ãŒã¿ãŒã«ã«ãã»ã«åãããŠããããããã©ã¡ãŒã¿ãŒã¯2ã€ãããããŸãããããã·ã¥ããŒãã«ã§ããããšããããšã¯å¥ã«ããªãã·ã§ã³ã®$ TXTonlyãã©ã°ãã©ã¡ãŒã¿ãŒã®ã¿ãæž¡ããããã¬ãŒã³ããã¹ã圢åŒã§ã¡ãã»ãŒãžãéä¿¡ããå¿ èŠãããããšã瀺ããŸããåŒã³åºãäžã«çç¥ãããããåœã®å€ãæã€å Žåãã¡ãã»ãŒãžã¯ãã€ããŒããã¹ã圢åŒã§éä¿¡ãããŸãã
äžèšã®ãã¹ãŠã®æ©èœã䜿çšããã¹ã¯ãªããæ¬äœã³ãŒãã®ã¿ãäœæããããšã¯æ®ããŸãããã®ãµã€ãºãšè€éãããããã®é¢æ°ã®æ°ã«åæ¯äŸãããšããä»®å®ã¯å®å šã«å ¬å¹³ã§ã-ã¢ã«ãŽãªãºã ã®éçºãšããã«å¯Ÿå¿ããé¢æ°ã®å解ã«ããã»ã©å€ãã®åªåãè²»ãããã®ã¯ç¡é§ã§ã¯ãããŸããã
if ($txt) { $Ret = Get-LastWinBackupDatesTXT ($Root) } else { $Ret = Get-LastWinBackupDatesHTML ($Root) } if ($mail) { if (($SmtpSrv) -and ($Port) -and ($To) -and ($Fm) -and ($Pwd) -and ($Sub) -and ($Ret)) { $objArgs = @{ SmtpServer = $SmtpSrv SmtpPort = $Port To = $To.Split(',') From = $Fm Username = $Fm SecurePassword = ConvertTo-SecureString -String $Pwd -AsPlainText -Force Subject = $Sub MsgBody = $Ret } Send-Email-Report ($objArgs, $txt) } else { Write-Host $Ret } } else { Write-Host $Ret }
ãã¹ãŠãå®éã«éåžžã«ç°¡åã«ãªããæŠç¥çã«èšããšãã³ãã³ãã©ã€ã³ãã©ã¡ãŒã¿ãŒ$ txtãã¹ã¯ãªããã«æž¡ããããã©ããã«å¿ããŠã2ã€ã®æ¢åã®Get-LastWinBackupDatesXXXé¢æ°ã®1ã€ãåŒã³åºãããŸããå®è¡çµæïŒå®éã«ã¯ãçæãããã¬ããŒãã®ããã¹ãïŒã¯$ Retå€æ°ã«ä¿åãããŸããã¹ã¯ãªããã®ã³ãã³ãã©ã€ã³ãã©ã¡ãŒã¿ãŒã§é»åã¡ãŒã«ã§ã®éä¿¡ãå¿ èŠãªå ŽåãSend-Email-Reporté¢æ°ãåŒã³åºããŠãã¡ãã»ãŒãžãšãã®éä¿¡æ¹æ³ãå®å šã«èª¬æããããã·ã¥ããŒãã«ãäœæããæäŸããŸããé»åã¡ãŒã«ã«é¢ãã話ããªãã£ãå Žåãããã³éä¿¡ãã©ã¡ãŒã¿ãŒã®èª¬æã«æãããªæ¬ é¥ãããå Žåãã¬ããŒãã®ããã¹ããæšæºåºåããã€ã¹ïŒã³ã³ãœãŒã«ïŒã«è¡šç€ºããã ãã§ãã
çæãããã¬ããŒãã®äŸãæäŸããŸãã
ãã€ããŒããã¹ã圢åŒïŒ
ã\\ sa-nas \ netbackupãã®ããã¯ã¢ãã
ã¬ããŒãçææ¥ïŒ01/10/2017 09:00:01
ãã¡ã€ã«ã¢ãŒãã¢ãŒã«ã€ãïŒ
è» | ææ°ã®ã¢ãŒã«ã€ã | 幎霢 | æŽæ°ãããŸãã | 倧ãã |
ãµãã§ã³
| ããã¯ã¢ããã»ãã2017-01-10 040000
| 0æ¥
| 10/01/2017 04:16:23
| 6446 MB
|
SA-DOCTOR
| ããã¯ã¢ããã»ãã2017-01-10 080002
| 0æ¥
| 10/01/2017 08:10:09
| 2431 MB
|
SA-BAR
| ããã¯ã¢ããã»ãã2016-12-28 033001
| 0æ¥
| 10/01/2017 02:36:35
| 248028 MB
|
SA-RECEPTION
| ããã¯ã¢ããã»ãã2017-01-10 060737
| 0æ¥
| 10/01/2017 06:16:29
| 1264 MB
|
SA-ECR
| ããã¯ã¢ããã»ãã2017-01-08 220005
| 0æ¥
| 09/01/2017 22:03:22
| 2863 MB
|
SA-HOTELMGR
| ããã¯ã¢ããã»ãã2017-01-08 020003
| 0æ¥
| 09/01/2017 22:11:02
| 26788 MB
|
SA-ITO
| ããã¯ã¢ããã»ãã2017-01-06 230005
| 0æ¥
| 09/01/2017 23:08:48
| 17486 MB
|
SA-CHEF
| ããã¯ã¢ããã»ãã2017-01-05 230002
| 0æ¥
| 09/01/2017 23:02:11
| 3791 MB
|
SAãã¹ã¿ãŒ
| ããã¯ã¢ããã»ãã2017-01-09 102958
| 0æ¥
| 01/09/2017 23:12:51
| 8441
|
SA-CONTROLLER
| Backup Set 2017-01-09 000007
| 0
| 01/10/2017 00:17:04
| 9788
|
:
幎霢 | 倧ãã | |||
SA-ITO
| Backup 2017-01-10 020013
| 0
| 01/09/2017 23:12:44
| 47534
|
POSSERVER
| Backup 2017-01-10 020006
| 0
| 01/09/2017 23:07:36
| 23138
|
:
ã\\ sa-nas \ netbackupãå ã®ããã¯ã¢ãã
ã¬ããŒãçææ¥ïŒ2017幎1æ10æ¥09:00:01
ãã¡ã€ã«ã¢ãŒãã¢ãŒã«ã€ãïŒ
ãã·ã³ïŒSA-CHENG;ã¢ãŒã«ã€ãåïŒããã¯ã¢ããã»ãã2017-01-10 040000;æŽæ°ïŒ0æ¥åã ïŒ2017幎1æ10æ¥04:16:23ïŒ;ãµã€ãºïŒ6446 MB
ãã·ã³ïŒSA-DOCTOR;ã¢ãŒã«ã€ãåïŒããã¯ã¢ããã»ãã2017-01-10 080002;æŽæ°ïŒ0æ¥åã ïŒ2017幎1æ10æ¥08:10:09ïŒ;ãµã€ãºïŒ2431 MB
ãã·ã³ïŒSA-BAR;ã¢ãŒã«ã€ãåïŒããã¯ã¢ããã»ãã2016-12-28 033001;æŽæ°ïŒ0æ¥åã ïŒ2017幎1æ10æ¥02:36:35ïŒ;ãµã€ãºïŒ248028 MB
ãã·ã³ïŒSA-RECEPTION;ã¢ãŒã«ã€ãåïŒããã¯ã¢ããã»ãã2017-01-10 060737;æŽæ°ïŒ0æ¥åã ïŒ2017幎1æ10æ¥06:16:29ïŒ;ãµã€ãºïŒ1264 MB
ãã·ã³ïŒSA-ECR;ã¢ãŒã«ã€ãåïŒããã¯ã¢ããã»ãã2017-01-08 220005;æŽæ°ïŒ0æ¥åã ïŒ2017/09/09 22:03:22ïŒ;ãµã€ãºïŒ2863 MB
ãã·ã³ïŒSA-HOTELMGR;ã¢ãŒã«ã€ãåïŒããã¯ã¢ããã»ãã2017-01-08 020003;æŽæ°ïŒ0æ¥åã ïŒ2017/09/09 22:11:02ïŒ;ãµã€ãºïŒ26788 MB
ãã·ã³ïŒSA-ITO;ã¢ãŒã«ã€ãåïŒããã¯ã¢ããã»ãã2017-01-06 230005;æŽæ°ïŒ0æ¥åã ïŒ2017/09/09 23:08:48ïŒ;ãµã€ãºïŒ17486 MB
ãã·ã³ïŒSA-CHEF;ã¢ãŒã«ã€ãåïŒããã¯ã¢ããã»ãã2017-01-05 230002;æŽæ°ïŒ0æ¥åã ïŒ2017/09/09 23:02:11ïŒ;ãµã€ãºïŒ3791 MB
ãã·ã³ïŒSA-MASTER;ã¢ãŒã«ã€ãåïŒããã¯ã¢ããã»ãã2017-01-09 102958;æŽæ°ïŒ0æ¥åã ïŒ09/09/2017 23:12:51ïŒ;ãµã€ãºïŒ8441 MB
ãã·ã³ïŒSA-CONTROLLER;ã¢ãŒã«ã€ãåïŒããã¯ã¢ããã»ãã2017-01-09 000007;æŽæ°ïŒ0æ¥åã ïŒ2017幎1æ10æ¥00:17:04ïŒ;ãµã€ãºïŒ9788 MB
ãã£ã¹ã¯ããªã¥ãŒã ã€ã¡ãŒãžïŒ
ãã·ã³ïŒSA-ITO;ã¢ãŒã«ã€ãåïŒããã¯ã¢ãã2017-01-10 020013;æŽæ°ïŒ0æ¥åã ïŒ09/09/2017 23:12:44ïŒ;ãµã€ãºïŒ47534 MB
ãã·ã³ïŒPOSSERVER;ã¢ãŒã«ã€ãåïŒããã¯ã¢ãã2017-01-10 020006;æŽæ°ïŒ0æ¥åã ïŒ2017/09/09 23:07:36ïŒ;ãµã€ãºïŒ23138 MB
ãããã«
ããã§èª¬æããã¹ã¯ãªããã¯å®éã«äœ¿çšãããã·ã¹ãã ã¿ã¹ã¯ã¹ã±ãžã¥ãŒã©ã䜿çšããŠèµ·åãããããã¯ã¢ããã¹ãã¬ãŒãžã®ç¶æ³ãå®æçã«å ±åããŸãããã¡ãããããã¯äžå®å šã§ãããããŸããŸãªæ¹åãç°¡åã«ææ¡ããããšãã§ããŸã-ããšãã°ãæ®ãã®ãã£ã¹ã¯å®¹éãå€ãã¢ãŒã«ã€ããå ããããªã¥ãŒã ã®å¶åŸ¡ãªã©ã§ãããŸããã¹ã¯ãªããã§èŠèœãšãããã¡ãªãšã©ãŒç¶æ³ã®åŠçã®åé¡ã«ãã£ãŠãåµé æ§ã®åºãç¯å²ãæäŸãããŸãããããããªãããã®æ¹æ³ã§ããã®ãªãã·ã§ã³ã¯å®å šã«æ©èœããéçºã«ããŸãæéãå¿ èŠãšããŸããã§ãããå®éãç§ã«ã¯æããŸãããããã¯ã·ã¹ãã 管çè ã®ã¬ãã«ã§éçºãããã¹ã¯ãªããã®æå³ã§ããåçšè£œåã®ã¬ãã«ã§ã¯ãªããŠããæå°éã®ãªãœãŒã¹ã§åé¡ãå¹æçã«è§£æ±ºããŸãã
ããããã¹ã¯ãªããã®ãœãŒã¹ã³ãŒããå«ãã¢ãŒã«ã€ããããŠã³ããŒãããŸãã
ãã®èšäºã®ç¶ãã§ãã次ã®èšäºã§ã¯ãä»ã®ä»»æã®ããã¯ã¢ããã·ã¹ãã ãç¹ã«NTããã¯ã¢ãããšghettoVCBïŒVMware ESXiã®å ŽåïŒã«ãã£ãŠäœæãããããŒã¿ã»ããããµããŒããããã£ã«ã¿ãŒã¢ããªã³ãã¯ãããžãŒã䜿çšãããã®ã¹ã¯ãªããã®æ©èœã®æ¡åŒµã«ã€ããŠèª¬æããŸãã