Help with report script

Hello

Can be already answered this request. But I couldn't find it.

I want to create the report for all the esx servers base based on the cluster information.

I need in this format

Get-vmhost | Select manufacturer, model name, version, Version, MemoryTotalMB, Numcpu, | export csv c:\Test.csv - notypeinformation

Instead of MemoryTotalMB, I need in MemoryTotalGB

So now my requirement is

--------------------------------------------------------------------------

Name of the cluster

|

Basic information of server ESX as mentioned earlier.

---------------------------------------------------------------------------

Hope, our expert Powercli helps to create this report.

Thanks in advance.

Something like that

$report = foreach($clus in Get-Cluster){
    Get-vmhost -Location $clus | `    select @{N="Cluster";E={$clus.Name}},
        Name, Build, Version,@{N="MemoryGB";E={$_.MemoryTotalMB/1KB}},Numcpu,Manufacturer,Model
}
$report | export-csv c:\Test.csv -notypeinformation

Tags: VMware

Similar Questions

  • Need help with a script (o - o8) *, see the Virgin if there is no

    Hi all what I need help with a script I can't find an example.

    I'm trying to subtract 2 numbers and then multiply this product. (o o8) * one but I just want to do the calculations if all fields have the numbers IE field o, o8 of field and field one.

    Thank you in advance. I was stuck on this days searching the Internet.

    Assuming you want to affect the outcome of this calculation in another text field, use this code as a custom field calculation script:

    var o = this.getField("o").valueAsString;
    var o8 = this.getField("o8").valueAsString;
    var a = this.getField("a").valueAsString;
    if (o!="" && o8!="" && a!="") event.value = (Number(o)-Number(o8))*Number(a);
    else event.value = "";
    
  • Very slow Macbook Pro (2012), please help with report EtreCheck

    Hi all

    My Macbook runs very slowly, I tried a number of things suggested online but none worked. I recently went to a repair shop and they suggested it could be to do with the dataflex (not sure if this was exactly, but I remember it sounding similar.) They described as a hard drive to another internal component connection, sorry for the inaccuracy.) I have me am replaced, but this did not help either.

    I downloaded the software EtreCheck and I was wondering if someone could help me to make light of the report on possible solutions? I have the feeling that it could be the hard drive needs to be replaced, but have no evidence of that. Verification has been run for the problem of "Beachballing" and got the sub report, please let me know if more info would be helpful. I hope it's telling in a way!

    Thank you for the pointers.

    EtreCheck version: 2.7.8 (238)

    Report generated 2016-01-26 22:56:56

    Download EtreCheck from http://etrecheck.com

    Duration 10:23

    Performance: Poor

    Click the [Support] links to help with non-Apple products.

    Click [details] for more information on this line.

    Problem: Beachballing

    Hardware Information:

    MacBook Pro (13-inch, mid-2012)

    [Data sheet] - [User Guide] - [Warranty & Service]

    MacBook Pro - model: MacBookPro9, 2

    1 2.5 GHz Intel Core i5 CPU: 2 strands

    4 GB of RAM expandable - [Instructions]

    BANK 0/DIMM0

    OK 2 GB DDR3 1600 MHz

    BANK 1/DIMM0

    OK 2 GB DDR3 1600 MHz

    Bluetooth: Good - transfer/Airdrop2 taken in charge

    Wireless: en1: 802.11 a/b/g/n

    Battery: Health = Normal - Cycle count = 420 - SN = 9G22603YVD3MB

    Video information:

    Graphics Intel HD 4000

    Color LCD 1280 x 800

    Software:

    OS X Mavericks 10.9.5 (13F34) - since startup time: less than an hour

    Disc information:

    Disk0 APPLE drive HARD TOSHIBA MK5065GSXF: (500,11 GB) (rotation)

    EFI (disk0s1) : 210 MB

    Macintosh HD (disk0s2) /: 499,25 go-go (248,48 free)

    HD (disk0s3) [recovery] recovery: 650 MB

    OPTIARC DVD RW AD - 5970H)

    USB information:

    Apple Inc. FaceTime HD camera (built-in)

    Apple Inc. Apple keyboard / Trackpad

    Computer, Inc. Apple IR receiver.

    Apple Inc. BRCM20702 hub.

    Apple Inc. Bluetooth USB host controller.

    Lightning information:

    Apple Inc. Thunderbolt_bus.

    Guardian:

    Mac App Store and identified developers

    Launch system officers:

    [failure] com.apple.maspushagent.plist [details]

    Launch system demons:

    com.Apple.Security.syspolicy.plist [failure]

    Launch officers:

    [loading] com.google.keystone.agent.plist [Support]

    [loading] com.oracle.java.Java - Updater.plist [Support]

    Launch demons:

    [loading] com.adobe.fpsaud.plist [Support]

    [loading] com.google.keystone.daemon.plist [Support]

    [loading] com.oracle.java.Helper - Tool.plist [Support]

    Items in user login:

    iTunesHelper Application (/ Applications/iTunes.app/Contents/MacOS/iTunesHelper.app)

    Other applications:

    [ongoing] com.etresoft.EtreCheck.85920

    Plug-ins Internet:

    FlashPlayer - 10.6: Version: 19.0.0.226 - SDK 10.6 [Support]

    QuickTime Plugin: Version: 7.7.3

    Flash Player: Version: 19.0.0.226 - SDK 10.6 obsolete! Update

    Default browser: Version: 537 - SDK 10.9

    o1dbrowserplugin: Version: 5.41.0.0 - SDK 10.8 [Support]

    googletalkbrowserplugin: Version: 5.41.0.0 - SDK 10.8 [Support]

    JavaAppletPlugin: Version: 25 check the version of Java 8 update

    3rd party preference panes:

    Flash Player [Support]

    Java [Support]

    TeXDistPrefPane [Support]

    Time Machine:

    Time Machine not configured!

    Top of page process CPU:

    6% update_dyld_shared_cache

    4% WindowServer

    3% kernel_task

    mdworker (3) 2%

    1% launchd (4)

    Top of page process of memory:

    508 MB com.apple.WebKit.WebContent (4)

    502 MB kernel_task

    Safari of 283 MB

    Finder 197 MB

    152 MB softwareupdated

    Virtual memory information:

    988 MB of free RAM

    3.03 GB used RAM (750 MB cache)

    Used Swap 0 B

    Diagnostic information:

    26 January 2016, 21:59:30 self-test - spent

    Hello mrdivorce,

    It looks like of course as evidence of a hard drive failing for me. Hard drives 2.5 "in the MacBook Pro tend to fail after 2-3 years. Judging by the date on your MacBook, I think that your time is up. Maybe try to find a different repair store. Looking for Service Center authorized Apple (https://locate.apple.com/).

    I suggest upgrading to an SSD and increasing your RAM too. Then you have the hardware to run the last OS X 10.11.

  • Need help with a script customized for processing in Photoshop CS4 of images in batches. Really grateful for the help thereby.

    Hi people.

    So I have a boatload of pictures that I have to deal with as I'm moving off Ebay and open my own online store and the images that I have on Ebay, although excellent quality are not square, and unfortunately, the model that I use in Wordpress requires square photos.

    Basically, what I need is a script that I can use in batch mode, which will focus on the size of the image and change the canvas size to be square corresponding to the current long image side. Resize the image to 1600 square pixels and finally save for web in JPEG quality 60.

    Normally I would muddle my way through this trying to teach myself but I already do so much with this new project that I can't afford to pay developers for help that I would really appreciate if someone could help me with this script. I use Photoshop CS4 if it made a difference.

    Thanks much for any help you can offer.

    See you soon,.

    J

    A simple gesture can do that. What you need to do is that the action of lot.   With the help of Photoshop Image Processor script.  The Action is a two-step

    N ° 1). File menu > automate > fit Image.  In the dialog box Image Fit you assign Width and Height 1600 pixels.

    Step 2.) Menu Image > canvas size.  In the canvas size dialog box, you assign Width and Height 1600 Pixels.

    Record the action in some action with a name like 1600PxSquare

    Then use the file menu to Photoshop > Scripts > image processor. In the dialog to the Image Processor script. Select your image source folder. Set where you want your jpeg images. Set it to save jpeg files quality 6.  Set it to include your 1600PxSquare action.

    Step adjustment image resize your image to fit in a 1600 x 1600 pixels are while keeping image proportions of images. Portrait image will be high 1600px and landscape image will be 1600px wide.  The step size canvas will add the canvas to make the place of the image.  Portraits will have a border on the left and right images of landscape will be confined to the op and downs.

  • Help with a script

    Hi all

    I've been loving learning PowerCLI.

    I have problems, adding information to a script I had help with.  I have problems with the eastern line,

    Add-Member - InputObject $reportedvm - MemberType noteProperty-name GuestOs - value $VM. Guest.OSFullName

    I'll add the entire script bellows.  If someone could explain to me what I am doing wrong.  I get just white that colum in my CSV.  I guess that the $VM variable does not have property info I'm looking for.  I don't know if I have to do a join or something else to get this info.

    Here's the script as a whole.

    $reportedvms = New-Object System.Collections.ArrayList
    $vms = get-view - viewtype virtualmachine. Tri-objet-property {$_.} Config.Hardware.Device |  where {$_-is [VMware.Vim.VirtualEthernetCard]} |  Measure-object | {Select - ExpandProperty County}-descending
    {foreach ($vm to $vms)
    $reportedvm = new-Object PSObject
    Add-Member - Inputobject $reportedvm - MemberType noteProperty-Guest name-value $vm. Name
    Add-Member - InputObject $reportedvm - MemberType noteProperty-name-value of $($vm.) UUID Config.Uuid)
    Add-Member - InputObject $reportedvm - MemberType noteProperty-name GuestOs - value $VM. Guest.OSFullName
    Add-Member - InputObject $reportedvm - MemberType noteProperty-name ToolsVersion-value $VM. Config.Tools.ToolsVersion
    Add-Member - InputObject $reportedvm - MemberType noteProperty-name ToolsUpdate - value $VM. Guest.ToolsStatus
    $networkcards = $vm.guest.net
    $i = 0
    {foreach ($ntwkcard to $networkcards)
    Add-Member - InputObject $reportedvm - MemberType NoteProperty-Name "card$ {i}." Network"- value $ntwkcard.Network
    Add-Member - InputObject $reportedvm - MemberType NoteProperty-Name "card$ {i}." IpAddress"- value of $($ntwkcard.) IpAddress |? {$_ - like "*."} * »})
    $i ++
    }
    $reportedvms.add ($reportedvm) | Out-Null
    }
    $reportedvms | Export-Csv C:\temp\vm_nic_report.csv

    Try

    $VM. Guest.guestFullName

    instead.

    You're recovery VirtualMachine objects.

  • Help with report VM (name MemoryMB NumCPU, data store, total size of the disk)

    I currently have a script (listed below) to the CR of query for each virtual computer and their allocated disks. The problem with the script is that when he meets a VM with disks on several data only stores the first data store is listed in the report. However, the total size of the disk is correct.

    Any ideas to fix this?

    $datastoreExp = @{N = "Datastore"; E = {($_ | get-datastore | select-object-1 premier).} Name}}

    $diskSizeExp = @{N = "Total disk"; E = {($_ | get-harddisk | mesure-objet-propriété CapacityKB-somme).} Sum}}

    Get - vm | Select the name MemoryMB NUmCPU, $datastoreExp, $diskSizeExp | Sort - property datastore, "Total disc | Export-Csv C:\Scripts\Reports\chargeback.csv

    I thought that was what you wanted, judging by your examples.

    In any case, no problem, the following should do the trick.

    
    $dsRegEx = [regex]"\[(\w+)\]"
    $report = @()
    get-vm | % {
         $vm = $_
        $vm.HardDisks | %{
              $row = "" | Select Name,MemoryMB,NUmCPU, Datastore, "Total Disk (Gb)"
              $row.Name = $vm.Name
              $row.MemoryMb = $vm.MemoryMb
              $row.NumCpu = $vm.NumCpu
              $row.Datastore = $dsRegEx.Match($_.Filename).Groups[1].Value
              $row.{Total Disk (Gb)} = "{0:N}" -f ($_.CapacityKB / 1Mb)
              $report += $row
         }
    }
    $report | sort -property Name, datastore,"Total Disk" |Export-Csv "C:\chargeback.csv" -noTypeInformation
    

    Since there are sometimes problems with the display of the hooks I have attached the script.

  • help with resizing script

    I found an online script that turns pictures into a square (by increasing the size of the canvas on the short side to match the length of the long side) which is awesome, but I would like to make an extra step and I have no experience with script so I hope someone can help.

    now that my images are square, I want to put a maximum of 2500 x 2500 px size, I found scripts to set a resolution of a specific size, but I want to make sure to avoid is upsampling, so I want just any image is greater than 2500 x 2500 px down sample to 2500 x 2500 px

    all information on the code for this would be much appreciated.

    When I'm at the machine with the script that I currently use will be to paste it here in the meantime if you know something about the scaling of the images down, but preventing their intensification I could probably chimpanzee with the code I have and make it work.

    Something like this might work, you can change the ResampleMethod, however:

    top-down images of squares more 2500px up to 2500px.

    2012, use it at your own risk.

    #target photoshop

    If (app.documents.length > 0) {}

    myDocument = app.activeDocument;

    value of pixels;

    var originalRulerUnits = app.preferences.rulerUnits;

    app.preferences.rulerUnits = Units.PIXELS;

    get the dimensions;

    var theWidth = myDocument.width;

    var theHeight = myDocument.height;

    If (theWidth == theHeight) {}

    If {(theWidth > 2500)

    myDocument.resizeImage (2500, 2500, myDocument.resolution, ResampleMethod.BICUBICSHARPER)

    };

    }

    else {alert ('not square')};

    reset;

    app.preferences.rulerUnits = originalRulerUnits;

    };

  • Can someone help with the scripts on this file?

    Hi, I hope someone with a bigger brain can help me here.

    I have an existing Flash CS3 file that makes up the result to http://www.infusion-set.com/Flash/eLearning/Inset30/inset30_eguide.html .

    The customer asked if I could add an extra tab at the top after that 'group' called 'Contact us' with link to an additional page. The design was done in ActionScript 2 with references to XML files for dynamic content because it has been done in other languages.

    I modified the XML file with the correct references to a new page and a .swf file that accompanies it to play in the field of animation.

    I tried a .fla version where I duplicated one of the existing tabs script, changed the XML references and changed the variables if necessary to "con or"Con"(which is to reach us). Unfortunately, he made the menu tab go completely off the page and was patently false in some way.

    Can someone give me a clue as to what to change here on the original file that I am a novice with ActionScripts, so ask me.

    For reference, I have attached the HTML files with scripts of original file and my incorrect version. The chronology is 103 images with the scripts placed in frame 1 and 102

    Thank you.

    Garry

    The buttons are all created using the same library object (but MC), except for the code you have in the revised file does not call on it for the con button.

    You calling on something with a name of 'con' link, which tells me that a quick check is not - then it is undefined in the code when you try to use it.  I found this by using trace (newConBut._x); After its _x value was assigned, as I said, you should try.   So the first thing you want to do is to change the following line from...

    var newConBut = _root.attachMovie ("con", "conbut", _root.getNextHighestDepth ());

    TO

    var newConBut = _root.attachMovie ("but", "conbut", _root.getNextHighestDepth ());

    so that it uses the but MC who is used to this end in the library.  So, you want to correct the assignment _x of the buttons and I think that you had previously...

    newConBut._x = 650 - newConBut._width;
    newRecBut._x = newConBut._x - newRecBut._width;

    Here is a picture of what these changes (note, without the XML file, I had to finagle things just to work, then the labels of biutton are not what they will be)...

  • Need help with transformation Script

    Well I'm back for the 2nd time today. I would like to thank all those who helped me with my last issue. But now I have another question that I'm developing. Craig & Dan here me helped with 2 separate sending email responders based on questions in the form.

    You can view the form on this link:
    http://mswebsol.com/gaslockguarantee/creditapplication.cfm

    The problem I have right now, is that I don't get the results that I'm looking. Basically lets say you choose Yes to all 4 questions but on the 5th issue, you click on no. Well as it is now the script sends the answer by e-mail indicating your accepted. But what I'm trying to make, is that if you choose not to one of the questions you will automatically get an e-mail response that says you are not admitted.

    If I choose not to question, I'll get the answer correct email which is "your not accepted" to make it work for the first question. But if you choose Yes to the first question and no to the 2nd or any other question you will get the wrong answer that says "you are accepted."

    Here is the code

    < Cfif StructKeyExists(form,"Q1") >
    < cfif form. Q1 is 'Yes' >
    < intrusion via cfmail > accepting... < / intrusion via cfmail >
    < cfelse >
    < intrusion via cfmail > not accepting... < / intrusion via cfmail >
    < / cfif >

    < cfelseif StructKeyExists (form, "Q2") >
    < cfif form. Q2 eq 'Yes' >
    < intrusion via cfmail > accepting... < / intrusion via cfmail >
    < cfelse >
    < intrusion via cfmail > not accepting... < / intrusion via cfmail >
    < / cfif >

    < cfelseif StructKeyExists (form, "Q3") >
    < cfif form. Q3 eq 'Yes' >
    < intrusion via cfmail > accepting... < / intrusion via cfmail >
    < cfelse >
    < intrusion via cfmail > not accepting... < / intrusion via cfmail >
    < / cfif >

    < cfelseif StructKeyExists (form, "Q4") >
    < cfif form. Q4 eq 'Yes' >
    < intrusion via cfmail > accepting... < / intrusion via cfmail >
    < cfelse >
    < intrusion via cfmail > not accepting... < / intrusion via cfmail >
    < / cfif >

    < cfelseif StructKeyExists (form, "Q5") >
    < cfif form. Q5 eq 'Yes' >
    < intrusion via cfmail > accepting... < / intrusion via cfmail >
    < cfelse >
    < intrusion via cfmail > not accepting... < / intrusion via cfmail >
    < / cfif >
    < / cfif >

    Any help would be greatly appreciated!

    Thanks to you all

    Derek Bess
    @ Coldfusion newbie

    If I understand you well, all your if/else logic boils down to a simple:
    (1) one of the answers is "No" - send 'rejected' by email
    (2) all the answers are "Yes" - email "accepted."

    I suggest you cfparam all default = 'no' on your action and answers
    the page, so that you don't have to keep control of structkeyexists:


    ...

    After that, all you need is:


    .. .send 'rejected' code email here...

    .. .send 'admitted' code email here...

    HTH

    Azadi Saryev
    SABAI - Dee.com
    http://www.SABAI-Dee.com/

  • Help with a Script to remove the additional paths and save

    Here are a few scripts that I have at the moment, but none work. With the first script, I get an error with the 'indexOf', and with the second script, it keeps only the second name listed in the string. How can I get either of these to work where I can remove all the paths, with the exception of multiple ones I want to keep?

    function deletepaths()
    {
      if (!documents.length) return false;
    
    
      var doc = activeDocument;
      var save = ["Ex1", "Ex2", "Ex3"];
    
    
      for (var x = 0; x < doc.pathItems.length; x++)
      {
        if (save.indexOf(doc.pathItems[x].name) == -1))
        {
          doc.pathItems[x].remove();
        }
      }
    }
    deletepaths();
    

    deletepaths();
    function deletepaths(){
    if(!documents.length) return;
    var doc = activeDocument;
    for(var a = doc.pathItems.length-1;a>-1;a--){
    if(doc.pathItems[a].name != ("ex1", "Ex2")) 
         doc.pathItems[a].remove();
      }
    }
    

    IndexOf does not work with extension script. Most likely, you would need a number if statement for many golds ' | ', or a loop in the loop goes well your path names.

  • need help with a script of PowerCLI report IOPS / s

    I found the following script that gives me the data I want, but not ultimately I need. At the moment he puts it in the PowerCLI window, but I need to get into a csv file so it can be easily sent to others for review.

    This is the script that I found:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    Add-pssnapin VMware. VimAutomation . Core -ErrorAction SilentlyContinue

    $daysback = -30

    write-host ' What vCenter you want to connect to? -You may be prompted for a user name and password'

    write-host ""

    Se connect-VIServer -menu

    write-host ""

    $vm_data = reading-host "Enter the number of a-Org"

    write-host ""

    write-host "ARE gathering Ops / s Stats"

    write-host ""

    $vms = Get-Folder | where {$_. Name -like "*$vm_data*" } | get-vm | where {$_. PowerState -eq "PoweredOn" }

    write-host ( "{0,-70}`t{1,8}`t{2,8}`t{3,8}`t{4,8}" -f "VM", "W IOPS avg", "R IOPS avg", "W IOPS max", "R IOPS max" ) `

    ; $vms | sort | % {

    $wval = ()()()Get-Stat $_ -stat « datastore.numberWriteAveraged.average » -Start ()Get-Date). AddDays ($daysback) -Finish (Get-Date) ) | select -expandproperty Value) | measure -average -max);

    $rval = (((Get-Stat $_ -stat "datastore.numberReadAveraged.average" -Start (Get-Date). AddDays ($daysback) -Finish (Get-Date) ) | select -expandproperty Value) | measure -average -max);

    write-host ( "{0,-70}`t{1,8:N2}`t{2,8:N2}`t{3,8:N2}`t{4,8:N2}" -f $_. Name , $wval. average , $rval. average , $wval. maximum , $rval. maximum )

    }

    write-host ""

    write-host "You can copy the output by selecting the text and copy it to NotePad ++ or similar: .

    write-host " " "

    " read-host" Hit Enter to Output.

    In one, I run, I changed the "Connect-VIServer-menu" to simply plug the vCenter Server I use. I also changed line 16 to 'Get-ResourcePool' since there's not enough pools to make this work. Using the PowerCLI utility, I don't have the option that indicates on line 25. I used the export feature to create csv files in other scripts, but I can't make it work in this case. I know it's probably something simple that I'm just missing.

    I like the length of time that this script uses the information. If anything, I don't want to go back to the suite to get a better idea of what the actual maximum number what is / was. It is also necessary to have the columns for information (as he shows). If we are to refine for which metric is present, I would be ok with just having the IOPS numbers / s max in the table.

    Any guru PowerCLI have an idea?

    Try like this

    Add-pssnapin VMware.VimAutomation.Core - ErrorAction SilentlyContinue

    $daysback = - 30

    write-host "what vCenter you want to connect to? -You may be prompted for a user name and password"

    write-host "

    SE connect-VIServer-menu

    write-host "

    $vm_data = read-host "enter the number of a - Org"

    write-host "

    write-host "gathering IOPS / s Stats.

    write-host "

    $vms = get-file | where {$_.} {Name: like "* $vm_data *"} | Get - VM | where {$_.} PowerState - eq "Receptor"}

    $report = $vms | kind | % {

    $wval = (((get-Stat_$_-stat_"datastore.numberWriteAveraged.average"-Start_(Get-Date).adddays ($daysback) - Finish (Get-Date)) |))

    Select - expandproperty value) | measure - average - max);

    $rval = (((get-Stat_$_-stat_"datastore.numberReadAveraged.average"-Start_(Get-Date).adddays ($daysback) - Finish (Get-Date)) |))

    Select - expandproperty value) | measure - average - max);

    $_ | Select Name,

    @{N = "IOPS / W avg s";} E = {$wval. Average}},

    @{N = "Avg R Ops ARE / s";} E = {$rval. Average}},

    @{N = "W IOPS / s max";} {E = {$wval.maximum}}.

    @{N = "IOPS R / s max";} {E = {$rval.maximum}}

    }

    $report | Export Csv report.csv - NoTypeInformation - UseCulture

  • PS snapshot script... Need help with report

    I am trying to achieve when products are deployed on virtual machines, the instant Powershell script will execute and take snapshots, provide the report as html (output) and then run another Script that will be run against VI3 to commit all snapshots.

    I need assistance with the statement, I want to report to display the VM name + instant summary details, script below shows only instant summary.  Also if there is a script to commit all the snapshots on defined VM.

    **********************************************

    1. Variables

    $VCServerName = "VIServer.

    $CustomFieldName = 'Snapshots'

    $ManagedObjectType = "VMName".

    $today = (get-Date-Format ' YYYY-MM - dd_HH.mm.ss - tt')

    $nsn = "PowerShell-$today.

    $a = ""

    1. Script

    SE connect-VIServer $VCServerName - Port 443 - HTTPS protocol

    Get - VM $ManagedObjectType | New-Snapshot - name $nsn - Description "Instant product update"

    Get-Snapshot $ManagedObjectType | SELECT name, ID, Description, VM creation. ConvertTo-HTML-head $a | Out-file C:\Report.htm

    Invoke-Expression C:\Report.htm

    Disconnect-VIServer $VCServerName - confirm: $False

    You must select the last one.

    Something like this for example

    Get-Snapshot -VM $vm | Sort Created | Select -Last 1 | Remove-Snapshot -Confirm:$false
    

    ____________

    Blog: LucD notes

    Twitter: lucd22

  • Girls need help with a script to repeat the link to another folder in indesign

    I REALLY hope you smart people can help me.

    We had servers which means that all of our Indesign documents now have a broken link. To manually "re-edit the link to the file" causes Indesign down :-(. And it takes forever I am hoping to find a script that can connect all the links in the doc to a new file structure.

    The name of the link (name of file) and the file structure remains the same; Just point to another server. The structure contains subfolders so the best way would be that the script can see subfolders as well, but otherwise I would gladly use a script that points of 6 subfolders at a time.

    Problem - I KNOW NOT ALL SCRIPTS and I'm a graphic designer so I can't create scripts :-(. I have already had success Googling a script to unlink everything in the document, but I don't know how to run the script. DO NOT to create them.

    ANY help in this forum? I have 6 designers waiting for me to fix this.

    Is there a script where I could just change the path and then he could repeat?

    We have iMac OSX Yosemite 10.10.4

    PLEASE HELP... :-)

    / Dina

    Try this... it is created by Vamitul

    main() {} function

    var doc = app.activeDocument;

    myLinks var = doc.links.everyItem () .getElements ();

    var linkObj = {};

    Create the initial object

    / * {linkObject

    [path] {missingNr,

    arrayOfMissingLinks}

    } */

    for (var i = 0; i)< mylinks.length;="" i++)="">

    If (myLinks [i] .status == LinkStatus.LINK_MISSING) {}

    var myPath = File(myLinks[i].filePath).path.toString ();

    If (linkObj [myPath] == undefined) {}

    linkObj [myPath] = {}

    missingNr: 1.

    missingLinks: [myLinks [i]],.

    newPath: "

    }

    } else {}

    linkObj [myPath] .missingNr ++;

    linkObj [myPath].missingLinks.push (myLinks [i] .getElements () [0]);

    }

    }

    }

    $.writeln (linkObj.toSource ());

    var myDialog = new window ("dialog", "link Chaser:', undefined");

    Panel1 = myDialog.add var ('panel', undefined, "double-click to select the new path '");

    Panel1. Align = ["fill",""];

    myList var = panel1.add ("listBox", undefined, "", {})

    columnWidths: [160, 160, 130],

    numberOfColumns: 3,.

    showHeaders: true,

    columnTitles: ['old road', 'New Path', 'Nr. missing links']

    });

    myList.size = [450, 200];

    myList.align = ["fill",""];

    for {(var missingPath in linkObj)

    with (myList.add ("item", missingPath)) {}

    Subitems [0] .text is linkObj [missingPath] .newPath;.

    Paragraphs [1] .text is linkObj [missingPath] .missingNr;.

    }

    }

    myList.onDoubleClick = function() {}

    var myNewPath = (new folder (app.activeDocument.filePath) .selectDlg ("Select New Folder") |. toString() ' ");

    myList.selection.subItems [0] .text = myNewPath;

    linkObj [myList.selection.text] .newPath = myNewPath;

    }

    myDialog.add ('button', {undefined, "Ok",

    name: 'ok '.

    });

    myDialog.add ("button", undefined, "Cancel", {})

    name: "Cancel".

    });

    If (myDialog.show () == 1) {}

    for (var i in linkObj) {}

    If (linkObj [i] .newPath! = ") {}

    var fixedNr = 0;

    Var links = linkObj [i] .missingLinks

    for (var j = 0; j)< links.length;="" j++)="">

    var queue = newFile (linkObj [i] .newPath + "/" + links [j] .name);

    If {(newFile.exists)

    fixedNr ++;

    Links [j] .relink (NewFile);

    }

    }

    Alert ("in the folder: \n" + linkObj [i] .newPath + '\n' +)

    'Fixed' fixedNr ' links of ' + linkObj [i] .missingNr + '\n ' +.

    "Please check");

    }

    }

    };

    }

    app.doScript ('main()', undefined, undefined, UndoModes.entireScript, "Chaser link");

  • Help with dynamic scripting for drift property

    Hello

    I try to get the list nodes children, then loopthorugh the nodes to do some calculations in a property derived by using dynamic scripts. I tried with the below script.

    var childEnumerator is node. GetChildEnumerator();

    While (childEnumerator.MoveNext ())

    {

    var varValeurProp = childEnumerator.GetCurrent (). PropValue ("Custom.Salary");

    Print (propvalue);

    }

    While evaluating this script, I get an error below. No idea what I'm missing here?

    DRM-16008: there was a calculation Script Custom.TotalSalaryExp for EMP_Zone/Emp/PPD1 property error: TypeError: 'GetChildEnumerator' is not a function

    Please help me. Thank you fr your cooperation

    Kind regards

    Nathalie

    Try this instead...

    var childEnumerator is node. GetChildEnumerator();

    childEnumerator.MoveNext ();

    While (childEnumerator.GetCurrent ()! = null)

    {

    var varValeurProp = childEnumerator.GetCurrent (). PropValue ("Custom.Salary");

    Print (propvalue);

    childEnumerator.MoveNext ();

    }

  • Need help with custom script to rename the layers

    Hello world.

    I need help to write a custom script (because I suck at it) that will allow me to go through all the layers and sous-calques for a specific name ('X') and give it a new specific name ('Y').

    I have had success using the script below, but it does not work on any text layers names where the text layer was previously particularly well-known in 'X' and now changed needs.

    Any help is greatly appreciated.

    * Note: this script was originally used to find any layer with 'Copy' in its name and remove with anything after (to correct the problem of duplication of layers by adding this text).

    This is why the function is named removeCopy. It works for renaming layers also - just not a layer of text unfortunately.

    #target illustrator

    function removeCopy() {}
    If (app.documents.length == 0) return;
    var app.activeDocument = docRef;
    recurseLayers (docRef.layers);
    }
    removeCopy();
    function recurseLayers (objArray) {}
    for (var i = 0; i < objArray.length; i ++) {}
    ObjArr [i] .name = ObjArr [i].name.replace (/ \s*current name\s*\d*/, 'new name');
    If (objArray [i] .layers) recurseLayers (. layers.length > 0 ObjArr [i]);
    }
    }

    I finally found something after searching forums for a week. My confusion was related to the way Illustrator treats real layers against text/path/object "layers." Instead of layers, I had to use the pageItems in the script. The code below works. Thanks to Gustavo for his answer in another thread and Carlos I thank you for this looking too good! You're great to be ready to help models do more advanced things with Illustrator.

    var doc = app.activeDocument;
    var items = doc.pageItems;
    for (var g = 0; g)
        elements [g] .name = elements [g].name.replace ('Century Schoolbook text line', ' MonogramText: Century Schoolbook ");
    };
    App.Redraw ();

Maybe you are looking for