Cropping script for PSE 6
I would like to know how to create a script for photo shop elements. I understand that Adobe photo shop allows the use of scripts and I was wondering if it is possible to do the following:
Use a combination of keys to crop either the top, bottom, left or right side by 5% or by a number of pixels.
I.e. set-up four shortcut key combinations to crop the top, bottom, left and right edges of an image.
This may seem rather specific, but I have a disability and I try to avoid using the mouse where humanly possible. I use voice recognition software and this can be programmed by command to press a set of keys. I can further program this to do a combination of key presses a number of times e.g. crop top three (and this would press the combination of keys three times cropping the top of the picture three times in 5% increments or by a set amount of pixels each time).
Any thoughts or guidance would be very much appreciated.
*** I orignally posted this last December (Now May 2010). I was wondering if anyone could offer advice ***
Any thoughts on the above would be appreciated.
Macky
Similar Messages
-
I need an action/script for image resizing with a "special" attribute
Having a headache, nothing work so far the way I want it...
So here's the deal: I have a bunch of psd files and I need them saved as jpegs in a fixed size - 450x590px.
The filename of the jpeg should be the same as each psd and the images should be resized proportionate.
The psds have irregular sizes, some are tall, some are square, some are wide, etc.
I tried using the place function on a template, but that requires my input - choose what to place, then type the filename.
Any ideas?
Thank you for your input!elmoldovano wrote:
So here's the deal: I have a bunch of psd files and I need them saved as jpegs in a fixed size - 450x590px.
The filename of the jpeg should be the same as each psd and the images should be resized proportionate.
The psds have irregular sizes, some are tall, some are square, some are wide, etc.
I tried using the place function on a template, but that requires my input - choose what to place, then type the filename.
So have both Portrait and Landscape images with varying size. and want to create jpeg from them that are 450x590 pixels in size. Can the have Portrait and Landscape orientations. If they all must be Portraits 450px wide by 590px high your landscape images composition will not fair well. For cropping landscape image to portraits image normally crops away to much image content. Content aware scale may work somewhat better then cropping to portrait the introduced distortion may be acceptable.
If Portrait 450x590px and Landscape 590x450px is an acceptable solution. I would go with a cropping solution for there will be no distortion and centered crop composition are usually acceptable. It can also be done with a two step action used by an image processor script. If you download my crafting action package. It has a plug-in script that can be recorded in an action to set a 45:59 centered aspect ratio selection which you follow with an Image Crop step. You run the Image Processor script have the action make the crop and the Image processor to resize the crop to fit into a 590x590px area.
Crafting Actions Package UPDATED Aug 14, 2012 Changed AspectRatioSelection Plug-in script added Path support.
Contains
Action Actions Palette Tips.txt
Action Creation Guidelines.txt
Action Dealing with Image Size.txt
Action Enhanced via Scripted Photoshop Functions.txt
CraftedActions.atn Sample Action set includes an example Watermarking action
Sample Actions.txt Photoshop CraftedActions set saved as a text file.
12 Scripts for actions
Example
Download -
A script for setting a random wallpaper
I've cooked up this small bash script for changing the wallpaper to a random one from a specified directory (it is recursive)
The script tries to be smart in determining whether the wallpaper should be scaled, centered or tiled.
Just configure it and try it out.
Anyway, here goes:
#!/bin/bash
# Random wallpaper setter, by moljac024
# Configuration
# Wallpaper directory
wpDir="$HOME/Wallpapers"
# Wallpaper list path
wpList=$HOME/.wallpaper-list
# Folders to be skipped, you can put as many as you like
#wpSkip=("Dir1/" "Dir2/")
# Scale images that have a lower resolution than that of the screen (yes or no)
scaleLowerRes="yes"
#scaleLowerRes="no"
# Screen resolution
resWidth=1280
resHeight=800
# Command for tiling the wallpaper
cmdTile="feh --bg-tile"
#cmdTile="nitrogen --set-tiled --save"OA
#cmdTile="xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitor0/image-style -s 2 && xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitor0/image-path -s"
#cmdTile="gconftool-2 -t str --set /desktop/gnome/background/picture_options "wallpaper" -t str --set /desktop/gnome/background/picture_filename"
# Command for scaling the wallpaper
cmdScale="feh --bg-scale"
#cmdScale="nitrogen --set-scaled --save"
#cmdScale="xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitor0/image-style -s 3 && xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitor0/image-path -s"
#cmdScale="gconftool-2 -t str --set /desktop/gnome/background/picture_options "zoom" -t str --set /desktop/gnome/background/picture_filename"
# Command for centering the wallpaper
cmdCenter="feh --bg-center"
#cmdCenter="nitrogen --set-centered --save"
#cmdCenter="xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitor0/image-style -s 1 && xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitor0/image-path -s"
#cmdCenter="gconftool-2 -t str --set /desktop/gnome/background/picture_options "centered" -t str --set /desktop/gnome/background/picture_filename"
# End of configuration
setTiled ()
`$cmdTile "$1"`
if [ "$?" = "0" ]; then
echo "Wallpaper tiled."
else
echo "Wallpaper not set!"
exit 1
fi
setScaled ()
`$cmdScale "$1"`
if [ "$?" = "0" ]; then
echo "Wallpaper scaled."
else
echo "Wallpaper not set!"
exit 1
fi
setCentered ()
`$cmdCenter "$1"`
if [ "$?" = "0" ]; then
echo "Wallpaper centered."
else
echo "Wallpaper not set!"
exit 1
fi
createList ()
# Go to the wallpaper directory
cd "$wpDir"
# Load the list of pictures to a variable
wpDirList=`(find . -regex ".*\([jJ][pP][gG]\|[jJ][pP][eE][gG]\|[gG][iI][fF]\|[pP][nN][gG]\|[bB][mM][pP]\)$" -type f)`
# Save the list to disk
if [[ ( -w "$wpList" ) ]]; then
echo -n "$wpDirList" > "$wpList"
# Filter out unwanted folders
if [[ "$dontSkip" == "false" ]]; then
for dir in "${wpSkip[@]}"
do
grep -Ev "$dir" "$wpList" > ~/.wallpapers-tmpr; mv ~/.wallpapers-tmpr "$wpList"
done
fi
# Output result
echo "Wallpaper list saved."
else
echo "Can't write wallpaper list, aborting!"
exit 1
fi
getImage ()
# Count number of pictures in the wallpaper list by counting number of lines.
# Check if the wallpaper list exists, is not empty and we have read persmission on it
if [[ ( -s "$wpList" && -f "$wpList" ) && -r "$wpList" ]]
then
wpListNumber=$(wc -l < "$wpList")
else
echo "Can't read wallpaper list, aborting!";
exit 1
fi
# Counter for bad entries in wallpaper list
badMax=100
while true; do
# Get a seed for the random number generator from /dev/urandom
SEED=$(head -1 /dev/urandom | od -N 1 | awk '{ print $2 }')
RANDOM=$SEED
# Find a random line number in the wallpaper list
# Random number from 1..n.
#r=$((RANDOM % $wpListNumber + 1))
r=$(echo $RANDOM%"$wpListNumber"+1 | bc)
# Print what the line number is
# Print the r'th line.
imgPath=`sed -n "$r{p;q;}" "$wpList"`
# #./ crops that substring but it doesn't matter if it left there
wpPath="${wpDir}${imgPath#./}"
# Check if the chosen file exists
if [ -f "$wpPath" ]; then
break
else
echo -e ""$wpPath": doesn't exist!\n"
badMax=$(( $badMax - 1 ))
if [ "$badMax" == "0" ]; then
echo "Too many non-valid entries found in wallpaper list, aborting!"
exit 1
else echo "Choosing new image..."
fi
continue
fi
done
# Calculate size and aspect for chosen image and print out information
imgHeight=$(identify -format "%h" "$wpPath")
imgWidth=$(identify -format "%w" "$wpPath")
imgAspect=$(echo "scale=1; "$imgWidth"/"$imgHeight"" | bc)
echo -e "Image: "$wpPath"\n"
echo -e "Resolution: "$imgWidth"x"$imgHeight""
echo -e "Aspect: "$imgAspect":1\n"
setWallpaper ()
# Calculate resolution aspect ratio
resAspect=$(echo "scale=1; "$resWidth"/"$resHeight"" | bc)
# If the image is smaller than the resolution and is not a tile then scale it, otherwise look at aspect
if [[ ("$scaleLowerRes" == "yes") && ( "$imgAspect" != "1.0" && ("$imgWidth" -lt "$resWidth" || "$imgHeight" -lt "$resHeight") ) ]]
then
setScaled "$wpPath"
else
case $imgAspect in
1.0)
setTiled "$wpPath"
1.5 | 1.6 | 1.7 | 1.8)
if [[ "$resAspect" < "1.5" ]]; then
setCentered "$wpPath"
else
setScaled "$wpPath"
fi
if [[ "$resAspect" < "1.5" ]]; then
setScaled "$wpPath"
else
setCentered "$wpPath"
fi
esac
fi
checkConfig ()
# Initial errors
errorsPresent="no"
dontSkip="false"
# Check if all variables are set
if [[ !( ( -n "$wpDir" ) && ( -n "$wpList" ) && ( -n "$resWidth" ) && ( -n "$resHeight" ) && ( -n "$scaleLowerRes" ) && ( -n "$cmdTile" ) && ( -n "$cmdScale" ) && ( -n "$cmdCenter" ) ) ]]
then
echo -e "\nOne or more options not set, aborting!"
exit 1
fi
# Check if there is a trailing backslash in the wallpaper directory
spDir=`echo -n "$wpDir" | tail -c -1`
if [[ !( "$spDir" == "/" ) ]]
then
wpDir=""$wpDir"/"
fi
# Check if there is read permission on wallpaper directory and if it is a directory
if [[ !( ( -r "$wpDir" ) && ( -d "$wpDir" ) ) ]]
then
echo "Can't read wallpaper directory!"
errorsPresent="yes"
fi
# Check if the specified wallpaper list is a regular file and not a directory
touch "$wpList" &> /dev/null
if [[ ( -d "$wpList" ) ]]
then
echo "Specified wallpaper list is a directory, not a file!"
errorsPresent="yes"
fi
# Check if variables are set correctly
if [[ !( "$scaleLowerRes" == "yes" || "$scaleLowerRes" == "no" ) ]]
then
echo "Specified option for scaling the wallpaper is not valid!"
errorsPresent="yes"
fi
if $(echo ""$resWidth"" | grep [^0-9] &>/dev/null)
then
echo "Specified resolution width is not a number!"
errorsPresent="yes"
fi
if $(echo ""$resHeight"" | grep [^0-9] &>/dev/null)
then
echo "Specified resolution height is not a number!"
errorsPresent="yes"
fi
# Check if any of the tests failed
if [[ "$errorsPresent" == "yes" ]]
then
echo -e "\nOne or more errors found, aborting!"
exit 1
fi
ignoreWPSkip()
dontSkip="true"
printUsage ()
echo -e "Invalid command line argument(s)!\nUsage:\n"
echo -e "`basename "$0"` [options]\n"
echo -e "Options:\n"
echo -e "-s | --set \tSet a wallpaper without updating the list"
echo -e "-u | --update \tUpdate the list without setting a wallpaper"
echo -e "-ua | --update-all\tUpdate the list without setting a wallpaper, but don't skip any folders"
echo -e "-su | --set-update\tUpdate the list and set a wallpaper"
exit 1
if [ "$#" == "1" ]; then
case "$1" in
"-s" | "--set")
checkConfig
getImage
setWallpaper
exit 0
"-u" | "--update")
checkConfig
createList
exit 0
"-ua" | "--update-all")
checkConfig
ignoreWPSkip
createList
exit 0
"-su" | "--set-update")
checkConfig
createList
getImage
setWallpaper
exit 0
printUsage
exit 1
esac
else
printUsage
exit 1
fi
Last edited by moljac024 (2009-09-14 21:02:13)I did something similar a couple of months ago, but instead of attempting to be clever and guessing what the background image is supposed to be, I just write it in the filename. Since some pictures just end up being too bright (or whatever) when used as a background to a urxvt terminal, I added some extra parameters for setting gamma, brightness, tint and the direction the image should be rendered. It relies on hsetroot for actually rendering the picture.
#!/usr/bin/python
# set-background
import sys, os, string, re
patterns = [ (re.compile("t-([a-f\d]+)"), lambda x: "-tint \#" + x)
, (re.compile("b-([\d]+)"), lambda x: "-brightness -0." + x)
, (re.compile("g-([\d]+)"), lambda x: "-gamma "+ x)
, (re.compile("f-(v|h|d)"), lambda x: "-flip" + x)
def buildCommand(file):
output = ["hsetroot"]
output.append("-" + (string.split(file,".")[-2]))
output.append(file)
for token in string.split(file,".")[1:-2]:
for (pat,f) in patterns:
if pat.match(token):
output.append( f(pat.findall(token)[0]))
return string.join(output)
print buildCommand(img)
os.system(buildCommand(img))
# vim:set et:
So for instance, an image with the name background.t-704214.f-v.full.jpg would be rendered as a stretched image, flipped vertically with a sepia tint. The files are required to be in the following format NAME.(MODIFIER.)*TYPE.SUFFIX, where the the order and number of modifiers are unimportant. The gamma values are somewhat unintuitive, but I guess you'll just have to play around with it to get it right.
And to randomize the whole thing, I just used the following script in my .xinitrc to randomly pick a image from a folder.
#!/bin/bash
bg_folder="$HOME/.backgrounds";
pics=($(ls $bg_folder))
let "n = $RANDOM % ${#pics[@]}"
(cd $bg_folder; set-background ${pics[$n]}) -
Script for making random thumbnails from single image
Hi all,
I need something like a hundred different thumbnails from each image in a series of images, that is, hundred random sections of the same image, saved in a folder as jpg, and i was hoping that i could find a script for this.
What the script has to do is:
select the size of the crop (this would also be the dimensions of the thumbnail saved)
rotate crop selection in a random orientation and place the crop randomly on the canvas
save the image as a jpg in a folder
return to original image,
repeat process x times before quitting script.
I dont think this should be to difficult to make a script for, but unfortunately i don´t know how to code.
Is there anybody that could help me with this?
This would save me a lot of time!You can give this a try:
// create copies with pseudo random clipped and rotated parts of image;
// thanks to xbytor;
// 2012, use at your own risk;
#target photoshop
if (app.documents.length > 0) {
var originalRulerUnits = app.preferences.rulerUnits;
app.preferences.rulerUnits = Units.POINTS;
// set name for folder to save jpgs to;
var folderName = "rotatedJpgs";
// set number of jpgs;
var theNumber = 100;
// width and height;
var theWidth = 500;
var theHeight = 500;
// calculate some values;
var theDiagonal = Math.sqrt ((theWidth * theWidth) + (theHeight * theHeight));
var diagAngle = angleFromRadians(Math.acos((theWidth) / (theDiagonal)));
// get file name and path;
var myDocument = app.activeDocument;
var docName = myDocument.name;
try {
var basename = docName.match(/(.*)\.[^\.]+$/)[1];
var docPath = myDocument.path;
catch (e) {
basename = docName;
var docPath = "~/Desktop";
// create folder if it does not exist yet;
if (Folder(docPath + "/" + folderName).exists == true) {
var docPath = docPath + "/" + folderName;
else {
var theFolder = Folder(docPath + "/" + folderName).create();
var docPath = docPath + "/" + folderName;
// document dimensions;
var docWidth = myDocument.width;
var docHeight = myDocument.height;
// jpg options;
var jpegOptions = new JPEGSaveOptions();
jpegOptions.quality = 10;
jpegOptions.embedColorProfile = true;
jpegOptions.matte = MatteType.NONE;
// duplicate image;
var theCopy = myDocument.duplicate (theCopy, true);
var origResolution = theCopy.resolution;
theCopy.resizeImage(undefined, undefined, 72, ResampleMethod.NONE);
var docHalfWidth = theCopy.width / 2;
var docHalfHeight = theCopy.height / 2;
var theLayer = smartify2010(theCopy.layers[0]);
theCopy.resizeCanvas (theWidth, theHeight, AnchorPosition.MIDDLECENTER);
var theHistoryState = theCopy.activeHistoryState;
// do the variations;
for (var m = 0; m < theNumber; m++) {
var theAngle = Math.random() * 360;
theLayer.rotate (theAngle, AnchorPosition.MIDDLECENTER);
//theCopy.resizeCanvas (theWidth, theHeight, AnchorPosition.MIDDLECENTER);
// get tolerance offset;
var theHor1 = Math.abs(Math.cos(radiansOf(theAngle + diagAngle)) * theDiagonal / 2);
var theVer1 = Math.abs(Math.sin(radiansOf(theAngle + diagAngle)) * theDiagonal/ 2);
var theHor2 = Math.abs(Math.cos(radiansOf(theAngle - diagAngle)) * theDiagonal / 2);
var theVer2 = Math.abs(Math.sin(radiansOf(theAngle - diagAngle)) * theDiagonal / -2);
// calculate max offset for unrotated overall rectangle;
var thisHalfWidth = docHalfWidth - Math.max(theHor1, theHor2);
var thisHalfHeight = docHalfHeight - Math.max(theVer1, theVer2);
// calculate random offset for unrotated overall rectangle;
var randomX = thisHalfWidth * (Math.random() - 0.5) * 2;
var randomY = thisHalfHeight * (Math.random() - 0.5) * 2;
var aDiag = Math.sqrt (randomX * randomX + randomY * randomY);
var anAngle = angleFromRadians(Math.asin((randomY) / (aDiag))) + theAngle;
anAngle = anAngle + Math.floor(Math.random() * 2) * 180;
// calculate offset for rotated overall rectangle;
var offsetX = Math.cos(radiansOf(anAngle)) * aDiag;
var offsetY = Math.sin(radiansOf(anAngle)) * aDiag;
//alert (theAngle+"\n\n"+offsetX +"\n"+ offsetY+"\n\n"+ thisHalfWidth+"\n"+thisHalfHeight);
theLayer.translate(offsetX, offsetY);
theCopy.resizeImage(undefined, undefined, origResolution, ResampleMethod.NONE);
theCopy.saveAs((new File(docPath+"/"+basename+"_"+bufferNumberWithZeros(m+1, 3)+".jpg")),jpegOptions,true);
theCopy.activeHistoryState = theHistoryState;
// clean up;
theCopy.close(SaveOptions.DONOTSAVECHANGES);
app.preferences.rulerUnits = originalRulerUnits;
////// radians //////
function radiansOf (theAngle) {
return theAngle * Math.PI / 180
////// radians //////
function angleFromRadians (theRad) {
return theRad / Math.PI * 180
////// buffer number with zeros //////
function bufferNumberWithZeros (number, places) {
var theNumberString = String(number);
for (var o = 0; o < (places - String(number).length); o++) {
theNumberString = String("0" + theNumberString)
return theNumberString
////// function to smartify if not //////
function smartify2010 (theLayer) {
// make layers smart objects if they are not already;
app.activeDocument.activeLayer = theLayer;
// process pixel-layers and groups;
if (theLayer.kind == "LayerKind.GRADIENTFILL" || theLayer.kind == "LayerKind.LAYER3D" || theLayer.kind == "LayerKind.NORMAL" ||
theLayer.kind == "LayerKind.PATTERNFILL" || theLayer.kind == "LayerKind.SOLIDFILL" ||
theLayer.kind == "LayerKind.TEXT" || theLayer.kind == "LayerKind.VIDEO" || theLayer.typename == "LayerSet") {
var id557 = charIDToTypeID( "slct" );
var desc108 = new ActionDescriptor();
var id558 = charIDToTypeID( "null" );
var ref77 = new ActionReference();
var id559 = charIDToTypeID( "Mn " );
var id560 = charIDToTypeID( "MnIt" );
var id561 = stringIDToTypeID( "newPlacedLayer" );
ref77.putEnumerated( id559, id560, id561 );
desc108.putReference( id558, ref77 );
executeAction( id557, desc108, DialogModes.NO )
return app.activeDocument.activeLayer
if (theLayer.kind == LayerKind.SMARTOBJECT || theLayer.kind == "LayerKind.VIDEO") {return theLayer};
////// get an angle, 3:00 being 0˚, 6:00 90˚, etc. //////
function getAngle (pointOne, pointTwo) {
// calculate the triangle sides;
var width = pointTwo[0] - pointOne[0];
var height = pointTwo[1] - pointOne[1];
var sideC = Math.sqrt(Math.pow(width, 2) + Math.pow(height, 2));
// calculate the angles;
if (width+width > width) {theAngle = Math.asin(height / sideC) * 360 / 2 / Math.PI}
else {theAngle = 180 - (Math.asin(height / sideC) * 360 / 2 / Math.PI)};
if (theAngle < 0) {theAngle = (360 + theAngle)};
return theAngle -
Creating SQL-Loader script for more than one table at a time
Hi,
I am using OMWB 2.0.2.0.0 with Oracle 8.1.7 and Sybase 11.9.
It looks like I can create SQL-Loader scripts for all the tables
or for one table at a time. If I want to create SQL-Loader
scripts for 5-6 tables, I have to either create script for all
the tables and then delete the unwanted tables or create the
scripts for one table at a time and then merge them.
Is there a simple way to create migration scripts for more than
one but not all tables at a time?
Thanks,
Prashant RaneNo there is no multi-select for creating SQL-Loader scripts.
You can either create them separately or create them all and
then discard the one you do not need. -
error while executing script for sharepoint online (office 365) - the remote server returned an error: (503) server unavailable.
I am creating many site collections reading records from sharepoint list using powershell in sharepoint online tenant (office 365).
Few site collections are created and then getting above error so this error record will be skipped then few succeeding record processed then again getting error.
pattern is like:
success
success
success
success
Error
success
success
success
success
success
success
error
successHi,
As it is an online environment, to troubleshoot this issue in an easier way, I suggest you contact Office 365 Support to see if there is any useful information in
the log files in the server side:
https://support.office.com/en-us/article/Contact-Office-365-for-business-support-32a17ca7-6fa0-4870-8a8d-e25ba4ccfd4b?ui=en-US&rs=en-US&ad=US
Best regards
Patrick Liang
TechNet Community Support -
Custom calculation script for checkboxs
Hello,
Can anyone help me out with custom calculation script for this? I have two mutually exclusive checkboxes that, when checked, I want to populate data into other text fields.
If Checkbox1 is checked:
Company1=Warehouse Alpha
Address1=1234 Any Street
City/State/Zip1= Los Angeles, CA 90020
Contact Name1= Mr. Nice Guy
Phone Number1= 213-854-8565
Email1=[email protected]
If Checkbox2 is checked:
Company2=Warehouse Beta
Address2= 5678 Awesome Blvd.
City/State/Zip2= San Bernardino, CA 96545
Contact Name2= Mr. Handsome
Phone Number2= 909-824-8265
Email2=[email protected]
Thanks,
BryanSo one has two check boxes and one wants them to be mutually exclusive. Name them the same and change the export value of the field. Try it and observe what happens as you check the different check boxes.
You have described what happens if either box is checked but what happens when a checked box Is unckecked?
One can place scripts in many locations. I would use a mouse up action for both the check boxes, use the same script for both check boxes.
I would assume you are using the following names for the fields to populate:
Company
Address
CityStateZip
ContactName
PhoneNumber
Email
// Mouse up action for both check boxes;
// initial value for the fields:
this.getField("Company"),value = "";
this.getField("CityStateZip"),value = "";
this.getField("ContactName"),value = "";
this.getField("PhoneNumber"),value = "";
this.getField("Email"),value = "";
// test for check box value for selected box;
if(event.value == 1) {
this.getField("Company"),value = "Warehouse Alpha";
this.getField("CityStateZip"),value = "1234 Any Street";
this.getField("ContactName"),value = "Los Angeles, CA 90020";
this.getField("PhoneNumber"),value = "213-854-8565";
this.getField("Email"),value = "[email protected]";
if(event.value == 2) {
this.getField("Company"),value = "Warehouse Beta";
this.getField("CityStateZip"),value = "5678 Awesome Blvd.";
this.getField("ContactName"),value = "San Bernardino, CA 96545";
this.getField("PhoneNumber"),value = "Mr. Handsome";
this.getField("Email"),value = "[email protected]";
// end Mouse up action for both check boxes; -
Sharepoint warmup script for https sites
we want to warm up https site which is based on sharepoint 2010.
When we run some sample powershells it shows access forbidden error so we are not able to warm up https site.
Its slow on first load so need some warmup script for https sites.
sharepointerJust ensure that the service account that you use to trigger the Powershell scripts has access to IIS and SharePoint. Most often, the SharePoint Farm account would be used for scheduling the warm up scripts on the WFE server.
I trust that answers your question...
Thanks
C
http://www.cjvandyk.com/blog -
WSUS script for pending reboot possible addition - How
Hi, I am found script for pending reboot and script work perfectly. My problem is that script generate only pending computers reboot for master wsus server not for replica servers. Can I modify this script to generate pending reboot for all replica servers on
one place(wsus master server) or I must run this script on every replica server. This is script:
[reflection.assembly]::LoadWithPartialName("Microsoft.UpdateServices.Administration") | out-null
if (!$wsus) {
$wsus = [Microsoft.UpdateServices.Administration.AdminProxy]::GetUpdateServer();
$computerScope = new-object Microsoft.UpdateServices.Administration.ComputerTargetScope;
$computerScope.IncludedInstallationStates = [Microsoft.UpdateServices.Administration.UpdateInstallationStates]::InstalledPendingReboot;
$updateScope = new-object Microsoft.UpdateServices.Administration.UpdateScope;
$updateScope.IncludedInstallationStates = [Microsoft.UpdateServices.Administration.UpdateInstallationStates]::InstalledPendingReboot;
$computers = $wsus.GetComputerTargets($computerScope);
$report = @()
$computers | foreach-object {
$computer = $_.FullDomainName
$updatesForReboot = $_.GetUpdateInstallationInfoPerUpdate($updateScope)
$updatesForReboot | foreach-object {
$temp = "" | Select Computer,Update
$temp.Computer = $computer
$temp.Update = ($wsus.GetUpdate($_.UpdateId)).Title
$report += $temp
$report | Select "Computer","Update" | Export-Csv -Path c:\..PendingReboot.csv -Delimiter 1 -NoTypeInformationModified script
work great. I have report from all replica server and master server after new updates
from today. I am add mail option and finaly this is what I am modify:
[reflection.assembly]::LoadWithPartialName("Microsoft.UpdateServices.Administration") | out-null
if (!$wsus) {
$wsus = [Microsoft.UpdateServices.Administration.AdminProxy]::GetUpdateServer();
$computerScope = new-object Microsoft.UpdateServices.Administration.computerTargetScope;
$computerScope.IncludeDownstreamComputerTargets = $true
$computerScope.IncludedInstallationStates = [Microsoft.UpdateServices.Administration.UpdateInstallationStates]::InstalledPendingReboot;
$updateScope = new-object Microsoft.UpdateServices.Administration.UpdateScope;
$updateScope.IncludedInstallationStates = [Microsoft.UpdateServices.Administration.UpdateInstallationStates]::InstalledPendingReboot;
$computers = $wsus.GetComputerTargets($computerScope);
$report = @()
$computers | foreach-object {
$computer = $_.FullDomainName
$updatesForReboot = $_.GetUpdateInstallationInfoPerUpdate($updateScope)
$updatesForReboot | foreach-object {
$temp = "" | Select Computer,Update
$temp.Computer = $computer
$temp.Update = ($wsus.GetUpdate($_.UpdateId)).Title
$report += $temp
$report | Select "Computer","Update" | Export-Csv -Path c:\yourpath...PendingReboot.csv -Delimiter 1 -NoTypeInformation
$smtpServer = "your mail server"
$att = "c:\yourpath...PendingReboot.csv"
$msg = new-object Net.Mail.MailMessage
$smtp = new-object Net.Mail.SmtpClient($smtpServer)
$msg.From = "[email protected]"
$msg.To.Add("[email protected]")
$msg.Subject = "Pending Reboot"
$msg.Body = "Your msg"
$msg.Attachments.Add($att)
$smtp.Send($msg) -
Running Permission Scripts for App-V packages in VDI environment
Hi
We use App-V 5.0 SP1 in VDI environment.
We have a major problem with packages' permissions
Our users don't have administrative privileges on their machines.
As the option for "Security Descriptors" is discontinued, the only way to give permissions to a folder in a package is to use the VFSCACLS.vbs as a startup script of a package.
This way the first time users launch an application they're prompt to reopen it, and the second time they can use the application with the needed permissions.
The problem:
The script saves those permission changes under LOCALAPPDATA\AppV...
Therefore, everytime the users logoff the folder is deleted (VDI...) and again, they must run the script for the first again to get the permissions back after logon!
We cannot roam the LOCALAPPDATA\AppV folder as its size can be dozens of GBs...
Folder permissions with group policy is also not a solution, as the folder name changes everytime we upgrade a package and it's impossible to follow with hundreds of packages.
So it's either we're missing something critical in the architecture with VDI environment or there's a normal solution for these situations.
Would love to get some help
Thanks
Tamir LevyHi Nicke
that's what I did! the problem is that I find my self over and over again want to sequence packages in App-V 5.0 and forced to sequence it in App-V 4.6.
I really hope that it wasn't App-V team's goal. announcing App-V 5.0 and tell us it doesn't support many things so we will still need App-V 4.6 forever.
I have to maintain 2 different App-V environments with 4 different servers , 4 different sequencers and 2 clients on each computer. it doesn't make any sense for me to forced to stay with both of the versions forever.
correct me if I'm wrong but App-V 4.6 is a legacy application. the new versions cover only support on newer operating systems and nothing more. I won't be surprised if in the next version of MDOP won't come with App-V 4.6 anymore and Microsoft will announced
it's unsupported very soon.
Every time I open a ticket with MS Support the best thing I get is "It's a known issue, we can't tell when it will be fixed"
can you help me more ? move it forward to other people from the inside? at least agree with me that something is not as expected in App-V 5.0... :(
I love the technology, I believe in it, I'm kinda depend on it and I only want it to be better
Tamir Levy -
One script for multiple loaded movie clips
Hello,
I am sure that this has been asked or answered before, but
could not locate the correct response.
Problem:
There are 20 movie clips loaded onto the stage through
actionscript. I have 20 different onPress scripts to start the drag
for each (which also contain custom variable).
Problem, I have one single onRelease script which is to be
used for each, but do now wish to give 20 custom handled scripts.
Can I somehow use certain scripting for using one single
generic script for the onRelease? So no matter what was released it
will go through this one script.
Thanks
Dlike this...
activate
set the_folder to choose folder with prompt "Select the folder you want to add folders to..."
tell application "Finder"
set the_name to "Name"
set the_count to 3
repeat with this_num from 1 to the_count
set new_num to this_num as string
if (count new_num) is 1 then set new_num to "0" & new_num
make new folder at the_folder with properties {name:the_name & " " & new_num}
end repeat
end tell -
Getting error while running script for online backup
Hi,
I am running a script for online backup but ended up with an the below error.
*ERROR* [Backup Worker Thread] com.day.crx.core.backup.Backup Failed to create temporary directory
Please help out in resolving this.
Thanks in Advnace.
MaheswarHi mahesh,
If you are using backup feature from crx console, I mean http://localhost:4502/crx/config/backup.jsp I can say that we had also some problems with this functionalities.
First off all what you need to check are the permissions, because when you check a source code there is line which creates a File object using a path specified by you to make a backup of repository.
File targetDir = new File(req.getParameter("targetDir", listDir.getParentFile().getAbsolutePath()));
You need to have sure that the proper read write access has been granted for this path.
Another issue is that maybe there was already prepared some hotfix if you are using CQ5.4. Please refer to the following link:
http://dev.day.com/content/kb/home/Crx/CrxSystemAdministration/CRXOnlineBackup.html
and also to this one:
http://dev.day.com/content/docs/en/crx/current/release_notes/overview.html which contains a hotfix number #34797 which was applied to backup.jsp file.
Regards,
kasq -
I am getting an error in "Step 2 - Setup or Remove Lync Server Components" of "Install or Update Lync Server System" step.
"An error occured while applying SQL script for the feature BackendStore. For details, see the log file...."
Additionally, all previous steps such as: Prepare Active Directory, Prepare first Standard Edition server, Install Administrative Tools, Create and publish topology are done without any errors. The user that I used to setup the Lync server is member of:
Administrators
CSAdministrator
Domain Admins
Domain Users
Enterprise Admins
Group Policy Creator Owners
RTCComponentUniversalServices
RTCHSUniversalServices
RTCUniversalConfigReplicator
RTCUniversalServerAdmins
Schema Admins
I have tried to re-install all the things and started to setup a new one many times but the same error still occurred. Please see the log below and give me any ideas/solutions to tackle this problem.
****Creating DbSetupInstance for 'Microsoft.Rtc.Common.Data.BlobStore'****
Initializing DbSetupBase
Parsing parameters...
Found Parameter: SqlServer Value lync.lctbu.com\rtc.
Found Parameter: SqlFilePath Value C:\Program Files\Common Files\Microsoft Lync Server 2013\DbSetup.
Found Parameter: Publisheracct Value LCTBU\RTCHSUniversalServices;RTC Server Local Group;RTC Local Administrators;LCTBU\RTCUniversalServerAdmins.
Found Parameter: Replicatoracct Value LCTBU\RTCHSUniversalServices;RTC Server Local Group.
Found Parameter: Consumeracct Value LCTBU\RTCHSUniversalServices;RTC Server Local Group;RTC Local Read-only Administrators;LCTBU\RTCUniversalReadOnlyAdmins.
Found Parameter: DbPath Value D:\CsData\BackendStore\rtc\DbPath.
Found Parameter: LogPath Value D:\CsData\BackendStore\rtc\LogPath.
Found Parameter: Role Value master.
Trying to connect to Sql Server lync.lctbu.com\rtc. using windows authentication...
Sql version: Major: 11, Minor: 0, Build 2100.
Sql version is acceptable.
Validating parameters...
DbName rtcxds validated.
SqlFilePath C:\Program Files\Common Files\Microsoft Lync Server 2013\DbSetup validated.
DbFileBase rtcxds validated.
DbPath D:\CsData\BackendStore\rtc\DbPath validated.
Effective database Path: \\lync.lctbu.com\D$\CsData\BackendStore\rtc\DbPath.
LogPath D:\CsData\BackendStore\rtc\LogPath validated.
Effective Log Path: \\lync.lctbu.com\D$\CsData\BackendStore\rtc\LogPath.
Checking state for database rtcxds.
Checking state for database rtcxds.
State of database rtcxds is detached.
Attaching database rtcxds from Data Path \\lync.lctbu.com\D$\CsData\BackendStore\rtc\DbPath, Log Path \\lync.lctbu.com\D$\CsData\BackendStore\rtc\LogPath.
The operation failed because of missing file '\\lync.lctbu.com\D$\CsData\BackendStore\rtc\DbPath\rtcxds.mdf'
Attaching database failed because one of the files not found. The database will be created.
State of database rtcxds is DbState_DoesNotExist.
Creating database rtcxds from scratch. Data File Path = D:\CsData\BackendStore\rtc\DbPath, Log File Path= D:\CsData\BackendStore\rtc\LogPath.
Clean installing database rtcxds.
Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.
****Creating DbSetupInstance for 'Microsoft.Rtc.Common.Data.RtcSharedDatabase'****
Initializing DbSetupBase
Parsing parameters...
Found Parameter: SqlServer Value lync.lctbu.com\rtc.
Found Parameter: SqlFilePath Value C:\Program Files\Common Files\Microsoft Lync Server 2013\DbSetup.
Found Parameter: Serveracct Value LCTBU\RTCHSUniversalServices;RTC Server Local Group.
Found Parameter: DbPath Value D:\CsData\BackendStore\rtc\DbPath.
Found Parameter: LogPath Value D:\CsData\BackendStore\rtc\LogPath.
Trying to connect to Sql Server lync.lctbu.com\rtc. using windows authentication...
Sql version: Major: 11, Minor: 0, Build 2100.
Sql version is acceptable.
Validating parameters...
DbName rtcshared validated.
SqlFilePath C:\Program Files\Common Files\Microsoft Lync Server 2013\DbSetup validated.
DbFileBase rtcshared validated.
DbPath D:\CsData\BackendStore\rtc\DbPath validated.
Effective database Path: \\lync.lctbu.com\D$\CsData\BackendStore\rtc\DbPath.
LogPath D:\CsData\BackendStore\rtc\LogPath validated.
Effective Log Path: \\lync.lctbu.com\D$\CsData\BackendStore\rtc\LogPath.
Checking state for database rtcshared.
Reading database version for database rtcshared.
Database version for database rtcshared - Schema Version5, Sproc Version 0, Update Version 1.
Thanks and Regards,
Thanh LeThanks Lạc
Phạm 2
I Had similar issue i end up uninstalling and reinstallting but same issue, then i change the drive but same issue. It was I/O issue. After adjusting my I/O it fix our issue and installation went on without any issue.
If any one using KVM here is detail article
We just give this option cache=‘writeback
using this article http://www.ducea.com/2011/07/06/howto-improve-io-performance-for-kvm-guests/ and http://itscblog.tamu.edu/improve-disk-io-performance-in-kvm/ this fix my issue thanks -
An error occurred while applying SQL script for the feature BackendStore.
Hello,
I am using my AD in Windows Azure VMs. I created new VM of A3 (4 cores, 7 GB Memory) Windows Server 2012 R2, Port 1433 MSSQL added, made it a member of Domain and planned to install first Lync Server 2013 on it.
In "Setup or Remove Lync Server Components" of "Install or Update Lync Server System", got an Red Coloured text "An error
occurred while applying SQL script for the feature BackendStore."
I have not enabled monitoring and archiving server in topology builder. I added "Network Service" and assign "Full Control" in Security Permissions of "C:\CsData" and "C:\LyncShare".
I executed the SQL Setup Wizard and upgraded any instance to 2012.
Please guide.
Thanks, Divyaprakash KoliPlease check you have enough disk space for the disk where the folders are.
Check view log for detailed log information.
The following link is a similar thread for you to refer:
http://social.technet.microsoft.com/Forums/lync/en-US/a3cb9ab0-7451-4df5-af96-3d2784d1b075/an-error-occurred-while-applying-sql-script-for-the-feature-backendstore-for-details-see-the-log?forum=lyncdeploy
Lisa Zheng
TechNet Community Support -
I am trying to update my iTunes to 10.5.1 so that I can upgrade my 3GS phone but am getting the following error message when trying to install the itunes: Install step failed: Run pre upgrade script for apple mobile device support. Contact software manufacturer for assistance. I am on a MacBook pro running 10.5.8 OS. Has anyone seen this before and how can I get it resolved.
Thanks for your help in advance....Did you ever figure out the problem? "Contact Software Manufacturer"?? That sounds ominous... I've got the same issue and I'm pretty durn aggravated right about now....
Thanks!
Maybe you are looking for
-
HT5622 How can you recover your security question answers if you have forgotten them?
My phone got stolen a while back. So I hadn't made any purchases recently. So when it did, it asked got my security question answers and I realized I forgot them.
-
How to get the current function name in java
How to get the current function name in java. In c it is done as printf("%s",__func__); Thanx in advance.
-
Problem with next N items in folder
Hi, When I set restriction on number of items in folder (set Number Of Rows field in folder style -> Edit Region) for example 5. I see 5 items in folder. But I cant see next set of item because there isnt link next 5. Is it bug? Im using portal versi
-
I was wondering if there was a way to fix Spry Tabbed Panels so that they open on hover instead of click? I would like to click on the tab to take me to another page instead. Is it possible?
-
Hi I'm migrate from MS SQL 2005 to Oracle 11g using SQL Developer V3.0.04 Trying to use the batch file migration.bat. Found the documentation with migration -help=guide Every action I start results in the SQLException below: D:\oracle\product\sqldeve